index.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import { stackFactory, flatStacksValue, strToParams } from "@/utils";
  2. import { reactive, ref, watch, watchEffect } from "vue";
  3. import type { FuseModel, Path, TaggingPosition, View } from "@/store";
  4. export const namespace = "/fusion";
  5. export const viewModeStack = stackFactory(ref<"full" | "auto">("auto"));
  6. export const showToolbarStack = stackFactory(ref<boolean>(false));
  7. export const showHeadBarStack = stackFactory(ref<boolean>(true));
  8. export const showRightPanoStack = stackFactory(ref<boolean>(true));
  9. export const showLeftPanoStack = stackFactory(ref<boolean>(false));
  10. export const moundLeftPanoStack = stackFactory(ref<boolean>(true));
  11. export const showLeftCtrlPanoStack = stackFactory(ref<boolean>(true));
  12. export const showAMsStack = stackFactory(ref<boolean>(false));
  13. export const showModeStack = stackFactory(ref<"pano" | "fuse">("fuse"));
  14. export const showRightCtrlPanoStack = stackFactory(ref<boolean>(true));
  15. export const showBottomBarStack = stackFactory(ref<boolean>(false), true);
  16. export const bottomBarHeightStack = stackFactory(ref<string>("60px"));
  17. export const showTaggingsStack = stackFactory(ref<boolean>(true));
  18. export const showMonitorsStack = stackFactory(ref<boolean>(true));
  19. export const showPathsStack = stackFactory(ref<boolean>(true));
  20. export const showSearchStack = stackFactory(ref<boolean>(true));
  21. export const showFullStack = stackFactory(ref(false));
  22. export const showPathStack = stackFactory(ref<Path["id"]>());
  23. export const showModeTabStack = stackFactory(ref<boolean>(true));
  24. export const showMeasuresStack = stackFactory(ref<boolean>(true));
  25. export const showViewSettingStack = stackFactory(ref<boolean>(true));
  26. export const currentModelStack = stackFactory(ref<FuseModel | null>(null));
  27. export const showModelsMapStack = stackFactory(
  28. ref<WeakMap<FuseModel, boolean>>(new Map()),
  29. true
  30. );
  31. export const modelsChangeStoreStack = stackFactory(ref<boolean>(false));
  32. export const showTaggingPositionsStack = stackFactory(
  33. ref<WeakSet<TaggingPosition>>(new WeakSet())
  34. );
  35. export const currentViewStack = stackFactory(ref<View>());
  36. export const custom = flatStacksValue({
  37. viewMode: viewModeStack,
  38. showToolbar: showToolbarStack,
  39. showRightPano: showRightPanoStack,
  40. showLeftPano: showLeftPanoStack,
  41. showModeTab: showModeTabStack,
  42. moundLeftPano: moundLeftPanoStack,
  43. showLeftCtrlPano: showLeftCtrlPanoStack,
  44. shwoRightCtrlPano: showRightCtrlPanoStack,
  45. showTaggings: showTaggingsStack,
  46. showMonitors: showMonitorsStack,
  47. showPaths: showPathsStack,
  48. showPath: showPathStack,
  49. showMeasures: showMeasuresStack,
  50. currentModel: currentModelStack,
  51. showModelsMap: showModelsMapStack,
  52. modelsChangeStore: modelsChangeStoreStack,
  53. showTaggingPositions: showTaggingPositionsStack,
  54. showBottomBar: showBottomBarStack,
  55. bottomBarHeight: bottomBarHeightStack,
  56. showHeadBar: showHeadBarStack,
  57. showAMs: showAMsStack,
  58. currentView: currentViewStack,
  59. showMode: showModeStack,
  60. showSearch: showSearchStack,
  61. showViewSetting: showViewSettingStack,
  62. full: showFullStack,
  63. });
  64. export const paramsRaw = strToParams(location.search) as unknown as Params
  65. export const params = reactive(
  66. strToParams(location.search)
  67. ) as unknown as Params;
  68. params.caseId = Number(params.caseId);
  69. params.share = Boolean(Number(params.share));
  70. params.single = Boolean(Number(params.single));
  71. export type Params = {
  72. caseId: number;
  73. baseURL?: string;
  74. pure?: boolean;
  75. modelId?: string;
  76. mapKey?: string;
  77. mapPlatform?: string;
  78. fileUrl?: string;
  79. sign?: string;
  80. type?: string;
  81. testMap?: boolean;
  82. title?: string;
  83. m?: string;
  84. share?: boolean;
  85. single?: boolean;
  86. token?: string;
  87. fromRoute?: string;
  88. };
  89. export const baseURL = params.baseURL ? params.baseURL : "";
  90. export const getResource = (uri: string) => {
  91. if (~uri.indexOf("base64") || ~uri.indexOf("bolb") || ~uri.indexOf("//"))
  92. return uri;
  93. if (uri[0] === "/") {
  94. return `${baseURL}${uri}`;
  95. } else {
  96. return `${baseURL}/${uri}`;
  97. }
  98. };
  99. watch(
  100. () => params.pure || false,
  101. (pure, _, onCleanup) => {
  102. onCleanup(showFullStack.push(ref(pure)));
  103. },
  104. { immediate: true }
  105. );