routeUtil.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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=" + param,
  29. });
  30. } else {
  31. await jump(url);
  32. }
  33. };
  34. ///跳转带参,不摧毁界面
  35. async function jumpParams(url, param) {
  36. if (param) {
  37. await wx.navigateTo({
  38. url: url + param,
  39. });
  40. } else {
  41. await jump(url);
  42. }
  43. };
  44. //跳转,并且摧毁当前界面
  45. async function redirectTo(url) {
  46. await wx.redirectTo({
  47. url: url,
  48. });
  49. };
  50. //跳转,并且摧毁当前界面
  51. async function redirectToParam(url, param) {
  52. if (param) {
  53. await wx.redirectTo({
  54. url: url + param,
  55. });
  56. } else {
  57. await redirectTo(url);
  58. }
  59. };
  60. //返回页面个数
  61. async function goBack(pages) {
  62. if (pages == null) pages == 1;
  63. await wx.navigateBack({
  64. delta: pages,
  65. });
  66. };
  67. ///返回到首页,不关闭当前界面
  68. async function goBackHomePage() {
  69. const route_constant = require('./routePath.js');
  70. await goBackRoute(route_constant.indexRoot);
  71. };
  72. ///返回到某个界面,不替换当前界面
  73. ///route:pages/index/index
  74. async function goBackRoute(route) {
  75. const pages = getCurrentPages(); // 获取当前页面栈
  76. const pageCount = pages.length; // 页面栈中的页面数量
  77. var pageNuble = 0;
  78. for (var i = pageCount - 1; i > -1; i--) {
  79. if (pages[i].route != route) {
  80. pageNuble++;
  81. } else {
  82. break;
  83. }
  84. }
  85. if (pageNuble > 0) {
  86. await goBack(pageNuble);
  87. }
  88. };