WholeProcessPlatform/frontend/src/store/modules/ui.ts

65 lines
1.8 KiB
TypeScript
Raw Normal View History

2026-04-02 08:56:49 +08:00
import { defineStore } from 'pinia';
import { ref } from 'vue';
export const useUiStore = defineStore('ui', () => {
// 右侧抽屉状态
const drawerOpen = ref(true);
const mapType = ref('2D');
2026-07-10 17:56:16 +08:00
const mapSwitchCompletedTick = ref(0);
// 3d 流域三维漫游
const isRoaming = ref(false);
// 智慧装备
const isSmartEquipment = ref(false);
// dim 切换时跳过漫游相机还原(由地图模式切换自行处理)
const skipRoamCameraRestore = ref(false);
// 搜索抽屉状态
const searchDrawerOpen = ref(false);
// 全局兜底抽屉状态AppMain 通用抽屉,给未自带抽屉的页面用)
const globalDrawerOpen = ref(false);
// 是否处于锚点搜索状态(选中命中 DRAWER_STTP_CODES 的锚点时 true清空/切页等 false
const isSearchActive = ref(false);
2026-04-02 08:56:49 +08:00
// 切换抽屉状态
const toggleDrawer = () => {
drawerOpen.value = !drawerOpen.value;
};
// 设置抽屉状态
const setDrawerOpen = (open: boolean) => {
drawerOpen.value = open;
};
// 设置搜索抽屉状态
const setSearchDrawerOpen = (open: boolean) => {
searchDrawerOpen.value = open;
};
// 设置全局兜底抽屉状态
const setGlobalDrawerOpen = (open: boolean) => {
globalDrawerOpen.value = open;
};
// 设置锚点搜索状态
const setIsSearchActive = (active: boolean) => {
isSearchActive.value = active;
};
2026-04-02 08:56:49 +08:00
2026-07-10 17:56:16 +08:00
const markMapSwitchCompleted = () => {
mapSwitchCompletedTick.value += 1;
};
2026-04-02 08:56:49 +08:00
return {
drawerOpen,
isRoaming,
isSmartEquipment,
skipRoamCameraRestore,
2026-04-02 08:56:49 +08:00
toggleDrawer,
setDrawerOpen,
setSearchDrawerOpen,
searchDrawerOpen,
globalDrawerOpen,
setGlobalDrawerOpen,
isSearchActive,
setIsSearchActive,
2026-07-10 17:56:16 +08:00
mapType,
mapSwitchCompletedTick,
markMapSwitchCompleted
2026-04-02 08:56:49 +08:00
};
});