vue-openlayers-plugin 1.0.90 → 1.0.92

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.
Files changed (169) hide show
  1. package/lib/{BasemapPanel-cba3afd6.mjs → BasemapPanel-a7640f57.mjs} +69 -22
  2. package/lib/{CoordinateLocationDialog-6e8a5f24.mjs → CoordinateLocationDialog-3fd9613f.mjs} +106 -51
  3. package/lib/{FilterPanel-9a8e2aca.mjs → FilterPanel-53958140.mjs} +1 -1
  4. package/lib/{MapPrintDialog-03c0823b.mjs → LayerPanel-02152994.mjs} +1 -1
  5. package/lib/{LayerPanel-be35370b.mjs → MapPrintDialog-bbf1ccc1.mjs} +1 -1
  6. package/lib/{MeasurementDialog-7fce097a.mjs → MeasurementDialog-4ffa44ae.mjs} +85 -33
  7. package/lib/{MyMarkersDialog-7dd24d9a.mjs → MyMarkersDialog-605a60e2.mjs} +139 -63
  8. package/lib/{RegionNavigationDialog-0808549f.mjs → RegionNavigationDialog-b0b6f86b.mjs} +30 -26
  9. package/lib/{ViewBookmarksDialog-60c9e851.mjs → ViewBookmarksDialog-475f44f3.mjs} +251 -92
  10. package/lib/{index-b3c7ea8d.mjs → index-30b0d26c.mjs} +1 -1
  11. package/lib/{index-05da77ba.mjs → index-7f38e279.mjs} +3361 -1919
  12. package/lib/{index-7aae577e.mjs → index-ecd9c14c.mjs} +14 -17
  13. package/lib/{index.es-e4a6ccb9.mjs → index.es-d464d539.mjs} +1 -1
  14. package/lib/index.esm.js +63 -63
  15. package/lib/index.umd.js +3956 -2128
  16. package/lib/style.css +707 -633
  17. package/package.json +2 -2
  18. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts +11 -11
  19. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts.map +1 -1
  20. package/types/src/components/CustomDialog/dialogCache.d.ts.map +1 -1
  21. package/types/src/components/CustomDialog/icons/index.d.ts.map +1 -1
  22. package/types/src/components/CustomDialog/index.d.ts.map +1 -1
  23. package/types/src/components/OlBaseLayerSwitcher.vue.d.ts.map +1 -1
  24. package/types/src/components/OlControlPanel.vue.d.ts +2 -2
  25. package/types/src/components/OlControlPanel.vue.d.ts.map +1 -1
  26. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts +1 -1
  27. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts.map +1 -1
  28. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts +1 -1
  29. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts.map +1 -1
  30. package/types/src/components/OlDialogs/DialogManager.d.ts +1 -1
  31. package/types/src/components/OlDialogs/DialogManager.d.ts.map +1 -1
  32. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts +3 -3
  33. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts.map +1 -1
  34. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts +786 -786
  35. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts.map +1 -1
  36. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts +3 -3
  37. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts.map +1 -1
  38. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts +5 -5
  39. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts.map +1 -1
  40. package/types/src/components/OlDialogs/MapDrawingDialog/index.vue.d.ts.map +1 -1
  41. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts +2 -2
  42. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts.map +1 -1
  43. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts +1 -1
  44. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts.map +1 -1
  45. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts +2 -2
  46. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts.map +1 -1
  47. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts +5 -5
  48. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts.map +1 -1
  49. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts +2 -2
  50. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts.map +1 -1
  51. package/types/src/components/OlDialogs/registry.d.ts.map +1 -1
  52. package/types/src/components/OlDrawToolbar.vue.d.ts +16 -16
  53. package/types/src/components/OlDrawToolbar.vue.d.ts.map +1 -1
  54. package/types/src/components/OlLegendPanel.vue.d.ts +1 -1
  55. package/types/src/components/OlLegendPanel.vue.d.ts.map +1 -1
  56. package/types/src/components/OlMapContainer.vue.d.ts +31 -31
  57. package/types/src/components/OlMapContainer.vue.d.ts.map +1 -1
  58. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts +4 -4
  59. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts.map +1 -1
  60. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts +6 -6
  61. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts.map +1 -1
  62. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts +3 -3
  63. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts.map +1 -1
  64. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts +3 -3
  65. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts.map +1 -1
  66. package/types/src/components/OlMapPopup/index.d.ts +1 -1
  67. package/types/src/components/OlMapPopup/index.d.ts.map +1 -1
  68. package/types/src/components/OlMapPopup/types.d.ts +12 -12
  69. package/types/src/components/OlMapPopup/types.d.ts.map +1 -1
  70. package/types/src/components/OlMapSearch.vue.d.ts +3 -3
  71. package/types/src/components/OlMapSearch.vue.d.ts.map +1 -1
  72. package/types/src/components/OlMapTooltip.vue.d.ts +8 -8
  73. package/types/src/components/OlMapTooltip.vue.d.ts.map +1 -1
  74. package/types/src/components/SvgIcon/index.vue.d.ts.map +1 -1
  75. package/types/src/core/EventBus.d.ts.map +1 -1
  76. package/types/src/core/EventManager.d.ts.map +1 -1
  77. package/types/src/core/FeatureHighlightManager.d.ts.map +1 -1
  78. package/types/src/core/GlobalStyleManager.d.ts +1 -1
  79. package/types/src/core/LayerConfigManager.d.ts.map +1 -1
  80. package/types/src/core/LayerManager.d.ts +2 -2
  81. package/types/src/core/LayerManager.d.ts.map +1 -1
  82. package/types/src/core/LayerTreeManager.d.ts +1 -1
  83. package/types/src/core/LayerTreeManager.d.ts.map +1 -1
  84. package/types/src/core/MapManager.d.ts +15 -15
  85. package/types/src/core/MapManager.d.ts.map +1 -1
  86. package/types/src/core/MarkerDrawingAdapter.d.ts.map +1 -1
  87. package/types/src/core/PluginManager.d.ts +1 -1
  88. package/types/src/core/PluginManager.d.ts.map +1 -1
  89. package/types/src/core/PopupManager.d.ts.map +1 -1
  90. package/types/src/core/SearchMarkerManager.d.ts.map +1 -1
  91. package/types/src/core/TooltipHelper.d.ts +1 -1
  92. package/types/src/core/TooltipHelper.d.ts.map +1 -1
  93. package/types/src/core/amapSearchApi.d.ts.map +1 -1
  94. package/types/src/core/configLoader.d.ts +33 -33
  95. package/types/src/core/configLoader.d.ts.map +1 -1
  96. package/types/src/core/drawing/BaseDrawing.d.ts.map +1 -1
  97. package/types/src/core/drawing/DrawingManager.d.ts.map +1 -1
  98. package/types/src/core/drawing/IconDrawing.d.ts.map +1 -1
  99. package/types/src/core/drawing/ImageDrawing.d.ts.map +1 -1
  100. package/types/src/core/drawing/LineDrawing.d.ts.map +1 -1
  101. package/types/src/core/drawing/MilitaryDrawing.d.ts.map +1 -1
  102. package/types/src/core/drawing/MultiLineStringDrawing.d.ts.map +1 -1
  103. package/types/src/core/drawing/MultiPointDrawing.d.ts.map +1 -1
  104. package/types/src/core/drawing/MultiPolygonDrawing.d.ts.map +1 -1
  105. package/types/src/core/drawing/PointDrawing.d.ts +2 -2
  106. package/types/src/core/drawing/PointDrawing.d.ts.map +1 -1
  107. package/types/src/core/drawing/PointWithTextDrawing.d.ts +2 -2
  108. package/types/src/core/drawing/PointWithTextDrawing.d.ts.map +1 -1
  109. package/types/src/core/drawing/PolygonDrawing.d.ts.map +1 -1
  110. package/types/src/core/drawing/TextDrawing.d.ts.map +1 -1
  111. package/types/src/core/drawing/index.d.ts +12 -12
  112. package/types/src/core/drawing/index.d.ts.map +1 -1
  113. package/types/src/core/geoJsonLocationTool.d.ts +3 -3
  114. package/types/src/core/geoJsonLocationTool.d.ts.map +1 -1
  115. package/types/src/core/layers/BaseLayer.d.ts +1 -1
  116. package/types/src/core/layers/BaseLayer.d.ts.map +1 -1
  117. package/types/src/core/layers/CanvasLayerHandler.d.ts.map +1 -1
  118. package/types/src/core/layers/ClusterLayerHandler.d.ts.map +1 -1
  119. package/types/src/core/layers/GMLLayerHandler.d.ts.map +1 -1
  120. package/types/src/core/layers/GeoJSONLayerHandler.d.ts.map +1 -1
  121. package/types/src/core/layers/HeatmapLayerHandler.d.ts.map +1 -1
  122. package/types/src/core/layers/ImageVectorLayerHandler.d.ts.map +1 -1
  123. package/types/src/core/layers/KMLLayerHandler.d.ts.map +1 -1
  124. package/types/src/core/layers/LayerFactory.d.ts.map +1 -1
  125. package/types/src/core/layers/SuperMapServiceTester.d.ts.map +1 -1
  126. package/types/src/core/layers/SuperMapTiledMapServiceHandler.d.ts.map +1 -1
  127. package/types/src/core/layers/TiandituConfigHelper.d.ts.map +1 -1
  128. package/types/src/core/layers/TiandituLayerHandler.d.ts.map +1 -1
  129. package/types/src/core/layers/TileLayerHandler.d.ts.map +1 -1
  130. package/types/src/core/layers/TileSuperMapRestHandler.d.ts +1 -1
  131. package/types/src/core/layers/TileSuperMapRestHandler.d.ts.map +1 -1
  132. package/types/src/core/layers/VectorTileLayerHandler.d.ts +3 -3
  133. package/types/src/core/layers/VectorTileLayerHandler.d.ts.map +1 -1
  134. package/types/src/core/layers/WFSLayerHandler.d.ts +1 -1
  135. package/types/src/core/layers/WFSLayerHandler.d.ts.map +1 -1
  136. package/types/src/core/layers/WKTLayerHandler.d.ts.map +1 -1
  137. package/types/src/core/layers/WMSLayerHandler.d.ts +1 -1
  138. package/types/src/core/layers/WMSLayerHandler.d.ts.map +1 -1
  139. package/types/src/core/layers/WMTSLayerHandler.d.ts.map +1 -1
  140. package/types/src/core/layers/interfaces.d.ts +1 -1
  141. package/types/src/core/layers/interfaces.d.ts.map +1 -1
  142. package/types/src/core/mapOperationTool.d.ts.map +1 -1
  143. package/types/src/core/measurementTool.d.ts.map +1 -1
  144. package/types/src/core/overviewMapUtil.d.ts.map +1 -1
  145. package/types/src/core/proxyHelper.d.ts +1 -1
  146. package/types/src/core/proxyHelper.d.ts.map +1 -1
  147. package/types/src/core/storage.d.ts.map +1 -1
  148. package/types/src/core/styles/StyleFactory.d.ts.map +1 -1
  149. package/types/src/core/styles/StyleManager.d.ts.map +1 -1
  150. package/types/src/core/styles/index.d.ts +1 -1
  151. package/types/src/core/styles/index.d.ts.map +1 -1
  152. package/types/src/core/styles/interfaces.d.ts +3 -3
  153. package/types/src/core/styles/interfaces.d.ts.map +1 -1
  154. package/types/src/core/tiandituSearchApi.d.ts.map +1 -1
  155. package/types/src/hooks/useMap.d.ts.map +1 -1
  156. package/types/src/services/searchService.d.ts +2 -2
  157. package/types/src/services/searchService.d.ts.map +1 -1
  158. package/types/src/style.d.ts.map +1 -1
  159. package/types/src/types/map.d.ts +75 -0
  160. package/types/src/types/map.d.ts.map +1 -1
  161. package/types/src/utils/DiffusionAnimationHelper.d.ts.map +1 -1
  162. package/types/src/utils/GifAnimationHelper.d.ts.map +1 -1
  163. package/types/src/utils/coordinateTransform.d.ts.map +1 -1
  164. package/types/src/utils/html2pdf.d.ts +3 -0
  165. package/types/src/utils/html2pdf.d.ts.map +1 -1
  166. package/types/src/utils/index.d.ts +1 -1
  167. package/types/src/utils/index.d.ts.map +1 -1
  168. package/types/src/utils/unitConverter.d.ts.map +1 -1
  169. package/types/tsconfig.tsbuildinfo +1 -1
