Files
2023-08-10 11:19:59 +08:00

159 lines
4.8 KiB
JavaScript

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