import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const navHeight = uni.getStorageSync('navHeight'); const statusbarHeight = uni.getStorageSync('statusbarHeight'); const userInfo = uni.getStorageSync('userInfo'); const token = uni.getStorageSync('token'); const store = new Vuex.Store({ state: { navHeight: navHeight || '', statusbarHeight: statusbarHeight || '', userInfo: userInfo || {}, token: token || '' }, mutations: { // 设置导航栏高度 setHeight(state, val) { state.navHeight = val.navHeight state.statusbarHeight = val.statusbarHeight uni.setStorageSync('navHeight', val.navHeight); uni.setStorageSync('statusbarHeight', val.statusbarHeight); }, // 设置token setToken(state, val) { state.token = val uni.setStorageSync('token', val); }, // 设置用户信息 setUserInfo(state, val) { state.userInfo = val uni.setStorageSync('userInfo', val); }, // 清除缓存数据 empty(state) { state.userInfo = '' state.token = '' uni.removeStorageSync('token'); uni.removeStorageSync('userInfo'); } }, actions: { // 获取状态高度 getHeight(context) { let res = uni.getMenuButtonBoundingClientRect() let status = uni.getSystemInfoSync() var height = res.height let statusbarHeight = status.statusBarHeight let navHeight = res.height + (res.top - statusbarHeight) * 2; context.commit('setHeight', { statusbarHeight, navHeight, height }) } } }) export default store;