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
|