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

---
 src/views/datamanage/resourceManagement.vue |  387 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 317 insertions(+), 70 deletions(-)

diff --git a/src/views/datamanage/resourceManagement.vue b/src/views/datamanage/resourceManagement.vue
index 4488022..89cdf11 100644
--- a/src/views/datamanage/resourceManagement.vue
+++ b/src/views/datamanage/resourceManagement.vue
@@ -24,10 +24,78 @@
             > <i
                 :title="$t('common.iquery')"
                 slot="suffix"
-                @click="setListDataStart"
+                @click="getResTableData"
                 class="el-icon-search"
                 style="padding-right: 8px"
               ></i></el-input>
+          </el-form-item>
+          <!-- 鏈嶅姟绫诲埆 -->
+          <el-form-item>
+            <el-select
+              size="small"
+              v-model="formInline.category"
+              :placeholder="$t('dataManage.layerObj.prompt18')"
+              @change="getResTableData"
+            >
+              <el-option
+                v-for="item in serviceType"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <!-- 鏁版嵁绫诲瀷 -->
+          <el-form-item>
+            <el-select
+              size="small"
+              v-model="formInline.data"
+              :placeholder="$t('dataManage.layerObj.prompt8')"
+              @change="getResTableData"
+            >
+              <el-option
+                v-for="item in dataType"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <!-- 鏈嶅姟绫诲埆 -->
+          <el-form-item>
+            <el-select
+              size="small"
+              v-model="formInline.type"
+              :placeholder="$t('dataManage.layerObj.prompt3')"
+              @change="getResTableData"
+            >
+              <el-option
+                v-for="item in dataTypes"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <!-- 鐘舵�� -->
+          <el-form-item>
+            <el-select
+              size="small"
+              v-model="formInline.status"
+              :placeholder="$t('dataManage.layerObj.prompt19')"
+              @change="getResTableData"
+            >
+              <el-option
+                v-for="item in statusType"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
           </el-form-item>
           <el-form-item style="float: right;">
             <el-button
@@ -116,7 +184,7 @@
             align="center"
             prop="data"
             :label="$t('dataManage.layerObj.dataType')"
-            :formatter="setResType"
+            :formatter="setResData"
             width="150"
           />
           <el-table-column
@@ -190,7 +258,7 @@
           />
           <el-table-column
             :label="$t('common.operate')"
-            width="150"
+            width="200"
           >
             <template slot-scope="scope">
               <el-button
@@ -199,6 +267,12 @@
                 type="warning"
                 plain
               >{{ $t('common.update') }}</el-button>
+              <el-button
+                size="small"
+                v-show="scope.row.status != 0"
+                plain
+                @click="setScopePreview(scope.row)"
+              >{{ $t('common.preview') }}</el-button>
 
             </template>
           </el-table-column>
@@ -256,27 +330,11 @@
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item :label="$t('dataManage.layerObj.serviceType')">
-            <el-select
-              class="insertWidth"
-              v-model="insertData.type"
-              @change="setCategoryTypeChange"
-              :placeholder="$t('dataManage.layerObj.prompt8')"
-            >
-              <el-option
-                v-for="item in categoryType"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
           <el-form-item :label="$t('dataManage.layerObj.dataType')">
             <el-select
               class="insertWidth"
               v-model="insertData.data"
-              :disabled='insertDisabled'
+              @change="setCategoryTypeChange"
               :placeholder="$t('dataManage.layerObj.prompt3')"
             >
               <el-option
@@ -289,11 +347,30 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item :label="$t('dataManage.layerObj.tableName')">
+          <el-form-item :label="$t('dataManage.layerObj.serviceType')">
+            <el-select
+              class="insertWidth"
+              v-model="insertData.type"
+              :placeholder="$t('dataManage.layerObj.prompt8')"
+            >
+              <el-option
+                v-for="item in categoryType"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item
+            v-if="insertData.category == 2"
+            :label="$t('dataManage.layerObj.layerName')"
+          >
             <el-input
               v-model="insertData.tab"
               class="insertWidth"
