From 16e9746e5da1ac0485fde18e71fb7bf8ee376d42 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 19 Jan 2026 11:38:00 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web
---
applications/task-work-order/src/store/modules/user.js | 769 +++++++++++++++++++++++++++++------------------------------
1 files changed, 379 insertions(+), 390 deletions(-)
diff --git a/applications/task-work-order/src/store/modules/user.js b/applications/task-work-order/src/store/modules/user.js
index a111e36..969c21a 100644
--- a/applications/task-work-order/src/store/modules/user.js
+++ b/applications/task-work-order/src/store/modules/user.js
@@ -1,396 +1,385 @@
-import {
- setToken,
- setRefreshToken,
- removeToken,
- removeRefreshToken,
- getRefreshToken,
-} from '@/utils/auth';
-import { setStore, getStore } from '@/utils/store';
-import { validatenull } from '@/utils/validate';
-import { deepClone } from '@/utils/util';
+import { setToken, setRefreshToken, removeToken, removeRefreshToken, getRefreshToken } from '@/utils/auth'
+import { setStore, getStore } from '@/utils/store'
+import { validatenull } from '@/utils/validate'
+import { deepClone } from '@/utils/util'
import defaultAva from '@/assets/images/defaultava.png'
import {
- loginByUsername,
- loginBySocial,
- loginBySso,
- loginByPhone,
- getUserInfo,
- logout,
- refreshToken,
- getButtons,
- registerUser,
- getParentDeptInfo
-} from '@/api/user';
-import { getRoutes, getTopMenu } from '@/api/system/menu';
-import { formatPath } from '@/router/avue-router';
-import { ElMessage } from 'element-plus';
-import { encrypt } from '@/utils/sm2';
-import md5 from 'js-md5';
-
+ loginByUsername,
+ loginBySocial,
+ loginBySso,
+ loginByPhone,
+ getUserInfo,
+ logout,
+ refreshToken,
+ getButtons,
+ registerUser,
+ getParentDeptInfo,
+} from '@/api/user'
+import { getRoutes, getTopMenu } from '@/api/system/menu'
+import { formatPath } from '@/router/avue-router'
+import { ElMessage } from 'element-plus'
+import { encrypt } from '@/utils/sm2'
+import md5 from 'js-md5'
const user = {
- state: {
- tenantId: getStore({ name: 'tenantId' }) || '',
- userInfo: getStore({ name: 'userInfo' }) || [],
- permission: getStore({ name: 'permission' }) || {},
- roles: [],
- menuId: {},
- menu: getStore({ name: 'menu' }) || [],
- menuAll: getStore({ name: 'menuAll' }) || [],
- token: getStore({ name: 'token' }) || '',
- refreshToken: getStore({ name: 'refreshToken' }) || '',
- parentDeptInfo: getStore({ name: 'parentDeptInfo' }) || '',
+ state: {
+ tenantId: getStore({ name: 'tenantId' }) || '',
+ userInfo: getStore({ name: 'userInfo' }) || [],
+ permission: getStore({ name: 'permission' }) || {},
+ roles: [],
+ menuId: {},
+ menu: getStore({ name: 'menu' }) || [],
+ menuAll: getStore({ name: 'menuAll' }) || [],
+ token: getStore({ name: 'token' }) || '',
+ refreshToken: getStore({ name: 'refreshToken' }) || '',
+ parentDeptInfo: getStore({ name: 'parentDeptInfo' }) || '',
+ },
+ actions: {
+ //根据用户名登录
+ LoginByUsername({ commit }, userInfo = {}) {
+ return new Promise((resolve, reject) => {
+ loginByUsername(
+ userInfo.tenantId,
+ userInfo.deptId,
+ userInfo.roleId,
+ userInfo.username,
+ md5(userInfo.password),
+ userInfo.type,
+ userInfo.key,
+ userInfo.code
+ )
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('SET_USER_INFO', data)
+ commit('SET_PARENT_DEPT_INFO', data.dept_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //根据第三方信息登录
+ LoginBySocial({ commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state)
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //根据单点信息登录
+ LoginBySso({ commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ loginBySso(userInfo.state, userInfo.code)
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //根据手机信息登录
+ LoginByPhone({ commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ loginByPhone(userInfo.tenantId, encrypt(userInfo.phone), userInfo.codeId, userInfo.codeValue)
+ .then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //用户注册
+ RegisterUser({ commit }, userInfo = {}) {
+ return new Promise((resolve, reject) => {
+ registerUser(
+ userInfo.tenantId,
+ userInfo.name,
+ userInfo.account,
+ encrypt(userInfo.password),
+ userInfo.phone,
+ userInfo.email
+ ).then(res => {
+ const data = res.data
+ if (data.error_description) {
+ ElMessage({
+ message: data.error_description,
+ type: 'error',
+ })
+ reject(data.error_description)
+ } else {
+ commit('SET_TOKEN', data.access_token)
+ commit('SET_REFRESH_TOKEN', data.refresh_token)
+ commit('SET_USER_INFO', data)
+ commit('SET_TENANT_ID', data.tenant_id)
+ commit('DEL_ALL_TAG')
+ commit('CLEAR_LOCK')
+ }
+ resolve()
+ })
+ })
+ },
+ GetUserInfo({ commit }) {
+ return new Promise((resolve, reject) => {
+ getUserInfo()
+ .then(res => {
+ const data = res.data.data
+ commit('SET_ROLES', data.roles)
+ resolve(data)
+ })
+ .catch(err => {
+ reject(err)
+ })
+ })
+ },
+ //刷新token
+ RefreshToken({ state, commit }, userInfo) {
+ return new Promise((resolve, reject) => {
+ refreshToken(
+ getRefreshToken(),
+ 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)
+ })
+ })
+ },
+ // 登出
+ LogOut({ commit }) {
+ return new Promise((resolve, reject) => {
+ logout()
+ .then(() => {
+ commit('SET_TOKEN', '')
+ commit('SET_MENU_ALL_NULL', [])
+ commit('SET_MENU', [])
+ commit('SET_ROLES', [])
+ commit('DEL_ALL_TAG', [])
+ commit('CLEAR_LOCK')
+ removeToken()
+ removeRefreshToken()
+ resolve()
+ })
+ .catch(error => {
+ reject(error)
+ })
+ })
+ },
+ //注销session
+ FedLogOut({ commit }) {
+ return new Promise(resolve => {
+ commit('SET_TOKEN', '')
+ commit('SET_MENU_ALL_NULL', [])
+ commit('SET_MENU', [])
+ commit('SET_ROLES', [])
+ commit('DEL_ALL_TAG', [])
+ commit('CLEAR_LOCK')
+ removeToken()
+ removeRefreshToken()
+ removeToken()
+ resolve()
+ })
+ },
+ GetTopMenu() {
+ return new Promise(resolve => {
+ getTopMenu().then(res => {
+ const data = res.data.data || []
+ resolve(data)
+ })
+ })
+ },
+ GetMenu({ commit, dispatch }, tenantId) {
+ const errLogOut = () => {
+ dispatch('LogOut').then(() => {
+ const env = import.meta.env.VITE_APP_ENV
+ const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL
+ env === 'development'
+ ? (window.location.href = '/task-work-order/login')
+ : window.location.replace(`${adminUrl}#/login`)
+ })
+ }
+ return new Promise(resolve => {
+ getRoutes({ tenantId, sysType: 6 })
+ .then(res => {
+ const data = res.data.data
+ let menu = deepClone(data)
+ if (!res.data?.data?.length) {
+ errLogOut()
+ return
+ }
+ menu.forEach(ele => formatPath(ele, true))
+ commit('SET_MENU', menu)
+ commit('SET_MENU_ALL', menu)
+ dispatch('GetButtons')
+ resolve(menu)
+ })
+ .catch(err => {
+ errLogOut()
+ })
+ })
+ },
+ GetButtons({ commit }) {
+ return new Promise(resolve => {
+ getButtons({ sysType: 6 }).then(res => {
+ const data = res.data.data
+ commit('SET_PERMISSION', data)
+ resolve()
+ })
+ })
+ },
+ },
+ mutations: {
+ SET_PARENT_DEPT_INFO(state, deptId) {
+ getParentDeptInfo({ deptId: deptId }).then(res => {
+ const data = res.data.data
+ state.parentDeptInfo = data
+ setStore({ name: 'parentDeptInfo', content: data })
+ })
+ },
+ SET_TOKEN: (state, token) => {
+ setToken(token)
+ state.token = token
+ setStore({ name: 'token', content: state.token })
+ },
+ SET_REFRESH_TOKEN: (state, refreshToken) => {
+ setRefreshToken(refreshToken)
+ state.refreshToken = refreshToken
+ setStore({ name: 'refreshToken', content: state.refreshToken })
+ },
+ SET_MENU_ID(state, menuId) {
+ state.menuId = menuId
+ },
+ SET_TENANT_ID: (state, tenantId) => {
+ state.tenantId = tenantId
+ setStore({ name: 'tenantId', content: state.tenantId })
+ },
+ SET_USER_INFO: (state, userInfo) => {
+ if (validatenull(userInfo.user_id) && validatenull(userInfo.account)) {
+ state.userInfo = { user_name: 'unauth', role_name: 'unauth' }
+ } else {
+ if (validatenull(userInfo.avatar)) {
+ userInfo.avatar = defaultAva
+ }
+ state.userInfo = userInfo
+ }
+ setStore({ name: 'userInfo', content: state.userInfo })
+ },
+ SET_MENU_ALL: (state, menuAll) => {
+ let menu = state.menuAll
+ menuAll.forEach(ele => {
+ let index = menu.findIndex(item => item.path === ele.path)
+ if (index === -1) {
+ menu.push(ele)
+ } else {
+ menu[index] = ele
+ }
+ })
+ state.menuAll = menu
+ setStore({ name: 'menuAll', content: state.menuAll })
+ },
+ SET_MENU_ALL_NULL: state => {
+ state.menuAll = []
+ setStore({ name: 'menuAll', content: state.menuAll })
+ },
+ SET_MENU: (state, menu) => {
+ state.menu = menu
+ setStore({ name: 'menu', content: state.menu })
+ },
+ SET_ROLES: (state, roles) => {
+ state.roles = roles
+ },
+ SET_PERMISSION: (state, permission) => {
+ let result = []
- },
- actions: {
- //根据用户名登录
- LoginByUsername({ commit }, userInfo = {}) {
- return new Promise((resolve, reject) => {
- loginByUsername(
- userInfo.tenantId,
- userInfo.deptId,
- userInfo.roleId,
- userInfo.username,
- md5(userInfo.password),
- userInfo.type,
- userInfo.key,
- userInfo.code
- )
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('SET_USER_INFO', data);
- commit('SET_PARENT_DEPT_INFO', data.dept_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //根据第三方信息登录
- LoginBySocial({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state)
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //根据单点信息登录
- LoginBySso({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- loginBySso(userInfo.state, userInfo.code)
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //根据手机信息登录
- LoginByPhone({ commit }, userInfo) {
- return new Promise((resolve, reject) => {
- loginByPhone(
- userInfo.tenantId,
- encrypt(userInfo.phone),
- userInfo.codeId,
- userInfo.codeValue
- )
- .then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //用户注册
- RegisterUser({ commit }, userInfo = {}) {
- return new Promise((resolve, reject) => {
- registerUser(
- userInfo.tenantId,
- userInfo.name,
- userInfo.account,
- encrypt(userInfo.password),
- userInfo.phone,
- userInfo.email
- ).then(res => {
- const data = res.data;
- if (data.error_description) {
- ElMessage({
- message: data.error_description,
- type: 'error',
- });
- reject(data.error_description);
- } else {
- commit('SET_TOKEN', data.access_token);
- commit('SET_REFRESH_TOKEN', data.refresh_token);
- commit('SET_USER_INFO', data);
- commit('SET_TENANT_ID', data.tenant_id);
- commit('DEL_ALL_TAG');
- commit('CLEAR_LOCK');
- }
- resolve();
- });
- });
- },
- GetUserInfo({ commit }) {
- return new Promise((resolve, reject) => {
- getUserInfo()
- .then(res => {
- const data = res.data.data;
- commit('SET_ROLES', data.roles);
- resolve(data);
- })
- .catch(err => {
- reject(err);
- });
- });
- },
- //刷新token
- RefreshToken({ state, commit }, userInfo) {
- return new Promise((resolve, reject) => {
- refreshToken(
- getRefreshToken(),
- 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);
- });
- });
- },
- // 登出
- LogOut({ commit }) {
- return new Promise((resolve, reject) => {
- logout()
- .then(() => {
- commit('SET_TOKEN', '');
- commit('SET_MENU_ALL_NULL', []);
- commit('SET_MENU', []);
- commit('SET_ROLES', []);
- commit('DEL_ALL_TAG', []);
- commit('CLEAR_LOCK');
- removeToken();
- removeRefreshToken();
- resolve();
- })
- .catch(error => {
- reject(error);
- });
- });
- },
- //注销session
- FedLogOut({ commit }) {
- return new Promise(resolve => {
- commit('SET_TOKEN', '');
- commit('SET_MENU_ALL_NULL', []);
- commit('SET_MENU', []);
- commit('SET_ROLES', []);
- commit('DEL_ALL_TAG', []);
- commit('CLEAR_LOCK');
- removeToken();
- removeRefreshToken();
- removeToken();
- resolve();
- });
- },
- GetTopMenu() {
- return new Promise(resolve => {
- getTopMenu().then(res => {
- const data = res.data.data || [];
- resolve(data);
- });
- });
- },
- GetMenu({ commit, dispatch }, tenantId) {
- const errLogOut = () => {
- dispatch('LogOut').then(()=>{
- const env = import.meta.env.VITE_APP_ENV
- const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL
- env === 'development'
- ? window.location.href = "/manage/login"
- : window.location.replace(`${adminUrl}#/login`)
- })
- }
- return new Promise(resolve => {
- getRoutes({tenantId,sysType: 6}).then(res => {
- const data = res.data.data;
- let menu = deepClone(data);
- if (!res.data?.data?.length){
- errLogOut()
- return
- }
- menu.forEach(ele => formatPath(ele, true));
- commit('SET_MENU', menu);
- commit('SET_MENU_ALL', menu);
- dispatch('GetButtons');
- resolve(menu);
- }).catch(err =>{
- errLogOut()
- })
- });
- },
- GetButtons({ commit }) {
- return new Promise(resolve => {
- getButtons({sysType: 6}).then(res => {
- const data = res.data.data;
- commit('SET_PERMISSION', data);
- resolve();
- });
- });
- },
- },
- mutations: {
- SET_PARENT_DEPT_INFO(state, deptId){
- getParentDeptInfo({deptId:deptId}).then(res=>{
- const data = res.data.data;
- state.parentDeptInfo = data;
- setStore({ name: 'parentDeptInfo', content: data });
- })
- },
- SET_TOKEN: (state, token) => {
- setToken(token);
- state.token = token;
- setStore({ name: 'token', content: state.token });
- },
- SET_REFRESH_TOKEN: (state, refreshToken) => {
- setRefreshToken(refreshToken);
- state.refreshToken = refreshToken;
- setStore({ name: 'refreshToken', content: state.refreshToken });
- },
- SET_MENU_ID(state, menuId) {
- state.menuId = menuId;
- },
- SET_TENANT_ID: (state, tenantId) => {
- state.tenantId = tenantId;
- setStore({ name: 'tenantId', content: state.tenantId });
- },
- SET_USER_INFO: (state, userInfo) => {
- if (validatenull(userInfo.user_id) && validatenull(userInfo.account)) {
- state.userInfo = { user_name: 'unauth', role_name: 'unauth' };
- } else {
- if (validatenull(userInfo.avatar)) {
- userInfo.avatar = defaultAva;
- }
- state.userInfo = userInfo;
- }
- setStore({ name: 'userInfo', content: state.userInfo });
- },
- SET_MENU_ALL: (state, menuAll) => {
- let menu = state.menuAll;
- menuAll.forEach(ele => {
- let index = menu.findIndex(item => item.path === ele.path);
- if (index === -1) {
- menu.push(ele);
- } else {
- menu[index] = ele;
- }
- });
- state.menuAll = menu;
- setStore({ name: 'menuAll', content: state.menuAll });
- },
- SET_MENU_ALL_NULL: state => {
- state.menuAll = [];
- setStore({ name: 'menuAll', content: state.menuAll });
- },
- SET_MENU: (state, menu) => {
- state.menu = menu;
- setStore({ name: 'menu', content: state.menu });
- },
- SET_ROLES: (state, roles) => {
- state.roles = roles;
- },
- SET_PERMISSION: (state, permission) => {
- let result = [];
+ function getCode(list) {
+ list.forEach(ele => {
+ if (typeof ele === 'object') {
+ const children = ele.children
+ const code = ele.code
+ if (children) {
+ getCode(children)
+ } else {
+ result.push(code)
+ }
+ }
+ })
+ }
- function getCode(list) {
- list.forEach(ele => {
- if (typeof ele === 'object') {
- const children = ele.children;
- const code = ele.code;
- if (children) {
- getCode(children);
- } else {
- result.push(code);
- }
- }
- });
- }
-
- getCode(permission);
- state.permission = {};
- result.forEach(ele => {
- state.permission[ele] = true;
- });
- setStore({ name: 'permission', content: state.permission, type: 'session' });
- },
- },
-};
-export default user;
+ getCode(permission)
+ state.permission = {}
+ result.forEach(ele => {
+ state.permission[ele] = true
+ })
+ setStore({ name: 'permission', content: state.permission, type: 'session' })
+ },
+ },
+}
+export default user
--
Gitblit v1.9.3