mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-10 03:16:42 +08:00
251 lines
9.6 KiB
JavaScript
251 lines
9.6 KiB
JavaScript
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
|