From 6e88705bd5b443a259b24c17c8a299765d059d96 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 23 Jul 2026 16:50:41 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web

---
 applications/drone-command/src/store/modules/user.js |  381 +++++++++++++++++++++++++----------------------------
 1 files changed, 181 insertions(+), 200 deletions(-)

diff --git a/applications/drone-command/src/store/modules/user.js b/applications/drone-command/src/store/modules/user.js
index 3950b41..104d96e 100644
--- a/applications/drone-command/src/store/modules/user.js
+++ b/applications/drone-command/src/store/modules/user.js
@@ -3,11 +3,12 @@
   setRefreshToken,
   removeToken,
   removeRefreshToken,
+	getToken,
   getRefreshToken,
-} from '@/utils/auth';
-import { setStore, getStore } from '@/utils/store';
-import { validatenull } from '@/utils/validate';
-import { deepClone } from '@/utils/util';
+} from '@/utils/auth'
+import { setStore, getStore } from '@/utils/store'
+import { validatenull } from '@/utils/validate'
+import { deepClone, logOutFun } from '@/utils/util'
 import defaultAva from '@/assets/images/defaultava.png'
 import {
   loginByUsername,
@@ -20,13 +21,15 @@
   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';
+} 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'
 
+// 5是反制无人机菜单,7是系统菜单
+const sysType = localStorage.getItem('sysType') || 5
 
 const user = {
   state: {
@@ -40,11 +43,10 @@
     token: getStore({ name: 'token' }) || '',
     refreshToken: getStore({ name: 'refreshToken' }) || '',
     parentDeptInfo: getStore({ name: 'parentDeptInfo' }) || '',
-
   },
   actions: {
     //根据用户名登录
-    LoginByUsername({ commit }, userInfo = {}) {
+    LoginByUsername ({ commit }, userInfo = {}) {
       return new Promise((resolve, reject) => {
         loginByUsername(
           userInfo.tenantId,
@@ -57,82 +59,82 @@
           userInfo.code
         )
           .then(res => {
-            const data = res.data;
+            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');
+              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();
+            resolve()
           })
           .catch(err => {
-            reject(err);
-          });
-      });
+            reject(err)
+          })
+      })
     },
     //根据第三方信息登录
-    LoginBySocial({ commit }, userInfo) {
+    LoginBySocial ({ commit }, userInfo) {
       return new Promise((resolve, reject) => {
         loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state)
           .then(res => {
-            const data = res.data;
+            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');
+              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();
+            resolve()
           })
           .catch(err => {
-            reject(err);
-          });
-      });
+            reject(err)
+          })
+      })
     },
     //根据单点信息登录
-    LoginBySso({ commit }, userInfo) {
+    LoginBySso ({ commit }, userInfo) {
       return new Promise((resolve, reject) => {
         loginBySso(userInfo.state, userInfo.code)
           .then(res => {
-            const data = res.data;
+            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');
+              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();
+            resolve()
           })
           .catch(err => {
-            reject(err);
-          });
-      });
+            reject(err)
+          })
+      })
     },
     //根据手机信息登录
-    LoginByPhone({ commit }, userInfo) {
+    LoginByPhone ({ commit }, userInfo) {
       return new Promise((resolve, reject) => {
         loginByPhone(
           userInfo.tenantId,
@@ -141,29 +143,29 @@
           userInfo.codeValue
         )
           .then(res => {
-            const data = res.data;
+            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');
+              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();
+            resolve()
           })
           .catch(err => {
-            reject(err);
-          });
-      });
+            reject(err)
+          })
+      })
     },
     //用户注册
-    RegisterUser({ commit }, userInfo = {}) {
+    RegisterUser ({ commit }, userInfo = {}) {
       return new Promise((resolve, reject) => {
         registerUser(
           userInfo.tenantId,
@@ -173,40 +175,40 @@
           userInfo.phone,
           userInfo.email
         ).then(res => {
-          const data = res.data;
+          const data = res.data
           if (data.error_description) {
             ElMessage({
               message: data.error_description,
               type: 'error',
-            });
-            reject(data.error_description);
+            })
+            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');
+            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();
-        });
-      });
+          resolve()
+        })
+      })
     },
-    GetUserInfo({ commit }) {
+    GetUserInfo ({ commit }) {
       return new Promise((resolve, reject) => {
         getUserInfo()
           .then(res => {
-            const data = res.data.data;
-            commit('SET_ROLES', data.roles);
-            resolve(data);
+            const data = res.data.data
+            commit('SET_ROLES', data.roles)
+            resolve(data)
           })
           .catch(err => {
-            reject(err);
-          });
-      });
+            reject(err)
+          })
+      })
     },
     //刷新token
-    RefreshToken({ state, commit }, userInfo) {
+    RefreshToken ({ state, commit }, userInfo) {
       return new Promise((resolve, reject) => {
         refreshToken(
           getRefreshToken(),
@@ -215,182 +217,161 @@
           !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();
+            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);
-          });
-      });
+            reject(error)
+          })
+      })
     },
     // 登出
