197 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			197 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.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
 | 
						|
}
 | 
						|
 |