import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const storeToSession = store => { // 当 store 初始化后调用 store.subscribe((mutation, state) => { if (sessionStorage.getItem('store')){ sessionStorage.removeItem('store') } console.log(store) sessionStorage.setItem('store', JSON.stringify(state)) }) } const store = new Vuex.Store({ state: { userInfo:null, phone: document.body.clientWidth < 800, login:false, loginTime:0, second: 60 * 60 * 2, logs:'', data:{}, currentComp: 'map', cacheData:{} }, mutations: { phone(state, o) { state.phone = o; }, login(state, o) { state.userInfo = o state.login = true state.loginTime = new Date().getTime() }, logout(state) { state.userInfo=null state.login = false }, }, getters: { phone(state) { return state.phone; }, isLogin(state) { if (state.login && state.userInfo !== null ) { if ((new Date().getTime() - state.loginTime) < state.second * 1000 ) { return true } } return false }, isSuper(state, getters) { if(getters.isLogin) { if(state.userInfo.permission == 0xfff) { return true } } return false }, isProject(state, getters) { if(getters.isLogin) { if(state.userInfo.permission == 0x0ff) { return true } } return false }, isAnayone(state, getters) { if(getters.isLogin) { if(state.userInfo.permission == 0x000) { return true } } return false }, isNormal(state, getters) { if(getters.isLogin) { if(state.userInfo.permission == 0x00f) { return true } } return false } }, plugins: [storeToSession] }) export default store