-    LogOut({ commit }) {
+    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();
+				const promiseRes = getToken() ? logout() : Promise.resolve()
+				promiseRes.then(() => {
+            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()
+						localStorage.clear()
           })
           .catch(error => {
-            reject(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() {
+    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`)
+          const data = res.data.data || []
+          resolve(data)
         })
-      }
+      })
+    },
+    GetMenu ({ commit, dispatch }, tenantId) {
       return new Promise(resolve => {
-        getRoutes({tenantId,sysType: 5}).then(res => {
+        getRoutes({tenantId,sysType}).then(res => {
           const data = res.data.data;
           let menu = deepClone(data);
           if (!res.data?.data?.length){
-            errLogOut()
+						ElMessage.warning('当前角色没有配置菜单,请联系管理员配置')
+						setTimeout(logOutFun,1500)
             return
           }
-          menu.forEach(ele => formatPath(ele, true));
-          commit('SET_MENU', menu);
-          commit('SET_MENU_ALL', menu);
-          dispatch('GetButtons');
-          resolve(menu);
-        }).catch(err =>{
-          errLogOut()
+          menu.forEach(ele => formatPath(ele, true))
+          commit('SET_MENU', menu)
+          commit('SET_MENU_ALL', menu)
+          dispatch('GetButtons')
+          resolve(menu)
+        }).catch(err => {
+					logOutFun()
         })
-      });
+      })
     },
-    GetButtons({ commit }) {
+    GetButtons ({ commit }) {
       return new Promise(resolve => {
-        getButtons({sysType: 5}).then(res => {
-          const data = res.data.data;
-          commit('SET_PERMISSION', data);
-          resolve();
-        });
-      });
+        getButtons({ sysType}).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_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 });
+      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 });
+      setRefreshToken(refreshToken)
+      state.refreshToken = refreshToken
+      setStore({ name: 'refreshToken', content: state.refreshToken })
     },
-    SET_MENU_ID(state, menuId) {
-      state.menuId = menuId;
+    SET_MENU_ID (state, menuId) {
+      state.menuId = menuId
     },
     SET_TENANT_ID: (state, tenantId) => {
-      state.tenantId = tenantId;
-      setStore({ name: 'tenantId', content: 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' };
+        state.userInfo = { user_name: 'unauth', role_name: 'unauth' }
       } else {
         if (validatenull(userInfo.avatar)) {
-          userInfo.avatar = defaultAva;
+          userInfo.avatar = defaultAva
         }
-        state.userInfo = userInfo;
+        state.userInfo = userInfo
       }
-      setStore({ name: 'userInfo', content: state.userInfo });
+      setStore({ name: 'userInfo', content: state.userInfo })
     },
     SET_MENU_ALL: (state, menuAll) => {
-      let menu = state.menuAll;
+      let menu = state.menuAll
       menuAll.forEach(ele => {
-        let index = menu.findIndex(item => item.path === ele.path);
+        let index = menu.findIndex(item => item.path === ele.path)
         if (index === -1) {
-          menu.push(ele);
+          menu.push(ele)
         } else {
-          menu[index] = ele;
+          menu[index] = ele
         }
-      });
-      state.menuAll = menu;
-      setStore({ name: 'menuAll', content: state.menuAll });
+      })
+      state.menuAll = menu
+      setStore({ name: 'menuAll', content: state.menuAll })
     },
     SET_MENU_ALL_NULL: state => {
-      state.menuAll = [];
-      setStore({ name: 'menuAll', content: state.menuAll });
+      state.menuAll = []
+      setStore({ name: 'menuAll', content: state.menuAll })
     },
     SET_MENU: (state, menu) => {
-      state.menu = menu;
-      setStore({ name: 'menu', content: state.menu });
+      state.menu = menu
+      setStore({ name: 'menu', content: state.menu })
     },
     SET_ROLES: (state, roles) => {
-      state.roles = roles;
+      state.roles = roles
     },
     SET_PERMISSION: (state, permission) => {
-      let result = [];
+      let result = []
 
-      function getCode(list) {
+      function getCode (list) {
         list.forEach(ele => {
           if (typeof ele === 'object') {
-            const children = ele.children;
-            const code = ele.code;
+            const children = ele.children
+            const code = ele.code
             if (children) {
-              getCode(children);
+              getCode(children)
             } else {
-              result.push(code);
+              result.push(code)
             }
           }
-        });
+        })
       }
 
-      getCode(permission);
-      state.permission = {};
+      getCode(permission)
+      state.permission = {}
       result.forEach(ele => {
-        state.permission[ele] = true;
-      });
-      setStore({ name: 'permission', content: state.permission, type: 'session' });
+        state.permission[ele] = true
+      })
+      setStore({ name: 'permission', content: state.permission, type: 'session' })
     },
   },
-};
-export default user;
+}
+export default user

--
Gitblit v1.9.3