@@ -1,6 +1,6 @@
1
- import { defineComponent, inject, computed, ref, reactive, onUnmounted, watch, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, withCtx, createElementVNode, unref, normalizeClass, createTextVNode, toDisplayString, renderList, createBlock, withModifiers } from "vue";
2
- import { i as plus_default, j as folder_opened_default, k as download_default, m as delete_default, s as search_default, n as location_filled_default, o as edit_default, M as MarkerDrawingAdapter, t as toLonLat } from "./index-05da77ba.mjs";
3
- import { E as ElMessageBox } from "./index-b3c7ea8d.mjs";
1
+ import { defineComponent, inject, computed, ref, reactive, onUnmounted, watch, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, withCtx, createElementVNode, unref, normalizeClass, createTextVNode, toDisplayString, renderList, createBlock, withModifiers, mergeProps } from "vue";
2
+ import { j as plus_default, k as folder_opened_default, m as download_default, n as delete_default, s as search_default, o as location_filled_default, q as edit_default, M as MarkerDrawingAdapter, t as fromLonLat, u as toLonLat } from "./index-7f38e279.mjs";
3
+ import { E as ElMessageBox } from "./index-30b0d26c.mjs";
4
4
  import "ol";
5
5
  const _hoisted_1 = { class: "markers-content" };
