From ced3313bad76cf95d86dcf23f25ea3b143e09290 Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Thu, 29 Aug 2024 20:46:42 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/drone-web-manage

---
 src/permission.js            |   15 +++++++
 vite.config.mjs              |    1 
 .gitignore                   |    1 
 src/store/modules/user.js    |    1 
 src/main.js                  |   13 ++++++
 yarn.lock                    |   17 +++++---
 src/views/device/airport.vue |   33 +++++++++++-----
 src/utils/validate.js        |   13 ++++++
 8 files changed, 76 insertions(+), 18 deletions(-)

diff --git a/.gitignore b/.gitignore
index 237c3fd..406effe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 .DS_Store
 node_modules
 /dist
+/manage
 
 /tests/e2e/videos/
 /tests/e2e/screenshots/
diff --git a/src/main.js b/src/main.js
index 09c2e9f..1e6aa65 100644
--- a/src/main.js
+++ b/src/main.js
@@ -12,6 +12,9 @@
 import '@smallwei/avue/lib/index.css';
 import crudCommon from '@/mixins/crud.js';
 import { getScreen } from './utils/util';
+import { getUrlParams } from './utils/validate'
+import { setToken, setRefreshToken } from './utils/auth';
+import { setStore } from './utils/store';
 import './permission';
 import error from './error';
 import avueUeditor from 'avue-plugin-ueditor';
@@ -27,6 +30,16 @@
 // 业务组件
 import tenantPackage from './views/system/tenantpackage.vue';
 
+// 获取url中是否存在token
+const urlParams = getUrlParams(window.location.href)
+if (urlParams?.token) {
+  // 设置cookie和localStorage
+  setStore('saber-token', urlParams.token)
+  setToken(urlParams.token)
+  setRefreshToken(urlParams.token)  
+}
+
+
 window.$crudCommon = crudCommon;
 window.axios = axios;
 const app = createApp(App);
diff --git a/src/permission.js b/src/permission.js
index cabf2b8..3eaffcf 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -1,10 +1,22 @@
+/*
+ * @Author: GuLiMmo 2820890765@qq.com
+ * @Date: 2024-08-23 10:51:53
+ * @LastEditors: GuLiMmo 2820890765@qq.com
+ * @LastEditTime: 2024-08-29 14:10:56
+ * @FilePath: /drone-web-manage/src/permission.js
+ * @Description: 
+ * Copyright (c) 2024 by GuLiMmo, All Rights Reserved.
+ */
 import router from './router/';
 import store from './store';
 import { getToken } from '@/utils/auth';
+import { getUrlParams } from './utils/validate'
 import NProgress from 'nprogress'; // progress bar
 import 'nprogress/nprogress.css'; // progress bar style
 NProgress.configure({ showSpinner: false });
 const lockPage = '/lock'; //锁屏页
