From e47a660590c63903ee978abb4ccfda98e93d6eb4 Mon Sep 17 00:00:00 2001 From: wzy-warehouse <18135009705@163.com> Date: Mon, 27 Apr 2026 21:36:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0name=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/common/LoadingPoints.vue | 4 ++-- src/component/map/AdministrativeDivision.vue | 2 +- .../rain-earthquake/basic/HiddenPointComponent.vue | 4 ++-- .../rain-earthquake/basic/RiskPointComponent.vue | 4 ++-- .../detail-panels/BridgeComponent.vue | 14 +++++--------- .../detail-panels/DangerousSourceComponent.vue | 4 ++-- .../detail-panels/EmergencyShelterComponent.vue | 4 ++-- .../detail-panels/FireStationComponent.vue | 4 ++-- .../detail-panels/HospitalComponent.vue | 2 ++ .../detail-panels/ReservoirComponent.vue | 8 ++++++-- .../detail-panels/SchoolComponent.vue | 2 ++ .../detail-panels/StorePointsComponent.vue | 8 +++----- .../detail-panels/SubwayStationComponent.vue | 12 +++++++++--- src/hooks/usePointsHandle.ts | 10 +++++++--- src/stores/useLoadingResourceStore.ts | 13 ++++++++----- src/types/base/Point.ts | 2 ++ 16 files changed, 57 insertions(+), 40 deletions(-) diff --git a/src/component/common/LoadingPoints.vue b/src/component/common/LoadingPoints.vue index b4a69b1..896eecf 100644 --- a/src/component/common/LoadingPoints.vue +++ b/src/component/common/LoadingPoints.vue @@ -24,7 +24,7 @@ onMounted(() => { // 加载点 - const ids: string[] = pointsHandle.addPoints( + const result: { ids: string[]; names: string[] } = pointsHandle.addPoints( props.basePoints, props.getDisasterIcon, props.prefix, @@ -34,7 +34,7 @@ // 记录id useLoadingResourceStore().addLoadingResource( props.loadingResourceField!, - ids + result ); }); diff --git a/src/component/map/AdministrativeDivision.vue b/src/component/map/AdministrativeDivision.vue index 64ad336..8b9e3c4 100644 --- a/src/component/map/AdministrativeDivision.vue +++ b/src/component/map/AdministrativeDivision.vue @@ -47,7 +47,7 @@ // 记录行政区划id useLoadingResourceStore().addLoadingResource( LoadingResource.ADMINISTRATIVE_DIVISION, - areasId + { ids: areasId, names: [] } // 此处name不进行记录 ); }); diff --git a/src/component/rain-earthquake/basic/HiddenPointComponent.vue b/src/component/rain-earthquake/basic/HiddenPointComponent.vue index b656d84..5d65edd 100644 --- a/src/component/rain-earthquake/basic/HiddenPointComponent.vue +++ b/src/component/rain-earthquake/basic/HiddenPointComponent.vue @@ -108,14 +108,14 @@ CesiumUtilsSingleton.batchShowPrimitives( useLoadingResourceStore().getLoadingResource( LoadingResource.HIDDEN_DANGER_POINT - ) + ).ids ); } else { // 隐藏隐患点 CesiumUtilsSingleton.batchHidePrimitives( useLoadingResourceStore().getLoadingResource( LoadingResource.HIDDEN_DANGER_POINT - ) + ).ids ); } } diff --git a/src/component/rain-earthquake/basic/RiskPointComponent.vue b/src/component/rain-earthquake/basic/RiskPointComponent.vue index c38041e..3fdea0e 100644 --- a/src/component/rain-earthquake/basic/RiskPointComponent.vue +++ b/src/component/rain-earthquake/basic/RiskPointComponent.vue @@ -98,13 +98,13 @@ CesiumUtilsSingleton.batchShowPrimitives( useLoadingResourceStore().getLoadingResource( LoadingResource.RISK_POINT - ) + ).ids ); } else { CesiumUtilsSingleton.batchHidePrimitives( useLoadingResourceStore().getLoadingResource( LoadingResource.RISK_POINT - ) + ).ids ); } } diff --git a/src/component/rain-earthquake/detail-panels/BridgeComponent.vue b/src/component/rain-earthquake/detail-panels/BridgeComponent.vue index a0bc250..15d8133 100644 --- a/src/component/rain-earthquake/detail-panels/BridgeComponent.vue +++ b/src/component/rain-earthquake/detail-panels/BridgeComponent.vue @@ -3,9 +3,7 @@
{ getDisasterIcon: (disasterType?: string) => string, prefix: string, isDefault: boolean = false - ): string[] { + ): { ids: string[]; names: string[] } { // 设置加载配置 const options: PrimitiveOptions[] = []; - // 存放id + // 存放id、name const ids: string[] = []; + const names: string[] = []; points.forEach((point) => { try { @@ -42,7 +43,10 @@ export const usePointsHandle = () => { const position = Cartesian3.fromDegrees(point.lon, point.lat, 10); const id = `${prefix}${point.id}`; + const name = point.name!; ids.push(id); + names.push(name); + options.push({ id: id, type: 'billboard', @@ -65,7 +69,7 @@ export const usePointsHandle = () => { // 批量创建图层 CesiumUtilsSingleton.addPrimitivesBatch(options); - return ids; + return { ids, names }; } return { addPoints }; diff --git a/src/stores/useLoadingResourceStore.ts b/src/stores/useLoadingResourceStore.ts index 2b3fc55..0e9c478 100644 --- a/src/stores/useLoadingResourceStore.ts +++ b/src/stores/useLoadingResourceStore.ts @@ -4,12 +4,15 @@ import { ref, type Ref } from 'vue'; // 存储按需加载的数据 export const useLoadingResourceStore = defineStore('loadingResource', () => { - const loadingResource: Ref>> = ref( - {} - ); + const loadingResource: Ref< + Partial> + > = ref({}); // 添加数据 - const addLoadingResource = (key: LoadingResource, value: string[]) => { + const addLoadingResource = ( + key: LoadingResource, + value: { ids: string[]; names: string[] } + ) => { loadingResource.value[key] = value; }; @@ -24,7 +27,7 @@ export const useLoadingResourceStore = defineStore('loadingResource', () => { * 获取数据 */ const getLoadingResource = (key: LoadingResource) => { - return loadingResource.value[key] || []; + return loadingResource.value[key] || { ids: [], names: [] }; }; return { diff --git a/src/types/base/Point.ts b/src/types/base/Point.ts index 5141dbf..8b25d76 100644 --- a/src/types/base/Point.ts +++ b/src/types/base/Point.ts @@ -12,4 +12,6 @@ export interface Point { geom?: string; /** 灾害类型 */ disasterType?: string; + /** 名称 */ + name?: string; }