-              :placeholder="$t('dataManage.layerObj.prompt12')"
+              :placeholder="$t('dataManage.layerObj.prompt1')"
             ></el-input>
           </el-form-item>
           <el-form-item :label="$t('dataManage.layerObj.serviceAddress')">
@@ -407,15 +484,15 @@
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item :label="$t('dataManage.layerObj.serviceType')">
+          <el-form-item :label="$t('dataManage.layerObj.dataType')">
             <el-select
               class="insertWidth"
-              v-model="editData.type"
+              v-model="editData.data"
               @change="setEdtitTypeChange"
-              :placeholder="$t('dataManage.layerObj.prompt8')"
+              :placeholder="$t('dataManage.layerObj.prompt3')"
             >
               <el-option
-                v-for="item in categoryType"
+                v-for="item in dataType"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -423,15 +500,14 @@
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item :label="$t('dataManage.layerObj.dataType')">
+          <el-form-item :label="$t('dataManage.layerObj.serviceType')">
             <el-select
               class="insertWidth"
-              v-model="editData.data"
-              :placeholder="$t('dataManage.layerObj.prompt3')"
-              :disabled="editDisabled"
+              v-model="editData.type"
+              :placeholder="$t('dataManage.layerObj.prompt8')"
             >
               <el-option
-                v-for="item in dataType"
+                v-for="item in categoryType"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -517,10 +593,37 @@
         </span>
       </div>
     </el-dialog>
+
+    <!-- 鍦板潃棰勮 -->
+    <el-dialog
+      :title="$t('common.preview')"
+      :class="isFullscreen ? '' : 'dialogClass_his'"
+      custom-class="handleDialogClass"
+      width="73.4%"
+      :fullscreen="isFullscreen"
+      v-if="prevDialog"
+      :visible.sync="prevDialog"
+      :show-close="false"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+    >
+      <dialog-header
+        slot="title"
+        :dialog-tittle="$t('common.preview')"
+        :fullscreen="isFullscreen"
+        @handle-closed="handleClose"
+        @is-fullscreen="onFullscreen"
+      ></dialog-header>
+      <div :class="{'fullscreen1':isFullscreen}">
+        <mapview v-if="showMapView"></mapview>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
 import MyBread from "../../components/MyBread.vue";
+import dialogHeader from './dialogHeader.vue'
+import server from '../../components/js/server.js'
 import {
   getPerms,
   select_Res_ByPageAndCount,
@@ -528,23 +631,28 @@
   res_deletes,
   res_updates,
   res_update,
+  token_insertNewToken
 } from "../../api/api";
 import $ from 'jquery'
 import { getToken } from '../../utils/auth';
 import { serve_type, data_type, category_type } from './js/layerManage.js'
 import { json } from "body-parser";
 import { flatten } from '@turf/turf';
