import Vue from 'vue' import Vuex from 'vuex' import preState from 'vuex-persistedstate' import request from '@/api' import router from '@/router' Vue.use(Vuex) export default new Vuex.Store({ state: { token: '', mallId: '', mallName: '', mallList: [], activeDlgShow: false, userInfo: {}, routes: [], addRoutes: [] }, mutations: { setToken (state, token) { state.token = token }, setMallId (state, mallId) { state.mallId = mallId }, setMallName (state, mallName) { state.mallName = mallName }, setMallList (state, mallList) { state.mallList = mallList }, SignOut (state) { state.token = '' state.userInfo = {} setTimeout(() => { router.push('/login') }, 600) }, setUserInfo (state, userInfo) { state.userInfo = userInfo }, setActiveDlgShow (state, flag) { state.activeDlgShow = flag } }, actions: { getUserInfo (store) { return new Promise(resolve => { request.post('/api/malluser/info').then(res => { if (res.code === 0) { store.commit('setUserInfo', res.data) resolve(res.data) } }) }) } }, getters: { isLogin: state => { return !!state.token } }, plugins: [preState()] })