index.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. import { stackFactory, flatStacksValue, strToParams } from "@/utils";
  2. import { reactive, ref } from "vue";
  3. import type { FuseModel, Path, TaggingPosition, View } from "@/store";
  4. import { lang, langKey } from "@/lang";
  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(
  21. ref<WeakMap<FuseModel, boolean>>(new Map()),
  22. true
  23. );
  24. export const modelsChangeStoreStack = stackFactory(ref<boolean>(false));
  25. export const showTaggingPositionsStack = stackFactory(
  26. ref<WeakSet<TaggingPosition>>(new WeakSet())
  27. );
  28. export const currentViewStack = stackFactory(ref<View>());
  29. export const custom = flatStacksValue({
  30. viewMode: viewModeStack,
  31. showToolbar: showToolbarStack,
  32. showRightPano: showRightPanoStack,
  33. showLeftPano: showLeftPanoStack,
  34. showLeftCtrlPano: showLeftCtrlPanoStack,
  35. shwoRightCtrlPano: showRightCtrlPanoStack,
  36. showTaggings: showTaggingsStack,
  37. showPaths: showPathsStack,
  38. showPath: showPathStack,
  39. showMeasures: showMeasuresStack,
  40. currentModel: currentModelStack,
  41. showModelsMap: showModelsMapStack,
  42. modelsChangeStore: modelsChangeStoreStack,
  43. showTaggingPositions: showTaggingPositionsStack,
  44. showBottomBar: showBottomBarStack,
  45. bottomBarHeight: bottomBarHeightStack,
  46. showHeadBar: showHeadBarStack,
  47. currentView: currentViewStack,
  48. showMode: showModeStack,
  49. });
  50. export const params = reactive(
  51. strToParams(location.search)
  52. ) as unknown as Params;
  53. params.caseId = Number(params.caseId);
  54. params.share = Boolean(Number(params.share));
  55. params.single = Boolean(Number(params.single));
  56. export type Params = {
  57. caseId: number;
  58. baseURL?: string;
  59. modelId?: string;
  60. laserRoot: string;
  61. swssUrl: string;
  62. swkkUrl: string;
  63. panoOSSRoot: string;
  64. ossRoot: string;
  65. root: string;
  66. laserOSSRoot: string;
  67. service: string;
  68. fileUrl?: string;
  69. sign?: string;
  70. ip: string;
  71. type?: string;
  72. serviceUrl?: string;
  73. testMap?: boolean;
  74. title?: string;
  75. m?: string;
  76. share?: boolean;
  77. single?: boolean;
  78. static: string;
  79. token?: string;
  80. servicePort: string;
  81. swkkPort: string;
  82. laserServicePort: string;
  83. };
  84. export const baseURL = params.baseURL ? params.baseURL : "";
  85. export const getResource = (uri: string) => {
  86. if (~uri.indexOf("base64") || ~uri.indexOf("bolb") || ~uri.indexOf("//"))
  87. return uri;
  88. if (uri[0] === "/") {
  89. return `${baseURL}${uri}`;
  90. } else {
  91. return `${baseURL}/${uri}`;
  92. }
  93. };
  94. // /fusion
  95. if (offline) {
  96. params.static = ''
  97. if (import.meta.env.DEV) {
  98. params.serviceUrl = `/offlineResource/fusion`;
  99. params.root = '/offlineResource'
  100. // params.root = `http://192.168.0.62:9000`;
  101. params.ossRoot = `http://192.168.0.62:9000`;
  102. params.root = `/offlineResource`;
  103. } else {
  104. params.serviceUrl = "/fusion";
  105. }
  106. } else {
  107. // jar服务链接
  108. params.ip = params.ip || "";
  109. // 融合的mapping
  110. params.static = params.static || "";
  111. // 激光服务端口
  112. params.laserServicePort = params.laserServicePort || "";
  113. // 融合服务端口
  114. params.servicePort = params.servicePort || "";
  115. // 四维看看查看路径 的spc.html
  116. params.swssUrl = params.swssUrl || "";
  117. // 四维深时的路径 index.html
  118. params.swkkUrl = params.swkkUrl || "";
  119. // 四维看看的服务端口
  120. params.swkkPort = params.swkkPort || "8088";
  121. const ip = params.ip ? params.ip + ":" : "";
  122. params.root = `${ip}${params.laserServicePort}`;
  123. params.ossRoot = `${ip}${params.laserServicePort}${params.static}`;
  124. params.serviceUrl = `${ip}${params.servicePort}/fusion`;
  125. params.laserRoot = params.root;
  126. params.swssUrl = `${params.swssUrl}?lang=${langKey}&serve_link=${params.laserRoot}&basePath=${params.laserRoot}`;
  127. params.swkkUrl = `${params.swkkUrl}?lang=${langKey}&app_server=${ip}${params.swkkPort}`;
  128. }
  129. // params.serviceUrl = "/fusion";
  130. export let namespace = params.serviceUrl;
  131. export const getResources = (uri: string) => {
  132. uri = uri.replaceAll("\\", "/");
  133. uri = uri.replaceAll("\\", "/");
  134. uri = uri.replaceAll("\\", "/");
  135. uri = uri.replaceAll("\\", "/");
  136. uri = uri.replaceAll("\\", "/");
  137. uri = uri.replaceAll("\\", "/");
  138. if (
  139. !params.ossRoot ||
  140. ~uri.indexOf("base64") ||
  141. ~uri.indexOf("bolb") ||
  142. ~uri.indexOf("//")
  143. )
  144. return uri;
  145. const ip = params.ip ? `${params.ip}:${params.static}` : ''
  146. if (!ip || !params.laserServicePort || !params.ossRoot) return uri
  147. const root =
  148. uri.indexOf(params.static.substring(1)) === 0 ||
  149. uri.indexOf(params.static) === 0
  150. ? `${ip}${params.laserServicePort}`
  151. : params.ossRoot;
  152. const baseURL = new URL(root);
  153. const url = new URL(uri, root);
  154. console.log(root, uri);
  155. const basePath =
  156. baseURL.pathname[baseURL.pathname.length - 1] === "/"
  157. ? baseURL.pathname.substring(0, baseURL.pathname.length - 1)
  158. : baseURL.pathname;
  159. url.pathname = basePath + url.pathname;
  160. return url.href;
  161. };