route_util.js 1.8 KB

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