sctj-components 1.0.92 → 1.0.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,9 +38,9 @@ const _export_sfc = (sfc, props) => {
38
38
  }
39
39
  return target;
40
40
  };
41
- const _hoisted_1$o = { class: "dict-tag-container" };
42
- const _hoisted_2$g = ["index"];
43
- const _sfc_main$w = {
41
+ const _hoisted_1$p = { class: "dict-tag-container" };
42
+ const _hoisted_2$h = ["index"];
43
+ const _sfc_main$x = {
44
44
  __name: "index",
45
45
  props: {
46
46
  options: {
@@ -60,7 +60,7 @@ const _sfc_main$w = {
60
60
  });
61
61
  return (_ctx, _cache) => {
62
62
  const _component_el_tag = resolveComponent("el-tag");
63
- return openBlock(), createElementBlock("div", _hoisted_1$o, [
63
+ return openBlock(), createElementBlock("div", _hoisted_1$p, [
64
64
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (item, index2) => {
65
65
  return openBlock(), createElementBlock(Fragment, null, [
66
66
  unref(values).includes(item.value) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
@@ -68,7 +68,7 @@ const _sfc_main$w = {
68
68
  key: item.value,
69
69
  index: index2,
70
70
  class: normalizeClass(item.elTagClass)
71
- }, toDisplayString(item.label), 11, _hoisted_2$g)) : (openBlock(), createBlock(_component_el_tag, {
71
+ }, toDisplayString(item.label), 11, _hoisted_2$h)) : (openBlock(), createBlock(_component_el_tag, {
72
72
  "disable-transitions": true,
73
73
  key: item.value + "",
74
74
  index: index2,
@@ -87,10 +87,10 @@ const _sfc_main$w = {
87
87
  };
88
88
  }
89
89
  };
90
- const SCTJDictTag = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-659e1d01"]]);
90
+ const SCTJDictTag = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-659e1d01"]]);
91
91
  const index_vue_vue_type_style_index_0_scope_true_lang = "";
92
- const _hoisted_1$n = ["xlink:href", "fill"];
93
- const _sfc_main$v = {
92
+ const _hoisted_1$o = ["xlink:href", "fill"];
93
+ const _sfc_main$w = {
94
94
  __name: "index",
95
95
  props: {
96
96
  iconClass: {
@@ -123,7 +123,7 @@ const _sfc_main$v = {
123
123
  createElementVNode("use", {
124
124
  "xlink:href": unref(iconName),
125
125
  fill: __props.color
126
- }, null, 8, _hoisted_1$n)
126
+ }, null, 8, _hoisted_1$o)
127
127
  ], 2);
128
128
  };
129
129
  }
@@ -132,12 +132,12 @@ const index$2 = "";
132
132
  const index$1 = "";
133
133
  const index_vue_vue_type_style_index_0_scoped_9fdf9efd_lang = "";
134
134
  const index_vue_vue_type_style_index_1_lang = "";
135
- const _hoisted_1$m = { class: "upload-file" };
136
- const _hoisted_2$f = { class: "el-upload__tip" };
137
- const _hoisted_3$b = { style: { "color": "#f56c6c" } };
138
- const _hoisted_4$a = { style: { "color": "#f56c6c" } };
139
- const _hoisted_5$7 = ["title"];
140
- const _hoisted_6$4 = { class: "ele-upload-list__item-content-action" };
135
+ const _hoisted_1$n = { class: "upload-file" };
136
+ const _hoisted_2$g = { class: "el-upload__tip" };
137
+ const _hoisted_3$c = { style: { "color": "#f56c6c" } };
138
+ const _hoisted_4$b = { style: { "color": "#f56c6c" } };
139
+ const _hoisted_5$8 = ["title"];
140
+ const _hoisted_6$5 = { class: "ele-upload-list__item-content-action" };
141
141
  const _hoisted_7$4 = { style: { "display": "flex", "justify-content": "space-between" } };
142
142
  const _hoisted_8$4 = ["id"];
143
143
  const _hoisted_9$3 = {
@@ -145,7 +145,7 @@ const _hoisted_9$3 = {
145
145
  class: "preview-toolbar"
146
146
  };
147
147
  const _hoisted_10$3 = { class: "previewDialogContent" };
148
- const _sfc_main$u = {
148
+ const _sfc_main$v = {
149
149
  __name: "index",
150
150
  props: {
151
151
  modelValue: [String, Object, Array],
@@ -443,7 +443,7 @@ const _sfc_main$u = {
443
443
  const _component_el_icon = resolveComponent("el-icon");
444
444
  const _component_el_dialog = resolveComponent("el-dialog");
445
445
  const _component_el_image_viewer = resolveComponent("el-image-viewer");
446
- return openBlock(), createElementBlock("div", _hoisted_1$m, [
446
+ return openBlock(), createElementBlock("div", _hoisted_1$n, [
447
447
  !__props.disabled ? (openBlock(), createBlock(_component_el_upload, mergeProps({
448
448
  key: 0,
449
449
  multiple: "",
@@ -482,15 +482,15 @@ const _sfc_main$u = {
482
482
  unref(showTip) ? {
483
483
  name: "tip",
484
484
  fn: withCtx(() => [
485
- createElementVNode("div", _hoisted_2$f, [
485
+ createElementVNode("div", _hoisted_2$g, [
486
486
  createTextVNode(" \u8BF7\u4E0A\u4F20 "),
487
487
  __props.fileSize ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
488
488
  createTextVNode(" \u5927\u5C0F\u4E0D\u8D85\u8FC7 "),
489
- createElementVNode("b", _hoisted_3$b, toDisplayString(__props.fileSize) + "MB", 1)
489
+ createElementVNode("b", _hoisted_3$c, toDisplayString(__props.fileSize) + "MB", 1)
490
490
  ], 64)) : createCommentVNode("", true),
491
491
  __props.fileType ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
492
492
  createTextVNode(" \u683C\u5F0F\u4E3A "),
493
- createElementVNode("b", _hoisted_4$a, toDisplayString(__props.fileType.join("/")), 1)
493
+ createElementVNode("b", _hoisted_4$b, toDisplayString(__props.fileType.join("/")), 1)
494
494
  ], 64)) : createCommentVNode("", true),
495
495
  createTextVNode(" \u7684\u6587\u4EF6 ")
496
496
  ])
@@ -513,8 +513,8 @@ const _sfc_main$u = {
513
513
  createElementVNode("div", {
514
514
  title: getFileName(file.name),
515
515
  class: "ele-upload-list__item-content-name"
516
- }, toDisplayString(getFileName(file.name)), 9, _hoisted_5$7),
517
- createElementVNode("div", _hoisted_6$4, [
516
+ }, toDisplayString(getFileName(file.name)), 9, _hoisted_5$8),
517
+ createElementVNode("div", _hoisted_6$5, [
518
518
  createVNode(_component_el_icon, {
519
519
  title: "\u9884\u89C8",
520
520
  class: "el-icon-view-icon",
@@ -622,17 +622,17 @@ const _sfc_main$u = {
622
622
  };
623
623
  }
624
624
  };
625
- const SCTJFileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-9fdf9efd"]]);
625
+ const SCTJFileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-9fdf9efd"]]);
626
626
  const index_vue_vue_type_style_index_0_scoped_672e5149_lang = "";
627
- const _hoisted_1$l = { class: "component-upload-image" };
628
- const _hoisted_2$e = {
627
+ const _hoisted_1$m = { class: "component-upload-image" };
628
+ const _hoisted_2$f = {
629
629
  key: 0,
630
630
  class: "el-upload__tip"
631
631
  };
632
- const _hoisted_3$a = { style: { "color": "#f56c6c" } };
633
- const _hoisted_4$9 = { style: { "color": "#f56c6c" } };
634
- const _hoisted_5$6 = ["src"];
635
- const _sfc_main$t = {
632
+ const _hoisted_3$b = { style: { "color": "#f56c6c" } };
633
+ const _hoisted_4$a = { style: { "color": "#f56c6c" } };
634
+ const _hoisted_5$7 = ["src"];
635
+ const _sfc_main$u = {
636
636
  __name: "index",
637
637
  props: {
638
638
  modelValue: {
@@ -833,7 +833,7 @@ const _sfc_main$t = {
833
833
  const _component_el_icon = resolveComponent("el-icon");
834
834
  const _component_el_upload = resolveComponent("el-upload");
835
835
  const _component_el_dialog = resolveComponent("el-dialog");
836
- return openBlock(), createElementBlock("div", _hoisted_1$l, [
836
+ return openBlock(), createElementBlock("div", _hoisted_1$m, [
837
837
  createVNode(_component_el_upload, mergeProps({
838
838
  disabled: props.disabled,
839
839
  multiple: "",
@@ -865,15 +865,15 @@ const _sfc_main$t = {
865
865
  ]),
866
866
  _: 1
867
867
  }, 16, ["disabled", "action", "limit", "http-request", "headers", "file-list", "drag", "class"]),
868
- unref(showTip) ? (openBlock(), createElementBlock("div", _hoisted_2$e, [
868
+ unref(showTip) ? (openBlock(), createElementBlock("div", _hoisted_2$f, [
869
869
  createTextVNode(" \u8BF7\u4E0A\u4F20 "),
870
870
  props.fileSize ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
871
871
  createTextVNode(" \u5927\u5C0F\u4E0D\u8D85\u8FC7 "),
872
- createElementVNode("b", _hoisted_3$a, toDisplayString(props.fileSize) + "MB", 1)
872
+ createElementVNode("b", _hoisted_3$b, toDisplayString(props.fileSize) + "MB", 1)
873
873
  ], 64)) : createCommentVNode("", true),
874
874
  props.fileType ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
875
875
  createTextVNode(" \u683C\u5F0F\u4E3A "),
876
- createElementVNode("b", _hoisted_4$9, toDisplayString(props.fileType.join("/")), 1)
876
+ createElementVNode("b", _hoisted_4$a, toDisplayString(props.fileType.join("/")), 1)
877
877
  ], 64)) : createCommentVNode("", true),
878
878
  createTextVNode(" \u7684\u6587\u4EF6 ")
879
879
  ])) : createCommentVNode("", true),
@@ -888,7 +888,7 @@ const _sfc_main$t = {
888
888
  createElementVNode("img", {
889
889
  src: dialogImageUrl.value,
890
890
  style: { "display": "block", "max-width": "100%", "margin": "0 auto" }
891
- }, null, 8, _hoisted_5$6)
891
+ }, null, 8, _hoisted_5$7)
892
892
  ]),
893
893
  _: 1
894
894
  }, 8, ["modelValue"])
@@ -896,10 +896,10 @@ const _sfc_main$t = {
896
896
  };
897
897
  }
898
898
  };
899
- const SCTJImageUpload = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-672e5149"]]);
899
+ const SCTJImageUpload = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-672e5149"]]);
900
900
  const index_vue_vue_type_style_index_0_scoped_e91fd2ba_lang = "";
901
- const _hoisted_1$k = { class: "image-slot" };
902
- const _sfc_main$s = {
901
+ const _hoisted_1$l = { class: "image-slot" };
902
+ const _sfc_main$t = {
903
903
  __name: "index",
904
904
  props: {
905
905
  enableDelete: {
@@ -1013,7 +1013,7 @@ const _sfc_main$s = {
1013
1013
  "preview-src-list": unref(realSrcList)
1014
1014
  }, {
1015
1015
  error: withCtx(() => [
1016
- createElementVNode("div", _hoisted_1$k, [
1016
+ createElementVNode("div", _hoisted_1$l, [
1017
1017
  createVNode(_component_el_icon, { class: "el-icon-picture-outline" }, {
1018
1018
  default: withCtx(() => [
1019
1019
  createVNode(unref(Picture))
@@ -1030,7 +1030,7 @@ const _sfc_main$s = {
1030
1030
  };
1031
1031
  }
1032
1032
  };
1033
- const SCTJImagePreview = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-e91fd2ba"]]);
1033
+ const SCTJImagePreview = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-e91fd2ba"]]);
1034
1034
  const icons = [
1035
1035
  "404",
1036
1036
  "asset",
@@ -1122,10 +1122,10 @@ const icons = [
1122
1122
  "zip"
1123
1123
  ];
1124
1124
  const index_vue_vue_type_style_index_0_scoped_37029e19_lang = "";
1125
- const _hoisted_1$j = { class: "icon-content" };
1126
- const _hoisted_2$d = { class: "icon-list" };
1127
- const _hoisted_3$9 = ["onClick"];
1128
- const _sfc_main$r = {
1125
+ const _hoisted_1$k = { class: "icon-content" };
1126
+ const _hoisted_2$e = { class: "icon-list" };
1127
+ const _hoisted_3$a = ["onClick"];
1128
+ const _sfc_main$s = {
1129
1129
  __name: "index",
1130
1130
  props: {
1131
1131
  modelValue: {
@@ -1216,12 +1216,12 @@ const _sfc_main$r = {
1216
1216
  unref(iconName) ? {
1217
1217
  name: "prefix",
1218
1218
  fn: withCtx(() => [
1219
- createVNode(_sfc_main$v, { "icon-class": unref(iconName) }, null, 8, ["icon-class"])
1219
+ createVNode(_sfc_main$w, { "icon-class": unref(iconName) }, null, 8, ["icon-class"])
1220
1220
  ]),
1221
1221
  key: "0"
1222
1222
  } : void 0
1223
1223
  ]), 1032, ["modelValue"]),
1224
- withDirectives(createElementVNode("div", _hoisted_1$j, [
1224
+ withDirectives(createElementVNode("div", _hoisted_1$k, [
1225
1225
  createElementVNode("div", null, [
1226
1226
  createVNode(_component_el_input, {
1227
1227
  modelValue: keyWord.value,
@@ -1243,18 +1243,18 @@ const _sfc_main$r = {
1243
1243
  _: 1
1244
1244
  }, 8, ["modelValue"])
1245
1245
  ]),
1246
- createElementVNode("div", _hoisted_2$d, [
1246
+ createElementVNode("div", _hoisted_2$e, [
1247
1247
  (openBlock(true), createElementBlock(Fragment, null, renderList(iconList.value, (item, index2) => {
1248
1248
  return openBlock(), createElementBlock("div", {
1249
1249
  key: index2,
1250
1250
  onClick: ($event) => selectedIcon(item)
1251
1251
  }, [
1252
- createVNode(_sfc_main$v, {
1252
+ createVNode(_sfc_main$w, {
1253
1253
  "icon-class": item,
1254
1254
  style: { "height": "30px", "width": "16px", "flex-shrink": "0" }
1255
1255
  }, null, 8, ["icon-class"]),
1256
1256
  createElementVNode("span", null, toDisplayString(item), 1)
1257
- ], 8, _hoisted_3$9);
1257
+ ], 8, _hoisted_3$a);
1258
1258
  }), 128))
1259
1259
  ])
1260
1260
  ], 512), [
@@ -1264,7 +1264,7 @@ const _sfc_main$r = {
1264
1264
  };
1265
1265
  }
1266
1266
  };
1267
- const SCTJIconSelect = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-37029e19"]]);
1267
+ const SCTJIconSelect = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-37029e19"]]);
1268
1268
  function useMobile() {
1269
1269
  const isMobile = ref$1(false);
1270
1270
  const checkIsMobile = () => {
@@ -1291,7 +1291,7 @@ function useMobile() {
1291
1291
  checkIsMobile
1292
1292
  };
1293
1293
  }
1294
- const _sfc_main$q = {
1294
+ const _sfc_main$r = {
1295
1295
  __name: "index",
1296
1296
  props: {
1297
1297
  modelValue: {
@@ -1396,8 +1396,8 @@ const _sfc_main$q = {
1396
1396
  }
1397
1397
  };
1398
1398
  const index_vue_vue_type_style_index_0_scoped_7b45925b_lang = "";
1399
- const _hoisted_1$i = { class: "el-tree-select" };
1400
- const _sfc_main$p = {
1399
+ const _hoisted_1$j = { class: "el-tree-select" };
1400
+ const _sfc_main$q = {
1401
1401
  __name: "index",
1402
1402
  props: {
1403
1403
  objMap: {
@@ -1607,7 +1607,7 @@ const _sfc_main$p = {
1607
1607
  const _component_el_option = resolveComponent("el-option");
1608
1608
  const _component_el_tree = resolveComponent("el-tree");
1609
1609
  const _component_el_select = resolveComponent("el-select");
1610
- return openBlock(), createElementBlock("div", _hoisted_1$i, [
1610
+ return openBlock(), createElementBlock("div", _hoisted_1$j, [
1611
1611
  createVNode(_component_el_select, {
1612
1612
  style: { "width": "100%" },
1613
1613
  modelValue: unref(valueId),
@@ -1667,8 +1667,8 @@ const _sfc_main$p = {
1667
1667
  };
1668
1668
  }
1669
1669
  };
1670
- const SCTJTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-7b45925b"]]);
1671
- const _sfc_main$o = {
1670
+ const SCTJTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-7b45925b"]]);
1671
+ const _sfc_main$p = {
1672
1672
  __name: "index",
1673
1673
  props: {
1674
1674
  modelValue: {
@@ -1754,7 +1754,7 @@ const _sfc_main$o = {
1754
1754
  };
1755
1755
  }
1756
1756
  };
1757
- const _sfc_main$n = {
1757
+ const _sfc_main$o = {
1758
1758
  __name: "index",
1759
1759
  props: {
1760
1760
  modelValue: {
@@ -1827,10 +1827,10 @@ const _sfc_main$n = {
1827
1827
  };
1828
1828
  }
1829
1829
  };
1830
- const index_vue_vue_type_style_index_0_scoped_106bcee9_lang = "";
1831
- const _hoisted_1$h = { class: "time-line-slider-container" };
1832
- const _hoisted_2$c = { class: "time-line-slider-wrapper" };
1833
- const _sfc_main$m = {
1830
+ const index_vue_vue_type_style_index_0_scoped_12d0117a_lang = "";
1831
+ const _hoisted_1$i = { class: "time-line-slider-container" };
1832
+ const _hoisted_2$d = { class: "time-line-slider-wrapper" };
1833
+ const _sfc_main$n = {
1834
1834
  __name: "index",
1835
1835
  props: {
1836
1836
  timeConfig: {
@@ -1863,12 +1863,14 @@ const _sfc_main$m = {
1863
1863
  }
1864
1864
  }
1865
1865
  });
1866
- const selectChange = async () => {
1866
+ const scrollIntoView = async () => {
1867
1867
  await nextTick();
1868
1868
  setTimeout(() => {
1869
1869
  const sliderButton = document.querySelector(".el-slider__button-wrapper");
1870
+ console.log("sliderButton", sliderButton);
1870
1871
  if (sliderButton) {
1871
1872
  const scrollContainer = document.querySelector(".time-line-slider-wrapper");
1873
+ console.log("scrollContainer", scrollContainer);
1872
1874
  if (scrollContainer) {
1873
1875
  const buttonRect = sliderButton.getBoundingClientRect();
1874
1876
  const containerRect = scrollContainer.getBoundingClientRect();
@@ -1877,12 +1879,6 @@ const _sfc_main$m = {
1877
1879
  left: scrollLeft,
1878
1880
  behavior: "smooth"
1879
1881
  });
1880
- } else {
1881
- sliderButton.scrollIntoView({
1882
- behavior: "smooth",
1883
- block: "center",
1884
- inline: "center"
1885
- });
1886
1882
  }
1887
1883
  }
1888
1884
  }, 100);
@@ -2066,6 +2062,9 @@ const _sfc_main$m = {
2066
2062
  },
2067
2063
  { deep: true }
2068
2064
  );
2065
+ watch(() => props.modelValue, () => {
2066
+ scrollIntoView();
2067
+ }, { immediate: true });
2069
2068
  watch(selectValue, (val) => {
2070
2069
  const index2 = Math.round(val);
2071
2070
  const emitValue = getValueFromIndex(index2);
@@ -2077,8 +2076,8 @@ const _sfc_main$m = {
2077
2076
  const _component_el_slider = resolveComponent("el-slider");
2078
2077
  const _component_el_option = resolveComponent("el-option");
2079
2078
  const _component_el_select = resolveComponent("el-select");
2080
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
2081
- createElementVNode("div", _hoisted_2$c, [
2079
+ return openBlock(), createElementBlock("div", _hoisted_1$i, [
2080
+ createElementVNode("div", _hoisted_2$d, [
2082
2081
  createVNode(_component_el_slider, {
2083
2082
  style: normalizeStyle({ width: unref(sliderWidth) }),
2084
2083
  modelValue: selectValue.value,
@@ -2097,7 +2096,6 @@ const _sfc_main$m = {
2097
2096
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isRef(selectDate) ? selectDate.value = $event : null),
2098
2097
  placeholder: "\u8BF7\u9009\u62E9",
2099
2098
  filterable: "",
2100
- onChange: selectChange,
2101
2099
  style: { "width": "auto" }
2102
2100
  }, {
2103
2101
  default: withCtx(() => [
@@ -2115,10 +2113,10 @@ const _sfc_main$m = {
2115
2113
  };
2116
2114
  }
2117
2115
  };
2118
- const SCTJTimeLineSelect = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-106bcee9"]]);
2116
+ const SCTJTimeLineSelect = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-12d0117a"]]);
2119
2117
  const index_vue_vue_type_style_index_0_scoped_0e809a5c_lang = "";
2120
- const _hoisted_1$g = { class: "table-container" };
2121
- const _sfc_main$l = {
2118
+ const _hoisted_1$h = { class: "table-container" };
2119
+ const _sfc_main$m = {
2122
2120
  __name: "index",
2123
2121
  props: {
2124
2122
  request: {
@@ -2374,7 +2372,7 @@ const _sfc_main$l = {
2374
2372
  class: "TJ-table-container",
2375
2373
  style: normalizeStyle({ height: __props.height })
2376
2374
  }, [
2377
- createElementVNode("div", _hoisted_1$g, [
2375
+ createElementVNode("div", _hoisted_1$h, [
2378
2376
  createVNode(_component_el_table, mergeProps({
2379
2377
  ref_key: "tableRef",
2380
2378
  ref: tableRef,
@@ -2454,18 +2452,18 @@ const _sfc_main$l = {
2454
2452
  };
2455
2453
  }
2456
2454
  };
2457
- const SCTJTable = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-0e809a5c"]]);
2455
+ const SCTJTable = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-0e809a5c"]]);
2458
2456
  const index_vue_vue_type_style_index_0_scoped_45fb95db_lang = "";
2459
- const _sfc_main$k = {};
2460
- const _hoisted_1$f = { class: "table-container" };
2457
+ const _sfc_main$l = {};
2458
+ const _hoisted_1$g = { class: "table-container" };
2461
2459
  function _sfc_render(_ctx, _cache) {
2462
- return openBlock(), createElementBlock("div", _hoisted_1$f, [
2460
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
2463
2461
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
2464
2462
  ]);
2465
2463
  }
2466
- const SCTJTableContainer = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render], ["__scopeId", "data-v-45fb95db"]]);
2464
+ const SCTJTableContainer = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render], ["__scopeId", "data-v-45fb95db"]]);
2467
2465
  const index_vue_vue_type_style_index_0_scoped_46df4461_lang = "";
2468
- const _sfc_main$j = {
2466
+ const _sfc_main$k = {
2469
2467
  __name: "index",
2470
2468
  props: {
2471
2469
  showSearch: {
@@ -2609,10 +2607,10 @@ const _sfc_main$j = {
2609
2607
  };
2610
2608
  }
2611
2609
  };
2612
- const SCTJRightToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-46df4461"]]);
2610
+ const SCTJRightToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-46df4461"]]);
2613
2611
  const index_vue_vue_type_style_index_0_scoped_056cfdde_lang = "";
2614
- const _hoisted_1$e = { class: "table-top-action-container" };
2615
- const _sfc_main$i = {
2612
+ const _hoisted_1$f = { class: "table-top-action-container" };
2613
+ const _sfc_main$j = {
2616
2614
  __name: "index",
2617
2615
  props: {
2618
2616
  showSearch: {
@@ -2639,7 +2637,7 @@ const _sfc_main$i = {
2639
2637
  emit("refresh");
2640
2638
  };
2641
2639
  return (_ctx, _cache) => {
2642
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
2640
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
2643
2641
  renderSlot(_ctx.$slots, "left", {}, void 0, true),
2644
2642
  renderSlot(_ctx.$slots, "right", {}, () => [
2645
2643
  createVNode(SCTJRightToolbar, {
@@ -2653,24 +2651,24 @@ const _sfc_main$i = {
2653
2651
  };
2654
2652
  }
2655
2653
  };
2656
- const SCTJTableTopActionContainer = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-056cfdde"]]);
2654
+ const SCTJTableTopActionContainer = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-056cfdde"]]);
2657
2655
  const index_vue_vue_type_style_index_0_scoped_b07303f6_lang = "";
2658
- const _withScopeId$7 = (n) => (pushScopeId("data-v-b07303f6"), n = n(), popScopeId(), n);
2659
- const _hoisted_1$d = {
2656
+ const _withScopeId$8 = (n) => (pushScopeId("data-v-b07303f6"), n = n(), popScopeId(), n);
2657
+ const _hoisted_1$e = {
2660
2658
  key: 0,
2661
2659
  class: "search-container"
2662
2660
  };
2663
- const _hoisted_2$b = { class: "table-box" };
2664
- const _hoisted_3$8 = ["onClick"];
2665
- const _hoisted_4$8 = {
2661
+ const _hoisted_2$c = { class: "table-box" };
2662
+ const _hoisted_3$9 = ["onClick"];
2663
+ const _hoisted_4$9 = {
2666
2664
  slot: "header",
2667
2665
  class: "clearfix"
2668
2666
  };
2669
- const _hoisted_5$5 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ createElementVNode("span", { style: { "font-weight": "bold" } }, "\u5DF2\u9009\u5217\u8868", -1));
2670
- const _hoisted_6$3 = { class: "tag-container" };
2667
+ const _hoisted_5$6 = /* @__PURE__ */ _withScopeId$8(() => /* @__PURE__ */ createElementVNode("span", { style: { "font-weight": "bold" } }, "\u5DF2\u9009\u5217\u8868", -1));
2668
+ const _hoisted_6$4 = { class: "tag-container" };
2671
2669
  const _hoisted_7$3 = { class: "tag-name" };
2672
2670
  const _hoisted_8$3 = { class: "dialog-footer" };
2673
- const _sfc_main$h = {
2671
+ const _sfc_main$i = {
2674
2672
  __name: "index",
2675
2673
  props: {
2676
2674
  mode: {
@@ -2967,7 +2965,7 @@ const _sfc_main$h = {
2967
2965
  ])
2968
2966
  ]),
2969
2967
  default: withCtx(() => [
2970
- unref(queryColumns).length ? (openBlock(), createElementBlock("div", _hoisted_1$d, [
2968
+ unref(queryColumns).length ? (openBlock(), createElementBlock("div", _hoisted_1$e, [
2971
2969
  createVNode(_component_el_card, { shadow: "hover" }, {
2972
2970
  default: withCtx(() => [
2973
2971
  createVNode(_component_el_form, {
@@ -3065,7 +3063,7 @@ const _sfc_main$h = {
3065
3063
  style: normalizeStyle({ height: !unref(isMobile) ? __props.height : "100%" }),
3066
3064
  class: normalizeClass(["content-box", unref(isMobile) && "content-box-mobile"])
3067
3065
  }, [
3068
- createElementVNode("div", _hoisted_2$b, [
3066
+ createElementVNode("div", _hoisted_2$c, [
3069
3067
  withDirectives((openBlock(), createBlock(_component_el_table, {
3070
3068
  size: unref(isMobile) ? "small" : "",
3071
3069
  class: "table-content",
@@ -3112,7 +3110,7 @@ const _sfc_main$h = {
3112
3110
  createElementVNode("span", {
3113
3111
  onClick: ($event) => handleClick(item.action, item.prop, scope),
3114
3112
  class: normalizeClass({ "linkStyle": item.action || false })
3115
- }, toDisplayString(item.format ? item.format(scope.row, scope.$index) : scope.row[item.prop]), 11, _hoisted_3$8)
3113
+ }, toDisplayString(item.format ? item.format(scope.row, scope.$index) : scope.row[item.prop]), 11, _hoisted_3$9)
3116
3114
  ]),
3117
3115
  _: 2
3118
3116
  }, 1040))
@@ -3160,8 +3158,8 @@ const _sfc_main$h = {
3160
3158
  shadow: "never"
3161
3159
  }, {
3162
3160
  default: withCtx(() => [
3163
- createElementVNode("div", _hoisted_4$8, [
3164
- _hoisted_5$5,
3161
+ createElementVNode("div", _hoisted_4$9, [
3162
+ _hoisted_5$6,
3165
3163
  createVNode(_component_el_button, {
3166
3164
  style: { "float": "right", "padding": "3px 0" },
3167
3165
  link: "",
@@ -3173,7 +3171,7 @@ const _sfc_main$h = {
3173
3171
  _: 1
3174
3172
  })
3175
3173
  ]),
3176
- createElementVNode("div", _hoisted_6$3, [
3174
+ createElementVNode("div", _hoisted_6$4, [
3177
3175
  (openBlock(true), createElementBlock(Fragment, null, renderList(selectDataList.value, (tag) => {
3178
3176
  return openBlock(), createElementBlock("div", {
3179
3177
  key: tag[__props.selectOptions.valueKey]
@@ -3205,9 +3203,9 @@ const _sfc_main$h = {
3205
3203
  };
3206
3204
  }
3207
3205
  };
3208
- const SCTJDialogTable = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-b07303f6"]]);
3206
+ const SCTJDialogTable = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-b07303f6"]]);
3209
3207
  const index_vue_vue_type_style_index_0_scoped_d4cb1fae_lang = "";
3210
- const _sfc_main$g = {
3208
+ const _sfc_main$h = {
3211
3209
  __name: "index",
3212
3210
  props: {
3213
3211
  tableData: {
@@ -3554,8 +3552,8 @@ const _sfc_main$g = {
3554
3552
  };
3555
3553
  }
3556
3554
  };
3557
- const SCTJScrollTable = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-d4cb1fae"]]);
3558
- const _sfc_main$f = {
3555
+ const SCTJScrollTable = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-d4cb1fae"]]);
3556
+ const _sfc_main$g = {
3559
3557
  __name: "index",
3560
3558
  setup(__props) {
3561
3559
  const { isMobile } = useMobile();
@@ -3604,9 +3602,9 @@ const _sfc_main$f = {
3604
3602
  }
3605
3603
  };
3606
3604
  const index_vue_vue_type_style_index_0_scoped_48dc11be_lang = "";
3607
- const _hoisted_1$c = { class: "table-page-container" };
3608
- const _hoisted_2$a = { style: { "flex": "1", "height": "0" } };
3609
- const _sfc_main$e = {
3605
+ const _hoisted_1$d = { class: "table-page-container" };
3606
+ const _hoisted_2$b = { style: { "flex": "1", "height": "0" } };
3607
+ const _sfc_main$f = {
3610
3608
  __name: "index",
3611
3609
  props: {
3612
3610
  showSearch: {
@@ -3633,7 +3631,7 @@ const _sfc_main$e = {
3633
3631
  emit("update:showSearch", !newVal);
3634
3632
  }, { immediate: true });
3635
3633
  return (_ctx, _cache) => {
3636
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
3634
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
3637
3635
  renderSlot(_ctx.$slots, "search", {}, void 0, true),
3638
3636
  createVNode(SCTJTableTopActionContainer, {
3639
3637
  showSearch: unref(outSearch),
@@ -3645,7 +3643,7 @@ const _sfc_main$e = {
3645
3643
  ]),
3646
3644
  _: 3
3647
3645
  }, 8, ["showSearch"]),
3648
- createElementVNode("div", _hoisted_2$a, [
3646
+ createElementVNode("div", _hoisted_2$b, [
3649
3647
  renderSlot(_ctx.$slots, "table", {}, void 0, true)
3650
3648
  ]),
3651
3649
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
@@ -3653,17 +3651,17 @@ const _sfc_main$e = {
3653
3651
  };
3654
3652
  }
3655
3653
  };
3656
- const SCTJTablePageContainer = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-48dc11be"]]);
3654
+ const SCTJTablePageContainer = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-48dc11be"]]);
3657
3655
  const index_vue_vue_type_style_index_0_scoped_6e30b57f_lang = "";
3658
- const _hoisted_1$b = {
3656
+ const _hoisted_1$c = {
3659
3657
  key: 0,
3660
3658
  class: "search-container"
3661
3659
  };
3662
- const _hoisted_2$9 = {
3660
+ const _hoisted_2$a = {
3663
3661
  key: 1,
3664
3662
  class: "custom-drawer"
3665
3663
  };
3666
- const _sfc_main$d = {
3664
+ const _sfc_main$e = {
3667
3665
  __name: "index",
3668
3666
  props: {
3669
3667
  visible: {
@@ -3680,7 +3678,7 @@ const _sfc_main$d = {
3680
3678
  return (_ctx, _cache) => {
3681
3679
  const _component_el_card = resolveComponent("el-card");
3682
3680
  const _component_el_drawer = resolveComponent("el-drawer");
3683
- return !unref(isMobile) ? withDirectives((openBlock(), createElementBlock("div", _hoisted_1$b, [
3681
+ return !unref(isMobile) ? withDirectives((openBlock(), createElementBlock("div", _hoisted_1$c, [
3684
3682
  createVNode(_component_el_card, null, {
3685
3683
  default: withCtx(() => [
3686
3684
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
@@ -3689,7 +3687,7 @@ const _sfc_main$d = {
3689
3687
  })
3690
3688
  ], 512)), [
3691
3689
  [vShow, __props.visible]
3692
- ]) : (openBlock(), createElementBlock("div", _hoisted_2$9, [
3690
+ ]) : (openBlock(), createElementBlock("div", _hoisted_2$a, [
3693
3691
  createVNode(_component_el_drawer, {
3694
3692
  "model-value": __props.visible,
3695
3693
  title: "\u7B5B\u9009\u6761\u4EF6",
@@ -3705,8 +3703,8 @@ const _sfc_main$d = {
3705
3703
  };
3706
3704
  }
3707
3705
  };
3708
- const SCTJSearch = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-6e30b57f"]]);
3709
- const _sfc_main$c = {
3706
+ const SCTJSearch = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-6e30b57f"]]);
3707
+ const _sfc_main$d = {
3710
3708
  __name: "BaseChart",
3711
3709
  props: {
3712
3710
  option: {
@@ -3810,15 +3808,15 @@ const _sfc_main$c = {
3810
3808
  };
3811
3809
  const emptyImg = "data:image/png;base64,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";
3812
3810
  const CommonChart_vue_vue_type_style_index_0_scoped_3e513a58_lang = "";
3813
- const _withScopeId$6 = (n) => (pushScopeId("data-v-3e513a58"), n = n(), popScopeId(), n);
3814
- const _hoisted_1$a = ["element-loading-background"];
3815
- const _hoisted_2$8 = {
3811
+ const _withScopeId$7 = (n) => (pushScopeId("data-v-3e513a58"), n = n(), popScopeId(), n);
3812
+ const _hoisted_1$b = ["element-loading-background"];
3813
+ const _hoisted_2$9 = {
3816
3814
  key: 1,
3817
3815
  class: "empty-wrapper"
3818
3816
  };
3819
- const _hoisted_3$7 = ["src"];
3820
- const _hoisted_4$7 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ createElementVNode("div", { class: "empty-text" }, "\u6682\u65E0\u6570\u636E", -1));
3821
- const _sfc_main$b = {
3817
+ const _hoisted_3$8 = ["src"];
3818
+ const _hoisted_4$8 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ createElementVNode("div", { class: "empty-text" }, "\u6682\u65E0\u6570\u636E", -1));
3819
+ const _sfc_main$c = {
3822
3820
  __name: "CommonChart",
3823
3821
  props: {
3824
3822
  height: { type: String, default: "300px" },
@@ -4342,22 +4340,22 @@ const _sfc_main$b = {
4342
4340
  style: normalizeStyle({ height: __props.height }),
4343
4341
  class: "card-body"
4344
4342
  }, [
4345
- !unref(isEmptyData) ? (openBlock(), createBlock(_sfc_main$c, {
4343
+ !unref(isEmptyData) ? (openBlock(), createBlock(_sfc_main$d, {
4346
4344
  key: 0,
4347
4345
  onChartClick: handleChartClick,
4348
4346
  onLegendselectchanged: handleLegendSelectChanged,
4349
4347
  ref_key: "baseChartRef",
4350
4348
  ref: baseChartRef,
4351
4349
  option: unref(option)
4352
- }, null, 8, ["option"])) : (openBlock(), createElementBlock("div", _hoisted_2$8, [
4350
+ }, null, 8, ["option"])) : (openBlock(), createElementBlock("div", _hoisted_2$9, [
4353
4351
  createElementVNode("img", {
4354
4352
  src: unref(emptyImg),
4355
4353
  alt: "empty",
4356
4354
  class: "empty-image"
4357
- }, null, 8, _hoisted_3$7),
4358
- _hoisted_4$7
4355
+ }, null, 8, _hoisted_3$8),
4356
+ _hoisted_4$8
4359
4357
  ]))
4360
- ], 12, _hoisted_1$a)), [
4358
+ ], 12, _hoisted_1$b)), [
4361
4359
  [_directive_loading, __props.loading]
4362
4360
  ])
4363
4361
  ]),
@@ -4384,17 +4382,17 @@ const _sfc_main$b = {
4384
4382
  };
4385
4383
  }
4386
4384
  };
4387
- const SCTJCommonChart = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-3e513a58"]]);
4385
+ const SCTJCommonChart = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-3e513a58"]]);
4388
4386
  const PieChart_vue_vue_type_style_index_0_scoped_21c095e8_lang = "";
4389
- const _withScopeId$5 = (n) => (pushScopeId("data-v-21c095e8"), n = n(), popScopeId(), n);
4390
- const _hoisted_1$9 = ["element-loading-background"];
4391
- const _hoisted_2$7 = {
4387
+ const _withScopeId$6 = (n) => (pushScopeId("data-v-21c095e8"), n = n(), popScopeId(), n);
4388
+ const _hoisted_1$a = ["element-loading-background"];
4389
+ const _hoisted_2$8 = {
4392
4390
  key: 1,
4393
4391
  class: "empty-wrapper"
4394
4392
  };
4395
- const _hoisted_3$6 = ["src"];
4396
- const _hoisted_4$6 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("div", { class: "empty-text" }, "\u6682\u65E0\u6570\u636E", -1));
4397
- const _sfc_main$a = {
4393
+ const _hoisted_3$7 = ["src"];
4394
+ const _hoisted_4$7 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ createElementVNode("div", { class: "empty-text" }, "\u6682\u65E0\u6570\u636E", -1));
4395
+ const _sfc_main$b = {
4398
4396
  __name: "PieChart",
4399
4397
  props: {
4400
4398
  title: { type: String },
@@ -4651,22 +4649,22 @@ const _sfc_main$a = {
4651
4649
  style: normalizeStyle({ height: __props.height }),
4652
4650
  class: "card-body"
4653
4651
  }, [
4654
- !unref(isEmptyData) ? (openBlock(), createBlock(_sfc_main$c, {
4652
+ !unref(isEmptyData) ? (openBlock(), createBlock(_sfc_main$d, {
4655
4653
  key: 0,
4656
4654
  onChartClick: handleChartClick,
4657
4655
  ref_key: "baseChart",
4658
4656
  ref: baseChart,
4659
4657
  option: unref(chartOption),
4660
4658
  height: "100%"
4661
- }, null, 8, ["option"])) : (openBlock(), createElementBlock("div", _hoisted_2$7, [
4659
+ }, null, 8, ["option"])) : (openBlock(), createElementBlock("div", _hoisted_2$8, [
4662
4660
  createElementVNode("img", {
4663
4661
  src: unref(emptyImg),
4664
4662
  alt: "empty",
4665
4663
  class: "empty-image"
4666
- }, null, 8, _hoisted_3$6),
4667
- _hoisted_4$6
4664
+ }, null, 8, _hoisted_3$7),
4665
+ _hoisted_4$7
4668
4666
  ]))
4669
- ], 12, _hoisted_1$9)), [
4667
+ ], 12, _hoisted_1$a)), [
4670
4668
  [_directive_loading, __props.loading]
4671
4669
  ])
4672
4670
  ]),
@@ -4693,7 +4691,7 @@ const _sfc_main$a = {
4693
4691
  };
4694
4692
  }
4695
4693
  };
4696
- const SCTJPieChart = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-21c095e8"]]);
4694
+ const SCTJPieChart = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-21c095e8"]]);
4697
4695
  const generateShortId = () => {
4698
4696
  return Math.random().toString(36).substring(2, 8);
4699
4697
  };
@@ -4720,19 +4718,19 @@ const validateCoordinates = (longitude, latitude) => {
4720
4718
  return true;
4721
4719
  };
4722
4720
  const index_vue_vue_type_style_index_0_scoped_c613bad1_lang = "";
4723
- const _withScopeId$4 = (n) => (pushScopeId("data-v-c613bad1"), n = n(), popScopeId(), n);
4724
- const _hoisted_1$8 = ["id"];
4725
- const _hoisted_2$6 = {
4721
+ const _withScopeId$5 = (n) => (pushScopeId("data-v-c613bad1"), n = n(), popScopeId(), n);
4722
+ const _hoisted_1$9 = ["id"];
4723
+ const _hoisted_2$7 = {
4726
4724
  key: 0,
4727
4725
  class: "error-content"
4728
4726
  };
4729
- const _hoisted_3$5 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("div", { class: "error-icon" }, "!", -1));
4730
- const _hoisted_4$5 = {
4727
+ const _hoisted_3$6 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("div", { class: "error-icon" }, "!", -1));
4728
+ const _hoisted_4$6 = {
4731
4729
  key: 1,
4732
4730
  class: "loading-overlay"
4733
4731
  };
4734
- const _hoisted_5$4 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("p", null, "\u6B63\u5728\u52A0\u8F7D\u64AD\u653E\u5668...", -1));
4735
- const _sfc_main$9 = {
4732
+ const _hoisted_5$5 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("p", null, "\u6B63\u5728\u52A0\u8F7D\u64AD\u653E\u5668...", -1));
4733
+ const _sfc_main$a = {
4736
4734
  __name: "index",
4737
4735
  props: {
4738
4736
  playerId: {
@@ -5017,9 +5015,9 @@ const _sfc_main$9 = {
5017
5015
  class: "video-js",
5018
5016
  controls: ""
5019
5017
  }, null, 512)
5020
- ], 8, _hoisted_1$8),
5021
- errorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_2$6, [
5022
- _hoisted_3$5,
5018
+ ], 8, _hoisted_1$9),
5019
+ errorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
5020
+ _hoisted_3$6,
5023
5021
  createElementVNode("p", null, toDisplayString(errorMessage.value), 1),
5024
5022
  createVNode(unref(ElButton), {
5025
5023
  type: "primary",
@@ -5033,22 +5031,22 @@ const _sfc_main$9 = {
5033
5031
  _: 1
5034
5032
  })
5035
5033
  ])) : createCommentVNode("", true),
5036
- !errorMessage.value && !player.value ? (openBlock(), createElementBlock("div", _hoisted_4$5, [
5034
+ !errorMessage.value && !player.value ? (openBlock(), createElementBlock("div", _hoisted_4$6, [
5037
5035
  createVNode(unref(ElIcon), { class: "loading-icon" }, {
5038
5036
  default: withCtx(() => [
5039
5037
  createVNode(unref(Loading))
5040
5038
  ]),
5041
5039
  _: 1
5042
5040
  }),
5043
- _hoisted_5$4
5041
+ _hoisted_5$5
5044
5042
  ])) : createCommentVNode("", true)
5045
5043
  ], 512);
5046
5044
  };
5047
5045
  }
5048
5046
  };
5049
- const SCTJFlvPlayer = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-c613bad1"]]);
5050
- const _hoisted_1$7 = ["src"];
5051
- const _sfc_main$8 = {
5047
+ const SCTJFlvPlayer = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-c613bad1"]]);
5048
+ const _hoisted_1$8 = ["src"];
5049
+ const _sfc_main$9 = {
5052
5050
  __name: "index",
5053
5051
  props: {
5054
5052
  src: {
@@ -5079,25 +5077,25 @@ const _sfc_main$8 = {
5079
5077
  frameborder: "no",
5080
5078
  style: { "width": "100%", "height": "100%" },
5081
5079
  scrolling: "auto"
5082
- }, null, 8, _hoisted_1$7)
5080
+ }, null, 8, _hoisted_1$8)
5083
5081
  ], 4)), [
5084
5082
  [_directive_loading, unref(loading)]
5085
5083
  ]);
5086
5084
  };
5087
5085
  }
5088
5086
  };
5089
- const _hoisted_1$6 = /* @__PURE__ */ createElementVNode("div", { class: "el-upload__text" }, [
5087
+ const _hoisted_1$7 = /* @__PURE__ */ createElementVNode("div", { class: "el-upload__text" }, [
5090
5088
  /* @__PURE__ */ createTextVNode("\u5C06\u6587\u4EF6\u62D6\u5230\u6B64\u5904\uFF0C\u6216"),
5091
5089
  /* @__PURE__ */ createElementVNode("em", null, "\u70B9\u51FB\u4E0A\u4F20")
5092
5090
  ], -1);
5093
- const _hoisted_2$5 = { class: "el-upload__tip text-center" };
5094
- const _hoisted_3$4 = {
5091
+ const _hoisted_2$6 = { class: "el-upload__tip text-center" };
5092
+ const _hoisted_3$5 = {
5095
5093
  key: 0,
5096
5094
  class: "el-upload__tip"
5097
5095
  };
5098
- const _hoisted_4$4 = /* @__PURE__ */ createElementVNode("span", null, "\u4EC5\u5141\u8BB8\u5BFC\u5165xls\u3001xlsx\u683C\u5F0F\u6587\u4EF6\u3002", -1);
5099
- const _hoisted_5$3 = { class: "dialog-footer" };
5100
- const _sfc_main$7 = {
5096
+ const _hoisted_4$5 = /* @__PURE__ */ createElementVNode("span", null, "\u4EC5\u5141\u8BB8\u5BFC\u5165xls\u3001xlsx\u683C\u5F0F\u6587\u4EF6\u3002", -1);
5097
+ const _hoisted_5$4 = { class: "dialog-footer" };
5098
+ const _sfc_main$8 = {
5101
5099
  __name: "index",
5102
5100
  props: {
5103
5101
  title: {
@@ -5286,7 +5284,7 @@ const _sfc_main$7 = {
5286
5284
  onClose: cancel
5287
5285
  }, {
5288
5286
  footer: withCtx(() => [
5289
- createElementVNode("div", _hoisted_5$3, [
5287
+ createElementVNode("div", _hoisted_5$4, [
5290
5288
  createVNode(_component_el_button, {
5291
5289
  onClick: _cache[2] || (_cache[2] = ($event) => params.open = false)
5292
5290
  }, {
@@ -5322,15 +5320,15 @@ const _sfc_main$7 = {
5322
5320
  drag: ""
5323
5321
  }, {
5324
5322
  tip: withCtx(() => [
5325
- createElementVNode("div", _hoisted_2$5, [
5326
- __props.showCheckBox ? (openBlock(), createElementBlock("div", _hoisted_3$4, [
5323
+ createElementVNode("div", _hoisted_2$6, [
5324
+ __props.showCheckBox ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
5327
5325
  createVNode(_component_el_checkbox, {
5328
5326
  modelValue: params.updateSupport,
5329
5327
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => params.updateSupport = $event)
5330
5328
  }, null, 8, ["modelValue"]),
5331
5329
  createTextVNode(" \u662F\u5426\u66F4\u65B0\u5DF2\u7ECF\u5B58\u5728\u7684\u6570\u636E ")
5332
5330
  ])) : createCommentVNode("", true),
5333
- _hoisted_4$4,
5331
+ _hoisted_4$5,
5334
5332
  !__props.otherTemplate.length ? (openBlock(), createBlock(_component_el_link, {
5335
5333
  key: 1,
5336
5334
  type: "primary",
@@ -5393,7 +5391,7 @@ const _sfc_main$7 = {
5393
5391
  ]),
5394
5392
  _: 1
5395
5393
  }),
5396
- _hoisted_1$6
5394
+ _hoisted_1$7
5397
5395
  ]),
5398
5396
  _: 1
5399
5397
  }, 8, ["headers", "action", "disabled"])
@@ -5404,12 +5402,12 @@ const _sfc_main$7 = {
5404
5402
  }
5405
5403
  };
5406
5404
  const index_vue_vue_type_style_index_0_scoped_ae15bc12_lang = "";
5407
- const _hoisted_1$5 = { class: "action-container" };
5408
- const _hoisted_2$4 = {
5405
+ const _hoisted_1$6 = { class: "action-container" };
5406
+ const _hoisted_2$5 = {
5409
5407
  key: 0,
5410
5408
  class: "legendContainer"
5411
5409
  };
5412
- const _sfc_main$6 = {
5410
+ const _sfc_main$7 = {
5413
5411
  __name: "index",
5414
5412
  props: {
5415
5413
  legendConfig: {
@@ -6353,8 +6351,8 @@ const _sfc_main$6 = {
6353
6351
  ref: mapContainer,
6354
6352
  style: normalizeStyle(unref(controlsPositionVars))
6355
6353
  }, [
6356
- createElementVNode("div", _hoisted_1$5, [
6357
- __props.legendConfig.length ? (openBlock(), createElementBlock("div", _hoisted_2$4, [
6354
+ createElementVNode("div", _hoisted_1$6, [
6355
+ __props.legendConfig.length ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
6358
6356
  createVNode(_component_el_checkbox_group, {
6359
6357
  modelValue: legend.value,
6360
6358
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => legend.value = $event),
@@ -6381,28 +6379,28 @@ const _sfc_main$6 = {
6381
6379
  };
6382
6380
  }
6383
6381
  };
6384
- const SCTJMapViewer = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-ae15bc12"]]);
6382
+ const SCTJMapViewer = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-ae15bc12"]]);
6385
6383
  const index_vue_vue_type_style_index_0_scoped_761d2ab4_lang = "";
6386
- const _withScopeId$3 = (n) => (pushScopeId("data-v-761d2ab4"), n = n(), popScopeId(), n);
6387
- const _hoisted_1$4 = {
6384
+ const _withScopeId$4 = (n) => (pushScopeId("data-v-761d2ab4"), n = n(), popScopeId(), n);
6385
+ const _hoisted_1$5 = {
6388
6386
  key: 0,
6389
6387
  class: "btn-container"
6390
6388
  };
6391
- const _hoisted_2$3 = { class: "help-button-container" };
6392
- const _hoisted_3$3 = {
6389
+ const _hoisted_2$4 = { class: "help-button-container" };
6390
+ const _hoisted_3$4 = {
6393
6391
  key: 0,
6394
6392
  class: "layer-switch"
6395
6393
  };
6396
- const _hoisted_4$3 = { class: "search-container" };
6397
- const _hoisted_5$2 = { class: "place-suggestion-item" };
6398
- const _hoisted_6$2 = { class: "name" };
6394
+ const _hoisted_4$4 = { class: "search-container" };
6395
+ const _hoisted_5$3 = { class: "place-suggestion-item" };
6396
+ const _hoisted_6$3 = { class: "name" };
6399
6397
  const _hoisted_7$2 = { class: "address" };
6400
6398
  const _hoisted_8$2 = { class: "search-container" };
6401
6399
  const _hoisted_9$2 = { class: "delete-buttons" };
6402
6400
  const _hoisted_10$2 = { key: 0 };
6403
6401
  const _hoisted_11$1 = { key: 0 };
6404
6402
  const _hoisted_12$1 = { class: "dialog-footer" };
6405
- const _hoisted_13$1 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("div", { class: "operation-guide" }, [
6403
+ const _hoisted_13$1 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("div", { class: "operation-guide" }, [
6406
6404
  /* @__PURE__ */ createElementVNode("div", { class: "guide-section" }, [
6407
6405
  /* @__PURE__ */ createElementVNode("strong", null, "\u5F00\u59CB\u7ED8\u5236\uFF1A"),
6408
6406
  /* @__PURE__ */ createElementVNode("ul", null, [
@@ -6446,7 +6444,7 @@ const _hoisted_13$1 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ creat
6446
6444
  ])
6447
6445
  ], -1));
6448
6446
  const _hoisted_14$1 = { class: "dialog-footer" };
6449
- const _sfc_main$5 = {
6447
+ const _sfc_main$6 = {
6450
6448
  __name: "index",
6451
6449
  props: {
6452
6450
  title: {
@@ -7788,10 +7786,10 @@ const _sfc_main$5 = {
7788
7786
  ref_key: "mapContainer",
7789
7787
  ref: mapContainer
7790
7788
  }, null, 512),
7791
- !__props.disabled ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
7789
+ !__props.disabled ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
7792
7790
  createVNode(_component_el_card, { shadow: "never" }, {
7793
7791
  default: withCtx(() => [
7794
- createElementVNode("div", _hoisted_2$3, [
7792
+ createElementVNode("div", _hoisted_2$4, [
7795
7793
  createVNode(_component_el_button, {
7796
7794
  type: "primary",
7797
7795
  icon: unref(QuestionFilled),
@@ -7804,7 +7802,7 @@ const _sfc_main$5 = {
7804
7802
  _: 1
7805
7803
  }, 8, ["icon"])
7806
7804
  ]),
7807
- __props.changeMapType && !unref(isMobile) ? (openBlock(), createElementBlock("div", _hoisted_3$3, [
7805
+ __props.changeMapType && !unref(isMobile) ? (openBlock(), createElementBlock("div", _hoisted_3$4, [
7808
7806
  createVNode(_component_el_switch, {
7809
7807
  modelValue: isSatellite.value,
7810
7808
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isSatellite.value = $event),
@@ -7822,7 +7820,7 @@ const _sfc_main$5 = {
7822
7820
  ]),
7823
7821
  _: 1
7824
7822
  })) : createCommentVNode("", true),
7825
- createElementVNode("div", _hoisted_4$3, [
7823
+ createElementVNode("div", _hoisted_4$4, [
7826
7824
  createVNode(_component_el_autocomplete, {
7827
7825
  modelValue: searchKeyword.value,
7828
7826
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => searchKeyword.value = $event),
@@ -7833,8 +7831,8 @@ const _sfc_main$5 = {
7833
7831
  class: "place-search-input"
7834
7832
  }, {
7835
7833
  default: withCtx(({ item }) => [
7836
- createElementVNode("div", _hoisted_5$2, [
7837
- createElementVNode("div", _hoisted_6$2, toDisplayString(item.name), 1),
7834
+ createElementVNode("div", _hoisted_5$3, [
7835
+ createElementVNode("div", _hoisted_6$3, toDisplayString(item.name), 1),
7838
7836
  createElementVNode("div", _hoisted_7$2, toDisplayString(item.address), 1)
7839
7837
  ])
7840
7838
  ]),
@@ -7976,28 +7974,28 @@ const _sfc_main$5 = {
7976
7974
  };
7977
7975
  }
7978
7976
  };
7979
- const SCTJMapDrawingDialog = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-761d2ab4"]]);
7977
+ const SCTJMapDrawingDialog = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-761d2ab4"]]);
7980
7978
  const index_vue_vue_type_style_index_0_scoped_d0bea808_lang = "";
7981
- const _withScopeId$2 = (n) => (pushScopeId("data-v-d0bea808"), n = n(), popScopeId(), n);
7982
- const _hoisted_1$3 = {
7979
+ const _withScopeId$3 = (n) => (pushScopeId("data-v-d0bea808"), n = n(), popScopeId(), n);
7980
+ const _hoisted_1$4 = {
7983
7981
  key: 0,
7984
7982
  class: "btn-container"
7985
7983
  };
7986
- const _hoisted_2$2 = { class: "help-button-container" };
7987
- const _hoisted_3$2 = {
7984
+ const _hoisted_2$3 = { class: "help-button-container" };
7985
+ const _hoisted_3$3 = {
7988
7986
  key: 0,
7989
7987
  class: "layer-switch"
7990
7988
  };
7991
- const _hoisted_4$2 = { class: "search-container" };
7992
- const _hoisted_5$1 = { class: "place-suggestion-item" };
7993
- const _hoisted_6$1 = { class: "name" };
7989
+ const _hoisted_4$3 = { class: "search-container" };
7990
+ const _hoisted_5$2 = { class: "place-suggestion-item" };
7991
+ const _hoisted_6$2 = { class: "name" };
7994
7992
  const _hoisted_7$1 = { class: "address" };
7995
7993
  const _hoisted_8$1 = { class: "search-container" };
7996
7994
  const _hoisted_9$1 = { class: "delete-buttons" };
7997
7995
  const _hoisted_10$1 = { key: 0 };
7998
7996
  const _hoisted_11 = { key: 0 };
7999
7997
  const _hoisted_12 = { class: "dialog-footer" };
8000
- const _hoisted_13 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("div", { class: "operation-guide" }, [
7998
+ const _hoisted_13 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("div", { class: "operation-guide" }, [
8001
7999
  /* @__PURE__ */ createElementVNode("div", { class: "guide-section" }, [
8002
8000
  /* @__PURE__ */ createElementVNode("strong", null, "\u5F00\u59CB\u7ED8\u5236\uFF1A"),
8003
8001
  /* @__PURE__ */ createElementVNode("ul", null, [
@@ -8041,7 +8039,7 @@ const _hoisted_13 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createE
8041
8039
  ])
8042
8040
  ], -1));
8043
8041
  const _hoisted_14 = { class: "dialog-footer" };
8044
- const _sfc_main$4 = {
8042
+ const _sfc_main$5 = {
8045
8043
  __name: "index",
8046
8044
  props: {
8047
8045
  title: {
@@ -9588,10 +9586,10 @@ const _sfc_main$4 = {
9588
9586
  ref_key: "mapContainer",
9589
9587
  ref: mapContainer
9590
9588
  }, null, 512),
9591
- !__props.disabled ? (openBlock(), createElementBlock("div", _hoisted_1$3, [
9589
+ !__props.disabled ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
9592
9590
  createVNode(_component_el_card, { shadow: "never" }, {
9593
9591
  default: withCtx(() => [
9594
- createElementVNode("div", _hoisted_2$2, [
9592
+ createElementVNode("div", _hoisted_2$3, [
9595
9593
  createVNode(_component_el_button, {
9596
9594
  type: "primary",
9597
9595
  icon: unref(QuestionFilled),
@@ -9604,7 +9602,7 @@ const _sfc_main$4 = {
9604
9602
  _: 1
9605
9603
  }, 8, ["icon"])
9606
9604
  ]),
9607
- __props.changeMapType && !unref(isMobile) ? (openBlock(), createElementBlock("div", _hoisted_3$2, [
9605
+ __props.changeMapType && !unref(isMobile) ? (openBlock(), createElementBlock("div", _hoisted_3$3, [
9608
9606
  createVNode(_component_el_switch, {
9609
9607
  modelValue: isSatellite.value,
9610
9608
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isSatellite.value = $event),
@@ -9622,7 +9620,7 @@ const _sfc_main$4 = {
9622
9620
  ]),
9623
9621
  _: 1
9624
9622
  })) : createCommentVNode("", true),
9625
- createElementVNode("div", _hoisted_4$2, [
9623
+ createElementVNode("div", _hoisted_4$3, [
9626
9624
  createVNode(_component_el_autocomplete, {
9627
9625
  modelValue: searchKeyword.value,
9628
9626
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => searchKeyword.value = $event),
@@ -9633,8 +9631,8 @@ const _sfc_main$4 = {
9633
9631
  class: "place-search-input"
9634
9632
  }, {
9635
9633
  default: withCtx(({ item }) => [
9636
- createElementVNode("div", _hoisted_5$1, [
9637
- createElementVNode("div", _hoisted_6$1, toDisplayString(item.name), 1),
9634
+ createElementVNode("div", _hoisted_5$2, [
9635
+ createElementVNode("div", _hoisted_6$2, toDisplayString(item.name), 1),
9638
9636
  createElementVNode("div", _hoisted_7$1, toDisplayString(item.address), 1)
9639
9637
  ])
9640
9638
  ]),
@@ -9807,10 +9805,10 @@ const _sfc_main$4 = {
9807
9805
  };
9808
9806
  }
9809
9807
  };
9810
- const SCTJBusinessMapDrawingDialog = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-d0bea808"]]);
9808
+ const SCTJBusinessMapDrawingDialog = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-d0bea808"]]);
9811
9809
  const index_vue_vue_type_style_index_0_scoped_87a3abe5_lang = "";
9812
- const _hoisted_1$2 = { class: "controls" };
9813
- const _sfc_main$3 = {
9810
+ const _hoisted_1$3 = { class: "controls" };
9811
+ const _sfc_main$4 = {
9814
9812
  __name: "index",
9815
9813
  props: {
9816
9814
  center: {
@@ -10076,7 +10074,7 @@ const _sfc_main$3 = {
10076
10074
  ref: mapContainerRef,
10077
10075
  class: "map-container"
10078
10076
  }, null, 512),
10079
- createElementVNode("div", _hoisted_1$2, [
10077
+ createElementVNode("div", _hoisted_1$3, [
10080
10078
  createVNode(_component_el_button_group, null, {
10081
10079
  default: withCtx(() => [
10082
10080
  createVNode(_component_el_button, {
@@ -10141,17 +10139,17 @@ const _sfc_main$3 = {
10141
10139
  };
10142
10140
  }
10143
10141
  };
10144
- const SCTJTrackPlayback = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-87a3abe5"]]);
10142
+ const SCTJTrackPlayback = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-87a3abe5"]]);
10145
10143
  const BimViewer_vue_vue_type_style_index_0_scoped_5d1b1a03_lang = "";
10146
- const _withScopeId$1 = (n) => (pushScopeId("data-v-5d1b1a03"), n = n(), popScopeId(), n);
10147
- const _hoisted_1$1 = {
10144
+ const _withScopeId$2 = (n) => (pushScopeId("data-v-5d1b1a03"), n = n(), popScopeId(), n);
10145
+ const _hoisted_1$2 = {
10148
10146
  key: 0,
10149
10147
  class: "error-overlay"
10150
10148
  };
10151
- const _hoisted_2$1 = { class: "error-content" };
10152
- const _hoisted_3$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("div", { class: "error-icon" }, "\u26A0\uFE0F", -1));
10153
- const _hoisted_4$1 = { class: "error-text" };
10154
- const _sfc_main$2 = {
10149
+ const _hoisted_2$2 = { class: "error-content" };
10150
+ const _hoisted_3$2 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("div", { class: "error-icon" }, "\u26A0\uFE0F", -1));
10151
+ const _hoisted_4$2 = { class: "error-text" };
10152
+ const _sfc_main$3 = {
10155
10153
  __name: "BimViewer",
10156
10154
  props: {
10157
10155
  viewToken: {
@@ -10520,10 +10518,10 @@ const _sfc_main$2 = {
10520
10518
  ref_key: "bimContainer",
10521
10519
  ref: bimContainer
10522
10520
  }, [
10523
- errorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
10524
- createElementVNode("div", _hoisted_2$1, [
10525
- _hoisted_3$1,
10526
- createElementVNode("div", _hoisted_4$1, toDisplayString(errorMessage.value), 1),
10521
+ errorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
10522
+ createElementVNode("div", _hoisted_2$2, [
10523
+ _hoisted_3$2,
10524
+ createElementVNode("div", _hoisted_4$2, toDisplayString(errorMessage.value), 1),
10527
10525
  createVNode(_component_el_button, {
10528
10526
  type: "primary",
10529
10527
  size: "small",
@@ -10542,9 +10540,9 @@ const _sfc_main$2 = {
10542
10540
  };
10543
10541
  }
10544
10542
  };
10545
- const SCTJBimViewer = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-5d1b1a03"]]);
10543
+ const SCTJBimViewer = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-5d1b1a03"]]);
10546
10544
  const DwgViewer_vue_vue_type_style_index_0_scoped_ab9c8ebd_lang = "";
10547
- const _sfc_main$1 = {
10545
+ const _sfc_main$2 = {
10548
10546
  __name: "DwgViewer",
10549
10547
  props: {
10550
10548
  viewToken: {
@@ -10782,20 +10780,20 @@ const _sfc_main$1 = {
10782
10780
  };
10783
10781
  }
10784
10782
  };
10785
- const SCTJDwgViewer = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-ab9c8ebd"]]);
10783
+ const SCTJDwgViewer = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-ab9c8ebd"]]);
10786
10784
  const ModelCompare_vue_vue_type_style_index_0_scoped_3019374b_lang = "";
10787
- const _withScopeId = (n) => (pushScopeId("data-v-3019374b"), n = n(), popScopeId(), n);
10788
- const _hoisted_1 = { class: "panel-title" };
10789
- const _hoisted_2 = { class: "panel prev" };
10790
- const _hoisted_3 = { class: "panel-title" };
10791
- const _hoisted_4 = { class: "compare-content" };
10792
- const _hoisted_5 = { class: "component-list" };
10793
- const _hoisted_6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "tit" }, "\u4FEE\u6539\u6784\u4EF6\u5217\u8868", -1));
10785
+ const _withScopeId$1 = (n) => (pushScopeId("data-v-3019374b"), n = n(), popScopeId(), n);
10786
+ const _hoisted_1$1 = { class: "panel-title" };
10787
+ const _hoisted_2$1 = { class: "panel prev" };
10788
+ const _hoisted_3$1 = { class: "panel-title" };
10789
+ const _hoisted_4$1 = { class: "compare-content" };
10790
+ const _hoisted_5$1 = { class: "component-list" };
10791
+ const _hoisted_6$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("div", { class: "tit" }, "\u4FEE\u6539\u6784\u4EF6\u5217\u8868", -1));
10794
10792
  const _hoisted_7 = { class: "type-mode" };
10795
10793
  const _hoisted_8 = ["onClick"];
10796
10794
  const _hoisted_9 = ["data-oid", "onClick"];
10797
- const _hoisted_10 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("i", { class: "check checked" }, null, -1));
10798
- const _sfc_main = {
10795
+ const _hoisted_10 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("i", { class: "check checked" }, null, -1));
10796
+ const _sfc_main$1 = {
10799
10797
  __name: "ModelCompare",
10800
10798
  props: {
10801
10799
  prevToken: {
@@ -11137,7 +11135,7 @@ const _sfc_main = {
11137
11135
  ref: latestRef,
11138
11136
  class: "panel latest"
11139
11137
  }, [
11140
- createElementVNode("div", _hoisted_1, [
11138
+ createElementVNode("div", _hoisted_1$1, [
11141
11139
  createTextVNode("\u5F53\u524D\u6A21\u578B\uFF1A"),
11142
11140
  createElementVNode("span", null, toDisplayString(latestVersionLabel.value), 1)
11143
11141
  ])
@@ -11154,8 +11152,8 @@ const _sfc_main = {
11154
11152
  class: "compare-col"
11155
11153
  }, {
11156
11154
  default: withCtx(() => [
11157
- createElementVNode("div", _hoisted_2, [
11158
- createElementVNode("div", _hoisted_3, [
11155
+ createElementVNode("div", _hoisted_2$1, [
11156
+ createElementVNode("div", _hoisted_3$1, [
11159
11157
  createElementVNode("span", null, "\u5BF9\u6BD4\u6A21\u578B\uFF1A" + toDisplayString(prevVersionLabel.value), 1)
11160
11158
  ]),
11161
11159
  createElementVNode("div", {
@@ -11170,9 +11168,9 @@ const _sfc_main = {
11170
11168
  ]),
11171
11169
  _: 1
11172
11170
  }),
11173
- createElementVNode("div", _hoisted_4, [
11174
- createElementVNode("div", _hoisted_5, [
11175
- _hoisted_6,
11171
+ createElementVNode("div", _hoisted_4$1, [
11172
+ createElementVNode("div", _hoisted_5$1, [
11173
+ _hoisted_6$1,
11176
11174
  createElementVNode("div", _hoisted_7, [
11177
11175
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(sections), (section) => {
11178
11176
  return openBlock(), createElementBlock("div", {
@@ -11218,32 +11216,1475 @@ const _sfc_main = {
11218
11216
  };
11219
11217
  }
11220
11218
  };
11221
- const SCTJModelCompare = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3019374b"]]);
11219
+ const SCTJModelCompare = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-3019374b"]]);
11220
+ function useBimfaceGIS(options = {}) {
11221
+ const { onModelTransformEnd } = options;
11222
+ const viewer = ref$1(null);
11223
+ const app = ref$1(null);
11224
+ const editor = ref$1(null);
11225
+ const layerManager = ref$1(null);
11226
+ const isLoaded = ref$1(false);
11227
+ const isLoading = ref$1(true);
11228
+ const error = ref$1(null);
11229
+ let registeredEvents = [];
11230
+ const initViewer = async (domElement, viewToken, config = {}) => {
11231
+ return new Promise(async (resolve, reject) => {
11232
+ if (!domElement) {
11233
+ reject(new Error("DOM\u5143\u7D20\u4E0D\u80FD\u4E3A\u7A7A"));
11234
+ return;
11235
+ }
11236
+ if (!viewToken) {
11237
+ reject(new Error("ViewToken\u4E0D\u80FD\u4E3A\u7A7A"));
11238
+ return;
11239
+ }
11240
+ isLoading.value = true;
11241
+ error.value = null;
11242
+ const loaderConfig = new window.BimfaceSDKLoaderConfig();
11243
+ loaderConfig.viewToken = viewToken;
11244
+ window.BimfaceSDKLoader.load(
11245
+ loaderConfig,
11246
+ (viewMetaData) => {
11247
+ try {
11248
+ const webAppConfig = new window.Glodon.Bimface.Earth.Application.WebApplicationGISConfig();
11249
+ webAppConfig.domElement = domElement;
11250
+ if (config.disableMapOcclusion !== void 0) {
11251
+ webAppConfig.disableMapOcclusion = config.disableMapOcclusion;
11252
+ } else {
11253
+ webAppConfig.disableMapOcclusion = true;
11254
+ }
11255
+ app.value = new window.Glodon.Bimface.Earth.Application.WebApplicationGIS(webAppConfig);
11256
+ viewer.value = app.value.getViewer();
11257
+ console.log("viewer.value", viewer.value);
11258
+ addEventListener(
11259
+ window.Glodon.Bimface.Earth.Viewer.ViewerGISEvent.SceneAdded,
11260
+ () => {
11261
+ console.log("\u573A\u666F\u6DFB\u52A0\u5B8C\u6210");
11262
+ layerManager.value = viewer.value.getLayerManager();
11263
+ isLoaded.value = true;
11264
+ isLoading.value = false;
11265
+ handleSceneAdded();
11266
+ resolve({ viewer: viewer.value, app: app.value, layerManager: layerManager.value });
11267
+ },
11268
+ viewer.value
11269
+ );
11270
+ viewer.value.addScene(viewToken);
11271
+ } catch (err) {
11272
+ error.value = err;
11273
+ isLoading.value = false;
11274
+ reject(err);
11275
+ }
11276
+ },
11277
+ (loadError) => {
11278
+ error.value = loadError;
11279
+ isLoading.value = false;
11280
+ reject(loadError);
11281
+ }
11282
+ );
11283
+ });
11284
+ };
11285
+ const handleResize = () => {
11286
+ if (viewer.value) {
11287
+ viewer.value.resize(
11288
+ document.documentElement.clientWidth,
11289
+ document.documentElement.clientHeight
11290
+ );
11291
+ }
11292
+ };
11293
+ const resizeHandler = ref$1(null);
11294
+ const handleSceneAdded = () => {
11295
+ if (!viewer.value)
11296
+ return;
11297
+ resizeHandler.value = handleResize;
11298
+ window.addEventListener("resize", resizeHandler.value);
11299
+ };
11300
+ const getLayer = (layerId) => {
11301
+ if (!layerManager.value) {
11302
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11303
+ return null;
11304
+ }
11305
+ return layerManager.value.getLayer(layerId);
11306
+ };
11307
+ const getAllLayers = () => {
11308
+ if (!layerManager.value) {
11309
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11310
+ return [];
11311
+ }
11312
+ const rootLayer = layerManager.value.getRootLayer();
11313
+ if (!rootLayer)
11314
+ return [];
11315
+ return rootLayer.children || [];
11316
+ };
11317
+ const getBIMLayers = () => {
11318
+ const allLayers = getAllLayers();
11319
+ console.log("\u6240\u6709\u56FE\u5C42:", allLayers);
11320
+ return allLayers.filter((layer) => {
11321
+ const type = layer.typeName;
11322
+ return type === "BIMLayer";
11323
+ });
11324
+ };
11325
+ const getLayerByType = (typeName) => {
11326
+ const allLayers = getAllLayers();
11327
+ return allLayers.filter((layer) => {
11328
+ const type = layer.typeName;
11329
+ return type === typeName;
11330
+ });
11331
+ };
11332
+ const getRootLayer = () => {
11333
+ if (!layerManager.value) {
11334
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11335
+ return null;
11336
+ }
11337
+ return layerManager.value.getRootLayer();
11338
+ };
11339
+ const addGroupLayer = (layerConfig) => {
11340
+ var _a;
11341
+ if (!layerManager.value) {
11342
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11343
+ return null;
11344
+ }
11345
+ const option = {
11346
+ id: layerConfig.id,
11347
+ name: layerConfig.name || layerConfig.id
11348
+ };
11349
+ const groupLayer = new window.Glodon.Bimface.Earth.Layer.GroupLayer(option);
11350
+ const parentId = layerConfig.parentId || ((_a = layerManager.value.getRootLayer()) == null ? void 0 : _a.getId());
11351
+ layerManager.value.addLayer(groupLayer, parentId);
11352
+ return groupLayer;
11353
+ };
11354
+ const addBIMLayer = (layerConfig) => {
11355
+ var _a;
11356
+ if (!layerManager.value) {
11357
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11358
+ return null;
11359
+ }
11360
+ const option = {
11361
+ id: layerConfig.id,
11362
+ name: layerConfig.name || layerConfig.id,
11363
+ viewToken: layerConfig.viewToken
11364
+ };
11365
+ if (layerConfig.location) {
11366
+ if (typeof layerConfig.location === "string") {
11367
+ const parts = layerConfig.location.split(",");
11368
+ if (parts.length >= 3) {
11369
+ option.location = {
11370
+ lon: parseFloat(parts[0]),
11371
+ lat: parseFloat(parts[1]),
11372
+ alt: parseFloat(parts[2])
11373
+ };
11374
+ }
11375
+ } else if (typeof layerConfig.location === "object") {
11376
+ option.location = layerConfig.location;
11377
+ }
11378
+ }
11379
+ const bimLayer = new window.Glodon.Bimface.Earth.Layer.BIMLayer(option);
11380
+ console.log("bimLayer", bimLayer);
11381
+ const transformation = getTransformationFromConfig(layerConfig);
11382
+ const parentId = layerConfig.parentId || ((_a = layerManager.value.getRootLayer()) == null ? void 0 : _a.getId());
11383
+ layerManager.value.addLayer(bimLayer, parentId);
11384
+ return {
11385
+ layer: bimLayer,
11386
+ transformation
11387
+ };
11388
+ };
11389
+ const getCenterFromBoundingBox = (bbox) => {
11390
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V;
11391
+ if (!bbox)
11392
+ return { x: 0, y: 0, z: 0 };
11393
+ if (bbox.center && typeof bbox.center === "object") {
11394
+ return {
11395
+ x: Number((_b = (_a = bbox.center.x) != null ? _a : bbox.center.lon) != null ? _b : bbox.center.longitude) || 0,
11396
+ y: Number((_d = (_c = bbox.center.y) != null ? _c : bbox.center.lat) != null ? _d : bbox.center.latitude) || 0,
11397
+ z: Number((_f = (_e = bbox.center.z) != null ? _e : bbox.center.alt) != null ? _f : bbox.center.altitude) || 0
11398
+ };
11399
+ }
11400
+ const minX = Number(
11401
+ (_m = (_k = (_i = (_g = bbox.minX) != null ? _g : bbox.xmin) != null ? _i : (_h = bbox.min) == null ? void 0 : _h.x) != null ? _k : (_j = bbox.min) == null ? void 0 : _j.lon) != null ? _m : (_l = bbox.min) == null ? void 0 : _l.longitude
11402
+ );
11403
+ const maxX = Number(
11404
+ (_t = (_r = (_p = (_n = bbox.maxX) != null ? _n : bbox.xmax) != null ? _p : (_o = bbox.max) == null ? void 0 : _o.x) != null ? _r : (_q = bbox.max) == null ? void 0 : _q.lon) != null ? _t : (_s = bbox.max) == null ? void 0 : _s.longitude
11405
+ );
11406
+ const minY = Number(
11407
+ (_A = (_y = (_w = (_u = bbox.minY) != null ? _u : bbox.ymin) != null ? _w : (_v = bbox.min) == null ? void 0 : _v.y) != null ? _y : (_x = bbox.min) == null ? void 0 : _x.lat) != null ? _A : (_z = bbox.min) == null ? void 0 : _z.latitude
11408
+ );
11409
+ const maxY = Number(
11410
+ (_H = (_F = (_D = (_B = bbox.maxY) != null ? _B : bbox.ymax) != null ? _D : (_C = bbox.max) == null ? void 0 : _C.y) != null ? _F : (_E = bbox.max) == null ? void 0 : _E.lat) != null ? _H : (_G = bbox.max) == null ? void 0 : _G.latitude
11411
+ );
11412
+ const minZ = Number(
11413
+ (_O = (_M = (_K = (_I = bbox.minZ) != null ? _I : bbox.zmin) != null ? _K : (_J = bbox.min) == null ? void 0 : _J.z) != null ? _M : (_L = bbox.min) == null ? void 0 : _L.alt) != null ? _O : (_N = bbox.min) == null ? void 0 : _N.altitude
11414
+ );
11415
+ const maxZ = Number(
11416
+ (_V = (_T = (_R = (_P = bbox.maxZ) != null ? _P : bbox.zmax) != null ? _R : (_Q = bbox.max) == null ? void 0 : _Q.z) != null ? _T : (_S = bbox.max) == null ? void 0 : _S.alt) != null ? _V : (_U = bbox.max) == null ? void 0 : _U.altitude
11417
+ );
11418
+ return {
11419
+ x: Number.isFinite(minX) && Number.isFinite(maxX) ? (minX + maxX) / 2 : 0,
11420
+ y: Number.isFinite(minY) && Number.isFinite(maxY) ? (minY + maxY) / 2 : 0,
11421
+ z: Number.isFinite(minZ) && Number.isFinite(maxZ) ? (minZ + maxZ) / 2 : 0
11422
+ };
11423
+ };
11424
+ const buildLayerTransformation = (zoom = 1, rotate = 0, center = { x: 0, y: 0, z: 0 }) => {
11425
+ const scale = zoom !== void 0 && zoom !== null ? Number(zoom) : 1;
11426
+ const rotationDeg = rotate !== void 0 && rotate !== null ? Number(rotate) : 0;
11427
+ const rotation = rotationDeg * (Math.PI / 180);
11428
+ const cosR = Math.cos(rotation);
11429
+ const sinR = Math.sin(rotation);
11430
+ const a11 = scale * cosR;
11431
+ const a12 = -scale * sinR;
11432
+ const a21 = scale * sinR;
11433
+ const a22 = scale * cosR;
11434
+ const tx = center.x - (a11 * center.x + a12 * center.y);
11435
+ const ty = center.y - (a21 * center.x + a22 * center.y);
11436
+ return [
11437
+ a11,
11438
+ a21,
11439
+ 0,
11440
+ 0,
11441
+ a12,
11442
+ a22,
11443
+ 0,
11444
+ 0,
11445
+ 0,
11446
+ 0,
11447
+ 1,
11448
+ 0,
11449
+ tx,
11450
+ ty,
11451
+ 0,
11452
+ 1
11453
+ ];
11454
+ };
11455
+ const getTransformationFromConfig = (layerConfig) => {
11456
+ if (layerConfig.zoom === void 0 && layerConfig.rotate === void 0) {
11457
+ return null;
11458
+ }
11459
+ return buildLayerTransformation(layerConfig.zoom, layerConfig.rotate);
11460
+ };
11461
+ const updateLayerTransformation = (layerId, zoom, rotate) => {
11462
+ var _a;
11463
+ const layer = getLayer(layerId);
11464
+ if (!layer) {
11465
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42:", layerId);
11466
+ return false;
11467
+ }
11468
+ const beforeBBox = (_a = layer.getBoundingBox) == null ? void 0 : _a.call(layer);
11469
+ const beforeCenter = getCenterFromBoundingBox(beforeBBox);
11470
+ const transformation = buildLayerTransformation(zoom, rotate, { x: 0, y: 0, z: 0 });
11471
+ layer.setTransformation(transformation);
11472
+ setTimeout(() => {
11473
+ var _a2, _b;
11474
+ const afterBBox = (_a2 = layer.getBoundingBox) == null ? void 0 : _a2.call(layer);
11475
+ const afterCenter = getCenterFromBoundingBox(afterBBox);
11476
+ const delta = {
11477
+ x: (afterCenter.x || 0) - (beforeCenter.x || 0),
11478
+ y: (afterCenter.y || 0) - (beforeCenter.y || 0),
11479
+ z: (afterCenter.z || 0) - (beforeCenter.z || 0)
11480
+ };
11481
+ if (Number.isFinite(delta.x) && Number.isFinite(delta.y) && (Math.abs(delta.x) > 1e-9 || Math.abs(delta.y) > 1e-9)) {
11482
+ const currentLocation = (_b = layer.getLocation) == null ? void 0 : _b.call(layer);
11483
+ if (currentLocation && Number.isFinite(currentLocation.lon) && Number.isFinite(currentLocation.lat)) {
11484
+ const correctedLocation = {
11485
+ lon: currentLocation.lon - delta.x,
11486
+ lat: currentLocation.lat - delta.y,
11487
+ alt: Number.isFinite(currentLocation.alt) ? currentLocation.alt - (delta.z || 0) : currentLocation.alt
11488
+ };
11489
+ layer.setLocation(correctedLocation);
11490
+ } else {
11491
+ console.warn(`[BIM-GIS] layer=${layerId} center correction skipped: getLocation unavailable`);
11492
+ }
11493
+ }
11494
+ }, 0);
11495
+ return true;
11496
+ };
11497
+ const updateLayerLocation = (layerId, location) => {
11498
+ const layer = getLayer(layerId);
11499
+ if (!layer) {
11500
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42:", layerId);
11501
+ return false;
11502
+ }
11503
+ if (typeof location === "string") {
11504
+ const parts = location.split(",");
11505
+ if (parts.length >= 3) {
11506
+ location = {
11507
+ lon: parseFloat(parts[0]),
11508
+ lat: parseFloat(parts[1]),
11509
+ alt: parseFloat(parts[2])
11510
+ };
11511
+ }
11512
+ }
11513
+ layer.setLocation(location);
11514
+ return true;
11515
+ };
11516
+ const getLayerLocation = (layerId) => {
11517
+ var _a, _b;
11518
+ const layer = getLayer(layerId);
11519
+ if (!layer) {
11520
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42:", layerId);
11521
+ return null;
11522
+ }
11523
+ return (_b = (_a = layer.getLocation) == null ? void 0 : _a.call(layer)) != null ? _b : null;
11524
+ };
11525
+ const addDrawingLayer = (layerConfig) => {
11526
+ var _a;
11527
+ if (!layerManager.value) {
11528
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11529
+ return null;
11530
+ }
11531
+ const option = {
11532
+ id: layerConfig.id,
11533
+ name: layerConfig.name || layerConfig.id,
11534
+ viewToken: layerConfig.viewToken
11535
+ };
11536
+ const drawingLayer = new window.Glodon.Bimface.Earth.Layer.DrawingLayer(option);
11537
+ const parentId = layerConfig.parentId || ((_a = layerManager.value.getRootLayer()) == null ? void 0 : _a.getId());
11538
+ layerManager.value.addLayer(drawingLayer, parentId);
11539
+ return drawingLayer;
11540
+ };
11541
+ const addExternalObjectLayer = (layerConfig) => {
11542
+ var _a;
11543
+ if (!layerManager.value) {
11544
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11545
+ return null;
11546
+ }
11547
+ const option = {
11548
+ id: layerConfig.id,
11549
+ name: layerConfig.name || layerConfig.id
11550
+ };
11551
+ const extObjLayer = new window.Glodon.Bimface.Earth.Layer.ExternalObjectLayer(option);
11552
+ const parentId = layerConfig.parentId || ((_a = layerManager.value.getRootLayer()) == null ? void 0 : _a.getId());
11553
+ layerManager.value.addLayer(extObjLayer, parentId);
11554
+ return extObjLayer;
11555
+ };
11556
+ const addTilesetLayer = (layerConfig) => {
11557
+ var _a;
11558
+ if (!layerManager.value) {
11559
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11560
+ return null;
11561
+ }
11562
+ const option = {
11563
+ id: layerConfig.id,
11564
+ name: layerConfig.name || layerConfig.id,
11565
+ viewToken: layerConfig.viewToken
11566
+ };
11567
+ const tilesetLayer = new window.Glodon.Bimface.Earth.Layer.TilesetLayer(option);
11568
+ const parentId = layerConfig.parentId || ((_a = layerManager.value.getRootLayer()) == null ? void 0 : _a.getId());
11569
+ layerManager.value.addLayer(tilesetLayer, parentId);
11570
+ return tilesetLayer;
11571
+ };
11572
+ const addTileLayer = (layerConfig) => {
11573
+ var _a;
11574
+ if (!layerManager.value) {
11575
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11576
+ return null;
11577
+ }
11578
+ const option = {
11579
+ id: layerConfig.id,
11580
+ name: layerConfig.name || layerConfig.id,
11581
+ tileUrl: layerConfig.tileUrl
11582
+ };
11583
+ const tileLayer = new window.Glodon.Bimface.Earth.Layer.TileLayer(option);
11584
+ const parentId = layerConfig.parentId || ((_a = layerManager.value.getRootLayer()) == null ? void 0 : _a.getId());
11585
+ layerManager.value.addLayer(tileLayer, parentId);
11586
+ return tileLayer;
11587
+ };
11588
+ const addTerrainLayer = (layerConfig) => {
11589
+ var _a;
11590
+ if (!layerManager.value) {
11591
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11592
+ return null;
11593
+ }
11594
+ const option = {
11595
+ id: layerConfig.id,
11596
+ name: layerConfig.name || layerConfig.id,
11597
+ terrainUrl: layerConfig.terrainUrl
11598
+ };
11599
+ const terrainLayer = new window.Glodon.Bimface.Earth.Layer.TerrainLayer(option);
11600
+ const parentId = layerConfig.parentId || ((_a = layerManager.value.getRootLayer()) == null ? void 0 : _a.getId());
11601
+ layerManager.value.addLayer(terrainLayer, parentId);
11602
+ return terrainLayer;
11603
+ };
11604
+ const removeLayer = (layerId) => {
11605
+ if (!layerManager.value) {
11606
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11607
+ return;
11608
+ }
11609
+ const layer = layerManager.value.getLayer(layerId);
11610
+ if (layer) {
11611
+ layerManager.value.removeLayer(layerId);
11612
+ }
11613
+ };
11614
+ const showLayers = (layerIds) => {
11615
+ if (!layerManager.value) {
11616
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11617
+ return;
11618
+ }
11619
+ layerManager.value.showLayers(layerIds);
11620
+ };
11621
+ const hideLayers = (layerIds) => {
11622
+ if (!layerManager.value) {
11623
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11624
+ return;
11625
+ }
11626
+ const layer = layerManager.value.getLayer(layerIds[0]);
11627
+ if (layer && layer.hide) {
11628
+ layer.hide();
11629
+ }
11630
+ };
11631
+ const zoomToLayer = (layerId, callback) => {
11632
+ if (!layerManager.value) {
11633
+ console.warn("\u56FE\u5C42\u7BA1\u7406\u5668\u672A\u521D\u59CB\u5316");
11634
+ return;
11635
+ }
11636
+ console.log("layerId", layerId);
11637
+ layerManager.value.zoomToLayer(layerId, callback);
11638
+ };
11639
+ const getComponentManager = (layerId) => {
11640
+ const layer = getLayer(layerId);
11641
+ if (layer && layer.getComponentManager) {
11642
+ return layer.getComponentManager();
11643
+ }
11644
+ return null;
11645
+ };
11646
+ const selectComponents = (layerId, condition) => {
11647
+ const componentManager = getComponentManager(layerId);
11648
+ if (!componentManager) {
11649
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11650
+ return;
11651
+ }
11652
+ componentManager.select(condition);
11653
+ };
11654
+ const clearSelection = (layerId) => {
11655
+ const componentManager = getComponentManager(layerId);
11656
+ if (!componentManager) {
11657
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11658
+ return;
11659
+ }
11660
+ componentManager.clearSelection();
11661
+ };
11662
+ const isolateComponents = (layerId, condition, state = "MakeOthersTranslucent") => {
11663
+ const componentManager = getComponentManager(layerId);
11664
+ if (!componentManager) {
11665
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11666
+ return;
11667
+ }
11668
+ componentManager.isolate(condition, state);
11669
+ };
11670
+ const clearIsolation = (layerId) => {
11671
+ const componentManager = getComponentManager(layerId);
11672
+ if (!componentManager) {
11673
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11674
+ return;
11675
+ }
11676
+ componentManager.clearIsolation();
11677
+ };
11678
+ const overrideComponentColor = (layerId, condition, color = {}) => {
11679
+ var _a;
11680
+ const componentManager = getComponentManager(layerId);
11681
+ if (!componentManager) {
11682
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11683
+ return;
11684
+ }
11685
+ const glodonColor = new window.Glodon.Web.Graphics.Color(color.r, color.g, color.b, (_a = color.a) != null ? _a : 1);
11686
+ componentManager.overrideColor(condition, glodonColor);
11687
+ };
11688
+ const restoreComponentColor = (layerId, condition) => {
11689
+ const componentManager = getComponentManager(layerId);
11690
+ if (!componentManager) {
11691
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11692
+ return;
11693
+ }
11694
+ componentManager.restoreColor(condition);
11695
+ };
11696
+ const blinkComponents = (layerId, condition, color, interval, times) => {
11697
+ var _a;
11698
+ const componentManager = getComponentManager(layerId);
11699
+ if (!componentManager) {
11700
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11701
+ return;
11702
+ }
11703
+ const glodonColor = color ? new window.Glodon.Web.Graphics.Color(color.r, color.g, color.b, (_a = color.a) != null ? _a : 1) : new window.Glodon.Web.Graphics.Color(255, 0, 0, 1);
11704
+ componentManager.blink(condition, glodonColor, interval, times);
11705
+ };
11706
+ const clearBlinkComponents = (layerId, condition) => {
11707
+ const componentManager = getComponentManager(layerId);
11708
+ if (!componentManager) {
11709
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11710
+ return;
11711
+ }
11712
+ if (condition) {
11713
+ componentManager.clearBlinkComponents(condition);
11714
+ } else {
11715
+ componentManager.clearAllBlinkComponents();
11716
+ }
11717
+ };
11718
+ const setGlowEffect = (layerId, condition, option) => {
11719
+ var _a, _b, _c;
11720
+ const componentManager = getComponentManager(layerId);
11721
+ if (!componentManager) {
11722
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11723
+ return;
11724
+ }
11725
+ const glowOption = {
11726
+ type: option.type || "body",
11727
+ color: new window.Glodon.Web.Graphics.Color(option.color.r, option.color.g, option.color.b, (_a = option.color.a) != null ? _a : 1),
11728
+ intensity: (_b = option.intensity) != null ? _b : 0.3,
11729
+ spread: (_c = option.spread) != null ? _c : 3
11730
+ };
11731
+ componentManager.glow(condition, glowOption);
11732
+ };
11733
+ const clearGlowEffect = (layerId, condition) => {
11734
+ const componentManager = getComponentManager(layerId);
11735
+ if (!componentManager) {
11736
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11737
+ return;
11738
+ }
11739
+ if (condition) {
11740
+ componentManager.clearGlowEffect(condition);
11741
+ }
11742
+ };
11743
+ const hideComponents = (layerId, condition) => {
11744
+ const componentManager = getComponentManager(layerId);
11745
+ if (!componentManager) {
11746
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11747
+ return;
11748
+ }
11749
+ componentManager.hide(condition);
11750
+ };
11751
+ const showComponents = (layerId, condition) => {
11752
+ const componentManager = getComponentManager(layerId);
11753
+ if (!componentManager) {
11754
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11755
+ return;
11756
+ }
11757
+ componentManager.show(condition);
11758
+ };
11759
+ const getObjectDataById = (layerId, componentId) => {
11760
+ const componentManager = getComponentManager(layerId);
11761
+ if (!componentManager) {
11762
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11763
+ return null;
11764
+ }
11765
+ return componentManager.getObjectDataById(componentId);
11766
+ };
11767
+ const getBoundingBox = (layerId, condition) => {
11768
+ const componentManager = getComponentManager(layerId);
11769
+ if (!componentManager) {
11770
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
11771
+ return null;
11772
+ }
11773
+ const safeCondition = condition != null ? condition : {};
11774
+ try {
11775
+ return componentManager.getBoundingBox(safeCondition);
11776
+ } catch (err) {
11777
+ console.warn("\u83B7\u53D6\u6784\u4EF6\u5305\u56F4\u76D2\u5931\u8D25:", layerId, err);
11778
+ return null;
11779
+ }
11780
+ };
11781
+ const addEventListener = (eventType, callback, inctance) => {
11782
+ if (!inctance) {
11783
+ console.warn("inctance\u672A\u521D\u59CB\u5316");
11784
+ return;
11785
+ }
11786
+ inctance.addEventListener(eventType, callback);
11787
+ registeredEvents.push({ eventType, callback, inctance });
11788
+ };
11789
+ const removeEventListener = (eventType, callback, inctance) => {
11790
+ if (!inctance) {
11791
+ console.warn("inctance\u672A\u521D\u59CB\u5316");
11792
+ return;
11793
+ }
11794
+ inctance.removeEventListener(eventType, callback);
11795
+ registeredEvents = registeredEvents.filter((e) => e.eventType !== eventType);
11796
+ };
11797
+ const getUIManager = () => {
11798
+ if (!app.value) {
11799
+ console.warn("App\u672A\u521D\u59CB\u5316");
11800
+ return null;
11801
+ }
11802
+ return app.value.getUIManager();
11803
+ };
11804
+ const getToolbar = (toolbarName) => {
11805
+ const uiMng = getUIManager();
11806
+ if (!uiMng)
11807
+ return null;
11808
+ return uiMng.getToolbar(toolbarName);
11809
+ };
11810
+ const getEffectManager = () => {
11811
+ if (!app.value) {
11812
+ console.warn("App\u672A\u521D\u59CB\u5316");
11813
+ return null;
11814
+ }
11815
+ return app.value.getEffectManager();
11816
+ };
11817
+ const addPrismPoint = (config) => {
11818
+ const effectManager = getEffectManager();
11819
+ if (!effectManager)
11820
+ return null;
11821
+ const prismPointConfig = new window.Glodon.Bimface.Plugins.Anchor.PrismPointConfig();
11822
+ if (config.position)
11823
+ prismPointConfig.position = config.position;
11824
+ if (config.size !== void 0)
11825
+ prismPointConfig.size = config.size;
11826
+ if (config.duration !== void 0)
11827
+ prismPointConfig.duration = config.duration;
11828
+ if (config.color)
11829
+ prismPointConfig.color = new window.Glodon.Web.Graphics.Color(config.color);
11830
+ if (config.wireframeColor)
11831
+ prismPointConfig.wireframeColor = new window.Glodon.Web.Graphics.Color(config.wireframeColor);
11832
+ const prismPoint = new window.Glodon.Bimface.Plugins.Anchor.PrismPoint(prismPointConfig);
11833
+ effectManager.addObject(prismPoint);
11834
+ return prismPoint;
11835
+ };
11836
+ const addAnchor = (config) => {
11837
+ if (!viewer.value) {
11838
+ console.warn("Viewer\u672A\u521D\u59CB\u5316");
11839
+ return null;
11840
+ }
11841
+ const anchorConfig = new window.Glodon.Bimface.Earth.Plugins.Animation.AnchorConfig();
11842
+ anchorConfig.viewer = viewer.value;
11843
+ if (config.size !== void 0)
11844
+ anchorConfig.size = config.size;
11845
+ if (config.location)
11846
+ anchorConfig.location = config.location;
11847
+ if (config.title)
11848
+ anchorConfig.title = config.title;
11849
+ if (config.content)
11850
+ anchorConfig.content = config.content;
11851
+ if (config.imageUrl)
11852
+ anchorConfig.imageUrl = config.imageUrl;
11853
+ if (config.offsetX !== void 0)
11854
+ anchorConfig.offsetX = config.offsetX;
11855
+ if (config.offsetY !== void 0)
11856
+ anchorConfig.offsetY = config.offsetY;
11857
+ const anchor = new window.Glodon.Bimface.Earth.Plugins.Animation.Anchor(anchorConfig);
11858
+ return anchor;
11859
+ };
11860
+ const addFireEffect = (config) => {
11861
+ const effectManager = getEffectManager();
11862
+ if (!effectManager)
11863
+ return null;
11864
+ const fireConfig = new window.Glodon.Bimface.Plugins.Effect.FireEffectConfig();
11865
+ if (config.position)
11866
+ fireConfig.position = config.position;
11867
+ if (config.size !== void 0)
11868
+ fireConfig.size = config.size;
11869
+ if (config.intensity !== void 0)
11870
+ fireConfig.intensity = config.intensity;
11871
+ if (config.color)
11872
+ fireConfig.color = new window.Glodon.Web.Graphics.Color(config.color);
11873
+ const fireEffect = new window.Glodon.Bimface.Plugins.Effect.FireEffect(fireConfig);
11874
+ effectManager.addObject(fireEffect);
11875
+ return fireEffect;
11876
+ };
11877
+ const addFanScan = (config) => {
11878
+ const effectManager = getEffectManager();
11879
+ if (!effectManager)
11880
+ return null;
11881
+ const fanScanConfig = new window.Glodon.Bimface.Plugins.Effect.FanScanConfig();
11882
+ if (config.position)
11883
+ fanScanConfig.position = config.position;
11884
+ if (config.angle !== void 0)
11885
+ fanScanConfig.angle = config.angle;
11886
+ if (config.radius !== void 0)
11887
+ fanScanConfig.radius = config.radius;
11888
+ if (config.color)
11889
+ fanScanConfig.color = new window.Glodon.Web.Graphics.Color(config.color);
11890
+ if (config.duration !== void 0)
11891
+ fanScanConfig.duration = config.duration;
11892
+ const fanScan = new window.Glodon.Bimface.Plugins.Effect.FanScan(fanScanConfig);
11893
+ effectManager.addObject(fanScan);
11894
+ return fanScan;
11895
+ };
11896
+ const addRingScan = (config) => {
11897
+ const effectManager = getEffectManager();
11898
+ if (!effectManager)
11899
+ return null;
11900
+ const ringScanConfig = new window.Glodon.Bimface.Plugins.Effect.RingScanConfig();
11901
+ if (config.position)
11902
+ ringScanConfig.position = config.position;
11903
+ if (config.radius !== void 0)
11904
+ ringScanConfig.radius = config.radius;
11905
+ if (config.color)
11906
+ ringScanConfig.color = new window.Glodon.Web.Graphics.Color(config.color);
11907
+ if (config.duration !== void 0)
11908
+ ringScanConfig.duration = config.duration;
11909
+ const ringScan = new window.Glodon.Bimface.Plugins.Effect.RingScan(ringScanConfig);
11910
+ effectManager.addObject(ringScan);
11911
+ return ringScan;
11912
+ };
11913
+ const addWaterEffect = (config) => {
11914
+ const effectManager = getEffectManager();
11915
+ if (!effectManager)
11916
+ return null;
11917
+ const waterConfig = new window.Glodon.Bimface.Plugins.Effect.WaterEffectConfig();
11918
+ if (config.position)
11919
+ waterConfig.position = config.position;
11920
+ if (config.size !== void 0)
11921
+ waterConfig.size = config.size;
11922
+ if (config.speed !== void 0)
11923
+ waterConfig.speed = config.speed;
11924
+ const waterEffect = new window.Glodon.Bimface.Plugins.Effect.WaterEffect(waterConfig);
11925
+ effectManager.addObject(waterEffect);
11926
+ return waterEffect;
11927
+ };
11928
+ const addWallEffect = (config) => {
11929
+ const effectManager = getEffectManager();
11930
+ if (!effectManager)
11931
+ return null;
11932
+ const wallConfig = new window.Glodon.Bimface.Plugins.Effect.WallEffectConfig();
11933
+ if (config.position)
11934
+ wallConfig.position = config.position;
11935
+ if (config.radius !== void 0)
11936
+ wallConfig.radius = config.radius;
11937
+ if (config.height !== void 0)
11938
+ wallConfig.height = config.height;
11939
+ if (config.color)
11940
+ wallConfig.color = new window.Glodon.Web.Graphics.Color(config.color);
11941
+ const wallEffect = new window.Glodon.Bimface.Plugins.Effect.WallEffect(wallConfig);
11942
+ effectManager.addObject(wallEffect);
11943
+ return wallEffect;
11944
+ };
11945
+ const addCurveAnimation = (config) => {
11946
+ const effectManager = getEffectManager();
11947
+ if (!effectManager)
11948
+ return null;
11949
+ const curveConfig = new window.Glodon.Bimface.Plugins.Effect.CurveAnimationConfig();
11950
+ if (config.points)
11951
+ curveConfig.points = config.points;
11952
+ if (config.color)
11953
+ curveConfig.color = new window.Glodon.Web.Graphics.Color(config.color);
11954
+ if (config.speed !== void 0)
11955
+ curveConfig.speed = config.speed;
11956
+ if (config.width !== void 0)
11957
+ curveConfig.width = config.width;
11958
+ const curveEffect = new window.Glodon.Bimface.Plugins.Effect.CurveAnimation(curveConfig);
11959
+ effectManager.addObject(curveEffect);
11960
+ return curveEffect;
11961
+ };
11962
+ const setSkyBox = (config) => {
11963
+ const effectManager = getEffectManager();
11964
+ if (!effectManager)
11965
+ return null;
11966
+ const skyBoxManager = effectManager.getSkyBox();
11967
+ if (skyBoxManager) {
11968
+ if (config.style)
11969
+ skyBoxManager.setSkyBoxStyle(config.style);
11970
+ return skyBoxManager;
11971
+ }
11972
+ return null;
11973
+ };
11974
+ const setRain = (enabled, config = {}) => {
11975
+ const effectManager = getEffectManager();
11976
+ if (!effectManager)
11977
+ return null;
11978
+ const rain = effectManager.getRain();
11979
+ if (rain) {
11980
+ if (enabled !== void 0)
11981
+ rain.setEnable(enabled);
11982
+ if (config.intensity !== void 0)
11983
+ rain.setIntensity(config.intensity);
11984
+ if (config.opacity !== void 0)
11985
+ rain.setOpacity(config.opacity);
11986
+ return rain;
11987
+ }
11988
+ return null;
11989
+ };
11990
+ const showEffect = (effect) => {
11991
+ const effectManager = getEffectManager();
11992
+ if (!effectManager)
11993
+ return;
11994
+ effectManager.showObject(effect);
11995
+ };
11996
+ const hideEffect = (effect) => {
11997
+ const effectManager = getEffectManager();
11998
+ if (!effectManager)
11999
+ return;
12000
+ effectManager.hideObject(effect);
12001
+ };
12002
+ const removeEffect = (effect) => {
12003
+ const effectManager = getEffectManager();
12004
+ if (!effectManager)
12005
+ return;
12006
+ effectManager.removeObject(effect);
12007
+ };
12008
+ const dispose = () => {
12009
+ if (resizeHandler.value) {
12010
+ window.removeEventListener("resize", resizeHandler.value);
12011
+ resizeHandler.value = null;
12012
+ }
12013
+ registeredEvents.forEach(({ eventType, callback, inctance }) => {
12014
+ removeEventListener(eventType, callback, inctance);
12015
+ });
12016
+ registeredEvents.length = 0;
12017
+ if (editor.value) {
12018
+ editor.value.exit();
12019
+ editor.value = null;
12020
+ }
12021
+ if (app.value) {
12022
+ app.value.destroy();
12023
+ app.value = null;
12024
+ }
12025
+ if (viewer.value) {
12026
+ viewer.value = null;
12027
+ }
12028
+ layerManager.value = null;
12029
+ isLoaded.value = false;
12030
+ isLoading.value = false;
12031
+ error.value = null;
12032
+ };
12033
+ const openModelEditor = (layerId) => {
12034
+ try {
12035
+ const parseModelTransformData = (eventData) => {
12036
+ var _a, _b;
12037
+ const modelId = (_a = eventData == null ? void 0 : eventData.modelId) == null ? void 0 : _a[0];
12038
+ const matrix = modelId !== void 0 ? (_b = eventData == null ? void 0 : eventData.transformation) == null ? void 0 : _b[modelId] : null;
12039
+ if (!Array.isArray(matrix) || matrix.length < 16) {
12040
+ return { modelId, zoom: null, rotate: null };
12041
+ }
12042
+ const a11 = Number(matrix[0]) || 0;
12043
+ const a21 = Number(matrix[1]) || 0;
12044
+ const zoom = Math.round(Math.sqrt(a11 * a11 + a21 * a21) * 10) / 10;
12045
+ const rotateRad = Math.atan2(a21, a11);
12046
+ const rotate = Math.round(rotateRad * 180 / Math.PI);
12047
+ const normalizedRotate = (rotate % 360 + 360) % 360;
12048
+ return {
12049
+ modelId,
12050
+ zoom,
12051
+ rotate: normalizedRotate
12052
+ };
12053
+ };
12054
+ const modelToolbarConfig = new window.Glodon.Bimface.Earth.Plugins.ModelEditor.ModelEditorToolbarConfig();
12055
+ modelToolbarConfig.ids = [layerId];
12056
+ modelToolbarConfig.viewer = viewer.value;
12057
+ editor.value = new window.Glodon.Bimface.Earth.Plugins.ModelEditor.ModelEditorToolbar(modelToolbarConfig);
12058
+ editor.value.setButtonVisibility({
12059
+ translate: true,
12060
+ rotate: true,
12061
+ scale: true
12062
+ });
12063
+ editor.value.setTranslationController({
12064
+ X: true,
12065
+ Y: true,
12066
+ Z: true
12067
+ });
12068
+ editor.value.setRotationController({
12069
+ X: false,
12070
+ Y: false,
12071
+ Z: true
12072
+ });
12073
+ editor.value.setScaleController({
12074
+ Uniform: true,
12075
+ X: false,
12076
+ Y: false,
12077
+ Z: false
12078
+ });
12079
+ addEventListener(
12080
+ window.Glodon.Bimface.Earth.Plugins.ModelEditor.ModelEditorToolbarEvent.ModelTransformEnd,
12081
+ (data) => {
12082
+ const location = getLayerLocation(layerId);
12083
+ const parsed = parseModelTransformData(data);
12084
+ const lngLat = location ? `${location.lon},${location.lat},${location.alt}` : "";
12085
+ onModelTransformEnd == null ? void 0 : onModelTransformEnd({
12086
+ ...data,
12087
+ ...parsed,
12088
+ layerId,
12089
+ lngLat,
12090
+ location
12091
+ });
12092
+ },
12093
+ editor.value
12094
+ );
12095
+ editor.value.show();
12096
+ return editor.value;
12097
+ } catch (err) {
12098
+ console.error("\u5F00\u542F\u6A21\u578B\u7F16\u8F91\u5668\u5931\u8D25:", err);
12099
+ return null;
12100
+ }
12101
+ };
12102
+ const closeModelEditor = () => {
12103
+ if (editor.value) {
12104
+ editor.value.exit();
12105
+ editor.value = null;
12106
+ }
12107
+ };
12108
+ const clearAllEffects = (layerId) => {
12109
+ const componentManager = getComponentManager(layerId);
12110
+ if (!componentManager) {
12111
+ console.warn("\u672A\u627E\u5230\u56FE\u5C42\u5BF9\u5E94\u7684\u6784\u4EF6\u7BA1\u7406\u5668:", layerId);
12112
+ return;
12113
+ }
12114
+ componentManager.clearIsolation();
12115
+ componentManager.clearAllBlinkComponents();
12116
+ componentManager.restoreColor({
12117
+ all: true
12118
+ });
12119
+ componentManager.clearSelection();
12120
+ };
12121
+ const zoomToComponent = (layerId, condition, clear = false) => {
12122
+ clearSelection(layerId);
12123
+ selectComponents(layerId, condition);
12124
+ const layer = getLayer(layerId);
12125
+ const viewer2 = layer.getViewer();
12126
+ const model = viewer2.getModels()[0];
12127
+ model.zoomToSelectedComponents();
12128
+ if (clear) {
12129
+ clearSelection(layerId);
12130
+ }
12131
+ };
12132
+ return {
12133
+ viewer,
12134
+ app,
12135
+ layerManager,
12136
+ isLoaded,
12137
+ isLoading,
12138
+ error,
12139
+ initViewer,
12140
+ getLayer,
12141
+ getAllLayers,
12142
+ getBIMLayers,
12143
+ getLayerByType,
12144
+ getRootLayer,
12145
+ addGroupLayer,
12146
+ addBIMLayer,
12147
+ addDrawingLayer,
12148
+ addExternalObjectLayer,
12149
+ addTilesetLayer,
12150
+ addTileLayer,
12151
+ addTerrainLayer,
12152
+ removeLayer,
12153
+ showLayers,
12154
+ hideLayers,
12155
+ zoomToLayer,
12156
+ getComponentManager,
12157
+ selectComponents,
12158
+ clearSelection,
12159
+ isolateComponents,
12160
+ clearIsolation,
12161
+ overrideComponentColor,
12162
+ restoreComponentColor,
12163
+ blinkComponents,
12164
+ clearBlinkComponents,
12165
+ setGlowEffect,
12166
+ clearGlowEffect,
12167
+ hideComponents,
12168
+ showComponents,
12169
+ getObjectDataById,
12170
+ getBoundingBox,
12171
+ zoomToComponent,
12172
+ addEventListener,
12173
+ removeEventListener,
12174
+ getUIManager,
12175
+ getToolbar,
12176
+ getEffectManager,
12177
+ addPrismPoint,
12178
+ addAnchor,
12179
+ addFireEffect,
12180
+ addFanScan,
12181
+ addRingScan,
12182
+ addWaterEffect,
12183
+ addWallEffect,
12184
+ addCurveAnimation,
12185
+ setSkyBox,
12186
+ setRain,
12187
+ showEffect,
12188
+ hideEffect,
12189
+ removeEffect,
12190
+ updateLayerTransformation,
12191
+ updateLayerLocation,
12192
+ getLayerLocation,
12193
+ openModelEditor,
12194
+ closeModelEditor,
12195
+ clearAllEffects,
12196
+ dispose
12197
+ };
12198
+ }
12199
+ const index_vue_vue_type_style_index_0_scoped_f0818b3a_lang = "";
12200
+ const _withScopeId = (n) => (pushScopeId("data-v-f0818b3a"), n = n(), popScopeId(), n);
12201
+ const _hoisted_1 = {
12202
+ key: 0,
12203
+ class: "loading-mask"
12204
+ };
12205
+ const _hoisted_2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "loading-spinner" }, null, -1));
12206
+ const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("span", { class: "loading-text" }, "\u573A\u666F\u52A0\u8F7D\u4E2D...", -1));
12207
+ const _hoisted_4 = [
12208
+ _hoisted_2,
12209
+ _hoisted_3
12210
+ ];
12211
+ const _hoisted_5 = {
12212
+ key: 1,
12213
+ class: "error-tip"
12214
+ };
12215
+ const _hoisted_6 = ["onClick"];
12216
+ const _sfc_main = {
12217
+ __name: "index",
12218
+ props: {
12219
+ sceneToken: {
12220
+ type: String,
12221
+ required: true
12222
+ },
12223
+ bimLayers: {
12224
+ type: Array,
12225
+ default: () => []
12226
+ },
12227
+ height: {
12228
+ type: String,
12229
+ default: "100%"
12230
+ },
12231
+ width: {
12232
+ type: String,
12233
+ default: "100%"
12234
+ },
12235
+ disableMapOcclusion: {
12236
+ type: Boolean,
12237
+ default: true
12238
+ },
12239
+ extraContextMenu: {
12240
+ type: Array,
12241
+ default: () => []
12242
+ }
12243
+ },
12244
+ emits: [
12245
+ "scene-added",
12246
+ "scene-loaded",
12247
+ "layer-added",
12248
+ "layer-removed",
12249
+ "bim-layers-loaded",
12250
+ "selection-changed",
12251
+ "mouse-click",
12252
+ "context-menu",
12253
+ "context-menu-click",
12254
+ "error",
12255
+ "load-start",
12256
+ "load-end",
12257
+ "model-transform-end",
12258
+ "toolbar-click"
12259
+ ],
12260
+ setup(__props, { expose, emit }) {
12261
+ const props = __props;
12262
+ useCssVars((_ctx) => ({
12263
+ "decc1896": __props.width,
12264
+ "68d58918": __props.height
12265
+ }));
12266
+ const containerRef = ref$1(null);
12267
+ const {
12268
+ viewer,
12269
+ app,
12270
+ layerManager,
12271
+ isLoaded,
12272
+ isLoading,
12273
+ error,
12274
+ initViewer,
12275
+ getLayer,
12276
+ getAllLayers,
12277
+ getBIMLayers,
12278
+ getRootLayer,
12279
+ getLayerByType,
12280
+ addGroupLayer,
12281
+ addBIMLayer,
12282
+ addDrawingLayer,
12283
+ addExternalObjectLayer,
12284
+ addTilesetLayer,
12285
+ addTileLayer,
12286
+ addTerrainLayer,
12287
+ removeLayer,
12288
+ showLayers,
12289
+ hideLayers,
12290
+ zoomToLayer,
12291
+ getComponentManager,
12292
+ selectComponents,
12293
+ clearSelection,
12294
+ zoomToComponent,
12295
+ isolateComponents,
12296
+ clearIsolation,
12297
+ overrideComponentColor,
12298
+ restoreComponentColor,
12299
+ blinkComponents,
12300
+ clearBlinkComponents,
12301
+ setGlowEffect,
12302
+ clearGlowEffect,
12303
+ hideComponents,
12304
+ showComponents,
12305
+ getObjectDataById,
12306
+ getBoundingBox,
12307
+ addEventListener,
12308
+ removeEventListener,
12309
+ getUIManager,
12310
+ getToolbar,
12311
+ getEffectManager,
12312
+ addPrismPoint,
12313
+ addAnchor,
12314
+ addFireEffect,
12315
+ addFanScan,
12316
+ addRingScan,
12317
+ addWaterEffect,
12318
+ addWallEffect,
12319
+ addCurveAnimation,
12320
+ setSkyBox,
12321
+ clearAllEffects,
12322
+ setRain,
12323
+ showEffect,
12324
+ hideEffect,
12325
+ removeEffect,
12326
+ updateLayerTransformation,
12327
+ updateLayerLocation,
12328
+ getLayerLocation,
12329
+ openModelEditor,
12330
+ closeModelEditor,
12331
+ dispose
12332
+ } = useBimfaceGIS({
12333
+ onModelTransformEnd: (data) => emit("model-transform-end", data)
12334
+ });
12335
+ watch(() => props.sceneToken, (newVal) => {
12336
+ if (newVal && containerRef.value) {
12337
+ loadScene();
12338
+ }
12339
+ }, { immediate: false });
12340
+ const loadScene = async () => {
12341
+ if (!containerRef.value || !props.sceneToken)
12342
+ return;
12343
+ dispose();
12344
+ loadedBimLayerViewTokens.value = /* @__PURE__ */ new Set();
12345
+ viewTokenToLayerId.value.clear();
12346
+ try {
12347
+ emit("load-start");
12348
+ const result = await initViewer(containerRef.value, props.sceneToken, {
12349
+ disableMapOcclusion: props.disableMapOcclusion
12350
+ });
12351
+ emit("scene-loaded", result);
12352
+ if (layerManager.value) {
12353
+ console.log("layerManager.value", layerManager.value);
12354
+ console.log("viewer.value", viewer.value);
12355
+ console.log("app.value", app.value);
12356
+ emit("scene-added", {
12357
+ viewer: viewer.value,
12358
+ app: app.value,
12359
+ layerManager: layerManager.value
12360
+ });
12361
+ }
12362
+ setupDefaultListeners();
12363
+ } catch (err) {
12364
+ error.value = err;
12365
+ emit("error", err);
12366
+ } finally {
12367
+ emit("load-end");
12368
+ }
12369
+ };
12370
+ const loadedBimLayerViewTokens = ref$1(/* @__PURE__ */ new Set());
12371
+ const viewTokenToLayerId = ref$1(/* @__PURE__ */ new Map());
12372
+ const layerTransformOptionsMap = ref$1(/* @__PURE__ */ new Map());
12373
+ let isLoadingBimLayers = false;
12374
+ const addBimLayers = (layersToAdd, { onComplete } = {}) => {
12375
+ if (!layersToAdd || layersToAdd.length === 0)
12376
+ return;
12377
+ let pendingCount = layersToAdd.length;
12378
+ const layerAddedHandler = ({ layerId }) => {
12379
+ if (layerId && layerTransformOptionsMap.value.has(layerId)) {
12380
+ const transformOptions = layerTransformOptionsMap.value.get(layerId);
12381
+ updateLayerTransformation(layerId, transformOptions.zoom, transformOptions.rotate);
12382
+ layerTransformOptionsMap.value.delete(layerId);
12383
+ }
12384
+ pendingCount--;
12385
+ if (pendingCount <= 0) {
12386
+ viewer.value.removeEventListener(
12387
+ window.Glodon.Bimface.Earth.Viewer.ViewerGISEvent.LayerAdded,
12388
+ layerAddedHandler
12389
+ );
12390
+ onComplete == null ? void 0 : onComplete();
12391
+ }
12392
+ };
12393
+ viewer.value.addEventListener(
12394
+ window.Glodon.Bimface.Earth.Viewer.ViewerGISEvent.LayerAdded,
12395
+ layerAddedHandler
12396
+ );
12397
+ for (const bimLayer of layersToAdd) {
12398
+ const result = addBIMLayer(bimLayer);
12399
+ if (result) {
12400
+ const layerId = result.layer.getId();
12401
+ viewTokenToLayerId.value.set(bimLayer.viewToken, layerId);
12402
+ if (bimLayer.zoom !== void 0 || bimLayer.rotate !== void 0) {
12403
+ layerTransformOptionsMap.value.set(layerId, {
12404
+ zoom: bimLayer.zoom,
12405
+ rotate: bimLayer.rotate
12406
+ });
12407
+ }
12408
+ }
12409
+ }
12410
+ };
12411
+ const loadBimLayers = async () => {
12412
+ if (isLoadingBimLayers)
12413
+ return;
12414
+ if (!props.bimLayers || props.bimLayers.length === 0)
12415
+ return;
12416
+ isLoadingBimLayers = true;
12417
+ try {
12418
+ const layersToAdd = [...props.bimLayers];
12419
+ addBimLayers(layersToAdd, {
12420
+ onComplete: () => {
12421
+ setTimeout(() => {
12422
+ const bimLayers = props.bimLayers.map((config) => getLayer(config.id)).filter(Boolean);
12423
+ loadedBimLayerViewTokens.value = new Set(props.bimLayers.map((config) => config.viewToken));
12424
+ emit("bim-layers-loaded", bimLayers);
12425
+ if (bimLayers.length > 0) {
12426
+ zoomToLayer(bimLayers[bimLayers.length - 1].getId());
12427
+ }
12428
+ }, 500);
12429
+ }
12430
+ });
12431
+ } finally {
12432
+ isLoadingBimLayers = false;
12433
+ }
12434
+ };
12435
+ watch([() => layerManager.value, () => props.bimLayers], ([newLayerManager, newLayers], [oldLayerManager]) => {
12436
+ var _a;
12437
+ if (!viewer.value || !newLayerManager || !isLoaded.value)
12438
+ return;
12439
+ const layerManagerJustLoaded = oldLayerManager === null && newLayerManager !== null;
12440
+ if (layerManagerJustLoaded) {
12441
+ if (loadedBimLayerViewTokens.value.size === 0 && ((_a = props.bimLayers) == null ? void 0 : _a.length) > 0) {
12442
+ loadBimLayers();
12443
+ }
12444
+ return;
12445
+ }
12446
+ if (isLoadingBimLayers)
12447
+ return;
12448
+ const newViewTokens = new Set((newLayers || []).map((config) => config.viewToken));
12449
+ const oldViewTokens = loadedBimLayerViewTokens.value;
12450
+ if (newViewTokens.size === 0 && oldViewTokens.size === 0)
12451
+ return;
12452
+ const viewTokensToRemove = [...oldViewTokens].filter((vt) => !newViewTokens.has(vt));
12453
+ const layersToAdd = (newLayers || []).filter((config) => !oldViewTokens.has(config.viewToken));
12454
+ for (const viewToken of viewTokensToRemove) {
12455
+ const layerId = viewTokenToLayerId.value.get(viewToken);
12456
+ if (layerId) {
12457
+ removeLayer(layerId);
12458
+ viewTokenToLayerId.value.delete(viewToken);
12459
+ }
12460
+ }
12461
+ loadedBimLayerViewTokens.value = newViewTokens;
12462
+ if (layersToAdd.length > 0) {
12463
+ addBimLayers(layersToAdd);
12464
+ }
12465
+ }, { deep: true });
12466
+ const selectedLayerAndObjects = ref$1([]);
12467
+ const selectObjects = computed$1(() => selectedLayerAndObjects.value.flatMap((item) => item.objectIds));
12468
+ const menuVisible = ref$1(false);
12469
+ const menuPosition = ref$1({ x: 0, y: 0 });
12470
+ const menuItems = computed$1(() => {
12471
+ const commonItems = [
12472
+ { label: "\u9690\u85CF\u9009\u4E2D\u6784\u4EF6", value: "hideSelected" },
12473
+ { label: "\u9694\u79BB\u9009\u4E2D\u6784\u4EF6", value: "isolateSelected" }
12474
+ ];
12475
+ if (selectObjects.value.length === 0) {
12476
+ return [{ label: "\u663E\u793A\u6240\u6709\u6784\u4EF6", value: "showAll" }];
12477
+ }
12478
+ if (selectObjects.value.length === 1) {
12479
+ return [{ label: "\u6784\u4EF6\u8BE6\u60C5", value: "componentDetail" }, ...commonItems];
12480
+ }
12481
+ return commonItems;
12482
+ });
12483
+ const handleContextMenuClick = (value) => {
12484
+ console.log("viewer.value.getViewer()", viewer.value.getViewer());
12485
+ console.log("viewer.value", viewer.value.getModels());
12486
+ viewer.value.getViewer().clearSelection();
12487
+ if (value === "componentDetail")
12488
+ ;
12489
+ else if (value === "hideSelected") {
12490
+ selectedLayerAndObjects.value.forEach((item) => {
12491
+ hideComponents(item.layerId, {
12492
+ ids: item.objectIds
12493
+ });
12494
+ });
12495
+ } else if (value === "isolateSelected") {
12496
+ selectedLayerAndObjects.value.forEach((item) => {
12497
+ isolateComponents(item.layerId, {
12498
+ ids: item.objectIds
12499
+ });
12500
+ });
12501
+ } else if (value === "showAll") {
12502
+ viewer.value.getModels().forEach((model) => {
12503
+ model.clearIsolation();
12504
+ model.showAllComponents();
12505
+ });
12506
+ viewer.value.getViewer().clearAll();
12507
+ }
12508
+ menuVisible.value = false;
12509
+ emit("context-menu-click", {
12510
+ action: value,
12511
+ selections: selectedLayerAndObjects.value
12512
+ });
12513
+ selectedLayerAndObjects.value = [];
12514
+ };
12515
+ const handleContextMenu = (e) => {
12516
+ selectedLayerAndObjects.value = viewer.value.getSelectedElements();
12517
+ menuPosition.value.x = e.clientPosition.x;
12518
+ menuPosition.value.y = e.clientPosition.y;
12519
+ menuVisible.value = true;
12520
+ };
12521
+ const setupDefaultListeners = () => {
12522
+ if (viewer.value) {
12523
+ addEventListener(
12524
+ window.Glodon.Bimface.Viewer.Viewer3DEvent.MouseClicked,
12525
+ (data) => {
12526
+ menuVisible.value = false;
12527
+ emit("mouse-click", data);
12528
+ },
12529
+ viewer.value
12530
+ );
12531
+ addEventListener(
12532
+ window.Glodon.Bimface.Viewer.Viewer3DEvent.SelectionChanged,
12533
+ (data) => {
12534
+ emit("selection-changed", data);
12535
+ },
12536
+ viewer.value
12537
+ );
12538
+ addEventListener(
12539
+ Glodon.Bimface.Earth.Application.WebApplicationGISEvent.LayerTreeNodeClicked,
12540
+ (data) => {
12541
+ emit("layer-treeNode-click", data);
12542
+ },
12543
+ app.value
12544
+ );
12545
+ addEventListener(
12546
+ Glodon.Bimface.Earth.Application.WebApplicationGISEvent.ButtonOnToolbarClicked,
12547
+ (data) => {
12548
+ emit("toolbar-click", data);
12549
+ },
12550
+ app.value
12551
+ );
12552
+ addEventListener(
12553
+ window.Glodon.Bimface.Viewer.Viewer3DEvent.ContextMenu,
12554
+ handleContextMenu,
12555
+ viewer.value
12556
+ );
12557
+ }
12558
+ };
12559
+ onMounted$1(() => {
12560
+ if (props.sceneToken && containerRef.value) {
12561
+ loadScene();
12562
+ }
12563
+ });
12564
+ onBeforeUnmount(() => {
12565
+ dispose();
12566
+ });
12567
+ expose({
12568
+ viewer,
12569
+ app,
12570
+ layerManager,
12571
+ isLoaded,
12572
+ isLoading,
12573
+ error,
12574
+ loadScene,
12575
+ getLayer,
12576
+ getAllLayers,
12577
+ getLayerByType,
12578
+ getBIMLayers,
12579
+ getRootLayer,
12580
+ addGroupLayer,
12581
+ addBIMLayer,
12582
+ addDrawingLayer,
12583
+ addExternalObjectLayer,
12584
+ addTilesetLayer,
12585
+ addTileLayer,
12586
+ addTerrainLayer,
12587
+ removeLayer,
12588
+ showLayers,
12589
+ hideLayers,
12590
+ zoomToLayer,
12591
+ getComponentManager,
12592
+ selectComponents,
12593
+ clearSelection,
12594
+ isolateComponents,
12595
+ clearIsolation,
12596
+ overrideComponentColor,
12597
+ restoreComponentColor,
12598
+ blinkComponents,
12599
+ clearBlinkComponents,
12600
+ setGlowEffect,
12601
+ clearGlowEffect,
12602
+ hideComponents,
12603
+ showComponents,
12604
+ getObjectDataById,
12605
+ getBoundingBox,
12606
+ addEventListener,
12607
+ removeEventListener,
12608
+ getUIManager,
12609
+ getToolbar,
12610
+ getEffectManager,
12611
+ addPrismPoint,
12612
+ addAnchor,
12613
+ zoomToComponent,
12614
+ addFireEffect,
12615
+ addFanScan,
12616
+ addRingScan,
12617
+ addWaterEffect,
12618
+ addWallEffect,
12619
+ addCurveAnimation,
12620
+ setSkyBox,
12621
+ setRain,
12622
+ showEffect,
12623
+ hideEffect,
12624
+ removeEffect,
12625
+ updateLayerTransformation,
12626
+ updateLayerLocation,
12627
+ getLayerLocation,
12628
+ openModelEditor,
12629
+ closeModelEditor,
12630
+ clearAllEffects,
12631
+ dispose
12632
+ });
12633
+ return (_ctx, _cache) => {
12634
+ return openBlock(), createElementBlock("div", {
12635
+ ref_key: "containerRef",
12636
+ ref: containerRef,
12637
+ id: "gisContainer",
12638
+ class: "bim-gis-container"
12639
+ }, [
12640
+ renderSlot(_ctx.$slots, "default", {}, void 0, true),
12641
+ unref(isLoading) ? (openBlock(), createElementBlock("div", _hoisted_1, _hoisted_4)) : createCommentVNode("", true),
12642
+ unref(error) ? (openBlock(), createElementBlock("div", _hoisted_5, [
12643
+ createElementVNode("span", null, toDisplayString(unref(error).message || "\u52A0\u8F7D\u5931\u8D25"), 1)
12644
+ ])) : createCommentVNode("", true),
12645
+ withDirectives(createElementVNode("ul", {
12646
+ style: normalizeStyle({ left: menuPosition.value.x + "px", top: menuPosition.value.y + "px" }),
12647
+ class: "contextmenu"
12648
+ }, [
12649
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(menuItems), (item) => {
12650
+ return openBlock(), createElementBlock("li", {
12651
+ key: item.value,
12652
+ onClick: ($event) => handleContextMenuClick(item.value)
12653
+ }, toDisplayString(item.label), 9, _hoisted_6);
12654
+ }), 128))
12655
+ ], 4), [
12656
+ [vShow, menuVisible.value]
12657
+ ])
12658
+ ], 512);
12659
+ };
12660
+ }
12661
+ };
12662
+ const SCTJGISViewer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f0818b3a"]]);
11222
12663
  const components = [
11223
12664
  { component: SCTJDictTag, name: "SCTJDictTag" },
11224
12665
  { component: SCTJTreeSelect, name: "SCTJTreeSelect" },
11225
- { component: _sfc_main$o, name: "SCTJSelect" },
11226
- { component: _sfc_main$n, name: "SCTJCheckBox" },
12666
+ { component: _sfc_main$p, name: "SCTJSelect" },
12667
+ { component: _sfc_main$o, name: "SCTJCheckBox" },
11227
12668
  { component: SCTJTimeLineSelect, name: "SCTJTimeLineSelect" },
11228
- { component: _sfc_main$v, name: "SCTJIcon" },
12669
+ { component: _sfc_main$w, name: "SCTJIcon" },
11229
12670
  { component: SCTJFileUpload, name: "SCTJFileUpload" },
11230
12671
  { component: SCTJImageUpload, name: "SCTJImageUpload" },
11231
12672
  { component: SCTJImagePreview, name: "SCTJImagePreview" },
11232
12673
  { component: SCTJIconSelect, name: "SCTJIconSelect" },
11233
12674
  { component: SCTJSearch, name: "SCTJSearch" },
11234
- { component: _sfc_main$q, name: "SCTJDateRangePicker" },
12675
+ { component: _sfc_main$r, name: "SCTJDateRangePicker" },
11235
12676
  { component: SCTJTable, name: "SCTJTable" },
11236
12677
  { component: SCTJTableContainer, name: "SCTJTableContainer" },
11237
12678
  { component: SCTJTablePageContainer, name: "SCTJTablePageContainer" },
11238
12679
  { component: SCTJTableTopActionContainer, name: "SCTJTableTopActionContainer" },
11239
12680
  { component: SCTJRightToolbar, name: "SCTJRightToolbar" },
11240
- { component: _sfc_main$f, name: "SCTJBtnContainer" },
11241
- { component: _sfc_main$c, name: "SCTJBaseChart" },
12681
+ { component: _sfc_main$g, name: "SCTJBtnContainer" },
12682
+ { component: _sfc_main$d, name: "SCTJBaseChart" },
11242
12683
  { component: SCTJCommonChart, name: "SCTJCommonChart" },
11243
12684
  { component: SCTJPieChart, name: "SCTJPieChart" },
11244
12685
  { component: SCTJFlvPlayer, name: "SCTJFlvPlayer" },
11245
- { component: _sfc_main$8, name: "SCTJIframe" },
11246
- { component: _sfc_main$7, name: "SCTJImportDialog" },
12686
+ { component: _sfc_main$9, name: "SCTJIframe" },
12687
+ { component: _sfc_main$8, name: "SCTJImportDialog" },
11247
12688
  { component: SCTJDialogTable, name: "SCTJDialogTable" },
11248
12689
  { component: SCTJScrollTable, name: "SCTJScrollTable" },
11249
12690
  { component: SCTJMapViewer, name: "SCTJMapViewer" },
@@ -11252,7 +12693,8 @@ const components = [
11252
12693
  { component: SCTJTrackPlayback, name: "SCTJTrackPlayback" },
11253
12694
  { component: SCTJBimViewer, name: "SCTJBimViewer" },
11254
12695
  { component: SCTJDwgViewer, name: "SCTJDwgViewer" },
11255
- { component: SCTJModelCompare, name: "SCTJModelCompare" }
12696
+ { component: SCTJModelCompare, name: "SCTJModelCompare" },
12697
+ { component: SCTJGISViewer, name: "SCTJGISViewer" }
11256
12698
  ];
11257
12699
  const install = (app) => {
11258
12700
  components.forEach(({ component, name }) => {
@@ -11263,28 +12705,28 @@ const index = {
11263
12705
  install,
11264
12706
  SCTJDictTag,
11265
12707
  SCTJTreeSelect,
11266
- SCTJSelect: _sfc_main$o,
11267
- SCTJCheckBox: _sfc_main$n,
12708
+ SCTJSelect: _sfc_main$p,
12709
+ SCTJCheckBox: _sfc_main$o,
11268
12710
  SCTJTimeLineSelect,
11269
- SCTJIcon: _sfc_main$v,
12711
+ SCTJIcon: _sfc_main$w,
11270
12712
  SCTJFileUpload,
11271
12713
  SCTJImageUpload,
11272
12714
  SCTJImagePreview,
11273
12715
  SCTJIconSelect,
11274
12716
  SCTJSearch,
11275
- SCTJDateRangePicker: _sfc_main$q,
12717
+ SCTJDateRangePicker: _sfc_main$r,
11276
12718
  SCTJTable,
11277
12719
  SCTJTableContainer,
11278
12720
  SCTJTablePageContainer,
11279
12721
  SCTJTableTopActionContainer,
11280
12722
  SCTJRightToolbar,
11281
- SCTJBtnContainer: _sfc_main$f,
11282
- SCTJBaseChart: _sfc_main$c,
12723
+ SCTJBtnContainer: _sfc_main$g,
12724
+ SCTJBaseChart: _sfc_main$d,
11283
12725
  SCTJCommonChart,
11284
12726
  SCTJPieChart,
11285
12727
  SCTJFlvPlayer,
11286
- SCTJIframe: _sfc_main$8,
11287
- SCTJImportDialog: _sfc_main$7,
12728
+ SCTJIframe: _sfc_main$9,
12729
+ SCTJImportDialog: _sfc_main$8,
11288
12730
  SCTJDialogTable,
11289
12731
  SCTJScrollTable,
11290
12732
  SCTJMapViewer,
@@ -11293,27 +12735,29 @@ const index = {
11293
12735
  SCTJTrackPlayback,
11294
12736
  SCTJBimViewer,
11295
12737
  SCTJDwgViewer,
11296
- SCTJModelCompare
12738
+ SCTJModelCompare,
12739
+ SCTJGISViewer
11297
12740
  };
11298
12741
  export {
11299
- _sfc_main$c as SCTJBaseChart,
12742
+ _sfc_main$d as SCTJBaseChart,
11300
12743
  SCTJBimViewer,
11301
- _sfc_main$f as SCTJBtnContainer,
12744
+ _sfc_main$g as SCTJBtnContainer,
11302
12745
  SCTJBusinessMapDrawingDialog,
11303
- _sfc_main$n as SCTJCheckBox,
12746
+ _sfc_main$o as SCTJCheckBox,
11304
12747
  SCTJCommonChart,
11305
- _sfc_main$q as SCTJDateRangePicker,
12748
+ _sfc_main$r as SCTJDateRangePicker,
11306
12749
  SCTJDialogTable,
11307
12750
  SCTJDictTag,
11308
12751
  SCTJDwgViewer,
11309
12752
  SCTJFileUpload,
11310
12753
  SCTJFlvPlayer,
11311
- _sfc_main$v as SCTJIcon,
12754
+ SCTJGISViewer,
12755
+ _sfc_main$w as SCTJIcon,
11312
12756
  SCTJIconSelect,
11313
- _sfc_main$8 as SCTJIframe,
12757
+ _sfc_main$9 as SCTJIframe,
11314
12758
  SCTJImagePreview,
11315
12759
  SCTJImageUpload,
11316
- _sfc_main$7 as SCTJImportDialog,
12760
+ _sfc_main$8 as SCTJImportDialog,
11317
12761
  SCTJMapDrawingDialog,
11318
12762
  SCTJMapViewer,
11319
12763
  SCTJModelCompare,
@@ -11321,7 +12765,7 @@ export {
11321
12765
  SCTJRightToolbar,
11322
12766
  SCTJScrollTable,
11323
12767
  SCTJSearch,
11324
- _sfc_main$o as SCTJSelect,
12768
+ _sfc_main$p as SCTJSelect,
11325
12769
  SCTJTable,
11326
12770
  SCTJTableContainer,
11327
12771
  SCTJTablePageContainer,