import Setting from '@/setting' import util from '@/libs/util' import {post,get,del,put} from '@/plugins/requests/index.js' import api from '@/api' import addRoutes from '@/libs/route/addRoutes' /** * 用户信息 * */ export default { namespaced: true, state: { avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png', userId: 3, userName: '', schoolId: '', roleId: '', dataTime: '' }, mutations: { SET_INFO: (state, info) => { if(info.avatar) state.avatar = info.userAvatars state.userId = info.userId state.schoolId = info.schoolId state.userName = info.userName state.roleId = info.roleId state.dataTime = info.dataTime }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, SET_USERNAME: (state, userName) => { state.userName = userName }, }, actions: { login({ state,commit }, userInfo) { return new Promise((resolve, reject) => { post(api.logins, userInfo).then(res => { console.log(JSON.stringify(res)); if(res.status == 200){ let { data } = res; // 生成路由权限 // 每个系统都是用这套角色权限代码的,后端也是基本一样,除了个别字段可能会不一样 // 总体来说就两个步骤: 1是生成能够访问的路由的数组集合,2是生成能看到的按钮的数组集合 //res.message.listValue && Setting.dynamicRoute && addRoutes(res.message.listValue) util.local.set(Setting.tokenKey,data.token,Setting.tokenExpires) util.successMsg('登录成功') console.log(data,'登录保存的数据'); commit('SET_INFO',data) resolve() }else{ util.errorMsg(res.errmessage || res.message) reject(res) } }).catch(error => { reject(error) }) }) }, logout({ commit, state, dispatch }) { return new Promise((resolve, reject) => { util.local.remove(Setting.storeKey) util.local.remove(Setting.tokenKey) location.reload() resolve() }) }, setAvatar({ state,commit },avatar) { commit('SET_AVATAR',avatar) }, setInfo({ state,commit },info) { commit('SET_INFO',info) }, setUserName({ state,commit },userName) { commit('SET_USERNAME',userName) }, } }