6
6
  const _hoisted_2 = { class: "toolbar" };
@@ -49,26 +49,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
49
49
  color: "#409eff"
50
50
  });
51
51
  };
52
- const confirmAddMarker = () => {
53
- var _a;
54
- if (!markerForm.name.trim()) {
55
- console.warn("请输入标记名称");
56
- return;
57
- }
58
- const newMarker = {
59
- id: Date.now().toString(),
60
- name: markerForm.name.trim(),
61
- category: markerForm.category || "默认",
62
- description: ((_a = markerForm.description) == null ? void 0 : _a.trim()) || "",
63
- longitude: markerForm.longitude || 117.238548,
64
- latitude: markerForm.latitude || 31.806682,
65
- color: markerForm.color || "#409eff",
66
- createTime: (/* @__PURE__ */ new Date()).toISOString()
67
- };
68
- markers.value.push(newMarker);
69
- cancelAddMarker();
70
- console.log("标记添加成功");
71
- };
72
52
  const categories = computed(() => {
73
53
  const cats = [...new Set(markers.value.map((m) => m.category))];
74
54
  return cats.filter((cat) => cat);
@@ -143,7 +123,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
143
123
  });
144
124
  const handleDrawingEnd = (drawing) => {
145
125
  var _a;
146
- const coordinate = drawing.getCoordinate();
126
+ const coordinate = drawing.getCoordinates();
147
127
  if (coordinate) {
148
128
  (_a = drawingManager.value) == null ? void 0 : _a.removeDrawing(drawing);
149
129
  showMarkerInputDialog(coordinate);
@@ -163,10 +143,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
163
143
  }
164
144
  isAddingMarker.value = false;
165
145
  };
