sctj-components 1.0.93 → 1.0.95

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