| | |
| | | @node-click="handleNodeClick" |
| | | ref="treeRef" |
| | | /> |
| | | |
| | | <!-- <div class="contentBox" v-for="(item, i) in menuOption" :key="i"> |
| | | <div |
| | | class="contentTile" |
| | | @click.stop="selectList(item)" |
| | | :class="{ highlight: item.id == selectedNodeId }" |
| | | > |
| | | <div class="contentLeft"> |
| | | <div class="contentImg"></div> |
| | | <div class="contentLabel">{{ item.name }}</div> |
| | | </div> |
| | | <div class="contentRight"> |
| | | <div> |
| | | <div |
| | | @click="handlIsShow(item.name)" |
| | | class="contentUP" |
| | | :class="{ accordion: item.isShow }" |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="content" v-show="item.isShow"> |
| | | <div |
| | | class="layer_box" |
| | | v-for="(v, k) in item.children" |
| | | :key="k" |
| | | @click.stop="selectList(v)" |
| | | :class="{ highlight: v.id == selectedNodeId }" |
| | | > |
| | | <div class="contentLeft"> |
| | | <div class="contentImg"></div> |
| | | <div class="contentLabel">{{ v.name }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | <div class="edit_box"> |
| | | <div class="edit_box_btn btnstyle"> |
| | | <el-button type="primary" :icon="Plus" @click="added('t')" |
| | | <el-button type="primary" :icon="Plus" @click="insertLayerData(1)" |
| | | >æ°å¢å级</el-button |
| | | > |
| | | <el-button type="primary" :icon="Plus" @click="added('z')" |
| | | <el-button type="primary" :icon="Plus" @click="insertLayerData(2)" |
| | | >æ°å¢å级</el-button |
| | | > |
| | | <el-button |
| | |
| | | > |
| | | </div> |
| | | <div class="edit_box_form"> |
| | | <el-form :model="form" label-width="120px"> |
| | | <el-form :model="formInline" label-width="120px"> |
| | | <el-form-item label="éä¸å¾å±"> |
| | | <el-select style="width: 100%" 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="æå¡èµæº"> |
| | | <el-button |
| | | size="small" |
| | | class="serviceButton" |
| | | @click="setServiceChange('0')" |
| | | key="0" |
| | | :class="{ serviceActive: !serviceActive }" |
| | | >å¦</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | class="serviceButton" |
| | | @click="setServiceChange('1')" |
| | | key="1" |
| | | :class="{ serviceActive: serviceActive }" |
| | | >æ¯</el-button |
| | | > |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="å¾å±åç§°"> |
| | | <el-input |
| | | v-model="form.selectName" |
| | | disabled |
| | | placeholder="ç¹å»å¾å±æ éæ©" |
| | | v-model="formInline.cnName" |
| | | placeholder="请è¾å
¥å¾å±åç§°" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å¾å±åç§°"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥å¾å±åç§°" /> |
| | | </el-form-item> |
| | | <el-form-item label="å¾å±ç±»å"> |
| | | <!-- æ°æ®ç±»å --> |
| | | <el-form-item v-show="formInline.isLayer == 1" label="æ°æ®ç±»å"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="form.region" |
| | | placeholder="è¯·éæ©å¾å±ç±»å" |
| | | v-model="formInline.data" |
| | | :disabled="serviceActive" |
| | | @change="setFromDataTypeClick" |
| | | > |
| | | <el-option |
| | | v-for="(e, i) in stretchOptions" |
| | | :label="e.label" |
| | | :value="e.value" |
| | | :key="i" |
| | | /> |
| | | 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="æå¡ç±»å"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="formInline.type" |
| | | :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 label="æå¡å°å"> |
| | | <el-input v-model="form.layerUrl" placeholder="请è¾å
¥æå¡å°å" /> |
| | | <el-form-item label="æå¡å°å" v-show="formInline.isLayer == 1"> |
| | | <el-input |
| | | v-model="formInline.serviceUrl" |
| | | placeholder="请è¾å
¥æå¡å°å" |
| | | :disabled="serviceActive" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <!-- <div class="btnstyle editBtn"> |
| | | <div class="btnstyle editBtn"> |
| | | <el-button type="primary" @click="onSubmit">ç¡®å®</el-button> |
| | | <el-button class="delbtn">åæ¶</el-button> |
| | | </div> --> |
| | | <el-button class="delbtn" @click="updateRest">åæ¶</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <el-dialog title="æ°å¢" v-model:visible="dialogVisible" width="50%"> |
| | | <div style="width: 100%; max-height: 63vh; overflow-y: auto"> |
| | | <el-form :model="formInline" label-width="120px"> |
| | | <el-form-item label="éä¸å¾å±"> |
| | | <el-select style="width: 100%" 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="æå¡èµæº"> |
| | | <el-button |
| | | size="small" |
| | | class="serviceButton" |
| | | @click="setServiceChange('0')" |
| | | key="0" |
| | | :class="{ serviceActive: !serviceActive }" |
| | | >å¦</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | class="serviceButton" |
| | | @click="setServiceChange('1')" |
| | | key="1" |
| | | :class="{ serviceActive: serviceActive }" |
| | | >æ¯</el-button |
| | | > |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="å¾å±åç§°"> |
| | | <el-input |
| | | v-model="formInline.cnName" |
| | | placeholder="请è¾å
¥å¾å±åç§°" |
| | | /> |
| | | </el-form-item> |
| | | <!-- æ°æ®ç±»å --> |
| | | <el-form-item v-show="formInline.isLayer == 1" label="æ°æ®ç±»å"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="formInline.data" |
| | | @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="æå¡ç±»å"> |
| | | <el-select style="width: 100%" v-model="formInline.type"> |
| | | <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 label="æå¡å°å" v-show="formInline.isLayer == 1"> |
| | | <el-input |
| | | v-model="formInline.serviceUrl" |
| | | placeholder="请è¾å
¥æå¡å°å" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <div class="btnstyle editBtn"> |
| | | <el-button type="primary" @click="onSubmit">ç¡®å®</el-button> |
| | | <el-button class="delbtn" @click="updateRest">åæ¶</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | } from "vue"; |
| | | import { Plus, Delete, Top, Bottom } from "@element-plus/icons-vue"; |
| | | import { ElMessage } from "element-plus"; |
| | | import { serve_type, data_type } from "./js/layerManage.js"; |
| | | import { removeToken, getToken } from "@/utils/auth"; |
| | | const stretchValue = ref(""); |
| | | const emits = defineEmits(["SETstate", "addlayer", "delLayer"]); |
| | | //defineProps æ¥æ¥æ¶ç»ä»¶çä¼ å¼ |
| | |
| | | }, |
| | | ]; |
| | | |
| | | const form = reactive({ |
| | | name: "", |
| | | region: "", |
| | | selectName: "", |
| | | layerUrl: "", |
| | | children: [], |
| | | const formInline = ref({ |
| | | cnName: null, |
| | | type: null, |
| | | serveType: null, |
| | | url: null, |
| | | dataType: null, |
| | | bak: null, |
| | | isShow: "1", |
| | | isProject: "0", |
| | | enName: "", |
| | | isLayer: null, |
| | | category: null, |
| | | status: null, |
| | | service: "0", |
| | | serviceUrl: null, |
| | | }); |
| | | const insertData = ref({ |
| | | cnName: null, |
| | | type: null, |
| | | serveType: null, |
| | | url: null, |
| | | dataType: null, |
| | | bak: null, |
| | | isShow: "1", |
| | | isProject: "0", |
| | | enName: "", |
| | | isLayer: null, |
| | | category: null, |
| | | status: null, |
| | | service: "0", |
| | | serviceUrl: null, |
| | | }); |
| | | const props = { |
| | | label: "cnName", |
| | | children: "children", |
| | | }; |
| | | let dialogVisible = ref(false); |
| | | // å½åéä¸çèç¹ id |
| | | const selectedNodeId = ref(null as any); //åç±»åæè¨å¤ç |
| | | const selectedObj = ref(null); |
| | | let menuOption = ref([]); |
| | | let serviceActive = ref(false); |
| | | let dataType = ref(null); |
| | | let serveType = ref(null); |
| | | let backUpData = ref(null); |
| | | const insertLayerData = (res) => { |
| | | // 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; |
| | | // } 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; |
| | | |
| | | dialogVisible.value = true; |
| | | }; |
| | | //ä¿®æ¹éç½® |
| | | const updateRest = () => { |
| | | var res = JSON.parse(backUpData.value); |
| | | formInline.value = res; |
| | | formInline.value.isLayer = res.isLayer.toString(); |
| | | |
| | | formInline.value.status = res.status.toString(); |
| | | // this.formInline.isProject = res.isProject.toString(); |
| | | }; |
| | | //䏿èååå§å |
| | | const optionsStart = () => { |
| | | var std = []; |
| | | var ste = []; |
| | | for (var i in serve_type) { |
| | | ste.push({ |
| | | value: serve_type[i].value, |
| | | label: serve_type[i].name, |
| | | }); |
| | | } |
| | | serveType.value = std; |
| | | for (var i in data_type) { |
| | | std.push({ |
| | | value: data_type[i].value, |
| | | label: data_type[i].name, |
| | | children: data_type[i].children, |
| | | }); |
| | | } |
| | | dataType.value = ste; |
| | | }; |
| | | const setInsertDataTypeChange = (res) => { |
| | | var filter = serveType.value.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, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | dataType.value = std; |
| | | }; |
| | | const setFromDataTypeClick = (res) => { |
| | | setInsertDataTypeChange(res); |
| | | formInline.value.type = dataType.value[0].value; |
| | | }; |
| | | const setServiceChange = (res) => { |
| | | if (res == "1") { |
| | | // this.setServiceRest() |
| | | } else { |
| | | serviceActive.value = false; |
| | | formInline.value.resid = 0; |
| | | } |
| | | }; |
| | | const handleCheckChange = ( |
| | | data: Tree, |
| | | checked: boolean, |
| | |
| | | // å¤çèç¹ç¹å»äºä»¶ |
| | | function handleNodeClick(data: any) { |
| | | console.log(data); |
| | | console.log(formInline.value); |
| | | if (data.id === selectedNodeId.value) { |
| | | // 妿å½åèç¹å·²ç»éä¸ï¼ååæ¶éä¸ |
| | | selectedNodeId.value = null; |
| | | } else { |
| | | // å¦åéä¸å½åèç¹ |
| | | selectedNodeId.value = data.id; |
| | | form.selectName = data.cnName; |
| | | selectedObj.value = data; |
| | | backUpData.value = JSON.stringify(data); |
| | | // this.currentData = JSON.stringify(result) |
| | | formInline.value = data; |
| | | formInline.value.isLayer = data.isLayer.toString(); |
| | | if (data.resid && data.resid > 0) { |
| | | serviceActive.value = true; |
| | | } else { |
| | | serviceActive.value = false; |
| | | } |
| | | var url; |
| | | if (!serviceActive.value) { |
| | | url = data.url; |
| | | } else if (serviceActive.value) { |
| | | var token = getToken(); |
| | | if (data.url.indexOf("{token}") > -1) { |
| | | url = BASE_URL + data.url.replaceAll("{token}", token); |
| | | } else { |
| | | url = data.url; |
| | | } |
| | | } |
| | | formInline.value.serviceUrl = url; |
| | | } |
| | | } |
| | | //æ°å¢ |
| | |
| | | } |
| | | var addObj = { |
| | | id: id, |
| | | cnName: form.name, |
| | | region: form.region, |
| | | layerUrl: form.layerUrl, |
| | | cnName: formInline.value.name, |
| | | region: formInline.value.region, |
| | | url: formInline.value.layerUrl, |
| | | children: [], |
| | | type: 2, |
| | | parentId: null, |
| | | type: 2, //æ°æ®ç±»å |
| | | proxy: null, |
| | | data: 0, |
| | | tab: "", //Geoserver åç§°ï¼ |
| | | category: "", //æå¡ç±»å« Geoserver , |
| | | }; |
| | | if (form.region == "ç®å½") { |
| | | if (formInline.value.region == "ç®å½") { |
| | | addObj.type = 1; |
| | | } |
| | | |
| | |
| | | } |
| | | emits("addlayer", { type: type, id: selectedObj.value.id }); |
| | | }; |
| | | optionsStart(); |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | |
| | | width: 359px; |
| | | height: 615px; |
| | | background: rgba(7, 8, 14, 0.8); |
| | | |
| | | // padding-bottom: 60px; |
| | | box-sizing: border-box; |
| | | .layerTitle { |
| | | width: calc(100% - 27px); |
| | | height: 42px; |
| | |
| | | } |
| | | .layerContent { |
| | | padding: 0 8px; |
| | | height: 92%; |
| | | overflow: auto; |
| | | } |
| | | .layerContent::-webkit-scrollbar { |
| | | width: 8px; |
| | | } |
| | | .layerContent::-webkit-scrollbar-thumb { |
| | | border-radius: 10px; |
| | | background: rgba(0, 0, 0, 0.2); |
| | | } |
| | | .layerContent::-webkit-scrollbar-track { |
| | | border-radius: 0; |
| | | background: rgba(0, 0, 0, 0); |
| | | } |
| | | .contentBox { |
| | | margin-top: 3px; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .editBtn { |
| | | width: 100%; |
| | | display: flex; |
| | |
| | | .highlight { |
| | | background: rgba(104, 156, 255, 0.5) !important; |
| | | } |
| | | .serviceButton { |
| | | background: transparent !important; |
| | | color: #dcdfe6; |
| | | } |
| | | .serviceActive { |
| | | background: transparent !important; |
| | | color: #46a6ff; |
| | | border: 1px solid #46a6ff; |
| | | } |
| | | </style> |