| 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 |