From 7a83906e6714edea1568d10acb4eb0bc1aae81c6 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 10 十月 2023 14:10:58 +0800
Subject: [PATCH] 资源管理,令牌管理页面修改

---
 src/api/api.js                              |   16 ++
 src/views/maintenance/tokentool.vue         |   64 ++++++++++--
 src/store/index.js                          |    1 
 src/views/datamanage/resourceManagement.vue |   22 ++++
 src/views/userManage/resourceManage.vue     |   10 +
 src/views/userManage/roleManage.vue         |  166 +++++++++++++++++++++++---------
 6 files changed, 214 insertions(+), 65 deletions(-)

diff --git a/src/api/api.js b/src/api/api.js
index d965710..9250460 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -240,8 +240,10 @@
 export function roleRes_selectResByRole(params) {
   return request.get('/roleRes/selectResByRole', { params: params });
 }
-
-
+//浠ょ墝绠$悊=>鍒涘缓鏂颁护鐗�
+export function token_insertNewToken(params) {
+  return request.get('/token/insertNewToken', { params: params });
+}
 
 //瑙掕壊璧勬簮-鎵归噺鏂板
 export function roleRes_inserts(params) {
@@ -481,6 +483,14 @@
 export function updateToken(params) {
   return request.post('/token/updateToken', params);
 }
+//浠ょ墝绠$悊 =>澶辨晥
+export function token_updateExpireById(params) {
+  return request.get('/token/updateExpireById', { params: params });
+}
+
+
+
+
 //榛戠櫧鍚嶅崟鍒楄〃鑾峰彇
 export function blacklistSelectByPageAndCount(params) {
   return request.get('/blacklist/selectByPageAndCount', { params: params });
@@ -1258,7 +1268,7 @@
 export function colortab_insert(params) {
   return service.post('/colortab/insert', params);
 }
-//棰滆壊琛ㄧ鐞�=>鎻掑叆涓�鏉�
+//棰滆壊琛ㄧ鐞�=>淇敼涓�鏉�
 export function colortab_update(params) {
   return service.post('/colortab/update', params);
 }
diff --git a/src/store/index.js b/src/store/index.js
index 0fd9f4b..92d19a3 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -78,6 +78,7 @@
     isProjectLayer: [],
     pigCode: null,
     listenTime: null,
+    resToken: null,
   },
   mutations: {
     UPDATE_LISTEN_TIME(state, msg) {
diff --git a/src/views/datamanage/resourceManagement.vue b/src/views/datamanage/resourceManagement.vue
index af3bc84..89cdf11 100644
--- a/src/views/datamanage/resourceManagement.vue
+++ b/src/views/datamanage/resourceManagement.vue
@@ -631,6 +631,7 @@
   res_deletes,
   res_updates,
   res_update,
+  token_insertNewToken
 } from "../../api/api";
 import $ from 'jquery'
 import { getToken } from '../../utils/auth';
@@ -698,7 +699,7 @@
         }, {
           label: '鍚敤浠g悊鍦板潃', value: 2
         }
-      ]
+      ], resToken: null,
     };
   },
   watch: {
@@ -709,6 +710,21 @@
     window.removeEventListener("resize", this.onResize);
   },
   methods: {
+    async getResToken() {
+      if (this.$store.state.resToken) {
+        this.resToken = this.$store.state.resToken
+      } else {
+        const data = await token_insertNewToken({
+          type: 1,
+          min: 43200
+        });
+        if (data.code == 200) {
+          this.$store.state.resToken = data.result.token;
+          this.resToken = data.result.token;
+        }
+      }
+    },
+
     //鏄惁涓哄叏灞忓嚱鏁�
     onFullscreen(fullscreen) {
       this.isFullscreen = fullscreen;
@@ -925,7 +941,7 @@
       }, 1000);
     },
     formatProxy(row, column) {
-      var token = getToken()
+      var token = this.resToken
       if (row.proxy && row.proxy.indexOf('{token}') > -1) {
         var val = row.proxy.replaceAll('{token}', token)
         return BASE_URL + val
@@ -1156,11 +1172,13 @@
   },
   mounted() {
     window.addEventListener("resize", this.onResize);
+    this.getResToken();
     this.calHeight();
     this.getPerms();
     this.setListDataStart();
     this.optionsStart();
 
+
   },
 };
 </script>