146
+ const dialogProps = ref({
147
+ top: "15vh",
148
+ left: "50%",
149
+ enableCache: true
150
+ });
166
151
  const showMarkerInputDialog = (coordinate) => {
167
152
  var _a;
168
153
  const mapProjection = (_a = map.value) == null ? void 0 : _a.getView().getProjection().getCode();
169
154
  const lonLat = mapProjection === "EPSG:4326" || mapProjection === "EPSG:4490" ? coordinate : toLonLat(coordinate);
155
+ if (map.value) {
156
+ const pixel = map.value.getPixelFromCoordinate(coordinate);
157
+ if (pixel) {
158
+ const mapElement = map.value.getTargetElement();
159
+ const rect = mapElement.getBoundingClientRect();
160
+ dialogProps.value = {
161
+ top: pixel[1] + rect.top + 20 + "px",
162
+ left: pixel[0] + rect.left - 175 + "px",
163
+ enableCache: false
164
+ // 禁用缓存以强制使用新位置
165
+ };
166
+ }
167
+ }
170
168
  editingIndex.value = -1;
171
169
  Object.assign(markerForm, {
172
170
  name: "",
@@ -188,8 +186,55 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
188
186
  latitude: marker.latitude,
189
187
  color: marker.color
190
188
  });
189
+ if (map.value) {
190
+ const mapProjection = map.value.getView().getProjection().getCode();
191
+ const coordinate = mapProjection === "EPSG:4326" || mapProjection === "EPSG:4490" ? [marker.longitude, marker.latitude] : fromLonLat([marker.longitude, marker.latitude]);
192
+ const pixel = map.value.getPixelFromCoordinate(coordinate);
193
+ if (pixel) {
194
+ const mapElement = map.value.getTargetElement();
195
+ const rect = mapElement.getBoundingClientRect();
196
+ dialogProps.value = {
197
+ top: pixel[1] + rect.top + 20 + "px",
198
+ left: pixel[0] + rect.left - 175 + "px",
199
+ enableCache: false
200
+ };
201
+ }
202
+ }
191
203
  showAddDialog.value = true;
192
204
  };
