vue-openlayers-plugin 1.0.27 → 1.0.28

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.
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { getCurrentInstance, inject, ref, computed, unref, getCurrentScope, onScopeDispose, shallowRef, watchEffect, readonly, onMounted, nextTick, watch, isRef, warn as warn$3, provide, defineComponent, openBlock, createElementBlock, mergeProps, renderSlot, createElementVNode, toRef, onUnmounted, useAttrs as useAttrs$1, useSlots, normalizeClass, normalizeStyle as normalizeStyle$1, createCommentVNode, Fragment, createBlock, withCtx, resolveDynamicComponent, withModifiers, toDisplayString, onBeforeUnmount, createVNode as createVNode$1, Transition, withDirectives, createTextVNode, vShow, Text as Text$6, reactive, h as h$4, shallowReactive, isVNode, render as render$3, markRaw, toRefs, resolveComponent, withKeys, renderList, resolveDirective, Teleport, createApp } from "vue";
7
+ import { getCurrentInstance, inject, ref, computed, unref, getCurrentScope, onScopeDispose, shallowRef, watchEffect, readonly, onMounted, nextTick, watch, isRef, warn as warn$3, provide, defineComponent, openBlock, createElementBlock, mergeProps, renderSlot, createElementVNode, toRef, onUnmounted, useAttrs as useAttrs$1, useSlots, normalizeClass, normalizeStyle as normalizeStyle$1, createCommentVNode, Fragment, createBlock, withCtx, resolveDynamicComponent, withModifiers, toDisplayString, onBeforeUnmount, createVNode as createVNode$1, Transition, withDirectives, createTextVNode, vShow, Text as Text$6, reactive, h as h$4, shallowReactive, isVNode, render as render$3, markRaw, toRefs, resolveComponent, withKeys, resolveDirective, Teleport, renderList, createApp } from "vue";
8
8
  import { Feature as Feature$6, Map as Map$8 } from "ol";
9
9
  function _mergeNamespaces(n2, m2) {
10
10
  for (var i = 0; i < m2.length; i++) {
@@ -24141,255 +24141,6 @@ function v4(options, buf, offset) {
24141
24141
  }
24142
24142
  return unsafeStringify(rnds);
24143
24143
  }
24144
- const _hoisted_1$o = {
24145
- key: 2,
24146
- class: "tooltip-content"
24147
- };
24148
- const _hoisted_2$m = ["innerHTML"];
24149
- const _hoisted_3$m = { key: 1 };
24150
- const _hoisted_4$l = { class: "layer-title" };
24151
- const _hoisted_5$l = ["onClick"];
24152
- const _hoisted_6$j = { class: "property-key" };
24153
- const _hoisted_7$e = { class: "property-value" };
24154
- const _hoisted_8$b = ["innerHTML"];
24155
- const _hoisted_9$a = { key: 3 };
24156
- const _hoisted_10$a = { class: "mb-3 pb-2 border-b border-gray-200 text-xs text-gray-600" };
24157
- const _hoisted_11$9 = { class: "m-0 mb-2 text-sm font-semibold text-gray-800 border-b border-gray-200 pb-1" };
24158
- const _hoisted_12$9 = ["onClick"];
24159
- const _hoisted_13$9 = { class: "font-medium text-gray-700 min-w-20 mr-2" };
24160
- const _hoisted_14$8 = { class: "text-gray-800 break-all flex-1" };
24161
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
24162
- __name: "index",
24163
- props: {
24164
- config: {},
24165
- template: { type: [String, Object, Array, Function], default: void 0 },
24166
- visible: { type: Boolean },
24167
- tooltipData: {},
24168
- coordinate: {},
24169
- pixel: {}
24170
- },
24171
- emits: ["data-loaded", "show", "hide", "feature-click"],
24172
- setup(__props, { emit: __emit }) {
24173
- const props = __props;
24174
- const emit = __emit;
24175
- const tooltipRef = ref();
24176
- const formattedData = computed(() => {
24177
- if (!props.tooltipData)
24178
- return null;
24179
- return props.tooltipData.map((layerData) => ({
24180
- ...layerData,
24181
- features: layerData.features.map((feature2) => ({
24182
- ...feature2,
24183
- properties: feature2.properties || feature2
24184
- }))
24185
- }));
24186
- });
24187
- const templateData = computed(() => ({
24188
- data: props.tooltipData || [],
24189
- formattedData: formattedData.value,
24190
- coordinate: props.coordinate,
24191
- pixel: props.pixel
24192
- }));
24193
- const renderedTemplate = computed(() => {
24194
- if (!props.template || !props.tooltipData)
24195
- return "";
24196
- if (typeof props.template === "string") {
24197
- let html = props.template;
24198
- html = html.replace(/\{\{coordinate\}\}/g, `${props.coordinate[0].toFixed(6)}, ${props.coordinate[1].toFixed(6)}`);
24199
- html = html.replace(/\{\{layerCount\}\}/g, props.tooltipData.length.toString());
24200
- return html;
24201
- }
24202
- if (typeof props.template === "function") {
24203
- return props.template(templateData.value);
24204
- }
24205
- return "";
24206
- });
24207
- const tooltipStyle = computed(() => {
24208
- var _a3, _b3;
24209
- const style = {
24210
- position: "absolute",
24211
- left: `${props.pixel[0] + (((_a3 = props.config.offset) == null ? void 0 : _a3[0]) || 10)}px`,
24212
- top: `${props.pixel[1] + (((_b3 = props.config.offset) == null ? void 0 : _b3[1]) || 10)}px`,
24213
- zIndex: 9999
24214
- };
24215
- if (props.config.maxWidth) {
24216
- style.maxWidth = `${props.config.maxWidth}px`;
24217
- }
24218
- if (props.config.maxHeight) {
24219
- style.maxHeight = `${props.config.maxHeight}px`;
24220
- }
24221
- return style;
24222
- });
24223
- const formatValue = (value) => {
24224
- if (value === null || value === void 0)
24225
- return "-";
24226
- if (typeof value === "object")
24227
- return JSON.stringify(value);
24228
- return String(value);
24229
- };
24230
- const hide = () => {
24231
- emit("hide");
24232
- };
24233
- const handleFeatureClick = (feature2, layerData) => {
24234
- emit("feature-click", feature2, {
24235
- layerId: layerData.layerId,
24236
- layerName: layerData.layerName
24237
- }, props.coordinate);
24238
- };
24239
- watch(
24240
- () => props.visible,
24241
- (newVisible) => {
24242
- if (newVisible && props.tooltipData) {
24243
- emit("show", templateData.value);
24244
- nextTick(() => {
24245
- adjustPosition();
24246
- });
24247
- } else if (!newVisible) {
24248
- emit("hide");
24249
- }
24250
- }
24251
- );
24252
- watch(
24253
- () => props.tooltipData,
24254
- (newData) => {
24255
- if (newData) {
24256
- emit("data-loaded", newData);
24257
- }
24258
- }
24259
- );
24260
- const adjustPosition = () => {
24261
- var _a3, _b3;
24262
- if (!tooltipRef.value)
24263
- return;
24264
- const tooltip = tooltipRef.value;
24265
- const rect3 = tooltip.getBoundingClientRect();
24266
- const viewportWidth = window.innerWidth;
24267
- const viewportHeight = window.innerHeight;
24268
- let left = props.pixel[0] + (((_a3 = props.config.offset) == null ? void 0 : _a3[0]) || 10);
24269
- let top = props.pixel[1] + (((_b3 = props.config.offset) == null ? void 0 : _b3[1]) || 10);
24270
- if (left + rect3.width > viewportWidth) {
24271
- left = props.pixel[0] - rect3.width - 10;
24272
- }
24273
- if (top + rect3.height > viewportHeight) {
24274
- top = props.pixel[1] - rect3.height - 10;
24275
- }
24276
- if (left < 0) {
24277
- left = 10;
24278
- }
24279
- if (top < 0) {
24280
- top = 10;
24281
- }
24282
- tooltip.style.left = `${left}px`;
24283
- tooltip.style.top = `${top}px`;
24284
- };
24285
- const handleClickOutside = (event) => {
24286
- if (tooltipRef.value && !tooltipRef.value.contains(event.target)) {
24287
- hide();
24288
- }
24289
- };
24290
- onMounted(() => {
24291
- document.addEventListener("click", handleClickOutside);
24292
- });
24293
- onUnmounted(() => {
24294
- document.removeEventListener("click", handleClickOutside);
24295
- });
24296
- return (_ctx, _cache) => {
24297
- const _component_el_button = resolveComponent("el-button");
24298
- return _ctx.visible && _ctx.tooltipData ? (openBlock(), createElementBlock("div", {
24299
- key: 0,
24300
- ref_key: "tooltipRef",
24301
- ref: tooltipRef,
24302
- class: normalizeClass(["bg-white/95 border border-gray-300 rounded-md shadow-lg p-3 text-sm leading-relaxed max-w-75 max-h-100 overflow-y-auto backdrop-blur-10px relative", _ctx.config.className]),
24303
- style: normalizeStyle$1(tooltipStyle.value)
24304
- }, [
24305
- _ctx.config.showCloseButton ? (openBlock(), createBlock(_component_el_button, {
24306
- key: 0,
24307
- class: "absolute top-2 right-2",
24308
- size: "small",
24309
- text: "",
24310
- circle: "",
24311
- onClick: hide
24312
- }, {
24313
- icon: withCtx(() => [..._cache[0] || (_cache[0] = [
24314
- createElementVNode("span", { class: "text-gray-400 hover:text-gray-600" }, "×", -1)
24315
- ])]),
24316
- _: 1
24317
- })) : createCommentVNode("", true),
24318
- _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", {
24319
- key: 1,
24320
- data: _ctx.tooltipData,
24321
- formattedData: formattedData.value,
24322
- coordinate: _ctx.coordinate,
24323
- pixel: _ctx.pixel
24324
- }) : (openBlock(), createElementBlock("div", _hoisted_1$o, [
24325
- typeof _ctx.template === "string" ? (openBlock(), createElementBlock("div", {
24326
- key: 0,
24327
- innerHTML: renderedTemplate.value
24328
- }, null, 8, _hoisted_2$m)) : typeof _ctx.template === "object" ? (openBlock(), createElementBlock("div", _hoisted_3$m, [
24329
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.tooltipData, (layerData, index2) => {
24330
- return openBlock(), createElementBlock("div", {
24331
- key: layerData.layerId,
24332
- class: "layer-info"
24333
- }, [
24334
- createElementVNode("h4", _hoisted_4$l, toDisplayString(layerData.layerName), 1),
24335
- (openBlock(true), createElementBlock(Fragment, null, renderList(layerData.features, (feature2, fIndex) => {
24336
- return openBlock(), createElementBlock("div", {
24337
- key: fIndex,
24338
- class: "feature-info",
24339
- onClick: ($event) => handleFeatureClick(feature2, layerData)
24340
- }, [
24341
- (openBlock(true), createElementBlock(Fragment, null, renderList(feature2.properties || feature2, (value, key) => {
24342
- return openBlock(), createElementBlock("div", {
24343
- key,
24344
- class: "property-item"
24345
- }, [
24346
- createElementVNode("span", _hoisted_6$j, toDisplayString(key) + ":", 1),
24347
- createElementVNode("span", _hoisted_7$e, toDisplayString(formatValue(value)), 1)
24348
- ]);
24349
- }), 128))
24350
- ], 8, _hoisted_5$l);
24351
- }), 128))
24352
- ]);
24353
- }), 128))
24354
- ])) : typeof _ctx.template === "function" ? (openBlock(), createElementBlock("div", {
24355
- key: 2,
24356
- innerHTML: renderedTemplate.value
24357
- }, null, 8, _hoisted_8$b)) : (openBlock(), createElementBlock("div", _hoisted_9$a, [
24358
- createElementVNode("div", _hoisted_10$a, [
24359
- _cache[1] || (_cache[1] = createElementVNode("strong", null, "坐标:", -1)),
24360
- createTextVNode(" " + toDisplayString(_ctx.coordinate[0].toFixed(6)) + ", " + toDisplayString(_ctx.coordinate[1].toFixed(6)), 1)
24361
- ]),
24362
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.tooltipData, (layerData, index2) => {
24363
- return openBlock(), createElementBlock("div", {
24364
- key: layerData.layerId,
24365
- class: "mb-4 last-mb-0"
24366
- }, [
24367
- createElementVNode("h4", _hoisted_11$9, toDisplayString(layerData.layerName), 1),
24368
- (openBlock(true), createElementBlock(Fragment, null, renderList(layerData.features, (feature2, fIndex) => {
24369
- return openBlock(), createElementBlock("div", {
24370
- key: fIndex,
24371
- class: "mb-3 p-2 bg-gray-50 rounded cursor-pointer transition-colors hover-bg-gray-100 last-mb-0",
24372
- onClick: ($event) => handleFeatureClick(feature2, layerData)
24373
- }, [
24374
- (openBlock(true), createElementBlock(Fragment, null, renderList(feature2.properties || feature2, (value, key) => {
24375
- return openBlock(), createElementBlock("div", {
24376
- key,
24377
- class: "flex mb-1 last-mb-0"
24378
- }, [
24379
- createElementVNode("span", _hoisted_13$9, toDisplayString(key) + ":", 1),
24380
- createElementVNode("span", _hoisted_14$8, toDisplayString(formatValue(value)), 1)
24381
- ]);
24382
- }), 128))
24383
- ], 8, _hoisted_12$9);
24384
- }), 128))
24385
- ]);
24386
- }), 128))
24387
- ]))
24388
- ]))
24389
- ], 6)) : createCommentVNode("", true);
24390
- };
24391
- }
24392
- });
24393
24144
  const Property$6 = {
24394
24145
  ELEMENT: "element",
24395
24146
  MAP: "map",
@@ -465124,104 +464875,34 @@ class MapManager {
465124
464875
  this.map = null;
465125
464876
  }
465126
464877
  }
465127
- const _hoisted_1$n = ["id"];
465128
- const _hoisted_2$l = { class: "map-info-panel flex justify-center items-center w-full" };
465129
- const _hoisted_3$l = { class: "font-medium font-mono text-white" };
465130
- const _hoisted_4$k = { class: "font-medium font-mono text-white" };
465131
- const _hoisted_5$k = { class: "font-medium font-mono text-white" };
465132
- const _hoisted_6$i = {
464878
+ const _hoisted_1$o = ["id"];
464879
+ const _hoisted_2$m = {
465133
464880
  class: "absolute top-0 left-0 w-full h-full z-2000",
465134
464881
  "element-loading-text": "地图加载中...",
465135
464882
  "element-loading-background": "rgba(0, 0, 0, 0.3)"
465136
464883
  };
465137
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
464884
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
465138
464885
  __name: "MapContainer",
465139
464886
  props: {
465140
464887
  config: {},
465141
464888
  width: { default: "100%" },
465142
464889
  height: { default: "100%" },
465143
- showToolbar: { type: Boolean, default: void 0 },
465144
- showMapInfo: { type: Boolean, default: void 0 },
465145
464890
  loading: { type: Boolean, default: false },
465146
- userMarkers: {},
465147
- tooltipTemplate: {}
464891
+ userMarkers: {}
465148
464892
  },
465149
- emits: ["map-ready", "map-click", "map-dblclick", "map-contextmenu", "map-move", "zoom-change", "feature-info", "tooltip-show", "tooltip-hide", "feature-click", "measurement-start", "measurement-end", "measurement-result", "context-menu", "search", "search-select", "search-clear", "fullscreen-toggle", "plugin-event"],
464893
+ emits: ["map-ready", "map-click", "map-dblclick", "map-contextmenu", "map-move", "zoom-change"],
465150
464894
  setup(__props, { expose: __expose, emit: __emit }) {
465151
464895
  const props = __props;
465152
464896
  const emit = __emit;
465153
464897
  const eventBus = inject("eventBus");
465154
464898
  const storage2 = inject("storage");
465155
464899
  const mapContainerRef = ref();
465156
- const contextMenuRef = ref();
465157
464900
  const map2 = ref();
465158
464901
  const mapId = ref(`map-${Date.now()}`);
465159
- const measurementType = ref(null);
465160
- ref(false);
465161
- const currentCoordinate = ref("0, 0");
465162
- const currentZoom = ref(0);
465163
- const currentScale = ref("");
465164
- const contextMenuCoordinate = ref([0, 0]);
465165
- ref();
465166
464902
  const isCoordinatePicking = ref(false);
465167
464903
  const coordinatePickCallback = ref(null);
465168
- const startCoordinatePick = (callback) => {
465169
- if (!mapManager.value)
465170
- return;
465171
- isCoordinatePicking.value = true;
465172
- coordinatePickCallback.value = callback;
465173
- mapManager.value.startCoordinatePick();
465174
- };
465175
- const stopCoordinatePick = () => {
465176
- if (!mapManager.value)
465177
- return;
465178
- isCoordinatePicking.value = false;
465179
- coordinatePickCallback.value = null;
465180
- mapManager.value.stopCoordinatePick();
465181
- };
465182
- const tooltipVisible = ref(false);
465183
- const tooltipData = ref(null);
465184
- const tooltipCoordinate = ref([0, 0]);
465185
- const tooltipPixel = ref([0, 0]);
465186
464904
  const mapManager = ref(null);
465187
464905
  provide("map", map2);
465188
- computed(() => ({
465189
- width: typeof props.width === "number" ? `${props.width}px` : props.width,
465190
- height: typeof props.height === "number" ? `${props.height}px` : props.height
465191
- }));
465192
- computed(() => {
465193
- var _a3;
465194
- return props.showToolbar !== void 0 ? props.showToolbar : ((_a3 = props.config.ui) == null ? void 0 : _a3.showToolbar) ?? true;
465195
- });
465196
- const finalShowMapInfo = computed(() => {
465197
- var _a3;
465198
- return props.showMapInfo !== void 0 ? props.showMapInfo : ((_a3 = props.config.ui) == null ? void 0 : _a3.showMapInfo) ?? true;
465199
- });
465200
- const tooltipConfig = computed(() => ({
465201
- enabled: true,
465202
- showCloseButton: true,
465203
- offset: [10, 10],
465204
- maxWidth: 400,
465205
- maxHeight: 300,
465206
- className: "custom-map-tooltip",
465207
- ...props.config.tooltip
465208
- }));
465209
- computed(() => ({
465210
- enabled: true,
465211
- useMitt: true,
465212
- enabledEvents: [
465213
- "map:click",
465214
- "map:dblclick",
465215
- "map:contextmenu",
465216
- "map:pointermove",
465217
- "map:moveend",
465218
- "map:zoomchange",
465219
- "map:featureinfo"
465220
- ],
465221
- debounceDelay: 100,
465222
- enableFeatureInfo: tooltipConfig.value.enabled,
465223
- ...props.config.eventManager
465224
- }));
465225
464906
  watch(
465226
464907
  () => props.config,
465227
464908
  (newConfig) => {
@@ -465234,63 +464915,12 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465234
464915
  watch(
465235
464916
  () => props.userMarkers,
465236
464917
  (newMarkers) => {
465237
- if (mapManager && newMarkers) {
465238
- mapManager.setUserMarkers(newMarkers);
464918
+ if (mapManager.value && newMarkers) {
464919
+ mapManager.value.setUserMarkers(newMarkers);
465239
464920
  }
465240
464921
  },
465241
464922
  { deep: true }
465242
464923
  );
465243
- watch(
465244
- () => props.config.layers,
465245
- (newLayers, oldLayers) => {
465246
- var _a3, _b3;
465247
- if (!mapManager || !newLayers)
465248
- return;
465249
- const layerManager = mapManager.getLayerManager();
465250
- if (!layerManager)
465251
- return;
465252
- if (!oldLayers || newLayers.length !== oldLayers.length) {
465253
- (_a3 = mapManager.value) == null ? void 0 : _a3.clearLayers();
465254
- (_b3 = mapManager.value) == null ? void 0 : _b3.addLayers(newLayers);
465255
- return;
465256
- }
465257
- newLayers.forEach((newLayer, index2) => {
465258
- var _a4, _b4;
465259
- const oldLayer = oldLayers[index2];
465260
- if (oldLayer && newLayer.id === oldLayer.id) {
465261
- const hasChanges = JSON.stringify(newLayer) !== JSON.stringify(oldLayer);
465262
- if (hasChanges) {
465263
- console.log(`更新图层 ${newLayer.id} 的配置:`, newLayer);
465264
- const changedConfig = {};
465265
- if (JSON.stringify(newLayer.style) !== JSON.stringify(oldLayer.style)) {
465266
- changedConfig.style = newLayer.style;
465267
- }
465268
- if (JSON.stringify(newLayer.filter) !== JSON.stringify(oldLayer.filter)) {
465269
- changedConfig.filter = newLayer.filter;
465270
- }
465271
- if (newLayer.visible !== oldLayer.visible) {
465272
- changedConfig.visible = newLayer.visible;
465273
- }
465274
- if (newLayer.opacity !== oldLayer.opacity) {
465275
- changedConfig.opacity = newLayer.opacity;
465276
- }
465277
- if (newLayer.cssClass !== oldLayer.cssClass) {
465278
- changedConfig.cssClass = newLayer.cssClass;
465279
- }
465280
- if (Object.keys(changedConfig).length > 0) {
465281
- console.log(`图层 ${newLayer.id} 发生变化的配置:`, changedConfig);
465282
- layerManager.updateLayerConfig(newLayer.id, changedConfig);
465283
- }
465284
- }
465285
- } else {
465286
- (_a4 = mapManager.value) == null ? void 0 : _a4.clearLayers();
465287
- (_b4 = mapManager.value) == null ? void 0 : _b4.addLayers(newLayers);
465288
- return;
465289
- }
465290
- });
465291
- },
465292
- { deep: true }
465293
- );
465294
464924
  onMounted(async () => {
465295
464925
  await nextTick();
465296
464926
  initMap2();
@@ -465306,7 +464936,6 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465306
464936
  }
465307
464937
  });
465308
464938
  const initMap2 = () => {
465309
- var _a3;
465310
464939
  if (!mapContainerRef.value)
465311
464940
  return;
465312
464941
  if (!eventBus || !storage2) {
@@ -465317,12 +464946,6 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465317
464946
  mapManager.value = new MapManager(props.config, eventBus, storageInstance);
465318
464947
  map2.value = mapManager.value.initMap(mapId.value);
465319
464948
  bindMapEvents();
465320
- if (props.config.layers && props.config.layers.length > 0) {
465321
- (_a3 = mapManager.value.getLayerManager()) == null ? void 0 : _a3.addLayers(props.config.layers);
465322
- }
465323
- if (props.userMarkers && props.userMarkers.length > 0) {
465324
- mapManager.value.setUserMarkers(props.userMarkers);
465325
- }
465326
464949
  emit("map-ready", map2.value);
465327
464950
  };
465328
464951
  const bindMapEvents = () => {
@@ -465347,24 +464970,11 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465347
464970
  onMapMove: (center2, zoom) => {
465348
464971
  emit("map-move", center2, zoom);
465349
464972
  },
465350
- onPointerMove: (coordinate) => {
465351
- currentCoordinate.value = `经度: ${coordinate[0].toFixed(6)}, 纬度: ${coordinate[1].toFixed(6)}`;
465352
- },
465353
464973
  onZoomChange: (zoom, resolution) => {
465354
- var _a3;
465355
- currentZoom.value = Math.round(zoom * 100) / 100;
465356
- const view = (_a3 = map2.value) == null ? void 0 : _a3.getView();
465357
- if (view) {
465358
- const units2 = view.getProjection().getUnits();
465359
- const dpi = 25.4 / 0.28;
465360
- const mpu = METERS_PER_UNIT$3[units2] || 1;
465361
- const scale3 = resolution * mpu * 39.37 * dpi;
465362
- currentScale.value = `1:${Math.round(scale3).toLocaleString()}`;
465363
- }
464974
+ emit("zoom-change", zoom, resolution);
465364
464975
  },
465365
464976
  onContextMenu: (coordinate, pixel) => {
465366
- contextMenuCoordinate.value = coordinate;
465367
- emit("context-menu", coordinate, pixel);
464977
+ emit("map-contextmenu", { coordinate, pixel });
465368
464978
  }
465369
464979
  });
465370
464980
  };
@@ -465387,157 +464997,17 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465387
464997
  view.setMaxZoom(config.maxZoom);
465388
464998
  }
465389
464999
  };
465390
- const zoomIn = () => {
465391
- var _a3;
465392
- const mapOperationTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465393
- if (mapOperationTool) {
465394
- mapOperationTool.zoomIn();
465395
- }
465396
- };
465397
- const zoomOut = () => {
465398
- var _a3;
465399
- const mapOperationTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465400
- if (mapOperationTool) {
465401
- mapOperationTool.zoomOut();
465402
- }
465403
- };
465404
- const fitToExtent = () => {
465405
- var _a3;
465406
- const mapOperationTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465407
- if (mapOperationTool) {
465408
- mapOperationTool.fitToInitialExtent();
465409
- }
465410
- };
465411
- const toggleMeasurement = (type) => {
465412
- var _a3;
465413
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465414
- if (!measurementTool)
465415
- return;
465416
- if (measurementType.value === type) {
465417
- measurementType.value = null;
465418
- measurementTool.stopMeasurement();
465419
- } else {
465420
- measurementType.value = type;
465421
- emit("measurement-start", type);
465422
- const onResult = (result) => {
465423
- emit("measurement-result", result);
465424
- emit("measurement-end", result);
465425
- };
465426
- if (type === "length") {
465427
- measurementTool.startDistanceMeasurement(onResult);
465428
- } else if (type === "area") {
465429
- measurementTool.startAreaMeasurement(onResult);
465430
- } else if (type === "angle") {
465431
- measurementTool.startAngleMeasurement(onResult);
465432
- }
465433
- }
465434
- };
465435
- const clearMeasurements = () => {
465436
- var _a3;
465437
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465438
- if (measurementTool) {
465439
- measurementTool.clearMeasurements();
465440
- }
465441
- measurementType.value = null;
465442
- ElMessage.success("测量结果已清除");
465443
- };
465444
- const getCoordinateInfo = (coordinate) => {
465445
- var _a3;
465446
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465447
- if (!measurementTool)
465448
- return;
465449
- const onResult = (result) => {
465450
- emit("measurement-result", result);
465451
- };
465452
- measurementTool.startCoordinateMeasurement(onResult);
465453
- };
465454
- const onContextMenuVisibleChange = (visible) => {
465455
- };
465456
- const copyCoordinate = () => {
465457
- const coord = contextMenuCoordinate.value;
465458
- const text2 = `${coord[0].toFixed(6)}, ${coord[1].toFixed(6)}`;
465459
- navigator.clipboard.writeText(text2).then(() => {
465460
- ElMessage.success("坐标已复制到剪贴板");
465461
- }).catch(() => {
465462
- ElMessage.error("复制失败");
465463
- });
465464
- };
465465
- const addMarker = () => {
465466
- ElMessage.info("添加标记功能待实现");
465467
- };
465468
- const measureFromHere = () => {
465469
- ElMessage.info("测量功能待实现");
465470
- };
465471
- const clearAll = () => {
465472
- var _a3, _b3, _c2, _d;
465473
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465474
- if (measurementTool) {
465475
- measurementTool.clearMeasurements();
465476
- }
465477
- const mapOperationTool = (_b3 = mapManager.value) == null ? void 0 : _b3.getMapOperationTool();
465478
- if (mapOperationTool) {
465479
- mapOperationTool.clearAllGraphics();
465480
- }
465481
- const drawingManager = (_c2 = mapManager.value) == null ? void 0 : _c2.getDrawingManager();
465482
- if (drawingManager) {
465483
- drawingManager.clearAll();
465484
- }
465485
- const markerAdapter = (_d = mapManager.value) == null ? void 0 : _d.getMarkerAdapter();
465486
- if (markerAdapter) {
465487
- markerAdapter.clearAllMarkers();
465488
- }
465489
- ElMessage.success("已清除所有内容");
465490
- };
465491
- const onTooltipShow = (data) => {
465492
- emit("tooltip-show", data);
465493
- };
465494
- const onTooltipHide = () => {
465495
- tooltipVisible.value = false;
465496
- tooltipData.value = null;
465497
- emit("tooltip-hide");
465498
- };
465499
- const onFeatureClick = (feature2, layerInfo, coordinate, mapCoordinate) => {
465500
- emit("feature-click", feature2, layerInfo, coordinate, mapCoordinate);
465501
- };
465502
- const onTooltipDataLoaded = (data) => {
465503
- };
465504
- const searchLocation = async (query) => {
465505
- if (!mapManager.value)
465506
- return [];
465507
- try {
465508
- const results = await mapManager.value.searchLocation(query);
465509
- return results;
465510
- } catch (error2) {
465511
- console.error("搜索失败:", error2);
465512
- ElMessage.error("搜索失败,请重试");
465513
- return [];
465514
- }
465515
- };
465516
- const clearSearchMarkers = () => {
465517
- if (mapManager.value) {
465518
- mapManager.value.clearSearchMarkers();
465519
- }
465520
- };
465000
+ computed(() => ({
465001
+ width: typeof props.width === "number" ? `${props.width}px` : props.width,
465002
+ height: typeof props.height === "number" ? `${props.height}px` : props.height
465003
+ }));
465521
465004
  __expose({
465522
465005
  getMap: () => map2.value,
465523
465006
  getMapManager: () => mapManager.value,
465524
- getPluginManager: () => pluginManager,
465525
- getEventManager: () => {
465526
- var _a3;
465527
- return (_a3 = mapManager.value) == null ? void 0 : _a3.getEventManager();
465528
- },
465529
- getSearchMarkerManager: () => {
465530
- var _a3;
465531
- return (_a3 = mapManager.value) == null ? void 0 : _a3.getSearchMarkerManager();
465532
- },
465533
465007
  getMeasurementTool: () => {
465534
465008
  var _a3;
465535
465009
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465536
465010
  },
465537
- getMapOperationTool: () => {
465538
- var _a3;
465539
- return (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465540
- },
465541
465011
  getDrawingManager: () => {
465542
465012
  var _a3;
465543
465013
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getDrawingManager();
@@ -465546,33 +465016,13 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465546
465016
  var _a3;
465547
465017
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getLayerManager();
465548
465018
  },
465549
- zoomIn,
465550
- zoomOut,
465551
- fitToExtent,
465552
- toggleMeasurement,
465553
- clearMeasurements,
465554
- clearAll,
465555
- getCoordinateInfo,
465556
- searchLocation,
465557
- clearSearchMarkers,
465558
- startCoordinatePick,
465559
- stopCoordinatePick,
465560
- updateMapConfig,
465561
- showTooltip: (coordinate, pixel, data) => {
465562
- tooltipCoordinate.value = coordinate;
465563
- tooltipPixel.value = pixel;
465564
- tooltipData.value = data;
465565
- tooltipVisible.value = true;
465019
+ getEventManager: () => {
465020
+ var _a3;
465021
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getEventManager();
465566
465022
  },
465567
- hideTooltip: () => {
465568
- tooltipVisible.value = false;
465569
- tooltipData.value = null;
465570
- }
465023
+ updateMapConfig
465571
465024
  });
465572
465025
  return (_ctx, _cache) => {
465573
- const _component_el_dropdown_item = resolveComponent("el-dropdown-item");
465574
- const _component_el_dropdown_menu = resolveComponent("el-dropdown-menu");
465575
- const _component_el_dropdown = resolveComponent("el-dropdown");
465576
465026
  const _directive_loading = resolveDirective("loading");
465577
465027
  return openBlock(), createElementBlock("div", {
465578
465028
  class: "relative w-full h-full overflow-hidden bg-gray-100",
@@ -465582,101 +465032,11 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465582
465032
  createElementVNode("div", {
465583
465033
  id: mapId.value,
465584
465034
  class: "w-full h-full bg-gray-100"
465585
- }, null, 8, _hoisted_1$n),
465586
- withDirectives(createElementVNode("div", _hoisted_2$l, [
465587
- _cache[0] || (_cache[0] = createElementVNode("div", { class: "font-semibold text-white" }, "坐标:", -1)),
465588
- createElementVNode("div", _hoisted_3$l, toDisplayString(currentCoordinate.value), 1),
465589
- _cache[1] || (_cache[1] = createElementVNode("div", { class: "font-semibold text-white" }, "缩放:", -1)),
465590
- createElementVNode("div", _hoisted_4$k, toDisplayString(currentZoom.value), 1),
465591
- _cache[2] || (_cache[2] = createElementVNode("div", { class: "font-semibold text-white" }, "比例尺:", -1)),
465592
- createElementVNode("div", _hoisted_5$k, toDisplayString(currentScale.value), 1)
465593
- ], 512), [
465594
- [vShow, finalShowMapInfo.value]
465595
- ]),
465596
- withDirectives(createVNode$1(_sfc_main$q, {
465597
- config: tooltipConfig.value,
465598
- template: _ctx.tooltipTemplate,
465599
- visible: tooltipVisible.value,
465600
- "tooltip-data": tooltipData.value,
465601
- coordinate: tooltipCoordinate.value,
465602
- pixel: tooltipPixel.value,
465603
- onShow: onTooltipShow,
465604
- onHide: onTooltipHide,
465605
- onFeatureClick,
465606
- onDataLoaded: onTooltipDataLoaded
465607
- }, {
465608
- default: withCtx(({ data = [], formattedData = [], coordinate = [0, 0], pixel = [0, 0] }) => [
465609
- renderSlot(_ctx.$slots, "tooltip", {
465610
- data,
465611
- formattedData,
465612
- coordinate,
465613
- pixel
465614
- }, void 0, true)
465615
- ]),
465616
- _: 3
465617
- }, 8, ["config", "template", "visible", "tooltip-data", "coordinate", "pixel"]), [
465618
- [vShow, tooltipConfig.value.enabled]
465619
- ]),
465620
- withDirectives(createElementVNode("div", _hoisted_6$i, null, 512), [
465035
+ }, null, 8, _hoisted_1$o),
465036
+ withDirectives(createElementVNode("div", _hoisted_2$m, null, 512), [
465621
465037
  [vShow, _ctx.loading],
465622
465038
  [_directive_loading, _ctx.loading]
465623
- ]),
465624
- createVNode$1(_component_el_dropdown, {
465625
- ref_key: "contextMenuRef",
465626
- ref: contextMenuRef,
465627
- teleported: false,
465628
- trigger: "contextmenu",
465629
- onVisibleChange: onContextMenuVisibleChange
465630
- }, {
465631
- dropdown: withCtx(() => [
465632
- createVNode$1(_component_el_dropdown_menu, null, {
465633
- default: withCtx(() => [
465634
- createVNode$1(_component_el_dropdown_item, {
465635
- onClick: copyCoordinate,
465636
- icon: unref(document_copy_default)
465637
- }, {
465638
- default: withCtx(() => [..._cache[3] || (_cache[3] = [
465639
- createTextVNode(" 复制坐标 ", -1)
465640
- ])]),
465641
- _: 1
465642
- }, 8, ["icon"]),
465643
- createVNode$1(_component_el_dropdown_item, {
465644
- onClick: addMarker,
465645
- icon: unref(location_default)
465646
- }, {
465647
- default: withCtx(() => [..._cache[4] || (_cache[4] = [
465648
- createTextVNode(" 添加标记 ", -1)
465649
- ])]),
465650
- _: 1
465651
- }, 8, ["icon"]),
465652
- createVNode$1(_component_el_dropdown_item, {
465653
- onClick: measureFromHere,
465654
- icon: unref(tools_default)
465655
- }, {
465656
- default: withCtx(() => [..._cache[5] || (_cache[5] = [
465657
- createTextVNode(" 从此处测量 ", -1)
465658
- ])]),
465659
- _: 1
465660
- }, 8, ["icon"]),
465661
- createVNode$1(_component_el_dropdown_item, {
465662
- divided: "",
465663
- onClick: clearAll,
465664
- icon: unref(delete_default)
465665
- }, {
465666
- default: withCtx(() => [..._cache[6] || (_cache[6] = [
465667
- createTextVNode(" 清除所有 ", -1)
465668
- ])]),
465669
- _: 1
465670
- }, 8, ["icon"])
465671
- ]),
465672
- _: 1
465673
- })
465674
- ]),
465675
- default: withCtx(() => [
465676
- _cache[7] || (_cache[7] = createElementVNode("div", null, null, -1))
465677
- ]),
465678
- _: 1
465679
- }, 512)
465039
+ ])
465680
465040
  ], 512);
465681
465041
  };
465682
465042
  }
