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