| | |
| | | import { loginByUsername,logout } from "@/api/login/login"; |
| | | import {Message} from 'element-ui' |
| | | /* |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-12-27 09:33:01 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-07-12 09:40:00 |
| | | * @FilePath: \srs-police-affairs\src\store\modules\user.js |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | | */ |
| | | |
| | | import { loginByUsername, logout } from "@/api/login/login"; |
| | | import { Message } from "element-ui"; |
| | | import md5 from "js-md5"; |
| | | import * as auth from '@/utils/auth' |
| | | import {setStore, getStore} from '@/utils/store' |
| | | import * as auth from "@/utils/auth"; |
| | | import { setStore, getStore } from "@/utils/store"; |
| | | import { refreshToken, getButtons } from "@/api/user"; |
| | | import { validatenull } from "@/utils/validate"; |
| | | |
| | | const user = { |
| | | state: { |
| | | userInfo: getStore({name: 'userInfo'}) || [], |
| | | token: getStore({name: 'token'}) || '', |
| | | tenantId: getStore({ name: "tenantId" }) || "", |
| | | userInfo: getStore({ name: "userInfo" }) || [], |
| | | permission: getStore({ name: 'permission' }) || {}, |
| | | token: getStore({ name: "token" }) || "", |
| | | refreshToken: getStore({ name: "refreshToken" }) || "", |
| | | }, |
| | | actions: { |
| | | //根据用户名登录 |
| | |
| | | ) |
| | | .then((res) => { |
| | | const data = res.data; |
| | | if (data.error_description) { |
| | | if (res.status != 200) { |
| | | Message({ |
| | | message: data.error_description, |
| | | message: "系统异常,请联系管理员", |
| | | type: "error", |
| | | }); |
| | | //跳转首页 |
| | | this.$router.push({ path: "/login" }); |
| | | reject(res); |
| | | } else { |
| | | commit("SET_TOKEN", data.access_token); |
| | | commit('SET_USER_INFO', data); |
| | | if (data.error_description) { |
| | | Message({ |
| | | message: data.error_description, |
| | | type: "error", |
| | | }); |
| | | reject(res); |
| | | } else { |
| | | commit("SET_TOKEN", data.access_token); |
| | | commit("SET_USER_INFO", data); |
| | | commit("SET_REFRESH_TOKEN", data.refresh_token); |
| | | commit("SET_TENANT_ID", data.tenant_id); |
| | | resolve(); |
| | | } |
| | | } |
| | | resolve(); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | |
| | | }); |
| | | }, |
| | | //登出 |
| | | LogOut({commit}) { |
| | | LogOut({ commit }) { |
| | | return new Promise((resolve, reject) => { |
| | | logout().then(() => { |
| | | commit('SET_TOKEN', ''); |
| | | auth.removeToken(); |
| | | auth.removeUserInfo(); |
| | | logout() |
| | | .then(() => { |
| | | commit("SET_TOKEN", ""); |
| | | auth.removeToken(); |
| | | auth.removeUserInfo(); |
| | | auth.removeRefreshToken(); |
| | | resolve(); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | //刷新token |
| | | refreshToken({ state, commit }, userInfo) { |
| | | return new Promise((resolve, reject) => { |
| | | refreshToken( |
| | | state.refreshToken, |
| | | state.tenantId, |
| | | !validatenull(userInfo) ? userInfo.deptId : state.userInfo.dept_id, |
| | | !validatenull(userInfo) ? userInfo.roleId : state.userInfo.role_id |
| | | ) |
| | | .then((res) => { |
| | | const data = res.data; |
| | | commit("SET_TOKEN", data.access_token); |
| | | commit("SET_REFRESH_TOKEN", data.refresh_token); |
| | | commit("SET_USER_INFO", data); |
| | | resolve(); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | //获取系统按钮 |
| | | GetButtons({ commit }) { |
| | | return new Promise((resolve) => { |
| | | getButtons().then((res) => { |
| | | const data = res.data.data; |
| | | commit("SET_PERMISSION", data); |
| | | resolve(); |
| | | }).catch(error => { |
| | | reject(error) |
| | | }) |
| | | }) |
| | | }); |
| | | }); |
| | | }, |
| | | }, |
| | | mutations:{ |
| | | mutations: { |
| | | SET_TOKEN: (state, token) => { |
| | | auth.setToken(token); |
| | | state.token = token; |
| | | setStore({ name: "store-token", content: state.token }); |
| | | }, |
| | | SET_USER_INFO: (state, userInfo) => { |
| | | state.userInfo = userInfo; |
| | | auth.setUserInfo(state.userInfo) |
| | | setStore({name: 'userInfo', content: state.userInfo}) |
| | | auth.setUserInfo(state.userInfo); |
| | | setStore({ name: "userInfo", content: state.userInfo }); |
| | | }, |
| | | } |
| | | |
| | | SET_REFRESH_TOKEN: (state, refreshToken) => { |
| | | auth.setRefreshToken(refreshToken); |
| | | state.refreshToken = refreshToken; |
| | | setStore({ name: "refreshToken", content: state.refreshToken }); |
| | | }, |
| | | |
| | | SET_TENANT_ID: (state, tenantId) => { |
| | | state.tenantId = tenantId; |
| | | setStore({ name: "tenantId", content: state.tenantId }); |
| | | }, |
| | | |
| | | SET_PERMISSION: (state, permission) => { |
| | | let result = []; |
| | | |
| | | function getCode(list) { |
| | | list.forEach((ele) => { |
| | | if (typeof ele === "object") { |
| | | const chiildren = ele.children; |
| | | const code = ele.code; |
| | | if (chiildren) { |
| | | getCode(chiildren); |
| | | } else { |
| | | result.push(code); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | getCode(permission); |
| | | state.permission = {}; |
| | | result.forEach((ele) => { |
| | | state.permission[ele] = true; |
| | | }); |
| | | setStore({ name: "permission", content: state.permission }); |
| | | }, |
| | | }, |
| | | }; |
| | | |
| | | export default user; |