routeUtil.js 1.8 KB

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