291 lines
10 KiB
JavaScript
291 lines
10 KiB
JavaScript
import { getToken, setToken, removeToken, setName, removeName } from '@/utils/auth'
|
|
import { login, getUserMenuTree, getUserPermissions, loginSelectUserRole, TJUserLoginInfo } from '@/api/user'
|
|
import { getUser } from '@/api/admin'
|
|
import { resetRouter } from '@/router'
|
|
import md5 from 'js-md5'
|
|
const getDefaultState = () => {
|
|
return {
|
|
token: getToken(),
|
|
name: '',
|
|
userName: '',
|
|
userId: '',
|
|
avatar: '',
|
|
permissions: [],
|
|
tree: [],
|
|
/* eslint-disable */
|
|
TotalNeedSignSystemDocCount: eval(process.env.VUE_APP_WORD_FOR_PERMISSION) ? null : 0,
|
|
TotalNeedSignTrialDocCount: eval(process.env.VUE_APP_WORD_FOR_PERMISSION) ? null : 0,
|
|
TrialStatusStr: null,
|
|
isTestUser: false,
|
|
roles: []
|
|
}
|
|
}
|
|
|
|
const state = getDefaultState()
|
|
|
|
const mutations = {
|
|
SET_ROLES: (state, roles) => {
|
|
state.roles = roles
|
|
},
|
|
RESET_STATE: (state) => {
|
|
Object.assign(state, getDefaultState())
|
|
},
|
|
SET_TOKEN: (state, token) => {
|
|
zzSessionStorage.setItem('TokenKey', token)
|
|
// document.cookie = 'access_token=' + token + ';path=/'
|
|
state.token = token
|
|
},
|
|
SET_NAME: (state, name) => {
|
|
state.name = name
|
|
},
|
|
SET_USERNAME: (state, name) => {
|
|
state.userName = name
|
|
},
|
|
SET_TREE: (state, tree) => {
|
|
state.tree = tree
|
|
},
|
|
SET_PERMISSIONS: (state, permissions) => {
|
|
state.permissions = permissions
|
|
},
|
|
SET_AVATAR: (state, avatar) => {
|
|
state.avatar = avatar
|
|
},
|
|
SET_USERID: (state, id) => {
|
|
state.userId = id
|
|
},
|
|
SET_ISTESTUSER: (state, isTestUser) => {
|
|
state.isTestUser = eval(isTestUser)
|
|
},
|
|
SET_NEED_SIGN_SYSTEM_DOC_COUNT: (state, TotalNeedSignSystemDocCount) => {
|
|
/* eslint-disable */
|
|
if (eval(process.env.VUE_APP_WORD_FOR_PERMISSION) && !state.isTestUser) {
|
|
zzSessionStorage.setItem('TotalNeedSignSystemDocCount', TotalNeedSignSystemDocCount)
|
|
state.TotalNeedSignSystemDocCount = TotalNeedSignSystemDocCount
|
|
} else {
|
|
zzSessionStorage.setItem('TotalNeedSignSystemDocCount', 0)
|
|
state.TotalNeedSignSystemDocCount = 0
|
|
}
|
|
},
|
|
SET_NEED_SIGN_TRIALS_DOC_COUNT: (state, TotalNeedSignTrialDocCount) => {
|
|
if (eval(process.env.VUE_APP_WORD_FOR_PERMISSION) && !state.isTestUser) {
|
|
zzSessionStorage.setItem('TotalNeedSignTrialDocCount', TotalNeedSignTrialDocCount)
|
|
state.TotalNeedSignTrialDocCount = TotalNeedSignTrialDocCount
|
|
} else {
|
|
zzSessionStorage.setItem('TotalNeedSignTrialDocCount', 0)
|
|
state.TotalNeedSignTrialDocCount = 0
|
|
}
|
|
},
|
|
SET_TRIAL_STATUS_STR: (state, TrialStatusStr) => {
|
|
zzSessionStorage.setItem('TrialStatusStr', TrialStatusStr)
|
|
state.TrialStatusStr = TrialStatusStr
|
|
}
|
|
}
|
|
|
|
const actions = {
|
|
setRoles({ commit }, roles) {
|
|
commit('SET_ROLES', roles)
|
|
},
|
|
// user login
|
|
login({ commit }, userInfo) {
|
|
const { username, password } = userInfo
|
|
return new Promise((resolve, reject) => {
|
|
login({ UserName: username.trim(), Password: md5(password) }).then(async response => {
|
|
if (response.IsSuccess) {
|
|
zzSessionStorage.removeItem('lastWorkbench')
|
|
zzSessionStorage.setItem('my_username', username.trim())
|
|
zzSessionStorage.setItem('my_password', md5(password))
|
|
const data = response.Result
|
|
if (data.BasicInfo.IsFirstAdd) {
|
|
try {
|
|
zzSessionStorage.setItem('userId', data.BasicInfo.Id)
|
|
commit('SET_TOKEN', data.JWTStr)
|
|
setToken(data.JWTStr)
|
|
resolve(false)
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
} else {
|
|
try {
|
|
zzSessionStorage.setItem('IsAdmin', data.BasicInfo.IsAdmin)
|
|
zzSessionStorage.setItem('IsReviewer', data.BasicInfo.IsReviewer)
|
|
zzSessionStorage.setItem('userName', data.BasicInfo.UserName)
|
|
commit('SET_TOKEN', data.JWTStr)
|
|
commit('SET_NAME', data.BasicInfo.RealName)
|
|
zzSessionStorage.setItem('realName', data.BasicInfo.RealName)
|
|
zzSessionStorage.setItem('isTestUser', data.BasicInfo.IsTestUser)
|
|
commit('SET_ISTESTUSER', data.BasicInfo.IsTestUser)
|
|
commit('SET_USERNAME', data.BasicInfo.UserName)
|
|
commit('SET_USERID', data.BasicInfo.Id)
|
|
setToken(data.JWTStr)
|
|
setName(data.BasicInfo.RealName)
|
|
const userString = decodeURIComponent(escape(window.atob(data.JWTStr.split('.')[1].replace(/-/g, '+').replace(/_/g, '/'))))
|
|
const user = JSON.parse(userString)
|
|
zzSessionStorage.setItem('userTypeShortName', user.userTypeShortName)
|
|
zzSessionStorage.setItem('userId', user.id)
|
|
zzSessionStorage.setItem('userTypeEnumInt', user.userTypeEnumInt)
|
|
var permissions = await getUserPermissions()
|
|
var menuTree = await getUserMenuTree()
|
|
commit('SET_TREE', menuTree.Result)
|
|
commit('SET_PERMISSIONS', permissions.Result)
|
|
zzSessionStorage.setItem('newTree', JSON.stringify(menuTree.Result))
|
|
zzSessionStorage.setItem('permissions', JSON.stringify(permissions.Result))
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
resolve(response.Result)
|
|
}
|
|
} else {
|
|
reject(response.ErrorMessage)
|
|
}
|
|
}).catch(() => {
|
|
reject()
|
|
})
|
|
})
|
|
},
|
|
loginByToken({ commit }, Token) {
|
|
return new Promise((resolve, reject) => {
|
|
TJUserLoginInfo(Token).then(async response => {
|
|
if (response.IsSuccess) {
|
|
zzSessionStorage.removeItem('lastWorkbench')
|
|
const data = response.Result
|
|
commit('SET_TOKEN', response.OtherInfo)
|
|
setToken(response.OtherInfo)
|
|
commit('SET_ROLES', data)
|
|
resolve(data)
|
|
} else {
|
|
reject(response.ErrorMessage)
|
|
}
|
|
}).catch(() => {
|
|
reject()
|
|
})
|
|
})
|
|
},
|
|
loginByRole({ commit }, userInfo) {
|
|
const { UserId, UserTypeId } = userInfo
|
|
let params = {
|
|
UserId, UserTypeId
|
|
}
|
|
return new Promise((resolve, reject) => {
|
|
|
|
loginSelectUserRole(params).then(async response => {
|
|
if (response.IsSuccess) {
|
|
const data = response.Result.JWTStr
|
|
|
|
try {
|
|
commit('SET_TOKEN', data)
|
|
setToken(data)
|
|
commit('SET_USERID', UserId)
|
|
zzSessionStorage.setItem('userId', UserId)
|
|
const userString = decodeURIComponent(escape(window.atob(data.split('.')[1].replace(/-/g, '+').replace(/_/g, '/'))))
|
|
const user = JSON.parse(userString)
|
|
// return console.log(user, user.realName)
|
|
zzSessionStorage.setItem('userTypeShortName', user.userTypeShortName)
|
|
// commit('SET_USERTYPESHORTNAME', user.userTypeShortName)
|
|
commit('SET_NAME', user.realName)
|
|
setName(user.realName)
|
|
zzSessionStorage.setItem('realName', user.realName)
|
|
zzSessionStorage.setItem('userTypeEnumInt', user.userTypeEnumInt)
|
|
var permissions = await getUserPermissions()
|
|
var menuTree = await getUserMenuTree()
|
|
commit('SET_TREE', menuTree.Result)
|
|
commit('SET_PERMISSIONS', permissions.Result)
|
|
zzSessionStorage.setItem('newTree', JSON.stringify(menuTree.Result))
|
|
zzSessionStorage.setItem('permissions', JSON.stringify(permissions.Result))
|
|
zzSessionStorage.removeItem('lastWorkbench')
|
|
} catch (e) {
|
|
console.log(e)
|
|
}
|
|
resolve(response.Result)
|
|
|
|
} else {
|
|
reject(response.ErrorMessage)
|
|
}
|
|
}).catch(() => {
|
|
reject()
|
|
})
|
|
})
|
|
},
|
|
setTree({ commit }, tree) {
|
|
commit('SET_TREE', tree)
|
|
},
|
|
setPermissions({ commit }, permissions) {
|
|
commit('SET_PERMISSIONS', permissions)
|
|
},
|
|
setTotalNeedSignSystemDocCount({ commit }, TotalNeedSignSystemDocCount) {
|
|
commit('SET_NEED_SIGN_SYSTEM_DOC_COUNT', TotalNeedSignSystemDocCount)
|
|
},
|
|
setTotalNeedSignTrialDocCount({ commit }, TotalNeedSignTrialDocCount) {
|
|
commit('SET_NEED_SIGN_TRIALS_DOC_COUNT', TotalNeedSignTrialDocCount)
|
|
},
|
|
setTrialStatusStr({ commit }, TrialStatusStr) {
|
|
commit('SET_TRIAL_STATUS_STR', TrialStatusStr)
|
|
},
|
|
// get user info
|
|
getInfo({ commit, state }) {
|
|
const token = state.token
|
|
// 解析jwt
|
|
const userString = decodeURIComponent(escape(window.atob(token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/'))))
|
|
commit('SET_TREE', JSON.parse(zzSessionStorage.getItem('newTree')))
|
|
commit('SET_PERMISSIONS', JSON.parse(zzSessionStorage.getItem('permissions')))
|
|
commit('SET_ISTESTUSER', zzSessionStorage.getItem('isTestUser'))
|
|
const user = JSON.parse(userString)
|
|
commit('SET_NAME', zzSessionStorage.getItem('realName'))
|
|
commit('SET_USERID', user.id)
|
|
commit('SET_USERNAME', zzSessionStorage.getItem('userName'))
|
|
commit('SET_NEED_SIGN_SYSTEM_DOC_COUNT', parseInt(zzSessionStorage.getItem('TotalNeedSignSystemDocCount')))
|
|
commit('SET_NEED_SIGN_TRIALS_DOC_COUNT', parseInt(zzSessionStorage.getItem('TotalNeedSignTrialDocCount')))
|
|
console.log(zzSessionStorage.getItem('TotalNeedSignSystemDocCount'))
|
|
console.log(zzSessionStorage.getItem('TotalNeedSignTrialDocCount'))
|
|
zzSessionStorage.setItem('userName', user.name)
|
|
zzSessionStorage.setItem('my_username', user.name)
|
|
zzSessionStorage.setItem('userId', user.id)
|
|
zzSessionStorage.setItem('userTypeShortName', user.userTypeShortName)
|
|
zzSessionStorage.setItem('userTypeEnumInt', user.userTypeEnumInt)
|
|
return user
|
|
},
|
|
updateInfo({ commit, state }) {
|
|
commit('SET_NAME', zzSessionStorage.getItem('realName'))
|
|
},
|
|
// user logout
|
|
logout({ commit, state }) {
|
|
removeToken() // must remove token first
|
|
resetRouter()
|
|
removeName()
|
|
zzSessionStorage.clear()
|
|
commit('RESET_STATE')
|
|
},
|
|
setToken({ commit }, token) {
|
|
commit('SET_TOKEN', token)
|
|
},
|
|
// 获取用户信息
|
|
getUserInfo({ commit, state }) {
|
|
return new Promise((resolve, reject) => {
|
|
getUser(state.userId).then(res => {
|
|
if (res.Result) {
|
|
commit('SET_ROLES', res.Result.AccountList)
|
|
}
|
|
resolve(res.Result)
|
|
}).catch(err => {
|
|
reject(err)
|
|
})
|
|
})
|
|
},
|
|
// remove token
|
|
resetToken({ commit }) {
|
|
return new Promise(resolve => {
|
|
document.cookie = ''
|
|
removeToken() // must remove token first
|
|
commit('RESET_STATE')
|
|
resolve()
|
|
})
|
|
}
|
|
}
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state,
|
|
mutations,
|
|
actions
|
|
}
|
|
|