import { getToken, setToken, removeToken } from '@/utils/token' import app from '@/api/console.js' import apiLogin from '@/api/login.js' import apiMessage from '@/api/system/message.js' import apiManage from '@/api/manage/manage.js' import apiCourse from "@/api/modules/course.js"; import apiBoeCourse from "@/api/boe/course.js"; import apiBoeLogout from "@/api/boe/login.js"; import apiStat from "@/api/phase2/stat.js"; import apiUserbasic from '@/api/boe/userbasic.js'; const user = { state: { info: { aid: '', loginName: '',sign:'', name: '', avatar: '', userNo: '', departId: '', departName: '', departFullName: '',studyTotal:0,studyTotalH:0}, identity: 2, // 1表学员,2表教师,3表管理员。目前只有3会被设置表示学员教师管理员身份都有 msg:0,//未读消息数 messagesBeReviewed: 0,//待审核的消息 studyTaskCount:0,//学习任务数 curIdentity: sessionStorage.getItem("curIdentity") == null ? 1 : sessionStorage.getItem("curIdentity"), // 用户当前选择的身份 1学员 2教师 3管理员 permissions: [], intTimeNote:0, }, mutations: { SET_IntTimeNote: (state, u) => { state.intTimeNote = u; }, SET_Identity: (state, iden) => { state.identity = iden }, SET_Msg: (state, m) => { state.msg = m }, SET_MessagesBeReviewed: (state, m) => { state.messagesBeReviewed = m }, SET_StudyTaskCount: (state, m) => { state.studyTaskCount = m }, SET_CurIdentity: (state, iden) => { state.curIdentity = iden sessionStorage.setItem("curIdentity", iden); }, SET_UserInfo: (state, uinfo) => { state.info = uinfo }, SET_PERMISSIONS: (state, permissions) => { state.permissions = permissions }, }, actions: { // /用户触发事件 userTrigger({ commit }, event) { event.source='page'; apiStat.sendEvent(event); }, SetIntTimeNote({ commit }, iden) { return new Promise((resolve) => { commit('SET_IntTimeNote', iden); resolve(); }) }, refrashMsg({ commit }) { apiMessage.isRead().then(res=>{ if(res.status==200){ commit('SET_Msg',res.result); }else{ console.log("读取未读消息失败:"+res.message); } }) }, refrashReviewed({ commit }) { apiCourse.countWaitAudit().then(res=>{ if(res.status==200){ commit('SET_MessagesBeReviewed',res.result); }else{ console.log("读取待审核消息失败:"+res.message); } }) }, refrashStudyTaskCount({ commit }) { apiManage.getTaskNum().then(res=>{ if(res.code==200){ commit('SET_StudyTaskCount',res.data.todoTaskCounts); }else{ console.log("获取学习任务数失败:"+res.msg); } }) // apiBoeCourse.cmtaskList({page:1,size:1,get_count:1}).then(res=>{ // if(res.status==200){ // let count = 0; // if(res.result.count > 0){ // count = res.result.count; // } // commit('SET_StudyTaskCount',count); // }else{ // console.log("读取学习任务数失败:"+res.message); // } // }) }, //设置用户身份 SetIdentity({ commit }, iden) { return new Promise((resolve) => { commit('SET_Identity', iden); resolve(); }) }, // 设置当前身份状态 SetCurIdentity({ commit }, iden) { return new Promise((resolve) => { commit('SET_CurIdentity', iden); resolve(); }) }, //登录 Login({ commit }, userInfo) { const loginName = userInfo.loginName.trim() const password = userInfo.password const code = userInfo.code const key = userInfo.key let that = this; return new Promise((resolve, reject) => { apiLogin.login(loginName, password, code,key).then(res => { if(res.status == 200){ setToken(res.result.access_token); // 重置portal中case页面的阅读协议状态 that.dispatch('portal/SetReadProtocol', false); } resolve(res); }).catch(error => { reject(error) }) }) }, //初始化框架数据,获取用户信息,用户菜单 InitData({ commit, state }) { let token = getToken(); return new Promise((resolve, reject) => { app.initData().then(res =>{ 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); } // 只保留二级 let dfn = ""; if(res.result.departFullName){ let dfnArray = res.result.departFullName.split('/'); if(dfnArray.length > 2){ dfn = dfnArray[0] + "/" + dfnArray[1]; }else{ dfn = res.result.departFullName; } } const user = { aid: res.result.aid, sysId:res.result.sysId, name: res.result.name, avatar: res.result.avatar, sex:res.result.sex? res.result.sex:1, loginName: res.result.loginName, userNo: res.result.userNo, showHome:res.result.showHome, companyId:res.result.companyId, departId: res.result.departId, adminType:0, departName: res.result.departName, departFullName: dfn, studyTotal: res.result.studyTotal, studyTotalH:studyTotalH, sign:res.result.sign, }; if(res.result.adminType){ user.adminType=res.result.adminType; } //console.log(user,'user'); // user.avatar = user.avatar == "" ? require("@/assets/images/user/default.png") : process.env.VUE_APP_FILE_BASE_URL + user.avatar; user.avatar = user.avatar == "" ? "" : process.env.VUE_APP_FILE_BASE_URL + user.avatar; commit('SET_UserInfo', user); commit('SET_Identity', res.result.userType); //console.log(user) resolve(res) }).catch(error => { reject(error) }) }) }, //获取用户信息 // GetUserInfo({ commit, state }) { // return new Promise((resolve, reject) => { // apiUser.getUserInfo(state.token).then(res => { // const user = { // aid: res.result.aid, // name: res.result.name, // avatar: res.result.avatar, // loginName: res.result.loginName, // userNo: res.result.userNo, // departId: res.result.departId, // departName: res.result.departName // }; // user.avatar = user.avatar == "" ? require("@/assets/images/user/default.png") : process.env.VUE_APP_BASE_API + res.result.avatar; // commit('SET_UserInfo', user); // commit('SET_Identity', res.result.userType); // resolve(res) // }).catch(error => { // reject(error) // }) // }) // }, //更新用户信息 // UpdateUserInfo({ commit, state }, uinfo) { // return new Promise((resolve, reject) => { // apiUser.saveUserInfo(uinfo).then(res => { // commit('SET_UserInfo', uinfo); // resolve(res) // }).catch(error => { // reject(error) // }) // }) // }, // 退出系统 LogOut({ commit, state }) { return new Promise((resolve, reject) => { commit('SET_PERMISSIONS', []) removeToken() //resolve() //apiLogin.logout(); apiUserbasic.logout().then(() => { resolve() }).catch(error => { reject(error) }) }) }, // 前端 登出 FedLogOut({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') removeToken() resolve() }) } } } export default user