import { login, logout, getInfo } from "@/api/login"; import { getToken, setToken, removeToken, removeAdminId, setAdminId, } from "@/utils/auth"; import {sha256} from "js-sha256"; const user = { state: { adminId: "", token: getToken(), name: "", avatar: "", roles: [], permissions: [], employeeName: "", customerId: "", companyName: "", locDeptCode: "", locInvCode: "", locDeptName: "", locInvName: "", }, mutations: { SET_ADMINID: (state, adminId) => { state.adminId = adminId; }, 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_EMPLOYEENAME: (state, employeeName) => { state.employeeName = employeeName; }, SET_CUSTOMERID: (state, customerId) => { state.customerId = customerId; }, SET_COMPANYNAME: (state, companyName) => { state.companyName = companyName; }, SET_LOCDEPTCODE: (state, locDeptCode) => { state.locDeptCode = locDeptCode; }, SET_LOCIVNCODE: (state, locInvCode) => { state.locInvCode = locInvCode; }, SET_LOCDEPTNAME: (state, locDeptName) => { state.locDeptName = locDeptName; }, SET_LOCIVNNAME: (state, locInvName) => { state.locInvName = locInvName; }, }, actions: { // 登录 Login({ commit }, userInfo) { const username = userInfo.username.trim(); // const password = userInfo.password; const password = sha256(userInfo.password) const code = userInfo.code; const uuid = userInfo.uuid; return new Promise((resolve, reject) => { login(username, password, code, uuid) .then((res) => { if (res.code == 20000) { setToken(res.data.token); setAdminId(res.data.id); commit("SET_TOKEN", res.data.token); commit("SET_ADMINID", res.data.id); resolve(res); } else { reject(res.message); } }) .catch((error) => { reject(error); }); }); }, // 获取用户信息 GetInfo({ commit, state }) { return new Promise((resolve, reject) => { getInfo() .then((res) => { const user = res.data; const avatar = user.avatar == "" || user.avatar == null ? require("@/assets/images/glxplogo.png") : user.avatar; if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 commit("SET_ROLES", res.data.roles); commit("SET_PERMISSIONS", res.data.permissions); } else { commit("SET_ROLES", ["ROLE_DEFAULT"]); } commit("SET_AVATAR", avatar); commit("SET_NAME", user.userName); commit("SET_EMPLOYEENAME", user.employeeName); commit("SET_CUSTOMERID", user.customerId); commit("SET_COMPANYNAME", user.companyName); commit("SET_LOCDEPTCODE", user.locDeptCode); commit("SET_LOCIVNCODE", user.locInvCode); commit("SET_LOCDEPTNAME", user.locDeptName); commit("SET_LOCIVNNAME", user.locInvName); resolve(res); // console.log("获取用户数据成功-=----"); }) .catch((error) => { reject(error); }); }); }, // 退出系统 LogOut({ commit, state }) { return new Promise((resolve, reject) => { logout(state.token) .then(() => { commit("SET_ADMINID", ""); commit("SET_TOKEN", ""); commit("SET_ROLES", []); commit("SET_PERMISSIONS", []); commit("SET_EMPLOYEENAME", ""); commit("SET_CUSTOMERID", ""); commit("SET_COMPANYNAME", ""); commit("SET_LOCDEPTCODE", ""); commit("SET_LOCIVNCODE", ""); commit("SET_LOCDEPTNAME", ""); commit("SET_LOCIVNNAME", ""); removeToken(); removeAdminId(); resolve(); }) .catch((error) => { reject(error); }); }); }, }, }; export default user;