route_util.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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,
  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. async function goBackRoute(route) {
  52. const pages = getCurrentPages(); // 获取当前页面栈
  53. const pageCount = pages.length; // 页面栈中的页面数量
  54. var pageNuble = 0;
  55. for (var i = pageCount - 1; i > -1; i--) {
  56. if (pages[i].route != route) {
  57. pageNuble++;
  58. } else {
  59. break;
  60. }
  61. }
  62. if (pageNuble > 0) {
  63. await goBack(pageNuble);
  64. }
  65. };