import {login, logout, getInfo, socialLogin, socialLogin2} from '@/api/login' import { getToken, setToken, removeToken } from '@/utils/auth' import {getNotReadInternalMessageTotal,} from '@/api/system/internalMessage' import {taskTodoCount} from "@/api/bpm/task"; const user = { state: { token: getToken(), id: 0, // 用户编号 name: '', avatar: '', roles: [], permissions: [], notMessage:0, matterNum:0 }, mutations: { SET_ID: (state, id) => { state.id = id }, SET_TOKEN: (state, token) => { state.token = token }, SET_NAME: (state, name) => { state.name = name }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, SET_ROLES: (state, roles) => { state.roles = roles }, SET_PERMISSIONS: (state, permissions) => { state.permissions = permissions }, SET_UNREAD:(state, notMessage)=>{ state.notMessage = notMessage; }, SET_TODO:(state, matterNum) => { state.matterNum = matterNum; } }, actions: { // 登录 Login({ commit }, userInfo) { const username = userInfo.username.trim() const password = userInfo.password const code = userInfo.code const uuid = userInfo.uuid return new Promise((resolve, reject) => { login(username, password, code, uuid).then(res => { res = res.data; setToken(res.token) commit('SET_TOKEN', res.token) resolve() }).catch(error => { reject(error) }) }) }, // 社交登录 SocialLogin({ commit }, userInfo) { const code = userInfo.code const state = userInfo.state const type = userInfo.type return new Promise((resolve, reject) => { socialLogin(type, code, state).then(res => { res = res.data; setToken(res.token) commit('SET_TOKEN', res.token) resolve() }).catch(error => { reject(error) }) }) }, // 社交登录 SocialLogin2({ commit }, userInfo) { const code = userInfo.code const state = userInfo.state const type = userInfo.type const username = userInfo.username.trim() const password = userInfo.password return new Promise((resolve, reject) => { socialLogin2(type, code, state, username, password).then(res => { res = res.data; setToken(res.token) commit('SET_TOKEN', res.token) resolve() }).catch(error => { reject(error) }) }) }, // 获取用户信息 GetInfo({ commit, state }) { return new Promise((resolve, reject) => { getInfo().then(res => { // 没有 data 数据,赋予个默认值 if (!res) { res = { data: { roles: [], user: { id: '', avatar: '', nickname: '' } } } } res = res.data; // 读取 data 数据 const user = res.user const avatar = user.avatar === "" ? require("@/assets/images/profile.jpg") : user.avatar; if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 commit('SET_ROLES', res.roles) commit('SET_PERMISSIONS', res.permissions) } else { commit('SET_ROLES', ['ROLE_DEFAULT']) } commit('SET_ID', user.id) commit('SET_NAME', user.nickname) commit('SET_AVATAR', avatar) resolve(res) }).catch(error => { reject(error) }) }) }, // 退出系统 LogOut({ commit, state }) { return new Promise((resolve, reject) => { logout(state.token).then(() => { commit('SET_TOKEN', '') commit('SET_ROLES', []) commit('SET_PERMISSIONS', []) removeToken() resolve() }).catch(error => { reject(error) }) }) }, // 前端 登出 FedLogOut({ commit }) { return new Promise(resolve => { commit('SET_TOKEN', '') removeToken() resolve() }) }, // 获取未登录消息 getNotMessage({commit}){ return new Promise((resolve, reject) =>{ getNotReadInternalMessageTotal().then((r)=>{ commit('SET_UNREAD',r.data); resolve() }).catch(error =>{ reject(error); }) }) }, //获取待办事项 getToDoList({commit}){ return new Promise((resolve,reject) =>{ taskTodoCount().then(r => { commit('SET_TODO',r.data) resolve() }).catch(err => { reject(err) }) }) } } } export default user