import { getToken, setToken, removeToken } from '@/utils/token' import app from '@/api/app.js' import apiLogin from '@/api/login.js' import apiMessage from '@/api/system/message.js' import config from '@/config/index.js' import apiUserbasic from '@/api/boe/userbasic.js' const user = { state: { info: { aid: '', loginName: '', name: '', avatar: '', userNo: '', departId: '', departName: '', departFullName: '',studyTotal:0,studyTotalH:0}, msg:0,//未读消息数 studyTaskCount:0,//学习任务数 identity: 1, permissions: [], isOneStady:0, }, mutations: { SET_Identity: (state, iden) => { state.identity = iden }, SET_Msg: (state, m) => { state.msg = m }, SET_UserInfo: (state, uinfo) => { state.info = uinfo }, SET_PERMISSIONS: (state, permissions) => { state.permissions = permissions }, SET_isOneStady: (state, isOneStady) => { state.isOneStady = isOneStady } }, actions: { //第一次登录 SetIdentity({ commit }, iden) { return new Promise((resolve) => { commit('SET_isOneStady', iden); resolve(); }) }, //设置用户身份 SetIsOneStady({ commit }, iden) { return new Promise((resolve) => { commit('SET_Identity', iden); resolve(); }) }, //刷新用户的消息 refrashMsg({ commit }) { apiMessage.isRead().then(res=>{ if(res.status==200){ commit('SET_Msg',res.result); }else{ console.log("读取未读消息失败:"+res.message); } }) }, //登录 Login({ commit }, userInfo) { const loginName = userInfo.loginName.trim() const password = userInfo.password const code = userInfo.code return new Promise((resolve, reject) => { apiLogin.login(loginName, password, code).then(res => { //setToken(res.result.access_token); resolve(res); }).catch(error => { reject(error) }) }) }, //初始化框架数据,获取用户信息,用户菜单 InitData({ commit}) { let token = getToken(); return new Promise((resolve, reject) => { //console.log(token); app.initData().then(res => { //console.log(res.result,'res.result'); let studyTotalH = 0;// 小时显示 let t1=parseFloat(res.result.studyTotal); let t2=parseFloat(res.result.learningDuration); if(t1 > 0 || t2 > 0){ studyTotalH = parseFloat((t1 + t2)/ 3600).toFixed(1); } const user = { aid: res.result.aid, name: res.result.name, avatar: res.result.avatar, loginName: res.result.loginName, userNo: res.result.userNo, code:res.result.userNo, departId: res.result.departId, departName: res.result.departName, departFullName: res.result.departFullName, studyTotal: res.result.studyTotal, studyTotalH:studyTotalH, sex:res.result.sex, sysId:res.result.sysId }; user.avatar = user.avatar == "" ? "" : config.fileUrl + user.avatar; commit('SET_UserInfo', user); //用户数据存储在本地一份 uni.setStorageSync('localUserInfo',JSON.stringify(user)); resolve(res) }).catch(error => { reject(error) }) }) }, GetUserInfo(context) { return new Promise((resolve,reject) => { //先从本地获取 let hasInfo=uni.getStorageSync('localUserInfo'); if(hasInfo){ let uinfo=JSON.parse(hasInfo); context.commit('SET_UserInfo', uinfo); resolve(uinfo) }else{ context.dispatch('InitData'); } }) }, //更新用户信息 UpdateUserInfo({ commit}, uinfo) { uni.setStorageSync('localUserInfo',JSON.stringify(uinfo)); commit('SET_UserInfo', uinfo); }, // 退出系统 LogOut({ commit, state }) { return new Promise((resolve, reject) => { commit('SET_PERMISSIONS', []) removeToken() //resolve() //apiLogin.logout() apiUserbasic.logout().then((res) => { resolve(res) }).catch(error => { reject(error) }) }) }, // 前端 登出 FedLogOut({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') removeToken() resolve() }) } } } export default user