index.js
2.59 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import Vue from 'vue'
import Vuex from 'vuex'
import { getSystemConfig } from '@/api/sysConfig'
Vue.use(Vuex)
const PRIVACY_KEY = 'store_privacyMobileMask'
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',
/** 手机号脱敏:1=开启,0=明文(默认) */
privacyMobileMask: Number(localStorage.getItem(PRIVACY_KEY)) === 1 ? 1 : 0
},
getters: {
isLoggedIn: state => !!state.token,
userName: state => state.user?.userName || state.user?.realName || '',
userInfo: state => state.user || {},
storeInfo: state => state.storeInfo || {},
privacyMobileMask: state => state.privacyMobileMask
},
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')
},
SET_PRIVACY_MOBILE_MASK(state, value) {
const v = Number(value) === 1 ? 1 : 0
state.privacyMobileMask = v
localStorage.setItem(PRIVACY_KEY, String(v))
},
LOGOUT(state) {
state.user = null
state.storeInfo = null
state.token = ''
state.privacyMobileMask = 0
localStorage.removeItem('store_token')
localStorage.removeItem('store_user')
localStorage.removeItem('store_info')
localStorage.removeItem(PRIVACY_KEY)
},
SET_SCHEDULE_DIALOG(state, visible) {
state.scheduleDialogVisible = visible
},
SET_SCHEDULE_DIALOG_MODE(state, mode) {
state.scheduleDialogMode = mode || 'view'
}
},
actions: {
/** 登录后 / 布局初始化拉取脱敏开关 */
loadPrivacyMobileMask({ commit }) {
return getSystemConfig()
.then(res => {
const data = (res && res.data) || {}
const value = data.privacyMobileMask == null ? 0 : data.privacyMobileMask
commit('SET_PRIVACY_MOBILE_MASK', value)
return Number(value) === 1 ? 1 : 0
})
.catch(() => {
return Number(localStorage.getItem(PRIVACY_KEY)) === 1 ? 1 : 0
})
}
}
})