import { getUserInfo, removeSessionID, setUserInfo } from '@/utils/auth'; import { user } from '@/store/mutation-types'; import { resetRouter } from '@/router'; import { login } from '@/api/user'; const getDefaultSate = () => { const { session_id, user_code, user_real_name, user_type, user_name, popedom_code_list } = getUserInfo(); return { session_id: session_id, user_code: user_code, user_real_name: user_real_name, user_type: user_type, user_name: user_name, popedom_code_list: popedom_code_list === undefined ? [] : JSON.parse(popedom_code_list) }; }; const state = getDefaultSate(); const mutations = { [user.RESET_STATE]: state => { Object.assign(state, getDefaultSate()); }, [user.SET_USER_INFO]: ( state, { user_code, user_real_name, user_type, session_id, popedom_code_list, user_name } ) => { state.user_code = user_code; state.user_real_name = user_real_name; state.user_type = user_type; state.session_id = session_id; state.user_name = user_name; state.popedom_code_list = popedom_code_list; } }; const actions = { // 登录 login({ commit }, userInfo) { const { loginForm } = userInfo; return new Promise((reslove, reject) => { login(loginForm) .then(response => { setUserInfo(response); commit(user.SET_USER_INFO, response); reslove(); }) .catch(error => { reject(error); }); }); }, // 用户退出 signOut({ commit }) { return new Promise(resolve => { removeSessionID(); resetRouter(); commit(user.RESET_STATE); resolve(); }); }, resetSessionID({ commit }) { return new Promise(reslove => { removeSessionID(); commit(user.RESET_STATE); reslove(); }); } }; export default { namespaced: true, state, mutations, actions };