区分显示和加载状态,添加医院显示逻辑

This commit is contained in:
wzy-warehouse
2026-04-18 16:40:04 +08:00
parent fe258cd249
commit da7745b7a9
26 changed files with 941 additions and 388 deletions
+54 -92
View File
@@ -1,122 +1,84 @@
import type { ClickObject } from '@/types/cesium/ClickObject';
import { defineStore } from 'pinia';
import { type Ref, ref } from 'vue';
import { reactive } from 'vue';
/**
* 加载信息弹窗相关状态管理
* @returns 点击对象、隐患点/风险点状态及相关方法
* @returns 点击对象、隐患点/风险点/医院状态及相关方法
*/
export const useLoadingInformationStore = defineStore(
'loadingInformation',
() => {
// ============================ 点击对象状态 ================================
/**
* 点击的对象
*/
const clickObject: Ref<ClickObject> = ref({ id: '', primitive: null });
const clickObject = reactive<ClickObject>({ id: '', primitive: null });
// ============================ 隐患点加载状态 ================================
/**
* 隐患点加载状态
* 隐患点加载信息状态
*/
const loadingHiddenPointInformationStatus: Ref<boolean> = ref(false);
/**
* 隐患点ID
*/
const hiddenPointId: Ref<number> = ref(-1);
const hiddenPoint = reactive({
/** 加载状态 */
loading: false,
/** 隐患点ID */
id: -1,
});
// ============================ 风险点加载状态 ================================
/**
* 风险点加载状态
* 风险点加载信息状态
*/
const loadingRiskPointInformationStatus: Ref<boolean> = ref(false);
/**
* 风险点ID
*/
const riskPointId: Ref<number> = ref(-1);
const riskPoint = reactive({
/** 加载状态 */
loading: false,
/** 风险点ID */
id: -1,
});
// ============================ 医院加载状态 ================================
/**
* 重置状态
* 医院加载信息状态
*/
const hospital = reactive({
/** 加载状态 */
loading: false,
/** 医院ID */
id: -1,
});
/**
* 重置所有状态
*/
const resetStatue = () => {
loadingHiddenPointInformationStatus.value = false;
hiddenPointId.value = -1;
loadingRiskPointInformationStatus.value = false;
riskPointId.value = -1;
};
// 点击对象重置
clickObject.id = '';
clickObject.primitive = null;
/**
* 获取点击对象
* @returns 点击对象
*/
const getClickObject = () => clickObject.value;
/**
* 设置点击对象
* @param value - 点击对象
*/
const setClickObject = (value: ClickObject) => {
clickObject.value = value;
};
/**
* 获取隐患点加载状态
* @returns 加载状态
*/
const getLoadingHiddenPointInformationStatus = () =>
loadingHiddenPointInformationStatus.value;
/**
* 设置隐患点加载状态
* @param value - 加载状态
*/
const setLoadingHiddenPointInformationStatus = (value: boolean) => {
loadingHiddenPointInformationStatus.value = value;
};
/**
* 获取风险点加载状态
* @returns 加载状态
*/
const getLoadingRiskPointInformationStatus = () =>
loadingRiskPointInformationStatus.value;
/**
* 设置风险点加载状态
* @param value - 加载状态
*/
const setLoadingRiskPointInformationStatus = (value: boolean) => {
loadingRiskPointInformationStatus.value = value;
};
/**
* 获取隐患点ID
* @returns 隐患点ID
*/
const getHiddenPointId = () => hiddenPointId.value;
/**
* 设置隐患点ID
* @param value - 隐患点ID
*/
const setHiddenPointId = (value: number) => {
hiddenPointId.value = value;
};
/**
* 获取风险点ID
* @returns 风险点ID
*/
const getRiskPointId = () => riskPointId.value;
/**
* 设置风险点ID
* @param value - 风险点ID
*/
const setRiskPointId = (value: number) => {
riskPointId.value = value;
// 隐患点状态重置
hiddenPoint.loading = false;
hiddenPoint.id = -1;
// 风险点状态重置
riskPoint.loading = false;
riskPoint.id = -1;
// 医院状态重置
hospital.loading = false;
hospital.id = -1;
};
return {
clickObject,
hiddenPoint,
riskPoint,
hospital,
resetStatue,
getClickObject,
setClickObject,
getLoadingHiddenPointInformationStatus,
setLoadingHiddenPointInformationStatus,
getLoadingRiskPointInformationStatus,
setLoadingRiskPointInformationStatus,
getHiddenPointId,
setHiddenPointId,
getRiskPointId,
setRiskPointId,
};
}
);
+180 -39
View File
@@ -20,9 +20,27 @@ export const useStatusStore = defineStore('status', () => {
*/
const uiComponents = reactive({
/** 图例显示状态 */
legendShow: true,
legendShow: {
show: true,
loading: true,
},
/** 灾情链影响点表格显示状态 */
disasterChainPointShow: false,
disasterChainPointShow: {
show: false,
loading: true,
},
leftButton: {
show: true,
loading: true,
},
rightButton: {
show: true,
loading: true,
},
controlPanel: {
show: true,
loading: true,
},
});
// ============================ 地图图层显示状态 ================================
@@ -32,13 +50,25 @@ export const useStatusStore = defineStore('status', () => {
*/
const mapLayers = reactive({
/** 显示行政区划 */
showAdministrativeDivision: true,
showAdministrativeDivision: {
show: true,
loading: true,
},
/** 隐患点显示状态 */
hiddenDangerPointShow: true,
hiddenDangerPointShow: {
show: true,
loading: true,
},
/** 风险点显示状态 */
riskPointShow: true,
riskPointShow: {
show: true,
loading: true,
},
/** 断裂带显示状态 */
faultShow: true,
faultShow: {
show: true,
loading: true,
},
});
/**
@@ -46,21 +76,45 @@ export const useStatusStore = defineStore('status', () => {
*/
const poiLayers = reactive({
/** 显示医院 */
showHospital: false,
showHospital: {
show: false,
loading: false,
},
/** 显示危险源 */
showDangerSource: false,
showDangerSource: {
show: false,
loading: false,
},
/** 显示避难所 */
showRefugeeShelter: false,
showRefugeeShelter: {
show: false,
loading: false,
},
/** 显示消防站 */
showFireStation: false,
showFireStation: {
show: false,
loading: false,
},
/** 显示储备点 */
showReservePoint: false,
showReservePoint: {
show: false,
loading: false,
},
/** 显示学校 */
showSchool: false,
showSchool: {
show: false,
loading: false,
},
/** 显示人口网格 */
showPopulationGrid: false,
showPopulationGrid: {
show: false,
loading: false,
},
/** 显示地铁站 */
showSubwayStation: false,
showSubwayStation: {
show: false,
loading: false,
},
});
/**
@@ -68,17 +122,35 @@ export const useStatusStore = defineStore('status', () => {
*/
const infrastructureLayers = reactive({
/** 显示管网系统 */
showNetworkSystem: false,
showNetworkSystem: {
show: false,
loading: false,
},
/** 显示交通道路 */
showTrafficRoad: false,
showTrafficRoad: {
show: false,
loading: false,
},
/** 显示桥梁 */
showBridge: false,
showBridge: {
show: false,
loading: false,
},
/** 显示高速 */
showHighway: false,
showHighway: {
show: false,
loading: false,
},
/** 显示国道 */
showMainRoad: false,
showMainRoad: {
show: false,
loading: false,
},
/** 显示水库 */
showReservoir: false,
showReservoir: {
show: false,
loading: false,
},
});
/**
@@ -89,31 +161,100 @@ export const useStatusStore = defineStore('status', () => {
appLoadingCompleted.value = false;
// UI 组件显示状态重置
uiComponents.legendShow = true;
uiComponents.disasterChainPointShow = false;
uiComponents.legendShow = {
show: true,
loading: true,
};
uiComponents.disasterChainPointShow = {
show: false,
loading: true,
};
uiComponents.leftButton = {
show: true,
loading: true,
};
uiComponents.rightButton = {
show: true,
loading: true,
};
uiComponents.controlPanel = {
show: true,
loading: true,
};
// 地图基础图层显示状态重置
mapLayers.showAdministrativeDivision = true;
mapLayers.hiddenDangerPointShow = true;
mapLayers.riskPointShow = true;
mapLayers.showAdministrativeDivision = {
show: true,
loading: true,
};
mapLayers.hiddenDangerPointShow = {
show: true,
loading: true,
};
mapLayers.riskPointShow = {
show: true,
loading: true,
};
// POI图层显示状态重置
poiLayers.showHospital = false;
poiLayers.showDangerSource = false;
poiLayers.showRefugeeShelter = false;
poiLayers.showFireStation = false;
poiLayers.showReservePoint = false;
poiLayers.showSchool = false;
poiLayers.showPopulationGrid = false;
poiLayers.showSubwayStation = false;
poiLayers.showHospital = {
show: false,
loading: false,
};
poiLayers.showDangerSource = {
show: false,
loading: false,
};
poiLayers.showRefugeeShelter = {
show: false,
loading: false,
};
poiLayers.showFireStation = {
show: false,
loading: false,
};
poiLayers.showReservePoint = {
show: false,
loading: false,
};
poiLayers.showSchool = {
show: false,
loading: false,
};
poiLayers.showPopulationGrid = {
show: false,
loading: false,
};
poiLayers.showSubwayStation = {
show: false,
loading: false,
};
// 基础设施图层显示状态重置
infrastructureLayers.showNetworkSystem = false;
infrastructureLayers.showTrafficRoad = false;
infrastructureLayers.showBridge = false;
infrastructureLayers.showHighway = false;
infrastructureLayers.showMainRoad = false;
infrastructureLayers.showReservoir = false;
infrastructureLayers.showNetworkSystem = {
show: false,
loading: false,
};
infrastructureLayers.showTrafficRoad = {
show: false,
loading: false,
};
infrastructureLayers.showBridge = {
show: false,
loading: false,
};
infrastructureLayers.showHighway = {
show: false,
loading: false,
};
infrastructureLayers.showMainRoad = {
show: false,
loading: false,
};
infrastructureLayers.showReservoir = {
show: false,
loading: false,
};
};
return {