index.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { stackFactory, flatStacksValue, strToParams } from '@/utils'
  2. import { reactive, ref } 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 showLeftCtrlPanoStack = stackFactory(ref<boolean>(true))
  11. export const showModeStack = stackFactory(ref<"pano" | "fuse">("fuse"));
  12. export const showRightCtrlPanoStack = stackFactory(ref<boolean>(true))
  13. export const showBottomBarStack = stackFactory(ref<boolean>(false), true)
  14. export const bottomBarHeightStack = stackFactory(ref<string>('60px'))
  15. export const showTaggingsStack = stackFactory(ref<boolean>(true))
  16. export const showPathsStack = stackFactory(ref<boolean>(true))
  17. export const showPathStack = stackFactory(ref<Path['id']>())
  18. export const showMeasuresStack = stackFactory(ref<boolean>(true))
  19. export const currentModelStack = stackFactory(ref<FuseModel | null>(null))
  20. export const showModelsMapStack = stackFactory(ref<WeakMap<FuseModel, boolean>>(new Map()), true)
  21. export const modelsChangeStoreStack = stackFactory(ref<boolean>(false))
  22. export const showTaggingPositionsStack = stackFactory(ref<WeakSet<TaggingPosition>>(new WeakSet()))
  23. export const currentViewStack = stackFactory(ref<View>())
  24. export const custom = flatStacksValue({
  25. viewMode: viewModeStack,
  26. showToolbar: showToolbarStack,
  27. showRightPano: showRightPanoStack,
  28. showLeftPano: showLeftPanoStack,
  29. showLeftCtrlPano: showLeftCtrlPanoStack,
  30. shwoRightCtrlPano: showRightCtrlPanoStack,
  31. showTaggings: showTaggingsStack,
  32. showPaths: showPathsStack,
  33. showPath: showPathStack,
  34. showMeasures: showMeasuresStack,
  35. currentModel: currentModelStack,
  36. showModelsMap: showModelsMapStack,
  37. modelsChangeStore: modelsChangeStoreStack,
  38. showTaggingPositions: showTaggingPositionsStack,
  39. showBottomBar: showBottomBarStack,
  40. bottomBarHeight: bottomBarHeightStack,
  41. showHeadBar: showHeadBarStack,
  42. currentView: currentViewStack,
  43. showMode: showModeStack,
  44. })
  45. export const params = reactive(strToParams(location.search)) as unknown as Params
  46. params.caseId = Number(params.caseId)
  47. params.share = Boolean(Number(params.share))
  48. params.single = Boolean(Number(params.single))
  49. export type Params = {
  50. caseId: number,
  51. baseURL?: string,
  52. modelId?: string,
  53. m?: string
  54. share?: boolean,
  55. single?: boolean
  56. token?: string
  57. }
  58. export const baseURL = params.baseURL ? params.baseURL : ''
  59. export const getResource = (uri: string) => {
  60. if (~uri.indexOf('base64') || ~uri.indexOf('bolb') || ~uri.indexOf('//')) return uri
  61. if (uri[0] === '/') {
  62. return `${baseURL}${uri}`
  63. } else {
  64. return `${baseURL}/${uri}`
  65. }
  66. }