import md5 from 'js-md5' // import { encrypt, decrypt } from '@/utils/jsencrypt' import { login, Dinglogin, OAlogin, getInfo, getMenus } from '@/api/login' import { getToken, setToken, removeToken } from '@/utils/auth' import { Message } from 'element-ui' const publicKey = '' const privateKey = '' const user = { state: { token: getToken(), name: '', // 用户名 location: '', usercode: '', // 用户编号 userRole: '', // 用户的角色权限 userid: '', // 用户的 id extension: '', // 分机号 avatar: '', // 用户头像 seatflag: 1, // 坐席标志 menus: [], // 菜单数据 mobile: '', // 手机 teamName: '', // 部门名称 teamId: '', allowdept: '' }, mutations: { SET_TOKEN: (state, token) => { state.token = token }, SET_NAME: (state, name) => { state.name = name // 用户名 }, SET_CODE: (state, usercode) => { state.usercode = usercode // 用户编号 }, SET_LOCATION: (state, location) => { state.location = location // 部门id }, SET_ROLE: (state, userRole) => { state.userRole = userRole // 用户的角色权限 }, SET_UID: (state, userid) => { state.userid = userid // 用户的 id }, SET_EXT: (state, extension) => { state.extension = extension // 分机号 }, SET_AVATAR: (state, avatar) => { state.avatar = avatar // 用户头像 }, SET_SEATFLAG: (state, seatflag) => { state.seatflag = seatflag // 坐席标志 }, SET_MENUS: (state, menus) => { state.menus = menus // 菜单数据 }, SET_MOBILE: (state, mobile) => { state.mobile = mobile // 手机 }, SET_TEAMNAME: (state, teamName) => { state.teamName = teamName // 部门名称 }, SET_TEAMID: (state, teamId) => { state.teamId = teamId // 部门id }, SET_ALLOWDEPT: (state, allowdept) => { state.allowdept = allowdept // 允用科室 } }, actions: { // 登录 Login({ commit }, userInfo) { const username = userInfo.username.trim() const password = userInfo.jiamiword // const password = md5(userInfo.password) // const passwordEncrypt = encrypt(password) // const passwordDecryptt = decrypt(passwordEncrypt); window.localStorage.setItem('ext', userInfo.extension) return new Promise((resolve, reject) => { login(username, password) .then(response => { setToken(response.data) commit('SET_TOKEN', response.data) resolve() }) .catch(error => { reject(error) }) }) }, Dinglogin({ commit }, userInfo) { const code = userInfo.code.trim() // const passwordDecryptt = decrypt(passwordEncrypt); window.localStorage.setItem('ext', userInfo.extension) return new Promise((resolve, reject) => { Dinglogin(code) .then(response => { setToken(response.data) commit('SET_TOKEN', response.data) resolve() }) .catch(error => { reject(error) }) }) }, OAlogin({ commit }, userInfo) { const loginid = userInfo.loginid const oploginid = userInfo.oploginid return new Promise((resolve, reject) => { OAlogin(loginid, oploginid) .then(response => { setToken(response.data) commit('SET_TOKEN', response.data) resolve(response) }) .catch(error => { reject(error) }) }) }, // 获取用户信息 GetInfo({ commit }) { return new Promise((resolve, reject) => { getInfo() .then(response => { console.log(response) const data = response.data // 用户信息 commit('SET_SEATFLAG', data.User.F_SeatFlag) // 坐席标志 data.User.F_SeatFlag commit('SET_NAME', data.User.F_UserName) // 用户名 commit('SET_UID', data.User.F_UserId) // 用户的 id commit('SET_CODE', data.User.F_UserCode) // 用户编号 commit('SET_MOBILE', data.User.F_Telephone) // 手机 commit('SET_LOCATION', data.Dept.F_Location) // 科室位置 commit('SET_EXT', window.localStorage.getItem('ext')) // 分机号ssss commit('SET_ALLOWDEPT', data.User.F_AllowDepartment) // 允用科室 window.localStorage.setItem('deptCode', data.Dept.F_DeptCode) window.localStorage.setItem( 'deptCode', data.Dept && data.Dept.F_DeptCode ) window.localStorage.setItem( 'storageUsercode', data.User.F_UserCode ) window.localStorage.setItem( 'storageUserphone', data.User.F_Telephone ) window.localStorage.setItem('storageUsertx', data.User.F_See) window.localStorage.setItem('storageUserid', data.User.F_UserId) window.localStorage.setItem( 'storageUsername', data.User.F_UserName ) window.localStorage.setItem('storageUserpwd', data.User.F_Password) window.localStorage.setItem('storageAllowUserDept', data.User.F_AllowDepartment) if (data.User.F_ZXZCode) { window.localStorage.setItem('groupCode', data.User.F_ZXZCode) // 用户的坐席组code } else { window.localStorage.setItem('groupCode', '364') // 用户的坐席组code } // commit('SET_AVATAR', data.F_HeadImg) // 用户头像 // 角色信息 commit('SET_ROLE', data.Role.F_RoleName) // 用户的角色权限 window.localStorage.setItem('roleName', data.Role.F_RoleName) // 用户的坐席组code window.localStorage.setItem('roleCode', data.Role.F_RoleCode) // 用户的坐席组code // 部门信息 commit('SET_TEAMNAME', data.Dept && data.Dept.F_DeptName) // 部门名称 commit('SET_TEAMID', data.Dept && data.Dept.F_DeptId) // 部门id window.localStorage.setItem( 'deptId', data.Dept && data.Dept.F_DeptId ) // 用户的坐席组code resolve(response) }) .catch(error => { reject(error) }) }) }, // 获取菜单信息 GetMenus({ commit, state }) { return new Promise((resolve, reject) => { getMenus() .then(response => { const menusdata = response.data if (menusdata && menusdata.length > 0) { // 验证返回的menusdata是否是一个非空数组 commit('SET_MENUS', menusdata) // 菜单数据 } else { removeToken() Message.error('获取菜单权限失败,请联系管理员分配菜单权限!') reject('getMneus: 菜单、按钮获取出错!') } resolve(response) }) .catch(error => { reject(error) }) }) }, // 前端 登出 FedLogOut({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') commit('SET_EXT', '') removeToken() window.localStorage.removeItem('ext') // 分机号 window.sessionStorage.removeItem('telIsLogin') // 签入状态 resolve() }) }, // 修改用户头像 SetAvatar({ commit }, msg) { commit('SET_AVATAR', msg) // 用户头像 } } } export default user