|
|
import Vue from 'vue'
|
|
|
import { getUserInfo, login } from '@/api/base/user'
|
|
|
import {
|
|
|
getAccessToken,
|
|
|
removeAccessToken,
|
|
|
setAccessToken
|
|
|
} from '@/utils/accessToken'
|
|
|
// import { resetRouter } from '@/router'
|
|
|
import { title, tokenName } from '@/config'
|
|
|
import { resetRouter } from '@/router'
|
|
|
const state = () => ({
|
|
|
accessToken: getAccessToken(),
|
|
|
username: '',
|
|
|
name: '-',
|
|
|
cardId: '',
|
|
|
userId: null,
|
|
|
unitId: null,
|
|
|
unitLevel: null,
|
|
|
endTime: null,
|
|
|
avatar: null,
|
|
|
adminFlag: '',
|
|
|
caseId: "",
|
|
|
permissions: []
|
|
|
})
|
|
|
const getters = {
|
|
|
accessToken: (state) => state.accessToken,
|
|
|
username: (state) => state.username,
|
|
|
name: (state) => state.name,
|
|
|
phone: (state) => state.phone,
|
|
|
avatar: (state) => state.avatar,
|
|
|
cardId: (state) => state.cardId,
|
|
|
userId: (state) => state.userId,
|
|
|
unitId: (state) => state.unitId,
|
|
|
adminFlag: (state) => state.adminFlag,
|
|
|
permissions: (state) => state.permissions,
|
|
|
caseId: (state) => state.caseId
|
|
|
}
|
|
|
const mutations = {
|
|
|
setAccessToken(state, accessToken) {
|
|
|
state.accessToken = accessToken
|
|
|
setAccessToken(accessToken)
|
|
|
},
|
|
|
setUserId(state, userId) {
|
|
|
state.userId = userId
|
|
|
},
|
|
|
setCardId(state, cardId) {
|
|
|
state.cardId = cardId
|
|
|
},
|
|
|
setUnitId(state, unitId) {
|
|
|
state.unitId = unitId
|
|
|
},
|
|
|
setUsername(state, username) {
|
|
|
state.username = username
|
|
|
},
|
|
|
setAdminFlag(state, adminFlag) {
|
|
|
state.adminFlag = adminFlag
|
|
|
},
|
|
|
setName(state, name) {
|
|
|
state.name = name
|
|
|
},
|
|
|
setPhone(state, phone) {
|
|
|
state.phone = phone
|
|
|
},
|
|
|
setAvatar(state, avatar) {
|
|
|
state.avatar = avatar
|
|
|
},
|
|
|
setEndTime(state, endTime) {
|
|
|
state.endTime = endTime
|
|
|
},
|
|
|
setPermissions(state, permissions) {
|
|
|
state.permissions = permissions
|
|
|
},
|
|
|
setConversationId(state, conversationId) {
|
|
|
state.conversationId = conversationId
|
|
|
}
|
|
|
}
|
|
|
const actions = {
|
|
|
setPermissions({ commit }, permissions) {
|
|
|
commit('setPermissions', permissions)
|
|
|
},
|
|
|
setCaseId({ commit }, conversationId) {
|
|
|
commit('setConversationId', conversationId)
|
|
|
},
|
|
|
async login({ commit }, userInfo) {
|
|
|
const { userAccount, password } = userInfo
|
|
|
const { data } = await login({
|
|
|
userAccount,
|
|
|
password: password
|
|
|
})
|
|
|
const { userName } = data
|
|
|
const accessToken = data.token
|
|
|
if (accessToken) {
|
|
|
commit('setAccessToken', accessToken)
|
|
|
const hour = new Date().getHours()
|
|
|
const thisTime =
|
|
|
hour < 8
|
|
|
? '早上好'
|
|
|
: hour <= 11
|
|
|
? '上午好'
|
|
|
: hour <= 13
|
|
|
? '中午好'
|
|
|
: hour < 18
|
|
|
? '下午好'
|
|
|
: '晚上好'
|
|
|
Vue.prototype.$baseNotify(`欢迎登录${userName}`, `${thisTime}!`)
|
|
|
} else {
|
|
|
Vue.prototype.$baseMessage(
|
|
|
`登录接口异常,未正确返回${tokenName}...`,
|
|
|
'error'
|
|
|
)
|
|
|
}
|
|
|
},
|
|
|
async getUserInfo({ commit }) {
|
|
|
const { data } = await getUserInfo()
|
|
|
|
|
|
if (!data) {
|
|
|
Vue.prototype.$baseMessage('验证失败,请重新登录...', 'error')
|
|
|
return false
|
|
|
}
|
|
|
console.log(data, 'userData')
|
|
|
|
|
|
const { permission, userName, headPicId, adminFlag } = data
|
|
|
|
|
|
if (userName) {
|
|
|
commit('setUsername', userName)
|
|
|
commit('setAdminFlag', adminFlag)
|
|
|
commit('setAvatar', headPicId)
|
|
|
commit('setPermissions', permission.length > 0 ? permission : ['p_home'])
|
|
|
return permission
|
|
|
} else {
|
|
|
Vue.prototype.$baseMessage('用户信息接口异常', 'error')
|
|
|
return false
|
|
|
}
|
|
|
},
|
|
|
async logout({ dispatch }) {
|
|
|
await dispatch('resetAccessToken')
|
|
|
await resetRouter()
|
|
|
},
|
|
|
resetAccessToken({ commit }) {
|
|
|
commit('setPermissions', [])
|
|
|
commit('setAccessToken', '')
|
|
|
localStorage.removeItem('validData')
|
|
|
removeAccessToken()
|
|
|
}
|
|
|
}
|
|
|
export default { state, getters, mutations, actions }
|