import $API from '../../api' import $http from '@/utils/axios' import { setToken, getToken, setAccount, getAccount } from '@/utils/navigation' // import { replaceUrlParams } from '@/utils/tools' const state = { account: '', userName: '', userId: '', avator: '', orgUnitName: '', orgUnitCode: '', orgUnitLevel: '', orgSectorName: '', orgSectorCode: '', isAdmin: null, token: getToken(), access: 0, hasGetInfo: false } const mutations = { setAvator (state, avator) { state.avator = avator }, setUserId (state, id) { state.userId = id }, setAccount (state, account) { state.account = account setAccount(account) }, setUserName (state, name) { state.userName = name }, setOrgUnitName (state, orgUnitName) { state.orgUnitName = orgUnitName }, setOrgUnitCode (state, orgUnitCode) { state.orgUnitCode = orgUnitCode }, setOrgSectorName (state, orgSectorName) { state.orgSectorName = orgSectorName }, setOrgSectorCode (state, orgSectorCode) { state.orgSectorCode = orgSectorCode }, setOrgUnitLevel (state, orgUnitLevel) { state.orgUnitLevel = orgUnitLevel }, setAdmin (state, isAdmin) { state.isAdmin = isAdmin }, setAccess (state, access) { state.access = access }, setToken (state, token) { state.token = token setToken(token) }, setHasGetInfo (state, status) { state.hasGetInfo = status } } const actions = { // 登录 handleLogin ({ commit }, { account, password }) { return new Promise((resolve, reject) => { $http.post($API.GetUser, { userName: account, passWord: password }).then(data => { console.log(data) commit('setToken', '12345668') commit('setAccount', account) resolve() }).catch(err => { reject(err) }) }) }, // 退出登录 handleLogOut ({ state, commit }) { return new Promise((resolve, reject) => { commit('setToken', '') commit('setAccount', '') commit('setAccess', 0) resolve() }) }, // 获取用户信息 getUserInfo ({ state, commit, dispatch }) { const account = getAccount() || 'admin' return new Promise((resolve, reject) => { try { $http.get($API.AAA_GET_USER_INFO, { token: state.token }).then(response => { const data = response.data commit('setAvator', data.avator) // commit('setOrgUnitName', data.orgUnitName) // commit('setOrgUnitCode', data.orgUnitCode) commit('setUserId', data.userId) commit('setAccess', data.access) commit('setHasGetInfo', true) if (account === 'tianjun') { // admin的场景走mock commit('setAccount', data.account) commit('setUserName', data.userName) resolve(data) } else { $http.get($API.MDM_GET_USER_ACCOUNT_DETAIL, { account: account }).then(response => { const d = response.data if (d) { commit('setAccount', d.unifiedIdentityAcc) commit('setUserName', d.userName) // 获取用户后,获取组织机构 dispatch('getUserOrgInfo').then(() => { resolve(d) }).catch(err => { alert('不能获取用户组织机构') reject(err) }) } else { commit('setToken', '') commit('setAccount', '') commit('setAccess', 0) resolve(false) } }) } }).catch(err => { reject(err) }) } catch (error) { reject(error) } }) } } export default { state, mutations, actions }