205
+ const saveMarker = () => {
206
+ var _a;
207
+ if (!((_a = markerForm.name) == null ? void 0 : _a.trim())) {
208
+ console.error("请输入标记名称");
209
+ return;
210
+ }
211
+ if (!markerAdapter) {
212
+ console.error("标记管理器未初始化");
213
+ return;
214
+ }
215
+ const markerData = {
216
+ id: editingIndex.value >= 0 ? markers.value[editingIndex.value].id : Date.now().toString(),
217
+ name: markerForm.name,
218
+ category: markerForm.category || "默认",
219
+ description: markerForm.description || "",
220
+ longitude: Number(markerForm.longitude),
221
+ latitude: Number(markerForm.latitude),
222
+ color: markerForm.color || "#409eff",
223
+ createTime: editingIndex.value >= 0 ? markers.value[editingIndex.value].createTime : (/* @__PURE__ */ new Date()).toISOString()
224
+ };
225
+ try {
226
+ if (editingIndex.value >= 0) {
227
+ markerAdapter.updateMarker(markerData);
228
+ console.log("标记更新成功");
229
+ } else {
230
+ markerAdapter.addMarker(markerData);
231
+ console.log("标记添加成功");
232
+ }
233
+ cancelAddMarker();
234
+ } catch (error) {
235
+ console.error("保存标记失败: " + error.message);
236
+ }
237
+ };
193
238
  const deleteMarker = (index) => {
194
239
  ElMessageBox.confirm("确定要删除这个标记吗?", "确认删除", {
195
240
  confirmButtonText: "确定",
@@ -313,15 +358,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
313
358
  markerAdapter = null;
314
359
  }
315
360
  });
