| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { fetchToken } from "../api/auth";
- import { isAuthenticated, requireAuth } from "../utils/auth";
- Component({
- data: {
- hidden: false,
- tabIndex: -1,
- tabs: [
- {
- path: "/pages/map/map",
- text: "充电地图",
- },
- {
- path: "/pages-charge/camera/camera",
- text: "扫码充电",
- },
- {
- path: "/pages/user/user",
- text: "个人中心",
- },
- ],
- },
- lifetimes: {
- ready() {
- fetchToken().then(() => {
- const pages = getCurrentPages();
- const index = this.data.tabs.findIndex(
- (item) => item.path === `/${pages[pages.length - 1].route}`
- );
- this.setData({
- hidden: false,
- tabIndex: index,
- });
- });
- },
- },
- methods: {
- switchTab(e) {
- const data = e.currentTarget.dataset;
- const url = data.path;
- const index = data.index;
- if (index === 1 || index === 2) {
- if (!isAuthenticated()) {
- requireAuth(url);
- return;
- }
- }
- if (/camera/.test(url)) {
- wx.navigateTo({
- url,
- });
- return;
- }
- wx.vibrateShort &&
- wx.vibrateShort({
- type: "light",
- });
- wx.switchTab({
- url,
- });
- },
- hiddenTab() {
- this.setData({
- hidden: true,
- });
- },
- showTab() {
- this.setData({
- hidden: false,
- });
- },
- },
- });
|