sctj-components 1.0.93 → 1.0.94

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