+const urlParams = getUrlParams(window.location.href)
+
 router.beforeEach((to, from, next) => {
   const meta = to.meta || {};
   const isMenu = meta.menu === undefined ? to.query.menu : meta.menu;
@@ -17,7 +29,8 @@
       //如果登录成功访问登录页跳转到主页
       next({ path: '/' });
     } else {
-      if (store.getters.token.length === 0) {
+      const systemToken = store.getters.token || urlParams?.token
+      if (systemToken === 0) {
         store.dispatch('FedLogOut').then(() => {
           next({ path: '/login' });
         });
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 91a754a..2514f88 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -236,7 +236,6 @@
             commit('CLEAR_LOCK');
             removeToken();
             removeRefreshToken();
-            removeToken();
             resolve();
           })
           .catch(error => {
diff --git a/src/utils/validate.js b/src/utils/validate.js
index c3834b2..ff19e76 100644
--- a/src/utils/validate.js
+++ b/src/utils/validate.js
@@ -272,3 +272,16 @@
   }
   return false;
 }
+
+// 获取url中的参数
+export function getUrlParams(url) {
+  const urlObj = new URL(window.location.href);
+  const params = new URLSearchParams(urlObj.search);
+  const urlParams = {};
+  // 遍历每个参数
+  for (let [key, value] of params) {
+    // 将参数添加到对象中
+    urlParams[key] = value;
+  }
+  return urlParams;
+}
diff --git a/src/views/device/airport.vue b/src/views/device/airport.vue
index 4234c99..9d36f6e 100644
--- a/src/views/device/airport.vue
+++ b/src/views/device/airport.vue
@@ -59,19 +59,26 @@
           v-if="row.firmware_status == 1"
           style="display: flex; flex-direction: row; align-items: center"
         >
-          <div style="background-color: #f1f1f1; border-radius: 4px">无需升级</div>
+          <el-tag type="info">无需升级</el-tag>
+          <!-- <div style="background-color: #f1f1f1; border-radius: 4px">无需升级</div> -->
         </div>
         <div
           v-if="row.firmware_status == 2"
           style="display: flex; flex-direction: row; align-items: center"
         >
-          <div @click="updateFirmware(row)" class="firmware_status">升级固件</div>
+          <el-tag type="success" effect="dark" class="active-element" @click="updateFirmware(row)"
+            >升级固件</el-tag
+          >
+          <!-- <div @click="updateFirmware(row)" class="firmware_status">升级固件</div> -->
         </div>
         <div
           v-if="row.firmware_status == 3"
           style="display: flex; flex-direction: row; align-items: center"
         >
-          <div @click="updateFirmware(row)" class="firmware_status">一致性升级</div>
+          <el-tag type="success" effect="dark" class="active-element" @click="updateFirmware(row)"
+            >一致性升级</el-tag
+          >
+          <!-- <div @click="updateFirmware(row)" class="firmware_status">一致性升级</div> -->
         </div>
         <div
           v-if="row.firmware_status == 4"
@@ -137,9 +144,7 @@
   ota,
 } from '@/api/device/device';
 
-import {
-  getLazyTree
-} from '@/api/base/region';
+import { getLazyTree } from '@/api/base/region';
 
 import { mapGetters } from 'vuex';
 import FirmwareManage from './components/firmwareManage.vue';
@@ -327,12 +332,12 @@
             prop: 'area_code',
             type: 'cascader',
             labelWidth: 130,
-            hide:true,
+            hide: true,
             props: {
               label: 'title',
               value: 'value',
             },
-            dataType:"string",
+            dataType: 'string',
             rules: [
               {
                 required: true,
@@ -358,7 +363,7 @@
                   list = res.data.data;
                   callback();
                 });
-              } else if (level>0 && level<5 ) {
+              } else if (level > 0 && level < 5) {
                 getLazyTree(node.value).then(res => {
                   list = res.data.data;
                   callback();
@@ -718,7 +723,7 @@
 };
 </script>
 
-<style>
+<style lang="scss" scoped>
 .firmware_status {
   background-color: aqua;
   border-radius: 4px;
@@ -727,4 +732,12 @@
   cursor: pointer;
   /* color: aqua; */
 }
+
+.active-element {
+  cursor: pointer;
+  &:hover {
+    background-color: #409eff;
+    border-color: #409eff;
+  }
+}
 </style>
diff --git a/vite.config.mjs b/vite.config.mjs
index 3077869..5675d2e 100644
--- a/vite.config.mjs
+++ b/vite.config.mjs
@@ -19,6 +19,7 @@
 
   // 根据是否生产环境,动态设置压缩配置
   const buildConfig = {
+    outDir: 'manage',
     target: 'esnext',
     minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具
   };
diff --git a/yarn.lock b/yarn.lock
index 25f328b..ff9bd9b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -37,10 +37,10 @@
   resolved "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz"
   integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==
 
-"@esbuild/win32-x64@0.20.2":
+"@esbuild/darwin-arm64@0.20.2":
   version "0.20.2"
-  resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz"
-  integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
+  resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz"
+  integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
 
 "@floating-ui/core@^1.5.3":
   version "1.5.3"
@@ -175,10 +175,10 @@
     estree-walker "^2.0.2"
     picomatch "^2.3.1"
 
-"@rollup/rollup-win32-x64-msvc@4.18.0":
+"@rollup/rollup-darwin-arm64@4.18.0":
   version "4.18.0"
-  resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz"
-  integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==
+  resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz"
+  integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==
 
 "@saber/nf-design-base-elp@^1.2.0":
   version "1.2.0"
@@ -853,6 +853,11 @@
     jsonfile "^6.0.1"
     universalify "^2.0.0"
 
+fsevents@~2.3.2, fsevents@~2.3.3:
+  version "2.3.3"
+  resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
+  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
 glob-parent@^5.1.2, glob-parent@~5.1.2:
   version "5.1.2"
   resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"

--
Gitblit v1.9.3