Files
temu-plugin/src/store/index.js
yanran200730 3b1de45fbf 封装函数
2023-08-08 11:08:15 +08:00

72 lines
1.2 KiB
JavaScript

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()]
})