-
+import mapview from '../../components/MapView/moonMap.vue'
 export default {
   name: "catalogueManage",
   components: {
-    MyBread,
+    MyBread, mapview, 'dialog-header': dialogHeader,
   },
   data() {
 
     return {
       formInline: {
-        name: null
+        name: null,
+        type: null,
+        data: null,
+        category: null,
+        status: null
       },
       menuStatus: {
         delete: false,
@@ -574,10 +682,24 @@
       editDialog: false,
       insertDialog: false,
       dataType: [],
+      dataTypes: [],
       serviceType: [],
       categoryType: [],
       insertDisabled: false,
       editDisabled: false,
+      isFullscreen: false,
+      prevDialog: false,
+      showMapView: false,
+      statusType: [
+        {
+          label: '绂佺敤', value: 0
+        },
+        {
+          label: '鍚敤鍘熷鍦板潃', value: 1
+        }, {
+          label: '鍚敤浠g悊鍦板潃', value: 2
+        }
+      ], resToken: null,
     };
   },
   watch: {
@@ -588,7 +710,37 @@
     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;
+    },
+    //棰勮寮圭獥鍏抽棴
+    handleClose() {
+      this.prevDialog = false
+      this.showMapView = false;
+
+    },
     async setEditConfirm() {
+      if (this.editData.url.indexOf('?') > -1) {
+        var val = this.editData.url.split("?");
+        this.editData.url = val[0];
+        this.editData.args = this.editData.args + val[1];
+      }
       const data = await res_update(this.editData);
       if (data.code == 200) {
         this.$message({
@@ -619,40 +771,73 @@
         .catch(_ => { });
     },
     setEmptyData() {
-      this.formInline.name = ""
+      this.formInline = {
+        name: null,
+        type: null,
+        data: null,
+        category: null,
+        status: null
+      }
       this.setListDataStart()
     },
     setInsertTableData() {
       this.insertData.category = this.serviceType[0].value
-      this.insertData.type = this.categoryType[0].value
-
+      this.insertData.data = this.dataType[0].value
+      this.setServeTypeChange(this.dataType[0].children)
       this.insertDialog = true;
-      this.setinsertDisabled();
+
     },
-    setinsertDisabled() {
-      var val = [0, 4, 5]
-      if (val.indexOf(this.insertData.type) > -1) {
-        this.insertDisabled = true
-        this.insertData.data = this.dataType[0].value;
-      } else {
-        this.insertDisabled = false
+    setServeTypeChange(res) {
+      var std = [];
+      for (var i in res) {
+        for (var j in serve_type) {
+          if (serve_type[j].value == res[i]) {
+            std.push({
+              value: serve_type[j].value,
+              label: serve_type[j].name,
+            })
+          }
+        }
       }
+      this.categoryType = std
+      this.insertData.type = this.categoryType[0].value
     },
+
     setCategoryTypeChange(item) {
-      this.setinsertDisabled()
+      var filter = this.dataType.filter(res => {
+        if (res.value == item) {
+          return res
+        }
+      })
+      this.setServeTypeChange(filter[0].children)
     },
     setEdtitTypeChange(item) {
-      this.setEditDisabled()
+      var filter = this.dataType.filter(res => {
+        if (res.value == item) {
+          return res
+        }
+      })
+      this.setEditServeTypeChange(filter[0].children)
     },
-    setEditDisabled() {
-      var val = [0, 4, 5]
-      if (val.indexOf(this.editData.type) > -1) {
-        this.editDisabled = true
-        this.editData.data = this.dataType[0].value;
-      } else {
-        this.editDisabled = false
+    setEditServeTypeChange(res) {
+      var std = [];
+      for (var i in res) {
+        for (var j in serve_type) {
+          if (serve_type[j].value == res[i]) {
+            std.push({
+              value: serve_type[j].value,
+              label: serve_type[j].name,
+            })
+          }
+        }
       }
+      this.categoryType = std
+      this.editData.type = this.categoryType[0].value
     },
+
+
+
+
     async setDelTableData() {
       if (this.multipleSelection.length <= 0) {
         return this.$message('璇烽�夋嫨瑕佸垹闄ょ殑璧勬簮鏁版嵁');
@@ -687,6 +872,13 @@
         .catch(_ => { });
     },
     async setInsertConfirm() {
+      if (this.insertData.url.indexOf('?') > -1) {
+        var val = this.insertData.url.split("?");
+        this.insertData.url = val[0];
+        this.insertData.args = val[1] + this.insertData.args;
+      }
+
+      this.insertData.status = parseInt(this.insertData.status)
       const data = await res_insert(this.insertData);
       if (data.code == 200) {
         this.$message({
@@ -706,28 +898,29 @@
       var std = [];
       var ste = [];
       var str = [];
-      for (var i in serve_type) {
-        ste.push({
-          value: serve_type[i].value,
-          label: serve_type[i].name,
-        })
-      }
-      this.serviceType = std;
       for (var i in category_type) {
-        std.push({
+        ste.push({
           value: category_type[i].value,
           label: category_type[i].name,
         })
       }
-      this.categoryType = ste;
+      this.serviceType = ste;
+
       for (var i in data_type) {
         str.push({
           value: data_type[i].value,
           label: data_type[i].name,
+          children: data_type[i].children
         })
       }
       this.dataType = str;
-
+      for (var i in serve_type) {
+        std.push({
+          value: serve_type[i].value,
+          label: serve_type[i].name,
+        })
+      }
+      this.dataTypes = std;
     },
     setScopeEdit(row) {
       this.copyData = JSON.parse(JSON.stringify(row));
@@ -738,14 +931,21 @@
       if (this.editData.data) {
         this.editData.data = parseInt(this.editData.data)
       }
-
-      this.setEditDisabled()
       this.editDialog = true
     },
+    setScopePreview(row) {
+      this.prevDialog = true;
+      this.showMapView = true;
+      setTimeout(() => {
+        server.addLayer(row)
+      }, 1000);
+    },
     formatProxy(row, column) {
-      var token = getToken()
-      var val = row.proxy.replaceAll('{token}', token)
-      return BASE_URL + val
+      var token = this.resToken
+      if (row.proxy && row.proxy.indexOf('{token}') > -1) {
+        var val = row.proxy.replaceAll('{token}', token)
+        return BASE_URL + val
+      }
     },
     copyText(row, column, cell, event) {
       // 鍙屽嚮澶嶅埗
@@ -819,6 +1019,37 @@
           break;
       }
     },
+    setResData(row, column) {
+      switch (row.data) {
+        case 1:
+          return "鏁板瓧姝e皠褰卞儚鍥�"
+          break;
+        case 2:
+          return "鍦烘櫙鍦板舰鏁版嵁"
+          break;
+        case 3:
+          return "鏁板瓧楂樼▼妯″瀷锛堟檿娓插浘锛�"
+          break;
+        case 4:
+          return "鍗曟尝娈垫爡鏍兼暟鎹�"
+          break;
+        case 5:
+          return "澶氬厜璋辨爡鏍兼暟鎹�"
+          break;
+        case 6:
+          return "楂樺厜璋辨爡鏍兼暟鎹�"
+          break;
+        case 7:
+          return "鐭㈤噺鍥惧眰"
+          break;
+        case 8:
+          return "涓夌淮妯″瀷"
+          break;
+        default:
+          return ""
+          break;
+      }
+    },
     setResCategory(row, column) {
       switch (row.category) {
         case 0:
@@ -856,7 +1087,11 @@
       }
     },
     async getResTableData() {
-      this.listData.name = this.formInline.name
+      this.listData.name = this.formInline.name;
+      this.listData.data = this.formInline.data;
+      this.listData.type = this.formInline.type;
+      this.listData.category = this.formInline.category;
+      this.listData.status = this.formInline.status;
       const data = await select_Res_ByPageAndCount(this.listData);
       if (data.code != 200) {
         return this.$message({
@@ -937,10 +1172,12 @@
   },
   mounted() {
     window.addEventListener("resize", this.onResize);
+    this.getResToken();
     this.calHeight();
     this.getPerms();
     this.setListDataStart();
     this.optionsStart();
+
 
   },
 };
@@ -968,6 +1205,10 @@
     }
   }
 }
+.fullscreen1 {
+  width: 100%;
+  height: 94vh;
+}
 /deep/ .el-input__suffix {
   top: 50%;
   transform: translateY(-50%);
@@ -975,6 +1216,12 @@
 .insertWidth {
   width: calc(100% - 200px);
 }
+/deep/.el-dialog__body {
+  padding: 10px !important;
+}
+/deep/.el-dialog__header {
+  padding: 10px !important;
+}
 </style>
 <style >
 .el-message-box {

--
Gitblit v1.9.3