Files
xian_vue_new/src/stores/useStatusStore.ts
T

351 lines
6.8 KiB
TypeScript

import { defineStore } from 'pinia';
import { reactive, ref } from 'vue';
/**
* 全局状态管理
* @returns 应用状态及相关方法
*/
export const useStatusStore = defineStore('status', () => {
// ============================ 应用级状态 ================================
/**
* 应用加载完成状态
*/
const appLoadingCompleted = ref(false);
// ============================ UI 组件显示状态 ================================
/**
* UI 组件显示状态集合
*/
const uiComponents = reactive({
/** 灾情链影响点表格显示状态 */
disasterChainPointShow: {
show: false,
loading: true,
},
leftButton: {
show: true,
loading: true,
},
leftLegend: {
show: true,
loading: true,
},
rightButton: {
show: true,
loading: true,
},
controlPanel: {
show: true,
loading: true,
},
stepBar: {
show: false,
loading: true,
},
});
// ============================ 地图图层显示状态 ================================
/**
* 地图基础图层显示状态
*/
const mapLayers = reactive({
/** 显示行政区划 */
showAdministrativeDivision: {
show: true,
loading: true,
},
/** 风险点显示状态 */
riskPointShow: {
show: true,
loading: true,
},
/** 断裂带显示状态 */
faultShow: {
show: true,
loading: true,
},
});
/**
* POI图层显示状态
*/
const poiLayers = reactive({
/** 显示医院 */
showHospital: {
show: false,
loading: false,
},
/** 显示危险源 */
showDangerSource: {
show: false,
loading: false,
},
/** 显示避难所 */
showRefugeeShelter: {
show: false,
loading: false,
},
/** 显示消防站 */
showFireStation: {
show: false,
loading: false,
},
/** 显示储备点 */
showReservePoint: {
show: false,
loading: false,
},
/** 显示学校 */
showSchool: {
show: false,
loading: false,
},
/** 显示人口网格 */
showPopulationGrid: {
show: false,
loading: false,
},
/** 显示地铁站 */
showSubwayStation: {
show: false,
loading: false,
},
/** 显示滑坡隐患点 */
showLandslideHiddenPoint: {
show: true,
loading: true,
},
/** 显示泥石流隐患点 */
showDebrisFlowHiddenPoint: {
show: true,
loading: true,
},
/** 显示内涝隐患点 */
showWaterLoggingHiddenPoint: {
show: true,
loading: true,
},
/** 显示山洪隐患点 */
showFlashFloodHiddenPoint: {
show: true,
loading: true,
},
});
/**
* 基础设施图层显示状态
*/
const infrastructureLayers = reactive({
/** 显示管网系统 */
showNetworkSystem: {
show: false,
loading: false,
},
/** 显示交通道路 */
showTrafficRoad: {
show: false,
loading: false,
},
/** 显示桥梁 */
showBridge: {
show: false,
loading: false,
},
/** 显示高速 */
showHighway: {
show: false,
loading: false,
},
/** 显示国道 */
showMainRoad: {
show: false,
loading: false,
},
/** 显示水库 */
showReservoir: {
show: false,
loading: false,
},
/** 显示地铁 */
showSubway: {
show: false,
loading: false,
},
});
/**
* 气象图层显示状态
*/
const weatherLayers = reactive({
/** 显示降雨栅格 */
showRainfallGrid: {
show: false,
loading: false,
},
});
// ============================ 地图功能显示状态 ================================
const functionStatus = reactive({
aroundAnalysis: {
show: false,
loading: false,
},
});
/**
* 鼠标样式状态
*/
const cursorStyle = ref<string>('default');
/**
* 恢复默认值
*/
const reset = () => {
// 应用加载状态重置
appLoadingCompleted.value = false;
resetScene();
};
/**
* 重置场景
*/
const resetScene = () => {
// UI 组件显示状态重置
uiComponents.disasterChainPointShow = {
show: false,
loading: true,
};
uiComponents.leftButton = {
show: true,
loading: true,
};
uiComponents.leftLegend = {
show: true,
loading: true,
};
uiComponents.rightButton = {
show: true,
loading: true,
};
uiComponents.controlPanel = {
show: true,
loading: true,
};
// 地图基础图层显示状态重置
mapLayers.showAdministrativeDivision = {
show: true,
loading: true,
};
mapLayers.riskPointShow = {
show: true,
loading: true,
};
// POI图层显示状态重置
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,
};
poiLayers.showLandslideHiddenPoint = {
show: true,
loading: true,
};
poiLayers.showDebrisFlowHiddenPoint = {
show: true,
loading: true,
};
poiLayers.showWaterLoggingHiddenPoint = {
show: true,
loading: true,
};
poiLayers.showFlashFloodHiddenPoint = {
show: true,
loading: true,
};
// 基础设施图层显示状态重置
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,
};
// 气象图层显示状态重置
weatherLayers.showRainfallGrid = {
show: false,
loading: false,
};
// 功能显示状态重置
functionStatus.aroundAnalysis = {
show: false,
loading: false,
};
};
return {
appLoadingCompleted,
uiComponents,
mapLayers,
poiLayers,
infrastructureLayers,
weatherLayers,
functionStatus,
cursorStyle,
reset,
resetScene,
};
});