@@ -465688,9 +465048,9 @@ const _export_sfc = (sfc, props) => {
465688
465048
  }
465689
465049
  return target;
465690
465050
  };
465691
- const MapContainer = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-56b0276d"]]);
465692
- const _hoisted_1$m = ["href"];
465693
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
465051
+ const MapContainer = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-53c8deda"]]);
465052
+ const _hoisted_1$n = ["href"];
465053
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465694
465054
  __name: "index",
465695
465055
  props: {
465696
465056
  prefix: { default: "icon" },
@@ -465708,7 +465068,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
465708
465068
  class: computedClass.value,
465709
465069
  "aria-hidden": "true"
465710
465070
  }, _ctx.$attrs), [
465711
- createElementVNode("use", { href: symbolId.value }, null, 8, _hoisted_1$m)
465071
+ createElementVNode("use", { href: symbolId.value }, null, 8, _hoisted_1$n)
465712
465072
  ], 16);
465713
465073
  };
465714
465074
  }
@@ -465909,26 +465269,26 @@ class DialogCacheManager {
465909
465269
  }
465910
465270
  const dialogCacheManager = new DialogCacheManager();
465911
465271
  const dialogCacheManager$1 = dialogCacheManager;
465912
- const _hoisted_1$l = { class: "text-base font-semibold text-gray-800 flex-1 overflow-hidden text-ellipsis whitespace-nowrap" };
465913
- const _hoisted_2$k = { class: "flex items-center gap-2" };
465914
- const _hoisted_3$k = { class: "flex-1 overflow-auto min-h-0 h-0" };
465915
- const _hoisted_4$j = {
465272
+ const _hoisted_1$m = { class: "text-base font-semibold text-gray-800 flex-1 overflow-hidden text-ellipsis whitespace-nowrap" };
465273
+ const _hoisted_2$l = { class: "flex items-center gap-2" };
465274
+ const _hoisted_3$l = { class: "flex-1 overflow-auto min-h-0 h-0" };
465275
+ const _hoisted_4$k = {
465916
465276
  key: 0,
465917
465277
  class: "px-5 py-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3"
465918
465278
  };
465919
- const _hoisted_5$j = ["onMousedown"];
465920
- const _hoisted_6$h = { class: "text-base font-semibold text-gray-800 flex-1 overflow-hidden text-ellipsis whitespace-nowrap" };
465921
- const _hoisted_7$d = { class: "flex items-center gap-2" };
465922
- const _hoisted_8$a = { class: "flex-1 overflow-auto min-h-0 h-0" };
465923
- const _hoisted_9$9 = {
465279
+ const _hoisted_5$k = ["onMousedown"];
465280
+ const _hoisted_6$i = { class: "text-base font-semibold text-gray-800 flex-1 overflow-hidden text-ellipsis whitespace-nowrap" };
465281
+ const _hoisted_7$e = { class: "flex items-center gap-2" };
465282
+ const _hoisted_8$b = { class: "flex-1 overflow-auto min-h-0 h-0" };
465283
+ const _hoisted_9$a = {
465924
465284
  key: 0,
465925
465285
  class: "px-5 py-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3"
465926
465286
  };
465927
- const _hoisted_10$9 = {
465287
+ const _hoisted_10$a = {
465928
465288
  key: 1,
465929
465289
  class: "absolute top-0 left-0 w-full h-full pointer-events-none"
465930
465290
  };
465931
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
465291
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
465932
465292
  ...{
465933
465293
  inheritAttrs: false
465934
465294
  },
@@ -466350,12 +465710,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466350
465710
  class: normalizeClass(["flex items-center justify-between px-5 py-4 border-b border-gray-200 bg-gray-50", { "cursor-move": _ctx.draggable && !isFullscreen.value }]),
466351
465711
  onMousedown: startDrag
466352
465712
  }, [
466353
- createElementVNode("div", _hoisted_1$l, [
465713
+ createElementVNode("div", _hoisted_1$m, [
466354
465714
  renderSlot(_ctx.$slots, "title", {}, () => [
466355
465715
  createTextVNode(toDisplayString(_ctx.title), 1)
466356
465716
  ], true)
466357
465717
  ]),
466358
- createElementVNode("div", _hoisted_2$k, [
465718
+ createElementVNode("div", _hoisted_2$l, [
466359
465719
  _ctx.showFullscreen ? (openBlock(), createBlock(unref(ElButton), {
466360
465720
  key: 0,
466361
465721
  class: "w-6 h-6 border-none bg-transparent cursor-pointer flex items-center justify-center rounded text-gray-500 transition-all duration-200 hover:bg-gray-200 hover:text-gray-600",
@@ -466363,7 +465723,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466363
465723
  title: isFullscreen.value ? "退出全屏" : "全屏"
466364
465724
  }, {
466365
465725
  default: withCtx(() => [
466366
- createVNode$1(_sfc_main$o, {
465726
+ createVNode$1(_sfc_main$p, {
466367
465727
  name: isFullscreen.value ? "exit-fullscreen" : "fullscreen"
466368
465728
  }, null, 8, ["name"])
466369
465729
  ]),
@@ -466376,16 +465736,16 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466376
465736
  title: "关闭"
466377
465737
  }, {
466378
465738
  default: withCtx(() => [
466379
- createVNode$1(_sfc_main$o, { name: "close" })
465739
+ createVNode$1(_sfc_main$p, { name: "close" })
466380
465740
  ]),
466381
465741
  _: 1
466382
465742
  })) : createCommentVNode("", true)
466383
465743
  ])
466384
465744
  ], 34),
466385
- createElementVNode("div", _hoisted_3$k, [
465745
+ createElementVNode("div", _hoisted_3$l, [
466386
465746
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
466387
465747
  ]),
466388
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_4$j, [
465748
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_4$k, [
466389
465749
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
466390
465750
  ])) : createCommentVNode("", true),
466391
465751
  _ctx.resizable && !isFullscreen.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, renderList(resizeDirections, (direction2) => {
@@ -466393,7 +465753,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466393
465753
  key: direction2,
466394
465754
  class: normalizeClass(`absolute bg-transparent z-10 pointer-events-auto resize-${direction2}`),
466395
465755
  onMousedown: ($event) => startResize($event, direction2)
466396
- }, null, 42, _hoisted_5$j);
465756
+ }, null, 42, _hoisted_5$k);
466397
465757
  }), 64)) : createCommentVNode("", true)
466398
465758
  ], 16)
466399
465759
  ], 6)) : createCommentVNode("", true)
@@ -466433,12 +465793,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466433
465793
  class: normalizeClass(["flex items-center justify-between px-5 py-4 border-b border-gray-200 bg-gray-50", { "cursor-move": _ctx.draggable && !isFullscreen.value }]),
466434
465794
  onMousedown: startDrag
