vue-openlayers-plugin 1.0.26 → 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",
@@ -83372,8 +83123,7 @@ class ClusterLayerHandler extends BaseLayer$2 {
83372
83123
  const clusterSource = new Cluster$1({
83373
83124
  source: vectorSource,
83374
83125
  distance: this.config.clusterDistance || 50,
83375
- minDistance: this.config.minDistance || 0,
83376
- source: vectorSource
83126
+ minDistance: this.config.minDistance || 0
83377
83127
  });
83378
83128
  const vectorLayer = new VectorLayer$3({
83379
83129
  source: clusterSource,
@@ -465125,104 +464875,34 @@ class MapManager {
465125
464875
  this.map = null;
465126
464876
  }
465127
464877
  }
465128
- const _hoisted_1$n = ["id"];
465129
- const _hoisted_2$l = { class: "map-info-panel flex justify-center items-center w-full" };
465130
- const _hoisted_3$l = { class: "font-medium font-mono text-white" };
465131
- const _hoisted_4$k = { class: "font-medium font-mono text-white" };
465132
- const _hoisted_5$k = { class: "font-medium font-mono text-white" };
465133
- const _hoisted_6$i = {
464878
+ const _hoisted_1$o = ["id"];
464879
+ const _hoisted_2$m = {
465134
464880
  class: "absolute top-0 left-0 w-full h-full z-2000",
465135
464881
  "element-loading-text": "地图加载中...",
465136
464882
  "element-loading-background": "rgba(0, 0, 0, 0.3)"
465137
464883
  };
465138
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
464884
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
465139
464885
  __name: "MapContainer",
465140
464886
  props: {
465141
464887
  config: {},
465142
464888
  width: { default: "100%" },
465143
464889
  height: { default: "100%" },
465144
- showToolbar: { type: Boolean, default: void 0 },
465145
- showMapInfo: { type: Boolean, default: void 0 },
465146
464890
  loading: { type: Boolean, default: false },
465147
- userMarkers: {},
465148
- tooltipTemplate: {}
464891
+ userMarkers: {}
465149
464892
  },
465150
- 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"],
465151
464894
  setup(__props, { expose: __expose, emit: __emit }) {
465152
464895
  const props = __props;
465153
464896
  const emit = __emit;
465154
464897
  const eventBus = inject("eventBus");
465155
464898
  const storage2 = inject("storage");
465156
464899
  const mapContainerRef = ref();
465157
- const contextMenuRef = ref();
465158
464900
  const map2 = ref();
465159
464901
  const mapId = ref(`map-${Date.now()}`);
465160
- const measurementType = ref(null);
465161
- ref(false);
465162
- const currentCoordinate = ref("0, 0");
465163
- const currentZoom = ref(0);
465164
- const currentScale = ref("");
465165
- const contextMenuCoordinate = ref([0, 0]);
465166
- ref();
465167
464902
  const isCoordinatePicking = ref(false);
465168
464903
  const coordinatePickCallback = ref(null);
465169
- const startCoordinatePick = (callback) => {
465170
- if (!mapManager.value)
465171
- return;
465172
- isCoordinatePicking.value = true;
465173
- coordinatePickCallback.value = callback;
465174
- mapManager.value.startCoordinatePick();
465175
- };
465176
- const stopCoordinatePick = () => {
465177
- if (!mapManager.value)
465178
- return;
465179
- isCoordinatePicking.value = false;
465180
- coordinatePickCallback.value = null;
465181
- mapManager.value.stopCoordinatePick();
465182
- };
465183
- const tooltipVisible = ref(false);
465184
- const tooltipData = ref(null);
465185
- const tooltipCoordinate = ref([0, 0]);
465186
- const tooltipPixel = ref([0, 0]);
465187
464904
  const mapManager = ref(null);
465188
464905
  provide("map", map2);
465189
- computed(() => ({
465190
- width: typeof props.width === "number" ? `${props.width}px` : props.width,
465191
- height: typeof props.height === "number" ? `${props.height}px` : props.height
465192
- }));
465193
- computed(() => {
465194
- var _a3;
465195
- return props.showToolbar !== void 0 ? props.showToolbar : ((_a3 = props.config.ui) == null ? void 0 : _a3.showToolbar) ?? true;
465196
- });
465197
- const finalShowMapInfo = computed(() => {
465198
- var _a3;
465199
- return props.showMapInfo !== void 0 ? props.showMapInfo : ((_a3 = props.config.ui) == null ? void 0 : _a3.showMapInfo) ?? true;
465200
- });
465201
- const tooltipConfig = computed(() => ({
465202
- enabled: true,
465203
- showCloseButton: true,
465204
- offset: [10, 10],
465205
- maxWidth: 400,
465206
- maxHeight: 300,
465207
- className: "custom-map-tooltip",
465208
- ...props.config.tooltip
465209
- }));
465210
- computed(() => ({
465211
- enabled: true,
465212
- useMitt: true,
465213
- enabledEvents: [
465214
- "map:click",
465215
- "map:dblclick",
465216
- "map:contextmenu",
465217
- "map:pointermove",
465218
- "map:moveend",
465219
- "map:zoomchange",
465220
- "map:featureinfo"
465221
- ],
465222
- debounceDelay: 100,
465223
- enableFeatureInfo: tooltipConfig.value.enabled,
465224
- ...props.config.eventManager
465225
- }));
465226
464906
  watch(
465227
464907
  () => props.config,
465228
464908
  (newConfig) => {
@@ -465235,63 +464915,12 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465235
464915
  watch(
465236
464916
  () => props.userMarkers,
465237
464917
  (newMarkers) => {
465238
- if (mapManager && newMarkers) {
465239
- mapManager.setUserMarkers(newMarkers);
464918
+ if (mapManager.value && newMarkers) {
464919
+ mapManager.value.setUserMarkers(newMarkers);
465240
464920
  }
465241
464921
  },
465242
464922
  { deep: true }
465243
464923
  );
465244
- watch(
465245
- () => props.config.layers,
465246
- (newLayers, oldLayers) => {
465247
- var _a3, _b3;
465248
- if (!mapManager || !newLayers)
465249
- return;
465250
- const layerManager = mapManager.getLayerManager();
465251
- if (!layerManager)
465252
- return;
465253
- if (!oldLayers || newLayers.length !== oldLayers.length) {
465254
- (_a3 = mapManager.value) == null ? void 0 : _a3.clearLayers();
465255
- (_b3 = mapManager.value) == null ? void 0 : _b3.addLayers(newLayers);
465256
- return;
465257
- }
465258
- newLayers.forEach((newLayer, index2) => {
465259
- var _a4, _b4;
465260
- const oldLayer = oldLayers[index2];
465261
- if (oldLayer && newLayer.id === oldLayer.id) {
465262
- const hasChanges = JSON.stringify(newLayer) !== JSON.stringify(oldLayer);
465263
- if (hasChanges) {
465264
- console.log(`更新图层 ${newLayer.id} 的配置:`, newLayer);
465265
- const changedConfig = {};
465266
- if (JSON.stringify(newLayer.style) !== JSON.stringify(oldLayer.style)) {
465267
- changedConfig.style = newLayer.style;
465268
- }
465269
- if (JSON.stringify(newLayer.filter) !== JSON.stringify(oldLayer.filter)) {
465270
- changedConfig.filter = newLayer.filter;
465271
- }
465272
- if (newLayer.visible !== oldLayer.visible) {
465273
- changedConfig.visible = newLayer.visible;
465274
- }
465275
- if (newLayer.opacity !== oldLayer.opacity) {
465276
- changedConfig.opacity = newLayer.opacity;
465277
- }
465278
- if (newLayer.cssClass !== oldLayer.cssClass) {
465279
- changedConfig.cssClass = newLayer.cssClass;
465280
- }
465281
- if (Object.keys(changedConfig).length > 0) {
465282
- console.log(`图层 ${newLayer.id} 发生变化的配置:`, changedConfig);
465283
- layerManager.updateLayerConfig(newLayer.id, changedConfig);
465284
- }
465285
- }
465286
- } else {
465287
- (_a4 = mapManager.value) == null ? void 0 : _a4.clearLayers();
465288
- (_b4 = mapManager.value) == null ? void 0 : _b4.addLayers(newLayers);
465289
- return;
465290
- }
465291
- });
465292
- },
465293
- { deep: true }
465294
- );
465295
464924
  onMounted(async () => {
465296
464925
  await nextTick();
465297
464926
  initMap2();
@@ -465307,7 +464936,6 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465307
464936
  }
465308
464937
  });
465309
464938
  const initMap2 = () => {
465310
- var _a3;
465311
464939
  if (!mapContainerRef.value)
465312
464940
  return;
465313
464941
  if (!eventBus || !storage2) {
@@ -465318,12 +464946,6 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465318
464946
  mapManager.value = new MapManager(props.config, eventBus, storageInstance);
465319
464947
  map2.value = mapManager.value.initMap(mapId.value);
465320
464948
  bindMapEvents();
465321
- if (props.config.layers && props.config.layers.length > 0) {
465322
- (_a3 = mapManager.value.getLayerManager()) == null ? void 0 : _a3.addLayers(props.config.layers);
465323
- }
465324
- if (props.userMarkers && props.userMarkers.length > 0) {
465325
- mapManager.value.setUserMarkers(props.userMarkers);
465326
- }
465327
464949
  emit("map-ready", map2.value);
465328
464950
  };
465329
464951
  const bindMapEvents = () => {
@@ -465348,24 +464970,11 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465348
464970
  onMapMove: (center2, zoom) => {
465349
464971
  emit("map-move", center2, zoom);
465350
464972
  },
465351
- onPointerMove: (coordinate) => {
465352
- currentCoordinate.value = `经度: ${coordinate[0].toFixed(6)}, 纬度: ${coordinate[1].toFixed(6)}`;
465353
- },
465354
464973
  onZoomChange: (zoom, resolution) => {
465355
- var _a3;
465356
- currentZoom.value = Math.round(zoom * 100) / 100;
465357
- const view = (_a3 = map2.value) == null ? void 0 : _a3.getView();
465358
- if (view) {
465359
- const units2 = view.getProjection().getUnits();
465360
- const dpi = 25.4 / 0.28;
465361
- const mpu = METERS_PER_UNIT$3[units2] || 1;
465362
- const scale3 = resolution * mpu * 39.37 * dpi;
465363
- currentScale.value = `1:${Math.round(scale3).toLocaleString()}`;
465364
- }
464974
+ emit("zoom-change", zoom, resolution);
465365
464975
  },
465366
464976
  onContextMenu: (coordinate, pixel) => {
465367
- contextMenuCoordinate.value = coordinate;
465368
- emit("context-menu", coordinate, pixel);
464977
+ emit("map-contextmenu", { coordinate, pixel });
465369
464978
  }
465370
464979
  });
465371
464980
  };
@@ -465388,157 +464997,17 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465388
464997
  view.setMaxZoom(config.maxZoom);
465389
464998
  }
465390
464999
  };
465391
- const zoomIn = () => {
465392
- var _a3;
465393
- const mapOperationTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465394
- if (mapOperationTool) {
465395
- mapOperationTool.zoomIn();
465396
- }
465397
- };
465398
- const zoomOut = () => {
465399
- var _a3;
465400
- const mapOperationTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465401
- if (mapOperationTool) {
465402
- mapOperationTool.zoomOut();
465403
- }
465404
- };
465405
- const fitToExtent = () => {
465406
- var _a3;
465407
- const mapOperationTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465408
- if (mapOperationTool) {
465409
- mapOperationTool.fitToInitialExtent();
465410
- }
465411
- };
465412
- const toggleMeasurement = (type) => {
465413
- var _a3;
465414
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465415
- if (!measurementTool)
465416
- return;
465417
- if (measurementType.value === type) {
465418
- measurementType.value = null;
465419
- measurementTool.stopMeasurement();
465420
- } else {
465421
- measurementType.value = type;
465422
- emit("measurement-start", type);
465423
- const onResult = (result) => {
465424
- emit("measurement-result", result);
465425
- emit("measurement-end", result);
465426
- };
465427
- if (type === "length") {
465428
- measurementTool.startDistanceMeasurement(onResult);
465429
- } else if (type === "area") {
465430
- measurementTool.startAreaMeasurement(onResult);
465431
- } else if (type === "angle") {
465432
- measurementTool.startAngleMeasurement(onResult);
465433
- }
465434
- }
465435
- };
465436
- const clearMeasurements = () => {
465437
- var _a3;
465438
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465439
- if (measurementTool) {
465440
- measurementTool.clearMeasurements();
465441
- }
465442
- measurementType.value = null;
465443
- ElMessage.success("测量结果已清除");
465444
- };
465445
- const getCoordinateInfo = (coordinate) => {
465446
- var _a3;
465447
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465448
- if (!measurementTool)
465449
- return;
465450
- const onResult = (result) => {
465451
- emit("measurement-result", result);
465452
- };
465453
- measurementTool.startCoordinateMeasurement(onResult);
465454
- };
465455
- const onContextMenuVisibleChange = (visible) => {
465456
- };
465457
- const copyCoordinate = () => {
465458
- const coord = contextMenuCoordinate.value;
465459
- const text2 = `${coord[0].toFixed(6)}, ${coord[1].toFixed(6)}`;
465460
- navigator.clipboard.writeText(text2).then(() => {
465461
- ElMessage.success("坐标已复制到剪贴板");
465462
- }).catch(() => {
465463
- ElMessage.error("复制失败");
465464
- });
465465
- };
465466
- const addMarker = () => {
465467
- ElMessage.info("添加标记功能待实现");
465468
- };
465469
- const measureFromHere = () => {
465470
- ElMessage.info("测量功能待实现");
465471
- };
465472
- const clearAll = () => {
465473
- var _a3, _b3, _c2, _d;
465474
- const measurementTool = (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465475
- if (measurementTool) {
465476
- measurementTool.clearMeasurements();
465477
- }
465478
- const mapOperationTool = (_b3 = mapManager.value) == null ? void 0 : _b3.getMapOperationTool();
465479
- if (mapOperationTool) {
465480
- mapOperationTool.clearAllGraphics();
465481
- }
465482
- const drawingManager = (_c2 = mapManager.value) == null ? void 0 : _c2.getDrawingManager();
465483
- if (drawingManager) {
465484
- drawingManager.clearAll();
465485
- }
465486
- const markerAdapter = (_d = mapManager.value) == null ? void 0 : _d.getMarkerAdapter();
465487
- if (markerAdapter) {
465488
- markerAdapter.clearAllMarkers();
465489
- }
465490
- ElMessage.success("已清除所有内容");
465491
- };
465492
- const onTooltipShow = (data) => {
465493
- emit("tooltip-show", data);
465494
- };
465495
- const onTooltipHide = () => {
465496
- tooltipVisible.value = false;
465497
- tooltipData.value = null;
465498
- emit("tooltip-hide");
465499
- };
465500
- const onFeatureClick = (feature2, layerInfo, coordinate, mapCoordinate) => {
465501
- emit("feature-click", feature2, layerInfo, coordinate, mapCoordinate);
465502
- };
465503
- const onTooltipDataLoaded = (data) => {
465504
- };
465505
- const searchLocation = async (query) => {
465506
- if (!mapManager.value)
465507
- return [];
465508
- try {
465509
- const results = await mapManager.value.searchLocation(query);
465510
- return results;
465511
- } catch (error2) {
465512
- console.error("搜索失败:", error2);
465513
- ElMessage.error("搜索失败,请重试");
465514
- return [];
465515
- }
465516
- };
465517
- const clearSearchMarkers = () => {
465518
- if (mapManager.value) {
465519
- mapManager.value.clearSearchMarkers();
465520
- }
465521
- };
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
+ }));
465522
465004
  __expose({
465523
465005
  getMap: () => map2.value,
465524
465006
  getMapManager: () => mapManager.value,
465525
- getPluginManager: () => pluginManager,
465526
- getEventManager: () => {
465527
- var _a3;
465528
- return (_a3 = mapManager.value) == null ? void 0 : _a3.getEventManager();
465529
- },
465530
- getSearchMarkerManager: () => {
465531
- var _a3;
465532
- return (_a3 = mapManager.value) == null ? void 0 : _a3.getSearchMarkerManager();
465533
- },
465534
465007
  getMeasurementTool: () => {
465535
465008
  var _a3;
465536
465009
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
465537
465010
  },
465538
- getMapOperationTool: () => {
465539
- var _a3;
465540
- return (_a3 = mapManager.value) == null ? void 0 : _a3.getMapOperationTool();
465541
- },
465542
465011
  getDrawingManager: () => {
465543
465012
  var _a3;
465544
465013
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getDrawingManager();
@@ -465547,33 +465016,13 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465547
465016
  var _a3;
465548
465017
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getLayerManager();
465549
465018
  },
465550
- zoomIn,
465551
- zoomOut,
465552
- fitToExtent,
465553
- toggleMeasurement,
465554
- clearMeasurements,
465555
- clearAll,
465556
- getCoordinateInfo,
465557
- searchLocation,
465558
- clearSearchMarkers,
465559
- startCoordinatePick,
465560
- stopCoordinatePick,
465561
- updateMapConfig,
465562
- showTooltip: (coordinate, pixel, data) => {
465563
- tooltipCoordinate.value = coordinate;
465564
- tooltipPixel.value = pixel;
465565
- tooltipData.value = data;
465566
- tooltipVisible.value = true;
465019
+ getEventManager: () => {
465020
+ var _a3;
465021
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getEventManager();
465567
465022
  },
465568
- hideTooltip: () => {
465569
- tooltipVisible.value = false;
465570
- tooltipData.value = null;
465571
- }
465023
+ updateMapConfig
465572
465024
  });
465573
465025
  return (_ctx, _cache) => {
465574
- const _component_el_dropdown_item = resolveComponent("el-dropdown-item");
465575
- const _component_el_dropdown_menu = resolveComponent("el-dropdown-menu");
465576
- const _component_el_dropdown = resolveComponent("el-dropdown");
465577
465026
  const _directive_loading = resolveDirective("loading");
465578
465027
  return openBlock(), createElementBlock("div", {
465579
465028
  class: "relative w-full h-full overflow-hidden bg-gray-100",
@@ -465583,101 +465032,11 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
465583
465032
  createElementVNode("div", {
465584
465033
  id: mapId.value,
465585
465034
  class: "w-full h-full bg-gray-100"
465586
- }, null, 8, _hoisted_1$n),
465587
- withDirectives(createElementVNode("div", _hoisted_2$l, [
465588
- _cache[0] || (_cache[0] = createElementVNode("div", { class: "font-semibold text-white" }, "坐标:", -1)),
465589
- createElementVNode("div", _hoisted_3$l, toDisplayString(currentCoordinate.value), 1),
465590
- _cache[1] || (_cache[1] = createElementVNode("div", { class: "font-semibold text-white" }, "缩放:", -1)),
465591
- createElementVNode("div", _hoisted_4$k, toDisplayString(currentZoom.value), 1),
465592
- _cache[2] || (_cache[2] = createElementVNode("div", { class: "font-semibold text-white" }, "比例尺:", -1)),
465593
- createElementVNode("div", _hoisted_5$k, toDisplayString(currentScale.value), 1)
465594
- ], 512), [
465595
- [vShow, finalShowMapInfo.value]
465596
- ]),
465597
- withDirectives(createVNode$1(_sfc_main$q, {
465598
- config: tooltipConfig.value,
465599
- template: _ctx.tooltipTemplate,
465600
- visible: tooltipVisible.value,
465601
- "tooltip-data": tooltipData.value,
465602
- coordinate: tooltipCoordinate.value,
465603
- pixel: tooltipPixel.value,
465604
- onShow: onTooltipShow,
465605
- onHide: onTooltipHide,
465606
- onFeatureClick,
465607
- onDataLoaded: onTooltipDataLoaded
465608
- }, {
465609
- default: withCtx(({ data = [], formattedData = [], coordinate = [0, 0], pixel = [0, 0] }) => [
465610
- renderSlot(_ctx.$slots, "tooltip", {
465611
- data,
465612
- formattedData,
465613
- coordinate,
465614
- pixel
465615
- }, void 0, true)
465616
- ]),
465617
- _: 3
465618
- }, 8, ["config", "template", "visible", "tooltip-data", "coordinate", "pixel"]), [
465619
- [vShow, tooltipConfig.value.enabled]
465620
- ]),
465621
- withDirectives(createElementVNode("div", _hoisted_6$i, null, 512), [
465035
+ }, null, 8, _hoisted_1$o),
465036
+ withDirectives(createElementVNode("div", _hoisted_2$m, null, 512), [
465622
465037
  [vShow, _ctx.loading],
465623
465038
  [_directive_loading, _ctx.loading]
465624
- ]),
465625
- createVNode$1(_component_el_dropdown, {
465626
- ref_key: "contextMenuRef",
465627
- ref: contextMenuRef,
465628
- teleported: false,
465629
- trigger: "contextmenu",
465630
- onVisibleChange: onContextMenuVisibleChange
465631
- }, {
465632
- dropdown: withCtx(() => [
465633
- createVNode$1(_component_el_dropdown_menu, null, {
465634
- default: withCtx(() => [
465635
- createVNode$1(_component_el_dropdown_item, {
465636
- onClick: copyCoordinate,
465637
- icon: unref(document_copy_default)
465638
- }, {
465639
- default: withCtx(() => [..._cache[3] || (_cache[3] = [
465640
- createTextVNode(" 复制坐标 ", -1)
465641
- ])]),
465642
- _: 1
465643
- }, 8, ["icon"]),
465644
- createVNode$1(_component_el_dropdown_item, {
465645
- onClick: addMarker,
465646
- icon: unref(location_default)
465647
- }, {
465648
- default: withCtx(() => [..._cache[4] || (_cache[4] = [
465649
- createTextVNode(" 添加标记 ", -1)
465650
- ])]),
465651
- _: 1
465652
- }, 8, ["icon"]),
465653
- createVNode$1(_component_el_dropdown_item, {
465654
- onClick: measureFromHere,
465655
- icon: unref(tools_default)
465656
- }, {
465657
- default: withCtx(() => [..._cache[5] || (_cache[5] = [
465658
- createTextVNode(" 从此处测量 ", -1)
465659
- ])]),
465660
- _: 1
465661
- }, 8, ["icon"]),
465662
- createVNode$1(_component_el_dropdown_item, {
465663
- divided: "",
465664
- onClick: clearAll,
465665
- icon: unref(delete_default)
465666
- }, {
465667
- default: withCtx(() => [..._cache[6] || (_cache[6] = [
465668
- createTextVNode(" 清除所有 ", -1)
465669
- ])]),
465670
- _: 1
465671
- }, 8, ["icon"])
465672
- ]),
465673
- _: 1
465674
- })
465675
- ]),
465676
- default: withCtx(() => [
465677
- _cache[7] || (_cache[7] = createElementVNode("div", null, null, -1))
465678
- ]),
465679
- _: 1
465680
- }, 512)
465039
+ ])
465681
465040
  ], 512);
465682
465041
  };
