index.js
1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
user: JSON.parse(localStorage.getItem('store_user') || 'null'),
storeInfo: JSON.parse(localStorage.getItem('store_info') || 'null'),
token: localStorage.getItem('store_token') || '',
scheduleDialogVisible: false,
scheduleDialogMode: 'view'
},
getters: {
isLoggedIn: state => !!state.token,
userName: state => state.user?.userName || state.user?.realName || '',
userInfo: state => state.user || {},
storeInfo: state => state.storeInfo || {}
},
mutations: {
SET_USER(state, user) {
state.user = user
if (user) localStorage.setItem('store_user', JSON.stringify(user))
else localStorage.removeItem('store_user')
},
SET_STORE(state, store) {
state.storeInfo = store
if (store) localStorage.setItem('store_info', JSON.stringify(store))
else localStorage.removeItem('store_info')
},
SET_TOKEN(state, token) {
state.token = token
if (token) localStorage.setItem('store_token', token)
else localStorage.removeItem('store_token')
},
LOGOUT(state) {
state.user = null
state.storeInfo = null
state.token = ''
localStorage.removeItem('store_token')
localStorage.removeItem('store_user')
localStorage.removeItem('store_info')
},
SET_SCHEDULE_DIALOG(state, visible) {
state.scheduleDialogVisible = visible
},
SET_SCHEDULE_DIALOG_MODE(state, mode) {
state.scheduleDialogMode = mode || 'view'
}
},
actions: {}
})