From 17c4e82a8e8159b4b387d79c395f2650ef85f6e4 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期四, 24 八月 2023 17:05:22 +0800 Subject: [PATCH] 添加投影图层管理页面 --- src/assets/lang/zh.js | 1 src/views/datamanage/projectionLayerManagement.vue | 1344 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ public/config/config.js | 2 public/CIMSDK/Workers/field/rendermapWorker.js | 2 src/assets/lang/en.js | 4 src/views/datamanage/bankController.vue | 6 src/views/datamanage/layerManagement.vue | 17 7 files changed, 1,366 insertions(+), 10 deletions(-) diff --git a/public/CIMSDK/Workers/field/rendermapWorker.js b/public/CIMSDK/Workers/field/rendermapWorker.js index bd7ffcc..11ef49c 100644 --- a/public/CIMSDK/Workers/field/rendermapWorker.js +++ b/public/CIMSDK/Workers/field/rendermapWorker.js @@ -53,7 +53,7 @@ var colorBar = colorInfo; var valMax = byteArray[byteArray.length - 1]; var valMin = byteArray[byteArray.length - 2]; - debugger + if (colorEqually) { var delta = valMax - valMin; delta = delta / (colorBar.length - 1); diff --git a/public/config/config.js b/public/config/config.js index 52a5361..3991e24 100644 --- a/public/config/config.js +++ b/public/config/config.js @@ -3,7 +3,7 @@ var is_production = false;//鍒ゆ柇鏄惁涓虹敓浜х幆澧� var webHost = isWeb ? "103.85.165.99" + ":8052" : '192.168.20.83' + ":8088"; -// var webHost = isWeb ? "103.85.165.99" + ":8052" : '192.168.16.162' + ":12316"; +// var webHost = isWeb ? "103.85.165.99" + ":8052" : '192.168.20.106' + ":9000"; var fmeHost = isWeb ? "103.85.165.99" + ":8051" : '192.168.20.83' + ":88"; diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 52b2ce0..0efe290 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -76,6 +76,10 @@ projectManage: 'Project information', dataStatistics: 'data Statistics', layerManage: 'Layer Management', + + resourceManage: 'Resource management', + projectionLayerManagement: 'Projection layer management', + layerObj: { menuName: 'menu name', menuType: 'Menu Type', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index bb5366e..1f7f2f5 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -77,6 +77,7 @@ dataStatistics: '鏁版嵁缁熻', layerManage: '鍥惧眰绠$悊', resourceManage: '璧勬簮绠$悊', + projectionLayerManagement: '鎶曞奖鍥惧眰绠$悊', layerObj: { menuName: '鑿滃崟鍚嶇О', menuType: '鑿滃崟绫诲瀷', diff --git a/src/views/datamanage/bankController.vue b/src/views/datamanage/bankController.vue index c5ac5f3..7a6da56 100644 --- a/src/views/datamanage/bankController.vue +++ b/src/views/datamanage/bankController.vue @@ -50,6 +50,7 @@ <down-loader v-if="setMenuFlag == 'downLoader'"></down-loader> <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics> + <projection-layer-management v-if="setMenuFlag == 'projectionLayerManagement'"></projection-layer-management> </div> </div> @@ -75,6 +76,7 @@ import uploadmanage from '@/views/datamanage/uploadmanage.vue'; //鍙戝竷绠$悊 import resourceManagement from '@/views/datamanage/resourceManagement.vue'; //鏁版嵁绠$悊-鍥惧眰绠$悊 import layerManagement from '@/views/datamanage/layerManagement.vue'; //鏁版嵁绠$悊-鍥惧眰绠$悊 +import projectionLayerManagement from '@/views/datamanage/projectionLayerManagement.vue'; //鏁版嵁绠$悊-鍥惧眰绠$悊 export default { components: { customElMenu, @@ -92,7 +94,8 @@ dataStatistics, uploadmanage, resourceManagement, - layerManagement + layerManagement, + projectionLayerManagement }, data() { return { @@ -249,7 +252,6 @@ var data = e.$attrs.perms; this.$store.state.currentPerms = data.perms; var index = data.url; - if (index != null) { if (index.indexOf('http') != -1) { this.$store.commit('getIframe', data.url); diff --git a/src/views/datamanage/layerManagement.vue b/src/views/datamanage/layerManagement.vue index fa7fa9e..e68c5a3 100644 --- a/src/views/datamanage/layerManagement.vue +++ b/src/views/datamanage/layerManagement.vue @@ -994,11 +994,16 @@ this.newNode = node; var id, lever, orderNum; if (res == 1) { - //鏂板鍚岀骇 - id = this.formInline.pid; - let pchildNodes = this.$refs.tree.getNode(this.newNode.id).parent.childNodes - orderNum = this.getMaxOrderNum(pchildNodes); - lever = this.formInline.level; + if (this.formInline.pid) { + id = this.formInline.pid; + let pchildNodes = this.$refs.tree.getNode(this.newNode.id).parent.childNodes + orderNum = this.getMaxOrderNum(pchildNodes); + lever = this.formInline.level; + } else { + id = 0; + orderNum = 1; + lever = 1; + } } else if (res == 2) { //鏂板瀛愮骇 id = this.formInline.id; @@ -1078,7 +1083,7 @@ }, //鑾峰彇鍥惧眰鍒楄〃 async getLayerTree() { - const data = await layer_selectAll(); + const data = await layer_selectAll({ flag: 0 }); if (data.code != 200) { return this.$message.error("鍥惧眰鍒楄〃鏌ヨ澶辫触"); } diff --git a/src/views/datamanage/projectionLayerManagement.vue b/src/views/datamanage/projectionLayerManagement.vue new file mode 100644 index 0000000..2d98b24 --- /dev/null +++ b/src/views/datamanage/projectionLayerManagement.vue @@ -0,0 +1,1344 @@ +<template> + <div class="subpage_Box"> + <My-bread :list="[ + `${$t('dataManage.dataManage')}`, + `${$t('dataManage.projectionLayerManagement')}`, + ]"></My-bread> + <el-divider /> + <div class="mainBox"> + + <div + class="cataLogContent leftTree subpage_Div" + style="border: 1px solid #dcdfe6;" + > + <div> + <el-input + v-model="filterText" + :placeholder="$t('dataManage.layerObj.prompt1')" + suffix-icon="el-icon-search" + ></el-input> + + <el-tree + ref="tree" + :props="defaultProps" + node-key="id" + accordion + :data="treeData" + :default-expanded-keys="expandData" + @node-click="handleNodeClick" + :filter-node-method="filterNode" + > + </el-tree> + </div> + </div> + <div class="cataLog_rightContent right subpage_Div"> + <div + class="inquire" + style=" + align-items: center; + display: flex; + justify-content: space-between; + " + > + <el-breadcrumb separator="/"> + <el-breadcrumb-item :to="{ path: '/' }">{{ + + }}</el-breadcrumb-item> + </el-breadcrumb> + <div style="margin-right: -5px"> + <div class="menuTop"> + <el-form :inline="true"> + <el-form-item v-show="menuStatus.insert"> + <!-- 鍚岀骇鑺傜偣娣诲姞 --> + <el-button + type="success" + size="small" + icon="el-icon-plus" + @click="insertLayerData(1)" + >{{ $t("shuJuGuanLi.butten.NewPeer") }}</el-button> + </el-form-item> + <!-- 瀛愮骇鑺傜偣娣诲姞 --> + <el-form-item v-show="menuStatus.insert && formInline.isLayer == 0"> + <el-button + type="success" + size="small" + icon="el-icon-plus" + @click="insertLayerData(2)" + >{{ $t("shuJuGuanLi.butten.AddChild") }}</el-button> + </el-form-item> + <!-- 鍒犻櫎 --> + <el-form-item v-show="menuStatus.delete"> + <el-button + icon="el-icon-delete" + type="danger" + size="small" + @click="setDeleteNode( )" + >{{ $t("shuJuGuanLi.butten.Delete") }}</el-button> + </el-form-item> + <!-- 鍚戜笂绉诲姩 --> + <el-form-item v-show="menuStatus.delete"> + <el-button + type="info" + icon="el-icon-top" + size="small" + @click="setEditNode(1)" + >{{ $t("shuJuGuanLi.butten.MoveUp") }}</el-button> + </el-form-item> + <!-- 鍚戜笅绉诲姩 --> + <el-form-item v-show="menuStatus.delete"> + <el-button + type="info" + icon="el-icon-bottom" + size="small" + @click="setEditNode(2)" + >{{ $t("shuJuGuanLi.butten.MoveDown") }}</el-button> + </el-form-item> + </el-form> + </div> + </div> + + </div> + <div class="dividing-line"></div> + <div style="padding: 10px;"> + <el-form + :model="formInline" + class="demo-form-inline" + label-width="150px" + > + + <!-- 鑿滃崟绫诲瀷 --> + <el-form-item :label="$t('dataManage.layerObj.layerType')"> + <el-select + :placeholder="$t('dataManage.layerObj.prompt2')" + style="width: 60%;" + v-model="formInline.isLayer" + > + <el-option + label="鍥惧眰缁�" + value='0' + ></el-option> + <el-option + label="鍥惧眰" + value='1' + ></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')" + key="0" + :class="{serviceActive: !serviceActive }" + >{{$t('dataManage.layerObj.isfalse')}}</el-button> + <el-button + size="small" + class="serviceButton" + @click="setServiceChange('1')" + key="1" + :class="{serviceActive: serviceActive}" + >{{$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" + ></el-input> + </el-form-item> + <!-- 璧勬簮绫诲埆 --> + <el-form-item + v-show="formInline.isLayer == 1" + :label="$t('dataManage.layerObj.firm')" + > + <el-select + style="width: 60%;" + v-model="formInline.category" + :disabled="serviceActive" + :placeholder="$t('dataManage.layerObj.prompt3')" + > + <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 + v-show="formInline.isLayer == 1" + :label="$t('dataManage.layerObj.dataType')" + > + <el-select + style="width: 60%;" + v-model="formInline.data" + :placeholder="$t('dataManage.layerObj.prompt3')" + :disabled="serviceActive" + @change="setFromDataTypeClick" + > + <el-option + v-for="item in serveType" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <!-- 鏁版嵁绫诲瀷 --> + <el-form-item + v-show="formInline.isLayer == 1" + :label="$t('dataManage.layerObj.serviceType')" + > + <el-select + style="width: 60%;" + v-model="formInline.type" + :placeholder="$t('dataManage.layerObj.prompt3')" + :disabled="serviceActive" + > + <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 + v-show="formInline.isLayer == 1" + :label="$t('dataManage.layerObj.serviceAddress')" + > + <el-input + :placeholder="$t('dataManage.layerObj.prompt4')" + style="width: 60%;" + v-model="formInline.serviceUrl" + :disabled="serviceActive" + ></el-input> + </el-form-item> + <!-- 鑻辨枃鍚嶇О --> + <el-form-item + v-show="formInline.isLayer == 1 && formInline.category == 2" + :label="$t('dataManage.layerObj.englishName')" + > + <el-input + :disabled="serviceActive" + :placeholder="$t('dataManage.layerObj.prompt6')" + style="width: 60%;" + v-model="formInline.tab" + ></el-input> + </el-form-item> + <!-- 鏄惁鏄剧ず --> + <el-form-item + v-show="formInline.isLayer == 1" + :label="$t('dataManage.layerObj.enableOrNot')" + > + + <el-radio + v-model="formInline.status" + label="0" + >{{$t('dataManage.layerObj.isStop')}}</el-radio> + <el-radio + v-model="formInline.status" + label="1" + > {{$t('dataManage.layerObj.isEnable')}}</el-radio> + </el-form-item> + <!-- 鏄惁鏄剧ず --> + <el-form-item + v-show="formInline.isLayer == 1" + :label="$t('dataManage.layerObj.displayOrNot')" + > + <el-radio + v-model="formInline.isShow" + label="0" + >{{$t('dataManage.layerObj.isfalse')}}</el-radio> + <el-radio + v-model="formInline.isShow" + label="1" + > {{$t('dataManage.layerObj.istrue')}}</el-radio> + </el-form-item> + <!-- 鎻忚堪 --> + <el-form-item :label="$t('common.bak')"> + <el-input + style="width: 60%;" + v-model="formInline.bak" + :placeholder="$t('dataManage.layerObj.prompt7')" + ></el-input> + </el-form-item> + <el-form-item v-show="menuStatus.update"> + <el-button + type="primary" + size="small" + @click="updateSend()" + >{{$t('common.confirm')}}</el-button> + <el-button + type="info" + size="small" + @click="updateRest()" + >{{$t('common.reset')}}</el-button> + </el-form-item> + </el-form> + </div> + </div> + </div> + <el-dialog + :title="$t('common.append')" + :visible.sync="dialogVisible" + width="50%" + > + <div style="width: 100%;max-height: 63vh;overflow-y: auto; "> + <!-- <el-form + :model="insertData" + class="demo-form-inline" + label-width="150px" + > --> + <el-form + :model="insertData" + class="demo-form-inline" + label-width="150px" + > + <!-- 鑿滃崟绫诲瀷 --> + <el-form-item :label="$t('dataManage.layerObj.layerType')"> + <el-select + :placeholder="$t('dataManage.layerObj.prompt2')" + style="width: 60%;" + v-model="insertData.isLayer" + > + <el-option + label="鍥惧眰缁�" + value='0' + ></el-option> + <el-option + label="鍥惧眰" + value='1' + ></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-button + size="small" + class="serviceButton" + @click="setInsertServiceChange('0')" + key="0" + :class="{serviceActive: !insertServiceActive }" + >{{$t('dataManage.layerObj.isfalse')}}</el-button> + <el-button + size="small" + class="serviceButton" + @click="setInsertServiceChange('1')" + key="1" + :class="{serviceActive: insertServiceActive}" + >{{$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="insertData.cnName" + ></el-input> + </el-form-item> + <!-- 璧勬簮绫诲埆 --> + <el-form-item + v-show="insertData.isLayer == 1" + :label="$t('dataManage.layerObj.firm')" + > + <el-select + style="width: 60%;" + v-model="insertData.category" + :disabled="insertServiceActive" + :placeholder="$t('dataManage.layerObj.prompt3')" + > + <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 + v-show="insertData.isLayer == 1" + :label="$t('dataManage.layerObj.dataType')" + > + <el-select + style="width: 60%;" + v-model="insertData.data" + :placeholder="$t('dataManage.layerObj.prompt3')" + :disabled="insertServiceActive" + @change="setInsertDataTypeClick" + > + <el-option + v-for="item in serveType" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <!-- 鏈嶅姟绫荤被鍨� --> + <el-form-item + v-show="insertData.isLayer == 1" + :label="$t('dataManage.layerObj.serviceType')" + > + <el-select + :disabled="insertServiceActive" + style="width: 60%;" + v-model="insertData.type" + :placeholder="$t('dataManage.layerObj.prompt3')" + > + <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 + v-show="insertData.isLayer == 1" + :label="$t('dataManage.layerObj.serviceAddress')" + > + <el-input + :disabled="insertServiceActive" + :placeholder="$t('dataManage.layerObj.prompt4')" + style="width: 60%;" + v-model="insertData.serviceUrl" + ></el-input> + </el-form-item> + <!-- 鑻辨枃鍚嶇О --> + <el-form-item + v-show="insertData.isLayer == 1 && insertData.category == 2" + :label="$t('dataManage.layerObj.englishName')" + > + <el-input + :disabled="insertServiceActive" + :placeholder="$t('dataManage.layerObj.prompt6')" + style="width: 60%;" + v-model="insertData.tab" + ></el-input> + </el-form-item> + <!-- 鏄惁鍚敤 --> + <el-form-item + v-show="insertData.isLayer == 1" + :label="$t('dataManage.layerObj.enableOrNot')" + > + <el-radio + v-model="insertData.status" + label="0" + >{{$t('dataManage.layerObj.isStop')}}</el-radio> + <el-radio + v-model="insertData.status" + label="1" + > {{$t('dataManage.layerObj.isEnable')}}</el-radio> + </el-form-item> + <!-- 鏄惁鏄剧ず --> + <el-form-item + v-show="insertData.isLayer == 1" + :label="$t('dataManage.layerObj.displayOrNot')" + > + <el-radio + v-model="insertData.isShow" + label="0" + >{{$t('dataManage.layerObj.isfalse')}}</el-radio> + <el-radio + v-model="insertData.isShow" + label="1" + > {{$t('dataManage.layerObj.istrue')}}</el-radio> + </el-form-item> + <!-- 鎻忚堪 --> + <el-form-item :label="$t('common.bak')"> + <el-input + style="width: 60%;" + v-model="insertData.bak" + :placeholder="$t('dataManage.layerObj.prompt7')" + ></el-input> + </el-form-item> + <el-form-item v-show="menuStatus.update"> + <el-button + type="primary" + size="small" + @click="submitForm()" + >{{$t('common.confirm')}}</el-button> + <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> +</template> + <script> +import MyBread from "../../components/MyBread.vue"; +import { + getPerms, + layer_selectAll, + layer_update, + layer_updates, + layer_insert, + layer_delete, + res_selectByPageAndCount, +} 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"; + +export default { + name: "catalogueManage", + components: { + MyBread, + }, + data() { + return { + filterText: null, + formInline: { + cnName: null, + type: null, + serveType: null, + url: null, + dataType: null, + bak: null, + isShow: '0', + isProject: '0', + enName: '', + isLayer: null, + category: null, + status: null, + service: '0', + serviceUrl: null + }, + serveType: null, + dataType: null, + menuStatus: { + delete: false, + insert: false, + update: false, + }, + defaultProps: { + children: "children", + label: "cnName", + }, + treeData: [], + expandData: [], + checkData: null, + backUpData: null, + dialogVisible: false, + insertData: { + type: null, + data: null, + }, + currentData: null, + newNode: null, + newData: [], + oriData: [], + dialogService: false, + listData: { + pageIndex: 1, + pageSize: 10, + count: 0, + name: '' + }, + tableData: [], + multipleSelection: [], + serviceActive: true, + insertServiceActive: false, + serviceType: null + }; + }, + watch: { + filterText(val) { + this.$refs.tree.filter(val); + }, + }, + methods: { + setFromDataTypeClick(res) { + this.setInsertDataTypeChange(res) + this.formInline.type = this.dataType[0].value + }, + setInsertDataTypeClick(res) { + this.setInsertDataTypeChange(res) + this.insertData.type = this.dataType[0].value + }, + setInsertDataTypeChange(res) { + var filter = this.serveType.filter(rs => { + if (rs.value == res) { + return rs + } + }) + if (filter.length <= 0) return + var std = []; + var data = filter[0].children; + for (var i in data) { + for (var j in serve_type) { + if (serve_type[j].value == data[i]) { + std.push({ + value: serve_type[j].value, + label: serve_type[j].name, + }) + } + } + } + this.dataType = std + }, + setServiceConfirm() { + if (this.multipleSelection.length <= 0) { + return this.$message("鏈�夋嫨璧勬簮鏁版嵁"); + } + var url, serviceUrl; + if (this.multipleSelection.status == 1) { + serviceUrl = this.multipleSelection.url; + url = this.multipleSelection.url; + } else if (this.multipleSelection.status == 2) { + var token = getToken() + if (this.multipleSelection.proxy && this.multipleSelection.proxy.indexOf('{token}') > -1) { + serviceUrl = BASE_URL + this.multipleSelection.proxy.replaceAll('{token}', token); + } else { + serviceUrl = this.multipleSelection.url + } + + url = this.multipleSelection.proxy; + } + if (this.dialogVisible) { + this.setInsertDataTypeChange(this.multipleSelection.data); + 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.serviceUrl = serviceUrl; + this.insertData.url = url; + this.insertData.data = this.multipleSelection.data; + this.insertData.tab = this.multipleSelection.tab; + this.insertData.category = this.multipleSelection.category; + this.insertServiceActive = true + } 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.serviceUrl = serviceUrl; + this.formInline.data = this.multipleSelection.data; + this.formInline.tab = this.multipleSelection.tab; + this.formInline.category = this.multipleSelection.category; + this.formInline.url = url; + this.serviceActive = true + // this.formInline.status = '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() + } else { + this.serviceActive = false + this.formInline.resid = 0 + } + }, + setInsertServiceChange(res) { + if (res == '1') { + this.setServiceRest() + } else { + this.insertServiceActive = false + this.insertData.resid = 0 + } + }, + 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(); + let pchildNodes = this.$refs.tree.getNode(node.id).parent.childNodes; + let currentId = {}; + for (let i = 0; i < pchildNodes.length; i++) { + if (pchildNodes[i].data.id == node.id) { + currentId = i; + } + } + switch (res) { + case 1: //鍚戜笂绉诲姩 + if (currentId != 0) { + const tempChildrenNodex1 = pchildNodes[currentId - 1]; + const tempChildrenNodex2 = pchildNodes[currentId]; + // tempChildrenNodex2.orderNum = + // pchildNodes[currentId - 1].data.orderNum; + // tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum; + var arr = []; + this.oriData.filter((res) => { + if (res.id == tempChildrenNodex2.data.id) { + // res.orderNum = tempChildrenNodex2.orderNum; + arr.push(res); + } else if (res.id == tempChildrenNodex1.data.id) { + // res.orderNum = tempChildrenNodex1.orderNum; + arr.push(res); + } + }); + + const orderNum = arr[1].orderNum + arr[1].orderNum = arr[0].orderNum + arr[0].orderNum = orderNum + + this.newData = arr; + this.sendChange(); + } else { + this.$message({ + message: "澶勪簬椤剁锛屼笉鑳界户缁笂绉�", + type: "warning", + }); + } + break; + case 2: //鍚戜笅绉诲姩 + if (currentId < pchildNodes.length - 1) { + const tempChildrenNodex1 = pchildNodes[currentId + 1]; + const tempChildrenNodex2 = pchildNodes[currentId]; + // tempChildrenNodex2.orderNum = + // pchildNodes[currentId + 1].data.orderNum; + // tempChildrenNodex1.orderNum = pchildNodes[currentId].data.orderNum; + var arr = []; + this.oriData.filter((res) => { + if (res.id == tempChildrenNodex2.data.id) { + // res.orderNum = tempChildrenNodex2.orderNum; + arr.push(res); + } else if (res.id == tempChildrenNodex1.data.id) { + // res.orderNum = tempChildrenNodex1.orderNum; + arr.push(res); + } + }); + const orderNum = arr[1].orderNum + arr[1].orderNum = arr[0].orderNum + arr[0].orderNum = orderNum + this.newData = arr; + this.sendChange(); + } else { + this.$message({ + message: "澶勪簬搴曠锛屼笉鑳界户缁笅绉�", + type: "warning", + }); + } + break; + } + }, + async sendChange() { + const data = await layer_updates(this.newData) + if (data.code != 200) { + return this.$message.error("绉诲姩澶辫触"); + } + this.getLayerTree() + }, + + async setDeleteNode() { + const data = await layer_delete({ id: this.formInline.id }); + if (data.code != 200) { + return this.$message.error("鍒犻櫎澶辫触"); + } + this.$message({ + message: '鍒犻櫎鎴愬姛', + type: 'success' + }); + let pchildNodes = this.$refs.tree.getNode(this.formInline.id).parent; + if (pchildNodes.data.id) { + this.currentData = JSON.stringify(pchildNodes.data) + } else { + this.currentData = null + } + + + this.getLayerTree(); + }, + submitCancel() { + this.dialogVisible = false; + this.insertStart(); + }, + async submitForm() { + var val = JSON.parse(JSON.stringify(this.insertData)); + val.status = parseInt(val.status); + var token = getToken(); + if (val.serviceUrl && val.serviceUrl.indexOf(BASE_URL) > -1) { + val.serviceUrl = val.serviceUrl.replaceAll(BASE_URL, ''); + val.serviceUrl = val.serviceUrl.replaceAll(token, '{token}') + } + val.isShow = parseInt(val.isShow) + val.url = val.serviceUrl + val.flag = 1; + const data = await layer_insert(val); + if (data.code != 200) { + return this.$message.error("鏂板澶辫触"); + } + this.$message({ + message: '鏂板鎴愬姛', + type: 'success' + }); + this.getLayerTree(); + this.dialogVisible = false; + this.insertStart(); + }, + insertLayerData(res) { + this.insertStart(); + var node = this.$refs.tree.getCurrentNode(); + this.newNode = node; + var id, lever, orderNum; + if (res == 1) { + //鏂板鍚岀骇 + if (this.formInline.pid) { + id = this.formInline.pid; + let pchildNodes = this.$refs.tree.getNode(this.newNode.id).parent.childNodes + orderNum = this.getMaxOrderNum(pchildNodes); + lever = this.formInline.level; + } else { + id = 0; + orderNum = 1; + lever = 1; + } + + } else if (res == 2) { + //鏂板瀛愮骇 + id = this.formInline.id; + let pchildNodes = this.$refs.tree.getNode(this.newNode.id).childNodes + orderNum = this.getMaxOrderNum(pchildNodes); + lever = this.formInline.level + 1; + } + + this.insertData.pid = id; + this.insertData.level = lever; + this.insertData.orderNum = orderNum; + + this.dialogVisible = true; + }, + getMaxOrderNum(res) { + var val = 1; + for (var i in res) { + if (res[i].data.orderNum > val) { + val = res[i].data.orderNum; + } + } + val = val + 1; + return val; + }, + insertStart() { + var data = this.serveType[0].value; + this.setInsertDataTypeChange(this.serveType[0].value) + var type = this.dataType[0].value + var category = this.serviceType[0].value + this.insertData = { + cnName: null, + type: null, + serveType: null, + url: null, + dataType: null, + bak: null, + isShow: '0', + isProject: '0', + enName: '', + isLayer: null, + category: category, + status: null, + service: '0', + status: '1', + type: type, + data: data, + } + }, + //淇敼鏁版嵁 + async updateSend() { + var val = JSON.parse(JSON.stringify(this.formInline)); + var token = getToken(); + if (val.serviceUrl && val.serviceUrl.indexOf(BASE_URL) > -1) { + val.serviceUrl = val.serviceUrl.replaceAll(BASE_URL, ''); + val.serviceUrl = val.serviceUrl.replaceAll(token, '{token}') + } + val.isShow = parseInt(val.isShow) + val.url = val.serviceUrl + val.flag = 1; + const data = await layer_update(val); + this.currentData = JSON.stringify(this.formInline) + if (data.code != 200) { + return this.$message.error("淇敼澶辫触"); + } + this.$message({ + message: '淇敼鎴愬姛', + type: 'success' + }); + this.getLayerTree(); + }, + //淇敼閲嶇疆 + updateRest() { + var res = JSON.parse(this.backUpData); + this.formInline = res; + this.formInline.isLayer = res.isLayer.toString(); + + this.formInline.status = res.status.toString(); + // this.formInline.isProject = res.isProject.toString(); + }, + //鑾峰彇鍥惧眰鍒楄〃 + async getLayerTree() { + const data = await layer_selectAll({ flag: 1 }); + if (data.code != 200) { + return this.$message.error("鍥惧眰鍒楄〃鏌ヨ澶辫触"); + } + this.oriData = data.result; + this.newData = data.result; + var val = this.setTreeData(data.result); + val.sort(function (a, b) { + return a.orderNum - b.orderNum + }) + + this.treeData = val; + var cdata; + if (this.currentData) { + cdata = JSON.parse(this.currentData); + } else { + cdata = this.treeData[0] + } + this.$nextTick(() => { + this.expandData = [cdata.id]; + this.$refs.tree.setCurrentKey(cdata.id); + this.layerFormInline(cdata) + }); + }, + layerFormInline(res) { + + var val = JSON.parse(JSON.stringify(res)) + + var data = this.$refs.tree.getNode(val.id).data; + var result = JSON.parse(JSON.stringify(data)) + this.backUpData = JSON.stringify(result) + this.currentData = JSON.stringify(result) + this.formInline = result; + this.formInline.isLayer = res.isLayer.toString(); + this.formInline.status = result.status.toString(); + + this.formInline.isShow = res.isShow.toString(); + + + if (res.resid && res.resid > 0) { + this.serviceActive = true + } else { + this.serviceActive = false + } + + var url; + if (!this.serviceActive) { + url = result.url; + } else if (this.serviceActive) { + var token = getToken() + if (result.url.indexOf('{token}') > -1) { + url = BASE_URL + result.url.replaceAll('{token}', token); + } else { + url = result.url; + } + + } + this.formInline.serviceUrl = url; + this.setInsertDataTypeChange(this.formInline.data) + // this.formInline.isProject = result.isProject.toString(); + }, + //鍥惧眰鍒楄〃鐐瑰嚮浜嬩欢 + handleNodeClick(data, node) { + this.layerFormInline(data) + }, + setTreeData(source) { + let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 + return cloneData.filter((father) => { + // 寰幆鎵�鏈夐」 + let branchArr = cloneData.filter((child) => father.id == child.pid); + if (branchArr.length > 0) { + + branchArr.sort(function (a, b) { + + return a.orderNum - b.orderNum + }) + } + branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� + // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛� + // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋� + return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� + }); + }, + //鍥惧眰妯$硦鏌ヨ + filterNode(value, data) { + if (!value) return true; + return data.cnName.indexOf(value) !== -1; + }, + //涓嬫媺鑿滃崟鍒濆鍖� + optionsStart() { + 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.serveType = std; + for (var i in data_type) { + std.push({ + value: data_type[i].value, + label: data_type[i].name, + children: data_type[i].children + }) + } + this.dataType = ste; + + for (var i in category_type) { + str.push({ + value: category_type[i].value, + label: category_type[i].name, + }) + } + this.serviceType = str; + + + }, + //鏁版嵁鍒濆鍖� + formInlineStart() { + this.formInline = { + cnName: null, + type: null, + serveType: null, + url: null, + dataType: null, + bak: null, + isShow: '0', + isProject: '0', + enName: '', + isLayer: null, + category: null, + serviceUrl: null + } + }, + //鑾峰彇鏉冮檺 + getPerms() { + var val = this.$store.state.currentPerms; + var permsEntity = this.$store.state.permsEntity; + + if (!permsEntity || !permsEntity.length) { + getPerms().then((res) => { + if (res.code == 200) { + permsEntity = res.result; + } + }); + } + for (var i = 0; i < permsEntity.length; i++) { + if (val === permsEntity[i].perms) { + this.showPermsMenu(permsEntity[i]); + } + } + + }, + showPermsMenu(res) { + switch (res.tag) { + case "/delete": + this.menuStatus.delete = true; + break; + case "/insert": + this.menuStatus.insert = true; + break; + case "/update": + this.menuStatus.update = true; + break; + } + }, + }, + mounted() { + this.optionsStart(); + this.formInlineStart(); + this.getPerms(); + this.getLayerTree(); + }, +}; + </script> + + <style lang="less" scoped> +.subpage_Box { + //height: 96%; + width: 98%; + padding: 1%; + border-radius: 10px; +} + +.mainBox { + padding-top: 10px; + width: 100%; + height: calc(100% - 75px); + display: flex; + justify-content: space-around; + .leftTree { + width: calc(28% - 0px); + height: 100%; + padding: 10px; + border-radius: 5px; + box-sizing: border-box; + overflow-y: auto; + } + .right { + width: 68%; + height: 100%; + border-radius: 5px; + padding: 10px; + box-sizing: border-box; + border: 1px solid #dcdfe6; + .menuTop { + /deep/ .el-form-item { + margin: 5px; + } + } + } +} +.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%); +} +/deep/.el-radio { + color: white; +} +</style> + <style> +.el-select-dropdown { + background: #303030 !important; + + border: 1px solid gray; +} + +.el-select-dropdown__item { + background-color: transparent !important; + color: #fff; +} + +.el-select-dropdown__item.hover, +.el-select-dropdown__item:hover { + color: #ffff !important; + background: rgba(7, 8, 14, 0.3) !important; +} + +.el-popper .popper__arrow, +.el-popper .popper__arrow::after { + display: none !important; +} +</style> \ No newline at end of file -- Gitblit v1.9.3