Files
temu-plugin/src/store/index.js
yanran200730 5bac751e0a 退出功能
2023-08-10 15:01:20 +08:00

86 lines
1.4 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: {}
},
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
},
logout (state) {
state.token = ''
state.userInfo = {}
state.mallList = []
state.mallName = ''
state.mallId = ''
setTimeout(() => {
router.push('/login')
}, 200)
},
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)
}
})
})
},
SignOut (store, isClear) {
if (isClear) {
store.commit('logout')
return false
}
request.post('/api/token/logout').then(res => {
if (res.code === 0) {
store.commit('logout')
}
})
}
},
getters: {
isLogin: state => {
return !!state.token
}
},
plugins: [preState()]
})