index.ts 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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. ga?: string
  59. baseURL?: string;
  60. modelId?: string;
  61. laserRoot: string;
  62. swssUrl: string;
  63. swkkUrl: string;
  64. panoOSSRoot: string;
  65. ossRoot: string;
  66. root: string;
  67. laserOSSRoot: string;
  68. service: string;
  69. fileUrl?: string;
  70. sign?: string;
  71. ip: string;
  72. type?: string;
  73. serviceUrl?: string;
  74. testMap?: boolean;
  75. title?: string;
  76. m?: string;
  77. share?: boolean;
  78. single?: boolean;
  79. static: string;
  80. token?: string;
  81. servicePort: string;
  82. swkkPort: string;
  83. laserServicePort: string;
  84. };
  85. export const baseURL = params.baseURL ? params.baseURL : "";
  86. export const getResource = (uri: string) => {
  87. if (~uri.indexOf("base64") || ~uri.indexOf("bolb") || ~uri.indexOf("//"))
  88. return uri;
  89. if (uri[0] === "/") {
  90. return `${baseURL}${uri}`;
  91. } else {
  92. return `${baseURL}/${uri}`;
  93. }
  94. };
  95. // /fusion
  96. if (offline) {
  97. params.static = ''
  98. if (import.meta.env.DEV) {
  99. params.serviceUrl = `/offlineResource/fusion`;
  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. params.root = ''
  106. params.ossRoot = '/'
  107. }
  108. params.root = '/offlineResource'
  109. params.static = '/offlineResource/oss/'
  110. } else {
  111. // jar服务链接
  112. params.ip = params.ip || "";
  113. // 融合的mapping
  114. params.static = params.static || "";
  115. // 激光服务端口
  116. params.laserServicePort = params.laserServicePort || "";
  117. // 融合服务端口
  118. params.servicePort = params.servicePort || "";
  119. // 四维看看查看路径 的spc.html
  120. params.swssUrl = params.swssUrl || "";
  121. // 四维深时的路径 index.html
  122. params.swkkUrl = params.swkkUrl || "";
  123. // 四维看看的服务端口
  124. params.swkkPort = params.swkkPort || "8088";
  125. const ip = params.ip ? params.ip + ":" : "";
  126. params.root = `${ip}${params.laserServicePort}`;
  127. params.ossRoot = `${ip}${params.laserServicePort}${params.static}`;
  128. params.serviceUrl = `${ip}${params.servicePort}/fusion`;
  129. params.laserRoot = params.root;
  130. params.swssUrl = `${params.swssUrl}?lang=${langKey}&serve_link=${params.laserRoot}&basePath=${params.laserRoot}`;
  131. params.swkkUrl = `${params.swkkUrl}?lang=${langKey}&app_server=${ip}${params.swkkPort}`;
  132. }
  133. // params.serviceUrl = "/fusion";
  134. export let namespace = params.serviceUrl;
  135. console.error(params, namespace)
  136. export const getResources = (uri: string) => {
  137. uri = uri.replaceAll("\\", "/");
  138. uri = uri.replaceAll("\\", "/");
  139. uri = uri.replaceAll("\\", "/");
  140. uri = uri.replaceAll("\\", "/");
  141. uri = uri.replaceAll("\\", "/");
  142. uri = uri.replaceAll("\\", "/");
  143. if (
  144. !params.ossRoot ||
  145. ~uri.indexOf("base64") ||
  146. ~uri.indexOf("bolb") ||
  147. ~uri.indexOf("//")
  148. )
  149. return uri;
  150. const ip = params.ip ? `${params.ip}:${params.static}` : ''
  151. if (!ip || !params.laserServicePort || !params.ossRoot) return params.static + uri
  152. const root =
  153. uri.indexOf(params.static.substring(1)) === 0 ||
  154. uri.indexOf(params.static) === 0
  155. ? `${ip}${params.laserServicePort}`
  156. : params.ossRoot;
  157. const baseURL = new URL(root);
  158. const url = new URL(uri, root);
  159. console.log(root, uri);
  160. const basePath =
  161. baseURL.pathname[baseURL.pathname.length - 1] === "/"
  162. ? baseURL.pathname.substring(0, baseURL.pathname.length - 1)
  163. : baseURL.pathname;
  164. url.pathname = basePath + url.pathname;
  165. return url.href;
  166. };