198 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
| import { getToken, setToken, removeToken, setName, removeName } from '@/utils/auth'
 | |
| import { login, getUserMenuTree, getUserPermissions } from '@/api/user'
 | |
| 
 | |
| 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
 | |
|   }
 | |
| }
 | |
| 
 | |
| const state = getDefaultState()
 | |
| 
 | |
| const mutations = {
 | |
|   RESET_STATE: (state) => {
 | |
|     Object.assign(state, getDefaultState())
 | |
|   },
 | |
|   SET_TOKEN: (state, 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_NEED_SIGN_SYSTEM_DOC_COUNT: (state, TotalNeedSignSystemDocCount) => {
 | |
|     /* eslint-disable */
 | |
|     if (eval(process.env.VUE_APP_WORD_FOR_PERMISSION)) {
 | |
|       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)) {
 | |
|       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 = {
 | |
|   // 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)
 | |
|               // 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()
 | |
|       })
 | |
|     })
 | |
|   },
 | |
|   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')))
 | |
|     const user = JSON.parse(userString)
 | |
|     commit('SET_NAME', user.realName)
 | |
|     commit('SET_USERID', user.id)
 | |
|     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('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)
 | |
|   },
 | |
| 
 | |
|   // 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
 | |
| }
 | |
| 
 |