import util from '@.mobile/plugin/axios/util' import constant from '@.mobile/plugin/axios/constant' import common from '@.mobile/plugin/axios/common' import apis from '@.mobile/api/apis' const state = { token: util.getToken(), name: '', avatar: '', roles: [], perms: [] } const mutations = { SET_TOKEN: (state, token) => { state.token = token }, SET_NAME: (state, name) => { state.name = name }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, SET_ROLES: (state, roles) => { state.roles = roles }, SET_PERMS: (state, perms) => { state.perms = perms } } const actions = { // user login login({ commit }, userInfo) { const { username, password, validateCode, captchaId, url, checked } = userInfo return new Promise((resolve, reject) => { const postData = { username: username, password: password, code: validateCode, rememberMe: checked } if (captchaId) { postData.captchaId = captchaId } apis.login('api/ops', url, postData) .then(res => { if (res.data[constant.KEY_RESULT]) { const { data } = res const user = data[constant.KEY_USER] common.setUser(user) if (user && user.isInit === '1') { commit('SET_TOKEN', data[constant.KEY_TOKEN]) util.setToken(data[constant.KEY_TOKEN]) } else { reject({ isInit: '0' }) } } resolve(res.data) }) .catch((err, x) => { reject(err) }) }) }, // user login login1({ commit }, userInfo) { const { username, password, validateCode, captchaId, url, checked } = userInfo return new Promise((resolve, reject) => { const postData = { userName: username, password: password, code: validateCode, rememberMe: checked } if (captchaId) { postData.captchaId = captchaId } apis.login('wx/auth', url, postData) .then(res => { console.log(res) if (res.data[constant.KEY_RESULT]) { console.log(res.data) const { data } = res const user = data[constant.KEY_USER] common.setUser(user) if (user) { commit('SET_TOKEN', data[constant.KEY_TOKEN]) util.setToken(data[constant.KEY_TOKEN]) } else { reject('登录失败,未获取到用户信息') } } resolve(res.data) }) .catch((err, x) => { reject(err) }) }) }, // user logout logout({ commit, state }) { return new Promise((resolve, reject) => { apis.logout('web', 'logout', '') .then(logout => { commit('SET_TOKEN', '') commit('SET_NAME', '') commit('SET_AVATAR', '') common.removeStorage(common.MenuKey()) common.removeStorage(common.UserKey()) common.removeStorage(common.BizKey()) util.removeToken() resolve() }) .catch(error => { reject(error) }) }) }, cleanCache({ commit, state }) { return new Promise((resolve, reject) => { commit('SET_TOKEN', '') commit('SET_NAME', '') commit('SET_AVATAR', '') common.removeStorage(common.MenuKey()) common.removeStorage(common.UserKey()) common.removeStorage(common.BizKey()) util.removeToken() resolve() }) }, // remove token resetToken({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') localStorage.removeItem(constant.KEY_USER + common.currUserType()) util.removeToken() resolve() }) } } export default { namespaced: true, state, mutations, actions }