无人机管理后台前端(已迁走)
罗广辉
2025-10-31 3ea9ee4742a867544c8cf2011aa719ee72f8ecb8
feat: 国土规划100%
3 files modified
55 ■■■■■ changed files
src/views/layerManagement/components/folderFile.vue 31 ●●●●● patch | view | raw | blame | history
src/views/layerManagement/components/leftList.vue 23 ●●●● patch | view | raw | blame | history
src/views/layerManagement/index.vue 1 ●●●● patch | view | raw | blame | history
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();
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;
src/views/layerManagement/index.vue
@@ -31,6 +31,7 @@
          @callParentMethod="parentMethod"
        ></rightEdit>
        <folderFile
          :activeName="activeName"
          v-if="layerParams.addFolder || (layerParams.editFolder)"
        ></folderFile>
      </div>