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