diff --git a/src/views/maintenance/tokentool.vue b/src/views/maintenance/tokentool.vue
index 104b54c..53dae53 100644
--- a/src/views/maintenance/tokentool.vue
+++ b/src/views/maintenance/tokentool.vue
@@ -92,6 +92,7 @@
         style="width: 100%"
         border
         height="calc(100% - 45px)"
+        @selection-change="handleSelectionChange"
       >
         <el-table-column
           type="selection"
@@ -105,7 +106,17 @@
         <el-table-column
           prop="token"
           :label="$t('operatManage.tokentoolObj.token')"
-        />
+        >
+          <template slot-scope="scope">
+
+            <span
+              style="color: #F56C6C;"
+              v-if="!scope.row.status"
+            >{{scope.row.token }}</span>
+
+            <span v-if="scope.row.status">{{scope.row.token }}</span>
+          </template>
+        </el-table-column>
         <el-table-column
           prop="duration"
           width="120"
@@ -154,19 +165,21 @@
         >
           <template slot-scope="scope">
             <el-button
+              v-if="scope.row.status"
               type="danger"
               size="small"
               plain
+              @click="setExpireById(scope.$index, scope.row)"
             >{{
               $t("operatManage.tokentoolObj.invalid")
             }}</el-button>
-            <el-button
+            <!-- <el-button
               type="info"
               size="small"
               plain
             >{{
               $t("operatManage.tokentoolObj.renewal")
-            }}</el-button>
+            }}</el-button> -->
             <el-button
               v-if="menuStatus.update"
               @click="handleEdit(scope.$index, scope.row)"
@@ -197,13 +210,13 @@
       :visible.sync="InsertFormdialog"
       :before-close="handleClose"
     >
-      <div style="height: 500px; overflow: auto">
+      <div style="height: 300px; overflow: auto">
         <el-form
           ref="formData1"
           :model="insertform"
           label-position="top"
         >
-          <el-form-item
+          <!-- <el-form-item
             :label="$t('operatManage.tokentoolObj.token')"
             :label-width="formLabelWidth"
           >
@@ -212,7 +225,7 @@
               :placeholder="$t('common.pleaseInput')"
               style="width:85%"
             />
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item
             :label="$t('operatManage.tokentoolObj.duration')"
             :label-width="formLabelWidth"
@@ -243,7 +256,7 @@
               ></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item
+          <!-- <el-form-item
             :label="$t('operatManage.tokentoolObj.ip')"
             :label-width="formLabelWidth"
           >
@@ -252,7 +265,7 @@
               :placeholder="$t('common.pleaseInput')"
               style="width:85%"
             />
-          </el-form-item>
+          </el-form-item> -->
         </el-form>
       </div>
       <div
@@ -294,6 +307,7 @@
               v-model="upform.token"
               :placeholder="$t('common.pleaseInput')"
               style="width:85%"
+              disabled
             />
           </el-form-item>
           <el-form-item
@@ -335,6 +349,7 @@
               v-model="upform.ip"
               :placeholder="$t('common.pleaseInput')"
               style="width:85%"
+              disabled
             />
           </el-form-item>
         </el-form>
@@ -370,6 +385,7 @@
   insertToken,
   updateToken,
   deleteTokens,
