无人机管理后台前端(已迁走)
罗广辉
2025-10-31 398b305c376113834ee8043ed7b9ef3f5bb22de0
feat: 国土空间
3 files modified
66 ■■■■ changed files
src/api/layer/index.js 13 ●●●●● patch | view | raw | blame | history
src/views/layerManagement/components/leftList.vue 43 ●●●●● patch | view | raw | blame | history
src/views/layerManagement/index.vue 10 ●●●●● patch | view | raw | blame | history
src/api/layer/index.js
@@ -6,6 +6,19 @@
    params,
  });
};
export const spatialPlanningApi = data => {
  return request({
    url: `/drone-device-core/layer/api/v1/spatialPlanning`,
    method: 'post',
    data,
  });
};
//   电子围栏
//   编辑
export const deitFenceApi = data => {
src/views/layerManagement/components/leftList.vue
@@ -12,10 +12,20 @@
      </div>
    </div>
    <div class="btnGroups">
      <el-button class="ztzf-button" @click="addFence">{{
      <el-button v-if="activeName !== '国土空间规划'" class="ztzf-button" @click="addFence">{{
        props.activeName === '电子围栏' ? '新增围栏' : '新增禁飞区'
      }}</el-button>
      <el-button class="ztzf-button" @click="addFolder">新增文件夹</el-button>
      <el-button v-if="activeName !== '国土空间规划'" class="ztzf-button" @click="addFolder">新增文件夹</el-button>
      <el-upload
        v-if="activeName === '国土空间规划'"
        action="#"
        :show-file-list="false"
        :before-upload="e => uploadFlightFile(e, '1')"
        accept=".zip"
      >
        <el-button class="ztzf-button"> 上传 </el-button>
      </el-upload>
      <el-button class="ztzf-button" @click="selectAll">全选</el-button>
    </div>
    <div class="tableListBox">
@@ -58,7 +68,7 @@
<script setup>
import { ElMessage } from 'element-plus';
import { treeDataApi, deleteFenceApi,deleteFolderApi } from '@/api/layer/index';
import { treeDataApi, deleteFenceApi, deleteFolderApi, spatialPlanningApi } from '@/api/layer/index';
import { inject, onMounted } from 'vue';
const emit = defineEmits(['update:coverData', 'update:deitData', 'newFencesMethods']);
import EventBus from '@/utils/eventBus';
@@ -190,6 +200,7 @@
        type: 'success',
      });
    }
  gettreeDataApi();
  });
}else if(node.data.level === 3){
@@ -200,9 +211,9 @@
        type: 'success',
      });
    }
  gettreeDataApi();
  });
}
  gettreeDataApi();
};
// 新增围栏
const addFence = () => {
@@ -225,6 +236,25 @@
    layerParams.value.fileType = 2;
  }
};
function uploadFlightFile(file, t) {
  const fileSuffix = file.name.substring(file.name.lastIndexOf('.') + 1);
  if (!['zip'].includes(fileSuffix)) {
    return ElMessage.error('请上传zip格式的文件');
  }
  let data = new FormData();
  const params = {
    file: file,
    fileName: file.name,
  };
  Object.keys(params).forEach(key => {
    data.append(key, params[key]);
  });
  spatialPlanningApi(data).then(res =>{
    ElMessage.success('上传成功');
    gettreeDataApi();
  })
}
onMounted(() => {
  gettreeDataApi();
@@ -295,6 +325,11 @@
.btnGroups {
  margin: 12px 0 14px 0;
  display: flex;
  gap: 0 10px;
  .el-button{
    margin: 0 !important;
  }
}
.tableListBox {
  //:deep(.el-tree-node__content) {
src/views/layerManagement/index.vue
@@ -15,8 +15,7 @@
            !layerParams.addNest &&
            !layerParams.editNest &&
            !layerParams.addFolder &&
            !layerParams.editFolder &&
            activeType !== '2'
            !layerParams.editFolder
          "
          @update:coverData="handleCoverDataUpdate"
          @update:deitData="handleEdit"
@@ -25,13 +24,12 @@
          @newFencesMethods="newFencesMethods"
        ></leftList>
        <rightEdit
          v-if="layerParams.addNest || (layerParams.editNest && activeType !== '2')"
          v-if="layerParams.addNest || (layerParams.editNest)"
          @callParentMethod="parentMethod"
        ></rightEdit>
        <folderFile
          v-if="layerParams.addFolder || (layerParams.editFolder && activeType !== '2')"
          v-if="layerParams.addFolder || (layerParams.editFolder)"
        ></folderFile>
        <nationalSpatialPlanning v-if="activeType === '2'" />
      </div>
    </div>
  </basic-container>
@@ -111,7 +109,7 @@
  } else if (activeName.value === '自定义禁飞区') {
    id = 2;
  } else {
    return;
    id = 3;
  }
  dataFolderApi(id).then(res => {
    const originalFolderList = res.data.data || [];