index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { fetchToken } from "../api/auth";
  2. import { isAuthenticated, requireAuth } from "../utils/auth";
  3. Component({
  4. data: {
  5. hidden: false,
  6. tabIndex: -1,
  7. tabs: [
  8. {
  9. path: "/pages/map/map",
  10. text: "充电地图",
  11. },
  12. {
  13. path: "/pages-charge/camera/camera",
  14. text: "扫码充电",
  15. },
  16. {
  17. path: "/pages/user/user",
  18. text: "个人中心",
  19. },
  20. ],
  21. },
  22. lifetimes: {
  23. ready() {
  24. fetchToken().then(() => {
  25. const pages = getCurrentPages();
  26. const index = this.data.tabs.findIndex(
  27. (item) => item.path === `/${pages[pages.length - 1].route}`
  28. );
  29. this.setData({
  30. hidden: false,
  31. tabIndex: index,
  32. });
  33. });
  34. },
  35. },
  36. methods: {
  37. switchTab(e) {
  38. const data = e.currentTarget.dataset;
  39. const url = data.path;
  40. const index = data.index;
  41. if (index === 1 || index === 2) {
  42. if (!isAuthenticated()) {
  43. requireAuth(url);
  44. return;
  45. }
  46. }
  47. if (/camera/.test(url)) {
  48. wx.navigateTo({
  49. url,
  50. });
  51. return;
  52. }
  53. wx.vibrateShort &&
  54. wx.vibrateShort({
  55. type: "light",
  56. });
  57. wx.switchTab({
  58. url,
  59. });
  60. },
  61. hiddenTab() {
  62. this.setData({
  63. hidden: true,
  64. });
  65. },
  66. showTab() {
  67. this.setData({
  68. hidden: false,
  69. });
  70. },
  71. },
  72. });