From 3d8de57d1577ada7c263320d0c91503076994b86 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期三, 19 四月 2023 17:40:14 +0800
Subject: [PATCH] 图层管理页面添加,发布管理修改

---
 src/views/datamanage/uploadmanage.vue    |   23 +
 src/api/api.js                           |   21 +
 src/assets/lang/zh.js                    |   19 +
 src/views/Tools/LayerTree.vue            |   19 
 public/config/config.js                  |    4 
 src/views/Synthesis/LeftMenu.vue         |    6 
 src/views/datamanage/js/layerManage.js   |    8 
 src/views/datamanage/catalogueManage.vue |    3 
 src/assets/lang/en.js                    |   19 +
 src/router/index.js                      |    5 
 src/views/datamanage/bankController.vue  |    7 
 src/views/datamanage/layerManagement.vue |  770 ++++++++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 880 insertions(+), 24 deletions(-)

diff --git a/public/config/config.js b/public/config/config.js
index 7ac397a..0f63f43 100644
--- a/public/config/config.js
+++ b/public/config/config.js
@@ -1,7 +1,5 @@
 //var isWeb = location.hostname.indexOf("103.85.165.") > -1;
-var isWeb = true;
-
-
+var isWeb = false;
 var is_production = false;//鍒ゆ柇鏄惁涓虹敓浜х幆澧�
 
 var webHost = isWeb ? "103.85.165.99" + ":8052" : '192.168.20.205' + ":8088";
diff --git a/src/api/api.js b/src/api/api.js
index 71b8abd..65fd19c 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -902,9 +902,28 @@
 export function dataCount_downloadReport(params) {
   return request.get('/dataCount/downloadReport', { params: params });
 }
