vue-openlayers-plugin 1.0.91 → 1.0.93

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 (170) hide show
  1. package/lib/{BasemapPanel-97a57e6f.mjs → BasemapPanel-ed3aedc9.mjs} +68 -22
  2. package/lib/{CoordinateLocationDialog-090ead21.mjs → CoordinateLocationDialog-1b493dd9.mjs} +105 -51
  3. package/lib/{FilterPanel-ac96a573.mjs → FilterPanel-a5f38164.mjs} +1 -1
  4. package/lib/{MapPrintDialog-a440a6ab.mjs → LayerPanel-fd86591b.mjs} +1 -1
  5. package/lib/{LayerPanel-f9bbcdc1.mjs → MapPrintDialog-ce441446.mjs} +1 -1
  6. package/lib/{MeasurementDialog-6ec17375.mjs → MeasurementDialog-901a569f.mjs} +84 -33
  7. package/lib/{MyMarkersDialog-1f9f82ed.mjs → MyMarkersDialog-c0883329.mjs} +138 -63
  8. package/lib/{RegionNavigationDialog-d21ed4a6.mjs → RegionNavigationDialog-b0b6f86b.mjs} +29 -26
  9. package/lib/{ViewBookmarksDialog-b9fdb1d5.mjs → ViewBookmarksDialog-9f767176.mjs} +250 -92
  10. package/lib/{index-cdbb6879.mjs → index-3dc1ae8a.mjs} +13 -17
  11. package/lib/{index-a081b5c1.mjs → index-915b9f4d.mjs} +1 -1
  12. package/lib/{index-dd63f686.mjs → index-bc98d31c.mjs} +3359 -1919
  13. package/lib/{index.es-d367a4fc.mjs → index.es-31d767d5.mjs} +1 -1
  14. package/lib/index.esm.js +63 -63
  15. package/lib/index.umd.js +3947 -2128
  16. package/lib/style.css +707 -634
  17. package/package.json +2 -2
  18. package/types/index.d.ts +6616 -1
  19. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts +11 -11
  20. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts.map +1 -1
  21. package/types/src/components/CustomDialog/dialogCache.d.ts.map +1 -1
  22. package/types/src/components/CustomDialog/icons/index.d.ts.map +1 -1
  23. package/types/src/components/CustomDialog/index.d.ts.map +1 -1
  24. package/types/src/components/OlBaseLayerSwitcher.vue.d.ts.map +1 -1
  25. package/types/src/components/OlControlPanel.vue.d.ts +2 -2
  26. package/types/src/components/OlControlPanel.vue.d.ts.map +1 -1
  27. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts +1 -1
  28. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts.map +1 -1
  29. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts +1 -1
  30. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts.map +1 -1
  31. package/types/src/components/OlDialogs/DialogManager.d.ts +1 -1
  32. package/types/src/components/OlDialogs/DialogManager.d.ts.map +1 -1
  33. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts +3 -3
  34. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts.map +1 -1
  35. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts +786 -786
  36. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts.map +1 -1
  37. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts +3 -3
  38. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts.map +1 -1
  39. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts +5 -5
  40. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts.map +1 -1
  41. package/types/src/components/OlDialogs/MapDrawingDialog/index.vue.d.ts.map +1 -1
  42. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts +2 -2
  43. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts.map +1 -1
  44. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts +1 -1
  45. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts.map +1 -1
  46. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts +2 -2
  47. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts.map +1 -1
  48. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts +5 -5
  49. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts.map +1 -1
  50. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts +2 -2
  51. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts.map +1 -1
  52. package/types/src/components/OlDialogs/registry.d.ts.map +1 -1
  53. package/types/src/components/OlDrawToolbar.vue.d.ts +16 -16
  54. package/types/src/components/OlDrawToolbar.vue.d.ts.map +1 -1
  55. package/types/src/components/OlLegendPanel.vue.d.ts +1 -1
  56. package/types/src/components/OlLegendPanel.vue.d.ts.map +1 -1
  57. package/types/src/components/OlMapContainer.vue.d.ts +31 -31
  58. package/types/src/components/OlMapContainer.vue.d.ts.map +1 -1
  59. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts +4 -4
  60. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts.map +1 -1
  61. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts +6 -6
  62. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts.map +1 -1
  63. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts +3 -3
  64. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts.map +1 -1
  65. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts +3 -3
  66. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts.map +1 -1
  67. package/types/src/components/OlMapPopup/index.d.ts +1 -1
  68. package/types/src/components/OlMapPopup/index.d.ts.map +1 -1
  69. package/types/src/components/OlMapPopup/types.d.ts +12 -12
  70. package/types/src/components/OlMapPopup/types.d.ts.map +1 -1
  71. package/types/src/components/OlMapSearch.vue.d.ts +3 -3
  72. package/types/src/components/OlMapSearch.vue.d.ts.map +1 -1
  73. package/types/src/components/OlMapTooltip.vue.d.ts +8 -8
  74. package/types/src/components/OlMapTooltip.vue.d.ts.map +1 -1
  75. package/types/src/components/SvgIcon/index.vue.d.ts.map +1 -1
  76. package/types/src/core/EventBus.d.ts.map +1 -1
  77. package/types/src/core/EventManager.d.ts.map +1 -1
  78. package/types/src/core/FeatureHighlightManager.d.ts.map +1 -1
  79. package/types/src/core/GlobalStyleManager.d.ts +1 -1
  80. package/types/src/core/LayerConfigManager.d.ts.map +1 -1
  81. package/types/src/core/LayerManager.d.ts +2 -2
  82. package/types/src/core/LayerManager.d.ts.map +1 -1
  83. package/types/src/core/LayerTreeManager.d.ts +1 -1
  84. package/types/src/core/LayerTreeManager.d.ts.map +1 -1
  85. package/types/src/core/MapManager.d.ts +15 -15
  86. package/types/src/core/MapManager.d.ts.map +1 -1
  87. package/types/src/core/MarkerDrawingAdapter.d.ts.map +1 -1
  88. package/types/src/core/PluginManager.d.ts +1 -1
  89. package/types/src/core/PluginManager.d.ts.map +1 -1
  90. package/types/src/core/PopupManager.d.ts.map +1 -1
  91. package/types/src/core/SearchMarkerManager.d.ts.map +1 -1
  92. package/types/src/core/TooltipHelper.d.ts +1 -1
  93. package/types/src/core/TooltipHelper.d.ts.map +1 -1
  94. package/types/src/core/amapSearchApi.d.ts.map +1 -1
  95. package/types/src/core/configLoader.d.ts +33 -33
  96. package/types/src/core/configLoader.d.ts.map +1 -1
  97. package/types/src/core/drawing/BaseDrawing.d.ts.map +1 -1
  98. package/types/src/core/drawing/DrawingManager.d.ts.map +1 -1
  99. package/types/src/core/drawing/IconDrawing.d.ts.map +1 -1
  100. package/types/src/core/drawing/ImageDrawing.d.ts.map +1 -1
  101. package/types/src/core/drawing/LineDrawing.d.ts.map +1 -1
  102. package/types/src/core/drawing/MilitaryDrawing.d.ts.map +1 -1
  103. package/types/src/core/drawing/MultiLineStringDrawing.d.ts.map +1 -1
  104. package/types/src/core/drawing/MultiPointDrawing.d.ts.map +1 -1
  105. package/types/src/core/drawing/MultiPolygonDrawing.d.ts.map +1 -1
  106. package/types/src/core/drawing/PointDrawing.d.ts +2 -2
  107. package/types/src/core/drawing/PointDrawing.d.ts.map +1 -1
  108. package/types/src/core/drawing/PointWithTextDrawing.d.ts +2 -2
  109. package/types/src/core/drawing/PointWithTextDrawing.d.ts.map +1 -1
  110. package/types/src/core/drawing/PolygonDrawing.d.ts.map +1 -1
  111. package/types/src/core/drawing/TextDrawing.d.ts.map +1 -1
  112. package/types/src/core/drawing/index.d.ts +12 -12
  113. package/types/src/core/drawing/index.d.ts.map +1 -1
  114. package/types/src/core/geoJsonLocationTool.d.ts +3 -3
  115. package/types/src/core/geoJsonLocationTool.d.ts.map +1 -1
  116. package/types/src/core/layers/BaseLayer.d.ts +1 -1
  117. package/types/src/core/layers/BaseLayer.d.ts.map +1 -1
  118. package/types/src/core/layers/CanvasLayerHandler.d.ts.map +1 -1
  119. package/types/src/core/layers/ClusterLayerHandler.d.ts.map +1 -1
  120. package/types/src/core/layers/GMLLayerHandler.d.ts.map +1 -1
  121. package/types/src/core/layers/GeoJSONLayerHandler.d.ts.map +1 -1
  122. package/types/src/core/layers/HeatmapLayerHandler.d.ts.map +1 -1
  123. package/types/src/core/layers/ImageVectorLayerHandler.d.ts.map +1 -1
  124. package/types/src/core/layers/KMLLayerHandler.d.ts.map +1 -1
  125. package/types/src/core/layers/LayerFactory.d.ts.map +1 -1
  126. package/types/src/core/layers/SuperMapServiceTester.d.ts.map +1 -1
  127. package/types/src/core/layers/SuperMapTiledMapServiceHandler.d.ts.map +1 -1
  128. package/types/src/core/layers/TiandituConfigHelper.d.ts.map +1 -1
  129. package/types/src/core/layers/TiandituLayerHandler.d.ts.map +1 -1
  130. package/types/src/core/layers/TileLayerHandler.d.ts.map +1 -1
  131. package/types/src/core/layers/TileSuperMapRestHandler.d.ts +1 -1
  132. package/types/src/core/layers/TileSuperMapRestHandler.d.ts.map +1 -1
  133. package/types/src/core/layers/VectorTileLayerHandler.d.ts +3 -3
  134. package/types/src/core/layers/VectorTileLayerHandler.d.ts.map +1 -1
  135. package/types/src/core/layers/WFSLayerHandler.d.ts +1 -1
  136. package/types/src/core/layers/WFSLayerHandler.d.ts.map +1 -1
  137. package/types/src/core/layers/WKTLayerHandler.d.ts.map +1 -1
  138. package/types/src/core/layers/WMSLayerHandler.d.ts +1 -1
  139. package/types/src/core/layers/WMSLayerHandler.d.ts.map +1 -1
  140. package/types/src/core/layers/WMTSLayerHandler.d.ts.map +1 -1
  141. package/types/src/core/layers/interfaces.d.ts +1 -1
  142. package/types/src/core/layers/interfaces.d.ts.map +1 -1
  143. package/types/src/core/mapOperationTool.d.ts.map +1 -1
  144. package/types/src/core/measurementTool.d.ts.map +1 -1
  145. package/types/src/core/overviewMapUtil.d.ts.map +1 -1
  146. package/types/src/core/proxyHelper.d.ts +1 -1
  147. package/types/src/core/proxyHelper.d.ts.map +1 -1
  148. package/types/src/core/storage.d.ts.map +1 -1
  149. package/types/src/core/styles/StyleFactory.d.ts.map +1 -1
  150. package/types/src/core/styles/StyleManager.d.ts.map +1 -1
  151. package/types/src/core/styles/index.d.ts +1 -1
  152. package/types/src/core/styles/index.d.ts.map +1 -1
  153. package/types/src/core/styles/interfaces.d.ts +3 -3
  154. package/types/src/core/styles/interfaces.d.ts.map +1 -1
  155. package/types/src/core/tiandituSearchApi.d.ts.map +1 -1
  156. package/types/src/hooks/useMap.d.ts.map +1 -1
  157. package/types/src/services/searchService.d.ts +2 -2
  158. package/types/src/services/searchService.d.ts.map +1 -1
  159. package/types/src/style.d.ts.map +1 -1
  160. package/types/src/types/map.d.ts +75 -0
  161. package/types/src/types/map.d.ts.map +1 -1
  162. package/types/src/utils/DiffusionAnimationHelper.d.ts.map +1 -1
  163. package/types/src/utils/GifAnimationHelper.d.ts.map +1 -1
  164. package/types/src/utils/coordinateTransform.d.ts.map +1 -1
  165. package/types/src/utils/html2pdf.d.ts +3 -0
  166. package/types/src/utils/html2pdf.d.ts.map +1 -1
  167. package/types/src/utils/index.d.ts +1 -1
  168. package/types/src/utils/index.d.ts.map +1 -1
  169. package/types/src/utils/unitConverter.d.ts.map +1 -1
  170. 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-dd63f686.mjs";