466435
465795
  }, [
466436
- createElementVNode("div", _hoisted_6$h, [
465796
+ createElementVNode("div", _hoisted_6$i, [
466437
465797
  renderSlot(_ctx.$slots, "title", {}, () => [
466438
465798
  createTextVNode(toDisplayString(_ctx.title), 1)
466439
465799
  ], true)
466440
465800
  ]),
466441
- createElementVNode("div", _hoisted_7$d, [
465801
+ createElementVNode("div", _hoisted_7$e, [
466442
465802
  _ctx.showFullscreen ? (openBlock(), createBlock(unref(ElButton), {
466443
465803
  key: 0,
466444
465804
  class: "w-6 h-6 border-none bg-transparent cursor-pointer flex items-center justify-center rounded text-gray-500 transition-all duration-200 hover:bg-gray-200 hover:text-gray-600",
@@ -466446,7 +465806,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466446
465806
  title: isFullscreen.value ? "退出全屏" : "全屏"
466447
465807
  }, {
466448
465808
  default: withCtx(() => [
466449
- createVNode$1(_sfc_main$o, {
465809
+ createVNode$1(_sfc_main$p, {
466450
465810
  name: isFullscreen.value ? "exit-fullscreen" : "fullscreen"
466451
465811
  }, null, 8, ["name"])
466452
465812
  ]),
@@ -466459,19 +465819,19 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466459
465819
  title: "关闭"
466460
465820
  }, {
466461
465821
  default: withCtx(() => [
466462
- createVNode$1(_sfc_main$o, { name: "close" })
465822
+ createVNode$1(_sfc_main$p, { name: "close" })
466463
465823
  ]),
466464
465824
  _: 1
466465
465825
  })) : createCommentVNode("", true)
466466
465826
  ])
466467
465827
  ], 34),
466468
- createElementVNode("div", _hoisted_8$a, [
465828
+ createElementVNode("div", _hoisted_8$b, [
466469
465829
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
466470
465830
  ]),
466471
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_9$9, [
465831
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_9$a, [
466472
465832
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
466473
465833
  ])) : createCommentVNode("", true),
466474
- _ctx.resizable && !isFullscreen.value ? (openBlock(), createElementBlock("div", _hoisted_10$9, [
465834
+ _ctx.resizable && !isFullscreen.value ? (openBlock(), createElementBlock("div", _hoisted_10$a, [
466475
465835
  createElementVNode("div", {
466476
465836
  class: "absolute top-0 left-2 right-2 h-1 cursor-n-resize pointer-events-auto",
466477
465837
  onMousedown: _cache[1] || (_cache[1] = ($event) => startResize($event, "n"))
@@ -466510,7 +465870,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466510
465870
  };
466511
465871
  }
466512
465872
  });
466513
- const CustomDialog = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-77d2a6ed"]]);
465873
+ const CustomDialog = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-77d2a6ed"]]);
466514
465874
  const tdtImgUrl = "data:image/png;base64,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";
466515
465875
  const tdtVecUrl = "data:image/png;base64,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";
466516
465876
  const gaodeImgUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAABACAYAAACtK6/LAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVRogTW7SbNtx3mm92Sz+rV2v09z77ktAIIARRAgxaaoXlbRVS5LtiPsCLkGnrv5JZ544PDQkxq4HHaEXeWoUMiSKdsUWSoKAEmARHs73HtPf3a/V79WZnpw5Z+Q+WXm+33P+6b4H//lf/9TJ8T93nT948tPqXcbRjKiFYp111Lvc4Sv+e7b3+Xe/E26vmEyGtO1DaeLhiD/mN9V/y038j0+tH/OJHE4OQI3QCnIBkO00lycXmC8kuvtY758/ClNX/KtN7/L67e/h9YhTVORZRl979huLzk//4C63jIazqlax4PpjgezDYHuOMuHfLm+xVcXS66vzpnNRkglwcF0POFmseaTTz/HOkccJdD2KCeIQp/eWGaTsa765rl+evab18eT7LCpGvq2o+7gotkTJAFCGLJxhJIBp4uX7Ootw9GAZ8tPuLxeoazkz44/4fZY8tHyLpf5GiEURwcj4lChtMLaEodjchywbyryiwLnLNPpFD+WCH9L260p2x3FwmKNo6oLyq5ChyGFkQQi5+5ByaOriEV5wGR+QEdP3/UkaYpUEESKNBkSeBl9v+JgPscPfKq6RhlHpDzarkU7kFoyjEZaay1r1xuKvCBf5zS9YzAcEsWausmxxpGmKVGYsM23PHv+jG2+I4wn/MGtlneCn/O4ep1PqjcRsqHqPfb7FW2bY52j6zp2ux032zVV11FXFaPRmDiNWK2X5OslgfYBR9t1VFVJ23ZYBwcHB3h+jCkr9qXjfNGysYp4rCjzLUrCW6+9S+D5oByjwZi2guy129xsX/LkxWcoqfC0R150FGVHHHrc3NyQxkmthRBuu91RVRV+4CM9iKKILA2xpqXHEoURdVVzfXXNrtiRZHMeHoz5wfBnOB3wYf5DSiPQfYXREgR0vaHrOoQQ5EVJ3VRYLdCBIo4iwsDH9zx8JIF+VZVdWZG3LUoqsjRDC4nua3rrYYxkOpAol9A2La6vSALF7dkJtw5fo6oapBBUfs2OHY+efc7Z2TlSgNYRzvo44WGRTMZTJoNDpy09QRiw2WxRniZKI6yr0CRM4inGOeqqYbVZ0/QdOk1QXkjaLpjJZzzrHnJqHzJMSnYbx3a7I9I+cRzTdT3WGKQQ6FCzrdZIJ0lUgFQSY3pQHkJIiqpisd3gpEA4i9d3TEUKbYs1Fonj3smMfp1weXlJ3zYIZ1hvnmNsS1FWXF5fcnG1YLPdstkvEQiEEDjn6LoG5wQEIXdO7vHuN/8Q7QchtulIkwQZ+BhpAYHAMcjGbHc7qjJHCUkQBNhA40kPH4PEsq40682e2QCyLIPeoKRCSgk4TN/h+z51XuMc+GFA17eYvEU48JIMPAs4tKdRStH2Hc5ZjHU0teX2vGQ+Elz3A/Z5hbOGwWBI33ZcXr/gF59/zPn1Nbv1Ftc7ojBkNBoi1BjrHE3T4GmB8jys7dmWOS8un6OLoiT2fbwgoGwbpK/JsowoTKjKmrIqABBSIoUAYwmjABeOMDJiHBpmwxHa7bDOEIURURCghAApMEoglGY4HOJKR+RHJEEMFnwVMogy0iSm7cDfbOnbntTzOcomCEKOJivevr1i3Zxwto1RYs9kMsJTEcvFmu1mx3Kxoioq0iThcJIxG4/ojGW5r2hbA0CSRmjtsdvt+PzpF3zy6DP0zXrDaJAQRjGxP8T3I5w1LFZr8qKkqiq0ViipcL2FzkHSUwYTFuaYe+Ep92TFVT/GVguM6VnnWza7LRaBCgKiMGA8HuF5gvnwPsfTB0ihiYKMfF+x2d2g5ZZRmlK3LYMoJguGDMKaB9M1i2LIdXWA0pLDgylVVfHk9JIXF1dsViskMJ/O0FoT+AJrHUJKBoPBq7dACtq2pShKmqZBKIGSAo0RhEmEVholfJq6pW1qlHp1dNM4RWuf1WpJVZUopWmrHWdO8ffmDR4EX3Kn+dd8uPoTtGeJPEFvDJVw2K4jlpJWCtpNQRREhF5K3dQoqen7nqZt6bqCKAo48A7Ii5w0GRFqj/uzZ6w3khe7W6SDgI6a1Tbn4vyCRVHgfIdOfWKpCbUCBwKLwxL4EUN/QC4KWj/k+fkpdf1qXWmS4PsB+ujoNoPIoyhK8iZHq4h3XvsuoR+y2+8ZD6dsV3suwwu+vPoYXIdwLW2z5fPymF+W3+W9+KfkswO+Sv8LsmiANDVFsWZVnNLUOXGU0PUV682K9eoDkizFDzycNSQ6pC4qkjRiEMfQ9njE3JuucX3Dy+spXhThRMvZYsF6v8ULfIYyprq8JNOSaTYgjWKccyiliOOUIAi5Xq3ZNyV10+AAIQUCiOMYzw/QD2YDehFjKsmuvuH45A4n8/t4KiRwK0IdYHzBbGS57CfU+QJfKzQWrODn5Q8YyD0/GH3BnckNK3HEzVpTOYOnfYyvSeKEqrEY11HVFVa2DOSAKAzR2hEmCikd0sEwm5PFDZPwki9OR2TTr3E0iXh0+ZyyKonjGK011/sdQRTw1oPvcDx5QOD7FEWJUpLxaMbFzVP+/otPWO129HVLV9RYa0jiCESPlB769fGSJ/sU01uybIDD8dXVI6q6YrVeIJRE+yHbek/bvdLgyXiCEh6q15gg4W/tf8xy9zHf8v4nThR8Ur/NBe9SdAZtHNYawjBkPJ7iea+UQymNMQ4VeGTxECkg8mJc55iHX7CrPDbdHe7enaJ8i9M+XhBSdTX7uiTwfQIpGWdTBukBAH0nybKMMIx59uI5m+WawPMYDcb0cUfbtMRJSDqIaJsG/eWio9U989GIsqtZ7ha8vHzOPt9jeoNUklZ0hHGErzyUDJEixPd8ojDAmZ5WhnzED7m6ecr3vL/hbf4F1j7mV96fYpQkFgo/TNk3LZ7n8Iygri1pHNI14DxJOhhgW83If4om58n6LhfrktPlzzFKUpY1jS2pbU2URMzSjGazY7c/IwgcZZFTlHte3kiuFku+ePw5SRBzMJ+DEPg6ZjY6YjgYMhxmvDh7jH6+GXD7lib1PbbXe5q2ZbvZoZQiiSOCIABXkyXRK91tJXleQyRRWhD4Pp40ICue1re4qP6cH6U/5r3wfZrmDo/0D0ki6K2jrBscAi01V9dL2sihxgElDtu3bBY3HIXPyAdDLtaaxfUp+3JDg8P3AlQo6KVBIJBKkWVDrK35/Iv3Wa3XDAYDisZycb1kPBowmUxp2obdfsf3vvFt3n7j2+AszklMK9E/uK3ZqZCL7ZqL3YoyzxEKgtCnN4ZYS+bxFNG1hGnKrndcLpdURcEgjIjCiCRJiKKIYdBTND4fmz9iXH7JG+HfcWbfYV2FmHqHMo4gDBCto1o7ypsW3Tu2smKxOMei2R89ZNBYtssbymoPWpKFHrP5jDzfURQNXmuxoiGJU0IvoveHqFHIssxZbXdIIZlMpjjnqKoKZx0XixdoT7Lfb5mOR5TlFv367IqPlzOWuxzr4Gh2myiKsNZijCXwPHwpqLsdnZEIDcPxkKqoMAiMhs4Z+v2eJI6YjnyqNua0fouvB78k1Qtu2jv4znBrMKW3Hbtyx8FsTL63LFc3hFGEUg2Hw57ReIpUltmwZZXvqUSDH0qMq8niiINsiHOOtigRQYyyDtk72sqw3ZesN1uiIGSxWABgjKEsS569/IKPPv2Aotjz+r1j4jBGt33HPLkh8EMG8wFvTN8mjVO6tiVKYsIw5PnpE160n9E5iHVAogJyNJ141UxIrcBZdvucuLcMowNEOMKZCtNeUrQHpIGP63ussYzHY6KwpSgqPC/Gj4bEes1rg6e83Pa8XI2YpwnTyYRlvUN7gqbuSAYJSRCx3q6p25ayrkEIyqqiqgpM33FwcIiWkvV6zXQ6ZbfbAdB1PabrGY8m9FZxfbNBd5+Pee2311wcH7MoxkgpMK5F+ZKqzSnaHVJZtKcJPMXIj1BIfCdYdxVVWyO0TxZFVE7QNx25rKmlAiXId0tuygXhWOOhCJRGSoF1HUnq8bXXX6duJOvLBWEgCT2J6Xo2RUsSx4jIwyhHKDW+fTUiB76PSEEEmk1VUGNorSUUmslkzHaXE0URXddhjOH4+BbL5YJsOMALI5ZFznq9Qgef+Zy95vGNyTlftIJ1q1iub7Cmp64ruq4nDQJs3yNFyHK/RSuNE4JAatLBBE8plHHEvk8rJGVfg1pjPJ8mOEBZzXWxYRBlDJKErmkRQjKdTLlzfEJTQ7d6SlP1eCgGaUrT7wn9gDBMeba4ZLvbMPYDvEgglcSPAtCSrmqxArRSZHFEVzdY2yOl4PLykvFoTJImNF2LJySbiwv61ZKhFGjuGn55PuZksOe9wwt+szB8ua8QtsFXmt50dL1kGKdYKdh2DXVd4DrDJEzI0oyqaVgUe5ywICNk0zAaLulkQiHnhL7ENBJjDU1boxBEUYBUgtPTM6qyxwqI4phVbcFBFL7qMK9OV+xNw0E2Jopjuq6itz3Sulf3djTn9PyGVmiKuqWvOhorub7eoZVPYSRX64Lb03vkNwtGKubWaweIMEL3395wr4BPrk9AbHlt9JzT4QmbLsOZEs+Bpz201hgJwoLtHdpTdH3L5dU5nXFYT4BwYCR3xlNc9F2elldYFyOaHO0E9JbOQpoNcMZRVz1X/ZLT6y3arrmVOZQKiOKU2m346vqK7W7H/Qd3GQ2HNEWJtQqpU7x4SOs8qiKnKA1VW6JFTSh7xiLn+KhmNgrpzEsGkcc3pns+i+HXP/rP8e48YFcX6B9/Bb/7YMl7uuLD50MSHfC9k4KfvAgpjSKOYwKhMdYShQmBF9LoGiGgaRr6rkfIHikkUgl6YDKeU3lvcJ5/Rew11LpAEjAbHzEIj1BC46SgbCoa9jSyw+8bXLfhYHyATQ/48qrFjyJGUpPnPVWzJ8tGxKHGMxUju2KiN2TZFb8Tr1BeSaz2CFcSiZo4knjCgejBwcD7Nc69yf8ZGhbLK8z1JfrJVYoj5PfubfnhvSVnuzGDeMc7s5xHyzFRqBESjHNEaoDsA+4eD7E4qqqmKAsMNXmzIi9ymt6wL7bEs5bjccf12iG1h3AGpT2c8ah6ge/7JKqmb3NOZMl0EBLInlnyBO3m1E3Fvaih7Xq+vNJ4vs88KbhrX3BXP2Ogrwh0QWc6OhtQGFgVEcPpG1Ryzl54NJ0hiWPWBbQFPN9mzH72F5zfXBBa0PdnKUpkfHQ14rdvXXMi1uxqxcPhKV1/iPFvgaowDrQdkq96Qj3C80MiVdPsrwiigNpu6ZoGpKZsasrtOYmsiMM75K1HZzquyxWeakmE5Mj3GaSWza6kw7FwIRN9SNUWiP4XnISGpYiZpT1fG50zcCuS/CWJuaFxKWfNiC+uH/DlasDVXvPicsNo/ho/+oN/zjA9pKobWtcwSVO8oWZxs4d+yYB/w7atSZMRervdMRlJyi7lNzd3eDC4YpqWSFdzd/iC5/UJuCG+6vGjV+wt79Y0ZUNd5xA4OnryvMA4S+BphAsJ2lNu+e/zSPynoEcE0qE9n6HYMDY59UZyKWO2xmdrB3hty9sKFs0JT5chRdexXLb8dvoB3599gE9JHhzw0e53+dXiAc82Huf7irIuaKo9RkYcRJK6uUTnO/rWopRHV6wp2grbQdGvcKOYxB7SbEs0CBASayqaVvNscw9PFEyiCXeyFxzIv+dF8S5+EFJVC/KuASmpqj1VvSEIglfMDkkcJfQOkI7WeJSlIgglTigUitd9mEjB2d7nWafZ1x2+6hFSYbsWi6GVKVfFASf8gn88/ylT9RWL8hYb/x5PzVt8Wh2zo0JHKw4VXF8XxLHg3t232G63/PzXP0Z5EKG4NbtN1TQ8Ov8K5QcI53BY+qZlX5fo+XCCMJaqrjB+QGl6ytpxVcxY5PDO4WNuBz1nzXdY7St23ZpsMkSFAZGIaNqGzjRoHFmUsGkKCrPns+ZtPlmekN27w0GUM2hbhqblrPb4zcqCrPGloK1baiPw/IyyS5h55/z7w3/Hne7/pnAZH/Q/4kp8GyemqCxhxIKmvUGhqGqHUprpdEqaZZTlKyRW7HMmymeeZaw3Oat8i7OOSZiihKRuKhAC3dY12FeQb7Hf0kteTWqu4byM8Dev8c3pc7T+kL57SOfNCLVHFgW0vqapa4R19FVF19Zo5SOlIosDApUS6oK5y3EBLNWQrdNEfo1BoIOAPNe0eBz6LePdx9wXv6Lt4Rnf5/Puh+TBA1pTooqc2Dbsd2uKsqbI9+T7gtsnJ4RBwNXlFV3fEwYRXqQ5mczJshFFC7PRjF2xQwYaay3aSLpWoC+LDWEUUOQVzlnG0wlhEBIISdt0nO0HKPc2d8KP+a1Zzkb+HvvuHs52lLuOo9kdHBY7rNgWC4btjrE2zIIGP1qyaSSFGLFuFDoMSEzFvmswUpD2ioHYcmd0yTfTT5nZZxRizM+aP2Eb/QmHRwl3E8vNtufzR895ttmgk4j9bs8+33L79jG+L7m8OqVpasIwIg19tBcxnIyp+h4jHKK3DJMEozqqsiKMAoRV6PPVmmQ4BAuRH+FUCDrEGIcV4HmCz1dwah7yh28LjpI97Nb0pJT+nNHoBO0JPLYcbnL63Zqi7bhsJ2xufDopUcczdqunTPIldd9DbZHKo+8M72Zf8G72d+zsEY/9f44eDxkPHMNAMZ9OcbZiW5coqYiThLypyYuc+XxONow4PzujMw2jyYAkTgjDgLZpqZuaomhZbrdIKfEizbLYo6NXvoPoFLrpQdY9SZTgRxm98NjXPbHQKBnR9C1G77HBIUv3HlPRMQg+JvEWzLL7mCBBtD2snhLTs9IjnmxyItlwGG9R2mOxyHkSaj64/RYTT1LalrUxOD9C2pTidMDKvsNo/o/o26ck3f/LcfY+UqRc7Q3X19ekWYoFbjYrbh0fc3LnNlfXpzgEo8EIP/DJ0gypJE3Tss9z9tsS1xvm4ynr/YqTyTGe57FZb2lFhxZ42B6aqiGOIrRS+J6HJxR924OAcTpiGiYoYejkFBW/Tdf9kqD/mLb4EJc3WHdAkX4HOzgmrp9wdP0XfCf5AOM028qxO36TH09vs1BzNq2m7GuUp/l09Rp5FzOJNEl3yq8eX5CXA/6Drz3jyPnsd2/SdRopQ6RomE5nHBwd4JzDGkngJcRRjGk6VK/ouleOjMESxCHzNMHXHqGaMxqP6bqOvjSstjdo2Qo85eFLHykkSkmUVjhlMbQo7VH1jk1ekuor/Fhh9AGV+BNCfUEoP6U3T1BiQ6w/QPAN7sgz7uu/IRRLbAuphu9eG8qzv+TUHnHsx0SeotgXeM4SjobULXz0+AVV1eB7t2hMjVIdvpaMRnOUFgwHUy7WZ6xWK+q6oSwahPRI4wGdqaAT1F1L0dYEgU8YR5hesiz2DIZD1mXBZrthvd+wK3bo2LcczzOy4RgX+TjhaNqGWtRY29DWjqrXZL4laPekdUmWKNreUauHEN9nUXzE9fUnDKKaB+pfcb/5FZ5cUraC3gT8uvwOz/V3UT0kmx0irrChR7ff4vkRrk+52W44zVeMB7f47eOOhwchu/42dSfJ0oAwzlhtlmit6I2hbVuEeKVMcZzgJQNc17O73hKpAOV5bKuKMm9o25ZFk9OYjuV6g8SShCFaRR2dyunQKJvR9gZrDdY1KC3QymMYhNwezbg3vUWoQkxvwFmMWZHnNdeF4sn+Nt+of8Hd6MdoCwvvTZLuOWX4gK/C/4hTq3HNgk5A0VT0dY1KYlSYsG0KVsUWPxhybyL42vycdPxN1tsH+GKHVoLr1YLPnj3C9yyDLKPvesbjMWEYst5tmR3MORiNCIzDL0Kerq+43m3wjSD0A/a7HaXt8AKf6WhEJj20iAIK01GtF6RBzdHhEQjBfuvQzifyQ4Tt8OqWRETEcYJxBuMKLjaXXG17mnzND8L/h+8H/xeX+xEfun/GfOzxHf4XZK9oCkFdL3EUyEATuoC+afHQDNOUuioROubNgzH/6NYpq9Lw1cshg0wQJB69hbpr2XUVLi8YpzGj0Yg0TVksl+zznJODQ7RS5LbnbLtmvdySej7j+Yi8KFAoHszmjEZD6rbh5vIGLWRAEEYIYwm0YpTFNE2PiAd0rcH2BiMbOhxWeFgZ0HYduy7kYmPx9l/yu95f8w3vl3xVvs6/3v0+L8QBd1rLJLrL19PPuGV+wnlzjyQdEPk+y2qNU4osSzkcTqjQqDTknfmGvt7wd48PqMQzpqMzhsMRh4MjwiBkPprS1R5ZHOCE5Or6mrZp+frD13l4cMTjly/4+OwJF9sV4yjkzuQQ5wfYuuXo1i0mozGbbc7N5YZN1aMNgl5LPN/Hi1L2bUNnDDIYULWWUIVMJimH6SE9AS9enFHlCwbelm+7n/FG+jPG3pZf5D/krzbv8qw2NN1jvnRj7oxv8Vvh+/zxgwveGv4zzncxn7x4zma94eGDe3z3m++hjeBps2J6dMNB8ownyxPw5vTlNc9e5rzuv8Y0HWOqisMwYjBN2TY7Pnn+DN0KHty+y62DORfllkfXZ4Dj/mxC7PtYLJmrEYEijQNuVjv22zU/+pZk7ybotKkIT3d0raH1Aoo4YjyaMghrjoOSedxzoBxZlWMWF8yLS3xyJuR4Mue0us1fL36PM/9tVmpPkT+hrivwBY8LxcX8GwxP/px88J+hohXh9YLJZMbx0evM4gl9BycnGWPzCOGG3HrtH9N4V7w8LRglCamXsd2WtLXB0wnbpmVROIbZMYfZhEE04GbV8OnFGaerHdPBmNkoY7Xe8vV5ze+8IfmLX5b8/PEW1Sv+w9+O+eP3NMvGoqswY3B8jGo6OtOxEwqrM6bhBf8k/t/w+pxm7dE5QSdCOhXQk/CoPuLj/JCP1gcYOWQa7TDdmrpraOoSYRzPnOXnxXfolv+E//nphPdCj396p+Xt2ZZcXHL+1RoVPeRoeIbdnLJW32U8Oia4OOdwNIH5DzDRMdu8IhhKZOizL1umxx59Jzns/pa5/Iy8rNkEFQwF42nMKKi5E5V8717OKA1ZVSFpUPFn3/d4/Y7iF49i3lob9C8O3uThH/wRR8qQ1wWbtqV1ULXnvPnympfXK677iHByFxHO2OQdnfG4yjuWncVPJGPZYosNkXIcD8bsgxQlFZ3p+OC04fdmP+a/fs2itl9wW35CMIJ19YjcJVhb4NenPN3MuXYHbPobNluomgTUXQ4OHuANAWcIPMnBwDHLJKeLLcH6lKFekKQ+o9Di7jqCaE3X+9hOMYlbNrni6wchf/qtAWEY8lefdtjc53degv4v7/1bovILHi2mXO1m7IzESbixAf9m+T0uV1dAh9/4DAcetnd0bUUUah5mir59NWHJ4JAHD7/HIMt4turRUjDNfC7OL9BqyZv1z+nlkt/kP6DSX+PWSFLFAtHvKc3r7LIRt/UZmficZFhShZbH1ROeX2VoGox1SCnR9OQ7WG7XeN0xOj5mX2mwW946eIwWhsf5a7y4vMAPLLdHJf/eO5ZHV1P+95/ccL7vePuoYx376P9k/3e8/2jOh18NwQ6ZCEESJYyzW1w2hr4rSLRBVJaOLUEYEsUeWRpS5AVVvmeQDpg/+GPk5HsMUsn9pKXpDaOow+opF8Ljcr3naAgfNjNeLMb80TDG2hzFjpsqIFQ1d4LPCZpzxpHHPBPsNx9zfrUizVIcmqKsXqWrfJ9ZWzBxjtYeE/g3TPxrqrrii8sROSGNPuLDy4RVsWTXwt983rLctcyGPq1u+D8mBv3f/fQ2K32XFg/VVwhh8XootlusUMRhgJbdK2jRSx7O3yBOUjAg2gW1X1HUFd76Odr49BuH6RuiKMM2Od7yK5rwHiqIUatn/I75nG8NZ9j1N3lRTbmdfMXrXsdVPuFvHu2wreb28IDRcIxEMuGSoPLxpEfYN4RBgKcCnC+ZiYZY/xQvrnh23fBym7KuI8riKce3j4gG93leTHl5c8PJ8ZB3HnwL4TqEgsZp9C/yQwapI5AWYXysdRTGsDcbkijGmBYnatq24a0H93lw+22kkGxWe3zZsN0VXNyc0z97RpKkSM9HSvj67QdMb53g3J4XTz8hr1vqQPH95H3+4OBLVs0ct/gBTXjC6/dWHI/m/PVLxYsFNO2OmUnxg5jVakGzzRllGYdHh6Rpxi5vaLuWcH6BdGs+fjHn5y8k18WOKKzQwuI3KZtVza6suH18xN3odboSwshHSclgkKFTbYg1VFWN6z36/z85KcH0Bt9XWFEhBCy3S372y58RBgFaKup6TRQHpNmAi8UlRblB+T5JGLHQEtVU7PuWL69fUOUFgwfv8Cz9U3aXP+MN76f8aPAvuGrvsz69R3qw5HceHCH6mOebPUaeE6iYzWaN6h1KCOZuziav2e9y3j78ik6W/OTJnE+eFqyqS1pXYEnxvIjfPH6OsQYjepq2wp/HzNJDnO7YNQXFZoUumorheMBBOqRtHMv1iqYsUdLDAc5KjOsREh4/e0LfPwHnUEown4y5c+cOw4EjjHzWqzVVY6grybOLLc9vduSmJI4j7t++j/Tgo7MFTfmQj4ID3umf843REyb9z+muA9LR1ylO3uOm0Ail8SLoNjVhFJJlPpYOawu+fvCIYbjn353N+eRsT15fU24XZFnGQIes9xXbosbzNWGkWKxWfMFnmLCmWO3ZFzuapkaLUOFrj0hpdAq9ixBYrHnFu8qqwloLAkzf4HBIKXDW0feOojEEWnE4GWJC2G1vaPuOWhisb1GR42R2yOFwzMXVFX1vmU0PadSET8WbrIThQHzKA/M3HOcf8M2oYn3vj2lGb7LeXFI0BbfnMw5nM5pecC89ZxbX/Pr0kE+f7cHtUdq9yvwMR5je0rR7wkQShT7zZMhsOCEIfbabBev1Fu0rPCXRYz9m7ke0Vct1uSZOEgaDAftdi5QWKRV9b/7hFLxKViglqeuGqmpo2ms0Hvubkq435E1LkHj4vk+vevzwlc+3z3eEQcLrr73DMBnT9CV1Y2nEkPzwD3l/8S1e2wuOh8YAAAnzSURBVP0PvKs/5qEZ8ZPLIeu6IQwDqqpmsdrQNIY3B+ec7yY8X3nYviZUGiM99GCI8jx6UzMZpehQkqYpx8khgyCjrEqW9ZbatCRqhBEW/c0Hb3Jvfsx2l9PdXHO1vWK/2xN6EXEUEgQC+oiyLnGEhPGQuqooywbnLF3X02KoaV6RUU9incVYg1YC2fVcXF3ia8XB7Jg0HRL5Q/oeQmU4GA4ZT1L+6kXGT569y3/jVzyU7/MXpwO+ag8Z+FCUBZ6LGUUtgdfz6VnB88stvraY1pJ4AVfLG7bbLVmW4QWS1IuYpCP6rmdZrrDOsqnW9MpDO4ExBv1br/8ug3TIrRNDevmCjx7/inz/KV7gEMqQ+j6idyShpup6yrag7Uqi+FUQue9fmQ44hRQS7WmKvKBtWzwnEM6wKUqElFRNT1X9hFAFxEHAYDBkefqS7mXL5fULVvIOH1WGPxv/Jb+VXVN2bxEFBtULjgYt795ZURuPl0uLdT1d22GtoyxfxUpnhwfMZnP2xZr9PqeuawbhmNhLaLsW0/foMMBZqMoGPRiMwDm0FzBIU+apT3MwYrFv2Wy2HE5n4ByBH+JFlkg09EYTBAFd15DneyQepgswxrzaUaXxtKDtK/q+xRiDVIKirDg9f0kQhkxnE+JNghISIQTW9Bxmx3y+P+GdYMj3Djb46R12XcDZi+ecTBbUjeFnz1KcSojDFbt9QWcM23KHE4LZfM54PCGMNE2dU5YlWgmatqAsS5QPXdPSuiWuLdH/9v1/xWiYYS2koSLRNYejAVZ3rJ1hs73BU5KHtx6gQkVLR9s27Dd7fAHDOKaqHEXdUFUVYRi8qn5RUFctxgqE8FGqA9kShAFpktB1hn2+Z5KN0FbinCaQLU83jk/lEf/03gtG3Rfs+TbS9zGuZ1XC1abBuJ6D8ZT59A7GWkIvZrG9piz3CCkZDxJ8YUmDCM/3sKYnSUKGB98Gb0wY5NiuQF8vXpAk92mbGlo4PjhArXd0siTWgrLY4QcST/doIej6nirf0zcNw3BEbWps/6r3juJX9Ldpmn+otsQJg+9ptA7wgoAkSRBCEAQ+CKjLikk6ZDwbkVcFi92GT9QRf9Q/I+w/48XNiIvNjlAYvn1fkAUNT88b3nvj2xzPHuJ4BWCfXX3OB49+xnK9RNy+RRIojDHY2qC1YDycc+fO96htyoNjxXa7Q88mh2jPJ9/nHM4nCKnwlOJWNqbxYxiO0doC0JqetjWMdURy65BNUbFar2iaV3kdYyx1XZMlCbPpFKkcnS1wziFQrxYM/xBHjVivN5T7PYHUZIOM/W6PdC1rZmy6mGlUoqQg8hz3Jh2+Euz2Jdu8YJWvUeocaw1KCs4XLxBCMMiGNHWDawVJHNNbR76vyMsrjPczhpPfYrObsdqs0YfzOUHgc3N+iZAapXx26x1dZRiNRjgckfcqiVmUJaN0QlEUCKEpW4MwPmVR4FyPlIpxFjKfh2glqLse0wgcgmyQUpUF290G34sp9j27fY3n+YjQ42a3ZlvkjOMhsRdgO4+eHQeDmh++ZUiDiL/8oOZ6b5kejPji7BN+/ehDhLGEvk/jDEZAlCQYA13nKF2HlZKiMdTNml31tyTnX/KFGJLvV+jASXRv+ebXv0FVVdheEoYpUFN1NTjIq4pBNuT41m3apsHUFucEgZNIAfODIb72iOMEsAShoq5riiLHOI/eWLrFlv2+pKl7lCpRysfzAnxfghQ0XYtSiulkQhZJnFQ453jrcEVtA/7iVz5f3bQkSURjOsqqA2OYDEZEfsCmzCmKPb3pCUYTfC9ku9lSdi3CVwRhSF3XlMUL2tqn6zt0sd8zGA2QUpKkGUpKatuz7Ep6Y5AOxl5E3/csbl61kMrTDJKIMLE0UU5pWrCQJBrnJL6OCYKIxXJL7RxlWVAVFtdHGKtR0uH7DYGDXkjWqy3G9kyyjEESM4gEKM0oNJAYfvl5w9Ozniz2qLuW3nb4oc/xrWOOpwd0XUt73lPVNb7nY/qekgYjHMrToATOWrT2Ub6HUg5ZdWjjCXTo8cGHH/LGvQd85zvfpq1rXn56TToaEHagtEfR1izWK+7cvkVV90wmDzicPGAw/wZVW1HsLyjyBRAQBAP22x2BF7JsNpjQEPkxsk3o+h7Xt/Rlha07lBdQFAo/MuiB4SAKOMksfi/wulMW6x2n+zmjUUxXbSirkmQYEMYRUlvqNqcoc4xpCKRH7IcIpdChj68lpijRWr+Sc+Xj+x5+6FCqR9f0fPL4S5SnSfwAaRxfv/uAm/USF2rstuRyu0J5HtP5lNFoiF+CDk5YrQrGozHHhylr/1Oe77ZY6XO93FCWBePpFGkCmrYm8VPm2SHLxYLVcklyeMA+37PeNDS1RihHVXd8+uiUbVLw9p2CIJOUTc++7qnLlnK3YTBIuHd0CyUFQgp2+Z7NZoWSIXGkiYII4SlU6OOamtwaTGNQSuFoaZqaKA7xtYeW3ZjbR0d4XkMrJe9/9muMtczHU5QT/P2Tr/DiiNfeeAPl4ObqhiSdoLyaYGBoWPPs7Cn19pTAj3ixXPHZxRWb/Y7ZeMCdoxlpmjBKMtp9RSd6RrdnTI+nbHdrPvn0lOXWEQQeVmie32yoC+hONGGkGQmPt+8m/PzjK3oUo+GYk9kBru+4Wi7pu54giDC9ww8V9x6cID2Pl2fnuN5g+x7jHEIIlJRkcUIY+lhj0Q/ufF9kI8VP/v5/RTj3D46MJQlCZsMx919/jSSKCZTm0y+/oG1b3p3PuDn7JVvbYp3l6uKKuqgZZAOeX1+xLQtU4OFlMcZXZEnM0M/4xbNTygKc1/D05UdMZ1PmswmNXbIvNtiu4uD4PvfHU7rNIXmz4XAk+P35iuhdybo+IpQRVV3jaY8wimg2S+IkwfYdTjh2xRKBRPQ9nhOkYYxVgjTLcL3BR5JFCUkQCx14eWi6jqIqyYIBnowYBJqmrTGe5N7hEWVeYtuO1+7f59HFCy4W1xTbHY207PY7prNDvGTEer1hdjjh3nCKsT2DwZSj6S10b7k4u6YSHaVq2OU1m1ywrPZMJylR7GPxccbhd3u60R3+5e3/CheGGJVwx57x+w8+4yAWtKbkN+cKEz5gW+woyj13791lNrhNoBJa++o73CzTKOWx2F5zujzDOIOzhniQgnNsNttQf/b0p4++9fD17msn9/vLqzXb9ZZFXTHIAsq6QwACiCIfIT2GMuBqseJqt2BTFCAFw4Mj0jClrluGqU8WCcIwYBaPGcmMZ4tTnl2c4s9iPKdpVz1R5HDCEQ4lskvp6pbOGXzgtCy5nBwi50f0tmH1vGR8dszXRiMm8UvmyY4vN0uePHn5D393Zoz1XUbDA6R2XF9eYYwjSWIurq+4vLkCBaN0xMhmtF2li6L46v8DeBTuC/ISuEgAAAAASUVORK5CYII=";
@@ -466521,13 +465881,13 @@ const tencentImgUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAABACAY
466521
465881
  const tencentVecUrl = "data:image/png;base64,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";
466522
465882
  const osmUrl = "data:image/png;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2YyZjJmMiIvPgogIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNjY2NjY2MiIHN0cm9rZS13aWR0aD0iMSIvPgogIDxwYXRoIGQ9Ik0yMCAzMCBMNDAgMjAgTDYwIDM1IEw4MCAyNSBMODAgNzAgTDYwIDc1IEw0MCA2MCBMMjAgNzAgWiIgZmlsbD0iIzdkZDNjMCIgc3Ryb2tlPSIjNWNiM2EwIiBzdHJva2Utd2lkdGg9IjEiLz4KICA8Y2lyY2xlIGN4PSIzNSIgY3k9IjQ1IiByPSIzIiBmaWxsPSIjZmY2YjZiIi8+CiAgPGNpcmNsZSBjeD0iNTUiIGN5PSIzNSIgcj0iMiIgZmlsbD0iIzRlY2RjNCIvPgogIDxjaXJjbGUgY3g9IjY1IiBjeT0iNTUiIHI9IjIiIGZpbGw9IiM0NWI3ZDEiLz4KICA8dGV4dCB4PSI1MCIgeT0iOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJBcmlhbCwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iIzY2NiI+T1NNPC90ZXh0Pgo8L3N2Zz4=";
466523
465883
  const customBlueUrl = "data:image/png;base64,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";
466524
- const _hoisted_1$k = { class: "basemap-content" };
466525
- const _hoisted_2$j = { class: "basemap-grid" };
466526
- const _hoisted_3$j = ["onClick"];
466527
- const _hoisted_4$i = { class: "basemap-preview" };
466528
- const _hoisted_5$i = ["src", "alt"];
466529
- const _hoisted_6$g = { class: "basemap-name" };
466530
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
465884
+ const _hoisted_1$l = { class: "basemap-content" };
465885
+ const _hoisted_2$k = { class: "basemap-grid" };
465886
+ const _hoisted_3$k = ["onClick"];
465887
+ const _hoisted_4$j = { class: "basemap-preview" };
465888
+ const _hoisted_5$j = ["src", "alt"];
465889
+ const _hoisted_6$h = { class: "basemap-name" };
465890
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466531
465891
  __name: "BasemapPanel",
466532
465892
  props: {
466533
465893
  modelValue: { type: Boolean }
@@ -466758,23 +466118,23 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
466758
466118
  onClose: handleClose
466759
466119
  }, {
466760
466120
  default: withCtx(() => [
466761
- createElementVNode("div", _hoisted_1$k, [
466762
- createElementVNode("div", _hoisted_2$j, [
466121
+ createElementVNode("div", _hoisted_1$l, [
466122
+ createElementVNode("div", _hoisted_2$k, [
466763
466123
  (openBlock(true), createElementBlock(Fragment, null, renderList(displayBasemaps.value, (basemap) => {
466764
466124
  return openBlock(), createElementBlock("div", {
466765
466125
  key: basemap.id,
466766
466126
  class: normalizeClass(["basemap-item", { active: selectedBasemap.value === basemap.id }]),
466767
466127
  onClick: ($event) => selectBasemap(basemap)
466768
466128
  }, [
466769
- createElementVNode("div", _hoisted_4$i, [
466129
+ createElementVNode("div", _hoisted_4$j, [
466770
466130
  createElementVNode("img", {
466771
466131
  src: basemap.thumbnail,
466772
466132
  alt: basemap.name,
466773
466133
  loading: "lazy"
466774
- }, null, 8, _hoisted_5$i)
466134
+ }, null, 8, _hoisted_5$j)
466775
466135
  ]),
466776
- createElementVNode("div", _hoisted_6$g, toDisplayString(basemap.name), 1)
466777
- ], 10, _hoisted_3$j);
466136
+ createElementVNode("div", _hoisted_6$h, toDisplayString(basemap.name), 1)
466137
+ ], 10, _hoisted_3$k);
466778
466138
  }), 128))
466779
466139
  ])
466780
466140
  ])
@@ -466784,7 +466144,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
466784
466144
  };
466785
466145
  }
466786
466146
  });
466787
- const BasemapPanel = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-156831b6"]]);
466147
+ const BasemapPanel = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-156831b6"]]);
466788
466148
  const icons = {
466789
466149
  pointMarker: new URL("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPg0KICA8cGF0aCBkPSJNMjEgMTBjMCA3LTkgMTMtOSAxM3MtOS02LTktMTNhOSA5IDAgMCAxIDE4IDB6Ii8+DQogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiLz4NCjwvc3ZnPg==", self.location).href,
466790
466150
  textMarker: new URL("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPg0KICA8cG9seWxpbmUgcG9pbnRzPSI0IDcgNCA0IDIwIDQgMjAgNyIvPg0KICA8bGluZSB4MT0iOSIgeTE9IjIwIiB4Mj0iMTUiIHkyPSIyMCIvPg0KICA8bGluZSB4MT0iMTIiIHkxPSI0IiB4Mj0iMTIiIHkyPSIyMCIvPg0KPC9zdmc+", self.location).href,
@@ -467116,15 +466476,15 @@ class OverviewMapUtil {
467116
466476
  function createOverviewMapUtil() {
467117
466477
  return new OverviewMapUtil();
467118
466478
  }
467119
- const _hoisted_1$j = { class: "measurement-content h-full flex flex-col" };
467120
- const _hoisted_2$i = { class: "measurement-header flex justify-between items-center px-6 py-4" };
467121
- const _hoisted_3$i = { class: "measurement-result py-8 text-center" };
467122
- const _hoisted_4$h = { class: "result-value" };
467123
- const _hoisted_5$h = { class: "tool-grid flex-1 py-5" };
467124
- const _hoisted_6$f = ["onClick"];
467125
- const _hoisted_7$c = ["src", "alt"];
467126
- const _hoisted_8$9 = { class: "tool-label" };
467127
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
466479
+ const _hoisted_1$k = { class: "measurement-content h-full flex flex-col" };
466480
+ const _hoisted_2$j = { class: "measurement-header flex justify-between items-center px-6 py-4" };
466481
+ const _hoisted_3$j = { class: "measurement-result py-8 text-center" };
466482
+ const _hoisted_4$i = { class: "result-value" };
466483
+ const _hoisted_5$i = { class: "tool-grid flex-1 py-5" };
466484
+ const _hoisted_6$g = ["onClick"];
466485
+ const _hoisted_7$d = ["src", "alt"];
466486
+ const _hoisted_8$a = { class: "tool-label" };
466487
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
467128
466488
  __name: "MeasurementDialog",
467129
466489
  props: {
467130
466490
  modelValue: { type: Boolean }
@@ -467366,8 +466726,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467366
466726
  cacheId: "measurement-dialog"
467367
466727
  }, {
467368
466728
  default: withCtx(() => [
467369
- createElementVNode("div", _hoisted_1$j, [
467370
- createElementVNode("div", _hoisted_2$i, [
466729
+ createElementVNode("div", _hoisted_1$k, [
466730
+ createElementVNode("div", _hoisted_2$j, [
467371
466731
  createVNode$1(_component_el_select, {
467372
466732
  modelValue: selectedUnit.value,
467373
466733
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedUnit.value = $event),
@@ -467435,10 +466795,10 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467435
466795
  _: 1
467436
466796
  })
467437
466797
  ]),
467438
- createElementVNode("div", _hoisted_3$i, [
467439
- createElementVNode("div", _hoisted_4$h, toDisplayString(getDisplayValue()), 1)
466798
+ createElementVNode("div", _hoisted_3$j, [
466799
+ createElementVNode("div", _hoisted_4$i, toDisplayString(getDisplayValue()), 1)
467440
466800
  ]),
467441
- createElementVNode("div", _hoisted_5$h, [
466801
+ createElementVNode("div", _hoisted_5$i, [
467442
466802
  (openBlock(), createElementBlock(Fragment, null, renderList(measurementTools, (tool) => {
467443
466803
  return createElementVNode("div", {
467444
466804
  key: tool.type,
@@ -467449,9 +466809,9 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467449
466809
  src: tool.icon,
467450
466810
  alt: tool.label,
467451
466811
  class: "tool-icon"
467452
- }, null, 8, _hoisted_7$c),
467453
- createElementVNode("span", _hoisted_8$9, toDisplayString(tool.label), 1)
467454
- ], 10, _hoisted_6$f);
466812
+ }, null, 8, _hoisted_7$d),
466813
+ createElementVNode("span", _hoisted_8$a, toDisplayString(tool.label), 1)
466814
+ ], 10, _hoisted_6$g);
467455
466815
  }), 64))
467456
466816
  ])
467457
466817
  ])
@@ -467461,13 +466821,13 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467461
466821
  };
467462
466822
  }
467463
466823
  });
467464
- const MeasurementDialog = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-d868b567"]]);
467465
- const _hoisted_1$i = { class: "coordinate-content" };
467466
- const _hoisted_2$h = { class: "format-selection" };
467467
- const _hoisted_3$h = { class: "format-options" };
467468
- const _hoisted_4$g = { class: "coordinate-input" };
467469
- const _hoisted_5$g = { class: "dialog-footer" };
467470
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
466824
+ const MeasurementDialog = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-d868b567"]]);
466825
+ const _hoisted_1$j = { class: "coordinate-content" };
466826
+ const _hoisted_2$i = { class: "format-selection" };
466827
+ const _hoisted_3$i = { class: "format-options" };
466828
+ const _hoisted_4$h = { class: "coordinate-input" };
466829
+ const _hoisted_5$h = { class: "dialog-footer" };
466830
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467471
466831
  __name: "CoordinateLocationDialog",
467472
466832
  props: {
467473
466833
  modelValue: { type: Boolean }
@@ -467628,7 +466988,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467628
466988
  class: "coordinate-dialog"
467629
466989
  }, {
467630
466990
  footer: withCtx(() => [
467631
- createElementVNode("div", _hoisted_5$g, [
466991
+ createElementVNode("div", _hoisted_5$h, [
467632
466992
  createVNode$1(_component_el_button, {
467633
466993
  type: "primary",
467634
466994
  onClick: getCurrentLocation
@@ -467650,10 +467010,10 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467650
467010
  ])
467651
467011
  ]),
467652
467012
  default: withCtx(() => [
467653
- createElementVNode("div", _hoisted_1$i, [
467654
- createElementVNode("div", _hoisted_2$h, [
467013
+ createElementVNode("div", _hoisted_1$j, [
467014
+ createElementVNode("div", _hoisted_2$i, [
467655
467015
  _cache[6] || (_cache[6] = createElementVNode("div", { class: "format-title" }, "坐标格式", -1)),
467656
- createElementVNode("div", _hoisted_3$h, [
467016
+ createElementVNode("div", _hoisted_3$i, [
467657
467017
  createVNode$1(_component_el_radio_group, {
467658
467018
  modelValue: selectedFormat.value,
467659
467019
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedFormat.value = $event),
@@ -467677,7 +467037,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467677
467037
  }, 8, ["modelValue"])
467678
467038
  ])
467679
467039
  ]),
467680
- createElementVNode("div", _hoisted_4$g, [
467040
+ createElementVNode("div", _hoisted_4$h, [
467681
467041
  createVNode$1(_component_el_form, {
467682
467042
  model: coordinateForm,
467683
467043
  "label-width": "60px"
@@ -467718,24 +467078,24 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467718
467078
  };
467719
467079
  }
467720
467080
  });
467721
- const CoordinateLocationDialog = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-26c1acac"]]);
467722
- const _hoisted_1$h = { class: "region-content" };
467723
- const _hoisted_2$g = {
467081
+ const CoordinateLocationDialog = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-26c1acac"]]);
467082
+ const _hoisted_1$i = { class: "region-content" };
467083
+ const _hoisted_2$h = {
467724
467084
  key: 0,
467725
467085
  class: "region-categories"
467726
467086
  };
467727
- const _hoisted_3$g = { class: "region-group" };
467728
- const _hoisted_4$f = { class: "region-items" };
467729
- const _hoisted_5$f = { class: "region-group" };
467730
- const _hoisted_6$e = { class: "region-items" };
467731
- const _hoisted_7$b = { class: "region-group" };
467732
- const _hoisted_8$8 = { class: "region-items" };
467733
- const _hoisted_9$8 = { class: "region-group" };
467734
- const _hoisted_10$8 = { class: "region-items" };
467735
- const _hoisted_11$8 = { class: "region-group" };
467736
- const _hoisted_12$8 = { class: "region-items" };
467737
- const _hoisted_13$8 = { class: "region-group" };
467738
- const _hoisted_14$7 = { class: "region-items" };
467087
+ const _hoisted_3$h = { class: "region-group" };
467088
+ const _hoisted_4$g = { class: "region-items" };
467089
+ const _hoisted_5$g = { class: "region-group" };
467090
+ const _hoisted_6$f = { class: "region-items" };
467091
+ const _hoisted_7$c = { class: "region-group" };
467092
+ const _hoisted_8$9 = { class: "region-items" };
467093
+ const _hoisted_9$9 = { class: "region-group" };
467094
+ const _hoisted_10$9 = { class: "region-items" };
467095
+ const _hoisted_11$9 = { class: "region-group" };
467096
+ const _hoisted_12$9 = { class: "region-items" };
467097
+ const _hoisted_13$9 = { class: "region-group" };
467098
+ const _hoisted_14$8 = { class: "region-items" };
467739
467099
  const _hoisted_15$7 = { class: "region-group" };
467740
467100
  const _hoisted_16$7 = { class: "region-items" };
467741
467101
  const _hoisted_17$6 = { class: "region-group" };
@@ -467745,7 +467105,7 @@ const _hoisted_19$5 = {
467745
467105
  class: "sub-regions"
467746
467106
  };
467747
467107
  const _hoisted_20$4 = { class: "district-grid" };
467748
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
467108
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467749
467109
  __name: "RegionNavigationDialog",
467750
467110
  props: {
467751
467111
  modelValue: { type: Boolean }
@@ -468841,7 +468201,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468841
468201
  class: "region-dialog"
468842
468202
  }, {
468843
468203
  default: withCtx(() => [
468844
- createElementVNode("div", _hoisted_1$h, [
468204
+ createElementVNode("div", _hoisted_1$i, [
468845
468205
  createVNode$1(_component_el_tabs, {
468846
468206
  modelValue: activeTab.value,
468847
468207
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
@@ -468859,10 +468219,10 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468859
468219
  closable: index2 > 0
468860
468220
  }, {
468861
468221
  default: withCtx(() => [
468862
- tab.name === "china" ? (openBlock(), createElementBlock("div", _hoisted_2$g, [
468863
- createElementVNode("div", _hoisted_3$g, [
468222
+ tab.name === "china" ? (openBlock(), createElementBlock("div", _hoisted_2$h, [
468223
+ createElementVNode("div", _hoisted_3$h, [
468864
468224
  _cache[2] || (_cache[2] = createElementVNode("div", { class: "group-title" }, "华北", -1)),
468865
- createElementVNode("div", _hoisted_4$f, [
468225
+ createElementVNode("div", _hoisted_4$g, [
468866
468226
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.north, (region) => {
468867
468227
  return openBlock(), createBlock(_component_el_button, {
468868
468228
  key: region.code,
@@ -468878,9 +468238,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468878
468238
  }), 128))
468879
468239
  ])
468880
468240
  ]),
468881
- createElementVNode("div", _hoisted_5$f, [
468241
+ createElementVNode("div", _hoisted_5$g, [
468882
468242
  _cache[3] || (_cache[3] = createElementVNode("div", { class: "group-title" }, "东北", -1)),
468883
- createElementVNode("div", _hoisted_6$e, [
468243
+ createElementVNode("div", _hoisted_6$f, [
468884
468244
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.northeast, (region) => {
468885
468245
  return openBlock(), createBlock(_component_el_button, {
468886
468246
  key: region.code,
@@ -468896,9 +468256,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468896
468256
  }), 128))
468897
468257
  ])
468898
468258
  ]),
468899
- createElementVNode("div", _hoisted_7$b, [
468259
+ createElementVNode("div", _hoisted_7$c, [
468900
468260
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "group-title" }, "华东", -1)),
468901
- createElementVNode("div", _hoisted_8$8, [
468261
+ createElementVNode("div", _hoisted_8$9, [
468902
468262
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.east, (region) => {
468903
468263
  return openBlock(), createBlock(_component_el_button, {
468904
468264
  key: region.code,
@@ -468914,9 +468274,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468914
468274
  }), 128))
468915
468275
  ])
468916
468276
  ]),
468917
- createElementVNode("div", _hoisted_9$8, [
468277
+ createElementVNode("div", _hoisted_9$9, [
468918
468278
  _cache[5] || (_cache[5] = createElementVNode("div", { class: "group-title" }, "华中", -1)),
468919
- createElementVNode("div", _hoisted_10$8, [
468279
+ createElementVNode("div", _hoisted_10$9, [
468920
468280
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.central, (region) => {
468921
468281
  return openBlock(), createBlock(_component_el_button, {
468922
468282
  key: region.code,
@@ -468932,9 +468292,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468932
468292
  }), 128))
468933
468293
  ])
468934
468294
  ]),
468935
- createElementVNode("div", _hoisted_11$8, [
468295
+ createElementVNode("div", _hoisted_11$9, [
468936
468296
  _cache[6] || (_cache[6] = createElementVNode("div", { class: "group-title" }, "华南", -1)),
468937
- createElementVNode("div", _hoisted_12$8, [
468297
+ createElementVNode("div", _hoisted_12$9, [
468938
468298
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.south, (region) => {
468939
468299
  return openBlock(), createBlock(_component_el_button, {
468940
468300
  key: region.code,
@@ -468950,9 +468310,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468950
468310
  }), 128))
468951
468311
  ])
468952
468312
  ]),
468953
- createElementVNode("div", _hoisted_13$8, [
468313
+ createElementVNode("div", _hoisted_13$9, [
468954
468314
  _cache[7] || (_cache[7] = createElementVNode("div", { class: "group-title" }, "西南", -1)),
468955
- createElementVNode("div", _hoisted_14$7, [
468315
+ createElementVNode("div", _hoisted_14$8, [
468956
468316
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.southwest, (region) => {
468957
468317
  return openBlock(), createBlock(_component_el_button, {
468958
468318
  key: region.code,
@@ -469034,13 +468394,13 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
469034
468394
  };
469035
468395
  }
469036
468396
  });
469037
- const RegionNavigationDialog = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-2cbe0bd1"]]);
469038
- const _hoisted_1$g = { class: "markers-content" };
469039
- const _hoisted_2$f = { class: "toolbar" };
469040
- const _hoisted_3$f = { class: "search-filter" };
469041
- const _hoisted_4$e = { class: "markers-list" };
469042
- const _hoisted_5$e = { class: "marker-name" };
469043
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
468397
+ const RegionNavigationDialog = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-2cbe0bd1"]]);
468398
+ const _hoisted_1$h = { class: "markers-content" };
468399
+ const _hoisted_2$g = { class: "toolbar" };
468400
+ const _hoisted_3$g = { class: "search-filter" };
468401
+ const _hoisted_4$f = { class: "markers-list" };
468402
+ const _hoisted_5$f = { class: "marker-name" };
468403
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
469044
468404
  __name: "MyMarkersDialog",
469045
468405
  props: {
469046
468406
  modelValue: { type: Boolean }
@@ -469377,8 +468737,8 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469377
468737
  class: "markers-dialog"
469378
468738
  }, {
469379
468739
  default: withCtx(() => [
469380
- createElementVNode("div", _hoisted_1$g, [
469381
- createElementVNode("div", _hoisted_2$f, [
468740
+ createElementVNode("div", _hoisted_1$h, [
468741
+ createElementVNode("div", _hoisted_2$g, [
469382
468742
  createVNode$1(_component_el_button, {
469383
468743
  type: "primary",
469384
468744
  icon: unref(plus_default),
@@ -469419,7 +468779,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469419
468779
  _: 1
469420
468780
  }, 8, ["icon", "disabled"])
469421
468781
  ]),
469422
- createElementVNode("div", _hoisted_3$f, [
468782
+ createElementVNode("div", _hoisted_3$g, [
469423
468783
  createVNode$1(_component_el_input, {
469424
468784
  modelValue: searchKeyword.value,
469425
468785
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
@@ -469452,7 +468812,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469452
468812
  _: 1
469453
468813
  }, 8, ["modelValue"])
469454
468814
  ]),
469455
- createElementVNode("div", _hoisted_4$e, [
468815
+ createElementVNode("div", _hoisted_4$f, [
469456
468816
  createVNode$1(_component_el_table, {
469457
468817
  data: filteredMarkers.value,
469458
468818
  height: "300",
@@ -469466,7 +468826,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469466
468826
  width: "120"
469467
468827
  }, {
469468
468828
  default: withCtx(({ row }) => [
469469
- createElementVNode("div", _hoisted_5$e, [
468829
+ createElementVNode("div", _hoisted_5$f, [
469470
468830
  createVNode$1(_component_el_icon, {
469471
468831
  color: row.color,
469472
468832
  size: "16"
@@ -469611,21 +468971,21 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469611
468971
  };
469612
468972
  }
469613
468973
  });
469614
- const MyMarkersDialog = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-940a2ace"]]);
469615
- const _hoisted_1$f = { class: "bookmarks-content" };
469616
- const _hoisted_2$e = { class: "toolbar" };
469617
- const _hoisted_3$e = { class: "search-filter" };
469618
- const _hoisted_4$d = { class: "bookmarks-grid" };
469619
- const _hoisted_5$d = ["onClick"];
469620
- const _hoisted_6$d = { class: "bookmark-thumbnail" };
469621
- const _hoisted_7$a = { class: "thumbnail-placeholder" };
469622
- const _hoisted_8$7 = { class: "bookmark-overlay" };
469623
- const _hoisted_9$7 = { class: "bookmark-info" };
469624
- const _hoisted_10$7 = { class: "bookmark-title" };
469625
- const _hoisted_11$7 = { class: "bookmark-meta" };
469626
- const _hoisted_12$7 = { class: "use-count" };
469627
- const _hoisted_13$7 = { class: "bookmark-description" };
469628
- const _hoisted_14$6 = { class: "bookmark-details" };
468974
+ const MyMarkersDialog = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-940a2ace"]]);
468975
+ const _hoisted_1$g = { class: "bookmarks-content" };
468976
+ const _hoisted_2$f = { class: "toolbar" };
468977
+ const _hoisted_3$f = { class: "search-filter" };
468978
+ const _hoisted_4$e = { class: "bookmarks-grid" };
468979
+ const _hoisted_5$e = ["onClick"];
468980
+ const _hoisted_6$e = { class: "bookmark-thumbnail" };
468981
+ const _hoisted_7$b = { class: "thumbnail-placeholder" };
468982
+ const _hoisted_8$8 = { class: "bookmark-overlay" };
468983
+ const _hoisted_9$8 = { class: "bookmark-info" };
468984
+ const _hoisted_10$8 = { class: "bookmark-title" };
468985
+ const _hoisted_11$8 = { class: "bookmark-meta" };
468986
+ const _hoisted_12$8 = { class: "use-count" };
468987
+ const _hoisted_13$8 = { class: "bookmark-description" };
468988
+ const _hoisted_14$7 = { class: "bookmark-details" };
469629
468989
  const _hoisted_15$6 = { class: "detail-item" };
469630
468990
  const _hoisted_16$6 = { class: "detail-item" };
469631
468991
  const _hoisted_17$5 = { class: "bookmark-time" };
@@ -469638,7 +468998,7 @@ const _hoisted_19$4 = {
469638
468998
  class: "statistics"
469639
468999
  };
469640
469000
  const _hoisted_20$3 = { class: "dialog-footer" };
469641
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
469001
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469642
469002
  __name: "ViewBookmarksDialog",
469643
469003
  props: {
469644
469004
  modelValue: { type: Boolean }
@@ -469918,8 +469278,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
469918
469278
  ])
469919
469279
  ]),
469920
469280
  default: withCtx(() => [
469921
- createElementVNode("div", _hoisted_1$f, [
469922
- createElementVNode("div", _hoisted_2$e, [
469281
+ createElementVNode("div", _hoisted_1$g, [
469282
+ createElementVNode("div", _hoisted_2$f, [
469923
469283
  createVNode$1(_component_el_button, {
469924
469284
  type: "primary",
469925
469285
  icon: unref(plus_default),
@@ -469959,7 +469319,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
469959
469319
  _: 1
469960
469320
  }, 8, ["icon", "disabled"])
469961
469321
  ]),
469962
- createElementVNode("div", _hoisted_3$e, [
469322
+ createElementVNode("div", _hoisted_3$f, [
469963
469323
  createVNode$1(_component_el_input, {
469964
469324
  modelValue: searchKeyword.value,
469965
469325
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
@@ -470014,15 +469374,15 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470014
469374
  _: 1
470015
469375
  }, 8, ["modelValue"])
470016
469376
  ]),
470017
- createElementVNode("div", _hoisted_4$d, [
469377
+ createElementVNode("div", _hoisted_4$e, [
470018
469378
  (openBlock(true), createElementBlock(Fragment, null, renderList(filteredBookmarks.value, (bookmark, index2) => {
470019
469379
  return openBlock(), createElementBlock("div", {
470020
469380
  key: bookmark.id,
470021
469381
  class: "bookmark-card",
470022
469382
  onClick: ($event) => applyBookmark(bookmark)
470023
469383
  }, [
470024
- createElementVNode("div", _hoisted_6$d, [
470025
- createElementVNode("div", _hoisted_7$a, [
469384
+ createElementVNode("div", _hoisted_6$e, [
469385
+ createElementVNode("div", _hoisted_7$b, [
470026
469386
  createVNode$1(_component_el_icon, {
470027
469387
  size: "40",
470028
469388
  color: "#409eff"
@@ -470033,7 +469393,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470033
469393
  _: 1
470034
469394
  })
470035
469395
  ]),
470036
- createElementVNode("div", _hoisted_8$7, [
469396
+ createElementVNode("div", _hoisted_8$8, [
470037
469397
  createVNode$1(_component_el_button_group, null, {
470038
469398
  default: withCtx(() => [
470039
469399
  createVNode$1(_component_el_button, {
@@ -470073,9 +469433,9 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470073
469433
  }, 1024)
470074
469434
  ])
470075
469435
  ]),
470076
- createElementVNode("div", _hoisted_9$7, [
470077
- createElementVNode("div", _hoisted_10$7, toDisplayString(bookmark.name), 1),
470078
- createElementVNode("div", _hoisted_11$7, [
469436
+ createElementVNode("div", _hoisted_9$8, [
469437
+ createElementVNode("div", _hoisted_10$8, toDisplayString(bookmark.name), 1),
469438
+ createElementVNode("div", _hoisted_11$8, [
470079
469439
  createVNode$1(_component_el_tag, {
470080
469440
  size: "small",
470081
469441
  type: "info"
@@ -470085,10 +469445,10 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470085
469445
  ]),
470086
469446
  _: 2
470087
469447
  }, 1024),
470088
- createElementVNode("span", _hoisted_12$7, "使用 " + toDisplayString(bookmark.useCount) + " 次", 1)
469448
+ createElementVNode("span", _hoisted_12$8, "使用 " + toDisplayString(bookmark.useCount) + " 次", 1)
470089
469449
  ]),
470090
- createElementVNode("div", _hoisted_13$7, toDisplayString(bookmark.description), 1),
470091
- createElementVNode("div", _hoisted_14$6, [
469450
+ createElementVNode("div", _hoisted_13$8, toDisplayString(bookmark.description), 1),
469451
+ createElementVNode("div", _hoisted_14$7, [
470092
469452
  createElementVNode("span", _hoisted_15$6, [
470093
469453
  createVNode$1(_component_el_icon, null, {
470094
469454
  default: withCtx(() => [
@@ -470110,7 +469470,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470110
469470
  ]),
470111
469471
  createElementVNode("div", _hoisted_17$5, toDisplayString(formatTime(bookmark.createTime)), 1)
470112
469472
  ])
470113
- ], 8, _hoisted_5$d);
469473
+ ], 8, _hoisted_5$e);
470114
469474
  }), 128))
470115
469475
  ]),
470116
469476
  filteredBookmarks.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18$5, [
@@ -470327,24 +469687,24 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470327
469687
  };
470328
469688
  }
470329
469689
  });
470330
- const ViewBookmarksDialog = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-f533ea83"]]);
470331
- const _hoisted_1$e = { class: "py-2.5" };
470332
- const _hoisted_2$d = { class: "h-150 overflow-y-auto" };
470333
- const _hoisted_3$d = { class: "flex items-center justify-between" };
470334
- const _hoisted_4$c = { class: "mb-5" };
470335
- const _hoisted_5$c = { class: "mb-3" };
470336
- const _hoisted_6$c = {
469690
+ const ViewBookmarksDialog = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-f533ea83"]]);
469691
+ const _hoisted_1$f = { class: "py-2.5" };
469692
+ const _hoisted_2$e = { class: "h-150 overflow-y-auto" };
469693
+ const _hoisted_3$e = { class: "flex items-center justify-between" };
469694
+ const _hoisted_4$d = { class: "mb-5" };
469695
+ const _hoisted_5$d = { class: "mb-3" };
469696
+ const _hoisted_6$d = {
470337
469697
  key: 0,
470338
469698
  class: "mb-3"
470339
469699
  };
470340
- const _hoisted_7$9 = { class: "flex gap-2" };
470341
- const _hoisted_8$6 = { class: "mb-5" };
470342
- const _hoisted_9$6 = { class: "mb-3" };
470343
- const _hoisted_10$6 = { class: "mb-3" };
470344
- const _hoisted_11$6 = { key: 0 };
470345
- const _hoisted_12$6 = { class: "mb-5" };
470346
- const _hoisted_13$6 = { class: "mb-3" };
470347
- const _hoisted_14$5 = { class: "mb-3" };
469700
+ const _hoisted_7$a = { class: "flex gap-2" };
469701
+ const _hoisted_8$7 = { class: "mb-5" };
469702
+ const _hoisted_9$7 = { class: "mb-3" };
469703
+ const _hoisted_10$7 = { class: "mb-3" };
469704
+ const _hoisted_11$7 = { key: 0 };
469705
+ const _hoisted_12$7 = { class: "mb-5" };
469706
+ const _hoisted_13$7 = { class: "mb-3" };
469707
+ const _hoisted_14$6 = { class: "mb-3" };
470348
469708
  const _hoisted_15$5 = { class: "mb-3" };
470349
469709
  const _hoisted_16$5 = { class: "flex gap-2 mb-2" };
470350
469710
  const _hoisted_17$4 = { class: "flex gap-2" };
@@ -470417,7 +469777,7 @@ const _hoisted_44$1 = {
470417
469777
  const _hoisted_45 = { key: 0 };
470418
469778
  const _hoisted_46 = { key: 0 };
470419
469779
  const _hoisted_47 = { class: "text-right" };
470420
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
469780
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470421
469781
  __name: "MapPrintDialog",
470422
469782
  props: {
470423
469783
  modelValue: { type: Boolean },
@@ -470834,15 +470194,15 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470834
470194
  ])
470835
470195
  ]),
470836
470196
  default: withCtx(() => [
470837
- createElementVNode("div", _hoisted_1$e, [
470197
+ createElementVNode("div", _hoisted_1$f, [
470838
470198
  createVNode$1(_component_el_row, { gutter: 20 }, {
470839
470199
  default: withCtx(() => [
470840
470200
  createVNode$1(_component_el_col, { span: 8 }, {
470841
470201
  default: withCtx(() => [
470842
- createElementVNode("div", _hoisted_2$d, [
470202
+ createElementVNode("div", _hoisted_2$e, [
470843
470203
  createVNode$1(_component_el_card, { shadow: "hover" }, {
470844
470204
  header: withCtx(() => [
470845
- createElementVNode("div", _hoisted_3$d, [
470205
+ createElementVNode("div", _hoisted_3$e, [
470846
470206
  _cache[18] || (_cache[18] = createElementVNode("span", null, "打印设置", -1)),
470847
470207
  createVNode$1(_component_el_button, {
470848
470208
  type: "text",
@@ -470862,9 +470222,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470862
470222
  ])
470863
470223
  ]),
470864
470224
  default: withCtx(() => [
470865
- createElementVNode("div", _hoisted_4$c, [
470225
+ createElementVNode("div", _hoisted_4$d, [
470866
470226
  _cache[21] || (_cache[21] = createElementVNode("label", { class: "block text-sm font-medium text-gray-700 mb-2" }, "纸张设置", -1)),
470867
- createElementVNode("div", _hoisted_5$c, [
470227
+ createElementVNode("div", _hoisted_5$d, [
470868
470228
  createVNode$1(_component_el_select, {
470869
470229
  modelValue: printSettings.paperSize,
470870
470230
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => printSettings.paperSize = $event),
@@ -470908,8 +470268,8 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470908
470268
  _: 1
470909
470269
  }, 8, ["modelValue"])
470910
470270
  ]),
470911
- printSettings.paperSize === "Custom" ? (openBlock(), createElementBlock("div", _hoisted_6$c, [
470912
- createElementVNode("div", _hoisted_7$9, [
470271
+ printSettings.paperSize === "Custom" ? (openBlock(), createElementBlock("div", _hoisted_6$d, [
470272
+ createElementVNode("div", _hoisted_7$a, [
470913
470273
  createVNode$1(_component_el_input, {
470914
470274
  modelValue: printSettings.customWidth,
470915
470275
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => printSettings.customWidth = $event),
@@ -470949,9 +470309,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470949
470309
  }, 8, ["modelValue"])
470950
470310
  ])
470951
470311
  ]),
470952
- createElementVNode("div", _hoisted_8$6, [
470312
+ createElementVNode("div", _hoisted_8$7, [
470953
470313
  _cache[23] || (_cache[23] = createElementVNode("label", { class: "block text-sm font-medium text-gray-700 mb-2" }, "地图设置", -1)),
470954
- createElementVNode("div", _hoisted_9$6, [
470314
+ createElementVNode("div", _hoisted_9$7, [
470955
470315
  createVNode$1(_component_el_select, {
470956
470316
  modelValue: printSettings.dpi,
470957
470317
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => printSettings.dpi = $event),
@@ -470979,7 +470339,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470979
470339
  _: 1
470980
470340
  }, 8, ["modelValue"])
470981
470341
  ]),
470982
- createElementVNode("div", _hoisted_10$6, [
470342
+ createElementVNode("div", _hoisted_10$7, [
470983
470343
  createVNode$1(_component_el_select, {
470984
470344
  modelValue: printSettings.scale,
470985
470345
  "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => printSettings.scale = $event),
@@ -471023,7 +470383,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471023
470383
  _: 1
471024
470384
  }, 8, ["modelValue"])
471025
470385
  ]),
471026
- printSettings.scale === "custom" ? (openBlock(), createElementBlock("div", _hoisted_11$6, [
470386
+ printSettings.scale === "custom" ? (openBlock(), createElementBlock("div", _hoisted_11$7, [
471027
470387
  createVNode$1(_component_el_input, {
471028
470388
  modelValue: printSettings.customScale,
471029
470389
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => printSettings.customScale = $event),
@@ -471038,9 +470398,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471038
470398
  }, 8, ["modelValue"])
471039
470399
  ])) : createCommentVNode("", true)
471040
470400
  ]),
471041
- createElementVNode("div", _hoisted_12$6, [
470401
+ createElementVNode("div", _hoisted_12$7, [
471042
470402
  _cache[32] || (_cache[32] = createElementVNode("label", { class: "block text-sm font-medium text-gray-700 mb-2" }, "内容设置", -1)),
471043
- createElementVNode("div", _hoisted_13$6, [
470403
+ createElementVNode("div", _hoisted_13$7, [
471044
470404
  createVNode$1(_component_el_input, {
471045
470405
  modelValue: printSettings.title,
471046
470406
  "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => printSettings.title = $event),
@@ -471048,7 +470408,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471048
470408
  class: "w-full"
471049
470409
  }, null, 8, ["modelValue"])
471050
470410
  ]),
471051
- createElementVNode("div", _hoisted_14$5, [
470411
+ createElementVNode("div", _hoisted_14$6, [
471052
470412
  createVNode$1(_component_el_input, {
471053
470413
  modelValue: printSettings.subtitle,
471054
470414
  "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => printSettings.subtitle = $event),
@@ -471403,18 +470763,18 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471403
470763
  };
471404
470764
  }
471405
470765
  });
471406
- const MapPrintDialog = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-b6e68ef8"]]);
471407
- const _hoisted_1$d = { class: "mark-tab-container" };
471408
- const _hoisted_2$c = { class: "continuous-switch" };
471409
- const _hoisted_3$c = { class: "tools-grid" };
471410
- const _hoisted_4$b = ["onClick"];
471411
- const _hoisted_5$b = ["src"];
471412
- const _hoisted_6$b = { class: "tool-label" };
471413
- const _hoisted_7$8 = {
470766
+ const MapPrintDialog = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-b6e68ef8"]]);
470767
+ const _hoisted_1$e = { class: "mark-tab-container" };
470768
+ const _hoisted_2$d = { class: "continuous-switch" };
470769
+ const _hoisted_3$d = { class: "tools-grid" };
470770
+ const _hoisted_4$c = ["onClick"];
470771
+ const _hoisted_5$c = ["src"];
470772
+ const _hoisted_6$c = { class: "tool-label" };
470773
+ const _hoisted_7$9 = {
471414
470774
  key: 0,
471415
470775
  class: "stop-drawing-section"
471416
470776
  };
471417
- const _sfc_main$f = {
470777
+ const _sfc_main$g = {
471418
470778
  __name: "MarkTab",
471419
470779
  setup(__props) {
471420
470780
  const mapRef = inject("map");
@@ -471904,7 +471264,7 @@ const _sfc_main$f = {
471904
471264
  const _component_el_select = resolveComponent("el-select");
471905
471265
  const _component_el_switch = resolveComponent("el-switch");
471906
471266
  const _component_el_button = resolveComponent("el-button");
471907
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
471267
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
471908
471268
  createVNode$1(_component_el_select, {
471909
471269
  modelValue: selectedType.value,
471910
471270
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedType.value = $event),
@@ -471922,7 +471282,7 @@ const _sfc_main$f = {
471922
471282
  ]),
471923
471283
  _: 1
471924
471284
  }, 8, ["modelValue"]),
471925
- createElementVNode("div", _hoisted_2$c, [
471285
+ createElementVNode("div", _hoisted_2$d, [
471926
471286
  _cache[2] || (_cache[2] = createElementVNode("span", { class: "switch-label" }, "连续标绘模式", -1)),
471927
471287
  createVNode$1(_component_el_switch, {
471928
471288
  modelValue: continuousDrawing.value,
@@ -471930,7 +471290,7 @@ const _sfc_main$f = {
471930
471290
  size: "small"
471931
471291
  }, null, 8, ["modelValue"])
471932
471292
  ]),
471933
- createElementVNode("div", _hoisted_3$c, [
471293
+ createElementVNode("div", _hoisted_3$d, [
471934
471294
  (openBlock(true), createElementBlock(Fragment, null, renderList(currentTools.value, (tool, idx) => {
471935
471295
  return openBlock(), createElementBlock("div", {
471936
471296
  key: idx,
@@ -471942,15 +471302,15 @@ const _sfc_main$f = {
471942
471302
  src: tool.icon,
471943
471303
  class: "tool-image",
471944
471304
  alt: "tool icon"
471945
- }, null, 8, _hoisted_5$b)) : (openBlock(), createElementBlock("i", {
471305
+ }, null, 8, _hoisted_5$c)) : (openBlock(), createElementBlock("i", {
471946
471306
  key: 1,
471947
471307
  class: normalizeClass([tool.icon, "tool-icon-large"])
471948
471308
  }, null, 2)),
471949
- createElementVNode("span", _hoisted_6$b, toDisplayString(tool.label), 1)
471950
- ], 8, _hoisted_4$b);
471309
+ createElementVNode("span", _hoisted_6$c, toDisplayString(tool.label), 1)
471310
+ ], 8, _hoisted_4$c);
471951
471311
  }), 128))
471952
471312
  ]),
471953
- activeDrawingTool.value && continuousDrawing.value ? (openBlock(), createElementBlock("div", _hoisted_7$8, [
471313
+ activeDrawingTool.value && continuousDrawing.value ? (openBlock(), createElementBlock("div", _hoisted_7$9, [
471954
471314
  createVNode$1(_component_el_button, {
471955
471315
  type: "danger",
471956
471316
  size: "small",
@@ -471967,18 +471327,18 @@ const _sfc_main$f = {
471967
471327
  };
471968
471328
  }
471969
471329
  };
471970
- const MarkTab = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-019ab9dd"]]);
471971
- const _hoisted_1$c = { class: "list-tab-container" };
471972
- const _hoisted_2$b = { class: "toolbar" };
471973
- const _hoisted_3$b = { class: "toolbar-left" };
471974
- const _hoisted_4$a = { class: "data-count" };
471975
- const _hoisted_5$a = { class: "list-content" };
471976
- const _hoisted_6$a = { class: "tree-node" };
471977
- const _hoisted_7$7 = {
471330
+ const MarkTab = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-019ab9dd"]]);
471331
+ const _hoisted_1$d = { class: "list-tab-container" };
471332
+ const _hoisted_2$c = { class: "toolbar" };
471333
+ const _hoisted_3$c = { class: "toolbar-left" };
471334
+ const _hoisted_4$b = { class: "data-count" };
471335
+ const _hoisted_5$b = { class: "list-content" };
471336
+ const _hoisted_6$b = { class: "tree-node" };
471337
+ const _hoisted_7$8 = {
471978
471338
  key: 1,
471979
471339
  class: "empty-state"
471980
471340
  };
471981
- const _sfc_main$e = {
471341
+ const _sfc_main$f = {
471982
471342
  __name: "ListTab",
471983
471343
  setup(__props) {
471984
471344
  const groups = ref([
@@ -471999,9 +471359,9 @@ const _sfc_main$e = {
471999
471359
  return (_ctx, _cache) => {
472000
471360
  const _component_el_button = resolveComponent("el-button");
472001
471361
  const _component_el_tree = resolveComponent("el-tree");
472002
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
472003
- createElementVNode("div", _hoisted_2$b, [
472004
- createElementVNode("div", _hoisted_3$b, [
471362
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
471363
+ createElementVNode("div", _hoisted_2$c, [
471364
+ createElementVNode("div", _hoisted_3$c, [
472005
471365
  _cache[2] || (_cache[2] = createElementVNode("span", { class: "toolbar-title" }, "分组管理:", -1)),
472006
471366
  createVNode$1(_component_el_button, {
472007
471367
  type: "primary",
@@ -472024,9 +471384,9 @@ const _sfc_main$e = {
472024
471384
  _: 1
472025
471385
  })
472026
471386
  ]),
472027
- createElementVNode("div", _hoisted_4$a, "共" + toDisplayString(groups.value.length) + "条数据", 1)
471387
+ createElementVNode("div", _hoisted_4$b, "共" + toDisplayString(groups.value.length) + "条数据", 1)
472028
471388
  ]),
472029
- createElementVNode("div", _hoisted_5$a, [
471389
+ createElementVNode("div", _hoisted_5$b, [
472030
471390
  groups.value.length ? (openBlock(), createBlock(_component_el_tree, {
472031
471391
  key: 0,
472032
471392
  data: groups.value,
@@ -472037,27 +471397,27 @@ const _sfc_main$e = {
472037
471397
  class: "tree-component"
472038
471398
  }, {
472039
471399
  default: withCtx(({ data }) => [
472040
- createElementVNode("div", _hoisted_6$a, [
471400
+ createElementVNode("div", _hoisted_6$b, [
472041
471401
  _cache[3] || (_cache[3] = createElementVNode("i", { class: "i-carbon-folder node-icon" }, null, -1)),
472042
471402
  createElementVNode("span", null, toDisplayString(data.label), 1)
472043
471403
  ])
472044
471404
  ]),
472045
471405
  _: 1
472046
- }, 8, ["data"])) : (openBlock(), createElementBlock("div", _hoisted_7$7, "暂无数据"))
471406
+ }, 8, ["data"])) : (openBlock(), createElementBlock("div", _hoisted_7$8, "暂无数据"))
472047
471407
  ])
472048
471408
  ]);
472049
471409
  };
472050
471410
  }
472051
471411
  };
472052
- const ListTab = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-1cc008ea"]]);
472053
- const _hoisted_1$b = { class: "dialog-content" };
472054
- const _hoisted_2$a = { class: "toolbar" };
472055
- const _hoisted_3$a = { class: "toolbar-left" };
472056
- const _hoisted_4$9 = ["onClick"];
472057
- const _hoisted_5$9 = { class: "toolbar-right" };
472058
- const _hoisted_6$9 = ["onClick"];
472059
- const _hoisted_7$6 = { class: "content-area" };
472060
- const _sfc_main$d = {
471412
+ const ListTab = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-1cc008ea"]]);
471413
+ const _hoisted_1$c = { class: "dialog-content" };
471414
+ const _hoisted_2$b = { class: "toolbar" };
471415
+ const _hoisted_3$b = { class: "toolbar-left" };
471416
+ const _hoisted_4$a = ["onClick"];
471417
+ const _hoisted_5$a = { class: "toolbar-right" };
471418
+ const _hoisted_6$a = ["onClick"];
471419
+ const _hoisted_7$7 = { class: "content-area" };
471420
+ const _sfc_main$e = {
472061
471421
  __name: "index",
472062
471422
  setup(__props) {
472063
471423
  const visible = ref(true);
@@ -472119,9 +471479,9 @@ const _sfc_main$d = {
472119
471479
  onClose: handleClose
472120
471480
  }, {
472121
471481
  default: withCtx(() => [
472122
- createElementVNode("div", _hoisted_1$b, [
472123
- createElementVNode("div", _hoisted_2$a, [
472124
- createElementVNode("div", _hoisted_3$a, [
471482
+ createElementVNode("div", _hoisted_1$c, [
471483
+ createElementVNode("div", _hoisted_2$b, [
471484
+ createElementVNode("div", _hoisted_3$b, [
472125
471485
  (openBlock(), createElementBlock(Fragment, null, renderList(leftTools, (tool, idx) => {
472126
471486
  return createVNode$1(_component_el_tooltip, {
472127
471487
  key: idx,
@@ -472133,13 +471493,13 @@ const _sfc_main$d = {
472133
471493
  createElementVNode("i", {
472134
471494
  class: normalizeClass([tool.icon, "tool-icon"]),
472135
471495
  onClick: ($event) => handleToolClick(tool, "left", idx)
472136
- }, null, 10, _hoisted_4$9)
471496
+ }, null, 10, _hoisted_4$a)
472137
471497
  ]),
472138
471498
  _: 2
472139
471499
  }, 1032, ["content"]);
472140
471500
  }), 64))
472141
471501
  ]),
472142
- createElementVNode("div", _hoisted_5$9, [
471502
+ createElementVNode("div", _hoisted_5$a, [
472143
471503
  (openBlock(), createElementBlock(Fragment, null, renderList(rightTools, (tool, idx) => {
472144
471504
  return createVNode$1(_component_el_tooltip, {
472145
471505
  key: idx,
@@ -472151,14 +471511,14 @@ const _sfc_main$d = {
472151
471511
  createElementVNode("i", {
472152
471512
  class: normalizeClass([tool.icon, "tool-icon"]),
472153
471513
  onClick: ($event) => handleToolClick(tool, "right", idx)
472154
- }, null, 10, _hoisted_6$9)
471514
+ }, null, 10, _hoisted_6$a)
472155
471515
  ]),
472156
471516
  _: 2
472157
471517
  }, 1032, ["content"]);
472158
471518
  }), 64))
472159
471519
  ])
472160
471520
  ]),
472161
- createElementVNode("div", _hoisted_7$6, [
471521
+ createElementVNode("div", _hoisted_7$7, [
472162
471522
  createVNode$1(_component_el_tabs, {
472163
471523
  modelValue: activeTab.value,
472164
471524
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
@@ -472195,9 +471555,9 @@ const _sfc_main$d = {
472195
471555
  };
472196
471556
  }
472197
471557
  };
472198
- const MapDrawingDialog = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-16fc7a81"]]);
472199
- const _hoisted_1$a = { class: "flex" };
472200
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
471558
+ const MapDrawingDialog = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-16fc7a81"]]);
471559
+ const _hoisted_1$b = { class: "flex" };
471560
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
472201
471561
  __name: "MapToolbar",
472202
471562
  props: {
472203
471563
  config: { default: void 0 },
@@ -472388,7 +471748,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
472388
471748
  class: "main-menu-item"
472389
471749
  }, {
472390
471750
  title: withCtx(() => [
472391
- createElementVNode("div", _hoisted_1$a, [
471751
+ createElementVNode("div", _hoisted_1$b, [
472392
471752
  createElementVNode("div", null, [
472393
471753
  createVNode$1(_component_el_icon, null, {
472394
471754
  default: withCtx(() => [
@@ -472611,30 +471971,30 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
472611
471971
  };
472612
471972
  }
472613
471973
  });
472614
- const MapToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-f8ee8458"]]);
472615
- const _hoisted_1$9 = { class: "search-input-wrapper" };
472616
- const _hoisted_2$9 = { class: "search-results" };
472617
- const _hoisted_3$9 = {
471974
+ const MapToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-f8ee8458"]]);
471975
+ const _hoisted_1$a = { class: "search-input-wrapper" };
471976
+ const _hoisted_2$a = { class: "search-results" };
471977
+ const _hoisted_3$a = {
472618
471978
  key: 0,
472619
471979
  class: "search-section"
472620
471980
  };
472621
- const _hoisted_4$8 = { class: "section-title" };
472622
- const _hoisted_5$8 = ["onClick"];
472623
- const _hoisted_6$8 = { class: "item-content" };
472624
- const _hoisted_7$5 = { class: "item-name" };
472625
- const _hoisted_8$5 = { class: "item-address" };
472626
- const _hoisted_9$5 = {
471981
+ const _hoisted_4$9 = { class: "section-title" };
471982
+ const _hoisted_5$9 = ["onClick"];
471983
+ const _hoisted_6$9 = { class: "item-content" };
471984
+ const _hoisted_7$6 = { class: "item-name" };
471985
+ const _hoisted_8$6 = { class: "item-address" };
471986
+ const _hoisted_9$6 = {
472627
471987
  key: 1,
472628
471988
  class: "search-section"
472629
471989
  };
472630
- const _hoisted_10$5 = {
471990
+ const _hoisted_10$6 = {
472631
471991
  key: 0,
472632
471992
  class: "section-title"
472633
471993
  };
472634
- const _hoisted_11$5 = { class: "result-count" };
472635
- const _hoisted_12$5 = ["onClick"];
472636
- const _hoisted_13$5 = { class: "item-content" };
472637
- const _hoisted_14$4 = ["innerHTML"];
471994
+ const _hoisted_11$6 = { class: "result-count" };
471995
+ const _hoisted_12$6 = ["onClick"];
471996
+ const _hoisted_13$6 = { class: "item-content" };
471997
+ const _hoisted_14$5 = ["innerHTML"];
472638
471998
  const _hoisted_15$4 = ["innerHTML"];
472639
471999
  const _hoisted_16$4 = {
472640
472000
  key: 0,
@@ -472648,7 +472008,7 @@ const _hoisted_18$3 = {
472648
472008
  key: 0,
472649
472009
  class: "no-results"
472650
472010
  };
472651
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
472011
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
472652
472012
  __name: "MapSearch",
472653
472013
  props: {
472654
472014
  config: { default: () => ({
@@ -472869,7 +472229,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472869
472229
  class: normalizeClass(["map-search-container", [`position-${position2.value}`, { "search-active": isSearchActive.value }]])
472870
472230
  }, [
472871
472231
  renderSlot(_ctx.$slots, "prepend", {}, void 0, true),
472872
- createElementVNode("div", _hoisted_1$9, [
472232
+ createElementVNode("div", _hoisted_1$a, [
472873
472233
  renderSlot(_ctx.$slots, "search-input", {
472874
472234
  searchQuery: searchQuery.value,
472875
472235
  placeholder: placeholder.value,
@@ -472925,7 +472285,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472925
472285
  }, 8, ["modelValue", "placeholder"])
472926
472286
  ], true)
472927
472287
  ]),
472928
- withDirectives(createElementVNode("div", _hoisted_2$9, [
472288
+ withDirectives(createElementVNode("div", _hoisted_2$a, [
472929
472289
  renderSlot(_ctx.$slots, "search-results", {
472930
472290
  searchResults: searchResults.value,
472931
472291
  searchHistory: searchHistory.value,
@@ -472937,9 +472297,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472937
472297
  clearHistory,
472938
472298
  highlightText
472939
472299
  }, () => [
472940
- showHistory.value && searchHistory.value.length > 0 && !searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_3$9, [
472300
+ showHistory.value && searchHistory.value.length > 0 && !searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_3$a, [
472941
472301
  renderSlot(_ctx.$slots, "history-title", { clearHistory }, () => [
472942
- createElementVNode("div", _hoisted_4$8, [
472302
+ createElementVNode("div", _hoisted_4$9, [
472943
472303
  _cache[2] || (_cache[2] = createElementVNode("span", null, "搜索历史", -1)),
472944
472304
  createVNode$1(unref(ElButton), {
472945
472305
  type: "text",
@@ -472971,22 +472331,22 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472971
472331
  ]),
472972
472332
  _: 1
472973
472333
  }),
472974
- createElementVNode("div", _hoisted_6$8, [
472975
- createElementVNode("div", _hoisted_7$5, toDisplayString(item.name), 1),
472976
- createElementVNode("div", _hoisted_8$5, toDisplayString(item.address), 1)
472334
+ createElementVNode("div", _hoisted_6$9, [
472335
+ createElementVNode("div", _hoisted_7$6, toDisplayString(item.name), 1),
472336
+ createElementVNode("div", _hoisted_8$6, toDisplayString(item.address), 1)
472977
472337
  ])
472978
- ], 10, _hoisted_5$8)
472338
+ ], 10, _hoisted_5$9)
472979
472339
  ], true);
472980
472340
  }), 128))
472981
472341
  ])) : createCommentVNode("", true),
472982
- searchResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9$5, [
472342
+ searchResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9$6, [
472983
472343
  renderSlot(_ctx.$slots, "results-title", {
472984
472344
  searchQuery: searchQuery.value,
472985
472345
  resultsCount: searchResults.value.length
472986
472346
  }, () => [
472987
- searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_10$5, [
472347
+ searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_10$6, [
472988
472348
  _cache[3] || (_cache[3] = createElementVNode("span", null, "搜索结果", -1)),
472989
- createElementVNode("span", _hoisted_11$5, "(" + toDisplayString(searchResults.value.length) + ")", 1)
472349
+ createElementVNode("span", _hoisted_11$6, "(" + toDisplayString(searchResults.value.length) + ")", 1)
472990
472350
  ])) : createCommentVNode("", true)
472991
472351
  ], true),
472992
472352
  (openBlock(true), createElementBlock(Fragment, null, renderList(displayResults.value, (result, index2) => {
@@ -473009,11 +472369,11 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
473009
472369
  ]),
473010
472370
  _: 1
473011
472371
  }),
473012
- createElementVNode("div", _hoisted_13$5, [
472372
+ createElementVNode("div", _hoisted_13$6, [
473013
472373
  createElementVNode("div", {
473014
472374
  class: "item-name",
473015
472375
  innerHTML: highlightText(result.name, searchQuery.value)
473016
- }, null, 8, _hoisted_14$4),
472376
+ }, null, 8, _hoisted_14$5),
473017
472377
  createElementVNode("div", {
473018
472378
  class: "item-address",
473019
472379
  innerHTML: highlightText(result.address, searchQuery.value)
@@ -473021,7 +472381,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
473021
472381
  result.type ? (openBlock(), createElementBlock("div", _hoisted_16$4, toDisplayString(result.type), 1)) : createCommentVNode("", true)
473022
472382
  ]),
473023
472383
  result.confidence ? (openBlock(), createElementBlock("div", _hoisted_17$3, toDisplayString(Math.round(result.confidence * 100)) + "%", 1)) : createCommentVNode("", true)
473024
- ], 10, _hoisted_12$5)
472384
+ ], 10, _hoisted_12$6)
473025
472385
  ], true);
473026
472386
  }), 128))
473027
472387
  ])) : createCommentVNode("", true),
@@ -473049,8 +472409,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
473049
472409
  };
473050
472410
  }
473051
472411
  });
473052
- const MapSearch = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-3547f7a5"]]);
473053
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
472412
+ const MapSearch = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-3547f7a5"]]);
472413
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
473054
472414
  __name: "index",
473055
472415
  props: {
473056
472416
  config: {},
@@ -473596,21 +472956,21 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
473596
472956
  };
473597
472957
  }
473598
472958
  });
473599
- const MapControls = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-45410a30"]]);
473600
- const _hoisted_1$8 = { class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 bg-gray-50 rounded-t-lg" };
473601
- const _hoisted_2$8 = { class: "panel-actions" };
473602
- const _hoisted_3$8 = { class: "panel-content max-h-125 overflow-y-auto" };
473603
- const _hoisted_4$7 = { class: "p-2" };
473604
- const _hoisted_5$7 = { class: "legend-content p-2" };
473605
- const _hoisted_6$7 = { key: 0 };
473606
- const _hoisted_7$4 = { class: "text-xs text-gray-600" };
473607
- const _hoisted_8$4 = { key: 1 };
473608
- const _hoisted_9$4 = { class: "text-xs text-gray-600" };
473609
- const _hoisted_10$4 = { key: 2 };
473610
- const _hoisted_11$4 = { class: "relative mb-2" };
473611
- const _hoisted_12$4 = { class: "flex justify-between mt-1 text-xs text-gray-500" };
473612
- const _hoisted_13$4 = { class: "text-center text-xs text-gray-500" };
473613
- const _hoisted_14$3 = { key: 3 };
472959
+ const MapControls = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-45410a30"]]);
472960
+ const _hoisted_1$9 = { class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 bg-gray-50 rounded-t-lg" };
472961
+ const _hoisted_2$9 = { class: "panel-actions" };
472962
+ const _hoisted_3$9 = { class: "panel-content max-h-125 overflow-y-auto" };
472963
+ const _hoisted_4$8 = { class: "p-2" };
472964
+ const _hoisted_5$8 = { class: "legend-content p-2" };
472965
+ const _hoisted_6$8 = { key: 0 };
472966
+ const _hoisted_7$5 = { class: "text-xs text-gray-600" };
472967
+ const _hoisted_8$5 = { key: 1 };
472968
+ const _hoisted_9$5 = { class: "text-xs text-gray-600" };
472969
+ const _hoisted_10$5 = { key: 2 };
472970
+ const _hoisted_11$5 = { class: "relative mb-2" };
472971
+ const _hoisted_12$5 = { class: "flex justify-between mt-1 text-xs text-gray-500" };
472972
+ const _hoisted_13$5 = { class: "text-center text-xs text-gray-500" };
472973
+ const _hoisted_14$4 = { key: 3 };
473614
472974
  const _hoisted_15$3 = { class: "flex-1 text-xs text-gray-600" };
473615
472975
  const _hoisted_16$3 = {
473616
472976
  key: 4,
@@ -473625,7 +472985,7 @@ const _hoisted_19$2 = {
473625
472985
  key: 1,
473626
472986
  class: "py-10 px-5 text-center"
473627
472987
  };
473628
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
472988
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
473629
472989
  __name: "LegendPanel",
473630
472990
  props: {
473631
472991
  position: { default: "right" },
@@ -473821,9 +473181,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473821
473181
  class: normalizeClass(["custom-legend-box absolute bg-white rounded-lg bottom-40px shadow-lg transition-all duration-300 max-h-[calc(100vh-40px)] overflow-hidden z-1000", { "legend-collapsed": isCollapsed.value }]),
473822
473182
  style: normalizeStyle$1(panelStyle.value)
473823
473183
  }, [
473824
- createElementVNode("div", _hoisted_1$8, [
473184
+ createElementVNode("div", _hoisted_1$9, [
473825
473185
  _cache[1] || (_cache[1] = createElementVNode("h3", { class: "m-0 text-sm font-semibold text-gray-800" }, "图例", -1)),
473826
- createElementVNode("div", _hoisted_2$8, [
473186
+ createElementVNode("div", _hoisted_2$9, [
473827
473187
  createVNode$1(_component_el_button, {
473828
473188
  link: "",
473829
473189
  size: "small",
@@ -473832,8 +473192,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473832
473192
  }, null, 8, ["icon"])
473833
473193
  ])
473834
473194
  ]),
473835
- createElementVNode("div", _hoisted_3$8, [
473836
- createElementVNode("div", _hoisted_4$7, [
473195
+ createElementVNode("div", _hoisted_3$9, [
473196
+ createElementVNode("div", _hoisted_4$8, [
473837
473197
  visibleLegends.value.length > 0 ? (openBlock(), createBlock(_component_el_collapse, {
473838
473198
  key: 0,
473839
473199
  modelValue: activeNames.value,
@@ -473849,8 +473209,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473849
473209
  class: "legend-item"
473850
473210
  }, {
473851
473211
  default: withCtx(() => [
473852
- createElementVNode("div", _hoisted_5$7, [
473853
- legend.type === "symbol" ? (openBlock(), createElementBlock("div", _hoisted_6$7, [
473212
+ createElementVNode("div", _hoisted_5$8, [
473213
+ legend.type === "symbol" ? (openBlock(), createElementBlock("div", _hoisted_6$8, [
473854
473214
  (openBlock(true), createElementBlock(Fragment, null, renderList(legend.items, (item) => {
473855
473215
  return openBlock(), createElementBlock("div", {
473856
473216
  key: item.value,
@@ -473860,10 +473220,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473860
473220
  class: "w-4 h-4 mr-2 border border-gray-300",
473861
473221
  style: normalizeStyle$1(getSymbolStyle(item))
473862
473222
  }, null, 4),
473863
- createElementVNode("span", _hoisted_7$4, toDisplayString(item.label), 1)
473223
+ createElementVNode("span", _hoisted_7$5, toDisplayString(item.label), 1)
473864
473224
  ]);
473865
473225
  }), 128))
473866
- ])) : legend.type === "color" ? (openBlock(), createElementBlock("div", _hoisted_8$4, [
473226
+ ])) : legend.type === "color" ? (openBlock(), createElementBlock("div", _hoisted_8$5, [
473867
473227
  (openBlock(true), createElementBlock(Fragment, null, renderList(legend.items, (item) => {
473868
473228
  return openBlock(), createElementBlock("div", {
473869
473229
  key: item.value,
@@ -473873,22 +473233,22 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473873
473233
  class: "w-4 h-4 mr-2 border border-gray-300 rounded-sm",
473874
473234
  style: normalizeStyle$1({ backgroundColor: item.color })
473875
473235
  }, null, 4),
473876
- createElementVNode("span", _hoisted_9$4, toDisplayString(item.label), 1)
473236
+ createElementVNode("span", _hoisted_9$5, toDisplayString(item.label), 1)
473877
473237
  ]);
473878
473238
  }), 128))
473879
- ])) : legend.type === "gradient" ? (openBlock(), createElementBlock("div", _hoisted_10$4, [
473880
- createElementVNode("div", _hoisted_11$4, [
473239
+ ])) : legend.type === "gradient" ? (openBlock(), createElementBlock("div", _hoisted_10$5, [
473240
+ createElementVNode("div", _hoisted_11$5, [
473881
473241
  createElementVNode("div", {
473882
473242
  class: "w-full h-5 border border-gray-300 rounded-sm",
473883
473243
  style: normalizeStyle$1(getGradientStyle(legend))
473884
473244
  }, null, 4),
473885
- createElementVNode("div", _hoisted_12$4, [
473245
+ createElementVNode("div", _hoisted_12$5, [
473886
473246
  createElementVNode("span", null, toDisplayString(legend.min), 1),
473887
473247
  createElementVNode("span", null, toDisplayString(legend.max), 1)
473888
473248
  ])
473889
473249
  ]),
473890
- createElementVNode("div", _hoisted_13$4, toDisplayString(legend.unit || ""), 1)
473891
- ])) : legend.type === "category" ? (openBlock(), createElementBlock("div", _hoisted_14$3, [
473250
+ createElementVNode("div", _hoisted_13$5, toDisplayString(legend.unit || ""), 1)
473251
+ ])) : legend.type === "category" ? (openBlock(), createElementBlock("div", _hoisted_14$4, [
473892
473252
  (openBlock(true), createElementBlock(Fragment, null, renderList(legend.items, (item) => {
473893
473253
  return openBlock(), createElementBlock("div", {
473894
473254
  key: item.value,
@@ -473925,7 +473285,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473925
473285
  };
473926
473286
  }
473927
473287
  });
473928
- const LegendPanel = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-e505d907"]]);
473288
+ const LegendPanel = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-e505d907"]]);
473929
473289
  class ConfigLoader {
473930
473290
  /**
473931
473291
  * 从URL加载配置文件
@@ -474827,20 +474187,20 @@ class LayerConfigManager {
474827
474187
  console.log("批量更新结果:", results);
474828
474188
  }
474829
474189
  }
474830
- const _hoisted_1$7 = { class: "filter-panel" };
474831
- const _hoisted_2$7 = { class: "config-section" };
474832
- const _hoisted_3$7 = { class: "config-item" };
474833
- const _hoisted_4$6 = { class: "value-text" };
474834
- const _hoisted_5$6 = { class: "config-item" };
474835
- const _hoisted_6$6 = { class: "value-text" };
474836
- const _hoisted_7$3 = { class: "config-item" };
474837
- const _hoisted_8$3 = { class: "value-text" };
474838
- const _hoisted_9$3 = { class: "config-item" };
474839
- const _hoisted_10$3 = { class: "value-text" };
474840
- const _hoisted_11$3 = { class: "config-section" };
474841
- const _hoisted_12$3 = { class: "config-item" };
474842
- const _hoisted_13$3 = { class: "value-text" };
474843
- const _hoisted_14$2 = { class: "config-item" };
474190
+ const _hoisted_1$8 = { class: "filter-panel" };
474191
+ const _hoisted_2$8 = { class: "config-section" };
474192
+ const _hoisted_3$8 = { class: "config-item" };
474193
+ const _hoisted_4$7 = { class: "value-text" };
474194
+ const _hoisted_5$7 = { class: "config-item" };
474195
+ const _hoisted_6$7 = { class: "value-text" };
474196
+ const _hoisted_7$4 = { class: "config-item" };
474197
+ const _hoisted_8$4 = { class: "value-text" };
474198
+ const _hoisted_9$4 = { class: "config-item" };
474199
+ const _hoisted_10$4 = { class: "value-text" };
474200
+ const _hoisted_11$4 = { class: "config-section" };
474201
+ const _hoisted_12$4 = { class: "config-item" };
474202
+ const _hoisted_13$4 = { class: "value-text" };
474203
+ const _hoisted_14$3 = { class: "config-item" };
474844
474204
  const _hoisted_15$2 = { class: "value-text" };
474845
474205
  const _hoisted_16$2 = { class: "config-item" };
474846
474206
  const _hoisted_17$1 = { class: "value-text" };
@@ -474848,7 +474208,7 @@ const _hoisted_18$1 = { class: "config-item" };
474848
474208
  const _hoisted_19$1 = { class: "value-text" };
474849
474209
  const _hoisted_20$1 = { class: "config-section" };
474850
474210
  const _hoisted_21$1 = { class: "preset-buttons" };
474851
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474211
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
474852
474212
  __name: "FilterPanel",
474853
474213
  props: {
474854
474214
  filters: {}
@@ -474868,10 +474228,10 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474868
474228
  return (_ctx, _cache) => {
474869
474229
  const _component_el_slider = resolveComponent("el-slider");
474870
474230
  const _component_el_button = resolveComponent("el-button");
474871
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
474872
- createElementVNode("div", _hoisted_2$7, [
474231
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
474232
+ createElementVNode("div", _hoisted_2$8, [
474873
474233
  _cache[15] || (_cache[15] = createElementVNode("h5", null, "色彩调整", -1)),
474874
- createElementVNode("div", _hoisted_3$7, [
474234
+ createElementVNode("div", _hoisted_3$8, [
474875
474235
  _cache[11] || (_cache[11] = createElementVNode("label", null, "色相:", -1)),
474876
474236
  createVNode$1(_component_el_slider, {
474877
474237
  modelValue: _ctx.filters.hue,
@@ -474881,9 +474241,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474881
474241
  step: 1,
474882
474242
  onInput: handleFilterChange
474883
474243
  }, null, 8, ["modelValue"]),
474884
- createElementVNode("span", _hoisted_4$6, toDisplayString(_ctx.filters.hue) + "°", 1)
474244
+ createElementVNode("span", _hoisted_4$7, toDisplayString(_ctx.filters.hue) + "°", 1)
474885
474245
  ]),
474886
- createElementVNode("div", _hoisted_5$6, [
474246
+ createElementVNode("div", _hoisted_5$7, [
474887
474247
  _cache[12] || (_cache[12] = createElementVNode("label", null, "饱和度:", -1)),
474888
474248
  createVNode$1(_component_el_slider, {
474889
474249
  modelValue: _ctx.filters.saturate,
@@ -474893,9 +474253,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474893
474253
  step: 1,
474894
474254
  onInput: handleFilterChange
474895
474255
  }, null, 8, ["modelValue"]),
474896
- createElementVNode("span", _hoisted_6$6, toDisplayString(_ctx.filters.saturate) + "%", 1)
474256
+ createElementVNode("span", _hoisted_6$7, toDisplayString(_ctx.filters.saturate) + "%", 1)
474897
474257
  ]),
474898
- createElementVNode("div", _hoisted_7$3, [
474258
+ createElementVNode("div", _hoisted_7$4, [
474899
474259
  _cache[13] || (_cache[13] = createElementVNode("label", null, "亮度:", -1)),
474900
474260
  createVNode$1(_component_el_slider, {
474901
474261
  modelValue: _ctx.filters.brightness,
@@ -474905,9 +474265,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474905
474265
  step: 1,
474906
474266
  onInput: handleFilterChange
474907
474267
  }, null, 8, ["modelValue"]),
474908
- createElementVNode("span", _hoisted_8$3, toDisplayString(_ctx.filters.brightness) + "%", 1)
474268
+ createElementVNode("span", _hoisted_8$4, toDisplayString(_ctx.filters.brightness) + "%", 1)
474909
474269
  ]),
474910
- createElementVNode("div", _hoisted_9$3, [
474270
+ createElementVNode("div", _hoisted_9$4, [
474911
474271
  _cache[14] || (_cache[14] = createElementVNode("label", null, "对比度:", -1)),
474912
474272
  createVNode$1(_component_el_slider, {
474913
474273
  modelValue: _ctx.filters.contrast,
@@ -474917,12 +474277,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474917
474277
  step: 1,
474918
474278
  onInput: handleFilterChange
474919
474279
  }, null, 8, ["modelValue"]),
474920
- createElementVNode("span", _hoisted_10$3, toDisplayString(_ctx.filters.contrast) + "%", 1)
474280
+ createElementVNode("span", _hoisted_10$4, toDisplayString(_ctx.filters.contrast) + "%", 1)
474921
474281
  ])
474922
474282
  ]),
474923
- createElementVNode("div", _hoisted_11$3, [
474283
+ createElementVNode("div", _hoisted_11$4, [
474924
474284
  _cache[20] || (_cache[20] = createElementVNode("h5", null, "特殊效果", -1)),
474925
- createElementVNode("div", _hoisted_12$3, [
474285
+ createElementVNode("div", _hoisted_12$4, [
474926
474286
  _cache[16] || (_cache[16] = createElementVNode("label", null, "模糊:", -1)),
474927
474287
  createVNode$1(_component_el_slider, {
474928
474288
  modelValue: _ctx.filters.blur,
@@ -474932,9 +474292,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474932
474292
  step: 0.1,
474933
474293
  onInput: handleFilterChange
474934
474294
  }, null, 8, ["modelValue"]),
474935
- createElementVNode("span", _hoisted_13$3, toDisplayString(_ctx.filters.blur) + "px", 1)
474295
+ createElementVNode("span", _hoisted_13$4, toDisplayString(_ctx.filters.blur) + "px", 1)
474936
474296
  ]),
474937
- createElementVNode("div", _hoisted_14$2, [
474297
+ createElementVNode("div", _hoisted_14$3, [
474938
474298
  _cache[17] || (_cache[17] = createElementVNode("label", null, "棕褐色:", -1)),
474939
474299
  createVNode$1(_component_el_slider, {
474940
474300
  modelValue: _ctx.filters.sepia,
@@ -475018,27 +474378,27 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
475018
474378
  };
475019
474379
  }
475020
474380
  });
475021
- const FilterPanel = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-c78acf80"]]);
475022
- const _hoisted_1$6 = { class: "style-config-panel" };
475023
- const _hoisted_2$6 = { class: "panel-title" };
475024
- const _hoisted_3$6 = {
474381
+ const FilterPanel = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-c78acf80"]]);
474382
+ const _hoisted_1$7 = { class: "style-config-panel" };
474383
+ const _hoisted_2$7 = { class: "panel-title" };
474384
+ const _hoisted_3$7 = {
475025
474385
  key: 0,
475026
474386
  class: "config-section"
475027
474387
  };
475028
- const _hoisted_4$5 = { class: "config-item" };
475029
- const _hoisted_5$5 = { class: "value-text" };
475030
- const _hoisted_6$5 = { class: "config-item" };
475031
- const _hoisted_7$2 = { class: "value-text" };
475032
- const _hoisted_8$2 = {
474388
+ const _hoisted_4$6 = { class: "config-item" };
474389
+ const _hoisted_5$6 = { class: "value-text" };
474390
+ const _hoisted_6$6 = { class: "config-item" };
474391
+ const _hoisted_7$3 = { class: "value-text" };
474392
+ const _hoisted_8$3 = {
475033
474393
  key: 1,
475034
474394
  class: "config-section"
475035
474395
  };
475036
- const _hoisted_9$2 = { class: "config-item" };
475037
- const _hoisted_10$2 = { class: "config-item" };
475038
- const _hoisted_11$2 = { class: "config-item" };
475039
- const _hoisted_12$2 = { class: "config-item" };
475040
- const _hoisted_13$2 = { class: "panel-actions" };
475041
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
474396
+ const _hoisted_9$3 = { class: "config-item" };
474397
+ const _hoisted_10$3 = { class: "config-item" };
474398
+ const _hoisted_11$3 = { class: "config-item" };
474399
+ const _hoisted_12$3 = { class: "config-item" };
474400
+ const _hoisted_13$3 = { class: "panel-actions" };
474401
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
475042
474402
  __name: "LayerStyleConfig",
475043
474403
  props: {
475044
474404
  layerData: {}
@@ -475069,11 +474429,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475069
474429
  const _component_el_select = resolveComponent("el-select");
475070
474430
  const _component_el_switch = resolveComponent("el-switch");
475071
474431
  const _component_el_button = resolveComponent("el-button");
475072
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
475073
- createElementVNode("h4", _hoisted_2$6, toDisplayString(_ctx.layerData.label) + " - 样式配置", 1),
475074
- isClusterLayer.value ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
474432
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
474433
+ createElementVNode("h4", _hoisted_2$7, toDisplayString(_ctx.layerData.label) + " - 样式配置", 1),
474434
+ isClusterLayer.value ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
475075
474435
  _cache[8] || (_cache[8] = createElementVNode("h5", null, "聚合配置", -1)),
475076
- createElementVNode("div", _hoisted_4$5, [
474436
+ createElementVNode("div", _hoisted_4$6, [
475077
474437
  _cache[6] || (_cache[6] = createElementVNode("label", null, "聚合距离:", -1)),
475078
474438
  createVNode$1(_component_el_slider, {
475079
474439
  modelValue: _ctx.layerData.clusterDistance,
@@ -475083,9 +474443,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475083
474443
  size: "small",
475084
474444
  onInput: handleClusterDistanceChange
475085
474445
  }, null, 8, ["modelValue"]),
475086
- createElementVNode("span", _hoisted_5$5, toDisplayString(_ctx.layerData.clusterDistance) + "px", 1)
474446
+ createElementVNode("span", _hoisted_5$6, toDisplayString(_ctx.layerData.clusterDistance) + "px", 1)
475087
474447
  ]),
475088
- createElementVNode("div", _hoisted_6$5, [
474448
+ createElementVNode("div", _hoisted_6$6, [
475089
474449
  _cache[7] || (_cache[7] = createElementVNode("label", null, "最小距离:", -1)),
475090
474450
  createVNode$1(_component_el_slider, {
475091
474451
  modelValue: _ctx.layerData.minDistance,
@@ -475095,12 +474455,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475095
474455
  size: "small",
475096
474456
  onInput: handleClusterDistanceChange
475097
474457
  }, null, 8, ["modelValue"]),
475098
- createElementVNode("span", _hoisted_7$2, toDisplayString(_ctx.layerData.minDistance) + "px", 1)
474458
+ createElementVNode("span", _hoisted_7$3, toDisplayString(_ctx.layerData.minDistance) + "px", 1)
475099
474459
  ])
475100
474460
  ])) : createCommentVNode("", true),
475101
- isSuperMapLayer.value ? (openBlock(), createElementBlock("div", _hoisted_8$2, [
474461
+ isSuperMapLayer.value ? (openBlock(), createElementBlock("div", _hoisted_8$3, [
475102
474462
  _cache[13] || (_cache[13] = createElementVNode("h5", null, "SuperMap配置", -1)),
475103
- createElementVNode("div", _hoisted_9$2, [
474463
+ createElementVNode("div", _hoisted_9$3, [
475104
474464
  _cache[9] || (_cache[9] = createElementVNode("label", null, "图片格式:", -1)),
475105
474465
  createVNode$1(_component_el_select, {
475106
474466
  modelValue: _ctx.layerData.format,
@@ -475125,7 +474485,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475125
474485
  _: 1
475126
474486
  }, 8, ["modelValue"])
475127
474487
  ]),
475128
- createElementVNode("div", _hoisted_10$2, [
474488
+ createElementVNode("div", _hoisted_10$3, [
475129
474489
  _cache[10] || (_cache[10] = createElementVNode("label", null, "透明度支持:", -1)),
475130
474490
  createVNode$1(_component_el_switch, {
475131
474491
  modelValue: _ctx.layerData.transparent,
@@ -475134,7 +474494,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475134
474494
  onChange: handleSuperMapConfigChange
475135
474495
  }, null, 8, ["modelValue"])
475136
474496
  ]),
475137
- createElementVNode("div", _hoisted_11$2, [
474497
+ createElementVNode("div", _hoisted_11$3, [
475138
474498
  _cache[11] || (_cache[11] = createElementVNode("label", null, "缓存启用:", -1)),
475139
474499
  createVNode$1(_component_el_switch, {
475140
474500
  modelValue: _ctx.layerData.cacheEnabled,
@@ -475143,7 +474503,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475143
474503
  onChange: handleSuperMapConfigChange
475144
474504
  }, null, 8, ["modelValue"])
475145
474505
  ]),
475146
- createElementVNode("div", _hoisted_12$2, [
474506
+ createElementVNode("div", _hoisted_12$3, [
475147
474507
  _cache[12] || (_cache[12] = createElementVNode("label", null, "自动获取元数据:", -1)),
475148
474508
  createVNode$1(_component_el_switch, {
475149
474509
  modelValue: _ctx.layerData.autoFetchMetadata,
@@ -475153,7 +474513,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475153
474513
  }, null, 8, ["modelValue"])
475154
474514
  ])
475155
474515
  ])) : createCommentVNode("", true),
475156
- createElementVNode("div", _hoisted_13$2, [
474516
+ createElementVNode("div", _hoisted_13$3, [
475157
474517
  createVNode$1(_component_el_button, {
475158
474518
  size: "small",
475159
474519
  onClick: handleReset
@@ -475168,17 +474528,17 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475168
474528
  };
475169
474529
  }
475170
474530
  });
475171
- const LayerStyleConfig = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-21ab8d8c"]]);
475172
- const _hoisted_1$5 = {
474531
+ const LayerStyleConfig = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-21ab8d8c"]]);
474532
+ const _hoisted_1$6 = {
475173
474533
  key: 0,
475174
474534
  class: "group-node"
475175
474535
  };
475176
- const _hoisted_2$5 = { class: "font-medium" };
475177
- const _hoisted_3$5 = { class: "layer-info" };
475178
- const _hoisted_4$4 = { class: "layer-name" };
475179
- const _hoisted_5$4 = { class: "opacity-control" };
475180
- const _hoisted_6$4 = { class: "opacity-value" };
475181
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
474536
+ const _hoisted_2$6 = { class: "font-medium" };
474537
+ const _hoisted_3$6 = { class: "layer-info" };
474538
+ const _hoisted_4$5 = { class: "layer-name" };
474539
+ const _hoisted_5$5 = { class: "opacity-control" };
474540
+ const _hoisted_6$5 = { class: "opacity-value" };
474541
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475182
474542
  __name: "LayerTreeNode",
475183
474543
  props: {
475184
474544
  data: {},
@@ -475216,14 +474576,14 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475216
474576
  onDblclick: _cache[6] || (_cache[6] = withModifiers(() => {
475217
474577
  }, ["stop"]))
475218
474578
  }, [
475219
- _ctx.data.type === "group" ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
474579
+ _ctx.data.type === "group" ? (openBlock(), createElementBlock("div", _hoisted_1$6, [
475220
474580
  createVNode$1(_component_el_icon, { class: "mr-2" }, {
475221
474581
  default: withCtx(() => [
475222
474582
  createVNode$1(unref(folder_opened_default))
475223
474583
  ]),
475224
474584
  _: 1
475225
474585
  }),
475226
- createElementVNode("span", _hoisted_2$5, toDisplayString(_ctx.data.label), 1)
474586
+ createElementVNode("span", _hoisted_2$6, toDisplayString(_ctx.data.label), 1)
475227
474587
  ])) : (openBlock(), createElementBlock("div", {
475228
474588
  key: 1,
475229
474589
  class: "layer-item",
@@ -475231,7 +474591,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475231
474591
  onClick: _cache[5] || (_cache[5] = withModifiers(() => {
475232
474592
  }, ["stop"]))
475233
474593
  }, [
475234
- createElementVNode("div", _hoisted_3$5, [
474594
+ createElementVNode("div", _hoisted_3$6, [
475235
474595
  createVNode$1(_component_el_icon, {
475236
474596
  class: normalizeClass(["layer-icon", layerIconClass.value])
475237
474597
  }, {
@@ -475240,7 +474600,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475240
474600
  ]),
475241
474601
  _: 1
475242
474602
  }, 8, ["class"]),
475243
- createElementVNode("span", _hoisted_4$4, toDisplayString(_ctx.data.label), 1)
474603
+ createElementVNode("span", _hoisted_4$5, toDisplayString(_ctx.data.label), 1)
475244
474604
  ]),
475245
474605
  createElementVNode("div", {
475246
474606
  class: "layer-controls",
@@ -475251,7 +474611,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475251
474611
  onDblclick: _cache[4] || (_cache[4] = withModifiers(() => {
475252
474612
  }, ["stop"]))
475253
474613
  }, [
475254
- createElementVNode("div", _hoisted_5$4, [
474614
+ createElementVNode("div", _hoisted_5$5, [
475255
474615
  createVNode$1(_component_el_slider, {
475256
474616
  modelValue: _ctx.data.layerData.opacity,
475257
474617
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.data.layerData.opacity = $event),
@@ -475261,7 +474621,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475261
474621
  class: "opacity-slider",
475262
474622
  onInput: handleOpacityChange
475263
474623
  }, null, 8, ["modelValue"]),
475264
- createElementVNode("span", _hoisted_6$4, toDisplayString(_ctx.data.layerData.opacity) + "%", 1)
474624
+ createElementVNode("span", _hoisted_6$5, toDisplayString(_ctx.data.layerData.opacity) + "%", 1)
475265
474625
  ]),
475266
474626
  createVNode$1(_component_el_popover, {
475267
474627
  placement: "left",
@@ -475305,14 +474665,14 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475305
474665
  };
475306
474666
  }
475307
474667
  });
475308
- const LayerTreeNode = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-7bff1f66"]]);
475309
- const _hoisted_1$4 = { class: "flex-1 overflow-y-auto p-4" };
475310
- const _hoisted_2$4 = { class: "global-style-panel" };
475311
- const _hoisted_3$4 = { class: "config-section" };
475312
- const _hoisted_4$3 = { class: "config-item" };
475313
- const _hoisted_5$3 = { class: "current-style-display" };
475314
- const _hoisted_6$3 = { class: "style-preview" };
475315
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
474668
+ const LayerTreeNode = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-7bff1f66"]]);
474669
+ const _hoisted_1$5 = { class: "flex-1 overflow-y-auto p-4" };
474670
+ const _hoisted_2$5 = { class: "global-style-panel" };
474671
+ const _hoisted_3$5 = { class: "config-section" };
474672
+ const _hoisted_4$4 = { class: "config-item" };
474673
+ const _hoisted_5$4 = { class: "current-style-display" };
474674
+ const _hoisted_6$4 = { class: "style-preview" };
474675
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475316
474676
  __name: "LayerPanel",
475317
474677
  props: {
475318
474678
  modelValue: { type: Boolean }
@@ -475917,7 +475277,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475917
475277
  name: "layers"
475918
475278
  }, {
475919
475279
  default: withCtx(() => [
475920
- createElementVNode("div", _hoisted_1$4, [
475280
+ createElementVNode("div", _hoisted_1$5, [
475921
475281
  createVNode$1(_component_el_tree, {
475922
475282
  ref_key: "treeRef",
475923
475283
  ref: treeRef,
@@ -475957,7 +475317,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475957
475317
  name: "style"
475958
475318
  }, {
475959
475319
  default: withCtx(() => [
475960
- createElementVNode("div", _hoisted_2$4, [
475320
+ createElementVNode("div", _hoisted_2$5, [
475961
475321
  createVNode$1(_component_el_tabs, {
475962
475322
  modelValue: activeStyleTab.value,
475963
475323
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => activeStyleTab.value = $event),
@@ -475983,8 +475343,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475983
475343
  name: "custom"
475984
475344
  }, {
475985
475345
  default: withCtx(() => [
475986
- createElementVNode("div", _hoisted_3$4, [
475987
- createElementVNode("div", _hoisted_4$3, [
475346
+ createElementVNode("div", _hoisted_3$5, [
475347
+ createElementVNode("div", _hoisted_4$4, [
475988
475348
  createVNode$1(unref(ElInput), {
475989
475349
  modelValue: unref(globalCustomCss),
475990
475350
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(globalCustomCss) ? globalCustomCss.value = $event : null),
@@ -475995,9 +475355,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475995
475355
  onInput: updateGlobalStyle
475996
475356
  }, null, 8, ["modelValue"])
475997
475357
  ]),
475998
- createElementVNode("div", _hoisted_5$3, [
475358
+ createElementVNode("div", _hoisted_5$4, [
475999
475359
  _cache[4] || (_cache[4] = createElementVNode("h6", null, "当前应用的样式:", -1)),
476000
- createElementVNode("div", _hoisted_6$3, toDisplayString(currentAppliedStyle.value), 1)
475360
+ createElementVNode("div", _hoisted_6$4, toDisplayString(currentAppliedStyle.value), 1)
476001
475361
  ])
476002
475362
  ])
476003
475363
  ]),
@@ -476019,7 +475379,256 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
476019
475379
  };
476020
475380
  }
476021
475381
  });
476022
- const LayerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-2456ec00"]]);
475382
+ const LayerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-2456ec00"]]);
475383
+ const _hoisted_1$4 = {
475384
+ key: 2,
475385
+ class: "tooltip-content"
475386
+ };
475387
+ const _hoisted_2$4 = ["innerHTML"];
475388
+ const _hoisted_3$4 = { key: 1 };
475389
+ const _hoisted_4$3 = { class: "layer-title" };
475390
+ const _hoisted_5$3 = ["onClick"];
475391
+ const _hoisted_6$3 = { class: "property-key" };
475392
+ const _hoisted_7$2 = { class: "property-value" };
475393
+ const _hoisted_8$2 = ["innerHTML"];
475394
+ const _hoisted_9$2 = { key: 3 };
475395
+ const _hoisted_10$2 = { class: "mb-3 pb-2 border-b border-gray-200 text-xs text-gray-600" };
475396
+ const _hoisted_11$2 = { class: "m-0 mb-2 text-sm font-semibold text-gray-800 border-b border-gray-200 pb-1" };
475397
+ const _hoisted_12$2 = ["onClick"];
475398
+ const _hoisted_13$2 = { class: "font-medium text-gray-700 min-w-20 mr-2" };
475399
+ const _hoisted_14$2 = { class: "text-gray-800 break-all flex-1" };
475400
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475401
+ __name: "index",
475402
+ props: {
475403
+ config: {},
475404
+ template: { type: [String, Object, Array, Function], default: void 0 },
475405
+ visible: { type: Boolean },
475406
+ tooltipData: {},
475407
+ coordinate: {},
475408
+ pixel: {}
475409
+ },
475410
+ emits: ["data-loaded", "show", "hide", "feature-click"],
475411
+ setup(__props, { emit: __emit }) {
475412
+ const props = __props;
475413
+ const emit = __emit;
475414
+ const tooltipRef = ref();
475415
+ const formattedData = computed(() => {
475416
+ if (!props.tooltipData)
475417
+ return null;
475418
+ return props.tooltipData.map((layerData) => ({
475419
+ ...layerData,
475420
+ features: layerData.features.map((feature2) => ({
475421
+ ...feature2,
475422
+ properties: feature2.properties || feature2
475423
+ }))
475424
+ }));
475425
+ });
475426
+ const templateData = computed(() => ({
475427
+ data: props.tooltipData || [],
475428
+ formattedData: formattedData.value,
475429
+ coordinate: props.coordinate,
475430
+ pixel: props.pixel
475431
+ }));
475432
+ const renderedTemplate = computed(() => {
475433
+ if (!props.template || !props.tooltipData)
475434
+ return "";
475435
+ if (typeof props.template === "string") {
475436
+ let html = props.template;
475437
+ html = html.replace(/\{\{coordinate\}\}/g, `${props.coordinate[0].toFixed(6)}, ${props.coordinate[1].toFixed(6)}`);
475438
+ html = html.replace(/\{\{layerCount\}\}/g, props.tooltipData.length.toString());
475439
+ return html;
475440
+ }
475441
+ if (typeof props.template === "function") {
475442
+ return props.template(templateData.value);
475443
+ }
475444
+ return "";
475445
+ });
475446
+ const tooltipStyle = computed(() => {
475447
+ var _a3, _b3;
475448
+ const style = {
475449
+ position: "absolute",
475450
+ left: `${props.pixel[0] + (((_a3 = props.config.offset) == null ? void 0 : _a3[0]) || 10)}px`,
475451
+ top: `${props.pixel[1] + (((_b3 = props.config.offset) == null ? void 0 : _b3[1]) || 10)}px`,
475452
+ zIndex: 9999
475453
+ };
475454
+ if (props.config.maxWidth) {
475455
+ style.maxWidth = `${props.config.maxWidth}px`;
475456
+ }
475457
+ if (props.config.maxHeight) {
475458
+ style.maxHeight = `${props.config.maxHeight}px`;
475459
+ }
475460
+ return style;
475461
+ });
475462
+ const formatValue = (value) => {
475463
+ if (value === null || value === void 0)
475464
+ return "-";
475465
+ if (typeof value === "object")
475466
+ return JSON.stringify(value);
475467
+ return String(value);
475468
+ };
475469
+ const hide = () => {
475470
+ emit("hide");
475471
+ };
475472
+ const handleFeatureClick = (feature2, layerData) => {
475473
+ emit("feature-click", feature2, {
475474
+ layerId: layerData.layerId,
475475
+ layerName: layerData.layerName
475476
+ }, props.coordinate);
475477
+ };
475478
+ watch(
475479
+ () => props.visible,
475480
+ (newVisible) => {
475481
+ if (newVisible && props.tooltipData) {
475482
+ emit("show", templateData.value);
475483
+ nextTick(() => {
475484
+ adjustPosition();
475485
+ });
475486
+ } else if (!newVisible) {
475487
+ emit("hide");
475488
+ }
475489
+ }
475490
+ );
475491
+ watch(
475492
+ () => props.tooltipData,
475493
+ (newData) => {
475494
+ if (newData) {
475495
+ emit("data-loaded", newData);
475496
+ }
475497
+ }
475498
+ );
475499
+ const adjustPosition = () => {
475500
+ var _a3, _b3;
475501
+ if (!tooltipRef.value)
475502
+ return;
475503
+ const tooltip = tooltipRef.value;
475504
+ const rect3 = tooltip.getBoundingClientRect();
475505
+ const viewportWidth = window.innerWidth;
475506
+ const viewportHeight = window.innerHeight;
475507
+ let left = props.pixel[0] + (((_a3 = props.config.offset) == null ? void 0 : _a3[0]) || 10);
475508
+ let top = props.pixel[1] + (((_b3 = props.config.offset) == null ? void 0 : _b3[1]) || 10);
475509
+ if (left + rect3.width > viewportWidth) {
475510
+ left = props.pixel[0] - rect3.width - 10;
475511
+ }
475512
+ if (top + rect3.height > viewportHeight) {
475513
+ top = props.pixel[1] - rect3.height - 10;
475514
+ }
475515
+ if (left < 0) {
475516
+ left = 10;
475517
+ }
475518
+ if (top < 0) {
475519
+ top = 10;
475520
+ }
475521
+ tooltip.style.left = `${left}px`;
475522
+ tooltip.style.top = `${top}px`;
475523
+ };
475524
+ const handleClickOutside = (event) => {
475525
+ if (tooltipRef.value && !tooltipRef.value.contains(event.target)) {
475526
+ hide();
475527
+ }
475528
+ };
475529
+ onMounted(() => {
475530
+ document.addEventListener("click", handleClickOutside);
475531
+ });
475532
+ onUnmounted(() => {
475533
+ document.removeEventListener("click", handleClickOutside);
475534
+ });
475535
+ return (_ctx, _cache) => {
475536
+ const _component_el_button = resolveComponent("el-button");
475537
+ return _ctx.visible && _ctx.tooltipData ? (openBlock(), createElementBlock("div", {
475538
+ key: 0,
475539
+ ref_key: "tooltipRef",
475540
+ ref: tooltipRef,
475541
+ class: normalizeClass(["bg-white/95 border border-gray-300 rounded-md shadow-lg p-3 text-sm leading-relaxed max-w-75 max-h-100 overflow-y-auto backdrop-blur-10px relative", _ctx.config.className]),
475542
+ style: normalizeStyle$1(tooltipStyle.value)
475543
+ }, [
475544
+ _ctx.config.showCloseButton ? (openBlock(), createBlock(_component_el_button, {
475545
+ key: 0,
475546
+ class: "absolute top-2 right-2",
475547
+ size: "small",
475548
+ text: "",
475549
+ circle: "",
475550
+ onClick: hide
475551
+ }, {
475552
+ icon: withCtx(() => [..._cache[0] || (_cache[0] = [
475553
+ createElementVNode("span", { class: "text-gray-400 hover:text-gray-600" }, "×", -1)
475554
+ ])]),
475555
+ _: 1
475556
+ })) : createCommentVNode("", true),
475557
+ _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", {
475558
+ key: 1,
475559
+ data: _ctx.tooltipData,
475560
+ formattedData: formattedData.value,
475561
+ coordinate: _ctx.coordinate,
475562
+ pixel: _ctx.pixel
475563
+ }) : (openBlock(), createElementBlock("div", _hoisted_1$4, [
475564
+ typeof _ctx.template === "string" ? (openBlock(), createElementBlock("div", {
475565
+ key: 0,
475566
+ innerHTML: renderedTemplate.value
475567
+ }, null, 8, _hoisted_2$4)) : typeof _ctx.template === "object" ? (openBlock(), createElementBlock("div", _hoisted_3$4, [
475568
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.tooltipData, (layerData, index2) => {
475569
+ return openBlock(), createElementBlock("div", {
475570
+ key: layerData.layerId,
475571
+ class: "layer-info"
475572
+ }, [
475573
+ createElementVNode("h4", _hoisted_4$3, toDisplayString(layerData.layerName), 1),
475574
+ (openBlock(true), createElementBlock(Fragment, null, renderList(layerData.features, (feature2, fIndex) => {
475575
+ return openBlock(), createElementBlock("div", {
475576
+ key: fIndex,
475577
+ class: "feature-info",
475578
+ onClick: ($event) => handleFeatureClick(feature2, layerData)
475579
+ }, [
475580
+ (openBlock(true), createElementBlock(Fragment, null, renderList(feature2.properties || feature2, (value, key) => {
475581
+ return openBlock(), createElementBlock("div", {
475582
+ key,
475583
+ class: "property-item"
475584
+ }, [
475585
+ createElementVNode("span", _hoisted_6$3, toDisplayString(key) + ":", 1),
475586
+ createElementVNode("span", _hoisted_7$2, toDisplayString(formatValue(value)), 1)
475587
+ ]);
475588
+ }), 128))
475589
+ ], 8, _hoisted_5$3);
475590
+ }), 128))
475591
+ ]);
475592
+ }), 128))
475593
+ ])) : typeof _ctx.template === "function" ? (openBlock(), createElementBlock("div", {
475594
+ key: 2,
475595
+ innerHTML: renderedTemplate.value
475596
+ }, null, 8, _hoisted_8$2)) : (openBlock(), createElementBlock("div", _hoisted_9$2, [
475597
+ createElementVNode("div", _hoisted_10$2, [
475598
+ _cache[1] || (_cache[1] = createElementVNode("strong", null, "坐标:", -1)),
475599
+ createTextVNode(" " + toDisplayString(_ctx.coordinate[0].toFixed(6)) + ", " + toDisplayString(_ctx.coordinate[1].toFixed(6)), 1)
475600
+ ]),
475601
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.tooltipData, (layerData, index2) => {
475602
+ return openBlock(), createElementBlock("div", {
475603
+ key: layerData.layerId,
475604
+ class: "mb-4 last-mb-0"
475605
+ }, [
475606
+ createElementVNode("h4", _hoisted_11$2, toDisplayString(layerData.layerName), 1),
475607
+ (openBlock(true), createElementBlock(Fragment, null, renderList(layerData.features, (feature2, fIndex) => {
475608
+ return openBlock(), createElementBlock("div", {
475609
+ key: fIndex,
475610
+ class: "mb-3 p-2 bg-gray-50 rounded cursor-pointer transition-colors hover-bg-gray-100 last-mb-0",
475611
+ onClick: ($event) => handleFeatureClick(feature2, layerData)
475612
+ }, [
475613
+ (openBlock(true), createElementBlock(Fragment, null, renderList(feature2.properties || feature2, (value, key) => {
475614
+ return openBlock(), createElementBlock("div", {
475615
+ key,
475616
+ class: "flex mb-1 last-mb-0"
475617
+ }, [
475618
+ createElementVNode("span", _hoisted_13$2, toDisplayString(key) + ":", 1),
475619
+ createElementVNode("span", _hoisted_14$2, toDisplayString(formatValue(value)), 1)
475620
+ ]);
475621
+ }), 128))
475622
+ ], 8, _hoisted_12$2);
475623
+ }), 128))
475624
+ ]);
475625
+ }), 128))
475626
+ ]))
475627
+ ]))
475628
+ ], 6)) : createCommentVNode("", true);
475629
+ };
475630
+ }
475631
+ });
476023
475632
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
476024
475633
  __name: "BasePopup",
476025
475634
  props: {
@@ -477251,7 +476860,7 @@ function createPopupManager(map2, config) {
477251
476860
  return new PopupManager(map2, config);
477252
476861
  }
477253
476862
  const _hoisted_1 = {
477254
- key: 8,
476863
+ key: 10,
477255
476864
  class: "absolute top-15 right-2.5 w-62.5 max-h-75 bg-white rounded-md shadow-lg z-1000 overflow-hidden md:w-50 md:top-20 md:right-1.25"
477256
476865
  };
477257
476866
  const _hoisted_2 = { class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 bg-gray-50" };
@@ -477268,6 +476877,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477268
476877
  config: {},
477269
476878
  width: { default: "100%" },
477270
476879
  height: { default: "100%" },
476880
+ loading: { type: Boolean },
477271
476881
  showToolbar: { type: Boolean, default: void 0 },
477272
476882
  showMapInfo: { type: Boolean, default: void 0 },
477273
476883
  showLayerPanel: { type: Boolean, default: void 0 },
@@ -477305,7 +476915,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477305
476915
  enablePopup: { type: Boolean, default: true },
477306
476916
  popupConfig: {}
477307
476917
  },
477308
- emits: ["map-ready", "map-click", "map-dblclick", "map-contextmenu", "map-move", "zoom-change", "feature-info", "tooltip-show", "tooltip-hide", "feature-click", "layer-change", "measurement-change", "tool-action", "search", "search-select", "search-clear", "popup-show", "popup-hide", "popup-close"],
476918
+ emits: ["map-ready", "map-click", "map-dblclick", "map-contextmenu", "map-move", "zoom-change", "feature-info", "tooltip-show", "tooltip-hide", "feature-click", "layer-change", "measurement-change", "measurement-start", "measurement-end", "measurement-result", "context-menu", "tool-action", "search", "search-select", "search-clear", "popup-show", "popup-hide", "popup-close"],
477309
476919
  setup(__props, { expose: __expose, emit: __emit }) {
477310
476920
  const props = __props;
477311
476921
  const emit = __emit;
@@ -477313,6 +476923,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477313
476923
  const eventBus = ref(createLayerEventBus());
477314
476924
  const storage2 = ref(createMapStorage(instanceId.value));
477315
476925
  const mapManager = ref(null);
476926
+ const isPickingCoordinate = ref(false);
476927
+ const tooltipData = ref([]);
476928
+ const tooltipVisible = ref(false);
476929
+ const tooltipPosition = ref({ x: 0, y: 0 });
476930
+ const contextMenuVisible = ref(false);
476931
+ const contextMenuPosition = ref({ x: 0, y: 0 });
476932
+ const contextMenuCoordinate = ref([0, 0]);
477316
476933
  const mapContainerRef = ref();
477317
476934
  const mapToolbarRef = ref();
477318
476935
  const mapSearchRef = ref();
@@ -477519,6 +477136,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477519
477136
  if (props.enableStorage) {
477520
477137
  loadStoredData();
477521
477138
  }
477139
+ document.addEventListener("click", handleDocumentClick);
477522
477140
  });
477523
477141
  onUnmounted(() => {
477524
477142
  if (measurementTool.value) {
@@ -477527,7 +477145,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477527
477145
  if (popupManager.value) {
477528
477146
  popupManager.value.destroy();
477529
477147
  }
477148
+ document.removeEventListener("click", handleDocumentClick);
477530
477149
  });
477150
+ const handleDocumentClick = (event) => {
477151
+ const target = event.target;
477152
+ if (!target.closest(".context-menu")) {
477153
+ contextMenuVisible.value = false;
477154
+ }
477155
+ };
477531
477156
  const loadStoredData = () => {
477532
477157
  const storedMeasurements = storage2.value.getMeasurements();
477533
477158
  measurementResults.value = storedMeasurements;
@@ -477595,12 +477220,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477595
477220
  const onFeatureInfo = (data) => {
477596
477221
  emit("feature-info", data);
477597
477222
  };
477598
- const onTooltipShow = (data) => {
477599
- emit("tooltip-show", data);
477600
- };
477601
- const onTooltipHide = () => {
477602
- emit("tooltip-hide");
477603
- };
477604
477223
  const onFeatureClick = (feature2, layer2, clickCoordinate, mapCoordinate) => {
477605
477224
  if (feature2 && layer2 && popupManager.value && clickCoordinate) {
477606
477225
  const coordinate = mapCoordinate || clickCoordinate;
@@ -477679,9 +477298,83 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477679
477298
  };
477680
477299
  const onContextMenu = (coordinate, pixel) => {
477681
477300
  var _a3;
477301
+ contextMenuCoordinate.value = coordinate;
477302
+ contextMenuPosition.value = { x: pixel[0], y: pixel[1] };
477303
+ contextMenuVisible.value = true;
477682
477304
  if ((_a3 = props.eventCallbacks) == null ? void 0 : _a3.onContextMenu) {
477683
477305
  props.eventCallbacks.onContextMenu(coordinate, pixel);
477684
477306
  }
477307
+ emit("context-menu", coordinate, pixel);
477308
+ };
477309
+ const onTooltipShow = (coordinate, pixel, data) => {
477310
+ tooltipData.value = data;
477311
+ tooltipPosition.value = { x: pixel[0], y: pixel[1] };
477312
+ tooltipVisible.value = true;
477313
+ emit("tooltip-show", coordinate, pixel, data);
477314
+ };
477315
+ const onTooltipHide = () => {
477316
+ tooltipVisible.value = false;
477317
+ tooltipData.value = [];
477318
+ emit("tooltip-hide");
477319
+ };
477320
+ const onContextMenuVisibleChange = (visible) => {
477321
+ if (!visible) {
477322
+ contextMenuVisible.value = false;
477323
+ }
477324
+ };
477325
+ const copyCoordinate = async () => {
477326
+ try {
477327
+ const [x2, y2] = contextMenuCoordinate.value;
477328
+ const coordText = `${x2.toFixed(6)}, ${y2.toFixed(6)}`;
477329
+ await navigator.clipboard.writeText(coordText);
477330
+ ElMessage.success("坐标已复制到剪贴板");
477331
+ } catch (error2) {
477332
+ ElMessage.error("复制失败");
477333
+ }
477334
+ contextMenuVisible.value = false;
477335
+ };
477336
+ const addMarker = () => {
477337
+ if (mapManager.value) {
477338
+ const markerTool = mapManager.value.getMarkerTool();
477339
+ if (markerTool) {
477340
+ markerTool.addMarker(contextMenuCoordinate.value);
477341
+ ElMessage.success("标记已添加");
477342
+ }
477343
+ }
477344
+ contextMenuVisible.value = false;
477345
+ };
477346
+ const measureFromHere = () => {
477347
+ if (measurementTool.value) {
477348
+ measurementTool.value.startMeasurementFromPoint(contextMenuCoordinate.value);
477349
+ ElMessage.info("请点击地图完成测量");
477350
+ }
477351
+ contextMenuVisible.value = false;
477352
+ };
477353
+ const startCoordinatePicking = () => {
477354
+ isPickingCoordinate.value = true;
477355
+ if (mapManager.value) {
477356
+ const coordinateTool = mapManager.value.getCoordinateTool();
477357
+ if (coordinateTool) {
477358
+ coordinateTool.startPicking();
477359
+ }
477360
+ }
477361
+ };
477362
+ const stopCoordinatePicking = () => {
477363
+ isPickingCoordinate.value = false;
477364
+ if (mapManager.value) {
477365
+ const coordinateTool = mapManager.value.getCoordinateTool();
477366
+ if (coordinateTool) {
477367
+ coordinateTool.stopPicking();
477368
+ }
477369
+ }
477370
+ };
477371
+ const locateToCoordinate = (coordinate) => {
477372
+ if (mapManager.value) {
477373
+ const mapOperationTool = mapManager.value.getMapOperationTool();
477374
+ if (mapOperationTool) {
477375
+ mapOperationTool.locateToCoordinate(coordinate);
477376
+ }
477377
+ }
477685
477378
  };
477686
477379
  const onToolAction = (data) => {
477687
477380
  emit("tool-action", data);
@@ -477790,6 +477483,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477790
477483
  var _a3;
477791
477484
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getDrawingManager();
477792
477485
  }));
477486
+ provide("layerManager", computed(() => {
477487
+ var _a3;
477488
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getLayerManager();
477489
+ }));
477490
+ provide("markerTool", computed(() => {
477491
+ var _a3;
477492
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getMarkerTool();
477493
+ }));
477494
+ provide("coordinateTool", computed(() => {
477495
+ var _a3;
477496
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getCoordinateTool();
477497
+ }));
477498
+ provide("popupManager", popupManager);
477499
+ provide("tooltipData", tooltipData);
477500
+ provide("tooltipVisible", tooltipVisible);
477793
477501
  const toggleLayerPanel = () => {
477794
477502
  showLayerPanel.value = !showLayerPanel.value;
477795
477503
  };
@@ -477837,40 +477545,161 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477837
477545
  return popupManager.value.updatePopupPosition(popupId, coordinate);
477838
477546
  };
477839
477547
  __expose({
477548
+ // 基础地图方法
477840
477549
  getMap,
477550
+ getMapManager: () => mapManager.value,
477551
+ updateMapConfig: (config) => {
477552
+ var _a3;
477553
+ return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.updateMapConfig(config);
477554
+ },
477555
+ // 测量相关方法
477841
477556
  getMeasurementResults,
477557
+ getMeasurementTool: () => {
477558
+ var _a3;
477559
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
477560
+ },
477561
+ startMeasurement: (type) => onMeasurementStart(type),
477842
477562
  clearAllMeasurements,
477563
+ removeMeasurement,
477564
+ // 清理方法
477843
477565
  clearAll,
477566
+ // 面板控制方法
477844
477567
  toggleLayerPanel,
477845
- getEventManager: () => {
477568
+ showLayerPanel: () => {
477569
+ showLayerPanel.value = true;
477570
+ },
477571
+ hideLayerPanel: () => {
477572
+ showLayerPanel.value = false;
477573
+ },
477574
+ // 工具提示相关方法
477575
+ showTooltip: onTooltipShow,
477576
+ hideTooltip: onTooltipHide,
477577
+ // 坐标拾取相关方法
477578
+ startCoordinatePicking,
477579
+ stopCoordinatePicking,
477580
+ locateToCoordinate,
477581
+ getCoordinateTool: () => {
477846
477582
  var _a3;
477847
- return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getEventManager();
477583
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getCoordinateTool();
477848
477584
  },
477849
- getLayerManager: () => {
477585
+ // 右键菜单相关方法
477586
+ onContextMenuVisibleChange,
477587
+ copyCoordinate,
477588
+ addMarker,
477589
+ measureFromHere,
477590
+ // 搜索相关方法
477591
+ searchLocation: (query) => onSearch(query),
477592
+ clearSearchResults: () => onSearchClear(),
477593
+ // 标记工具方法
477594
+ getMarkerTool: () => {
477850
477595
  var _a3;
477851
- return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getLayerManager();
477596
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getMarkerTool();
477597
+ },
477598
+ addMarkerAt: (coordinate) => {
477599
+ if (mapManager.value) {
477600
+ const markerTool = mapManager.value.getMarkerTool();
477601
+ if (markerTool) {
477602
+ markerTool.addMarker(coordinate);
477603
+ }
477604
+ }
477605
+ },
477606
+ clearAllMarkers: () => {
477607
+ if (mapManager.value) {
477608
+ const markerTool = mapManager.value.getMarkerTool();
477609
+ if (markerTool) {
477610
+ markerTool.clearMarkers();
477611
+ }
477612
+ }
477852
477613
  },
477853
- showTooltip: (coordinate, pixel, data) => {
477614
+ // 地图操作工具方法
477615
+ getMapOperationTool: () => {
477854
477616
  var _a3;
477855
- return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.showTooltip(coordinate, pixel, data);
477617
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
477618
+ },
477619
+ zoomIn: () => {
477620
+ if (mapManager.value) {
477621
+ const mapOperationTool = mapManager.value.getMapOperationTool();
477622
+ if (mapOperationTool) {
477623
+ mapOperationTool.zoomIn();
477624
+ }
477625
+ }
477856
477626
  },
477857
- hideTooltip: () => {
477627
+ zoomOut: () => {
477628
+ if (mapManager.value) {
477629
+ const mapOperationTool = mapManager.value.getMapOperationTool();
477630
+ if (mapOperationTool) {
477631
+ mapOperationTool.zoomOut();
477632
+ }
477633
+ }
477634
+ },
477635
+ fitToExtent: (extent3) => {
477636
+ if (mapManager.value) {
477637
+ const mapOperationTool = mapManager.value.getMapOperationTool();
477638
+ if (mapOperationTool) {
477639
+ mapOperationTool.fitToExtent(extent3);
477640
+ }
477641
+ }
477642
+ },
477643
+ // 绘制管理器方法
477644
+ getDrawingManager: () => {
477858
477645
  var _a3;
477859
- return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.hideTooltip();
477646
+ return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getDrawingManager();
477860
477647
  },
477861
- // 地图配置更新方法
477862
- updateMapConfig: (config) => {
477648
+ startDrawing: (type) => {
477863
477649
  var _a3;
477864
- return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.updateMapConfig(config);
477650
+ const drawingManager = (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getDrawingManager();
477651
+ if (drawingManager) {
477652
+ drawingManager.startDrawing(type);
477653
+ }
477654
+ },
477655
+ stopDrawing: () => {
477656
+ var _a3;
477657
+ const drawingManager = (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getDrawingManager();
477658
+ if (drawingManager) {
477659
+ drawingManager.stopDrawing();
477660
+ }
477661
+ },
477662
+ clearDrawings: () => {
477663
+ var _a3;
477664
+ const drawingManager = (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getDrawingManager();
477665
+ if (drawingManager) {
477666
+ drawingManager.clearDrawings();
477667
+ }
477668
+ },
477669
+ // 图层管理器方法
477670
+ getLayerManager: () => {
477671
+ var _a3;
477672
+ return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getLayerManager();
477673
+ },
477674
+ getEventManager: () => {
477675
+ var _a3;
477676
+ return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getEventManager();
477865
477677
  },
477866
477678
  // Popup 相关方法
477867
477679
  getPopupManager,
477868
477680
  showPopup,
477869
477681
  hidePopup,
477870
477682
  hideAllPopups,
477871
- updatePopupPosition
477683
+ updatePopupPosition,
477684
+ // 全屏控制
477685
+ toggleFullscreen: () => {
477686
+ isFullscreen.value = !isFullscreen.value;
477687
+ },
477688
+ enterFullscreen: () => {
477689
+ isFullscreen.value = true;
477690
+ },
477691
+ exitFullscreen: () => {
477692
+ isFullscreen.value = false;
477693
+ },
477694
+ // 状态获取方法
477695
+ isCoordinatePicking: () => isPickingCoordinate.value,
477696
+ isTooltipVisible: () => tooltipVisible.value,
477697
+ isContextMenuVisible: () => contextMenuVisible.value,
477698
+ isLayerPanelVisible: () => showLayerPanel.value,
477699
+ isInFullscreen: () => isFullscreen.value
477872
477700
  });
477873
477701
  return (_ctx, _cache) => {
477702
+ const _component_el_icon = resolveComponent("el-icon");
477874
477703
  const _component_el_button = resolveComponent("el-button");
477875
477704
  return openBlock(), createElementBlock("div", {
477876
477705
  class: normalizeClass(["relative w-full h-full overflow-hidden", { "fixed top-0 left-0 w-screen h-screen z-9999": isFullscreen.value }])
@@ -477909,10 +477738,64 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477909
477738
  formattedData,
477910
477739
  coordinate,
477911
477740
  pixel
477912
- })
477741
+ }, void 0, true)
477913
477742
  ]),
477914
477743
  _: 3
477915
477744
  }, 8, ["config", "width", "height", "show-map-info", "loading", "tooltip-template"]),
477745
+ tooltipVisible.value ? (openBlock(), createBlock(_sfc_main$5, {
477746
+ key: 0,
477747
+ data: tooltipData.value,
477748
+ position: tooltipPosition.value,
477749
+ template: props.tooltipTemplate,
477750
+ onHide: onTooltipHide
477751
+ }, null, 8, ["data", "position", "template"])) : createCommentVNode("", true),
477752
+ contextMenuVisible.value ? (openBlock(), createElementBlock("div", {
477753
+ key: 1,
477754
+ class: "context-menu",
477755
+ style: normalizeStyle$1({
477756
+ position: "fixed",
477757
+ left: contextMenuPosition.value.x + "px",
477758
+ top: contextMenuPosition.value.y + "px",
477759
+ zIndex: 9999
477760
+ })
477761
+ }, [
477762
+ createElementVNode("div", {
477763
+ class: "context-menu-item",
477764
+ onClick: copyCoordinate
477765
+ }, [
477766
+ createVNode$1(_component_el_icon, null, {
477767
+ default: withCtx(() => [
477768
+ createVNode$1(unref(document_copy_default))
477769
+ ]),
477770
+ _: 1
477771
+ }),
477772
+ _cache[2] || (_cache[2] = createTextVNode(" 复制坐标 ", -1))
477773
+ ]),
477774
+ createElementVNode("div", {
477775
+ class: "context-menu-item",
477776
+ onClick: addMarker
477777
+ }, [
477778
+ createVNode$1(_component_el_icon, null, {
477779
+ default: withCtx(() => [
477780
+ createVNode$1(unref(location_default))
477781
+ ]),
477782
+ _: 1
477783
+ }),
477784
+ _cache[3] || (_cache[3] = createTextVNode(" 添加标记 ", -1))
477785
+ ]),
477786
+ createElementVNode("div", {
477787
+ class: "context-menu-item",
477788
+ onClick: measureFromHere
477789
+ }, [
477790
+ createVNode$1(_component_el_icon, null, {
477791
+ default: withCtx(() => [
477792
+ createVNode$1(unref(tools_default))
477793
+ ]),
477794
+ _: 1
477795
+ }),
477796
+ _cache[4] || (_cache[4] = createTextVNode(" 从此处测量 ", -1))
477797
+ ])
477798
+ ], 4)) : createCommentVNode("", true),
477916
477799
  withDirectives(createVNode$1(MapToolbar, {
477917
477800
  ref_key: "mapToolbarRef",
477918
477801
  ref: mapToolbarRef,
@@ -477952,25 +477835,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477952
477835
  renderSlot(_ctx.$slots, "controls", {
477953
477836
  controls,
477954
477837
  map: map2.value
477955
- })
477838
+ }, void 0, true)
477956
477839
  ]),
477957
477840
  _: 3
477958
477841
  }, 8, ["config", "position", "direction", "left-offset", "right-offset", "top-offset", "bottom-offset"]), [
477959
477842
  [vShow, finalShowControls.value]
477960
477843
  ]),
477961
- hasToolbarSlot.value ? renderSlot(_ctx.$slots, "toolbar", { key: 0 }) : createCommentVNode("", true),
477962
- hasMapInfoSlot.value ? renderSlot(_ctx.$slots, "mapInfo", { key: 1 }) : createCommentVNode("", true),
477963
- hasMapInfoSlot.value ? renderSlot(_ctx.$slots, "map-info", { key: 2 }) : createCommentVNode("", true),
477844
+ hasToolbarSlot.value ? renderSlot(_ctx.$slots, "toolbar", { key: 2 }, void 0, true) : createCommentVNode("", true),
477845
+ hasMapInfoSlot.value ? renderSlot(_ctx.$slots, "mapInfo", { key: 3 }, void 0, true) : createCommentVNode("", true),
477846
+ hasMapInfoSlot.value ? renderSlot(_ctx.$slots, "map-info", { key: 4 }, void 0, true) : createCommentVNode("", true),
477964
477847
  finalShowLayerPanel.value ? (openBlock(), createBlock(LayerPanel, {
477965
- key: 3,
477848
+ key: 5,
477966
477849
  modelValue: showLayerPanel.value,
477967
477850
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showLayerPanel.value = $event),
477968
477851
  onLayerChange
477969
477852
  }, null, 8, ["modelValue"])) : createCommentVNode("", true),
477970
- hasLayerPanelSlot.value ? renderSlot(_ctx.$slots, "layerPanel", { key: 4 }) : createCommentVNode("", true),
477971
- hasLayerPanelSlot.value ? renderSlot(_ctx.$slots, "layer-panel", { key: 5 }) : createCommentVNode("", true),
477853
+ hasLayerPanelSlot.value ? renderSlot(_ctx.$slots, "layerPanel", { key: 6 }, void 0, true) : createCommentVNode("", true),
477854
+ hasLayerPanelSlot.value ? renderSlot(_ctx.$slots, "layer-panel", { key: 7 }, void 0, true) : createCommentVNode("", true),
477972
477855
  showLegend.value ? (openBlock(), createBlock(LegendPanel, {
477973
- key: 6,
477856
+ key: 8,
477974
477857
  position: finalLegendPosition.value,
477975
477858
  width: finalLegendWidth.value,
477976
477859
  collapsible: finalLegendCollapsible.value,
@@ -477981,17 +477864,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477981
477864
  "top-offset": props.legendTopOffset,
477982
477865
  "bottom-offset": props.legendBottomOffset
477983
477866
  }, null, 8, ["position", "width", "collapsible", "default-collapsed", "show-only-visible", "left-offset", "right-offset", "top-offset", "bottom-offset"])) : createCommentVNode("", true),
477984
- hasLegendSlot.value ? renderSlot(_ctx.$slots, "legend", { key: 7 }) : createCommentVNode("", true),
477867
+ hasLegendSlot.value ? renderSlot(_ctx.$slots, "legend", { key: 9 }, void 0, true) : createCommentVNode("", true),
477985
477868
  measurementResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1, [
477986
477869
  createElementVNode("div", _hoisted_2, [
477987
- _cache[3] || (_cache[3] = createElementVNode("h4", { class: "m-0 text-sm font-semibold text-gray-800" }, "测量结果", -1)),
477870
+ _cache[6] || (_cache[6] = createElementVNode("h4", { class: "m-0 text-sm font-semibold text-gray-800" }, "测量结果", -1)),
477988
477871
  createVNode$1(_component_el_button, {
477989
477872
  link: "",
477990
477873
  size: "small",
477991
477874
  onClick: clearAllMeasurements,
477992
477875
  icon: unref(delete_default)
477993
477876
  }, {
477994
- default: withCtx(() => [..._cache[2] || (_cache[2] = [
477877
+ default: withCtx(() => [..._cache[5] || (_cache[5] = [
477995
477878
  createTextVNode(" 清除 ", -1)
477996
477879
  ])]),
477997
477880
  _: 1
@@ -478028,6 +477911,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
478028
477911
  };
478029
477912
  }
478030
477913
  });
477914
+ const CustomOpenlayer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4636b3e2"]]);
478031
477915
  var u8 = Uint8Array;
478032
477916
  var u16 = Uint16Array;
478033
477917
  var i32 = Int32Array;
@@ -486299,7 +486183,7 @@ function(t3) {
486299
486183
  */
486300
486184
  function(t3) {
486301
486185
  function e8() {
486302
- return (n.canvg ? Promise.resolve(n.canvg) : import("./index.es-04b16fc0.mjs")).catch(function(t4) {
486186
+ return (n.canvg ? Promise.resolve(n.canvg) : import("./index.es-64fea0cf.mjs")).catch(function(t4) {
486303
486187
  return Promise.reject(new Error("Could not load canvg: " + t4));
486304
486188
  }).then(function(t4) {
486305
486189
  return t4.default ? t4.default : t4;
@@ -495173,22 +495057,22 @@ const getAssetUrl = (path2) => {
495173
495057
  }
495174
495058
  };
495175
495059
  const install = (app) => {
495176
- app.component("CustomOpenlayer", _sfc_main);
495060
+ app.component("CustomOpenlayer", CustomOpenlayer);
495177
495061
  app.component("CustomDialog", CustomDialog);
495178
- app.component("SvgIcon", _sfc_main$o);
495062
+ app.component("SvgIcon", _sfc_main$p);
495179
495063
  };
495180
495064
  const index = {
495181
495065
  install,
495182
- CustomOpenlayer: _sfc_main,
495066
+ CustomOpenlayer,
495183
495067
  CustomDialog,
495184
- SvgIcon: _sfc_main$o
495068
+ SvgIcon: _sfc_main$p
495185
495069
  };
495186
495070
  const version = "1.0.0";
495187
495071
  export {
495188
495072
  ImageDrawingFactory as $,
495189
495073
  PointDrawingFactory as A,
495190
495074
  BasemapManager as B,
495191
- CustomDialog as C,
495075
+ CustomOpenlayer as C,
495192
495076
  DrawingFactoryRegistry as D,
495193
495077
  TextDrawingFactory as E,
495194
495078
  PointWithTextDrawing as F,
@@ -495222,8 +495106,8 @@ export {
495222
495106
  htmlToPDF as a5,
495223
495107
  _defineProperty as b,
495224
495108
  commonjsGlobal as c,
495225
- _sfc_main as d,
495226
- _sfc_main$o as e,
495109
+ CustomDialog as d,
495110
+ _sfc_main$p as e,
495227
495111
  index as f,
495228
495112
  getAssetUrl as g,
495229
495113
  MapStorage as h,