114 lines
2.4 KiB
JavaScript
114 lines
2.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,
|
|
showSheinAlert: false,
|
|
showTemuAlert: false,
|
|
userInfo: {},
|
|
labelInfo: {}
|
|
},
|
|
|
|
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
|
|
},
|
|
setSheinAlertShow(state, flag) {
|
|
state.showSheinAlert = flag
|
|
},
|
|
setTemuAlertShow(state, flag) {
|
|
state.showTemuAlert = flag
|
|
},
|
|
setLabelInfo(state, info) {
|
|
state.labelInfo = info
|
|
}
|
|
},
|
|
|
|
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)
|
|
}
|
|
})
|
|
store.dispatch('getLabelInfo')
|
|
})
|
|
},
|
|
|
|
getLabelInfo(store) {
|
|
return new Promise(resolve => {
|
|
request.post('/api/userExtend/getLabelDetail').then(res => {
|
|
if (res.code === 0) {
|
|
const isExpires = new Date().getTime() > new Date(res.data.expireTime).getTime() || res.data.skuUsed > res.data.skuTotal
|
|
store.commit('setLabelInfo', {
|
|
...res.data,
|
|
isExpires
|
|
})
|
|
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()]
|
|
})
|