3
- import { E as ElMessageBox } from "./index-a081b5c1.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-bc98d31c.mjs";
3
+ import { E as ElMessageBox } from "./index-915b9f4d.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,10 +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
394
  "modal-class": ["pointer-events-none"],
345
- cacheId: "markers-dialog",
395
+ "cache-id": "markers-dialog",
346
396
  class: "markers-dialog"
347
397
  }, {
348
398
  default: withCtx(() => [
@@ -351,8 +401,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
351
401
  createVNode(_component_el_button, {
352
402
  type: "primary",
353
403
  icon: unref(plus_default),
354
- onClick: showAddMarker,
355
- class: normalizeClass({ "adding-marker": isAddingMarker.value })
404
+ class: normalizeClass({ "adding-marker": isAddingMarker.value }),
405
+ onClick: showAddMarker
356
406
  }, {
357
407
  default: withCtx(() => [
358
408
  createTextVNode(toDisplayString(isAddingMarker.value ? "取消添加" : "添加标记"), 1)
@@ -363,7 +413,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
363
413
  icon: unref(folder_opened_default),
364
414
  onClick: importMarkers
365
415
  }, {
366
- default: withCtx(() => [..._cache[6] || (_cache[6] = [
416
+ default: withCtx(() => [..._cache[7] || (_cache[7] = [
367
417
  createTextVNode(" 导入标记 ", -1)
368
418
  ])]),
369
419
  _: 1
@@ -372,17 +422,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
372
422
  icon: unref(download_default),
373
423
  onClick: exportMarkers
374
424
  }, {
375
- default: withCtx(() => [..._cache[7] || (_cache[7] = [
425
+ default: withCtx(() => [..._cache[8] || (_cache[8] = [
376
426
  createTextVNode(" 导出标记 ", -1)
377
427
  ])]),
378
428
  _: 1
379
429
  }, 8, ["icon"]),
380
430
  createVNode(_component_el_button, {
381
431
  icon: unref(delete_default),
382
- onClick: clearAllMarkers,
383
- disabled: markers.value.length === 0
432
+ disabled: markers.value.length === 0,
433
+ onClick: clearAllMarkers
384
434
  }, {
385
- default: withCtx(() => [..._cache[8] || (_cache[8] = [
435
+ default: withCtx(() => [..._cache[9] || (_cache[9] = [
386
436
  createTextVNode(" 清空全部 ", -1)
387
437
  ])]),
388
438
  _: 1
@@ -395,8 +445,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
395
445
  placeholder: "搜索标记名称或备注...",
396
446
  "prefix-icon": unref(search_default),
397
447
  clearable: "",
398
- onInput: handleSearch,
399
- style: { "width": "300px" }
448
+ style: { "width": "300px" },
449
+ onInput: handleSearch
400
450
  }, null, 8, ["modelValue", "prefix-icon"]),
401
451
  createVNode(_component_el_select, {
402
452
  modelValue: filterCategory.value,
@@ -424,9 +474,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
424
474
  createElementVNode("div", _hoisted_4, [
425
475
  createVNode(_component_el_table, {
426
476
  data: filteredMarkers.value,
427
- height: "300",
428
- onRowClick: locateMarker,
429
- class: "markers-table"
477
+ height: "100%",
478
+ class: "markers-table",
479
+ "empty-text": "暂无数据",
480
+ onRowClick: locateMarker
430
481
  }, {
431
482
  default: withCtx(() => [
432
483
  createVNode(_component_el_table_column, {
@@ -478,26 +529,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
478
529
  createVNode(_component_el_button, {
479
530
  type: "text",
480
531
  size: "small",
481
- onClick: withModifiers(($event) => editMarker(row, $index), ["stop"]),
482
- icon: unref(edit_default)
532
+ icon: unref(edit_default),
533
+ onClick: withModifiers(($event) => editMarker(row, $index), ["stop"])
483
534
  }, {
484
- default: withCtx(() => [..._cache[9] || (_cache[9] = [
535
+ default: withCtx(() => [..._cache[10] || (_cache[10] = [
485
536
  createTextVNode(" 编辑 ", -1)
486
537
  ])]),
487
538
  _: 2
488
- }, 1032, ["onClick", "icon"]),
539
+ }, 1032, ["icon", "onClick"]),
489
540
  createVNode(_component_el_button, {
490
541
  type: "text",
491
542
  size: "small",
492
- onClick: withModifiers(($event) => deleteMarker($index), ["stop"]),
493
543
  icon: unref(delete_default),
494
- class: "delete-btn"
544
+ class: "delete-btn",
545
+ onClick: withModifiers(($event) => deleteMarker($index), ["stop"])
495
546
  }, {
496
- default: withCtx(() => [..._cache[10] || (_cache[10] = [
547
+ default: withCtx(() => [..._cache[11] || (_cache[11] = [
497
548
  createTextVNode(" 删除 ", -1)
498
549
  ])]),
499
550
  _: 2
500
- }, 1032, ["onClick", "icon"])
551
+ }, 1032, ["icon", "onClick"])
501
552
  ]),
502
553
  _: 1
503
554
  })
@@ -509,27 +560,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
509
560
  ]),
510
561
  _: 1
511
562
  }, 8, ["modelValue"]),
512
- createVNode(_component_EPlusDialog, {
563
+ createVNode(_component_EPlusDialog, mergeProps({
513
564
  modelValue: showAddDialog.value,
514
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => showAddDialog.value = $event),
565
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => showAddDialog.value = $event),
515
566
  title: "添加标记",
516
567
  width: "350px",
517
568
  "show-modal": false,
518
- "append-to-body": "",
519
- cacheId: "marker-form"
520
- }, {
569
+ "append-to-body": ""
570
+ }, dialogProps.value), {
521
571
  footer: withCtx(() => [
522
572
  createVNode(_component_el_button, { onClick: cancelAddMarker }, {
523
- default: withCtx(() => [..._cache[11] || (_cache[11] = [
573
+ default: withCtx(() => [..._cache[12] || (_cache[12] = [
524
574
  createTextVNode("取消", -1)
525
575
  ])]),
526
576
  _: 1
527
577
  }),
528
578
  createVNode(_component_el_button, {
529
579
  type: "primary",
530
- onClick: confirmAddMarker
580
+ onClick: saveMarker
531
581
  }, {
532
- default: withCtx(() => [..._cache[12] || (_cache[12] = [
582
+ default: withCtx(() => [..._cache[13] || (_cache[13] = [
533
583
  createTextVNode("确定", -1)
534
584
  ])]),
535
585
  _: 1
@@ -556,11 +606,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
556
606
  ]),
557
607
  _: 1
558
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
+ }),
559
634
  createVNode(_component_el_form_item, { label: "备注" }, {
560
635
  default: withCtx(() => [
561
636
  createVNode(_component_el_input, {
562
637
  modelValue: markerForm.description,
563
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => markerForm.description = $event),
638
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => markerForm.description = $event),
564
639
  type: "textarea",
565
640
  rows: 3,
566
641
  placeholder: "请输入备注信息",
@@ -575,7 +650,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
575
650
  }, 8, ["model"])
576
651
  ]),
577
652
  _: 1
578
- }, 8, ["modelValue"])
653
+ }, 16, ["modelValue"])
579
654
  ], 64);
580
655
  };
581
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,
@@ -1119,7 +1119,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1119
1119
  "before-close": handleClose,
1120
1120
  "show-modal": false,
1121
1121
  "modal-class": ["pointer-events-none"],
1122
- cacheId: "region-dialog",
1122
+ "cache-id": "region-dialog",
1123
1123
  class: "region-dialog"
1124
1124
  }, {
1125
1125
  default: withCtx(() => [
@@ -1127,10 +1127,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1127
1127
  createVNode(_component_el_tabs, {
1128
1128
  modelValue: activeTab.value,
1129
1129
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => activeTab.value = $event),
1130
- onTabClick: handleTabClick,
1131
- onTabRemove: handleTabRemove,
1132
1130
  type: "card",
1133
- class: "region-tabs"
1131
+ class: "region-tabs",
1132
+ onTabClick: handleTabClick,
1133
+ onTabRemove: handleTabRemove
1134
1134
  }, {
1135
1135
  default: withCtx(() => [
1136
1136
  (openBlock(true), createElementBlock(Fragment, null, renderList(tabs.value, (tab, index) => {
@@ -1149,8 +1149,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1149
1149
  return openBlock(), createBlock(_component_el_button, {
1150
1150
  key: region.code,
1151
1151
  type: "text",
1152
- onClick: ($event) => navigateToRegion(region),
1153
- class: "region-btn"
1152
+ class: "region-btn",
1153
+ onClick: ($event) => navigateToRegion(region)
1154
1154
  }, {
1155
1155
  default: withCtx(() => [
1156
1156
  createTextVNode(toDisplayString(region.name), 1)
@@ -1167,8 +1167,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1167
1167
  return openBlock(), createBlock(_component_el_button, {
1168
1168
  key: region.code,
1169
1169
  type: "text",
1170
- onClick: ($event) => navigateToRegion(region),
1171
- class: "region-btn"
1170
+ class: "region-btn",
1171
+ onClick: ($event) => navigateToRegion(region)
1172
1172
  }, {
1173
1173
  default: withCtx(() => [
1174
1174
  createTextVNode(toDisplayString(region.name), 1)
@@ -1185,8 +1185,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1185
1185
  return openBlock(), createBlock(_component_el_button, {
1186
1186
  key: region.code,
1187
1187
  type: "text",
1188
- onClick: ($event) => navigateToRegion(region),
1189
- class: "region-btn"
1188
+ class: "region-btn",
1189
+ onClick: ($event) => navigateToRegion(region)
1190
1190
  }, {
1191
1191
  default: withCtx(() => [
1192
1192
  createTextVNode(toDisplayString(region.name), 1)
@@ -1203,8 +1203,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1203
1203
  return openBlock(), createBlock(_component_el_button, {
1204
1204
  key: region.code,
1205
1205
  type: "text",
1206
- onClick: ($event) => navigateToRegion(region),
1207
- class: "region-btn"
1206
+ class: "region-btn",
1207
+ onClick: ($event) => navigateToRegion(region)
1208
1208
  }, {
1209
1209
  default: withCtx(() => [
1210
1210
  createTextVNode(toDisplayString(region.name), 1)
@@ -1221,8 +1221,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1221
1221
  return openBlock(), createBlock(_component_el_button, {
1222
1222
  key: region.code,
1223
1223
  type: "text",
1224
- onClick: ($event) => navigateToRegion(region),
1225
- class: "region-btn"
1224
+ class: "region-btn",
1225
+ onClick: ($event) => navigateToRegion(region)
1226
1226
  }, {
1227
1227
  default: withCtx(() => [
1228
1228
  createTextVNode(toDisplayString(region.name), 1)
@@ -1239,8 +1239,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1239
1239
  return openBlock(), createBlock(_component_el_button, {
1240
1240
  key: region.code,
1241
1241
  type: "text",
1242
- onClick: ($event) => navigateToRegion(region),
1243
- class: "region-btn"
1242
+ class: "region-btn",
1243
+ onClick: ($event) => navigateToRegion(region)
1244
1244
  }, {
1245
1245
  default: withCtx(() => [
1246
1246
  createTextVNode(toDisplayString(region.name), 1)
@@ -1257,8 +1257,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1257
1257
  return openBlock(), createBlock(_component_el_button, {
1258
1258
  key: region.code,
1259
1259
  type: "text",
1260
- onClick: ($event) => navigateToRegion(region),
1261
- class: "region-btn"
1260
+ class: "region-btn",
1261
+ onClick: ($event) => navigateToRegion(region)
1262
1262
  }, {
1263
1263
  default: withCtx(() => [
1264
1264
  createTextVNode(toDisplayString(region.name), 1)
@@ -1275,8 +1275,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1275
1275
  return openBlock(), createBlock(_component_el_button, {
1276
1276
  key: region.code,
1277
1277
  type: "text",
1278
- onClick: ($event) => navigateToRegion(region),
1279
- class: "region-btn"
1278
+ class: "region-btn",
1279
+ onClick: ($event) => navigateToRegion(region)
1280
1280
  }, {
1281
1281
  default: withCtx(() => [
1282
1282
  createTextVNode(toDisplayString(region.name), 1)
@@ -1291,7 +1291,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1291
1291
  (openBlock(true), createElementBlock(Fragment, null, renderList(tab.districts, (district) => {
1292
1292
  return openBlock(), createBlock(_component_el_button, {
1293
1293
  key: district.code,
1294
- class: normalizeClass(["district-btn", { active: selectedDistrict.value === district.code }]),
1294
+ class: normalizeClass([
1295
+ "district-btn",
1296
+ { active: selectedDistrict.value === district.code }
1297
+ ]),
1295
1298
  onClick: ($event) => navigateToDistrict(district)
1296
1299
  }, {
1297
1300
  default: withCtx(() => [