+  token_updateExpireById
 } from "../../api/api.js";
 export default {
   //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
@@ -425,6 +441,22 @@
     window.removeEventListener("resize", this.onResize);
   },
   methods: {
+
+    async setExpireById(index, row) {
+      const data = await token_updateExpireById({ id: row.id })
+      if (data.code == 200) {
+        this.$message({
+          message: "鎴愬姛锛�",
+          type: "success",
+        });
+      } else {
+        this.$message({
+          message: "澶辫触锛�",
+          type: "warning",
+        });
+      }
+      this.getRoleTabelData();
+    },
     onResize() {
       this.timer && clearTimeout(this.timer);
       this.timer = setTimeout(() => {
@@ -453,6 +485,12 @@
     },
     async delTokenData() {
       var std = [];
+      if (this.multipleSelection.length <= 0) {
+        return this.$message({
+          message: "鍒犻櫎澶辫触锛屾湭閫夋嫨瑕佸垹闄ょ殑鏁版嵁锛�",
+
+        });
+      }
       for (var i in this.multipleSelection) {
         std.push(this.multipleSelection[i].id);
       }
@@ -655,8 +693,14 @@
       if (data.code != 200) {
         this.$message.error("鍒楄〃璋冪敤澶辫触");
       }
-
-      this.tableData = data.result;
+      var val = data.result.filter((res) => {
+        res.status = false;
+        if (res.expire > new Date().getTime()) {
+          res.status = true
+        }
+        return res;
+      })
+      this.tableData = val;
       this.count = data.count;
     },
     handleSizeChange(val) {
diff --git a/src/views/userManage/resourceManage.vue b/src/views/userManage/resourceManage.vue
index b413418..b6e8e2a 100644
--- a/src/views/userManage/resourceManage.vue
+++ b/src/views/userManage/resourceManage.vue
@@ -723,6 +723,7 @@
   upload_res,
   selectdirTab,
   selectdepTab,
+ 
 } from "../../api/api.js";
 import styleDirTree from "../datamanage/styleDirTree.vue";
 import styleDepTree from "../datamanage/styleDepTree.vue";
@@ -783,6 +784,7 @@
       styleVar: {
         height: "calc(100% - 109px)",
       },
+     
     };
   },
 
@@ -794,17 +796,22 @@
         this.showPermsMenu(permsEntity[i]);
       }
     }