465683
465042
  }
@@ -465689,9 +465048,9 @@ const _export_sfc = (sfc, props) => {
465689
465048
  }
465690
465049
  return target;
465691
465050
  };
465692
- const MapContainer = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-56b0276d"]]);
465693
- const _hoisted_1$m = ["href"];
465694
- 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({
465695
465054
  __name: "index",
465696
465055
  props: {
465697
465056
  prefix: { default: "icon" },
@@ -465709,7 +465068,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
465709
465068
  class: computedClass.value,
465710
465069
  "aria-hidden": "true"
465711
465070
  }, _ctx.$attrs), [
465712
- createElementVNode("use", { href: symbolId.value }, null, 8, _hoisted_1$m)
465071
+ createElementVNode("use", { href: symbolId.value }, null, 8, _hoisted_1$n)
465713
465072
  ], 16);
465714
465073
  };
465715
465074
  }
@@ -465910,26 +465269,26 @@ class DialogCacheManager {
465910
465269
  }
465911
465270
  const dialogCacheManager = new DialogCacheManager();
465912
465271
  const dialogCacheManager$1 = dialogCacheManager;
465913
- const _hoisted_1$l = { class: "text-base font-semibold text-gray-800 flex-1 overflow-hidden text-ellipsis whitespace-nowrap" };
465914
- const _hoisted_2$k = { class: "flex items-center gap-2" };
465915
- const _hoisted_3$k = { class: "flex-1 overflow-auto min-h-0 h-0" };
465916
- 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 = {
465917
465276
  key: 0,
465918
465277
  class: "px-5 py-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3"
465919
465278
  };
465920
- const _hoisted_5$j = ["onMousedown"];
465921
- const _hoisted_6$h = { class: "text-base font-semibold text-gray-800 flex-1 overflow-hidden text-ellipsis whitespace-nowrap" };
465922
- const _hoisted_7$d = { class: "flex items-center gap-2" };
465923
- const _hoisted_8$a = { class: "flex-1 overflow-auto min-h-0 h-0" };
465924
- 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 = {
465925
465284
  key: 0,
465926
465285
  class: "px-5 py-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3"
465927
465286
  };
465928
- const _hoisted_10$9 = {
465287
+ const _hoisted_10$a = {
465929
465288
  key: 1,
465930
465289
  class: "absolute top-0 left-0 w-full h-full pointer-events-none"
465931
465290
  };
465932
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
465291
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
465933
465292
  ...{
465934
465293
  inheritAttrs: false
465935
465294
  },
@@ -466351,12 +465710,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466351
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 }]),
466352
465711
  onMousedown: startDrag
466353
465712
  }, [
466354
- createElementVNode("div", _hoisted_1$l, [
465713
+ createElementVNode("div", _hoisted_1$m, [
466355
465714
  renderSlot(_ctx.$slots, "title", {}, () => [
466356
465715
  createTextVNode(toDisplayString(_ctx.title), 1)
466357
465716
  ], true)
466358
465717
  ]),
466359
- createElementVNode("div", _hoisted_2$k, [
465718
+ createElementVNode("div", _hoisted_2$l, [
466360
465719
  _ctx.showFullscreen ? (openBlock(), createBlock(unref(ElButton), {
466361
465720
  key: 0,
466362
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",
@@ -466364,7 +465723,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466364
465723
  title: isFullscreen.value ? "退出全屏" : "全屏"
466365
465724
  }, {
466366
465725
  default: withCtx(() => [
466367
- createVNode$1(_sfc_main$o, {
465726
+ createVNode$1(_sfc_main$p, {
466368
465727
  name: isFullscreen.value ? "exit-fullscreen" : "fullscreen"
466369
465728
  }, null, 8, ["name"])
466370
465729
  ]),
@@ -466377,16 +465736,16 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466377
465736
  title: "关闭"
466378
465737
  }, {
466379
465738
  default: withCtx(() => [
466380
- createVNode$1(_sfc_main$o, { name: "close" })
465739
+ createVNode$1(_sfc_main$p, { name: "close" })
466381
465740
  ]),
466382
465741
  _: 1
466383
465742
  })) : createCommentVNode("", true)
466384
465743
  ])
466385
465744
  ], 34),
466386
- createElementVNode("div", _hoisted_3$k, [
465745
+ createElementVNode("div", _hoisted_3$l, [
466387
465746
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
466388
465747
  ]),
466389
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_4$j, [
465748
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_4$k, [
466390
465749
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
466391
465750
  ])) : createCommentVNode("", true),
466392
465751
  _ctx.resizable && !isFullscreen.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, renderList(resizeDirections, (direction2) => {
@@ -466394,7 +465753,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466394
465753
  key: direction2,
466395
465754
  class: normalizeClass(`absolute bg-transparent z-10 pointer-events-auto resize-${direction2}`),
466396
465755
  onMousedown: ($event) => startResize($event, direction2)
466397
- }, null, 42, _hoisted_5$j);
465756
+ }, null, 42, _hoisted_5$k);
466398
465757
  }), 64)) : createCommentVNode("", true)
466399
465758
  ], 16)
466400
465759
  ], 6)) : createCommentVNode("", true)
@@ -466434,12 +465793,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466434
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 }]),
466435
465794
  onMousedown: startDrag
