From 1653112f53e17dbbd8a5b7230b096da8902b3337 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期五, 11 八月 2023 15:13:47 +0800 Subject: [PATCH] 图层管理修改 --- src/views/datamanage/layerManagement.vue | 389 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 334 insertions(+), 55 deletions(-) diff --git a/src/views/datamanage/layerManagement.vue b/src/views/datamanage/layerManagement.vue index 35d78a8..5d1dedc 100644 --- a/src/views/datamanage/layerManagement.vue +++ b/src/views/datamanage/layerManagement.vue @@ -105,22 +105,7 @@ class="demo-form-inline" label-width="150px" > - <!-- 鑿滃崟鍚嶇О --> - <el-form-item :label="$t('dataManage.layerObj.layerName')"> - <el-input - :placeholder="$t('dataManage.layerObj.prompt1')" - style="width: 60%;" - v-model="formInline.cnName" - ></el-input> - </el-form-item> - <!-- 鑻辨枃鍚嶇О --> - <el-form-item :label="$t('dataManage.layerObj.englishName')"> - <el-input - :placeholder="$t('dataManage.layerObj.prompt6')" - style="width: 60%;" - v-model="formInline.enName" - ></el-input> - </el-form-item> + <!-- 鑿滃崟绫诲瀷 --> <el-form-item :label="$t('dataManage.layerObj.layerType')"> <el-select @@ -138,6 +123,44 @@ ></el-option> </el-select> </el-form-item> + <!-- 鏈嶅姟璧勬簮--> + <el-form-item + v-show="formInline.isLayer == 1" + :label="$t('dataManage.layerObj.serviceResources')" + > + <el-button + size="small" + class="serviceButton" + @click="setServiceChange('0')" + :class="{serviceActive: formInline.service === '0'}" + >{{$t('dataManage.layerObj.isfalse')}}</el-button> + <el-button + size="small" + class="serviceButton" + @click="setServiceChange('1')" + :class="{serviceActive: formInline.service === '1'}" + >{{$t('dataManage.layerObj.istrue')}}</el-button> + + </el-form-item> + <!-- 鑿滃崟鍚嶇О --> + <el-form-item :label="$t('dataManage.layerObj.layerName')"> + <el-input + :placeholder="$t('dataManage.layerObj.prompt1')" + style="width: 60%;" + v-model="formInline.cnName" + :disabled="formInline.service =='1'" + ></el-input> + </el-form-item> + <!-- 鑻辨枃鍚嶇О --> + <el-form-item :label="$t('dataManage.layerObj.englishName')"> + <el-input + :placeholder="$t('dataManage.layerObj.prompt6')" + style="width: 60%;" + v-model="formInline.enName" + :disabled="formInline.service =='1'" + ></el-input> + </el-form-item> + <!-- 鏁版嵁绫诲瀷 --> <el-form-item v-show="formInline.isLayer == 1" @@ -147,6 +170,7 @@ style="width: 60%;" v-model="formInline.type" :placeholder="$t('dataManage.layerObj.prompt3')" + :disabled="formInline.service =='1'" > <el-option v-for="item in dataType" @@ -166,19 +190,9 @@ :placeholder="$t('dataManage.layerObj.prompt4')" style="width: 60%;" v-model="formInline.url" + :disabled="formInline.service =='1'" ></el-input> </el-form-item> - <!-- 鑻辨枃琛ㄥ悕 --> - <!-- <el-form-item - v-show="formInline.isLayer == 1 && formInline.type =='WMS'" - :label="$t('dataManage.layerObj.enTableName')" - > - <el-input - :placeholder="$t('dataManage.layerObj.prompt6')" - style="width: 60%;" - v-model="formInline.enName" - ></el-input> - </el-form-item> --> <!-- 鏄惁鏄剧ず --> <el-form-item @@ -236,22 +250,6 @@ class="demo-form-inline" label-width="150px" > - <!-- 鑿滃崟鍚嶇О --> - <el-form-item :label="$t('dataManage.layerObj.layerName')"> - <el-input - :placeholder="$t('dataManage.layerObj.prompt1')" - style="width: 60%;" - v-model="insertData.cnName" - ></el-input> - </el-form-item> - <!-- 鑻辨枃鍚嶇О --> - <el-form-item :label="$t('dataManage.layerObj.englishName')"> - <el-input - :placeholder="$t('dataManage.layerObj.prompt6')" - style="width: 60%;" - v-model="insertData.enName" - ></el-input> - </el-form-item> <!-- 鑿滃崟绫诲瀷 --> <el-form-item :label="$t('dataManage.layerObj.layerType')"> <el-select @@ -269,12 +267,50 @@ ></el-option> </el-select> </el-form-item> + <el-form-item + v-show="insertData.isLayer == 1" + :label="$t('dataManage.layerObj.serviceResources')" + > + <el-button + size="small" + class="serviceButton" + @click="setServiceChange('0')" + :class="{serviceActive: insertData.service === '0'}" + >{{$t('dataManage.layerObj.isfalse')}}</el-button> + <el-button + size="small" + class="serviceButton" + @click="setServiceChange('1')" + :class="{serviceActive: insertData.service === '1'}" + >{{$t('dataManage.layerObj.istrue')}}</el-button> + + </el-form-item> + <!-- 鑿滃崟鍚嶇О --> + <el-form-item :label="$t('dataManage.layerObj.layerName')"> + <el-input + :disabled="insertData.service =='1'" + :placeholder="$t('dataManage.layerObj.prompt1')" + style="width: 60%;" + v-model="insertData.cnName" + ></el-input> + </el-form-item> + <!-- 鑻辨枃鍚嶇О --> + <el-form-item :label="$t('dataManage.layerObj.englishName')"> + <el-input + :disabled="insertData.service =='1'" + :placeholder="$t('dataManage.layerObj.prompt6')" + style="width: 60%;" + v-model="insertData.enName" + ></el-input> + </el-form-item> + <!-- 鏁版嵁绫诲瀷 --> <el-form-item v-show="insertData.isLayer == 1" :label="$t('dataManage.layerObj.serviceType')" > <el-select + :disabled="insertData.service =='1'" style="width: 60%;" v-model="insertData.type" :placeholder="$t('dataManage.layerObj.prompt3')" @@ -294,26 +330,17 @@ :label="$t('dataManage.layerObj.serviceAddress')" > <el-input + :disabled="insertData.service =='1'" :placeholder="$t('dataManage.layerObj.prompt4')" style="width: 60%;" v-model="insertData.url" ></el-input> </el-form-item> - <!-- 鑻辨枃琛ㄥ悕 --> - <!-- <el-form-item :label="$t('dataManage.layerObj.enTableName')"> - <el-input - :placeholder="$t('dataManage.layerObj.prompt6')" - style="width: 60%;" - v-model="insertData.enName" - ></el-input> - </el-form-item> --> - <!-- 鏄惁鏄剧ず --> <el-form-item v-show="insertData.isLayer == 1" :label="$t('dataManage.layerObj.displayOrNot')" > - <el-radio v-model="insertData.status" label="0" @@ -341,10 +368,99 @@ <el-button type="info" size="small" + @click="submitCancel( )" >{{$t('common.cancel')}}</el-button> </el-form-item> </el-form> + </div> + </el-dialog> + <el-dialog + :visible.sync="dialogService" + width="50%" + :show-close="false" + > + <div style="width: 100%;max-height: 63vh;overflow-y: auto; "> + <div style=" display: flex; justify-content: space-between;"> + <div> <el-input + size="small" + v-model="listData.name" + > <i + slot="suffix" + class="el-input__icon el-icon-search" + @click="setServiceQuery" + ></i></el-input></div> + <div> + <el-button + type="info" + size="small" + @click="setServiceRest" + >{{$t('common.reset')}}</el-button> + + <el-button + type="primary" + size="small" + @click="setServiceConfirm" + >{{$t('common.confirm')}}</el-button> + <el-button + type="info" + size="small" + @click="setServiceCanel" + >{{$t('common.cancel')}}</el-button> + + </div> + </div> + <el-table + ref="multipleTable" + :data="tableData" + @select="selectChange" + > + <el-table-column + type="selection" + width="55" + > + </el-table-column> + <el-table-column + align="center" + type="index" + :label="$t('common.index')" + width="70px" + /> + <el-table-column + align="center" + prop="cnName" + :label="$t('dataManage.layerObj.resourceName')" + /> + + <el-table-column + align="center" + prop="category" + :label="$t('dataManage.layerObj.serviceType')" + :formatter="setResCategory" + /> + <el-table-column + align="center" + prop="type" + :label="$t('dataManage.layerObj.dataType')" + :formatter="setResType" + /> + </el-table> + <div + class="pagination_box" + style="margin-top: 15px" + > + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="listData.pageIndex" + :page-sizes="[10, 50,100,200]" + :page-size="listData.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="listData.count" + > + </el-pagination> + </div> + </div> </el-dialog> </div> @@ -357,7 +473,8 @@ layer_update, layer_updates, layer_insert, - layer_delete + layer_delete, + res_selectByPageAndCount, } from "../../api/api"; import $ from 'jquery' import { getToken } from '../../utils/auth'; @@ -370,7 +487,6 @@ MyBread, }, data() { - return { filterText: null, formInline: { @@ -386,6 +502,7 @@ isLayer: null, category: null, status: null, + service: '0' }, serveType: null, dataType: null, @@ -408,6 +525,15 @@ newNode: null, newData: [], oriData: [], + dialogService: false, + listData: { + pageIndex: 1, + pageSize: 10, + count: 0, + name: '' + }, + tableData: [], + multipleSelection: [], }; }, watch: { @@ -416,6 +542,139 @@ }, }, methods: { + setServiceConfirm() { + if (this.multipleSelection.length <= 0) { + return this.$message("鏈�夋嫨璧勬簮鏁版嵁"); + } + + var url; + if (this.multipleSelection.status == 1) { + url = this.multipleSelection.url; + } else if (this.multipleSelection.status == 2) { + var token = getToken() + url = BASE_URL + this.multipleSelection.proxy.replaceAll('{token}', token); + } + + if (this.dialogVisible) { + this.insertData.cnName = this.multipleSelection.cnName; + this.insertData.enName = this.multipleSelection.enName; + this.insertData.type = this.multipleSelection.type; + this.insertData.resid = this.multipleSelection.id + this.insertData.url = url; + this.insertData.service = '1' + } else { + this.formInline.cnName = this.multipleSelection.cnName; + this.formInline.enName = this.multipleSelection.enName; + this.formInline.type = this.multipleSelection.type; + this.formInline.resid = this.multipleSelection.id + this.formInline.url = url; + this.formInline.service = '1' + } + + + + this.dialogService = false + + }, + setServiceRest() { + this.listData = { + pageIndex: 1, + pageSize: 10, + count: 0, + name: '' + } + this.getServiceData(); + }, + setServiceQuery() { + this.listData.pageIndex = 1; + this.listData.pageSize = 10; + this.listData.count = 0; + this.getServiceData(); + }, + setServiceCanel() { + this.dialogService = false; + this.multipleSelection = []; + this.tableData == []; + this.listData = { + pageIndex: 1, + pageSize: 10, + count: 0, + name: '' + } + }, + selectChange(selection, row) { + this.multipleSelection = row + if (selection.length > 1) { + let del_row = selection.shift() + this.$refs.multipleTable.toggleRowSelection(del_row, false) + } + }, + setResType(row, column) { + switch (row.type) { + case 0: + return "URL" + break; + case 1: + return "TMS" + break; + case 2: + return "WMTS" + break; + case 3: + return "WMS" + break; + case 4: + return "WFS" + break; + case 5: + return "Tileset" + break; + default: + return "" + break; + } + }, + setResCategory(row, column) { + switch (row.category) { + case 0: + return "鍏朵粬" + break; + case 1: + return "GisServer" + break; + case 2: + return "GeoServer" + break; + case 3: + return "鏁扮畝" + break; + default: + return "" + break; + } + }, + handleSizeChange(val) { + this.listData.pageSize = val; + this.getServiceData(); + }, + handleCurrentChange(val) { + this.listData.pageIndex = val; + this.getServiceData(); + }, + setServiceChange(res) { + if (res == '1') { + this.setServiceRest() + } + }, + async getServiceData() { + const data = await res_selectByPageAndCount(this.listData); + if (data.code != 200) { + return this.$message.error("璧勬簮鏁版嵁鑾峰彇澶辫触"); + } + this.tableData = data.result; + this.listData.count = data.count; + this.dialogService = true + }, //鍚戜笂鍚戜笅绉诲姩 setEditNode(res) { let node = this.$refs.tree.getCurrentNode(); @@ -516,6 +775,10 @@ this.getLayerTree(); }, + submitCancel() { + this.dialogVisible = false; + this.insertStart(); + }, async submitForm() { var val = this.insertData; val.status = parseInt(val.status); @@ -579,6 +842,8 @@ isLayer: null, category: null, status: null, + service: '0', + status: '1' } }, //淇敼鏁版嵁 @@ -637,6 +902,11 @@ this.formInline = result; this.formInline.isLayer = res.isLayer.toString(); this.formInline.status = result.status.toString(); + if (res.resid && res.resid > 0) { + this.formInline.service = '1' + } else { + this.formInline.service = '0' + } // this.formInline.isProject = result.isProject.toString(); }, //鍥惧眰鍒楄〃鐐瑰嚮浜嬩欢 @@ -780,6 +1050,15 @@ } } } +.serviceButton { + background: transparent !important; + color: #dcdfe6; +} +.serviceActive { + background: transparent !important; + color: #46a6ff; + border: 1px solid #46a6ff; +} /deep/ .el-input__suffix { top: 50%; transform: translateY(-50%); -- Gitblit v1.9.3