-    this.getRoleTabelData();
+
+
   },
   mounted() {
     window.addEventListener("resize", this.onResize);
     this.calHeight();
+
+
+    this.getRoleTabelData();
   },
   beforeDestroy() {
     this.timer && clearTimeout(this.timer);
     window.removeEventListener("resize", this.onResize);
   },
   methods: {
+   
     onResize() {
       this.timer && clearTimeout(this.timer);
       this.timer = setTimeout(() => {
@@ -1118,6 +1125,7 @@
       if (data.code != 200) {
         this.$message.error("鍒楄〃璋冪敤澶辫触");
       }
+      debugger
       this.tableData = data.result;
       this.count = data.count;
     },
diff --git a/src/views/userManage/roleManage.vue b/src/views/userManage/roleManage.vue
index a4c5585..794d299 100644
--- a/src/views/userManage/roleManage.vue
+++ b/src/views/userManage/roleManage.vue
@@ -1,14 +1,19 @@
 <template>
   <div class="logLog_box">
-    <My-bread
-      :list="[
+    <My-bread :list="[
         `${$t('operatManage.operatManage')}`,
         `${$t('userManage.roleManage')}`,
-      ]"
-    ></My-bread>
+      ]"></My-bread>
     <el-divider />
-    <div class="inquire subpage_Div" ref="container">
-      <el-form ref="ruleForm" :model="roleForm" :inline="true">
+    <div
+      class="inquire subpage_Div"
+      ref="container"
+    >
+      <el-form
+        ref="ruleForm"
+        :model="roleForm"
+        :inline="true"
+      >
         <div class="flex_box">
           <div style="margin-right: auto">
             <el-form-item
@@ -43,14 +48,21 @@
             :placeholder="$t('common.pleaseInput')"
           /> -->
             </el-form-item>
-            <el-form-item :label="$t('userManage.RM.roleName')" prop="username">
+            <el-form-item
+              :label="$t('userManage.RM.roleName')"
+              prop="username"
+            >
               <el-input
                 v-model="roleForm.username"
                 :placeholder="$t('userManage.RM.roleNameHolder')"
                 size="small"
                 style="width: 200px"
               >
-                <i slot="suffix" class="el-icon-search" @click="onSubmit"></i>
+                <i
+                  slot="suffix"
+                  class="el-icon-search"
+                  @click="onSubmit"
+                ></i>
               </el-input>
             </el-form-item>
           </div>
@@ -70,10 +82,9 @@
                 size="small"
                 @click="setInsertFormdialog"
                 v-if="menuStatus.insert"
-                ><i class="el-icon-circle-plus-outline"></i> &nbsp;{{
+              ><i class="el-icon-circle-plus-outline"></i> &nbsp;{{
                   $t("userManage.RM.add")
-                }}</el-button
-              >
+                }}</el-button>
             </el-form-item>
             <el-form-item>
               <el-button
@@ -81,17 +92,18 @@
                 size="small"
                 @click="handleDelete()"
                 v-if="menuStatus.delete"
-                ><i class="el-icon-delete"></i>&nbsp;{{
+              ><i class="el-icon-delete"></i>&nbsp;{{
                   $t("common.delete")
-                }}</el-button
-              >
+                }}</el-button>
             </el-form-item>
             <el-form-item>
-              <el-button type="info" size="small" @click="resetForm('ruleForm')"
-                ><i class="el-icon-delete"></i>&nbsp;{{
+              <el-button
+                type="info"
+                size="small"
+                @click="resetForm('ruleForm')"
+              ><i class="el-icon-delete"></i>&nbsp;{{
                   $t("userManage.RM.reset")
-                }}</el-button
-              >
+                }}</el-button>
             </el-form-item>
           </div>
         </div>
@@ -144,7 +156,10 @@
       </el-form>
     </div>
     <div class="dividing-line"></div>
-    <div class="table_box subpage_Div" :style="styleVar">
+    <div
+      class="table_box subpage_Div"
+      :style="styleVar"
+    >
       <el-table
         :data="tableData"
         style="width: 100%"
@@ -152,14 +167,21 @@
         height="calc(100% - 45px)"
         @selection-change="handleSelectionChange"
       >
-        <el-table-column type="selection" width="55" />
+        <el-table-column
+          type="selection"
+          width="55"
+        />
         <el-table-column
           align="center"
           type="index"
           :label="$t('userManage.RM.index')"
           width="70px"
         />
-        <el-table-column align="center" prop="id" v-if="false" />
+        <el-table-column
+          align="center"
+          prop="id"
+          v-if="false"
+        />
         <el-table-column
           align="center"
           prop="name"
@@ -226,20 +248,21 @@
               @click="showDetail(scope.$index, scope.row)"
               size="small"
               plain
-              >{{ $t("common.see") }}</el-button
-            >
+            >{{ $t("common.see") }}</el-button>
             <el-button
               v-if="menuStatus.update"
               type="warning"
               @click="handleEdit(scope.$index, scope.row)"
               size="small"
               plain
-              >{{ $t("common.update") }}</el-button
-            >
+            >{{ $t("common.update") }}</el-button>
           </template>
         </el-table-column>
       </el-table>
-      <div style="margin-top: 10px" class="pagination_box">
+      <div
+        style="margin-top: 10px"
+        class="pagination_box"
+      >
         <el-pagination
           @size-change="handleSizeChange"
           @current-change="handleCurrentChange"
@@ -260,7 +283,10 @@
       :visible.sync="InsertFormdialog"
     >
       <div style="height: 500px; overflow: auto">
-        <el-form :model="insertform" label-position="top">
+        <el-form
+          :model="insertform"
+          label-position="top"
+        >
           <el-form-item
             :label="$t('userManage.RM.roleName')"
             :label-width="formLabelWidth"
@@ -374,11 +400,21 @@
           </el-form-item>
         </el-form>
       </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="small" @click="insertFromClose">{{
+      <div
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button
+          size="small"
+          @click="insertFromClose"
+        >{{
           $t("common.close")
         }}</el-button>
-        <el-button type="primary" size="small" @click="insertFromData">{{
+        <el-button
+          type="primary"
+          size="small"
+          @click="insertFromData"
+        >{{
           $t("common.confirm")
         }}</el-button>
       </div>
@@ -389,7 +425,10 @@
       :before-close="handleCloseEdit"
     >
       <div style="height: 500px; overflow: auto">
-        <el-form :model="updateform" label-position="top">
+        <el-form
+          :model="updateform"
+          label-position="top"
+        >
           <el-form-item
             :label="$t('userManage.RM.roleName')"
             :label-width="formLabelWidth"
@@ -451,7 +490,10 @@
               v-model="updateform.isAdmin"
               label="0"
             >鍚�</el-radio> -->
-            <el-select style="width: 85%" v-model="updateform.isAdmin">
+            <el-select
+              style="width: 85%"
+              v-model="updateform.isAdmin"
+            >
               <el-option
                 v-for="item in options"
                 :key="item.value"
@@ -482,33 +524,59 @@
           </el-form-item>
         </el-form>
       </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button size="small" @click="updateFromClose">{{
+      <div
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button
+          size="small"
+          @click="updateFromClose"
+        >{{
           $t("common.close")
         }}</el-button>
-        <el-button type="primary" size="small" @click="updateFromData">{{
+        <el-button
+          type="primary"
+          size="small"
+          @click="updateFromData"
+        >{{
           $t("common.confirm")
         }}</el-button>
       </div>
     </el-dialog>
-    <div class="leftTree subpage_Div box_div" v-if="showCata">
+    <div
+      class="leftTree subpage_Div box_div"
+      v-if="showCata"
+    >
       <div class="treeBox">
         <role-dep-tree></role-dep-tree>
       </div>
       <div class="btnBox">
-        <el-button type="primary" size="small" @click="selectCataName"
-          >纭畾</el-button
-        >
-        <el-button type="info" size="small" @click="showCata = false"
-          >鍙栨秷</el-button
-        >
+        <el-button
+          type="primary"
+          size="small"
+          @click="selectCataName"
+        >纭畾</el-button>
+        <el-button
+          type="info"
+          size="small"
+          @click="showCata = false"
+        >鍙栨秷</el-button>
       </div>
     </div>
-    <div class="infoBox_box" v-show="showinfoBox">
+    <div
+      class="infoBox_box"
+      v-show="showinfoBox"
+    >
       <div class="infoBox box_div subpage_Div">
-        <div slot="header" class="clearfix">
+        <div
+          slot="header"
+          class="clearfix"
+        >
           <span>{{ $t("dataManage.styleObj.deInformation") }}</span>
-          <div style="float: right; cursor: pointer" @click="closeDetial">
+          <div
+            style="float: right; cursor: pointer"
+            @click="closeDetial"
+          >
             <i class="el-icon-close"></i>
           </div>
         </div>
@@ -808,7 +876,7 @@
           this.InsertFormdialog = false;
           this.insertform = {};
         })
-        .catch((_) => {});
+        .catch((_) => { });
     },
     async insertFromData() {
       if (this.insertform.depValue == null) {
@@ -841,7 +909,7 @@
           this.updateform = {};
           this.getRoleTabelData();
         })
-        .catch((_) => {});
+        .catch((_) => { });
     },
     async updateFromData() {
       if (this.updateform.depValue == null) {
@@ -948,7 +1016,7 @@
         .then((_) => {
           this.InsertFormdialog = false;
         })
-        .catch((_) => {});
+        .catch((_) => { });
     },
     handleCloseEdit() {
       this.$confirm("鍏抽棴鍚庢棤娉曚繚瀛橈紝鏄惁鍏抽棴?")
@@ -956,7 +1024,7 @@
           this.UpdateFormdialog = false;
           this.getRoleTabelData();
         })
-        .catch((_) => {});
+        .catch((_) => { });
     },
   },
   beforeDestroy() {

--
Gitblit v1.9.3