Files
xian_vue_new/src/stores/useLoadingInformation.ts
T
zhuangzhuang2000 f3c33f70f0 添加地铁站
2026-04-27 15:04:59 +08:00

190 lines
4.5 KiB
TypeScript

import type { ClickObject } from '@/types/cesium/ClickObject';
import { defineStore } from 'pinia';
import { reactive } from 'vue';
/**
* 加载信息弹窗相关状态管理
* @returns 点击对象、隐患点/风险点/医院状态及相关方法
*/
export const useLoadingInformationStore = defineStore(
'loadingInformation',
() => {
// ============================ 点击对象状态 ================================
/**
* 点击的对象
*/
const clickObject = reactive<ClickObject>({ id: '', primitive: null });
// ============================ 隐患点加载状态 ================================
/**
* 隐患点加载信息状态
*/
const hiddenPoint = reactive({
/** 加载状态 */
loading: false,
/** 隐患点ID */
id: -1,
});
// ============================ 风险点加载状态 ================================
/**
* 风险点加载信息状态
*/
const riskPoint = reactive({
/** 加载状态 */
loading: false,
/** 风险点ID */
id: -1,
});
// ============================ 医院加载状态 ================================
/**
* 医院加载信息状态
*/
const hospital = reactive({
/** 加载状态 */
loading: false,
/** 医院ID */
id: -1,
});
// ============================== 危险源加载状态 ================================
const dangerousSource = reactive({
/** 加载状态 */
loading: false,
/** 危险源ID */
id: -1,
});
// ============================== 避难所状态 ================================
const emergencyShelter = reactive({
/** 加载状态 */
loading: false,
/** 避难所ID */
id: -1,
});
// ============================== 消防站状态 ================================
const fireStation = reactive({
/** 加载状态 */
loading: false,
/** 消防站ID */
id: -1,
});
// ============================== 物资储备点状态 ================================
const storePoints = reactive({
/** 加载状态 */
loading: false,
/** 物资储备点ID */
id: -1,
});
// ============================== 学校状态 ================================
const school = reactive({
/** 加载状态 */
loading: false,
/** 学校ID */
id: -1,
});
// ============================== 桥梁状态 ================================
const bridge = reactive({
/** 加载状态 */
loading: false,
/** 桥梁ID */
id: -1,
});
// ============================== 水库状态 ================================
const reservoir = reactive({
/** 加载状态 */
loading: false,
/** 水库ID */
id: -1,
});
// ============================== 地铁站点状态 ================================
const subwayStation = reactive({
/** 加载状态 */
loading: false,
/** 地铁站点ID */
id: -1,
});
/**
* 重置所有状态
*/
const resetStatue = () => {
// 点击对象重置
clickObject.id = '';
clickObject.primitive = null;
// 隐患点状态重置
hiddenPoint.loading = false;
hiddenPoint.id = -1;
// 风险点状态重置
riskPoint.loading = false;
riskPoint.id = -1;
// 医院状态重置
hospital.loading = false;
hospital.id = -1;
// 危险源状态重置
dangerousSource.loading = false;
dangerousSource.id = -1;
// 避难所状态重置
emergencyShelter.loading = false;
emergencyShelter.id = -1;
// 消防站状态重置
fireStation.loading = false;
fireStation.id = -1;
// 物资储备点状态重置
storePoints.loading = false;
storePoints.id = -1;
// 学校状态重置
school.loading = false;
school.id = -1;
// 桥梁状态重置
bridge.loading = false;
bridge.id = -1;
// 水库状态重置
reservoir.loading = false;
reservoir.id = -1;
// 地铁站点状态重置
subwayStation.loading = false;
subwayStation.id = -1;
};
return {
clickObject,
hiddenPoint,
riskPoint,
hospital,
dangerousSource,
emergencyShelter,
fireStation,
storePoints,
school,
bridge,
reservoir,
subwayStation,
resetStatue,
};
}
);