import Vue from 'vue'  
 | 
import Vuex from 'vuex'  
 | 
import {  
 | 
    pageCount,  
 | 
    getTreeList,  
 | 
    getUserInfo  
 | 
} 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');  
 | 
const Menu = uni.getStorageSync('MenuList');  
 | 
const session = uni.getStorageSync('session');  
 | 
  
 | 
  
 | 
// 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',  
 | 
        session: session ? session : '',  
 | 
        // 菜单权限  
 | 
        Menu: Menu ? JSON.parse(Menu) : [],  
 | 
        // 待办数量  
 | 
        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  
 | 
        },  
 | 
        SETMENU(state, data) {  
 | 
            state.Menu = data  
 | 
            uni.setStorageSync('MenuList', JSON.stringify(data));  
 | 
        },  
 | 
        SETSESSION(state, data) {  
 | 
            state.session = data;  
 | 
            uni.setStorageSync('session', data);  
 | 
        },  
 | 
        clearCache(state) {  
 | 
            state.userInfo = ''  
 | 
            state.token = ''  
 | 
            state.session = ''  
 | 
            state.Menu = []  
 | 
            state.upcomingNum.d = 0  
 | 
            state.upcomingNum.y = 0  
 | 
            uni.clearStorageSync()  
 | 
        }  
 | 
    },  
 | 
    actions: {  
 | 
        // 向后端获取菜单栏权限  
 | 
        async getMenuList(content, type) { 
 | 
            let res = await getTreeList({  
 | 
                type: type  
 | 
            })  
 | 
            if (res && res.code === 200) {  
 | 
                content.commit('SETMENU', res.data)  
 | 
            }  
 | 
        },  
 | 
        // 获取状态高度  
 | 
        getHeight(context) { 
 | 
            // #ifdef MP-WEIXIN 
 | 
            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 
 | 
            }) 
 | 
            // #endif  
 | 
              
 | 
        },  
 | 
        async getUpcomingNum(context) {  
 | 
            let res = await pageCount({}) 
 | 
              
 | 
            if (res && res.code === 200) {  
 | 
                context.commit('SETNUM', {  
 | 
                    d: res.data.startNum,  
 | 
                    y: res.data.endNum  
 | 
                })  
 | 
            }  
 | 
        },  
 | 
        // 向后端获取个人信息  
 | 
        async getUserInfos(content) {  
 | 
            let res = await getUserInfo()  
 | 
            if (res && res.code === 200) {  
 | 
                content.commit('SETUSERINFO', res.data)  
 | 
                return true;  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
})  
 | 
  
 | 
export default store 
 |