import { login, logout, changePwd } from '@/api/user/login'; import { getToken, setToken, removeToken } from '@/utils/auth'; import { SET_TOKEN, UPDATE_USERINFO } from './mutation-types'; import { updateUserinfo, updateUserCellphone } from '@/api/user/update'; import md5 from 'blueimp-md5'; const state = { token: getToken(), name: '', id: '', createDate: '', trueName: '', isSetPassword: null, }; const getters = { token: state => state.token, userInfo: ({ token, ...other }) => other, adminId: state => state.id, }; const actions = { // 登录 Login({ commit, dispatch }, { remenberAccount, ...entity }) { return login({ data: { ...entity, pwd: md5(entity.pwd), }, }).then(response => { const { token, data: { userRoles, userInfo }, } = response; if (remenberAccount) { setToken(token, 7); } else { setToken(token, 1); } commit(SET_TOKEN, token); commit(UPDATE_USERINFO, userInfo); dispatch('getAsyncRoute', userRoles); }); }, // token登录 TokenLogin({ commit, dispatch }, entity) { return login(entity).then(response => { const { data: { userRoles, userInfo }, } = response; commit(UPDATE_USERINFO, userInfo); dispatch('getAsyncRoute', userRoles); }); }, // 登出 LogOut({ commit, state }) { return logout(state.token).then(() => { commit(SET_TOKEN, ''); removeToken(); resolve(); }); }, // 前端 登出 FedLogOut({ commit }) { return new Promise(resolve => { commit(SET_TOKEN, ''); removeToken(); resolve(); }); }, // 修改密码 updatePassword({ commit, dispatch }, { oldPwd, newPwd }) { return changePwd({ data: { oldPwd: md5(oldPwd), newPwd: md5(newPwd), }, }).then(res => { const { data: { userRoles, userInfo }, } = res; commit(UPDATE_USERINFO, userInfo); dispatch('getAsyncRoute', userRoles); }); }, // 修改资料 updateUserinfo({ commit, dispatch }, { name, newPwd, oldPwd }) { return updateUserinfo({ data: newPwd ? { name, newPwd: md5(newPwd), oldPwd: md5(oldPwd), } : { name, }, }).then(res => { const { data: { userRoles, userInfo }, } = res; commit(UPDATE_USERINFO, userInfo); dispatch('getAsyncRoute', userRoles); return res; }); }, // 修改电话 updateUserCellphone({ commit }, entity) { return updateUserCellphone({ params: entity, }).then(res => { console.log(res); commit(UPDATE_USERINFO, entity); return res; }); }, }; const mutations = { [SET_TOKEN](state, token) { state.token = token; }, [UPDATE_USERINFO](state, userInfo) { state = Object.assign(state, { ...userInfo, }); }, }; export default { state, getters, actions, mutations, };