From 3ea9ee4742a867544c8cf2011aa719ee72f8ecb8 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 31 Oct 2025 14:40:32 +0800
Subject: [PATCH] feat: 国土规划100%

---
 src/views/layerManagement/components/folderFile.vue |   31 ++++++++++++++++++-------------
 src/views/layerManagement/components/leftList.vue   |   23 ++++++++++++++++++-----
 src/views/layerManagement/index.vue                 |    1 +
 3 files changed, 37 insertions(+), 18 deletions(-)

diff --git a/src/views/layerManagement/components/folderFile.vue b/src/views/layerManagement/components/folderFile.vue
index cb79f07..c794153 100644
--- a/src/views/layerManagement/components/folderFile.vue
+++ b/src/views/layerManagement/components/folderFile.vue
@@ -1,14 +1,14 @@
 <template>
   <div class="rightContainer">
-    <div class="contenttitle">文件夹信息</div>
+    <div class="contenttitle">{{itSLandPlanning ? '文件' : '文件夹'}}信息</div>
     <div class="centerBox">
       <div class="itemRow">
-        <div class="label">文件夹名称</div>
+        <div class="label">{{itSLandPlanning ? '文件' : '文件夹'}}名称</div>
         <div>
           <el-input class="ztzf-input inputName" v-model="formData.name" placeholder="请输入" />
         </div>
       </div>
-      <div class="itemRow">
+      <div class="itemRow" v-if="!itSLandPlanning">
         <div class="label">关联算法</div>
         <div>
           <el-select
@@ -45,7 +45,7 @@
       </div>
     </div>
     <div class="detailInfo" v-if="layerParams.editFolder">
-      <div class="infpItem">
+      <div class="infpItem" v-if="!itSLandPlanning">
         <div class="itemData">
           <div class="title">围栏总数量</div>
           <div class="num">
@@ -86,6 +86,7 @@
 import dayjs from 'dayjs';
 import { deleteFolderApi, deitFolderApi, addFolderApi } from '@/api/layer/index';
 import { getTicketInfo } from '@/api/tickets/ticket';
+import { computed } from 'vue';
 const layerParams = inject('layerParams');
 const types = ref([]); //工单类型
 const allAlgorithms = ref([]);
@@ -100,6 +101,10 @@
 });
 const detailData = ref(null);
 detailData.value = layerParams.value.editFolderData;
+const props = defineProps({
+  activeName: String,
+});
+const itSLandPlanning = computed(() => props.activeName === '国土空间规划')
 const getTicketInfoData = async () => {
   const response = await getTicketInfo();
   const { dept_data, event_type, ai_type, info } = response.data.data;
@@ -150,14 +155,13 @@
     ElMessage.error('请输入文件夹名称');
     return;
   }
-  if (!formData.value.event_type) {
-    ElMessage.error('请选择类型');
-
-    return;
-  }
-  if (!formData.value.algorithm_name) {
-    ElMessage.error('请选择算法');
-    return;
+  if(!itSLandPlanning){
+    if (!formData.value.event_type) {
+      return ElMessage.warning('请选择类型');
+    }
+    if (!formData.value.algorithm_name) {
+      return ElMessage.warning('请选择算法')
+    }
   }
   const params = {
     category_id: layerParams.value.fileType === 1 ? 1 : 2,
@@ -173,14 +177,15 @@
     // 文件夹新增
     addFolderApi(params).then(res => {
       ElMessage.success('新增成功');
+      clearAllData();
     });
   } else {
     //文件夹编辑
     deitFolderApi(params).then(res => {
       ElMessage.success('编辑成功');
+      clearAllData();
     });
   }
-  clearAllData();
 };
 onMounted(async () => {
   await getTicketInfoData();
diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 8d4aea6..410a0e6 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -31,6 +31,7 @@
     <div class="tableListBox">
       <el-tree
         class="ztzf-el-tree"
+        :class="{isTheTerritory:activeName === '国土空间规划'}"
         ref="treeRef"
         v-model="checkedKeys"
         :data="treeData"
@@ -52,13 +53,12 @@
             <span>{{ node.label }}</span>
             <!-- 操作按钮组 -->
             <div class="tree-node-actions">
-              <el-button
+              <el-button link
                 icon="el-icon-location"
-                type="text"
                 @click="handleLocation(node)"
               ></el-button>
-              <el-button icon="el-icon-edit" type="text" @click.stop="handleEdit(node)"></el-button>
-              <el-button icon="el-icon-delete" type="text" @click="handleDelete(node)"></el-button>
+              <el-button icon="el-icon-edit" link @click.stop="handleEdit(node)"></el-button>
+              <el-button icon="el-icon-delete" link @click="handleDelete(node)"></el-button>
             </div>
           </div>
         </template>
@@ -70,7 +70,7 @@
 <script setup>
 import { ElMessage } from 'element-plus';
 import { treeDataApi, deleteFenceApi, deleteFolderApi, spatialPlanningApi } from '@/api/layer/index';
-import { inject, onMounted, watch } from 'vue';
+import { inject, nextTick, onMounted, watch } from 'vue';
 const emit = defineEmits(['update:coverData', 'update:deitData', 'newFencesMethods']);
 import EventBus from '@/utils/eventBus';
 const coverData = ref();
@@ -107,6 +107,7 @@
     newVal => {
       const matchedCategory = treeAllData.value.find(item => item.name === newVal);
       treeData.value = matchedCategory.children;
+      nextTick(search)
       if (treeData.value && treeData.value.length > 0) {
         const folderNode = treeData.value[0];
         // 赋值给 layerParams
@@ -259,6 +260,10 @@
   treeRef.value?.filter('')
 }
 function filterNode(value,data) {
+  if (props.activeName === '国土空间规划'){
+    if (!value) return (data.level===2 || data.level===1)
+    return (data.level===2 || data.level===1) && data.name.includes(value)
+  }
   if (!value) return true
   return data.name.includes(value)
 }
@@ -350,6 +355,14 @@
   //  }
   //}
 
+  .isTheTerritory{
+    :deep(){
+      .el-tree-node__expand-icon{
+        visibility: hidden;
+      }
+    }
+  }
+
   :deep() {
     .el-checkbox {
       --el-checkbox-bg-color: transparent !important;
diff --git a/src/views/layerManagement/index.vue b/src/views/layerManagement/index.vue
index ace1624..ff8692f 100644
--- a/src/views/layerManagement/index.vue
+++ b/src/views/layerManagement/index.vue
@@ -31,6 +31,7 @@
           @callParentMethod="parentMethod"
         ></rightEdit>
         <folderFile
+          :activeName="activeName"
           v-if="layerParams.addFolder || (layerParams.editFolder)"
         ></folderFile>
       </div>

--
Gitblit v1.9.3