树形节点优化,对接上传接口

This commit is contained in:
Teo
2025-04-27 18:01:18 +08:00
parent c061111280
commit 9c37e7deec
3 changed files with 287 additions and 79 deletions

View File

@ -260,25 +260,28 @@
<amap height="620px" @setLocation="setPoi"></amap>
</el-dialog>
<!-- 选取方阵地址 -->
<el-dialog title="设置方阵" v-model="polygonStatus" width="1400px">
<open-layers-map :tree-data="jsonData" :project-id="projectId" v-if="polygonStatus"></open-layers-map>
<el-radio-group v-model="layerType" class="ml-100">
<el-radio value="1" size="large">光伏板</el-radio>
<el-radio value="2" size="large">桩点/支架</el-radio>
<el-radio value="3" size="large">方阵</el-radio>
</el-radio-group>
<template #footer>
<span>
<el-button @click="polygonStatus = false">取消</el-button>
<el-button type="primary" @click="">确定</el-button>
</span>
</template>
<el-dialog title="设置方阵" v-model="polygonStatus" width="1400px" :close-on-click-modal="false">
<open-layers-map
:project-id="projectId"
:design-id="designId"
@handleCheckChange="setCheckedNodes"
@close="polygonStatus = false"
></open-layers-map>
</el-dialog>
</div>
</template>
<script setup name="Project" lang="ts">
import { addProject, delProject, getProject, listDXFProject, listProject, updateProject } from '@/api/project/project';
import {
addProject,
addProjectFacilities,
addProjectPilePoint,
addProjectSquare,
delProject,
getProject,
listProject,
updateProject
} from '@/api/project/project';
import { ProjectForm, ProjectQuery, ProjectVO, locationType } from '@/api/project/project/types';
import amap from '@/components/amap/index.vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@ -299,7 +302,9 @@ const projectFormRef = ref<ElFormInstance>();
const polygonStatus = ref(false);
const dxfFile = ref(null);
const projectId = ref<string>('');
const layerType = ref(null);
const designId = ref<string>('');
//被选中的节点
const nodes = ref<any>([]);
const dialog = reactive<DialogOption>({
visible: false,
title: ''
@ -413,7 +418,52 @@ const setPoi = (location: locationType) => {
amapStatus.value = false;
};
//设置需要上传的节点
const setCheckedNodes = (nodeList: any) => {
nodes.value = nodeList;
};
//上传节点
// const addFacilities = async () => {
// if (!layerType.value) {
// return proxy?.$modal.msgError('请选择图层类型');
// }
// if (!nodes.value.length) {
// return proxy?.$modal.msgError('请选择需要上传的图层');
// }
// const data = {
// projectId: projectId.value,
// nameGeoJson: null,
// locationGeoJson: null,
// pointGeoJson: null
// };
// loading.value = true;
// if (layerType.value == 1) {
// if (nodes.value[0].option == '名称') {
// data.nameGeoJson = jsonData.value[nodes.value[0].location.index];
// data.locationGeoJson = jsonData.value[nodes.value[1].location.index];
// } else {
// data.nameGeoJson = jsonData.value[nodes.value[1].location.index];
// data.locationGeoJson = jsonData.value[nodes.value[0].location.index];
// }
// await addProjectFacilities(data);
// await proxy?.$modal.msgSuccess('添加成功');
// } else if (layerType.value == 2) {
// data.pointGeoJson = jsonData.value[nodes.value[0].location.index];
// await addProjectPilePoint(data);
// await proxy?.$modal.msgSuccess('添加成功');
// } else if (layerType.value == 3) {
// if (nodes.value[0].option == '名称') {
// data.nameGeoJson = jsonData.value[nodes.value[0].location.index];
// data.locationGeoJson = jsonData.value[nodes.value[1].location.index];
// } else {
// data.nameGeoJson = jsonData.value[nodes.value[1].location.index];
// data.locationGeoJson = jsonData.value[nodes.value[0].location.index];
// }
// await addProjectSquare(data);
// await proxy?.$modal.msgSuccess('添加成功');
// }
// loading.value = false;
// };
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
@ -463,14 +513,9 @@ const handleShowUpload = (row?: ProjectVO) => {
};
const handleOpenLayer = async (row: ProjectVO) => {
if (projectId.value == row.id) return (polygonStatus.value = true);
fullscreenLoading.value = true;
const res = await listDXFProject(row.designId);
projectId.value = row.id;
jsonData.value = res.data.layers;
polygonStatus.value = true;
fullscreenLoading.value = false;
projectId.value = row.id;
designId.value = row.designId;
};
const updateProjectFile = async () => {