route_util.js 1.8 KB

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