+//鍥惧眰绠$悊=> 鑾峰彇鎵�鏈夊浘灞傚垪琛�
+export function layer_selectAll(params) {
+  return request.get('/layer/selectAll', { params: params });
+}
+//鍥惧眰绠$悊=> 鏇存柊涓�鏉�
+export function layer_update(params) {
+  return request.post('/layer/update', params);
+}
+//鍥惧眰绠$悊=> 鏇存柊澶氭潯
+export function layer_updates(params) {
+  return request.post('/layer/updates', params);
+}
 
 
-
+//鍥惧眰绠$悊=> 鎻掑叆涓�鏉�
+export function layer_insert(params) {
+  return request.post('/layer/insert', params);
+}
+//鍥惧眰绠$悊=> 鍒犻櫎涓�鏉�
+export function layer_delete(params) {
+  return request.get('/layer/delete', { params: params });
+}
 
 //璇锋眰绔欏満鐐瑰唴瀹�
 export function querySitePoint(size, index, name) {
diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js
index 876add7..a7b0e27 100644
--- a/src/assets/lang/en.js
+++ b/src/assets/lang/en.js
@@ -72,6 +72,20 @@
     dataDownload: 'Data download',
     projectManage: 'Project information',
     dataStatistics: 'data Statistics',
+    layerManage: 'Layer Management',
+    layerObj: {
+      menuName: 'menu name',
+      menuType: 'Menu Type',
+      serviceName: 'service name',
+      serviceType: 'service type',
+      serviceAddress: 'Service Address',
+      displayOrNot: 'Display or not',
+      isItProjectData: 'Is it project data',
+      dataType: 'data type',
+      istrue: 'true',
+      isfalse: 'false',
+
+    },
     dataStaticObj: {
       type1: 'Primary module',
       type2: 'Secondary module',
@@ -163,9 +177,10 @@
       numberFiles: 'Number of published files',
       minLevel: 'Minimum level',
       maxLevel: 'Maximum level',
-      labe11: 'Please enter the minimum level (0 to 20)',
-      labe12: 'Please enter the maximum level (0 to 20)',
+      labe11: 'Please enter the minimum level (0 to 22)',
+      labe12: 'Please enter the maximum level (0 to 22)',
       labe13: 'Please enter a name',
+      labe14: 'Remove invalid values'
     },
     dictionaryManage: 'dictionaryManage',
     dictionaryManageObj: {
diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js
index dc35488..db75efb 100644
--- a/src/assets/lang/zh.js
+++ b/src/assets/lang/zh.js
@@ -71,6 +71,20 @@
     dataDownload: '鏁版嵁涓嬭浇',
     projectManage: '椤圭洰淇℃伅',
     dataStatistics: '鏁版嵁缁熻',
+    layerManage: '鍥惧眰绠$悊',
+    layerObj: {
+      menuName: '鑿滃崟鍚嶇О',
+      menuType: '鑿滃崟绫诲瀷',
+      serviceName: '鏈嶅姟鍚嶇О',
+      serviceType: '鏈嶅姟绫诲瀷',
+      serviceAddress: '鏈嶅姟鍦板潃',
+      displayOrNot: '鏄惁鏄剧ず',
+      isItProjectData: '鏄惁涓洪」鐩暟鎹�',
+      dataType: '鏁版嵁绫诲瀷',
+      istrue: '鏄�',
+      isfalse: '鍚�',
+
+    },
     dataStaticObj: {
       type1: '鏈嶅姟鍚嶇О',
       type2: '璁块棶娆℃暟',
@@ -165,9 +179,10 @@
 
       minLevel: '鏈�灏忕骇鍒�',
       maxLevel: '鏈�澶х骇鍒�',
-      labe11: '璇疯緭鍏ユ渶灏忕骇鍒�(0 ~ 20)',
-      labe12: '璇疯緭鍏ユ渶澶х骇鍒�(0 ~ 20)',
+      labe11: '璇疯緭鍏ユ渶灏忕骇鍒�(0 ~ 22)',
+      labe12: '璇疯緭鍏ユ渶澶х骇鍒�(0 ~ 22)',
       labe13: '璇疯緭鍏ュ悕绉�',
+      labe14: '鍘婚櫎鏃犳晥鍊�'
     },
     dictionaryManage: '瀛楀吀绠$悊',
     dictionaryManageObj: {
diff --git a/src/router/index.js b/src/router/index.js
index 6775d77..c6f8d4b 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -48,6 +48,7 @@
 import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //绯荤粺绠$悊-瑙掕壊璧勬簮鎺堟潈
 import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //绯荤粺绠$悊-瑙掕壊鑿滃崟鎺堟潈
 
+import layerManagement from '@/views/datamanage/layerManagement.vue'; //鏁版嵁绠$悊-鑿滃崟绠$悊
 import bankController from '../views/datamanage/bankController.vue';//鏁版嵁搴撶鐞�
 import projectController from '../views/datamanage/projectController.vue';//椤圭洰绠$悊
 
@@ -58,6 +59,10 @@
 //鍖呬簩
 import WareInspection from '@/views/PackageTwo/WareInspection.vue'; //鏁版嵁璐ㄦ-鍏ュ簱璐ㄦ
 import QualityInspection from '@/views/PackageTwo/index.vue'; //鏁版嵁璐ㄦ-鍏ュ簱璐ㄦ
+
+
+
+
 const originalPush = VueRouter.prototype.push;
 
 VueRouter.prototype.push = function push(location) {
diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue
index 92f5dfd..5913567 100644
--- a/src/views/Synthesis/LeftMenu.vue
+++ b/src/views/Synthesis/LeftMenu.vue
@@ -2480,6 +2480,12 @@
       return cloneData.filter((father) => {
         // 寰幆鎵�鏈夐」
         let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+        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锛�
         // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋�
diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index 7c365c5..0d84642 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -73,30 +73,30 @@
       :style="{ ...rightClickMenuStyle }"
       v-show="menuVisible"
     >
-      <div
+      <!-- <div
         @click="addSameLevelNode()"
         v-show="firstLevel"
       >
         <i class="el-icon-plus"></i>&nbsp;&nbsp;娣诲姞鍥惧眰缁�
-      </div>
-      <div
+      </div> -->
+      <!-- <div
         class="add"
         @click="addChildNode()"
       >
         <i class="el-icon-plus"></i>&nbsp;&nbsp;娣诲姞鍥惧眰
-      </div>
-      <div
+      </div> -->
+      <!-- <div
         class="delete"
         @click="deleteNode()"
       >
         <i class="el-icon-delete"></i>&nbsp;&nbsp;鍒犻櫎
-      </div>
-      <div
+      </div> -->
+      <!-- <div
         class="edit"
         @click="editNode()"
       >
         <i class="el-icon-edit"></i>&nbsp;&nbsp;閲嶅懡鍚�
-      </div>
+      </div> -->
       <div
         class="edit"
         @click="showLayerAttribute()"
@@ -316,6 +316,9 @@
     },
     // 榧犳爣鍙冲嚮浜嬩欢
     rightClick(event, object, Node, element) {
+      if (object.type == 1) {
+        return
+      }
       this.currentData = object;
       this.currentNode = Node;
 
diff --git a/src/views/datamanage/bankController.vue b/src/views/datamanage/bankController.vue
index 5f87439..f03e0b0 100644
--- a/src/views/datamanage/bankController.vue
+++ b/src/views/datamanage/bankController.vue
@@ -31,9 +31,9 @@
         <style-manage v-if="setMenuFlag == 'styleManage'"></style-manage>
         <data-loader v-if="setMenuFlag == 'dataLoader'"></data-loader>
         <down-loader v-if="setMenuFlag == 'downLoader'"></down-loader>
-
         <data-statistics v-if="setMenuFlag == 'dataStatistics'"></data-statistics>
         <uploadmanage v-if="setMenuFlag == 'uploadmanage'"></uploadmanage>
+        <layer-management v-if="setMenuFlag == 'layerManagement'"></layer-management>
       </div>
     </div>
 
@@ -57,7 +57,8 @@
 import projectManage from '@/views/datamanage/projectManage.vue'; //椤圭洰绠$悊
 import dataStatistics from '@/views/datamanage/dataStatistics.vue'; //鏁版嵁缁熻
 import uploadmanage from '@/views/datamanage/uploadmanage.vue'; //涓婁紶绠$悊
-import Uploadmanage from './uploadmanage.vue';
+import layerManagement from '@/views/datamanage/layerManagement.vue'; //鏁版嵁绠$悊-鑿滃崟绠$悊
+
 export default {
   components: {
     customElMenu,
@@ -74,6 +75,7 @@
     projectManage,
     dataStatistics,
     uploadmanage,
+    layerManagement,
 
   },
   data() {
@@ -235,6 +237,7 @@
           index = 'dataIfream';
         }
       }
+
       this.setMenuFlag = index;
     },
 
diff --git a/src/views/datamanage/catalogueManage.vue b/src/views/datamanage/catalogueManage.vue
index b6db35b..d6a3331 100644
--- a/src/views/datamanage/catalogueManage.vue
+++ b/src/views/datamanage/catalogueManage.vue
@@ -1011,8 +1011,7 @@
             }
             item.orderNum = i + 1;
           });
-          // console.log(nodeData);
-          //鏇存柊鍘熷鏁翠綋鏁版嵁
+
           let arr = [];
           this.oriData.forEach((e) => {
             nodeData.forEach((item) => {
diff --git a/src/views/datamanage/js/layerManage.js b/src/views/datamanage/js/layerManage.js
new file mode 100644
index 0000000..8c821a1
--- /dev/null
+++ b/src/views/datamanage/js/layerManage.js
@@ -0,0 +1,8 @@
+export const serve_type = [
+    'Mpt', 'Tileset', 'WMS', 'TMS'
+];
+export const data_type = [
+    '鍩虹鍕樺療', '鍩虹鍦扮伨', '鍩虹娴嬬粯', '宸ョ▼绾胯矾', '宸ョ▼娴嬬粯', '宸ョ▼娲炲簱',
+    '鑷姩鍙戝竷妯″瀷', '宸ョ▼鍕樺療', '宸ョ▼鍦扮伨', '鑷姩鍙戝竷褰卞儚', '鑷姩鍙戝竷鍦板舰鍦烘櫙', '鍏朵粬'
+
+]
\ No newline at end of file
diff --git a/src/views/datamanage/layerManagement.vue b/src/views/datamanage/layerManagement.vue
new file mode 100644
index 0000000..3177157
--- /dev/null
+++ b/src/views/datamanage/layerManagement.vue
@@ -0,0 +1,770 @@
+<template>
+  <div class="subpage_Box">
+    <My-bread :list="[
+          `${$t('dataManage.dataManage')}`,
+          `${$t('dataManage.layerManage')}`,
+        ]"></My-bread>
+    <el-divider />
+    <div class="mainBox">
+
+      <div
+        class="cataLogContent leftTree subpage_Div"
+        style="border: 1px solid #dcdfe6;"
+      >
+        <div>
+          <el-input v-model="filterText"></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">
+                  <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.menuName')">
+              <el-input
+                style="width: 60%;"
+                v-model="formInline.cnName"
+              ></el-input>
+            </el-form-item>
+            <!-- 鑿滃崟绫诲瀷 -->
+            <el-form-item :label="$t('dataManage.layerObj.menuType')">
+              <el-select
+                clearable
+                style="width: 60%;"
+                v-model="formInline.type"
+                placeholder=" "
+              >
+                <el-option
+                  label="鐩綍"
+                  value='1'
+                ></el-option>
+                <el-option
+                  label="鍥惧眰"
+                  value='2'
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <!-- 鏈嶅姟绫诲瀷 -->
+            <el-form-item
+              v-show="formInline.type == 2"
+              :label="$t('dataManage.layerObj.serviceType')"
+            >
+              <el-select
+                clearable
+                style="width: 60%;"
+                v-model="formInline.serveType"
+                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.type == 2"
+              :label="$t('dataManage.layerObj.serviceAddress')"
+            >
+              <el-input
+                style="width: 60%;"
+                v-model="formInline.url"
+              ></el-input>
+            </el-form-item>
+            <!-- 鏁版嵁绫诲瀷 -->
+            <el-form-item :label="$t('dataManage.layerObj.dataType')">
+              <el-select
+                clearable
+                style="width: 60%;"
+                v-model="formInline.dataType"
+                placeholder=" "
+              >
+                <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.type == 2"
+              :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
+              v-show="formInline.type == 2"
+              :label="$t('dataManage.layerObj.isItProjectData')"
+            >
+              <el-radio
+                v-model="formInline.isProject"
+                label="0"
+              > {{$t('dataManage.layerObj.isfalse')}}</el-radio>
+              <el-radio
+                v-model="formInline.isProject"
+                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"
+              ></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-item :label="$t('dataManage.layerObj.menuName')">
+            <el-input
+              style="width: 80%;"
+              v-model="insertData.cnName"
+            ></el-input>
+          </el-form-item>
+          <!-- 鑿滃崟绫诲瀷 -->
+          <el-form-item :label="$t('dataManage.layerObj.menuType')">
+            <el-select
+              clearable
+              style="width: 80%;"
+              v-model="insertData.type"
+              placeholder=" "
+            >
+              <el-option
+                label="鐩綍"
+                value='1'
+              ></el-option>
+              <el-option
+                label="鍥惧眰"
+                value='2'
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <!-- 鏈嶅姟绫诲瀷 -->
+          <el-form-item
+            v-show="insertData.type == 2"
+            :label="$t('dataManage.layerObj.serviceType')"
+          >
+            <el-select
+              clearable
+              style="width: 80%;"
+              v-model="insertData.serveType"
+              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="insertData.type == 2"
+            :label="$t('dataManage.layerObj.serviceAddress')"
+          >
+            <el-input
+              style="width: 80%;"
+              v-model="insertData.url"
+            ></el-input>
+          </el-form-item>
+          <!-- 鏁版嵁绫诲瀷 -->
+          <el-form-item :label="$t('dataManage.layerObj.dataType')">
+            <el-select
+              clearable
+              style="width: 80%;"
+              v-model="insertData.dataType"
+              placeholder=" "
+            >
+              <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.type == 2"
+            :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
+            v-show="insertData.type == 2"
+            :label="$t('dataManage.layerObj.isItProjectData')"
+          >
+            <el-radio
+              v-model="insertData.isProject"
+              label="0"
+            > {{$t('dataManage.layerObj.isfalse')}}</el-radio>
+            <el-radio
+              v-model="insertData.isProject"
+              label="1"
+            >{{$t('dataManage.layerObj.istrue')}}</el-radio>
+          </el-form-item>
+          <!-- 鎻忚堪 -->
+          <el-form-item :label="$t('common.bak')">
+            <el-input
+              style="width: 80%;"
+              v-model="insertData.bak"
+            ></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"
+            >{{$t('common.cancel')}}</el-button>
+          </el-form-item>
+
+        </el-form>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import MyBread from "../../components/MyBread.vue";
+import {
+  getPerms,
+  layer_selectAll,
+  layer_update,
+  layer_updates,
+  layer_insert,
+  layer_delete
+} from "../../api/api";
+import $ from 'jquery'
+import { getToken } from '../../utils/auth';
+import { serve_type, data_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,
+        serveType: null,
+        url: null,
+        dataType: null,
+        bak: null,
+        isShow: '0',
+        isProject: '0'
+      },
+      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: {},
+      currentData: null,
+      newNode: null,
+      newData: [],
+      oriData: [],
+    };
+  },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+  methods: {
+    //鍚戜笂鍚戜笅绉诲姩
+    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);
+              }
+            });
+            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);
+              }
+            });
+            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();
+    },
+    async submitForm() {
+      var val = this.insertData;
+      val.isShow = parseInt(val.isShow);
+      val.isProject = parseInt(val.isProject);
+      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) {
+        //鏂板鍚岀骇
+        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;
+      this.dialogVisible = true;
+    },
+    getMaxOrderNum(res) {
+      var val = -100;
+      for (var i in res) {
+        if (res[i].data.orderNum > val) {
+          val = res[i].data.orderNum;
+        }
+      }
+      val = val + 1;
+      return val;
+    },
+    insertStart() {
+      this.insertData = {
+        cnName: null,
+        type: null,
+        serveType: null,
+        serveType: null,
+        url: null,
+        dataType: null,
+        bak: null,
+        isShow: '0',
+        isProject: '0'
+      }
+    },
+    //淇敼鏁版嵁
+    async updateSend() {
+      var val = JSON.parse(JSON.stringify(this.formInline));
+      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.type = res.type.toString();
+      this.formInline.isShow = res.isShow.toString();
+      this.formInline.isProject = res.isProject.toString();
+    },
+    //鑾峰彇鍥惧眰鍒楄〃
+    async getLayerTree() {
+      const data = await layer_selectAll();
+      if (data.code != 200) {
+        return this.$message.error("鍥惧眰鍒楄〃鏌ヨ澶辫触");
+      }
+      this.oriData = data.result;
+      this.newData = data.result;
+      var val = this.setTreeData(data.result);
+      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))
+      this.backUpData = JSON.stringify(res)
+      this.currentData = JSON.stringify(res)
+      this.formInline = val;
+      this.formInline.type = val.type.toString();
+      this.formInline.isShow = val.isShow.toString();
+      this.formInline.isProject = val.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 = [];
+      for (var i in serve_type) {
+        std.push({
+          value: serve_type[i],
+          label: serve_type[i],
+        })
+      }
+      this.serveType = std;
+      for (var i in data_type) {
+        ste.push({
+          value: data_type[i],
+          label: data_type[i],
+        })
+      }
+      this.dataType = ste;
+    },
+    //鏁版嵁鍒濆鍖�
+    formInlineStart() {
+      this.formInline = {
+        cnName: null,
+        type: null,
+        serveType: null,
+        serveType: null,
+        url: null,
+        dataType: null,
+        bak: null,
+        isShow: '0',
+        isProject: '0'
+      }
+    },
+    //鑾峰彇鏉冮檺
+    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;
+      }
+    }
+  }
+}
+</style>
diff --git a/src/views/datamanage/uploadmanage.vue b/src/views/datamanage/uploadmanage.vue
index 38f9a90..c7840f4 100644
--- a/src/views/datamanage/uploadmanage.vue
+++ b/src/views/datamanage/uploadmanage.vue
@@ -440,7 +440,7 @@
       :close-on-click-modal="false"
       :show-close="false"
     >