466436
465795
  }, [
466437
- createElementVNode("div", _hoisted_6$h, [
465796
+ createElementVNode("div", _hoisted_6$i, [
466438
465797
  renderSlot(_ctx.$slots, "title", {}, () => [
466439
465798
  createTextVNode(toDisplayString(_ctx.title), 1)
466440
465799
  ], true)
466441
465800
  ]),
466442
- createElementVNode("div", _hoisted_7$d, [
465801
+ createElementVNode("div", _hoisted_7$e, [
466443
465802
  _ctx.showFullscreen ? (openBlock(), createBlock(unref(ElButton), {
466444
465803
  key: 0,
466445
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",
@@ -466447,7 +465806,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466447
465806
  title: isFullscreen.value ? "退出全屏" : "全屏"
466448
465807
  }, {
466449
465808
  default: withCtx(() => [
466450
- createVNode$1(_sfc_main$o, {
465809
+ createVNode$1(_sfc_main$p, {
466451
465810
  name: isFullscreen.value ? "exit-fullscreen" : "fullscreen"
466452
465811
  }, null, 8, ["name"])
466453
465812
  ]),
@@ -466460,19 +465819,19 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466460
465819
  title: "关闭"
466461
465820
  }, {
466462
465821
  default: withCtx(() => [
466463
- createVNode$1(_sfc_main$o, { name: "close" })
465822
+ createVNode$1(_sfc_main$p, { name: "close" })
466464
465823
  ]),
466465
465824
  _: 1
466466
465825
  })) : createCommentVNode("", true)
466467
465826
  ])
466468
465827
  ], 34),
466469
- createElementVNode("div", _hoisted_8$a, [
465828
+ createElementVNode("div", _hoisted_8$b, [
466470
465829
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
466471
465830
  ]),
466472
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_9$9, [
465831
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_9$a, [
466473
465832
  renderSlot(_ctx.$slots, "footer", {}, void 0, true)
466474
465833
  ])) : createCommentVNode("", true),
466475
- _ctx.resizable && !isFullscreen.value ? (openBlock(), createElementBlock("div", _hoisted_10$9, [
465834
+ _ctx.resizable && !isFullscreen.value ? (openBlock(), createElementBlock("div", _hoisted_10$a, [
466476
465835
  createElementVNode("div", {
466477
465836
  class: "absolute top-0 left-2 right-2 h-1 cursor-n-resize pointer-events-auto",
466478
465837
  onMousedown: _cache[1] || (_cache[1] = ($event) => startResize($event, "n"))
@@ -466511,7 +465870,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
466511
465870
  };
466512
465871
  }
466513
465872
  });
466514
- 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"]]);
466515
465874
  const tdtImgUrl = "data:image/png;base64,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";
466516
465875
  const tdtVecUrl = "data:image/png;base64,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";
466517
465876
  const gaodeImgUrl = "data:image/png;base64,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";
@@ -466522,13 +465881,13 @@ const tencentImgUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAABACAY
466522
465881
  const tencentVecUrl = "data:image/png;base64,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";
466523
465882
  const osmUrl = "data:image/png;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2YyZjJmMiIvPgogIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBmaWxsPSIjZmZmZmZmIiBzdHJva2U9IiNjY2NjY2MiIHN0cm9rZS13aWR0aD0iMSIvPgogIDxwYXRoIGQ9Ik0yMCAzMCBMNDAgMjAgTDYwIDM1IEw4MCAyNSBMODAgNzAgTDYwIDc1IEw0MCA2MCBMMjAgNzAgWiIgZmlsbD0iIzdkZDNjMCIgc3Ryb2tlPSIjNWNiM2EwIiBzdHJva2Utd2lkdGg9IjEiLz4KICA8Y2lyY2xlIGN4PSIzNSIgY3k9IjQ1IiByPSIzIiBmaWxsPSIjZmY2YjZiIi8+CiAgPGNpcmNsZSBjeD0iNTUiIGN5PSIzNSIgcj0iMiIgZmlsbD0iIzRlY2RjNCIvPgogIDxjaXJjbGUgY3g9IjY1IiBjeT0iNTUiIHI9IjIiIGZpbGw9IiM0NWI3ZDEiLz4KICA8dGV4dCB4PSI1MCIgeT0iOTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJBcmlhbCwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iIzY2NiI+T1NNPC90ZXh0Pgo8L3N2Zz4=";
466524
465883
  const customBlueUrl = "data:image/png;base64,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";
466525
- const _hoisted_1$k = { class: "basemap-content" };
466526
- const _hoisted_2$j = { class: "basemap-grid" };
466527
- const _hoisted_3$j = ["onClick"];
466528
- const _hoisted_4$i = { class: "basemap-preview" };
466529
- const _hoisted_5$i = ["src", "alt"];
466530
- const _hoisted_6$g = { class: "basemap-name" };
466531
- 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({
466532
465891
  __name: "BasemapPanel",
466533
465892
  props: {
466534
465893
  modelValue: { type: Boolean }
@@ -466759,23 +466118,23 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
466759
466118
  onClose: handleClose
466760
466119
  }, {
466761
466120
  default: withCtx(() => [
466762
- createElementVNode("div", _hoisted_1$k, [
466763
- createElementVNode("div", _hoisted_2$j, [
466121
+ createElementVNode("div", _hoisted_1$l, [
466122
+ createElementVNode("div", _hoisted_2$k, [
466764
466123
  (openBlock(true), createElementBlock(Fragment, null, renderList(displayBasemaps.value, (basemap) => {
466765
466124
  return openBlock(), createElementBlock("div", {
466766
466125
  key: basemap.id,
466767
466126
  class: normalizeClass(["basemap-item", { active: selectedBasemap.value === basemap.id }]),
466768
466127
  onClick: ($event) => selectBasemap(basemap)
466769
466128
  }, [
466770
- createElementVNode("div", _hoisted_4$i, [
466129
+ createElementVNode("div", _hoisted_4$j, [
466771
466130
  createElementVNode("img", {
466772
466131
  src: basemap.thumbnail,
466773
466132
  alt: basemap.name,
466774
466133
  loading: "lazy"
466775
- }, null, 8, _hoisted_5$i)
466134
+ }, null, 8, _hoisted_5$j)
466776
466135
  ]),
466777
- createElementVNode("div", _hoisted_6$g, toDisplayString(basemap.name), 1)
466778
- ], 10, _hoisted_3$j);
466136
+ createElementVNode("div", _hoisted_6$h, toDisplayString(basemap.name), 1)
466137
+ ], 10, _hoisted_3$k);
466779
466138
  }), 128))
466780
466139
  ])
466781
466140
  ])
@@ -466785,7 +466144,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
466785
466144
  };
466786
466145
  }
466787
466146
  });
466788
- 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"]]);
466789
466148
  const icons = {
466790
466149
  pointMarker: new URL("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPg0KICA8cGF0aCBkPSJNMjEgMTBjMCA3LTkgMTMtOSAxM3MtOS02LTktMTNhOSA5IDAgMCAxIDE4IDB6Ii8+DQogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTAiIHI9IjMiLz4NCjwvc3ZnPg==", self.location).href,
466791
466150
  textMarker: new URL("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPg0KICA8cG9seWxpbmUgcG9pbnRzPSI0IDcgNCA0IDIwIDQgMjAgNyIvPg0KICA8bGluZSB4MT0iOSIgeTE9IjIwIiB4Mj0iMTUiIHkyPSIyMCIvPg0KICA8bGluZSB4MT0iMTIiIHkxPSI0IiB4Mj0iMTIiIHkyPSIyMCIvPg0KPC9zdmc+", self.location).href,
@@ -467117,15 +466476,15 @@ class OverviewMapUtil {
467117
466476
  function createOverviewMapUtil() {
467118
466477
  return new OverviewMapUtil();
467119
466478
  }
467120
- const _hoisted_1$j = { class: "measurement-content h-full flex flex-col" };
467121
- const _hoisted_2$i = { class: "measurement-header flex justify-between items-center px-6 py-4" };
467122
- const _hoisted_3$i = { class: "measurement-result py-8 text-center" };
467123
- const _hoisted_4$h = { class: "result-value" };
467124
- const _hoisted_5$h = { class: "tool-grid flex-1 py-5" };
467125
- const _hoisted_6$f = ["onClick"];
467126
- const _hoisted_7$c = ["src", "alt"];
467127
- const _hoisted_8$9 = { class: "tool-label" };
467128
- 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({
467129
466488
  __name: "MeasurementDialog",
467130
466489
  props: {
467131
466490
  modelValue: { type: Boolean }
@@ -467367,8 +466726,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467367
466726
  cacheId: "measurement-dialog"
467368
466727
  }, {
467369
466728
  default: withCtx(() => [
467370
- createElementVNode("div", _hoisted_1$j, [
467371
- createElementVNode("div", _hoisted_2$i, [
466729
+ createElementVNode("div", _hoisted_1$k, [
466730
+ createElementVNode("div", _hoisted_2$j, [
467372
466731
  createVNode$1(_component_el_select, {
467373
466732
  modelValue: selectedUnit.value,
467374
466733
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedUnit.value = $event),
@@ -467436,10 +466795,10 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467436
466795
  _: 1
467437
466796
  })
467438
466797
  ]),
467439
- createElementVNode("div", _hoisted_3$i, [
467440
- createElementVNode("div", _hoisted_4$h, toDisplayString(getDisplayValue()), 1)
466798
+ createElementVNode("div", _hoisted_3$j, [
466799
+ createElementVNode("div", _hoisted_4$i, toDisplayString(getDisplayValue()), 1)
467441
466800
  ]),
467442
- createElementVNode("div", _hoisted_5$h, [
466801
+ createElementVNode("div", _hoisted_5$i, [
467443
466802
  (openBlock(), createElementBlock(Fragment, null, renderList(measurementTools, (tool) => {
467444
466803
  return createElementVNode("div", {
467445
466804
  key: tool.type,
@@ -467450,9 +466809,9 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467450
466809
  src: tool.icon,
467451
466810
  alt: tool.label,
467452
466811
  class: "tool-icon"
467453
- }, null, 8, _hoisted_7$c),
467454
- createElementVNode("span", _hoisted_8$9, toDisplayString(tool.label), 1)
467455
- ], 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);
467456
466815
  }), 64))
467457
466816
  ])
467458
466817
  ])
@@ -467462,13 +466821,13 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
467462
466821
  };
467463
466822
  }
467464
466823
  });
467465
- const MeasurementDialog = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-d868b567"]]);
467466
- const _hoisted_1$i = { class: "coordinate-content" };
467467
- const _hoisted_2$h = { class: "format-selection" };
467468
- const _hoisted_3$h = { class: "format-options" };
467469
- const _hoisted_4$g = { class: "coordinate-input" };
467470
- const _hoisted_5$g = { class: "dialog-footer" };
467471
- 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({
467472
466831
  __name: "CoordinateLocationDialog",
467473
466832
  props: {
467474
466833
  modelValue: { type: Boolean }
@@ -467629,7 +466988,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467629
466988
  class: "coordinate-dialog"
467630
466989
  }, {
467631
466990
  footer: withCtx(() => [
467632
- createElementVNode("div", _hoisted_5$g, [
466991
+ createElementVNode("div", _hoisted_5$h, [
467633
466992
  createVNode$1(_component_el_button, {
467634
466993
  type: "primary",
467635
466994
  onClick: getCurrentLocation
@@ -467651,10 +467010,10 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467651
467010
  ])
467652
467011
  ]),
467653
467012
  default: withCtx(() => [
467654
- createElementVNode("div", _hoisted_1$i, [
467655
- createElementVNode("div", _hoisted_2$h, [
467013
+ createElementVNode("div", _hoisted_1$j, [
467014
+ createElementVNode("div", _hoisted_2$i, [
467656
467015
  _cache[6] || (_cache[6] = createElementVNode("div", { class: "format-title" }, "坐标格式", -1)),
467657
- createElementVNode("div", _hoisted_3$h, [
467016
+ createElementVNode("div", _hoisted_3$i, [
467658
467017
  createVNode$1(_component_el_radio_group, {
467659
467018
  modelValue: selectedFormat.value,
467660
467019
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedFormat.value = $event),
@@ -467678,7 +467037,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467678
467037
  }, 8, ["modelValue"])
467679
467038
  ])
467680
467039
  ]),
467681
- createElementVNode("div", _hoisted_4$g, [
467040
+ createElementVNode("div", _hoisted_4$h, [
467682
467041
  createVNode$1(_component_el_form, {
467683
467042
  model: coordinateForm,
467684
467043
  "label-width": "60px"
@@ -467719,24 +467078,24 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467719
467078
  };
467720
467079
  }
467721
467080
  });
467722
- const CoordinateLocationDialog = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-26c1acac"]]);
467723
- const _hoisted_1$h = { class: "region-content" };
467724
- 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 = {
467725
467084
  key: 0,
467726
467085
  class: "region-categories"
467727
467086
  };
467728
- const _hoisted_3$g = { class: "region-group" };
467729
- const _hoisted_4$f = { class: "region-items" };
467730
- const _hoisted_5$f = { class: "region-group" };
467731
- const _hoisted_6$e = { class: "region-items" };
467732
- const _hoisted_7$b = { class: "region-group" };
467733
- const _hoisted_8$8 = { class: "region-items" };
467734
- const _hoisted_9$8 = { class: "region-group" };
467735
- const _hoisted_10$8 = { class: "region-items" };
467736
- const _hoisted_11$8 = { class: "region-group" };
467737
- const _hoisted_12$8 = { class: "region-items" };
467738
- const _hoisted_13$8 = { class: "region-group" };
467739
- 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" };
467740
467099
  const _hoisted_15$7 = { class: "region-group" };
467741
467100
  const _hoisted_16$7 = { class: "region-items" };
467742
467101
  const _hoisted_17$6 = { class: "region-group" };
@@ -467746,7 +467105,7 @@ const _hoisted_19$5 = {
467746
467105
  class: "sub-regions"
467747
467106
  };
467748
467107
  const _hoisted_20$4 = { class: "district-grid" };
467749
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
467108
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
467750
467109
  __name: "RegionNavigationDialog",
467751
467110
  props: {
467752
467111
  modelValue: { type: Boolean }
@@ -468842,7 +468201,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468842
468201
  class: "region-dialog"
468843
468202
  }, {
468844
468203
  default: withCtx(() => [
468845
- createElementVNode("div", _hoisted_1$h, [
468204
+ createElementVNode("div", _hoisted_1$i, [
468846
468205
  createVNode$1(_component_el_tabs, {
468847
468206
  modelValue: activeTab.value,
468848
468207
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
@@ -468860,10 +468219,10 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468860
468219
  closable: index2 > 0
468861
468220
  }, {
468862
468221
  default: withCtx(() => [
468863
- tab.name === "china" ? (openBlock(), createElementBlock("div", _hoisted_2$g, [
468864
- createElementVNode("div", _hoisted_3$g, [
468222
+ tab.name === "china" ? (openBlock(), createElementBlock("div", _hoisted_2$h, [
468223
+ createElementVNode("div", _hoisted_3$h, [
468865
468224
  _cache[2] || (_cache[2] = createElementVNode("div", { class: "group-title" }, "华北", -1)),
468866
- createElementVNode("div", _hoisted_4$f, [
468225
+ createElementVNode("div", _hoisted_4$g, [
468867
468226
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.north, (region) => {
468868
468227
  return openBlock(), createBlock(_component_el_button, {
468869
468228
  key: region.code,
@@ -468879,9 +468238,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468879
468238
  }), 128))
468880
468239
  ])
468881
468240
  ]),
468882
- createElementVNode("div", _hoisted_5$f, [
468241
+ createElementVNode("div", _hoisted_5$g, [
468883
468242
  _cache[3] || (_cache[3] = createElementVNode("div", { class: "group-title" }, "东北", -1)),
468884
- createElementVNode("div", _hoisted_6$e, [
468243
+ createElementVNode("div", _hoisted_6$f, [
468885
468244
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.northeast, (region) => {
468886
468245
  return openBlock(), createBlock(_component_el_button, {
468887
468246
  key: region.code,
@@ -468897,9 +468256,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468897
468256
  }), 128))
468898
468257
  ])
468899
468258
  ]),
468900
- createElementVNode("div", _hoisted_7$b, [
468259
+ createElementVNode("div", _hoisted_7$c, [
468901
468260
  _cache[4] || (_cache[4] = createElementVNode("div", { class: "group-title" }, "华东", -1)),
468902
- createElementVNode("div", _hoisted_8$8, [
468261
+ createElementVNode("div", _hoisted_8$9, [
468903
468262
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.east, (region) => {
468904
468263
  return openBlock(), createBlock(_component_el_button, {
468905
468264
  key: region.code,
@@ -468915,9 +468274,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468915
468274
  }), 128))
468916
468275
  ])
468917
468276
  ]),
468918
- createElementVNode("div", _hoisted_9$8, [
468277
+ createElementVNode("div", _hoisted_9$9, [
468919
468278
  _cache[5] || (_cache[5] = createElementVNode("div", { class: "group-title" }, "华中", -1)),
468920
- createElementVNode("div", _hoisted_10$8, [
468279
+ createElementVNode("div", _hoisted_10$9, [
468921
468280
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.central, (region) => {
468922
468281
  return openBlock(), createBlock(_component_el_button, {
468923
468282
  key: region.code,
@@ -468933,9 +468292,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468933
468292
  }), 128))
468934
468293
  ])
468935
468294
  ]),
468936
- createElementVNode("div", _hoisted_11$8, [
468295
+ createElementVNode("div", _hoisted_11$9, [
468937
468296
  _cache[6] || (_cache[6] = createElementVNode("div", { class: "group-title" }, "华南", -1)),
468938
- createElementVNode("div", _hoisted_12$8, [
468297
+ createElementVNode("div", _hoisted_12$9, [
468939
468298
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.south, (region) => {
468940
468299
  return openBlock(), createBlock(_component_el_button, {
468941
468300
  key: region.code,
@@ -468951,9 +468310,9 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
468951
468310
  }), 128))
468952
468311
  ])
468953
468312
  ]),
468954
- createElementVNode("div", _hoisted_13$8, [
468313
+ createElementVNode("div", _hoisted_13$9, [
468955
468314
  _cache[7] || (_cache[7] = createElementVNode("div", { class: "group-title" }, "西南", -1)),
468956
- createElementVNode("div", _hoisted_14$7, [
468315
+ createElementVNode("div", _hoisted_14$8, [
468957
468316
  (openBlock(true), createElementBlock(Fragment, null, renderList(regions.southwest, (region) => {
468958
468317
  return openBlock(), createBlock(_component_el_button, {
468959
468318
  key: region.code,
@@ -469035,13 +468394,13 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
469035
468394
  };
469036
468395
  }
469037
468396
  });
469038
- const RegionNavigationDialog = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-2cbe0bd1"]]);
469039
- const _hoisted_1$g = { class: "markers-content" };
469040
- const _hoisted_2$f = { class: "toolbar" };
469041
- const _hoisted_3$f = { class: "search-filter" };
469042
- const _hoisted_4$e = { class: "markers-list" };
469043
- const _hoisted_5$e = { class: "marker-name" };
469044
- 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({
469045
468404
  __name: "MyMarkersDialog",
469046
468405
  props: {
469047
468406
  modelValue: { type: Boolean }
@@ -469378,8 +468737,8 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469378
468737
  class: "markers-dialog"
469379
468738
  }, {
469380
468739
  default: withCtx(() => [
469381
- createElementVNode("div", _hoisted_1$g, [
469382
- createElementVNode("div", _hoisted_2$f, [
468740
+ createElementVNode("div", _hoisted_1$h, [
468741
+ createElementVNode("div", _hoisted_2$g, [
469383
468742
  createVNode$1(_component_el_button, {
469384
468743
  type: "primary",
469385
468744
  icon: unref(plus_default),
@@ -469420,7 +468779,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469420
468779
  _: 1
469421
468780
  }, 8, ["icon", "disabled"])
469422
468781
  ]),
469423
- createElementVNode("div", _hoisted_3$f, [
468782
+ createElementVNode("div", _hoisted_3$g, [
469424
468783
  createVNode$1(_component_el_input, {
469425
468784
  modelValue: searchKeyword.value,
469426
468785
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
@@ -469453,7 +468812,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469453
468812
  _: 1
469454
468813
  }, 8, ["modelValue"])
469455
468814
  ]),
469456
- createElementVNode("div", _hoisted_4$e, [
468815
+ createElementVNode("div", _hoisted_4$f, [
469457
468816
  createVNode$1(_component_el_table, {
469458
468817
  data: filteredMarkers.value,
469459
468818
  height: "300",
@@ -469467,7 +468826,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469467
468826
  width: "120"
469468
468827
  }, {
469469
468828
  default: withCtx(({ row }) => [
469470
- createElementVNode("div", _hoisted_5$e, [
468829
+ createElementVNode("div", _hoisted_5$f, [
469471
468830
  createVNode$1(_component_el_icon, {
469472
468831
  color: row.color,
469473
468832
  size: "16"
@@ -469612,21 +468971,21 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469612
468971
  };
469613
468972
  }
469614
468973
  });
469615
- const MyMarkersDialog = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-940a2ace"]]);
469616
- const _hoisted_1$f = { class: "bookmarks-content" };
469617
- const _hoisted_2$e = { class: "toolbar" };
469618
- const _hoisted_3$e = { class: "search-filter" };
469619
- const _hoisted_4$d = { class: "bookmarks-grid" };
469620
- const _hoisted_5$d = ["onClick"];
469621
- const _hoisted_6$d = { class: "bookmark-thumbnail" };
469622
- const _hoisted_7$a = { class: "thumbnail-placeholder" };
469623
- const _hoisted_8$7 = { class: "bookmark-overlay" };
469624
- const _hoisted_9$7 = { class: "bookmark-info" };
469625
- const _hoisted_10$7 = { class: "bookmark-title" };
469626
- const _hoisted_11$7 = { class: "bookmark-meta" };
469627
- const _hoisted_12$7 = { class: "use-count" };
469628
- const _hoisted_13$7 = { class: "bookmark-description" };
469629
- 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" };
469630
468989
  const _hoisted_15$6 = { class: "detail-item" };
469631
468990
  const _hoisted_16$6 = { class: "detail-item" };
469632
468991
  const _hoisted_17$5 = { class: "bookmark-time" };
@@ -469639,7 +468998,7 @@ const _hoisted_19$4 = {
469639
468998
  class: "statistics"
469640
468999
  };
469641
469000
  const _hoisted_20$3 = { class: "dialog-footer" };
469642
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
469001
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
469643
469002
  __name: "ViewBookmarksDialog",
469644
469003
  props: {
469645
469004
  modelValue: { type: Boolean }
@@ -469919,8 +469278,8 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
469919
469278
  ])
469920
469279
  ]),
469921
469280
  default: withCtx(() => [
469922
- createElementVNode("div", _hoisted_1$f, [
469923
- createElementVNode("div", _hoisted_2$e, [
469281
+ createElementVNode("div", _hoisted_1$g, [
469282
+ createElementVNode("div", _hoisted_2$f, [
469924
469283
  createVNode$1(_component_el_button, {
469925
469284
  type: "primary",
469926
469285
  icon: unref(plus_default),
@@ -469960,7 +469319,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
469960
469319
  _: 1
469961
469320
  }, 8, ["icon", "disabled"])
469962
469321
  ]),
469963
- createElementVNode("div", _hoisted_3$e, [
469322
+ createElementVNode("div", _hoisted_3$f, [
469964
469323
  createVNode$1(_component_el_input, {
469965
469324
  modelValue: searchKeyword.value,
469966
469325
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchKeyword.value = $event),
@@ -470015,15 +469374,15 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470015
469374
  _: 1
470016
469375
  }, 8, ["modelValue"])
470017
469376
  ]),
470018
- createElementVNode("div", _hoisted_4$d, [
469377
+ createElementVNode("div", _hoisted_4$e, [
470019
469378
  (openBlock(true), createElementBlock(Fragment, null, renderList(filteredBookmarks.value, (bookmark, index2) => {
470020
469379
  return openBlock(), createElementBlock("div", {
470021
469380
  key: bookmark.id,
470022
469381
  class: "bookmark-card",
470023
469382
  onClick: ($event) => applyBookmark(bookmark)
470024
469383
  }, [
470025
- createElementVNode("div", _hoisted_6$d, [
470026
- createElementVNode("div", _hoisted_7$a, [
469384
+ createElementVNode("div", _hoisted_6$e, [
469385
+ createElementVNode("div", _hoisted_7$b, [
470027
469386
  createVNode$1(_component_el_icon, {
470028
469387
  size: "40",
470029
469388
  color: "#409eff"
@@ -470034,7 +469393,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470034
469393
  _: 1
470035
469394
  })
470036
469395
  ]),
470037
- createElementVNode("div", _hoisted_8$7, [
469396
+ createElementVNode("div", _hoisted_8$8, [
470038
469397
  createVNode$1(_component_el_button_group, null, {
470039
469398
  default: withCtx(() => [
470040
469399
  createVNode$1(_component_el_button, {
@@ -470074,9 +469433,9 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470074
469433
  }, 1024)
470075
469434
  ])
470076
469435
  ]),
470077
- createElementVNode("div", _hoisted_9$7, [
470078
- createElementVNode("div", _hoisted_10$7, toDisplayString(bookmark.name), 1),
470079
- 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, [
470080
469439
  createVNode$1(_component_el_tag, {
470081
469440
  size: "small",
470082
469441
  type: "info"
@@ -470086,10 +469445,10 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470086
469445
  ]),
470087
469446
  _: 2
470088
469447
  }, 1024),
470089
- createElementVNode("span", _hoisted_12$7, "使用 " + toDisplayString(bookmark.useCount) + " 次", 1)
469448
+ createElementVNode("span", _hoisted_12$8, "使用 " + toDisplayString(bookmark.useCount) + " 次", 1)
470090
469449
  ]),
470091
- createElementVNode("div", _hoisted_13$7, toDisplayString(bookmark.description), 1),
470092
- createElementVNode("div", _hoisted_14$6, [
469450
+ createElementVNode("div", _hoisted_13$8, toDisplayString(bookmark.description), 1),
469451
+ createElementVNode("div", _hoisted_14$7, [
470093
469452
  createElementVNode("span", _hoisted_15$6, [
470094
469453
  createVNode$1(_component_el_icon, null, {
470095
469454
  default: withCtx(() => [
@@ -470111,7 +469470,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470111
469470
  ]),
470112
469471
  createElementVNode("div", _hoisted_17$5, toDisplayString(formatTime(bookmark.createTime)), 1)
470113
469472
  ])
470114
- ], 8, _hoisted_5$d);
469473
+ ], 8, _hoisted_5$e);
470115
469474
  }), 128))
470116
469475
  ]),
470117
469476
  filteredBookmarks.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_18$5, [
@@ -470328,24 +469687,24 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470328
469687
  };
470329
469688
  }
470330
469689
  });
470331
- const ViewBookmarksDialog = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-f533ea83"]]);
470332
- const _hoisted_1$e = { class: "py-2.5" };
470333
- const _hoisted_2$d = { class: "h-150 overflow-y-auto" };
470334
- const _hoisted_3$d = { class: "flex items-center justify-between" };
470335
- const _hoisted_4$c = { class: "mb-5" };
470336
- const _hoisted_5$c = { class: "mb-3" };
470337
- 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 = {
470338
469697
  key: 0,
470339
469698
  class: "mb-3"
470340
469699
  };
470341
- const _hoisted_7$9 = { class: "flex gap-2" };
470342
- const _hoisted_8$6 = { class: "mb-5" };
470343
- const _hoisted_9$6 = { class: "mb-3" };
470344
- const _hoisted_10$6 = { class: "mb-3" };
470345
- const _hoisted_11$6 = { key: 0 };
470346
- const _hoisted_12$6 = { class: "mb-5" };
470347
- const _hoisted_13$6 = { class: "mb-3" };
470348
- 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" };
470349
469708
  const _hoisted_15$5 = { class: "mb-3" };
470350
469709
  const _hoisted_16$5 = { class: "flex gap-2 mb-2" };
470351
469710
  const _hoisted_17$4 = { class: "flex gap-2" };
@@ -470418,7 +469777,7 @@ const _hoisted_44$1 = {
470418
469777
  const _hoisted_45 = { key: 0 };
470419
469778
  const _hoisted_46 = { key: 0 };
470420
469779
  const _hoisted_47 = { class: "text-right" };
470421
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
469780
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
470422
469781
  __name: "MapPrintDialog",
470423
469782
  props: {
470424
469783
  modelValue: { type: Boolean },
@@ -470835,15 +470194,15 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470835
470194
  ])
470836
470195
  ]),
470837
470196
  default: withCtx(() => [
470838
- createElementVNode("div", _hoisted_1$e, [
470197
+ createElementVNode("div", _hoisted_1$f, [
470839
470198
  createVNode$1(_component_el_row, { gutter: 20 }, {
470840
470199
  default: withCtx(() => [
470841
470200
  createVNode$1(_component_el_col, { span: 8 }, {
470842
470201
  default: withCtx(() => [
470843
- createElementVNode("div", _hoisted_2$d, [
470202
+ createElementVNode("div", _hoisted_2$e, [
470844
470203
  createVNode$1(_component_el_card, { shadow: "hover" }, {
470845
470204
  header: withCtx(() => [
470846
- createElementVNode("div", _hoisted_3$d, [
470205
+ createElementVNode("div", _hoisted_3$e, [
470847
470206
  _cache[18] || (_cache[18] = createElementVNode("span", null, "打印设置", -1)),
470848
470207
  createVNode$1(_component_el_button, {
470849
470208
  type: "text",
@@ -470863,9 +470222,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470863
470222
  ])
470864
470223
  ]),
470865
470224
  default: withCtx(() => [
470866
- createElementVNode("div", _hoisted_4$c, [
470225
+ createElementVNode("div", _hoisted_4$d, [
470867
470226
  _cache[21] || (_cache[21] = createElementVNode("label", { class: "block text-sm font-medium text-gray-700 mb-2" }, "纸张设置", -1)),
470868
- createElementVNode("div", _hoisted_5$c, [
470227
+ createElementVNode("div", _hoisted_5$d, [
470869
470228
  createVNode$1(_component_el_select, {
470870
470229
  modelValue: printSettings.paperSize,
470871
470230
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => printSettings.paperSize = $event),
@@ -470909,8 +470268,8 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470909
470268
  _: 1
470910
470269
  }, 8, ["modelValue"])
470911
470270
  ]),
470912
- printSettings.paperSize === "Custom" ? (openBlock(), createElementBlock("div", _hoisted_6$c, [
470913
- createElementVNode("div", _hoisted_7$9, [
470271
+ printSettings.paperSize === "Custom" ? (openBlock(), createElementBlock("div", _hoisted_6$d, [
470272
+ createElementVNode("div", _hoisted_7$a, [
470914
470273
  createVNode$1(_component_el_input, {
470915
470274
  modelValue: printSettings.customWidth,
470916
470275
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => printSettings.customWidth = $event),
@@ -470950,9 +470309,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470950
470309
  }, 8, ["modelValue"])
470951
470310
  ])
470952
470311
  ]),
470953
- createElementVNode("div", _hoisted_8$6, [
470312
+ createElementVNode("div", _hoisted_8$7, [
470954
470313
  _cache[23] || (_cache[23] = createElementVNode("label", { class: "block text-sm font-medium text-gray-700 mb-2" }, "地图设置", -1)),
470955
- createElementVNode("div", _hoisted_9$6, [
470314
+ createElementVNode("div", _hoisted_9$7, [
470956
470315
  createVNode$1(_component_el_select, {
470957
470316
  modelValue: printSettings.dpi,
470958
470317
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => printSettings.dpi = $event),
@@ -470980,7 +470339,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
470980
470339
  _: 1
470981
470340
  }, 8, ["modelValue"])
470982
470341
  ]),
470983
- createElementVNode("div", _hoisted_10$6, [
470342
+ createElementVNode("div", _hoisted_10$7, [
470984
470343
  createVNode$1(_component_el_select, {
470985
470344
  modelValue: printSettings.scale,
470986
470345
  "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => printSettings.scale = $event),
@@ -471024,7 +470383,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471024
470383
  _: 1
471025
470384
  }, 8, ["modelValue"])
471026
470385
  ]),
471027
- printSettings.scale === "custom" ? (openBlock(), createElementBlock("div", _hoisted_11$6, [
470386
+ printSettings.scale === "custom" ? (openBlock(), createElementBlock("div", _hoisted_11$7, [
471028
470387
  createVNode$1(_component_el_input, {
471029
470388
  modelValue: printSettings.customScale,
471030
470389
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => printSettings.customScale = $event),
@@ -471039,9 +470398,9 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471039
470398
  }, 8, ["modelValue"])
471040
470399
  ])) : createCommentVNode("", true)
471041
470400
  ]),
471042
- createElementVNode("div", _hoisted_12$6, [
470401
+ createElementVNode("div", _hoisted_12$7, [
471043
470402
  _cache[32] || (_cache[32] = createElementVNode("label", { class: "block text-sm font-medium text-gray-700 mb-2" }, "内容设置", -1)),
471044
- createElementVNode("div", _hoisted_13$6, [
470403
+ createElementVNode("div", _hoisted_13$7, [
471045
470404
  createVNode$1(_component_el_input, {
471046
470405
  modelValue: printSettings.title,
471047
470406
  "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => printSettings.title = $event),
@@ -471049,7 +470408,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471049
470408
  class: "w-full"
471050
470409
  }, null, 8, ["modelValue"])
471051
470410
  ]),
471052
- createElementVNode("div", _hoisted_14$5, [
470411
+ createElementVNode("div", _hoisted_14$6, [
471053
470412
  createVNode$1(_component_el_input, {
471054
470413
  modelValue: printSettings.subtitle,
471055
470414
  "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => printSettings.subtitle = $event),
@@ -471404,18 +470763,18 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
471404
470763
  };
471405
470764
  }
471406
470765
  });
471407
- const MapPrintDialog = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-b6e68ef8"]]);
471408
- const _hoisted_1$d = { class: "mark-tab-container" };
471409
- const _hoisted_2$c = { class: "continuous-switch" };
471410
- const _hoisted_3$c = { class: "tools-grid" };
471411
- const _hoisted_4$b = ["onClick"];
471412
- const _hoisted_5$b = ["src"];
471413
- const _hoisted_6$b = { class: "tool-label" };
471414
- 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 = {
471415
470774
  key: 0,
471416
470775
  class: "stop-drawing-section"
471417
470776
  };
471418
- const _sfc_main$f = {
470777
+ const _sfc_main$g = {
471419
470778
  __name: "MarkTab",
471420
470779
  setup(__props) {
471421
470780
  const mapRef = inject("map");
@@ -471905,7 +471264,7 @@ const _sfc_main$f = {
471905
471264
  const _component_el_select = resolveComponent("el-select");
471906
471265
  const _component_el_switch = resolveComponent("el-switch");
471907
471266
  const _component_el_button = resolveComponent("el-button");
471908
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
471267
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
471909
471268
  createVNode$1(_component_el_select, {
471910
471269
  modelValue: selectedType.value,
471911
471270
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedType.value = $event),
@@ -471923,7 +471282,7 @@ const _sfc_main$f = {
471923
471282
  ]),
471924
471283
  _: 1
471925
471284
  }, 8, ["modelValue"]),
471926
- createElementVNode("div", _hoisted_2$c, [
471285
+ createElementVNode("div", _hoisted_2$d, [
471927
471286
  _cache[2] || (_cache[2] = createElementVNode("span", { class: "switch-label" }, "连续标绘模式", -1)),
471928
471287
  createVNode$1(_component_el_switch, {
471929
471288
  modelValue: continuousDrawing.value,
@@ -471931,7 +471290,7 @@ const _sfc_main$f = {
471931
471290
  size: "small"
471932
471291
  }, null, 8, ["modelValue"])
471933
471292
  ]),
471934
- createElementVNode("div", _hoisted_3$c, [
471293
+ createElementVNode("div", _hoisted_3$d, [
471935
471294
  (openBlock(true), createElementBlock(Fragment, null, renderList(currentTools.value, (tool, idx) => {
471936
471295
  return openBlock(), createElementBlock("div", {
471937
471296
  key: idx,
@@ -471943,15 +471302,15 @@ const _sfc_main$f = {
471943
471302
  src: tool.icon,
471944
471303
  class: "tool-image",
471945
471304
  alt: "tool icon"
471946
- }, null, 8, _hoisted_5$b)) : (openBlock(), createElementBlock("i", {
471305
+ }, null, 8, _hoisted_5$c)) : (openBlock(), createElementBlock("i", {
471947
471306
  key: 1,
471948
471307
  class: normalizeClass([tool.icon, "tool-icon-large"])
471949
471308
  }, null, 2)),
471950
- createElementVNode("span", _hoisted_6$b, toDisplayString(tool.label), 1)
471951
- ], 8, _hoisted_4$b);
471309
+ createElementVNode("span", _hoisted_6$c, toDisplayString(tool.label), 1)
471310
+ ], 8, _hoisted_4$c);
471952
471311
  }), 128))
471953
471312
  ]),
471954
- activeDrawingTool.value && continuousDrawing.value ? (openBlock(), createElementBlock("div", _hoisted_7$8, [
471313
+ activeDrawingTool.value && continuousDrawing.value ? (openBlock(), createElementBlock("div", _hoisted_7$9, [
471955
471314
  createVNode$1(_component_el_button, {
471956
471315
  type: "danger",
471957
471316
  size: "small",
@@ -471968,18 +471327,18 @@ const _sfc_main$f = {
471968
471327
  };
471969
471328
  }
471970
471329
  };
471971
- const MarkTab = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-019ab9dd"]]);
471972
- const _hoisted_1$c = { class: "list-tab-container" };
471973
- const _hoisted_2$b = { class: "toolbar" };
471974
- const _hoisted_3$b = { class: "toolbar-left" };
471975
- const _hoisted_4$a = { class: "data-count" };
471976
- const _hoisted_5$a = { class: "list-content" };
471977
- const _hoisted_6$a = { class: "tree-node" };
471978
- 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 = {
471979
471338
  key: 1,
471980
471339
  class: "empty-state"
471981
471340
  };
471982
- const _sfc_main$e = {
471341
+ const _sfc_main$f = {
471983
471342
  __name: "ListTab",
471984
471343
  setup(__props) {
471985
471344
  const groups = ref([
@@ -472000,9 +471359,9 @@ const _sfc_main$e = {
472000
471359
  return (_ctx, _cache) => {
472001
471360
  const _component_el_button = resolveComponent("el-button");
472002
471361
  const _component_el_tree = resolveComponent("el-tree");
472003
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
472004
- createElementVNode("div", _hoisted_2$b, [
472005
- 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, [
472006
471365
  _cache[2] || (_cache[2] = createElementVNode("span", { class: "toolbar-title" }, "分组管理:", -1)),
472007
471366
  createVNode$1(_component_el_button, {
472008
471367
  type: "primary",
@@ -472025,9 +471384,9 @@ const _sfc_main$e = {
472025
471384
  _: 1
472026
471385
  })
472027
471386
  ]),
472028
- createElementVNode("div", _hoisted_4$a, "共" + toDisplayString(groups.value.length) + "条数据", 1)
471387
+ createElementVNode("div", _hoisted_4$b, "共" + toDisplayString(groups.value.length) + "条数据", 1)
472029
471388
  ]),
472030
- createElementVNode("div", _hoisted_5$a, [
471389
+ createElementVNode("div", _hoisted_5$b, [
472031
471390
  groups.value.length ? (openBlock(), createBlock(_component_el_tree, {
472032
471391
  key: 0,
472033
471392
  data: groups.value,
@@ -472038,27 +471397,27 @@ const _sfc_main$e = {
472038
471397
  class: "tree-component"
472039
471398
  }, {
472040
471399
  default: withCtx(({ data }) => [
472041
- createElementVNode("div", _hoisted_6$a, [
471400
+ createElementVNode("div", _hoisted_6$b, [
472042
471401
  _cache[3] || (_cache[3] = createElementVNode("i", { class: "i-carbon-folder node-icon" }, null, -1)),
472043
471402
  createElementVNode("span", null, toDisplayString(data.label), 1)
472044
471403
  ])
472045
471404
  ]),
472046
471405
  _: 1
472047
- }, 8, ["data"])) : (openBlock(), createElementBlock("div", _hoisted_7$7, "暂无数据"))
471406
+ }, 8, ["data"])) : (openBlock(), createElementBlock("div", _hoisted_7$8, "暂无数据"))
472048
471407
  ])
472049
471408
  ]);
472050
471409
  };
472051
471410
  }
472052
471411
  };
472053
- const ListTab = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-1cc008ea"]]);
472054
- const _hoisted_1$b = { class: "dialog-content" };
472055
- const _hoisted_2$a = { class: "toolbar" };
472056
- const _hoisted_3$a = { class: "toolbar-left" };
472057
- const _hoisted_4$9 = ["onClick"];
472058
- const _hoisted_5$9 = { class: "toolbar-right" };
472059
- const _hoisted_6$9 = ["onClick"];
472060
- const _hoisted_7$6 = { class: "content-area" };
472061
- 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 = {
472062
471421
  __name: "index",
472063
471422
  setup(__props) {
472064
471423
  const visible = ref(true);
@@ -472120,9 +471479,9 @@ const _sfc_main$d = {
472120
471479
  onClose: handleClose
472121
471480
  }, {
472122
471481
  default: withCtx(() => [
472123
- createElementVNode("div", _hoisted_1$b, [
472124
- createElementVNode("div", _hoisted_2$a, [
472125
- createElementVNode("div", _hoisted_3$a, [
471482
+ createElementVNode("div", _hoisted_1$c, [
471483
+ createElementVNode("div", _hoisted_2$b, [
471484
+ createElementVNode("div", _hoisted_3$b, [
472126
471485
  (openBlock(), createElementBlock(Fragment, null, renderList(leftTools, (tool, idx) => {
472127
471486
  return createVNode$1(_component_el_tooltip, {
472128
471487
  key: idx,
@@ -472134,13 +471493,13 @@ const _sfc_main$d = {
472134
471493
  createElementVNode("i", {
472135
471494
  class: normalizeClass([tool.icon, "tool-icon"]),
472136
471495
  onClick: ($event) => handleToolClick(tool, "left", idx)
472137
- }, null, 10, _hoisted_4$9)
471496
+ }, null, 10, _hoisted_4$a)
472138
471497
  ]),
472139
471498
  _: 2
472140
471499
  }, 1032, ["content"]);
472141
471500
  }), 64))
472142
471501
  ]),
472143
- createElementVNode("div", _hoisted_5$9, [
471502
+ createElementVNode("div", _hoisted_5$a, [
472144
471503
  (openBlock(), createElementBlock(Fragment, null, renderList(rightTools, (tool, idx) => {
472145
471504
  return createVNode$1(_component_el_tooltip, {
472146
471505
  key: idx,
@@ -472152,14 +471511,14 @@ const _sfc_main$d = {
472152
471511
  createElementVNode("i", {
472153
471512
  class: normalizeClass([tool.icon, "tool-icon"]),
472154
471513
  onClick: ($event) => handleToolClick(tool, "right", idx)
472155
- }, null, 10, _hoisted_6$9)
471514
+ }, null, 10, _hoisted_6$a)
472156
471515
  ]),
472157
471516
  _: 2
472158
471517
  }, 1032, ["content"]);
472159
471518
  }), 64))
472160
471519
  ])
472161
471520
  ]),
472162
- createElementVNode("div", _hoisted_7$6, [
471521
+ createElementVNode("div", _hoisted_7$7, [
472163
471522
  createVNode$1(_component_el_tabs, {
472164
471523
  modelValue: activeTab.value,
472165
471524
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
@@ -472196,9 +471555,9 @@ const _sfc_main$d = {
472196
471555
  };
472197
471556
  }
472198
471557
  };
472199
- const MapDrawingDialog = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-16fc7a81"]]);
472200
- const _hoisted_1$a = { class: "flex" };
472201
- 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({
472202
471561
  __name: "MapToolbar",
472203
471562
  props: {
472204
471563
  config: { default: void 0 },
@@ -472389,7 +471748,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
472389
471748
  class: "main-menu-item"
472390
471749
  }, {
472391
471750
  title: withCtx(() => [
472392
- createElementVNode("div", _hoisted_1$a, [
471751
+ createElementVNode("div", _hoisted_1$b, [
472393
471752
  createElementVNode("div", null, [
472394
471753
  createVNode$1(_component_el_icon, null, {
472395
471754
  default: withCtx(() => [
@@ -472612,30 +471971,30 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
472612
471971
  };
472613
471972
  }
472614
471973
  });
472615
- const MapToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-f8ee8458"]]);
472616
- const _hoisted_1$9 = { class: "search-input-wrapper" };
472617
- const _hoisted_2$9 = { class: "search-results" };
472618
- 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 = {
472619
471978
  key: 0,
472620
471979
  class: "search-section"
472621
471980
  };
472622
- const _hoisted_4$8 = { class: "section-title" };
472623
- const _hoisted_5$8 = ["onClick"];
472624
- const _hoisted_6$8 = { class: "item-content" };
472625
- const _hoisted_7$5 = { class: "item-name" };
472626
- const _hoisted_8$5 = { class: "item-address" };
472627
- 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 = {
472628
471987
  key: 1,
472629
471988
  class: "search-section"
472630
471989
  };
472631
- const _hoisted_10$5 = {
471990
+ const _hoisted_10$6 = {
472632
471991
  key: 0,
472633
471992
  class: "section-title"
472634
471993
  };
472635
- const _hoisted_11$5 = { class: "result-count" };
472636
- const _hoisted_12$5 = ["onClick"];
472637
- const _hoisted_13$5 = { class: "item-content" };
472638
- 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"];
472639
471998
  const _hoisted_15$4 = ["innerHTML"];
472640
471999
  const _hoisted_16$4 = {
472641
472000
  key: 0,
@@ -472649,7 +472008,7 @@ const _hoisted_18$3 = {
472649
472008
  key: 0,
472650
472009
  class: "no-results"
472651
472010
  };
472652
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
472011
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
472653
472012
  __name: "MapSearch",
472654
472013
  props: {
472655
472014
  config: { default: () => ({
@@ -472870,7 +472229,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472870
472229
  class: normalizeClass(["map-search-container", [`position-${position2.value}`, { "search-active": isSearchActive.value }]])
472871
472230
  }, [
472872
472231
  renderSlot(_ctx.$slots, "prepend", {}, void 0, true),
472873
- createElementVNode("div", _hoisted_1$9, [
472232
+ createElementVNode("div", _hoisted_1$a, [
472874
472233
  renderSlot(_ctx.$slots, "search-input", {
472875
472234
  searchQuery: searchQuery.value,
472876
472235
  placeholder: placeholder.value,
@@ -472926,7 +472285,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472926
472285
  }, 8, ["modelValue", "placeholder"])
472927
472286
  ], true)
472928
472287
  ]),
472929
- withDirectives(createElementVNode("div", _hoisted_2$9, [
472288
+ withDirectives(createElementVNode("div", _hoisted_2$a, [
472930
472289
  renderSlot(_ctx.$slots, "search-results", {
472931
472290
  searchResults: searchResults.value,
472932
472291
  searchHistory: searchHistory.value,
@@ -472938,9 +472297,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472938
472297
  clearHistory,
472939
472298
  highlightText
472940
472299
  }, () => [
472941
- 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, [
472942
472301
  renderSlot(_ctx.$slots, "history-title", { clearHistory }, () => [
472943
- createElementVNode("div", _hoisted_4$8, [
472302
+ createElementVNode("div", _hoisted_4$9, [
472944
472303
  _cache[2] || (_cache[2] = createElementVNode("span", null, "搜索历史", -1)),
472945
472304
  createVNode$1(unref(ElButton), {
472946
472305
  type: "text",
@@ -472972,22 +472331,22 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
472972
472331
  ]),
472973
472332
  _: 1
472974
472333
  }),
472975
- createElementVNode("div", _hoisted_6$8, [
472976
- createElementVNode("div", _hoisted_7$5, toDisplayString(item.name), 1),
472977
- 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)
472978
472337
  ])
472979
- ], 10, _hoisted_5$8)
472338
+ ], 10, _hoisted_5$9)
472980
472339
  ], true);
472981
472340
  }), 128))
472982
472341
  ])) : createCommentVNode("", true),
472983
- searchResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9$5, [
472342
+ searchResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9$6, [
472984
472343
  renderSlot(_ctx.$slots, "results-title", {
472985
472344
  searchQuery: searchQuery.value,
472986
472345
  resultsCount: searchResults.value.length
472987
472346
  }, () => [
472988
- searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_10$5, [
472347
+ searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_10$6, [
472989
472348
  _cache[3] || (_cache[3] = createElementVNode("span", null, "搜索结果", -1)),
472990
- createElementVNode("span", _hoisted_11$5, "(" + toDisplayString(searchResults.value.length) + ")", 1)
472349
+ createElementVNode("span", _hoisted_11$6, "(" + toDisplayString(searchResults.value.length) + ")", 1)
472991
472350
  ])) : createCommentVNode("", true)
472992
472351
  ], true),
472993
472352
  (openBlock(true), createElementBlock(Fragment, null, renderList(displayResults.value, (result, index2) => {
@@ -473010,11 +472369,11 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
473010
472369
  ]),
473011
472370
  _: 1
473012
472371
  }),
473013
- createElementVNode("div", _hoisted_13$5, [
472372
+ createElementVNode("div", _hoisted_13$6, [
473014
472373
  createElementVNode("div", {
473015
472374
  class: "item-name",
473016
472375
  innerHTML: highlightText(result.name, searchQuery.value)
473017
- }, null, 8, _hoisted_14$4),
472376
+ }, null, 8, _hoisted_14$5),
473018
472377
  createElementVNode("div", {
473019
472378
  class: "item-address",
473020
472379
  innerHTML: highlightText(result.address, searchQuery.value)
@@ -473022,7 +472381,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
473022
472381
  result.type ? (openBlock(), createElementBlock("div", _hoisted_16$4, toDisplayString(result.type), 1)) : createCommentVNode("", true)
473023
472382
  ]),
473024
472383
  result.confidence ? (openBlock(), createElementBlock("div", _hoisted_17$3, toDisplayString(Math.round(result.confidence * 100)) + "%", 1)) : createCommentVNode("", true)
473025
- ], 10, _hoisted_12$5)
472384
+ ], 10, _hoisted_12$6)
473026
472385
  ], true);
473027
472386
  }), 128))
473028
472387
  ])) : createCommentVNode("", true),
@@ -473050,8 +472409,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
473050
472409
  };
473051
472410
  }
473052
472411
  });
473053
- const MapSearch = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-3547f7a5"]]);
473054
- 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({
473055
472414
  __name: "index",
473056
472415
  props: {
473057
472416
  config: {},
@@ -473597,21 +472956,21 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
473597
472956
  };
473598
472957
  }
473599
472958
  });
473600
- const MapControls = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-45410a30"]]);
473601
- 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" };
473602
- const _hoisted_2$8 = { class: "panel-actions" };
473603
- const _hoisted_3$8 = { class: "panel-content max-h-125 overflow-y-auto" };
473604
- const _hoisted_4$7 = { class: "p-2" };
473605
- const _hoisted_5$7 = { class: "legend-content p-2" };
473606
- const _hoisted_6$7 = { key: 0 };
473607
- const _hoisted_7$4 = { class: "text-xs text-gray-600" };
473608
- const _hoisted_8$4 = { key: 1 };
473609
- const _hoisted_9$4 = { class: "text-xs text-gray-600" };
473610
- const _hoisted_10$4 = { key: 2 };
473611
- const _hoisted_11$4 = { class: "relative mb-2" };
473612
- const _hoisted_12$4 = { class: "flex justify-between mt-1 text-xs text-gray-500" };
473613
- const _hoisted_13$4 = { class: "text-center text-xs text-gray-500" };
473614
- 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 };
473615
472974
  const _hoisted_15$3 = { class: "flex-1 text-xs text-gray-600" };
473616
472975
  const _hoisted_16$3 = {
473617
472976
  key: 4,
@@ -473626,7 +472985,7 @@ const _hoisted_19$2 = {
473626
472985
  key: 1,
473627
472986
  class: "py-10 px-5 text-center"
473628
472987
  };
473629
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
472988
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
473630
472989
  __name: "LegendPanel",
473631
472990
  props: {
473632
472991
  position: { default: "right" },
@@ -473822,9 +473181,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473822
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 }]),
473823
473182
  style: normalizeStyle$1(panelStyle.value)
473824
473183
  }, [
473825
- createElementVNode("div", _hoisted_1$8, [
473184
+ createElementVNode("div", _hoisted_1$9, [
473826
473185
  _cache[1] || (_cache[1] = createElementVNode("h3", { class: "m-0 text-sm font-semibold text-gray-800" }, "图例", -1)),
473827
- createElementVNode("div", _hoisted_2$8, [
473186
+ createElementVNode("div", _hoisted_2$9, [
473828
473187
  createVNode$1(_component_el_button, {
473829
473188
  link: "",
473830
473189
  size: "small",
@@ -473833,8 +473192,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473833
473192
  }, null, 8, ["icon"])
473834
473193
  ])
473835
473194
  ]),
473836
- createElementVNode("div", _hoisted_3$8, [
473837
- createElementVNode("div", _hoisted_4$7, [
473195
+ createElementVNode("div", _hoisted_3$9, [
473196
+ createElementVNode("div", _hoisted_4$8, [
473838
473197
  visibleLegends.value.length > 0 ? (openBlock(), createBlock(_component_el_collapse, {
473839
473198
  key: 0,
473840
473199
  modelValue: activeNames.value,
@@ -473850,8 +473209,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473850
473209
  class: "legend-item"
473851
473210
  }, {
473852
473211
  default: withCtx(() => [
473853
- createElementVNode("div", _hoisted_5$7, [
473854
- 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, [
473855
473214
  (openBlock(true), createElementBlock(Fragment, null, renderList(legend.items, (item) => {
473856
473215
  return openBlock(), createElementBlock("div", {
473857
473216
  key: item.value,
@@ -473861,10 +473220,10 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473861
473220
  class: "w-4 h-4 mr-2 border border-gray-300",
473862
473221
  style: normalizeStyle$1(getSymbolStyle(item))
473863
473222
  }, null, 4),
473864
- createElementVNode("span", _hoisted_7$4, toDisplayString(item.label), 1)
473223
+ createElementVNode("span", _hoisted_7$5, toDisplayString(item.label), 1)
473865
473224
  ]);
473866
473225
  }), 128))
473867
- ])) : legend.type === "color" ? (openBlock(), createElementBlock("div", _hoisted_8$4, [
473226
+ ])) : legend.type === "color" ? (openBlock(), createElementBlock("div", _hoisted_8$5, [
473868
473227
  (openBlock(true), createElementBlock(Fragment, null, renderList(legend.items, (item) => {
473869
473228
  return openBlock(), createElementBlock("div", {
473870
473229
  key: item.value,
@@ -473874,22 +473233,22 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473874
473233
  class: "w-4 h-4 mr-2 border border-gray-300 rounded-sm",
473875
473234
  style: normalizeStyle$1({ backgroundColor: item.color })
473876
473235
  }, null, 4),
473877
- createElementVNode("span", _hoisted_9$4, toDisplayString(item.label), 1)
473236
+ createElementVNode("span", _hoisted_9$5, toDisplayString(item.label), 1)
473878
473237
  ]);
473879
473238
  }), 128))
473880
- ])) : legend.type === "gradient" ? (openBlock(), createElementBlock("div", _hoisted_10$4, [
473881
- createElementVNode("div", _hoisted_11$4, [
473239
+ ])) : legend.type === "gradient" ? (openBlock(), createElementBlock("div", _hoisted_10$5, [
473240
+ createElementVNode("div", _hoisted_11$5, [
473882
473241
  createElementVNode("div", {
473883
473242
  class: "w-full h-5 border border-gray-300 rounded-sm",
473884
473243
  style: normalizeStyle$1(getGradientStyle(legend))
473885
473244
  }, null, 4),
473886
- createElementVNode("div", _hoisted_12$4, [
473245
+ createElementVNode("div", _hoisted_12$5, [
473887
473246
  createElementVNode("span", null, toDisplayString(legend.min), 1),
473888
473247
  createElementVNode("span", null, toDisplayString(legend.max), 1)
473889
473248
  ])
473890
473249
  ]),
473891
- createElementVNode("div", _hoisted_13$4, toDisplayString(legend.unit || ""), 1)
473892
- ])) : 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, [
473893
473252
  (openBlock(true), createElementBlock(Fragment, null, renderList(legend.items, (item) => {
473894
473253
  return openBlock(), createElementBlock("div", {
473895
473254
  key: item.value,
@@ -473926,7 +473285,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
473926
473285
  };
473927
473286
  }
473928
473287
  });
473929
- 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"]]);
473930
473289
  class ConfigLoader {
473931
473290
  /**
473932
473291
  * 从URL加载配置文件
@@ -474828,20 +474187,20 @@ class LayerConfigManager {
474828
474187
  console.log("批量更新结果:", results);
474829
474188
  }
474830
474189
  }
474831
- const _hoisted_1$7 = { class: "filter-panel" };
474832
- const _hoisted_2$7 = { class: "config-section" };
474833
- const _hoisted_3$7 = { class: "config-item" };
474834
- const _hoisted_4$6 = { class: "value-text" };
474835
- const _hoisted_5$6 = { class: "config-item" };
474836
- const _hoisted_6$6 = { class: "value-text" };
474837
- const _hoisted_7$3 = { class: "config-item" };
474838
- const _hoisted_8$3 = { class: "value-text" };
474839
- const _hoisted_9$3 = { class: "config-item" };
474840
- const _hoisted_10$3 = { class: "value-text" };
474841
- const _hoisted_11$3 = { class: "config-section" };
474842
- const _hoisted_12$3 = { class: "config-item" };
474843
- const _hoisted_13$3 = { class: "value-text" };
474844
- 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" };
474845
474204
  const _hoisted_15$2 = { class: "value-text" };
474846
474205
  const _hoisted_16$2 = { class: "config-item" };
474847
474206
  const _hoisted_17$1 = { class: "value-text" };
@@ -474849,7 +474208,7 @@ const _hoisted_18$1 = { class: "config-item" };
474849
474208
  const _hoisted_19$1 = { class: "value-text" };
474850
474209
  const _hoisted_20$1 = { class: "config-section" };
474851
474210
  const _hoisted_21$1 = { class: "preset-buttons" };
474852
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474211
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
474853
474212
  __name: "FilterPanel",
474854
474213
  props: {
474855
474214
  filters: {}
@@ -474869,10 +474228,10 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474869
474228
  return (_ctx, _cache) => {
474870
474229
  const _component_el_slider = resolveComponent("el-slider");
474871
474230
  const _component_el_button = resolveComponent("el-button");
474872
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
474873
- createElementVNode("div", _hoisted_2$7, [
474231
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
474232
+ createElementVNode("div", _hoisted_2$8, [
474874
474233
  _cache[15] || (_cache[15] = createElementVNode("h5", null, "色彩调整", -1)),
474875
- createElementVNode("div", _hoisted_3$7, [
474234
+ createElementVNode("div", _hoisted_3$8, [
474876
474235
  _cache[11] || (_cache[11] = createElementVNode("label", null, "色相:", -1)),
474877
474236
  createVNode$1(_component_el_slider, {
474878
474237
  modelValue: _ctx.filters.hue,
@@ -474882,9 +474241,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474882
474241
  step: 1,
474883
474242
  onInput: handleFilterChange
474884
474243
  }, null, 8, ["modelValue"]),
474885
- createElementVNode("span", _hoisted_4$6, toDisplayString(_ctx.filters.hue) + "°", 1)
474244
+ createElementVNode("span", _hoisted_4$7, toDisplayString(_ctx.filters.hue) + "°", 1)
474886
474245
  ]),
474887
- createElementVNode("div", _hoisted_5$6, [
474246
+ createElementVNode("div", _hoisted_5$7, [
474888
474247
  _cache[12] || (_cache[12] = createElementVNode("label", null, "饱和度:", -1)),
474889
474248
  createVNode$1(_component_el_slider, {
474890
474249
  modelValue: _ctx.filters.saturate,
@@ -474894,9 +474253,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474894
474253
  step: 1,
474895
474254
  onInput: handleFilterChange
474896
474255
  }, null, 8, ["modelValue"]),
474897
- createElementVNode("span", _hoisted_6$6, toDisplayString(_ctx.filters.saturate) + "%", 1)
474256
+ createElementVNode("span", _hoisted_6$7, toDisplayString(_ctx.filters.saturate) + "%", 1)
474898
474257
  ]),
474899
- createElementVNode("div", _hoisted_7$3, [
474258
+ createElementVNode("div", _hoisted_7$4, [
474900
474259
  _cache[13] || (_cache[13] = createElementVNode("label", null, "亮度:", -1)),
474901
474260
  createVNode$1(_component_el_slider, {
474902
474261
  modelValue: _ctx.filters.brightness,
@@ -474906,9 +474265,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474906
474265
  step: 1,
474907
474266
  onInput: handleFilterChange
474908
474267
  }, null, 8, ["modelValue"]),
474909
- createElementVNode("span", _hoisted_8$3, toDisplayString(_ctx.filters.brightness) + "%", 1)
474268
+ createElementVNode("span", _hoisted_8$4, toDisplayString(_ctx.filters.brightness) + "%", 1)
474910
474269
  ]),
474911
- createElementVNode("div", _hoisted_9$3, [
474270
+ createElementVNode("div", _hoisted_9$4, [
474912
474271
  _cache[14] || (_cache[14] = createElementVNode("label", null, "对比度:", -1)),
474913
474272
  createVNode$1(_component_el_slider, {
474914
474273
  modelValue: _ctx.filters.contrast,
@@ -474918,12 +474277,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474918
474277
  step: 1,
474919
474278
  onInput: handleFilterChange
474920
474279
  }, null, 8, ["modelValue"]),
474921
- createElementVNode("span", _hoisted_10$3, toDisplayString(_ctx.filters.contrast) + "%", 1)
474280
+ createElementVNode("span", _hoisted_10$4, toDisplayString(_ctx.filters.contrast) + "%", 1)
474922
474281
  ])
474923
474282
  ]),
474924
- createElementVNode("div", _hoisted_11$3, [
474283
+ createElementVNode("div", _hoisted_11$4, [
474925
474284
  _cache[20] || (_cache[20] = createElementVNode("h5", null, "特殊效果", -1)),
474926
- createElementVNode("div", _hoisted_12$3, [
474285
+ createElementVNode("div", _hoisted_12$4, [
474927
474286
  _cache[16] || (_cache[16] = createElementVNode("label", null, "模糊:", -1)),
474928
474287
  createVNode$1(_component_el_slider, {
474929
474288
  modelValue: _ctx.filters.blur,
@@ -474933,9 +474292,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
474933
474292
  step: 0.1,
474934
474293
  onInput: handleFilterChange
474935
474294
  }, null, 8, ["modelValue"]),
474936
- createElementVNode("span", _hoisted_13$3, toDisplayString(_ctx.filters.blur) + "px", 1)
474295
+ createElementVNode("span", _hoisted_13$4, toDisplayString(_ctx.filters.blur) + "px", 1)
474937
474296
  ]),
474938
- createElementVNode("div", _hoisted_14$2, [
474297
+ createElementVNode("div", _hoisted_14$3, [
474939
474298
  _cache[17] || (_cache[17] = createElementVNode("label", null, "棕褐色:", -1)),
474940
474299
  createVNode$1(_component_el_slider, {
474941
474300
  modelValue: _ctx.filters.sepia,
@@ -475019,27 +474378,27 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
475019
474378
  };
475020
474379
  }
475021
474380
  });
475022
- const FilterPanel = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-c78acf80"]]);
475023
- const _hoisted_1$6 = { class: "style-config-panel" };
475024
- const _hoisted_2$6 = { class: "panel-title" };
475025
- 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 = {
475026
474385
  key: 0,
475027
474386
  class: "config-section"
475028
474387
  };
475029
- const _hoisted_4$5 = { class: "config-item" };
475030
- const _hoisted_5$5 = { class: "value-text" };
475031
- const _hoisted_6$5 = { class: "config-item" };
475032
- const _hoisted_7$2 = { class: "value-text" };
475033
- 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 = {
475034
474393
  key: 1,
475035
474394
  class: "config-section"
475036
474395
  };
475037
- const _hoisted_9$2 = { class: "config-item" };
475038
- const _hoisted_10$2 = { class: "config-item" };
475039
- const _hoisted_11$2 = { class: "config-item" };
475040
- const _hoisted_12$2 = { class: "config-item" };
475041
- const _hoisted_13$2 = { class: "panel-actions" };
475042
- 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({
475043
474402
  __name: "LayerStyleConfig",
475044
474403
  props: {
475045
474404
  layerData: {}
@@ -475070,11 +474429,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475070
474429
  const _component_el_select = resolveComponent("el-select");
475071
474430
  const _component_el_switch = resolveComponent("el-switch");
475072
474431
  const _component_el_button = resolveComponent("el-button");
475073
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
475074
- createElementVNode("h4", _hoisted_2$6, toDisplayString(_ctx.layerData.label) + " - 样式配置", 1),
475075
- 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, [
475076
474435
  _cache[8] || (_cache[8] = createElementVNode("h5", null, "聚合配置", -1)),
475077
- createElementVNode("div", _hoisted_4$5, [
474436
+ createElementVNode("div", _hoisted_4$6, [
475078
474437
  _cache[6] || (_cache[6] = createElementVNode("label", null, "聚合距离:", -1)),
475079
474438
  createVNode$1(_component_el_slider, {
475080
474439
  modelValue: _ctx.layerData.clusterDistance,
@@ -475084,9 +474443,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475084
474443
  size: "small",
475085
474444
  onInput: handleClusterDistanceChange
475086
474445
  }, null, 8, ["modelValue"]),
475087
- createElementVNode("span", _hoisted_5$5, toDisplayString(_ctx.layerData.clusterDistance) + "px", 1)
474446
+ createElementVNode("span", _hoisted_5$6, toDisplayString(_ctx.layerData.clusterDistance) + "px", 1)
475088
474447
  ]),
475089
- createElementVNode("div", _hoisted_6$5, [
474448
+ createElementVNode("div", _hoisted_6$6, [
475090
474449
  _cache[7] || (_cache[7] = createElementVNode("label", null, "最小距离:", -1)),
475091
474450
  createVNode$1(_component_el_slider, {
475092
474451
  modelValue: _ctx.layerData.minDistance,
@@ -475096,12 +474455,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475096
474455
  size: "small",
475097
474456
  onInput: handleClusterDistanceChange
475098
474457
  }, null, 8, ["modelValue"]),
475099
- createElementVNode("span", _hoisted_7$2, toDisplayString(_ctx.layerData.minDistance) + "px", 1)
474458
+ createElementVNode("span", _hoisted_7$3, toDisplayString(_ctx.layerData.minDistance) + "px", 1)
475100
474459
  ])
475101
474460
  ])) : createCommentVNode("", true),
475102
- isSuperMapLayer.value ? (openBlock(), createElementBlock("div", _hoisted_8$2, [
474461
+ isSuperMapLayer.value ? (openBlock(), createElementBlock("div", _hoisted_8$3, [
475103
474462
  _cache[13] || (_cache[13] = createElementVNode("h5", null, "SuperMap配置", -1)),
475104
- createElementVNode("div", _hoisted_9$2, [
474463
+ createElementVNode("div", _hoisted_9$3, [
475105
474464
  _cache[9] || (_cache[9] = createElementVNode("label", null, "图片格式:", -1)),
475106
474465
  createVNode$1(_component_el_select, {
475107
474466
  modelValue: _ctx.layerData.format,
@@ -475126,7 +474485,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475126
474485
  _: 1
475127
474486
  }, 8, ["modelValue"])
475128
474487
  ]),
475129
- createElementVNode("div", _hoisted_10$2, [
474488
+ createElementVNode("div", _hoisted_10$3, [
475130
474489
  _cache[10] || (_cache[10] = createElementVNode("label", null, "透明度支持:", -1)),
475131
474490
  createVNode$1(_component_el_switch, {
475132
474491
  modelValue: _ctx.layerData.transparent,
@@ -475135,7 +474494,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475135
474494
  onChange: handleSuperMapConfigChange
475136
474495
  }, null, 8, ["modelValue"])
475137
474496
  ]),
475138
- createElementVNode("div", _hoisted_11$2, [
474497
+ createElementVNode("div", _hoisted_11$3, [
475139
474498
  _cache[11] || (_cache[11] = createElementVNode("label", null, "缓存启用:", -1)),
475140
474499
  createVNode$1(_component_el_switch, {
475141
474500
  modelValue: _ctx.layerData.cacheEnabled,
@@ -475144,7 +474503,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475144
474503
  onChange: handleSuperMapConfigChange
475145
474504
  }, null, 8, ["modelValue"])
475146
474505
  ]),
475147
- createElementVNode("div", _hoisted_12$2, [
474506
+ createElementVNode("div", _hoisted_12$3, [
475148
474507
  _cache[12] || (_cache[12] = createElementVNode("label", null, "自动获取元数据:", -1)),
475149
474508
  createVNode$1(_component_el_switch, {
475150
474509
  modelValue: _ctx.layerData.autoFetchMetadata,
@@ -475154,7 +474513,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475154
474513
  }, null, 8, ["modelValue"])
475155
474514
  ])
475156
474515
  ])) : createCommentVNode("", true),
475157
- createElementVNode("div", _hoisted_13$2, [
474516
+ createElementVNode("div", _hoisted_13$3, [
475158
474517
  createVNode$1(_component_el_button, {
475159
474518
  size: "small",
475160
474519
  onClick: handleReset
@@ -475169,17 +474528,17 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
475169
474528
  };
475170
474529
  }
475171
474530
  });
475172
- const LayerStyleConfig = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-21ab8d8c"]]);
475173
- const _hoisted_1$5 = {
474531
+ const LayerStyleConfig = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-21ab8d8c"]]);
474532
+ const _hoisted_1$6 = {
475174
474533
  key: 0,
475175
474534
  class: "group-node"
475176
474535
  };
475177
- const _hoisted_2$5 = { class: "font-medium" };
475178
- const _hoisted_3$5 = { class: "layer-info" };
475179
- const _hoisted_4$4 = { class: "layer-name" };
475180
- const _hoisted_5$4 = { class: "opacity-control" };
475181
- const _hoisted_6$4 = { class: "opacity-value" };
475182
- 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({
475183
474542
  __name: "LayerTreeNode",
475184
474543
  props: {
475185
474544
  data: {},
@@ -475217,14 +474576,14 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475217
474576
  onDblclick: _cache[6] || (_cache[6] = withModifiers(() => {
475218
474577
  }, ["stop"]))
475219
474578
  }, [
475220
- _ctx.data.type === "group" ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
474579
+ _ctx.data.type === "group" ? (openBlock(), createElementBlock("div", _hoisted_1$6, [
475221
474580
  createVNode$1(_component_el_icon, { class: "mr-2" }, {
475222
474581
  default: withCtx(() => [
475223
474582
  createVNode$1(unref(folder_opened_default))
475224
474583
  ]),
475225
474584
  _: 1
475226
474585
  }),
475227
- createElementVNode("span", _hoisted_2$5, toDisplayString(_ctx.data.label), 1)
474586
+ createElementVNode("span", _hoisted_2$6, toDisplayString(_ctx.data.label), 1)
475228
474587
  ])) : (openBlock(), createElementBlock("div", {
475229
474588
  key: 1,
475230
474589
  class: "layer-item",
@@ -475232,7 +474591,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475232
474591
  onClick: _cache[5] || (_cache[5] = withModifiers(() => {
475233
474592
  }, ["stop"]))
475234
474593
  }, [
475235
- createElementVNode("div", _hoisted_3$5, [
474594
+ createElementVNode("div", _hoisted_3$6, [
475236
474595
  createVNode$1(_component_el_icon, {
475237
474596
  class: normalizeClass(["layer-icon", layerIconClass.value])
475238
474597
  }, {
@@ -475241,7 +474600,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475241
474600
  ]),
475242
474601
  _: 1
475243
474602
  }, 8, ["class"]),
475244
- createElementVNode("span", _hoisted_4$4, toDisplayString(_ctx.data.label), 1)
474603
+ createElementVNode("span", _hoisted_4$5, toDisplayString(_ctx.data.label), 1)
475245
474604
  ]),
475246
474605
  createElementVNode("div", {
475247
474606
  class: "layer-controls",
@@ -475252,7 +474611,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475252
474611
  onDblclick: _cache[4] || (_cache[4] = withModifiers(() => {
475253
474612
  }, ["stop"]))
475254
474613
  }, [
475255
- createElementVNode("div", _hoisted_5$4, [
474614
+ createElementVNode("div", _hoisted_5$5, [
475256
474615
  createVNode$1(_component_el_slider, {
475257
474616
  modelValue: _ctx.data.layerData.opacity,
475258
474617
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.data.layerData.opacity = $event),
@@ -475262,7 +474621,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475262
474621
  class: "opacity-slider",
475263
474622
  onInput: handleOpacityChange
475264
474623
  }, null, 8, ["modelValue"]),
475265
- createElementVNode("span", _hoisted_6$4, toDisplayString(_ctx.data.layerData.opacity) + "%", 1)
474624
+ createElementVNode("span", _hoisted_6$5, toDisplayString(_ctx.data.layerData.opacity) + "%", 1)
475266
474625
  ]),
475267
474626
  createVNode$1(_component_el_popover, {
475268
474627
  placement: "left",
@@ -475306,14 +474665,14 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
475306
474665
  };
475307
474666
  }
475308
474667
  });
475309
- const LayerTreeNode = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-7bff1f66"]]);
475310
- const _hoisted_1$4 = { class: "flex-1 overflow-y-auto p-4" };
475311
- const _hoisted_2$4 = { class: "global-style-panel" };
475312
- const _hoisted_3$4 = { class: "config-section" };
475313
- const _hoisted_4$3 = { class: "config-item" };
475314
- const _hoisted_5$3 = { class: "current-style-display" };
475315
- const _hoisted_6$3 = { class: "style-preview" };
475316
- 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({
475317
474676
  __name: "LayerPanel",
475318
474677
  props: {
475319
474678
  modelValue: { type: Boolean }
@@ -475918,7 +475277,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475918
475277
  name: "layers"
475919
475278
  }, {
475920
475279
  default: withCtx(() => [
475921
- createElementVNode("div", _hoisted_1$4, [
475280
+ createElementVNode("div", _hoisted_1$5, [
475922
475281
  createVNode$1(_component_el_tree, {
475923
475282
  ref_key: "treeRef",
475924
475283
  ref: treeRef,
@@ -475958,7 +475317,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475958
475317
  name: "style"
475959
475318
  }, {
475960
475319
  default: withCtx(() => [
475961
- createElementVNode("div", _hoisted_2$4, [
475320
+ createElementVNode("div", _hoisted_2$5, [
475962
475321
  createVNode$1(_component_el_tabs, {
475963
475322
  modelValue: activeStyleTab.value,
475964
475323
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => activeStyleTab.value = $event),
@@ -475984,8 +475343,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475984
475343
  name: "custom"
475985
475344
  }, {
475986
475345
  default: withCtx(() => [
475987
- createElementVNode("div", _hoisted_3$4, [
475988
- createElementVNode("div", _hoisted_4$3, [
475346
+ createElementVNode("div", _hoisted_3$5, [
475347
+ createElementVNode("div", _hoisted_4$4, [
475989
475348
  createVNode$1(unref(ElInput), {
475990
475349
  modelValue: unref(globalCustomCss),
475991
475350
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(globalCustomCss) ? globalCustomCss.value = $event : null),
@@ -475996,9 +475355,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
475996
475355
  onInput: updateGlobalStyle
475997
475356
  }, null, 8, ["modelValue"])
475998
475357
  ]),
475999
- createElementVNode("div", _hoisted_5$3, [
475358
+ createElementVNode("div", _hoisted_5$4, [
476000
475359
  _cache[4] || (_cache[4] = createElementVNode("h6", null, "当前应用的样式:", -1)),
476001
- createElementVNode("div", _hoisted_6$3, toDisplayString(currentAppliedStyle.value), 1)
475360
+ createElementVNode("div", _hoisted_6$4, toDisplayString(currentAppliedStyle.value), 1)
476002
475361
  ])
476003
475362
  ])
476004
475363
  ]),
@@ -476020,7 +475379,256 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
476020
475379
  };
476021
475380
  }
476022
475381
  });
476023
- 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
+ });
476024
475632
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
476025
475633
  __name: "BasePopup",
476026
475634
  props: {
@@ -477252,7 +476860,7 @@ function createPopupManager(map2, config) {
477252
476860
  return new PopupManager(map2, config);
477253
476861
  }
477254
476862
  const _hoisted_1 = {
477255
- key: 8,
476863
+ key: 10,
477256
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"
477257
476865
  };
477258
476866
  const _hoisted_2 = { class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 bg-gray-50" };
@@ -477269,6 +476877,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477269
476877
  config: {},
477270
476878
  width: { default: "100%" },
477271
476879
  height: { default: "100%" },
476880
+ loading: { type: Boolean },
477272
476881
  showToolbar: { type: Boolean, default: void 0 },
477273
476882
  showMapInfo: { type: Boolean, default: void 0 },
477274
476883
  showLayerPanel: { type: Boolean, default: void 0 },
@@ -477306,7 +476915,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477306
476915
  enablePopup: { type: Boolean, default: true },
477307
476916
  popupConfig: {}
477308
476917
  },
477309
- 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"],
477310
476919
  setup(__props, { expose: __expose, emit: __emit }) {
477311
476920
  const props = __props;
477312
476921
  const emit = __emit;
@@ -477314,6 +476923,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477314
476923
  const eventBus = ref(createLayerEventBus());
477315
476924
  const storage2 = ref(createMapStorage(instanceId.value));
477316
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]);
477317
476933
  const mapContainerRef = ref();
477318
476934
  const mapToolbarRef = ref();
477319
476935
  const mapSearchRef = ref();
@@ -477520,6 +477136,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477520
477136
  if (props.enableStorage) {
477521
477137
  loadStoredData();
477522
477138
  }
477139
+ document.addEventListener("click", handleDocumentClick);
477523
477140
  });
477524
477141
  onUnmounted(() => {
477525
477142
  if (measurementTool.value) {
@@ -477528,7 +477145,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477528
477145
  if (popupManager.value) {
477529
477146
  popupManager.value.destroy();
477530
477147
  }
477148
+ document.removeEventListener("click", handleDocumentClick);
477531
477149
  });
477150
+ const handleDocumentClick = (event) => {
477151
+ const target = event.target;
477152
+ if (!target.closest(".context-menu")) {
477153
+ contextMenuVisible.value = false;
477154
+ }
477155
+ };
477532
477156
  const loadStoredData = () => {
477533
477157
  const storedMeasurements = storage2.value.getMeasurements();
477534
477158
  measurementResults.value = storedMeasurements;
@@ -477596,12 +477220,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477596
477220
  const onFeatureInfo = (data) => {
477597
477221
  emit("feature-info", data);
477598
477222
  };
477599
- const onTooltipShow = (data) => {
477600
- emit("tooltip-show", data);
477601
- };
477602
- const onTooltipHide = () => {
477603
- emit("tooltip-hide");
477604
- };
477605
477223
  const onFeatureClick = (feature2, layer2, clickCoordinate, mapCoordinate) => {
477606
477224
  if (feature2 && layer2 && popupManager.value && clickCoordinate) {
477607
477225
  const coordinate = mapCoordinate || clickCoordinate;
@@ -477680,9 +477298,83 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477680
477298
  };
477681
477299
  const onContextMenu = (coordinate, pixel) => {
477682
477300
  var _a3;
477301
+ contextMenuCoordinate.value = coordinate;
477302
+ contextMenuPosition.value = { x: pixel[0], y: pixel[1] };
477303
+ contextMenuVisible.value = true;
477683
477304
  if ((_a3 = props.eventCallbacks) == null ? void 0 : _a3.onContextMenu) {
477684
477305
  props.eventCallbacks.onContextMenu(coordinate, pixel);
477685
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
+ }
477686
477378
  };
477687
477379
  const onToolAction = (data) => {
477688
477380
  emit("tool-action", data);
@@ -477791,6 +477483,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477791
477483
  var _a3;
477792
477484
  return (_a3 = mapManager.value) == null ? void 0 : _a3.getDrawingManager();
477793
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);
477794
477501
  const toggleLayerPanel = () => {
477795
477502
  showLayerPanel.value = !showLayerPanel.value;
477796
477503
  };
@@ -477838,40 +477545,161 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477838
477545
  return popupManager.value.updatePopupPosition(popupId, coordinate);
477839
477546
  };
477840
477547
  __expose({
477548
+ // 基础地图方法
477841
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
+ // 测量相关方法
477842
477556
  getMeasurementResults,
477557
+ getMeasurementTool: () => {
477558
+ var _a3;
477559
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getMeasurementTool();
477560
+ },
477561
+ startMeasurement: (type) => onMeasurementStart(type),
477843
477562
  clearAllMeasurements,
477563
+ removeMeasurement,
477564
+ // 清理方法
477844
477565
  clearAll,
477566
+ // 面板控制方法
477845
477567
  toggleLayerPanel,
477846
- 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: () => {
477847
477582
  var _a3;
477848
- return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getEventManager();
477583
+ return (_a3 = mapManager.value) == null ? void 0 : _a3.getCoordinateTool();
477849
477584
  },
477850
- getLayerManager: () => {
477585
+ // 右键菜单相关方法
477586
+ onContextMenuVisibleChange,
477587
+ copyCoordinate,
477588
+ addMarker,
477589
+ measureFromHere,
477590
+ // 搜索相关方法
477591
+ searchLocation: (query) => onSearch(query),
477592
+ clearSearchResults: () => onSearchClear(),
477593
+ // 标记工具方法
477594
+ getMarkerTool: () => {
477851
477595
  var _a3;
477852
- 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
+ }
477853
477613
  },
477854
- showTooltip: (coordinate, pixel, data) => {
477614
+ // 地图操作工具方法
477615
+ getMapOperationTool: () => {
477855
477616
  var _a3;
477856
- 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
+ }
477857
477626
  },
477858
- 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: () => {
477859
477645
  var _a3;
477860
- return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.hideTooltip();
477646
+ return (_a3 = mapContainerRef.value) == null ? void 0 : _a3.getDrawingManager();
477861
477647
  },
477862
- // 地图配置更新方法
477863
- updateMapConfig: (config) => {
477648
+ startDrawing: (type) => {
477864
477649
  var _a3;
477865
- 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();
477866
477677
  },
477867
477678
  // Popup 相关方法
477868
477679
  getPopupManager,
477869
477680
  showPopup,
477870
477681
  hidePopup,
477871
477682
  hideAllPopups,
477872
- 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
477873
477700
  });
477874
477701
  return (_ctx, _cache) => {
477702
+ const _component_el_icon = resolveComponent("el-icon");
477875
477703
  const _component_el_button = resolveComponent("el-button");
477876
477704
  return openBlock(), createElementBlock("div", {
477877
477705
  class: normalizeClass(["relative w-full h-full overflow-hidden", { "fixed top-0 left-0 w-screen h-screen z-9999": isFullscreen.value }])
@@ -477910,10 +477738,64 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477910
477738
  formattedData,
477911
477739
  coordinate,
477912
477740
  pixel
477913
- })
477741
+ }, void 0, true)
477914
477742
  ]),
477915
477743
  _: 3
477916
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),
477917
477799
  withDirectives(createVNode$1(MapToolbar, {
477918
477800
  ref_key: "mapToolbarRef",
477919
477801
  ref: mapToolbarRef,
@@ -477953,25 +477835,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477953
477835
  renderSlot(_ctx.$slots, "controls", {
477954
477836
  controls,
477955
477837
  map: map2.value
477956
- })
477838
+ }, void 0, true)
477957
477839
  ]),
477958
477840
  _: 3
477959
477841
  }, 8, ["config", "position", "direction", "left-offset", "right-offset", "top-offset", "bottom-offset"]), [
477960
477842
  [vShow, finalShowControls.value]
477961
477843
  ]),
477962
- hasToolbarSlot.value ? renderSlot(_ctx.$slots, "toolbar", { key: 0 }) : createCommentVNode("", true),
477963
- hasMapInfoSlot.value ? renderSlot(_ctx.$slots, "mapInfo", { key: 1 }) : createCommentVNode("", true),
477964
- 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),
477965
477847
  finalShowLayerPanel.value ? (openBlock(), createBlock(LayerPanel, {
477966
- key: 3,
477848
+ key: 5,
477967
477849
  modelValue: showLayerPanel.value,
477968
477850
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showLayerPanel.value = $event),
477969
477851
  onLayerChange
477970
477852
  }, null, 8, ["modelValue"])) : createCommentVNode("", true),
477971
- hasLayerPanelSlot.value ? renderSlot(_ctx.$slots, "layerPanel", { key: 4 }) : createCommentVNode("", true),
477972
- 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),
477973
477855
  showLegend.value ? (openBlock(), createBlock(LegendPanel, {
477974
- key: 6,
477856
+ key: 8,
477975
477857
  position: finalLegendPosition.value,
477976
477858
  width: finalLegendWidth.value,
477977
477859
  collapsible: finalLegendCollapsible.value,
@@ -477982,17 +477864,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477982
477864
  "top-offset": props.legendTopOffset,
477983
477865
  "bottom-offset": props.legendBottomOffset
477984
477866
  }, null, 8, ["position", "width", "collapsible", "default-collapsed", "show-only-visible", "left-offset", "right-offset", "top-offset", "bottom-offset"])) : createCommentVNode("", true),
477985
- hasLegendSlot.value ? renderSlot(_ctx.$slots, "legend", { key: 7 }) : createCommentVNode("", true),
477867
+ hasLegendSlot.value ? renderSlot(_ctx.$slots, "legend", { key: 9 }, void 0, true) : createCommentVNode("", true),
477986
477868
  measurementResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1, [
477987
477869
  createElementVNode("div", _hoisted_2, [
477988
- _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)),
477989
477871
  createVNode$1(_component_el_button, {
477990
477872
  link: "",
477991
477873
  size: "small",
477992
477874
  onClick: clearAllMeasurements,
477993
477875
  icon: unref(delete_default)
477994
477876
  }, {
477995
- default: withCtx(() => [..._cache[2] || (_cache[2] = [
477877
+ default: withCtx(() => [..._cache[5] || (_cache[5] = [
477996
477878
  createTextVNode(" 清除 ", -1)
477997
477879
  ])]),
477998
477880
  _: 1
@@ -478029,6 +477911,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
478029
477911
  };
478030
477912
  }
478031
477913
  });
477914
+ const CustomOpenlayer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4636b3e2"]]);
478032
477915
  var u8 = Uint8Array;
478033
477916
  var u16 = Uint16Array;
478034
477917
  var i32 = Int32Array;
@@ -486300,7 +486183,7 @@ function(t3) {
486300
486183
  */
486301
486184
  function(t3) {
486302
486185
  function e8() {
486303
- return (n.canvg ? Promise.resolve(n.canvg) : import("./index.es-961ed35a.mjs")).catch(function(t4) {
486186
+ return (n.canvg ? Promise.resolve(n.canvg) : import("./index.es-64fea0cf.mjs")).catch(function(t4) {
486304
486187
  return Promise.reject(new Error("Could not load canvg: " + t4));
486305
486188
  }).then(function(t4) {
486306
486189
  return t4.default ? t4.default : t4;
@@ -495174,22 +495057,22 @@ const getAssetUrl = (path2) => {
495174
495057
  }
495175
495058
  };
495176
495059
  const install = (app) => {
495177
- app.component("CustomOpenlayer", _sfc_main);
495060
+ app.component("CustomOpenlayer", CustomOpenlayer);
495178
495061
  app.component("CustomDialog", CustomDialog);
495179
- app.component("SvgIcon", _sfc_main$o);
495062
+ app.component("SvgIcon", _sfc_main$p);
495180
495063
  };
495181
495064
  const index = {
495182
495065
  install,
495183
- CustomOpenlayer: _sfc_main,
495066
+ CustomOpenlayer,
495184
495067
  CustomDialog,
495185
- SvgIcon: _sfc_main$o
495068
+ SvgIcon: _sfc_main$p
495186
495069
  };
495187
495070
  const version = "1.0.0";
495188
495071
  export {
495189
495072
  ImageDrawingFactory as $,
495190
495073
  PointDrawingFactory as A,
495191
495074
  BasemapManager as B,
495192
- CustomDialog as C,
495075
+ CustomOpenlayer as C,
495193
495076
  DrawingFactoryRegistry as D,
495194
495077
  TextDrawingFactory as E,
495195
495078
  PointWithTextDrawing as F,
@@ -495223,8 +495106,8 @@ export {
495223
495106
  htmlToPDF as a5,
495224
495107
  _defineProperty as b,
495225
495108
  commonjsGlobal as c,
495226
- _sfc_main as d,
495227
- _sfc_main$o as e,
495109
+ CustomDialog as d,
495110
+ _sfc_main$p as e,
495228
495111
  index as f,
495229
495112
  getAssetUrl as g,
495230
495113
  MapStorage as h,