import Vue from 'vue' import Vuex from 'vuex' import { pageCount } from '@/util/api/index.js' Vue.use(Vuex) // vue的插件机制 const navHeight = uni.getStorageSync('navHeight'); const statusbarHeight = uni.getStorageSync('statusbarHeight'); const menuButtonWidth = uni.getStorageSync('menuButtonWidth'); const token = uni.getStorageSync('token'); const userInfo = uni.getStorageSync('userInfo'); // Vuex.Store 构造器选项 const store = new Vuex.Store({ // 为了不和页面或组件的data中的造成混淆,state中的变量前面建议加上$符号 state: { // 用户信息 userInfo: userInfo || null, token: token || null, menuButtonWidth: menuButtonWidth || '0', statusbarHeight: statusbarHeight || '0', navHeight: navHeight || '0', // 待办数量 upcomingNum: { d: 0, y: 0 }, }, mutations: { setHeight(state, val) { state.navHeight = val.navHeight state.statusbarHeight = val.statusbarHeight state.menuButtonWidth = val.menuButtonWidth uni.setStorageSync('navHeight', val.navHeight); uni.setStorageSync('statusbarHeight', val.statusbarHeight); uni.setStorageSync('menuButtonWidth', val.menuButtonWidth); }, SETTOKEN(state, val) { state.token = val uni.setStorageSync('token', val); }, SETUSERINFO(state, val) { state.userInfo = val uni.setStorageSync('userInfo', val); }, SETNUM(state, val) { state.upcomingNum.d = val.d state.upcomingNum.y = val.y } }, actions: { // 获取状态高度 getHeight(context) { let res = uni.getMenuButtonBoundingClientRect() let status = uni.getSystemInfoSync() let menuButtonWidth = res.width let height = res.height let statusbarHeight = status.statusBarHeight let navHeight = res.height + (res.top - statusbarHeight) * 2; context.commit('setHeight', { statusbarHeight, navHeight, height, menuButtonWidth }) }, async getUpcomingNum() { let res = await pageCount({}) if (res.code === 200) { content.commit('SETNUM', { d: res.data.startNum, y: res.data.endNum }) } } } }) export default store