-      <div style="width:100%;height:30vh">
+      <div style="width:100%; ">
         <el-form
           ref="form"
           :model="insertLayer"
@@ -457,6 +457,21 @@
               disabled
               v-model="insertLayer.number"
             ></el-input>
+          </el-form-item>
+          <el-form-item :label="$t('dataManage.vmobj.labe14')">
+            <el-select
+              style="width:100%"
+              v-model="insertLayer.noData"
+            >
+              <el-option
+                label="榛戣壊"
+                value="0"
+              ></el-option>
+              <el-option
+                label="鐧借壊"
+                value="255"
+              ></el-option>
+            </el-select>
           </el-form-item>
           <el-form-item :label="$t('dataManage.vmobj.minLevel')">
             <!-- <el-input
@@ -627,7 +642,7 @@
     },
     setOptions() {
       var std = [];
-      for (var i = 0; i < 21; i++) {
+      for (var i = 0; i < 23; i++) {
         std.push({
           value: i,
           label: i
@@ -707,12 +722,13 @@
     //鏁版嵁鍙戝竷
     async setPagePublish() {
       if (this.multipleSelection.length == 0) {
-        this.$message.error("璇烽�夋嫨瑕佸彂甯冪殑鏁版嵁")
+        this.$message("璇烽�夋嫨瑕佸彂甯冪殑鏁版嵁")
         return
       }
       if (this.formInline.type == "DOM") {
         this.insertLayer.name = this.formInline.dirName;
         this.insertLayer.number = this.multipleSelection.length
+        this.insertLayer.noData = '0';
         this.insertDialogVisible = true;
       } else {
         var std = [];
@@ -722,7 +738,6 @@
         var obj = {
           dircode: this.formInline.dirid,
           depcode: this.formInline.depid,
-
           ids: std,
           type: this.formInline.type
         }

--
Gitblit v1.9.3