From 477509877c52eea0c7a4dfa3018378143fd2f281 Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Sat, 1 Aug 2026 10:34:13 +0800 Subject: [PATCH] =?UTF-8?q?refactor(map):=20=E4=BC=98=E5=8C=96=E5=88=86?= =?UTF-8?q?=E7=89=87=E5=8A=A0=E8=BD=BD=E4=B8=8E=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将文件导入路径由"uploadFile/gwj"调整为"uploadFile" - 升级zy-react-library依赖版本至2.1.0 - 使用更合理的默认chunkSize 50替代原来的10,提升加载效率 - 在添加实体集合时,将entityCollection添加到viewer.dataSources中,确保数据源正确管理 - 统一代码风格,移除重复添加entityCollection的操作,提高代码可读性和性能 --- package.json | 2 +- .../Content/modal/FireControlRoom/index.js | 2 +- .../Content/modal/FirePumpRoom/index.js | 2 +- .../Content/modal/KeyProject/index.js | 2 +- src/pages/Container/Map/js/useMapMethods.js | 28 ++++++++----------- src/pages/Container/Map/js/utils.js | 2 +- 6 files changed, 17 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 4add90e..4467afa 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "react-transition-group": "^4.4.5", "sass": "^1.97.0", "sass-loader": "^16.0.6", - "zy-react-library": "^2.0.15" + "zy-react-library": "^2.1.0" }, "devDependencies": { "@antfu/eslint-config": "^5.4.1", diff --git a/src/pages/Container/Map/components/Content/modal/FireControlRoom/index.js b/src/pages/Container/Map/components/Content/modal/FireControlRoom/index.js index 158f7d3..ab5c7af 100644 --- a/src/pages/Container/Map/components/Content/modal/FireControlRoom/index.js +++ b/src/pages/Container/Map/components/Content/modal/FireControlRoom/index.js @@ -3,7 +3,7 @@ import { Descriptions, Divider } from "antd"; import { useEffect, useState } from "react"; import PreviewImg from "zy-react-library/components/PreviewImg"; import Table from "zy-react-library/components/Table"; -import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; +import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile"; import useDictionary from "zy-react-library/hooks/useDictionary"; import useGetFile from "zy-react-library/hooks/useGetFile"; import { getLabelName } from "zy-react-library/utils"; diff --git a/src/pages/Container/Map/components/Content/modal/FirePumpRoom/index.js b/src/pages/Container/Map/components/Content/modal/FirePumpRoom/index.js index a986387..f832485 100644 --- a/src/pages/Container/Map/components/Content/modal/FirePumpRoom/index.js +++ b/src/pages/Container/Map/components/Content/modal/FirePumpRoom/index.js @@ -3,7 +3,7 @@ import { Descriptions, Divider } from "antd"; import { useEffect, useState } from "react"; import PreviewImg from "zy-react-library/components/PreviewImg"; import Table from "zy-react-library/components/Table"; -import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; +import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile"; import useDictionary from "zy-react-library/hooks/useDictionary"; import useGetFile from "zy-react-library/hooks/useGetFile"; import { getLabelName } from "zy-react-library/utils"; diff --git a/src/pages/Container/Map/components/Content/modal/KeyProject/index.js b/src/pages/Container/Map/components/Content/modal/KeyProject/index.js index 99edb46..0a0dfe4 100644 --- a/src/pages/Container/Map/components/Content/modal/KeyProject/index.js +++ b/src/pages/Container/Map/components/Content/modal/KeyProject/index.js @@ -5,7 +5,7 @@ import PreviewImg from "zy-react-library/components/PreviewImg"; import PreviewPdf from "zy-react-library/components/PreviewPdf"; import PreviewWord from "zy-react-library/components/PreviewWord"; import Table from "zy-react-library/components/Table"; -import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; +import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile"; import useGetFile from "zy-react-library/hooks/useGetFile"; import { getFileSuffix, getLabelName, isEmptyToWhether } from "zy-react-library/utils"; import { NS_BI_MARK_INFO } from "~/enumerate/namespace"; diff --git a/src/pages/Container/Map/js/useMapMethods.js b/src/pages/Container/Map/js/useMapMethods.js index 0230511..91ec82b 100644 --- a/src/pages/Container/Map/js/useMapMethods.js +++ b/src/pages/Container/Map/js/useMapMethods.js @@ -125,8 +125,9 @@ export default function useMapMethods(viewerRef, request) { // 添加港口点 const addPortPoint = async () => { const viewer = getViewer(); - await chunkedLoad(portPoint, 10, async (item) => { - const entityCollection = createEntityCollection("portEntityCollection"); + const entityCollection = createEntityCollection("portEntityCollection"); + viewer.dataSources.add(entityCollection); + await chunkedLoad(portPoint, 50, async (item) => { entityCollection.entities.add( new Cesium.Entity({ id: item.id, @@ -136,7 +137,6 @@ export default function useMapMethods(viewerRef, request) { monitorItems: { data: { ...item, markType: "港口" } }, }), ); - viewer.dataSources.add(entityCollection); }); await addMergedEntityCollection(viewer, "portEntityCollection"); }; @@ -162,8 +162,9 @@ export default function useMapMethods(viewerRef, request) { else { branchOfficePoint = filterNull([pointInfo]); } - await chunkedLoad(branchOfficePoint, 10, async (item) => { - const entityCollection = createEntityCollection("branchOfficeEntityCollection"); + const entityCollection = createEntityCollection("branchOfficeEntityCollection"); + viewer.dataSources.add(entityCollection); + await chunkedLoad(branchOfficePoint, 50, async (item) => { entityCollection.entities.add( new Cesium.Entity({ id: item.id, @@ -175,7 +176,6 @@ export default function useMapMethods(viewerRef, request) { }, }), ); - viewer.dataSources.add(entityCollection); }); await addMergedEntityCollection(viewer, "branchOfficeEntityCollection"); mitt.emit(changeCoverMaskVisibleMittKey, false); @@ -199,9 +199,8 @@ export default function useMapMethods(viewerRef, request) { return; mitt.emit(changeCoverMaskVisibleMittKey, true); const currentEdge = edgeMap[id](); - const entityCollection = createEntityCollection( - "fourColorDiagramEntityCollection", - ); + const entityCollection = createEntityCollection("fourColorDiagramEntityCollection"); + getViewer().dataSources.add(entityCollection); // 先收集需要渲染的数据 const itemsToRender = []; @@ -240,7 +239,6 @@ export default function useMapMethods(viewerRef, request) { ); }); - getViewer().dataSources.add(entityCollection); mitt.emit(changeCoverMaskVisibleMittKey, false); }; @@ -263,6 +261,7 @@ export default function useMapMethods(viewerRef, request) { mitt.emit(changeCoverMaskVisibleMittKey, true); const currentEdge = edgeMap[id](); const entityCollection = createEntityCollection("wallEntityCollection"); + viewer.dataSources.add(entityCollection); const wallList = currentEdge.wallList; if (!Array.isArray(wallList)) return; @@ -290,7 +289,6 @@ export default function useMapMethods(viewerRef, request) { ); }); - viewer.dataSources.add(entityCollection); mitt.emit(changeCoverMaskVisibleMittKey, false); }; @@ -381,10 +379,9 @@ export default function useMapMethods(viewerRef, request) { throw new Error("请传入markIcon(扎点图标)"); const viewer = getViewer(); mitt.emit(changeCoverMaskVisibleMittKey, true); - await chunkedLoad(filterNull(pointList), 10, async (item) => { - const entityCollection = createEntityCollection( - `markEntityCollection_${options.markType}`, - ); + const entityCollection = createEntityCollection(`markEntityCollection_${options.markType}`); + viewer.dataSources.add(entityCollection); + await chunkedLoad(filterNull(pointList), 50, async (item) => { const name = item[options.titleKey] || ""; entityCollection.entities.add( new Cesium.Entity({ @@ -397,7 +394,6 @@ export default function useMapMethods(viewerRef, request) { }, }), ); - viewer.dataSources.add(entityCollection); }); const dataSource = await addMergedEntityCollection( viewer, diff --git a/src/pages/Container/Map/js/utils.js b/src/pages/Container/Map/js/utils.js index 0653a00..968798b 100644 --- a/src/pages/Container/Map/js/utils.js +++ b/src/pages/Container/Map/js/utils.js @@ -14,7 +14,7 @@ export const formatPolygon = (item) => { }; // 分片加载方法 -export const chunkedLoad = async (dataArray, chunkSize = 10, processItem) => { +export const chunkedLoad = async (dataArray, chunkSize = 50, processItem) => { const results = []; for (let i = 0; i < dataArray.length; i += chunkSize) { const chunk = dataArray.slice(i, i + chunkSize);