From 384fe106ad1efd66ef0910a824bff907322570ea Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期四, 17 八月 2023 15:09:37 +0800
Subject: [PATCH] 图层管理,数据类行加载方式修改

---
 src/views/layer/layerSet.vue |  397 ++++++++++----------------------------------------------
 1 files changed, 73 insertions(+), 324 deletions(-)

diff --git a/src/views/layer/layerSet.vue b/src/views/layer/layerSet.vue
index 4f453fc..3908cd2 100644
--- a/src/views/layer/layerSet.vue
+++ b/src/views/layer/layerSet.vue
@@ -20,14 +20,51 @@
           @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="insertLayerData(1)"
+        <el-button type="primary" :icon="Plus" @click="added('t')"
           >鏂板鍚岀骇</el-button
         >
-        <el-button type="primary" :icon="Plus" @click="insertLayerData(2)"
+        <el-button type="primary" :icon="Plus" @click="added('z')"
           >鏂板瀛愮骇</el-button
         >
         <el-button
@@ -45,168 +82,44 @@
         >
       </div>
       <div class="edit_box_form">
-        <el-form :model="formInline" label-width="120px">
+        <el-form :model="form" 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-input
+              v-model="form.selectName"
+              disabled
+              placeholder="鐐瑰嚮鍥惧眰鏍戦�夋嫨"
+            />
           </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-input v-model="form.name" placeholder="璇疯緭鍏ュ浘灞傚悕绉�" />
           </el-form-item>
-          <!-- 鏁版嵁绫诲瀷 -->
-          <el-form-item v-show="formInline.isLayer == 1" label="鏁版嵁绫诲瀷">
+          <el-form-item label="鍥惧眰绫诲瀷">
             <el-select
               style="width: 100%"
-              v-model="formInline.data"
-              :disabled="serviceActive"
-              @change="setFromDataTypeClick"
+              v-model="form.region"
+              placeholder="璇烽�夋嫨鍥惧眰绫诲瀷"
             >
               <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"
-              :disabled="serviceActive"
-            >
-              <el-option
-                v-for="item in dataType"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
+                v-for="(e, i) in stretchOptions"
+                :label="e.label"
+                :value="e.value"
+                :key="i"
+              />
             </el-select>
           </el-form-item>
 
-          <el-form-item label="鏈嶅姟鍦板潃" v-show="formInline.isLayer == 1">
-            <el-input
-              v-model="formInline.serviceUrl"
-              placeholder="璇疯緭鍏ユ湇鍔″湴鍧�"
-              :disabled="serviceActive"
-            />
+          <el-form-item label="鏈嶅姟鍦板潃">
+            <el-input v-model="form.layerUrl" placeholder="璇疯緭鍏ユ湇鍔″湴鍧�" />
           </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" @click="updateRest">鍙栨秷</el-button>
-            </div>
+              <el-button class="delbtn">鍙栨秷</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>
 
@@ -221,8 +134,6 @@
 } 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 鏉ユ帴鏀剁粍浠剁殑浼犲��
@@ -254,134 +165,21 @@
   },
 ];
 
-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 form = reactive({
+  name: "",
+  region: "",
+  selectName: "",
+  layerUrl: "",
+  children: [],
 });
 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,
@@ -396,35 +194,14 @@
 // 澶勭悊鑺傜偣鐐瑰嚮浜嬩欢
 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;
   }
 }
 //鏂板
@@ -435,17 +212,14 @@
   }
   var addObj = {
     id: id,
-    cnName: formInline.value.name,
-    region: formInline.value.region,
-    url: formInline.value.layerUrl,
+    cnName: form.name,
+    region: form.region,
+    layerUrl: form.layerUrl,
     children: [],
-    type: 2, //鏁版嵁绫诲瀷
-    proxy: null,
-    data: 0,
-    tab: "", //Geoserver 鍚嶇О锛�
-    category: "", //鏈嶅姟绫诲埆 Geoserver ,
+    type: 2,
+    parentId: null,
   };
-  if (formInline.value.region == "鐩綍") {
+  if (form.region == "鐩綍") {
     addObj.type = 1;
   }
 
@@ -514,7 +288,6 @@
   }
   emits("addlayer", { type: type, id: selectedObj.value.id });
 };
-optionsStart();
 </script>
 
 <style lang="less" scoped>
@@ -570,8 +343,7 @@
   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;
@@ -606,19 +378,6 @@
   }
   .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;
@@ -714,7 +473,6 @@
     }
   }
 }
-
 .editBtn {
   width: 100%;
   display: flex;
@@ -759,14 +517,5 @@
 // }
 .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>

--
Gitblit v1.9.3