nav.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * 统一导航工具
  3. * TabBar 页面列表(4 个功能 Tab)
  4. */
  5. var TAB_BAR_PAGES = [
  6. '/pages/index-home/index',
  7. '/pages/health/index',
  8. '/pages/growth/index',
  9. '/pages/profile/profile'
  10. ]
  11. /**
  12. * 五维维度页路径映射
  13. * 行 = index-home(仍是 TabBar 页)
  14. * 心/身/智/富 = 分包页(已移出 TabBar)
  15. */
  16. var DIMENSION_MAP = {
  17. action: '/pages/index-home/index',
  18. mind: '/pages/mind/index',
  19. body: '/pages/body/index',
  20. wisdom: '/pages/wisdom/index',
  21. wealth: '/pages/wealth/index'
  22. }
  23. /**
  24. * 跳转到五维维度页面
  25. * @param {String} dimCode 维度编码 action/mind/body/wisdom/wealth
  26. */
  27. function goDimension(dimCode) {
  28. var url = DIMENSION_MAP[dimCode]
  29. if (!url) return
  30. goPage(url)
  31. }
  32. /**
  33. * 通用页面跳转
  34. * 自动判断目标是否为 TabBar 页(switchTab)还是分包/普通页(navigateTo)
  35. * @param {String} url 页面路径,如 '/pages/mind/index'
  36. */
  37. function goPage(url) {
  38. if (!url) return
  39. if (TAB_BAR_PAGES.indexOf(url) !== -1) {
  40. uni.switchTab({ url: url })
  41. } else {
  42. uni.navigateTo({ url: url })
  43. }
  44. }
  45. module.exports = {
  46. TAB_BAR_PAGES: TAB_BAR_PAGES,
  47. DIMENSION_MAP: DIMENSION_MAP,
  48. goDimension: goDimension,
  49. goPage: goPage
  50. }