316
- watch([() => props.map, () => props.drawingManager], () => {
317
- if (props.map && props.drawingManager) {
318
- initializeMarkerAdapter();
319
- if (markerAdapter) {
320
- const existingMarkers = markerAdapter.getAllMarkers();
321
- markers.value = existingMarkers;
361
+ watch(
362
+ [() => props.map, () => props.drawingManager],
363
+ () => {
364
+ if (props.map && props.drawingManager) {
365
+ initializeMarkerAdapter();
366
+ if (markerAdapter) {
367
+ const existingMarkers = markerAdapter.getAllMarkers();
368
+ markers.value = existingMarkers;
369
+ }
322
370
  }
323
- }
324
- }, { immediate: true });
371
+ },
372
+ { immediate: true }
373
+ );
325
374
  return (_ctx, _cache) => {
326
375
  const _component_el_button = resolveComponent("el-button");
327
376
  const _component_el_input = resolveComponent("el-input");
@@ -339,9 +388,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
339
388
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
340
389
  title: "我的标记",
341
390
  width: "600px",
391
+ height: "600px",
342
392
  "before-close": handleClose,
343
393
  "show-modal": false,
344
- cacheId: "markers-dialog",
394
+ "modal-class": ["pointer-events-none"],
395
+ "cache-id": "markers-dialog",
345
396
  class: "markers-dialog"
346
397
  }, {
347
398
  default: withCtx(() => [
@@ -350,8 +401,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
350
401
  createVNode(_component_el_button, {
351
402
  type: "primary",
352
403
  icon: unref(plus_default),
353
- onClick: showAddMarker,
354
- class: normalizeClass({ "adding-marker": isAddingMarker.value })
404
+ class: normalizeClass({ "adding-marker": isAddingMarker.value }),
405
+ onClick: showAddMarker
355
406
  }, {
356
407
  default: withCtx(() => [
357
408
  createTextVNode(toDisplayString(isAddingMarker.value ? "取消添加" : "添加标记"), 1)
@@ -362,7 +413,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
362
413
  icon: unref(folder_opened_default),
363
414
  onClick: importMarkers
364
415
  }, {
365
- default: withCtx(() => [..._cache[6] || (_cache[6] = [
416
+ default: withCtx(() => [..._cache[7] || (_cache[7] = [
366
417
  createTextVNode(" 导入标记 ", -1)
367
418
  ])]),
368
419
  _: 1
@@ -371,17 +422,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
371
422
  icon: unref(download_default),
372
423
  onClick: exportMarkers
373
424
  }, {
374
- default: withCtx(() => [..._cache[7] || (_cache[7] = [
425
+ default: withCtx(() => [..._cache[8] || (_cache[8] = [
375
426
  createTextVNode(" 导出标记 ", -1)
376
427
  ])]),
377
428
  _: 1
378
429
  }, 8, ["icon"]),
379
430
  createVNode(_component_el_button, {
380
431
  icon: unref(delete_default),
381
- onClick: clearAllMarkers,
382
- disabled: markers.value.length === 0
432
+ disabled: markers.value.length === 0,
433
+ onClick: clearAllMarkers
383
434
  }, {
384
- default: withCtx(() => [..._cache[8] || (_cache[8] = [
435
+ default: withCtx(() => [..._cache[9] || (_cache[9] = [
385
436
  createTextVNode(" 清空全部 ", -1)
386
437
  ])]),
387
438
  _: 1
@@ -394,8 +445,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
394
445
  placeholder: "搜索标记名称或备注...",
395
446
  "prefix-icon": unref(search_default),
396
447
  clearable: "",
397
- onInput: handleSearch,
398
- style: { "width": "300px" }
448
+ style: { "width": "300px" },
449
+ onInput: handleSearch
399
450
  }, null, 8, ["modelValue", "prefix-icon"]),
400
451
  createVNode(_component_el_select, {
401
452
  modelValue: filterCategory.value,
@@ -423,9 +474,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
423
474
  createElementVNode("div", _hoisted_4, [
424
475
  createVNode(_component_el_table, {
425
476
  data: filteredMarkers.value,
426
- height: "300",
427
- onRowClick: locateMarker,
428
- class: "markers-table"
477
+ height: "100%",
478
+ class: "markers-table",
479
+ "empty-text": "暂无数据",
480
+ onRowClick: locateMarker
429
481
  }, {
430
482
  default: withCtx(() => [
431
483
  createVNode(_component_el_table_column, {
@@ -477,26 +529,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
477
529
  createVNode(_component_el_button, {
478
530
  type: "text",
479
531
  size: "small",
480
- onClick: withModifiers(($event) => editMarker(row, $index), ["stop"]),
481
- icon: unref(edit_default)
532
+ icon: unref(edit_default),
533
+ onClick: withModifiers(($event) => editMarker(row, $index), ["stop"])
482
534
  }, {
483
- default: withCtx(() => [..._cache[9] || (_cache[9] = [
535
+ default: withCtx(() => [..._cache[10] || (_cache[10] = [
484
536
  createTextVNode(" 编辑 ", -1)
485
537
  ])]),
486
538
  _: 2
487
- }, 1032, ["onClick", "icon"]),
539
+ }, 1032, ["icon", "onClick"]),
488
540
  createVNode(_component_el_button, {
489
541
  type: "text",
490
542
  size: "small",
491
- onClick: withModifiers(($event) => deleteMarker($index), ["stop"]),
492
543
  icon: unref(delete_default),
493
- class: "delete-btn"
544
+ class: "delete-btn",
545
+ onClick: withModifiers(($event) => deleteMarker($index), ["stop"])
494
546
  }, {
495
- default: withCtx(() => [..._cache[10] || (_cache[10] = [
547
+ default: withCtx(() => [..._cache[11] || (_cache[11] = [
496
548
  createTextVNode(" 删除 ", -1)
497
549
  ])]),
498
550
  _: 2
499
- }, 1032, ["onClick", "icon"])
551
+ }, 1032, ["icon", "onClick"])
500
552
  ]),
501
553
  _: 1
502
554
  })
@@ -508,27 +560,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
508
560
  ]),
509
561
  _: 1
510
562
  }, 8, ["modelValue"]),
511
- createVNode(_component_EPlusDialog, {
563
+ createVNode(_component_EPlusDialog, mergeProps({
512
564
  modelValue: showAddDialog.value,
513
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => showAddDialog.value = $event),
565
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => showAddDialog.value = $event),
514
566
  title: "添加标记",
515
567
  width: "350px",
516
568
  "show-modal": false,
517
- "append-to-body": "",
518
- cacheId: "marker-form"
519
- }, {
569
+ "append-to-body": ""
570
+ }, dialogProps.value), {
520
571
  footer: withCtx(() => [
521
572
  createVNode(_component_el_button, { onClick: cancelAddMarker }, {
522
- default: withCtx(() => [..._cache[11] || (_cache[11] = [
573
+ default: withCtx(() => [..._cache[12] || (_cache[12] = [
523
574
  createTextVNode("取消", -1)
524
575
  ])]),
525
576
  _: 1
526
577
  }),
527
578
  createVNode(_component_el_button, {
528
579
  type: "primary",
529
- onClick: confirmAddMarker
580
+ onClick: saveMarker
530
581
  }, {
531
- default: withCtx(() => [..._cache[12] || (_cache[12] = [
582
+ default: withCtx(() => [..._cache[13] || (_cache[13] = [
532
583
  createTextVNode("确定", -1)
533
584
  ])]),
534
585
  _: 1
@@ -555,11 +606,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
555
606
  ]),
556
607
  _: 1
557
608
  }),
609
+ createVNode(_component_el_form_item, { label: "分类" }, {
610
+ default: withCtx(() => [
611
+ createVNode(_component_el_select, {
612
+ modelValue: markerForm.category,
613
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => markerForm.category = $event),
614
+ filterable: "",
615
+ "allow-create": "",
616
+ "default-first-option": "",
617
+ placeholder: "请选择或输入分类",
618
+ style: { "width": "100%" }
619
+ }, {
620
+ default: withCtx(() => [
621
+ (openBlock(true), createElementBlock(Fragment, null, renderList(categories.value, (item) => {
622
+ return openBlock(), createBlock(_component_el_option, {
623
+ key: item,
624
+ label: item,
625
+ value: item
626
+ }, null, 8, ["label", "value"]);
627
+ }), 128))
628
+ ]),
629
+ _: 1
630
+ }, 8, ["modelValue"])
631
+ ]),
632
+ _: 1
633
+ }),
558
634
  createVNode(_component_el_form_item, { label: "备注" }, {
559
635
  default: withCtx(() => [
560
636
  createVNode(_component_el_input, {
561
637
  modelValue: markerForm.description,
562
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => markerForm.description = $event),
638
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => markerForm.description = $event),
563
639
  type: "textarea",
564
640
  rows: 3,
565
641
  placeholder: "请输入备注信息",
@@ -574,7 +650,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
574
650
  }, 8, ["model"])
575
651
  ]),
576
652
  _: 1
577
- }, 8, ["modelValue"])
653
+ }, 16, ["modelValue"])
578
654
  ], 64);
579
655
  };
580
656
  }
@@ -30,7 +30,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
30
30
  props: {
31
31
  modelValue: { type: Boolean }
32
32
  },
33
- emits: ["update:modelValue", "navigation-action", "flyToRegion", "drawBoundary"],
33
+ emits: ["update:modelValue", "action", "flyToRegion", "drawBoundary"],
34
34
  setup(__props, { emit: __emit }) {
35
35
  const props = __props;
36
36
  const emit = __emit;
@@ -1050,13 +1050,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1050
1050
  }
1051
1051
  };
1052
1052
  const navigateToRegion = (region) => {
1053
- emit("navigation-action", {
1053
+ emit("action", {
1054
1054
  type: "flyToRegion",
1055
1055
  region,
1056
1056
  center: region.center,
1057
1057
  zoom: region.zoom || 7
1058
1058
  });
1059
- emit("navigation-action", {
1059
+ emit("action", {
1060
1060
  type: "drawBoundary",
1061
1061
  code: region.code,
1062
1062
  name: region.name,
@@ -1078,14 +1078,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1078
1078
  };
1079
1079
  const navigateToDistrict = (district) => {
1080
1080
  selectedDistrict.value = district.code;
1081
- emit("navigation-action", {
1081
+ emit("action", {
1082
1082
  type: "flyToRegion",
1083
1083
  region: district,
1084
1084
  center: district.center,
1085
1085
  zoom: 12,
1086
1086
  boundary: district.boundary
1087
1087
  });
1088
- emit("navigation-action", {
1088
+ emit("action", {
1089
1089
  type: "drawBoundary",
1090
1090
  code: district.code,
1091
1091
  name: district.name,
@@ -1118,7 +1118,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1118
1118
  width: "500px",
1119
1119
  "before-close": handleClose,
1120
1120
  "show-modal": false,
1121
- cacheId: "region-dialog",
1121
+ "modal-class": ["pointer-events-none"],
1122
+ "cache-id": "region-dialog",
1122
1123
  class: "region-dialog"
1123
1124
  }, {
1124
1125
  default: withCtx(() => [
@@ -1126,10 +1127,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1126
1127
  createVNode(_component_el_tabs, {
1127
1128
  modelValue: activeTab.value,
1128
1129
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
1129
- onTabClick: handleTabClick,
1130
- onTabRemove: handleTabRemove,
1131
1130
  type: "card",
1132
- class: "region-tabs"
1131
+ class: "region-tabs",
1132
+ onTabClick: handleTabClick,
1133
+ onTabRemove: handleTabRemove
1133
1134
  }, {
1134
1135
  default: withCtx(() => [
1135
1136
  (openBlock(true), createElementBlock(Fragment, null, renderList(tabs.value, (tab, index) => {
@@ -1148,8 +1149,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1148
1149
  return openBlock(), createBlock(_component_el_button, {
1149
1150
  key: region.code,
1150
1151
  type: "text",
1151
- onClick: ($event) => navigateToRegion(region),
1152
- class: "region-btn"
1152
+ class: "region-btn",
1153
+ onClick: ($event) => navigateToRegion(region)
1153
1154
  }, {
1154
1155
  default: withCtx(() => [
1155
1156
  createTextVNode(toDisplayString(region.name), 1)
@@ -1166,8 +1167,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1166
1167
  return openBlock(), createBlock(_component_el_button, {
1167
1168
  key: region.code,
1168
1169
  type: "text",
1169
- onClick: ($event) => navigateToRegion(region),
1170
- class: "region-btn"
1170
+ class: "region-btn",
1171
+ onClick: ($event) => navigateToRegion(region)
1171
1172
  }, {
1172
1173
  default: withCtx(() => [
1173
1174
  createTextVNode(toDisplayString(region.name), 1)
@@ -1184,8 +1185,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1184
1185
  return openBlock(), createBlock(_component_el_button, {
1185
1186
  key: region.code,
1186
1187
  type: "text",
1187
- onClick: ($event) => navigateToRegion(region),
1188
- class: "region-btn"
1188
+ class: "region-btn",
1189
+ onClick: ($event) => navigateToRegion(region)
1189
1190
  }, {
1190
1191
  default: withCtx(() => [
1191
1192
  createTextVNode(toDisplayString(region.name), 1)
@@ -1202,8 +1203,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1202
1203
  return openBlock(), createBlock(_component_el_button, {
1203
1204
  key: region.code,
1204
1205
  type: "text",
1205
- onClick: ($event) => navigateToRegion(region),
1206
- class: "region-btn"
1206
+ class: "region-btn",
1207
+ onClick: ($event) => navigateToRegion(region)
1207
1208
  }, {
1208
1209
  default: withCtx(() => [
1209
1210
  createTextVNode(toDisplayString(region.name), 1)
@@ -1220,8 +1221,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1220
1221
  return openBlock(), createBlock(_component_el_button, {
1221
1222
  key: region.code,
1222
1223
  type: "text",
1223
- onClick: ($event) => navigateToRegion(region),
1224
- class: "region-btn"
1224
+ class: "region-btn",
1225
+ onClick: ($event) => navigateToRegion(region)
1225
1226
  }, {
1226
1227
  default: withCtx(() => [
1227
1228
  createTextVNode(toDisplayString(region.name), 1)
@@ -1238,8 +1239,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1238
1239
  return openBlock(), createBlock(_component_el_button, {
1239
1240
  key: region.code,
1240
1241
  type: "text",
1241
- onClick: ($event) => navigateToRegion(region),
1242
- class: "region-btn"
1242
+ class: "region-btn",
1243
+ onClick: ($event) => navigateToRegion(region)
1243
1244
  }, {
1244
1245
  default: withCtx(() => [
1245
1246
  createTextVNode(toDisplayString(region.name), 1)
@@ -1256,8 +1257,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1256
1257
  return openBlock(), createBlock(_component_el_button, {
1257
1258
  key: region.code,
1258
1259
  type: "text",
1259
- onClick: ($event) => navigateToRegion(region),
1260
- class: "region-btn"
1260
+ class: "region-btn",
1261
+ onClick: ($event) => navigateToRegion(region)
1261
1262
  }, {
1262
1263
  default: withCtx(() => [
1263
1264
  createTextVNode(toDisplayString(region.name), 1)
@@ -1274,8 +1275,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1274
1275
  return openBlock(), createBlock(_component_el_button, {
1275
1276
  key: region.code,
1276
1277
  type: "text",
1277
- onClick: ($event) => navigateToRegion(region),
1278
- class: "region-btn"
1278
+ class: "region-btn",
1279
+ onClick: ($event) => navigateToRegion(region)
1279
1280
  }, {
1280
1281
  default: withCtx(() => [
1281
1282
  createTextVNode(toDisplayString(region.name), 1)
@@ -1290,7 +1291,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1290
1291
  (openBlock(true), createElementBlock(Fragment, null, renderList(tab.districts, (district) => {
1291
1292
  return openBlock(), createBlock(_component_el_button, {
1292
1293
  key: district.code,
1293
- class: normalizeClass(["district-btn", { active: selectedDistrict.value === district.code }]),
1294
+ class: normalizeClass([
1295
+ "district-btn",
1296
+ { active: selectedDistrict.value === district.code }
1297
+ ]),
1294
1298
  onClick: ($event) => navigateToDistrict(district)
1295
1299
  }, {
1296
1300
  default: withCtx(() => [