Files
learning-system-portal/src/store/modules/user.js
2023-07-06 14:49:21 +08:00

251 lines
9.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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