From 28cbb4647ce268d17dda4bb36a30eabe0a1f9fcc Mon Sep 17 00:00:00 2001 From: TimSpan Date: Wed, 11 Sep 2024 11:35:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89tabbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- collect_information/package.json | 1 + collect_information/src/app.config.ts | 6 +++ collect_information/src/app.ts | 5 ++- .../src/custom-tab-bar/index.vue | 43 ++++++------------- collect_information/src/pages/login/login.vue | 40 +++++++++++------ collect_information/src/store/index.ts | 36 +++++++++++++++- 6 files changed, 84 insertions(+), 47 deletions(-) diff --git a/collect_information/package.json b/collect_information/package.json index 9c42ee8..c05bfaa 100644 --- a/collect_information/package.json +++ b/collect_information/package.json @@ -59,6 +59,7 @@ "@tarojs/taro": "3.6.25", "dayjs": "^1.11.10", "pinia": "^2.1.7", + "pinia-plugin-persistedstate": "^4.0.1", "vue": "^3.0.0" }, "devDependencies": { diff --git a/collect_information/src/app.config.ts b/collect_information/src/app.config.ts index aec9800..df9377c 100644 --- a/collect_information/src/app.config.ts +++ b/collect_information/src/app.config.ts @@ -22,6 +22,12 @@ export default defineAppConfig({ iconPath: "assets/mine/punch.png", selectedIconPath: "assets/mine/punch-active.png" }, + { + pagePath: 'pages/policeManager/index/index', + text: '首页', + iconPath: "assets/mine/punch.png", + selectedIconPath: "assets/mine/punch-active.png" + }, { pagePath: 'pages/employeeInfo/employeeInfo', text: '员工信息', diff --git a/collect_information/src/app.ts b/collect_information/src/app.ts index 60b67c5..117c29d 100644 --- a/collect_information/src/app.ts +++ b/collect_information/src/app.ts @@ -2,7 +2,10 @@ import {createApp} from 'vue' import {createPinia} from 'pinia' import './app.scss' import './assets/scss/colorui.scss' +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' +const pinia = createPinia() +pinia.use(piniaPluginPersistedstate) const App = createApp({ onShow(options) { console.log('App onShow.') @@ -10,6 +13,6 @@ const App = createApp({ // 入口组件不需要实现 render 方法,即使实现了也会被 taro 所覆盖 }) -App.use(createPinia()) +App.use(pinia) export default App diff --git a/collect_information/src/custom-tab-bar/index.vue b/collect_information/src/custom-tab-bar/index.vue index b6f6e33..f2b91fb 100644 --- a/collect_information/src/custom-tab-bar/index.vue +++ b/collect_information/src/custom-tab-bar/index.vue @@ -1,11 +1,14 @@ diff --git a/collect_information/src/store/index.ts b/collect_information/src/store/index.ts index 7562b84..e29a946 100644 --- a/collect_information/src/store/index.ts +++ b/collect_information/src/store/index.ts @@ -1,19 +1,51 @@ import {defineStore} from 'pinia' +import Taro from '@tarojs/taro' export const useCounterStore = defineStore('counter', { state: () => { return { userInfo: {}, - selected: 0 + selected: 0, + list: Taro.getStorageSync('list') || [ + { + pagePath: '/pages/projectManager/index/index', + text: '首页', + iconPath: "/assets/mine/punch.png", + selectedIconPath: "/assets/mine/punch-active.png" + }, + { + pagePath: '/pages/employeeInfo/employeeInfo', + text: '员工信息', + iconPath: "/assets/mine/punch.png", + selectedIconPath: "/assets/mine/punch-active.png" + }, + { + pagePath: '/pages/mine/mine', + text: '我的', + iconPath: "/assets/mine/my.png", + selectedIconPath: "/assets/mine/my-active.png" + }, + ] } }, actions: { setSelected(index: number) { this.selected = index + }, + updateHomePagePath(newPath: string) { + this.list[0].pagePath = newPath + // 更新 list 后存储到小程序本地存储 + Taro.setStorageSync('list', this.list) } }, getters: { - getSelected: (state) => state.selected + getSelected: (state) => state.selected, + getList: (state) => state.list + }, + persist: { + // key: 'my-store', // 存储到 localStorage 的 key + // storage: localStorage, // 持久化方式为 localStorage + // paths: ['list'] // 持久化 list } })