route_util.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. module.exports = {
  2. getLastPageRoute: getLastPageRoute,
  3. goBackHomePage: goBackHomePage,
  4. goBackRoute: goBackRoute,
  5. jump: jump,
  6. jumpParam: jumpParam,
  7. goBack: goBack,
  8. redirectTo: redirectTo,
  9. }
  10. ///获取最后一个界面的路由名称
  11. function getLastPageRoute() {
  12. const pages = getCurrentPages();
  13. const currentPage = pages[pages.length - 1];
  14. return currentPage.route;
  15. };
  16. ///跳转,不摧毁界面
  17. async function jump(url) {
  18. await wx.navigateTo({
  19. url: url,
  20. });
  21. };
  22. ///跳转带参,不摧毁界面
  23. async function jumpParam(url, param) {
  24. if (param) {
  25. await wx.navigateTo({
  26. url: url + "?param=" + param,
  27. });
  28. } else {
  29. await jump(url);
  30. }
  31. };
  32. //跳转,并且摧毁当前界面
  33. async function redirectTo(url) {
  34. await wx.redirectTo({
  35. url: url,
  36. });
  37. };
  38. //返回页面个数
  39. async function goBack(pages) {
  40. if (pages == null) pages == 1;
  41. await wx.navigateBack({
  42. delta: pages,
  43. });
  44. };
  45. ///返回到首页,不关闭当前界面
  46. async function goBackHomePage() {
  47. const route_constant = require('./route_constant.js');
  48. await goBackRoute(route_constant.indexRoot);
  49. };
  50. ///返回到某个界面,不替换当前界面
  51. ///route:pages/index/index
  52. async function goBackRoute(route) {
  53. const pages = getCurrentPages(); // 获取当前页面栈
  54. const pageCount = pages.length; // 页面栈中的页面数量
  55. var pageNuble = 0;
  56. for (var i = pageCount - 1; i > -1; i--) {
  57. if (pages[i].route != route) {
  58. pageNuble++;
  59. } else {
  60. break;
  61. }
  62. }
  63. if (pageNuble > 0) {
  64. await goBack(pageNuble);
  65. }
  66. };