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
package/lib/style.css CHANGED
@@ -118,7 +118,8 @@
118
118
  }
119
119
 
120
120
  .html-popup-content {
121
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
121
+ font-family:
122
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
122
123
  }
123
124
  .html-popup-title {
124
125
  font-size: 16px;
@@ -186,7 +187,7 @@
186
187
  background-color: #f5f5f5;
187
188
  padding: 2px 4px;
188
189
  border-radius: 3px;
189
- font-family: 'Monaco', 'Consolas', monospace;
190
+ font-family: "Monaco", "Consolas", monospace;
190
191
  font-size: 12px;
191
192
  }
192
193
  .html-popup-body :deep(pre) {
@@ -194,7 +195,7 @@
194
195
  padding: 12px;
195
196
  border-radius: 4px;
196
197
  overflow-x: auto;
197
- font-family: 'Monaco', 'Consolas', monospace;
198
+ font-family: "Monaco", "Consolas", monospace;
198
199
  font-size: 12px;
199
200
  }
200
201
  .html-popup-body :deep(blockquote) {
@@ -206,7 +207,8 @@
206
207
  }
207
208
 
208
209
  .image-popup-content {
209
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
210
+ font-family:
211
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
210
212
  }
211
213
  .image-popup-title {
212
214
  font-size: 16px;
@@ -265,9 +267,11 @@
265
267
  margin-bottom: 8px;
266
268
  }
267
269
  @keyframes spin {
268
- 0% { transform: rotate(0deg);
270
+ 0% {
271
+ transform: rotate(0deg);
269
272
  }
270
- 100% { transform: rotate(360deg);
273
+ 100% {
274
+ transform: rotate(360deg);
271
275
  }
272
276
  }
273
277
  .image-navigation {
@@ -402,7 +406,8 @@
402
406
  }
403
407
 
404
408
  .array-popup-content {
405
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
409
+ font-family:
410
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
406
411
  max-width: 600px;
407
412
  }
408
413
  .array-popup-title {
@@ -669,26 +674,24 @@
669
674
  font-size: 14px;
670
675
  }
671
676
 
672
- .map-info-panel {
673
- position: absolute;
674
- gap: 12px;
675
- bottom: 0px;
676
- left: 0px;
677
- width: 100%;
678
- background-color: rgba(0, 0, 0, 0.1);
679
- padding: 2px 0px;
680
- text-align: center;
677
+ .map-info-panel {
678
+ position: absolute;
679
+ gap: 12px;
680
+ bottom: 0px;
681
+ left: 0px;
682
+ width: 100%;
683
+ background-color: rgba(0, 0, 0, 0.1);
684
+ padding: 2px 0px;
685
+ text-align: center;
681
686
  backdrop-filter: blur(4px);
682
- }
683
-
684
-
685
- .map-toolbar[data-v-b8c938a3] {
687
+ }
688
+ .map-toolbar[data-v-80958d6e] {
686
689
  position: absolute;
687
690
  top: 20px;
688
691
  right: 1%;
689
692
  z-index: 100;
690
693
  }
691
- .map-toolbar[data-v-b8c938a3]:hover {
694
+ .map-toolbar[data-v-80958d6e]:hover {
692
695
  box-shadow: var(--el-box-shadow);
693
696
  border-color: var(--el-border-color-hover);
694
697
  }.map-search-container {
@@ -875,12 +878,11 @@ to {
875
878
  .position-bottom-right {
876
879
  bottom: 5px;
877
880
  }
878
- }.control-group[data-v-2fc6cae7] {
881
+ }.control-bar[data-v-4a20acde] {
879
882
  display: flex;
880
883
  align-items: center;
881
- gap: 8px;
882
- /* re-enable interactions inside the controls container */
883
- pointer-events: auto;
884
+ gap: 0;
885
+ pointer-events: auto; /* Ensure interactions are enabled */
884
886
  background-color: var(--el-bg-color-overlay);
885
887
  backdrop-filter: blur(4px);
886
888
  padding: 4px;
@@ -889,38 +891,66 @@ to {
889
891
  border: 1px solid var(--el-border-color-light);
890
892
  transition: all 0.3s ease;
891
893
  }
892
- .control-group[data-v-2fc6cae7]:hover {
894
+ .control-bar[data-v-4a20acde]:hover {
893
895
  box-shadow: var(--el-box-shadow);
894
896
  border-color: var(--el-border-color-hover);
895
897
  }
896
-
897
- /* when direction becomes column, keep spacing vertical */
898
- .control-group.flex-col[data-v-2fc6cae7] {
898
+ .control-bar.flex-col[data-v-4a20acde] {
899
899
  flex-direction: column;
900
- align-items: center; /* Center items in vertical mode */
901
- gap: 8px;
902
- padding: 6px 4px;
900
+ width: fit-content;
901
+ }
902
+ .control-bar.flex-row[data-v-4a20acde] {
903
+ flex-direction: row;
904
+ height: fit-content;
905
+ }
906
+ .control-section[data-v-4a20acde] {
907
+ display: flex;
908
+ align-items: center;
909
+ justify-content: center;
910
+ gap: 4px;
911
+ /* Inherit direction from parent implicitly via flex layout */
912
+ }
913
+ .flex-col .control-section[data-v-4a20acde] {
914
+ flex-direction: column;
915
+ width: 100%;
916
+ }
917
+ .flex-row .control-section[data-v-4a20acde] {
918
+ flex-direction: row;
919
+ height: 100%;
920
+ }
921
+ .control-divider[data-v-4a20acde] {
922
+ background-color: var(--el-border-color-light);
923
+ }
924
+ .flex-col .control-divider[data-v-4a20acde] {
925
+ width: 80%;
926
+ height: 1px;
927
+ margin: 4px 0;
928
+ }
929
+ .flex-row .control-divider[data-v-4a20acde] {
930
+ width: 1px;
931
+ height: 16px; /* Explicit height for horizontal mode */
932
+ margin: 0 4px;
903
933
  }
904
934
 
905
935
  /* ensure buttons themselves are interactive */
906
- .control-btn[data-v-2fc6cae7] {
936
+ .control-btn[data-v-4a20acde] {
907
937
  pointer-events: auto;
908
938
  margin: 0 !important; /* Ensure no margin interferes */
909
939
  transition: transform 0.1s;
910
940
  }
911
- .control-btn[data-v-2fc6cae7]:active {
941
+ .control-btn[data-v-4a20acde]:active {
912
942
  transform: scale(0.95);
913
943
  }
914
944
 
915
945
  /* reset Element Plus button default adjacent margin and use our gap instead */
916
- [data-v-2fc6cae7] .el-button + .el-button {
946
+ [data-v-4a20acde] .el-button + .el-button {
917
947
  margin-left: 0 !important;
918
948
  }
919
949
 
920
950
  /* make sure all EP interactive widgets are clickable */
921
- [data-v-2fc6cae7] .el-button,[data-v-2fc6cae7] .el-slider,[data-v-2fc6cae7] .el-icon {
951
+ [data-v-4a20acde] .el-button,[data-v-4a20acde] .el-slider,[data-v-4a20acde] .el-icon {
922
952
  pointer-events: auto;
923
- }.ol-legend-panel[data-v-b1b6d5ed] {
953
+ }.ol-legend-panel[data-v-ef59840c] {
924
954
  position: absolute;
925
955
  z-index: 1000;
926
956
  display: flex;
@@ -932,19 +962,19 @@ to {
932
962
  box-shadow: var(--el-box-shadow-light);
933
963
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.5, 1);
934
964
  }
935
- .ol-legend-panel.is-collapsed[data-v-b1b6d5ed] {
965
+ .ol-legend-panel.is-collapsed[data-v-ef59840c] {
936
966
  width: auto !important;
937
967
  height: 40px;
938
968
  max-height: 40px;
939
969
  }
940
- .ol-legend-panel.is-collapsed .ol-legend-body[data-v-b1b6d5ed] {
970
+ .ol-legend-panel.is-collapsed .ol-legend-body[data-v-ef59840c] {
941
971
  opacity: 0;
942
972
  pointer-events: none;
943
973
  }
944
- .ol-legend-panel.is-collapsed .header-title[data-v-b1b6d5ed] {
974
+ .ol-legend-panel.is-collapsed .header-title[data-v-ef59840c] {
945
975
  display: none;
946
976
  }
947
- .ol-legend-header[data-v-b1b6d5ed] {
977
+ .ol-legend-header[data-v-ef59840c] {
948
978
  display: flex;
949
979
  align-items: center;
950
980
  justify-content: space-between;
@@ -954,37 +984,37 @@ to {
954
984
  border-bottom: 1px solid var(--el-border-color-lighter);
955
985
  flex-shrink: 0;
956
986
  }
957
- .ol-legend-header .header-title[data-v-b1b6d5ed] {
987
+ .ol-legend-header .header-title[data-v-ef59840c] {
958
988
  font-size: 14px;
959
989
  font-weight: 600;
960
990
  color: var(--el-text-color-primary);
961
991
  }
962
- .ol-legend-header .action-icon[data-v-b1b6d5ed] {
992
+ .ol-legend-header .action-icon[data-v-ef59840c] {
963
993
  cursor: pointer;
964
994
  color: var(--el-text-color-secondary);
965
995
  transition: color 0.2s;
966
996
  }
967
- .ol-legend-header .action-icon[data-v-b1b6d5ed]:hover {
997
+ .ol-legend-header .action-icon[data-v-ef59840c]:hover {
968
998
  color: var(--el-color-primary);
969
999
  }
970
- .ol-legend-body[data-v-b1b6d5ed] {
1000
+ .ol-legend-body[data-v-ef59840c] {
971
1001
  flex: 1;
972
1002
  overflow-y: auto;
973
1003
  background-color: transparent;
974
1004
  padding: 8px 0;
975
1005
  /* 自定义滚动条 */
976
1006
  }
977
- .ol-legend-body[data-v-b1b6d5ed]::-webkit-scrollbar {
1007
+ .ol-legend-body[data-v-ef59840c]::-webkit-scrollbar {
978
1008
  width: 6px;
979
1009
  }
980
- .ol-legend-body[data-v-b1b6d5ed]::-webkit-scrollbar-thumb {
1010
+ .ol-legend-body[data-v-ef59840c]::-webkit-scrollbar-thumb {
981
1011
  background: var(--el-border-color-lighter);
982
1012
  border-radius: 3px;
983
1013
  }
984
- .legend-collapse[data-v-b1b6d5ed] {
1014
+ .legend-collapse[data-v-ef59840c] {
985
1015
  border: none;
986
1016
  }
987
- .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__header {
1017
+ .legend-collapse[data-v-ef59840c] .el-collapse-item__header {
988
1018
  box-sizing: border-box;
989
1019
  height: 36px;
990
1020
  line-height: 36px;
@@ -994,77 +1024,77 @@ to {
994
1024
  background-color: transparent;
995
1025
  border-bottom-color: var(--el-border-color-lighter);
996
1026
  }
997
- .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__header.is-active {
1027
+ .legend-collapse[data-v-ef59840c] .el-collapse-item__header.is-active {
998
1028
  color: var(--el-text-color-primary);
999
1029
  font-weight: 500;
1000
1030
  }
1001
- .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__wrap {
1031
+ .legend-collapse[data-v-ef59840c] .el-collapse-item__wrap {
1002
1032
  background-color: transparent;
1003
1033
  border-bottom: none;
1004
1034
  }
1005
- .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__content {
1035
+ .legend-collapse[data-v-ef59840c] .el-collapse-item__content {
1006
1036
  padding: 8px 12px;
1007
1037
  padding-bottom: 12px;
1008
1038
  }
1009
- .layer-title[data-v-b1b6d5ed] {
1039
+ .layer-title[data-v-ef59840c] {
1010
1040
  display: inline-block;
1011
1041
  max-width: 180px;
1012
1042
  overflow: hidden;
1013
1043
  text-overflow: ellipsis;
1014
1044
  white-space: nowrap;
1015
1045
  }
1016
- .legend-row[data-v-b1b6d5ed] {
1046
+ .legend-row[data-v-ef59840c] {
1017
1047
  display: flex;
1018
1048
  align-items: center;
1019
1049
  margin-bottom: 6px;
1020
1050
  }
1021
- .legend-row[data-v-b1b6d5ed]:last-child {
1051
+ .legend-row[data-v-ef59840c]:last-child {
1022
1052
  margin-bottom: 0;
1023
1053
  }
1024
- .legend-row .legend-icon[data-v-b1b6d5ed] {
1054
+ .legend-row .legend-icon[data-v-ef59840c] {
1025
1055
  margin-right: 8px;
1026
1056
  display: flex;
1027
1057
  align-items: center;
1028
1058
  justify-content: center;
1029
1059
  }
1030
- .legend-row .legend-icon .icon-img[data-v-b1b6d5ed] {
1060
+ .legend-row .legend-icon .icon-img[data-v-ef59840c] {
1031
1061
  width: 100%;
1032
1062
  height: 100%;
1033
1063
  object-fit: contain;
1034
1064
  }
1035
- .legend-row .legend-icon .symbol-shape[data-v-b1b6d5ed] {
1065
+ .legend-row .legend-icon .symbol-shape[data-v-ef59840c] {
1036
1066
  /* style injected by js */
1037
1067
  }
1038
- .legend-row .legend-label[data-v-b1b6d5ed] {
1068
+ .legend-row .legend-label[data-v-ef59840c] {
1039
1069
  font-size: 12px;
1040
1070
  color: var(--el-text-color-primary);
1041
1071
  line-height: 1.4;
1042
1072
  }
1043
- .legend-gradient-box .gradient-bar[data-v-b1b6d5ed] {
1073
+ .legend-gradient-box .gradient-bar[data-v-ef59840c] {
1044
1074
  height: 12px;
1045
1075
  border-radius: 2px;
1046
1076
  margin-bottom: 4px;
1047
1077
  border: 1px solid var(--el-border-color-lighter);
1048
1078
  }
1049
- .legend-gradient-box .gradient-labels[data-v-b1b6d5ed] {
1079
+ .legend-gradient-box .gradient-labels[data-v-ef59840c] {
1050
1080
  display: flex;
1051
1081
  justify-content: space-between;
1052
1082
  font-size: 11px;
1053
1083
  color: var(--el-text-color-secondary);
1054
1084
  }
1055
- .legend-gradient-box .gradient-unit[data-v-b1b6d5ed] {
1085
+ .legend-gradient-box .gradient-unit[data-v-ef59840c] {
1056
1086
  text-align: center;
1057
1087
  font-size: 11px;
1058
1088
  color: var(--el-text-color-secondary);
1059
1089
  margin-top: 2px;
1060
1090
  }
1061
- .legend-desc[data-v-b1b6d5ed] {
1091
+ .legend-desc[data-v-ef59840c] {
1062
1092
  margin-top: 6px;
1063
1093
  font-size: 11px;
1064
1094
  color: var(--el-text-color-secondary);
1065
1095
  line-height: 1.4;
1066
1096
  }
1067
- .empty-state[data-v-b1b6d5ed] {
1097
+ .empty-state[data-v-ef59840c] {
1068
1098
  padding: 20px 0;
1069
1099
  }
1070
1100
  .filter-panel {
@@ -1223,278 +1253,277 @@ label {
1223
1253
  }
1224
1254
  .resize-handle{-webkit-user-select:none;user-select:none}.custom-dialog-actions{display:flex;align-items:center}.custom-dialog-header{display:flex;justify-content:space-between;align-items:center;width:100%}.custom-dialog-actions .custom-header-btn{position:static;margin-left:10px;font-size:16px;width:20px;height:20px;line-height:1;border:none;background:transparent;cursor:pointer;padding:0;color:var(--el-color-info)}.custom-dialog-actions .custom-header-btn:hover{color:var(--el-color-primary)}.custom-dialog-actions .custom-header-btn svg{width:100%;height:100%;vertical-align:middle}.e-plus-resize-dialog{display:flex;flex-direction:column;max-height:85vh;overflow:hidden;margin-bottom:0}.e-plus-resize-dialog.is-fullscreen{max-height:100vh;height:100vh!important;margin:0!important}.e-plus-resize-dialog .el-dialog__header,.e-plus-resize-dialog .el-dialog__footer{flex-shrink:0}.e-plus-resize-dialog .el-dialog__body{flex:1;overflow:auto;min-height:0}.e-plus-modal-hidden-overlay,.e-plus-modal-hidden-overlay .el-overlay-dialog{pointer-events:none!important}.e-plus-resize-dialog.is-modal-hidden{pointer-events:auto!important}
1225
1255
 
1226
- .layer-dialog {
1227
-
1256
+ .layer-dialog {
1228
1257
  /* 全局样式面板样式 */
1229
- .global-style-panel {
1230
- padding: 16px;
1231
- border-bottom: 1px solid var(--el-border-color-light);
1258
+ .global-style-panel {
1259
+ padding: 16px;
1260
+ border-bottom: 1px solid var(--el-border-color-light);
1232
1261
  background-color: var(--el-fill-color-light);
1233
- .panel-title {
1234
- margin: 0 0 16px 0;
1235
- font-size: 14px;
1236
- font-weight: 600;
1237
- color: var(--el-text-color-primary);
1238
- border-bottom: 1px solid var(--el-border-color-light);
1262
+ .panel-title {
1263
+ margin: 0 0 16px 0;
1264
+ font-size: 14px;
1265
+ font-weight: 600;
1266
+ color: var(--el-text-color-primary);
1267
+ border-bottom: 1px solid var(--el-border-color-light);
1239
1268
  padding-bottom: 8px;
1240
1269
  }
1241
- .config-section {
1270
+ .config-section {
1242
1271
  margin-bottom: 16px;
1243
- h5 {
1244
- margin: 0 0 12px 0;
1245
- font-size: 13px;
1246
- font-weight: 500;
1272
+ h5 {
1273
+ margin: 0 0 12px 0;
1274
+ font-size: 13px;
1275
+ font-weight: 500;
1247
1276
  color: var(--el-text-color-regular);
1248
1277
  }
1249
- .config-item {
1250
- display: flex;
1251
- align-items: center;
1252
- margin-bottom: 12px;
1278
+ .config-item {
1279
+ display: flex;
1280
+ align-items: center;
1281
+ margin-bottom: 12px;
1253
1282
  gap: 8px;
1254
- label {
1255
- flex: 0 0 60px;
1256
- font-size: 12px;
1283
+ label {
1284
+ flex: 0 0 60px;
1285
+ font-size: 12px;
1257
1286
  color: var(--el-text-color-regular);
1258
1287
  }
1259
- .el-slider {
1260
- flex: 1;
1288
+ .el-slider {
1289
+ flex: 1;
1261
1290
  margin: 0 8px;
1262
1291
  }
1263
- .value-text {
1264
- flex: 0 0 45px;
1265
- font-size: 12px;
1266
- color: var(--el-text-color-secondary);
1292
+ .value-text {
1293
+ flex: 0 0 45px;
1294
+ font-size: 12px;
1295
+ color: var(--el-text-color-secondary);
1267
1296
  text-align: right;
1268
1297
  }
1269
1298
  }
1270
- .preset-buttons {
1271
- display: flex;
1272
- gap: 6px;
1299
+ .preset-buttons {
1300
+ display: flex;
1301
+ gap: 6px;
1273
1302
  flex-wrap: wrap;
1274
- .el-button {
1275
- flex: 1;
1303
+ .el-button {
1304
+ flex: 1;
1276
1305
  min-width: 60px;
1277
1306
  }
1278
1307
  }
1279
1308
  }
1280
- .panel-actions {
1281
- margin-top: 16px;
1282
- padding-top: 12px;
1283
- border-top: 1px solid var(--el-border-color-light);
1309
+ .panel-actions {
1310
+ margin-top: 16px;
1311
+ padding-top: 12px;
1312
+ border-top: 1px solid var(--el-border-color-light);
1284
1313
  text-align: center;
1285
1314
  }
1286
- .custom-css-input {
1287
- font-family: "Courier New", monospace;
1288
- font-size: 12px;
1315
+ .custom-css-input {
1316
+ font-family: "Courier New", monospace;
1317
+ font-size: 12px;
1289
1318
  line-height: 1.4;
1290
1319
  }
1291
- .custom-css-input :deep(.el-textarea__inner) {
1292
- font-family: "Courier New", monospace;
1293
- font-size: 12px;
1294
- line-height: 1.4;
1295
- background-color: var(--el-bg-color-overlay);
1320
+ .custom-css-input :deep(.el-textarea__inner) {
1321
+ font-family: "Courier New", monospace;
1322
+ font-size: 12px;
1323
+ line-height: 1.4;
1324
+ background-color: var(--el-bg-color-overlay);
1296
1325
  border: 1px solid var(--el-border-color-light);
1297
1326
  }
1298
1327
  .style-tabs {
1299
- :deep(.el-tabs__header) {
1328
+ :deep(.el-tabs__header) {
1300
1329
  margin: 0 0 16px 0;
1301
1330
  }
1302
- :deep(.el-tabs__nav-wrap) {
1331
+ :deep(.el-tabs__nav-wrap) {
1303
1332
  padding: 0;
1304
1333
  }
1305
- :deep(.el-tabs__item) {
1306
- font-size: 12px;
1307
- padding: 0 16px;
1308
- height: 32px;
1334
+ :deep(.el-tabs__item) {
1335
+ font-size: 12px;
1336
+ padding: 0 16px;
1337
+ height: 32px;
1309
1338
  line-height: 32px;
1310
1339
  }
1311
- :deep(.el-tabs__content) {
1340
+ :deep(.el-tabs__content) {
1312
1341
  padding: 0;
1313
1342
  }
1314
1343
  }
1315
- .current-style-display {
1316
- margin-top: 16px;
1317
- padding: 12px;
1318
- background-color: var(--el-fill-color-light);
1319
- border-radius: 4px;
1344
+ .current-style-display {
1345
+ margin-top: 16px;
1346
+ padding: 12px;
1347
+ background-color: var(--el-fill-color-light);
1348
+ border-radius: 4px;
1320
1349
  border: 1px solid var(--el-border-color-light);
1321
- h6 {
1322
- margin: 0 0 8px 0;
1323
- font-size: 12px;
1324
- font-weight: 500;
1350
+ h6 {
1351
+ margin: 0 0 8px 0;
1352
+ font-size: 12px;
1353
+ font-weight: 500;
1325
1354
  color: var(--el-text-color-regular);
1326
1355
  }
1327
- .style-preview {
1328
- font-family: "Courier New", monospace;
1329
- font-size: 11px;
1330
- line-height: 1.4;
1331
- color: var(--el-text-color-primary);
1332
- background-color: var(--el-bg-color-overlay);
1333
- padding: 8px;
1334
- border-radius: 3px;
1335
- border: 1px solid var(--el-border-color-light);
1336
- word-break: break-all;
1337
- white-space: pre-wrap;
1338
- max-height: 120px;
1356
+ .style-preview {
1357
+ font-family: "Courier New", monospace;
1358
+ font-size: 11px;
1359
+ line-height: 1.4;
1360
+ color: var(--el-text-color-primary);
1361
+ background-color: var(--el-bg-color-overlay);
1362
+ padding: 8px;
1363
+ border-radius: 3px;
1364
+ border: 1px solid var(--el-border-color-light);
1365
+ word-break: break-all;
1366
+ white-space: pre-wrap;
1367
+ max-height: 120px;
1339
1368
  overflow-y: auto;
1340
1369
  }
1341
1370
  }
1342
- }
1343
-
1371
+ }
1372
+
1344
1373
  /* 主标签页样式 */
1345
- .main-tabs {
1346
- height: 100%;
1347
- display: flex;
1374
+ .main-tabs {
1375
+ height: 100%;
1376
+ display: flex;
1348
1377
  flex-direction: column;
1349
1378
  }
1350
- .main-tabs .el-tabs__content {
1351
- flex: 1;
1352
- overflow: hidden;
1379
+ .main-tabs .el-tabs__content {
1380
+ flex: 1;
1381
+ overflow: hidden;
1353
1382
  padding: 0;
1354
1383
  }
1355
- .main-tabs .el-tab-pane {
1356
- height: 100%;
1357
- overflow: auto;
1358
- display: flex;
1384
+ .main-tabs .el-tab-pane {
1385
+ height: 100%;
1386
+ overflow: auto;
1387
+ display: flex;
1359
1388
  flex-direction: column;
1360
1389
  }
1361
1390
  .layer-tree {
1362
- .tree-node-content {
1391
+ .tree-node-content {
1363
1392
  width: 100%;
1364
- .group-node {
1365
- display: flex;
1366
- align-items: center;
1393
+ .group-node {
1394
+ display: flex;
1395
+ align-items: center;
1367
1396
  padding: 8px 0;
1368
1397
  }
1369
- .layer-item {
1370
- display: flex;
1371
- align-items: center;
1372
- justify-content: space-between;
1373
- width: 100%;
1398
+ .layer-item {
1399
+ display: flex;
1400
+ align-items: center;
1401
+ justify-content: space-between;
1402
+ width: 100%;
1374
1403
  padding: 6px 0;
1375
- .layer-info {
1376
- display: flex;
1377
- align-items: center;
1378
- flex: 1;
1404
+ .layer-info {
1405
+ display: flex;
1406
+ align-items: center;
1407
+ flex: 1;
1379
1408
  min-width: 0;
1380
- .layer-icon {
1381
- margin-right: 8px;
1409
+ .layer-icon {
1410
+ margin-right: 8px;
1382
1411
  flex-shrink: 0;
1383
1412
  }
1384
- .layer-name {
1385
- font-size: 14px;
1386
- color: var(--el-text-color-primary);
1387
- white-space: nowrap;
1388
- overflow: hidden;
1413
+ .layer-name {
1414
+ font-size: 14px;
1415
+ color: var(--el-text-color-primary);
1416
+ white-space: nowrap;
1417
+ overflow: hidden;
1389
1418
  text-overflow: ellipsis;
1390
1419
  }
1391
1420
  }
1392
- .layer-controls {
1393
- display: flex;
1394
- align-items: center;
1421
+ .layer-controls {
1422
+ display: flex;
1423
+ align-items: center;
1395
1424
  gap: 8px;
1396
- .opacity-control {
1397
- display: flex;
1398
- align-items: center;
1399
- gap: 8px;
1425
+ .opacity-control {
1426
+ display: flex;
1427
+ align-items: center;
1428
+ gap: 8px;
1400
1429
  min-width: 120px;
1401
- .opacity-slider {
1402
- flex: 1;
1430
+ .opacity-slider {
1431
+ flex: 1;
1403
1432
  min-width: 80px;
1404
1433
  }
1405
- .opacity-value {
1406
- font-size: 12px;
1407
- color: var(--el-text-color-regular);
1408
- min-width: 35px;
1409
- text-align: right;
1434
+ .opacity-value {
1435
+ font-size: 12px;
1436
+ color: var(--el-text-color-regular);
1437
+ min-width: 35px;
1438
+ text-align: right;
1410
1439
  white-space: nowrap;
1411
1440
  }
1412
1441
  }
1413
- .style-config-btn {
1414
- width: 24px;
1415
- height: 24px;
1416
- padding: 0;
1442
+ .style-config-btn {
1443
+ width: 24px;
1444
+ height: 24px;
1445
+ padding: 0;
1417
1446
  margin-left: 4px;
1418
1447
  }
1419
1448
  }
1420
1449
  }
1421
1450
  }
1422
1451
  }
1423
- }
1424
-
1452
+ }
1453
+
1425
1454
  /* 样式配置面板样式 */
1426
1455
  :deep(.layer-style-popover) {
1427
- .style-config-panel {
1456
+ .style-config-panel {
1428
1457
  padding: 0;
1429
- .panel-title {
1430
- margin: 0 0 16px 0;
1431
- font-size: 14px;
1432
- font-weight: 600;
1433
- color: var(--el-text-color-primary);
1434
- border-bottom: 1px solid var(--el-border-color-light);
1458
+ .panel-title {
1459
+ margin: 0 0 16px 0;
1460
+ font-size: 14px;
1461
+ font-weight: 600;
1462
+ color: var(--el-text-color-primary);
1463
+ border-bottom: 1px solid var(--el-border-color-light);
1435
1464
  padding-bottom: 8px;
1436
1465
  }
1437
- .config-section {
1466
+ .config-section {
1438
1467
  margin-bottom: 16px;
1439
- h5 {
1440
- margin: 0 0 12px 0;
1441
- font-size: 13px;
1442
- font-weight: 500;
1468
+ h5 {
1469
+ margin: 0 0 12px 0;
1470
+ font-size: 13px;
1471
+ font-weight: 500;
1443
1472
  color: var(--el-text-color-regular);
1444
1473
  }
1445
- .config-item {
1446
- display: flex;
1447
- align-items: center;
1448
- margin-bottom: 12px;
1474
+ .config-item {
1475
+ display: flex;
1476
+ align-items: center;
1477
+ margin-bottom: 12px;
1449
1478
  gap: 8px;
1450
- label {
1451
- flex: 0 0 60px;
1452
- font-size: 12px;
1479
+ label {
1480
+ flex: 0 0 60px;
1481
+ font-size: 12px;
1453
1482
  color: var(--el-text-color-regular);
1454
1483
  }
1455
- .el-slider {
1456
- flex: 1;
1484
+ .el-slider {
1485
+ flex: 1;
1457
1486
  margin: 0 8px;
1458
1487
  }
1459
- .value-text {
1460
- flex: 0 0 45px;
1461
- font-size: 12px;
1462
- color: var(--el-text-color-secondary);
1488
+ .value-text {
1489
+ flex: 0 0 45px;
1490
+ font-size: 12px;
1491
+ color: var(--el-text-color-secondary);
1463
1492
  text-align: right;
1464
1493
  }
1465
1494
  }
1466
- .preset-buttons {
1467
- display: flex;
1468
- gap: 6px;
1495
+ .preset-buttons {
1496
+ display: flex;
1497
+ gap: 6px;
1469
1498
  flex-wrap: wrap;
1470
- .el-button {
1471
- flex: 1;
1499
+ .el-button {
1500
+ flex: 1;
1472
1501
  min-width: 60px;
1473
1502
  }
1474
1503
  }
1475
1504
  }
1476
- .panel-actions {
1477
- margin-top: 16px;
1478
- padding-top: 12px;
1479
- border-top: 1px solid var(--el-border-color-light);
1505
+ .panel-actions {
1506
+ margin-top: 16px;
1507
+ padding-top: 12px;
1508
+ border-top: 1px solid var(--el-border-color-light);
1480
1509
  text-align: center;
1481
1510
  }
1482
- .custom-css-input {
1483
- font-family: "Courier New", monospace;
1484
- font-size: 12px;
1511
+ .custom-css-input {
1512
+ font-family: "Courier New", monospace;
1513
+ font-size: 12px;
1485
1514
  line-height: 1.4;
1486
1515
  }
1487
- .custom-css-input :deep(.el-textarea__inner) {
1488
- font-family: "Courier New", monospace;
1489
- font-size: 12px;
1490
- line-height: 1.4;
1491
- background-color: var(--el-fill-color-light);
1516
+ .custom-css-input :deep(.el-textarea__inner) {
1517
+ font-family: "Courier New", monospace;
1518
+ font-size: 12px;
1519
+ line-height: 1.4;
1520
+ background-color: var(--el-fill-color-light);
1492
1521
  border: 1px solid var(--el-border-color-light);
1493
1522
  }
1494
1523
  }
1495
- }
1524
+ }
1496
1525
 
1497
- .ol-base-layer-switcher[data-v-6a7660a8] {
1526
+ .ol-base-layer-switcher[data-v-83257bd9] {
1498
1527
  position: absolute;
1499
1528
  bottom: 20px;
1500
1529
  right: 20px;
@@ -1513,7 +1542,7 @@ label {
1513
1542
  }
1514
1543
 
1515
1544
  /* 列表面板 */
1516
- .layer-panel[data-v-6a7660a8] {
1545
+ .layer-panel[data-v-83257bd9] {
1517
1546
  display: flex;
1518
1547
  gap: 10px;
1519
1548
  height: 100%;
@@ -1522,7 +1551,7 @@ label {
1522
1551
  }
1523
1552
 
1524
1553
  /* 收起状态的触发器 */
1525
- .layer-trigger[data-v-6a7660a8] {
1554
+ .layer-trigger[data-v-83257bd9] {
1526
1555
  position: absolute;
1527
1556
  right: 5px;
1528
1557
  top: 5px;
@@ -1533,13 +1562,14 @@ label {
1533
1562
  z-index: 10;
1534
1563
  background: #fff; /* 遮挡下面的列表 */
1535
1564
  }
1536
- .layer-trigger.is-hidden[data-v-6a7660a8] {
1565
+ .layer-trigger.is-hidden[data-v-83257bd9] {
1537
1566
  opacity: 0;
1538
1567
  pointer-events: none;
1539
1568
  }
1540
1569
 
1541
1570
  /* 通用图层项样式 */
1542
- .layer-item[data-v-6a7660a8], .current-layer-box[data-v-6a7660a8] {
1571
+ .layer-item[data-v-83257bd9],
1572
+ .current-layer-box[data-v-83257bd9] {
1543
1573
  width: 86px;
1544
1574
  height: 60px;
1545
1575
  border-radius: 2px;
@@ -1552,16 +1582,16 @@ label {
1552
1582
  transition: all 0.2s;
1553
1583
  overflow: hidden;
1554
1584
  }
1555
- .layer-item[data-v-6a7660a8]:hover {
1585
+ .layer-item[data-v-83257bd9]:hover {
1556
1586
  border-color: #409eff;
1557
1587
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
1558
1588
  }
1559
- .layer-item.active[data-v-6a7660a8] {
1589
+ .layer-item.active[data-v-83257bd9] {
1560
1590
  border: 2px solid #409eff;
1561
1591
  }
1562
1592
 
1563
1593
  /* 选中状态的蓝色边框和对勾 */
1564
- .active-border[data-v-6a7660a8] {
1594
+ .active-border[data-v-83257bd9] {
1565
1595
  position: absolute;
1566
1596
  top: 0;
1567
1597
  left: 0;
@@ -1572,7 +1602,7 @@ label {
1572
1602
  border-radius: 2px;
1573
1603
  pointer-events: none;
1574
1604
  }
1575
- .check-icon[data-v-6a7660a8] {
1605
+ .check-icon[data-v-83257bd9] {
1576
1606
  position: absolute;
1577
1607
  bottom: 0;
1578
1608
  right: 0;
@@ -1581,7 +1611,7 @@ label {
1581
1611
  border-bottom: 24px solid #409eff;
1582
1612
  border-left: 24px solid transparent;
1583
1613
  }
1584
- .check-icon svg[data-v-6a7660a8] {
1614
+ .check-icon svg[data-v-83257bd9] {
1585
1615
  position: absolute;
1586
1616
  right: -1px;
1587
1617
  bottom: -13px;
@@ -1589,7 +1619,7 @@ label {
1589
1619
  }
1590
1620
 
1591
1621
  /* 图层名称标签 */
1592
- .layer-name[data-v-6a7660a8] {
1622
+ .layer-name[data-v-83257bd9] {
1593
1623
  position: absolute;
1594
1624
  bottom: 0;
1595
1625
  left: 0;
@@ -1604,41 +1634,41 @@ label {
1604
1634
  text-overflow: ellipsis;
1605
1635
  box-sizing: border-box;
1606
1636
  }
1607
- .layer-item:hover .layer-name[data-v-6a7660a8] {
1637
+ .layer-item:hover .layer-name[data-v-83257bd9] {
1608
1638
  background: rgba(0, 0, 0, 0.7);
1609
1639
  }
1610
-
1640
+
1611
1641
  /* 地图预览容器样式 */
1612
- .map-preview-container > div {
1613
- width: 100% !important;
1642
+ .map-preview-container > div {
1643
+ width: 100% !important;
1614
1644
  height: 100% !important;
1615
- }
1616
-
1645
+ }
1646
+
1617
1647
  /* 预览页面缩放变换 */
1618
- .preview-page {
1648
+ .preview-page {
1619
1649
  transform-origin: top center;
1620
- }
1621
-
1650
+ }
1651
+
1622
1652
  /* 确保地图容器有明确的尺寸 */
1623
- #map-preview-container {
1624
- width: 100% !important;
1625
- height: 400px !important;
1626
- min-height: 400px !important;
1653
+ #map-preview-container {
1654
+ width: 100% !important;
1655
+ height: 400px !important;
1656
+ min-height: 400px !important;
1627
1657
  position: relative !important;
1628
- }
1629
-
1658
+ }
1659
+
1630
1660
  /* OpenLayers地图容器样式 */
1631
- #map-preview-container .ol-viewport {
1632
- width: 100% !important;
1661
+ #map-preview-container .ol-viewport {
1662
+ width: 100% !important;
1633
1663
  height: 100% !important;
1634
- }
1635
-
1664
+ }
1665
+
1636
1666
  /* 确保Canvas元素正确显示 */
1637
- #map-preview-container canvas {
1638
- width: 100% !important;
1667
+ #map-preview-container canvas {
1668
+ width: 100% !important;
1639
1669
  height: 100% !important;
1640
- }
1641
- .context-menu[data-v-736d12b7] {
1670
+ }
1671
+ .context-menu[data-v-4eef8abb] {
1642
1672
  background: var(--el-bg-color-overlay);
1643
1673
  border: 1px solid var(--el-border-color-light);
1644
1674
  border-radius: var(--el-border-radius-base);
@@ -1647,7 +1677,7 @@ label {
1647
1677
  min-width: 140px;
1648
1678
  overflow: hidden;
1649
1679
  }
1650
- .context-menu .context-menu-item[data-v-736d12b7] {
1680
+ .context-menu .context-menu-item[data-v-4eef8abb] {
1651
1681
  display: flex;
1652
1682
  align-items: center;
1653
1683
  padding: 8px 16px;
@@ -1656,14 +1686,14 @@ label {
1656
1686
  color: var(--el-text-color-primary);
1657
1687
  transition: all 0.2s;
1658
1688
  }
1659
- .context-menu .context-menu-item[data-v-736d12b7]:hover {
1689
+ .context-menu .context-menu-item[data-v-4eef8abb]:hover {
1660
1690
  background-color: var(--el-fill-color-light);
1661
1691
  color: var(--el-color-primary);
1662
1692
  }
1663
- .context-menu .context-menu-item:hover .el-icon[data-v-736d12b7] {
1693
+ .context-menu .context-menu-item:hover .el-icon[data-v-4eef8abb] {
1664
1694
  color: var(--el-color-primary);
1665
1695
  }
1666
- .context-menu .context-menu-item .el-icon[data-v-736d12b7] {
1696
+ .context-menu .context-menu-item .el-icon[data-v-4eef8abb] {
1667
1697
  margin-right: 8px;
1668
1698
  font-size: 16px;
1669
1699
  color: var(--el-text-color-secondary);
@@ -2534,30 +2564,30 @@ to {
2534
2564
  /* 图例面板相关样式 */
2535
2565
  .legend-collapsed .panel-content {
2536
2566
  display: none;
2537
- }.measurement-content[data-v-97889a63] {
2567
+ }.measurement-content[data-v-88b16326] {
2538
2568
  background: var(--el-bg-color);
2539
2569
  border-radius: var(--el-border-radius-base);
2540
2570
  overflow: hidden;
2541
2571
  }
2542
- .measurement-header[data-v-97889a63] {
2572
+ .measurement-header[data-v-88b16326] {
2543
2573
  background: var(--el-bg-color-overlay);
2544
2574
  border-bottom: 1px solid var(--el-border-color-light);
2545
2575
  }
2546
- .measurement-result[data-v-97889a63] {
2576
+ .measurement-result[data-v-88b16326] {
2547
2577
  background: var(--el-fill-color-light);
2548
2578
  border-bottom: 1px solid var(--el-border-color-light);
2549
2579
  display: flex;
2550
2580
  align-items: center;
2551
2581
  justify-content: center;
2552
2582
  }
2553
- .result-value[data-v-97889a63] {
2583
+ .result-value[data-v-88b16326] {
2554
2584
  font-size: 42px;
2555
2585
  font-weight: 600;
2556
2586
  color: var(--el-color-primary);
2557
2587
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
2558
2588
  line-height: 1;
2559
2589
  }
2560
- .tool-grid[data-v-97889a63] {
2590
+ .tool-grid[data-v-88b16326] {
2561
2591
  display: grid;
2562
2592
  grid-template-columns: repeat(4, 1fr);
2563
2593
  column-gap: 18px;
@@ -2565,7 +2595,7 @@ to {
2565
2595
  justify-items: center;
2566
2596
  align-items: start;
2567
2597
  }
2568
- .tool-item[data-v-97889a63] {
2598
+ .tool-item[data-v-88b16326] {
2569
2599
  position: relative;
2570
2600
  display: flex;
2571
2601
  flex-direction: column;
@@ -2574,7 +2604,7 @@ to {
2574
2604
  user-select: none;
2575
2605
  transition: transform 0.2s ease;
2576
2606
  }
2577
- .tool-icon[data-v-97889a63] {
2607
+ .tool-icon[data-v-88b16326] {
2578
2608
  width: 28px;
2579
2609
  height: 28px;
2580
2610
  padding: 14px;
@@ -2585,204 +2615,215 @@ to {
2585
2615
  transition: all 0.2s ease;
2586
2616
  margin-bottom: 10px;
2587
2617
  }
2588
- .tool-item:hover .tool-icon[data-v-97889a63],
2589
- .tool-item.active .tool-icon[data-v-97889a63] {
2618
+ .tool-item:hover .tool-icon[data-v-88b16326],
2619
+ .tool-item.active .tool-icon[data-v-88b16326] {
2590
2620
  transform: translateY(-2px);
2591
2621
  box-shadow: var(--el-box-shadow-light);
2592
2622
  border-color: var(--el-color-primary-light-5);
2593
2623
  background-color: var(--el-color-primary-light-9);
2594
2624
  }
2595
- .tool-label[data-v-97889a63] {
2625
+ .tool-label[data-v-88b16326] {
2596
2626
  font-size: 14px;
2597
2627
  line-height: 1.2;
2598
2628
  color: var(--el-text-color-regular);
2599
2629
  font-weight: 500;
2600
2630
  white-space: nowrap;
2601
2631
  }
2602
- .dialog-footer[data-v-97889a63] {
2632
+ .dialog-footer[data-v-88b16326] {
2603
2633
  display: none;
2604
- }
2634
+ }
2605
2635
  /* 底图对话框样式 */
2606
- .basemap-dialog[data-v-941dac43] {
2636
+ .basemap-dialog[data-v-60bca8a2] {
2607
2637
  /* CustomDialog 会处理右侧滑入动画 */
2608
- }
2609
-
2638
+ }
2639
+
2610
2640
  /* 底图内容容器 */
2611
- .basemap-content[data-v-941dac43] {
2612
- padding: 8px;
2613
- height: 100%;
2614
- overflow: visible;
2641
+ .basemap-content[data-v-60bca8a2] {
2642
+ padding: 8px;
2643
+ height: 100%;
2644
+ overflow: visible;
2615
2645
  background-color: var(--el-bg-color);
2616
- }
2617
-
2646
+ }
2647
+
2618
2648
  /* 底图网格布局 */
2619
- .basemap-grid[data-v-941dac43] {
2620
- display: grid;
2621
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
2622
- gap: 8px;
2649
+ .basemap-grid[data-v-60bca8a2] {
2650
+ display: grid;
2651
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
2652
+ gap: 8px;
2623
2653
  padding: 8px 0;
2624
- }
2625
-
2654
+ }
2655
+
2626
2656
  /* 底图项目 */
2627
- .basemap-item[data-v-941dac43] {
2628
- display: flex;
2629
- flex-direction: column;
2630
- align-items: center;
2631
- padding: 8px;
2632
- border: 2px solid transparent;
2633
- border-radius: var(--el-border-radius-base);
2634
- cursor: pointer;
2635
- transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
2636
- background: var(--el-bg-color-overlay);
2637
- box-shadow: var(--el-box-shadow-light);
2657
+ .basemap-item[data-v-60bca8a2] {
2658
+ display: flex;
2659
+ flex-direction: column;
2660
+ align-items: center;
2661
+ padding: 8px;
2662
+ border: 2px solid transparent;
2663
+ border-radius: var(--el-border-radius-base);
2664
+ cursor: pointer;
2665
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
2666
+ background: var(--el-bg-color-overlay);
2667
+ box-shadow: var(--el-box-shadow-light);
2638
2668
  border: 1px solid var(--el-border-color-light);
2639
2669
  }
2640
- .basemap-item[data-v-941dac43]:hover {
2641
- transform: translateY(-2px) scale(1.02);
2642
- border-color: var(--el-color-primary-light-5);
2670
+ .basemap-item[data-v-60bca8a2]:hover {
2671
+ transform: translateY(-2px) scale(1.02);
2672
+ border-color: var(--el-color-primary-light-5);
2643
2673
  box-shadow: var(--el-box-shadow);
2644
2674
  }
2645
- .basemap-item.active[data-v-941dac43] {
2646
- border-color: var(--el-color-primary);
2647
- background: var(--el-color-primary-light-9);
2675
+ .basemap-item.active[data-v-60bca8a2] {
2676
+ border-color: var(--el-color-primary);
2677
+ background: var(--el-color-primary-light-9);
2648
2678
  box-shadow: var(--el-box-shadow);
2649
- }
2650
-
2679
+ }
2680
+
2651
2681
  /* 底图预览图片 */
2652
- .basemap-preview[data-v-941dac43] {
2653
- width: 92px;
2654
- height: 68px;
2655
- border-radius: var(--el-border-radius-small);
2656
- overflow: hidden;
2657
- margin-bottom: 8px;
2658
- box-shadow: var(--el-box-shadow-lighter);
2659
- transition: all 0.3s ease;
2660
- background: var(--el-fill-color-light);
2661
- display: flex;
2662
- align-items: center;
2682
+ .basemap-preview[data-v-60bca8a2] {
2683
+ width: 92px;
2684
+ height: 68px;
2685
+ border-radius: var(--el-border-radius-small);
2686
+ overflow: hidden;
2687
+ margin-bottom: 8px;
2688
+ box-shadow: var(--el-box-shadow-lighter);
2689
+ transition: all 0.3s ease;
2690
+ background: var(--el-fill-color-light);
2691
+ display: flex;
2692
+ align-items: center;
2663
2693
  justify-content: center;
2664
2694
  }
2665
- .basemap-item:hover .basemap-preview[data-v-941dac43] {
2666
- box-shadow: var(--el-box-shadow-light);
2695
+ .basemap-item:hover .basemap-preview[data-v-60bca8a2] {
2696
+ box-shadow: var(--el-box-shadow-light);
2667
2697
  transform: scale(1.05);
2668
2698
  }
2669
- .basemap-preview img[data-v-941dac43] {
2670
- width: 100%;
2671
- height: 100%;
2672
- object-fit: cover;
2699
+ .basemap-preview img[data-v-60bca8a2] {
2700
+ width: 100%;
2701
+ height: 100%;
2702
+ object-fit: cover;
2673
2703
  transition: all 0.3s ease;
2674
- }
2675
-
2704
+ }
2705
+
2676
2706
  /* 底图名称 */
2677
- .basemap-name[data-v-941dac43] {
2678
- font-size: 11px;
2679
- font-weight: 500;
2680
- color: var(--el-text-color-regular);
2681
- text-align: center;
2682
- line-height: 1.4;
2683
- transition: all 0.3s ease;
2707
+ .basemap-name[data-v-60bca8a2] {
2708
+ font-size: 11px;
2709
+ font-weight: 500;
2710
+ color: var(--el-text-color-regular);
2711
+ text-align: center;
2712
+ line-height: 1.4;
2713
+ transition: all 0.3s ease;
2684
2714
  margin-top: 4px;
2685
2715
  }
2686
- .basemap-item:hover .basemap-name[data-v-941dac43] {
2687
- color: var(--el-text-color-primary);
2716
+ .basemap-item:hover .basemap-name[data-v-60bca8a2] {
2717
+ color: var(--el-text-color-primary);
2688
2718
  font-weight: 600;
2689
2719
  }
2690
- .basemap-item.active .basemap-name[data-v-941dac43] {
2691
- color: var(--el-color-primary);
2720
+ .basemap-item.active .basemap-name[data-v-60bca8a2] {
2721
+ color: var(--el-color-primary);
2692
2722
  font-weight: 600;
2693
- }
2694
-
2723
+ }
2724
+
2695
2725
  /* 响应式设计 */
2696
2726
  @media (max-width: 480px) {
2697
- .basemap-grid[data-v-941dac43] {
2727
+ .basemap-grid[data-v-60bca8a2] {
2698
2728
  grid-template-columns: 1fr;
2699
2729
  }
2700
- }
2730
+ }
2701
2731
 
2702
- .coordinate-dialog {
2703
- --el-dialog-bg-color: #1a1a1a;
2732
+ .coordinate-dialog[data-v-0c70c644] {
2733
+ /* Inherits from global if not scoped, but we can override */
2704
2734
  }
2705
- .coordinate-content {
2706
- padding: 10px 0;
2735
+ .coordinate-content[data-v-0c70c644] {
2736
+ padding: 10px 20px;
2737
+ overflow-x: hidden;
2707
2738
  }
2708
- .format-selection {
2709
- margin-bottom: 20px;
2710
- padding: 15px;
2711
- background: #f8f9fa;
2712
- border-radius: 6px;
2713
- border: 1px solid #e9ecef;
2739
+ .format-selection[data-v-0c70c644] {
2740
+ margin-bottom: 24px;
2741
+ display: flex;
2742
+ justify-content: center;
2714
2743
  }
2715
- .format-title {
2716
- font-weight: 500;
2717
- margin-bottom: 10px;
2718
- color: #495057;
2744
+ .coordinate-input[data-v-0c70c644] {
2745
+ margin-bottom: 8px;
2719
2746
  }
2720
- .format-options {
2721
- display: flex;
2722
- gap: 20px;
2747
+ .operation-tip[data-v-0c70c644] {
2748
+ display: flex;
2749
+ align-items: center;
2750
+ justify-content: center;
2751
+ gap: 8px;
2752
+ color: var(--el-text-color-secondary);
2753
+ font-size: 13px;
2754
+ margin-top: 16px;
2755
+ padding: 8px;
2756
+ background-color: var(--el-fill-color-light);
2757
+ border-radius: 4px;
2758
+ }
2759
+ .dialog-footer[data-v-0c70c644] {
2760
+ display: flex;
2761
+ justify-content: flex-end;
2762
+ gap: 12px;
2723
2763
  }
2724
- .format-options :deep(.el-radio) {
2725
- margin-right: 0;
2764
+ .action-btn[data-v-0c70c644] {
2765
+ padding: 10px 20px;
2766
+ font-weight: 500;
2726
2767
  }
2727
- .coordinate-input {
2728
- margin-bottom: 20px;
2768
+ .mr-1[data-v-0c70c644] {
2769
+ margin-right: 4px;
2729
2770
  }
2730
- .dialog-footer {
2731
- text-align: right;
2771
+
2772
+ /* Custom styling for inputs to look better */
2773
+ [data-v-0c70c644] .el-form-item__label {
2774
+ font-weight: 500;
2775
+ color: var(--el-text-color-primary);
2732
2776
  }
2733
- .dialog-footer .el-button {
2734
- margin-left: 10px;
2735
- }
2736
2777
 
2737
2778
  .region-dialog {
2738
- .region-content {
2739
- max-height: 500px;
2779
+ .region-content {
2780
+ max-height: 500px;
2740
2781
  overflow-y: auto;
2741
2782
  }
2742
- :deep(.el-tabs__header) {
2783
+ :deep(.el-tabs__header) {
2743
2784
  margin: 0 0 20px 0;
2744
2785
  }
2745
- :deep(.el-tabs__nav-wrap) {
2786
+ :deep(.el-tabs__nav-wrap) {
2746
2787
  padding: 0 20px;
2747
2788
  }
2748
- :deep(.el-tabs__item) {
2749
- font-size: 16px;
2750
- font-weight: 500;
2789
+ :deep(.el-tabs__item) {
2790
+ font-size: 16px;
2791
+ font-weight: 500;
2751
2792
  color: #606266;
2752
- &.is-active {
2753
- color: #409eff;
2793
+ &.is-active {
2794
+ color: #409eff;
2754
2795
  font-weight: 600;
2755
2796
  }
2756
2797
  }
2757
- :deep(.el-tabs__active-bar) {
2798
+ :deep(.el-tabs__active-bar) {
2758
2799
  background-color: #409eff;
2759
2800
  }
2760
2801
  .region-categories {
2761
- .region-group {
2802
+ .region-group {
2762
2803
  margin-bottom: 20px;
2763
- .group-title {
2764
- font-size: 14px;
2765
- font-weight: 600;
2766
- color: #606266;
2767
- margin-bottom: 10px;
2768
- padding-left: 8px;
2804
+ .group-title {
2805
+ font-size: 14px;
2806
+ font-weight: 600;
2807
+ color: #606266;
2808
+ margin-bottom: 10px;
2809
+ padding-left: 8px;
2769
2810
  border-left: 3px solid #409eff;
2770
2811
  }
2771
- .region-items {
2772
- display: flex;
2773
- flex-wrap: wrap;
2812
+ .region-items {
2813
+ display: flex;
2814
+ flex-wrap: wrap;
2774
2815
  gap: 8px;
2775
- .region-btn {
2776
- margin: 0;
2777
- padding: 8px 16px;
2778
- border: 1px solid #dcdfe6;
2779
- border-radius: 4px;
2780
- background: #fff;
2781
- color: #606266;
2816
+ .region-btn {
2817
+ margin: 0;
2818
+ padding: 8px 16px;
2819
+ border: 1px solid #dcdfe6;
2820
+ border-radius: 4px;
2821
+ background: #fff;
2822
+ color: #606266;
2782
2823
  transition: all 0.3s;
2783
- &:hover {
2784
- color: #409eff;
2785
- border-color: #409eff;
2824
+ &:hover {
2825
+ color: #409eff;
2826
+ border-color: #409eff;
2786
2827
  background: #ecf5ff;
2787
2828
  }
2788
2829
  }
@@ -2790,36 +2831,36 @@ to {
2790
2831
  }
2791
2832
  }
2792
2833
  .beijing-districts {
2793
- .district-grid {
2794
- display: grid;
2795
- grid-template-columns: repeat(5, 1fr);
2796
- gap: 12px;
2834
+ .district-grid {
2835
+ display: grid;
2836
+ grid-template-columns: repeat(5, 1fr);
2837
+ gap: 12px;
2797
2838
  padding: 10px;
2798
- .district-btn {
2799
- padding: 12px 8px;
2800
- border: 1px solid #dcdfe6;
2801
- border-radius: 6px;
2802
- background: #fff;
2803
- color: #606266;
2804
- font-size: 14px;
2805
- text-align: center;
2806
- transition: all 0.3s;
2807
- cursor: pointer;
2808
- min-height: 44px;
2809
- display: flex;
2810
- align-items: center;
2839
+ .district-btn {
2840
+ padding: 12px 8px;
2841
+ border: 1px solid #dcdfe6;
2842
+ border-radius: 6px;
2843
+ background: #fff;
2844
+ color: #606266;
2845
+ font-size: 14px;
2846
+ text-align: center;
2847
+ transition: all 0.3s;
2848
+ cursor: pointer;
2849
+ min-height: 44px;
2850
+ display: flex;
2851
+ align-items: center;
2811
2852
  justify-content: center;
2812
- &:hover {
2813
- color: #409eff;
2814
- border-color: #409eff;
2815
- background: #ecf5ff;
2816
- transform: translateY(-2px);
2853
+ &:hover {
2854
+ color: #409eff;
2855
+ border-color: #409eff;
2856
+ background: #ecf5ff;
2857
+ transform: translateY(-2px);
2817
2858
  box-shadow: 0 4px 8px rgba(64, 158, 255, 0.2);
2818
2859
  }
2819
- &.active {
2820
- color: #fff;
2821
- background: #409eff;
2822
- border-color: #409eff;
2860
+ &.active {
2861
+ color: #fff;
2862
+ background: #409eff;
2863
+ border-color: #409eff;
2823
2864
  box-shadow: 0 4px 8px rgba(64, 158, 255, 0.3);
2824
2865
  }
2825
2866
  }
@@ -2829,8 +2870,8 @@ to {
2829
2870
  @media (max-width: 768px) {
2830
2871
  .region-dialog {
2831
2872
  .beijing-districts {
2832
- .district-grid {
2833
- grid-template-columns: repeat(3, 1fr);
2873
+ .district-grid {
2874
+ grid-template-columns: repeat(3, 1fr);
2834
2875
  gap: 8px;
2835
2876
  }
2836
2877
  }
@@ -2839,234 +2880,266 @@ to {
2839
2880
  @media (max-width: 480px) {
2840
2881
  .region-dialog {
2841
2882
  .beijing-districts {
2842
- .district-grid {
2883
+ .district-grid {
2843
2884
  grid-template-columns: repeat(2, 1fr);
2844
2885
  }
2845
2886
  }
2846
2887
  }
2847
- }
2848
-
2849
- .markers-dialog {
2850
- --el-dialog-bg-color: #1a1a1a;
2851
2888
  }
2852
- .markers-content {
2853
- padding: 10px 0;
2889
+ .markers-dialog .el-dialog__body {
2890
+ padding: 0 !important;
2854
2891
  }
2855
- .toolbar {
2856
- margin-bottom: 15px;
2857
- display: flex;
2858
- gap: 10px;
2892
+ .markers-content {
2893
+ height: 100%;
2894
+ display: flex;
2895
+ flex-direction: column;
2896
+ background-color: var(--el-bg-color);
2859
2897
  }
2860
- .toolbar .adding-marker {
2861
- background-color: #f56c6c !important;
2862
- border-color: #f56c6c !important;
2863
- animation: pulse 1.5s infinite;
2898
+ .markers-content .toolbar {
2899
+ padding: 12px 16px;
2900
+ display: flex;
2901
+ flex-wrap: wrap;
2902
+ gap: 8px;
2903
+ border-bottom: 1px solid var(--el-border-color-lighter);
2904
+ background-color: var(--el-bg-color);
2864
2905
  }
2865
- @keyframes pulse {
2866
- 0% {
2867
- box-shadow: 0 0 0 0 rgba(245, 108, 108, 0.7);
2906
+ .markers-content .toolbar .adding-marker {
2907
+ background-color: var(--el-color-danger) !important;
2908
+ border-color: var(--el-color-danger) !important;
2909
+ animation: pulse 1.5s infinite;
2868
2910
  }
2869
- 70% {
2870
- box-shadow: 0 0 0 10px rgba(245, 108, 108, 0);
2911
+ .markers-content .search-filter {
2912
+ padding: 12px 16px;
2913
+ display: flex;
2914
+ align-items: center;
2915
+ gap: 10px;
2916
+ background-color: var(--el-fill-color-lighter);
2917
+ border-bottom: 1px solid var(--el-border-color-lighter);
2871
2918
  }
2872
- 100% {
2873
- box-shadow: 0 0 0 0 rgba(245, 108, 108, 0);
2919
+ .markers-content .markers-list {
2920
+ flex: 1;
2921
+ overflow: hidden;
2922
+ padding: 0;
2874
2923
  }
2924
+ .markers-content .markers-list .markers-table {
2925
+ width: 100%;
2875
2926
  }
2876
- .search-filter {
2877
- margin-bottom: 15px;
2878
- display: flex;
2927
+ .markers-content .markers-list .markers-table .marker-name {
2928
+ display: flex;
2879
2929
  align-items: center;
2930
+ gap: 8px;
2931
+ font-weight: 500;
2932
+ color: var(--el-text-color-primary);
2880
2933
  }
2881
- .markers-list {
2882
- margin-bottom: 20px;
2883
- }
2884
- .markers-table {
2885
- --el-table-bg-color: transparent;
2886
- --el-table-tr-bg-color: transparent;
2887
- --el-table-header-bg-color: rgba(255, 255, 255, 0.05);
2934
+ .markers-content .markers-list .markers-table .delete-btn {
2935
+ color: var(--el-color-danger);
2888
2936
  }
2889
- .marker-name {
2890
- display: flex;
2891
- align-items: center;
2892
- gap: 5px;
2937
+ .markers-content .markers-list .markers-table .delete-btn:hover {
2938
+ color: var(--el-color-danger-light-3);
2893
2939
  }
2894
- .delete-btn {
2895
- color: #f56c6c;
2940
+ @keyframes pulse {
2941
+ 0% {
2942
+ box-shadow: 0 0 0 0 rgba(245, 108, 108, 0.7);
2896
2943
  }
2897
- .delete-btn:hover {
2898
- color: #f78989;
2944
+ 70% {
2945
+ box-shadow: 0 0 0 10px rgba(245, 108, 108, 0);
2899
2946
  }
2900
- .statistics {
2901
- padding: 15px;
2902
- background: rgba(64, 158, 255, 0.05);
2903
- border-radius: 6px;
2904
- border: 1px solid rgba(64, 158, 255, 0.2);
2947
+ 100% {
2948
+ box-shadow: 0 0 0 0 rgba(245, 108, 108, 0);
2905
2949
  }
2906
- .dialog-footer {
2907
- text-align: right;
2908
- }
2909
-
2910
- .bookmarks-dialog {
2911
- --el-dialog-bg-color: #1a1a1a;
2950
+ }.bookmarks-dialog .el-dialog__body {
2951
+ padding: 0 !important;
2912
2952
  }
2913
- .bookmarks-content {
2914
- padding: 10px 0;
2953
+ .bookmarks-content {
2954
+ height: 100%;
2955
+ display: flex;
2956
+ flex-direction: column;
2957
+ background-color: var(--el-bg-color);
2915
2958
  }
2916
- .toolbar {
2917
- margin-bottom: 15px;
2918
- display: flex;
2919
- gap: 10px;
2959
+ .bookmarks-content .toolbar {
2960
+ padding: 12px 16px;
2961
+ display: flex;
2962
+ flex-wrap: wrap;
2963
+ gap: 8px;
2964
+ border-bottom: 1px solid var(--el-border-color-lighter);
2965
+ background-color: var(--el-bg-color);
2966
+ margin-bottom: 0;
2920
2967
  }
2921
- .search-filter {
2922
- margin-bottom: 15px;
2923
- display: flex;
2968
+ .bookmarks-content .search-filter {
2969
+ padding: 12px 16px;
2970
+ display: flex;
2924
2971
  align-items: center;
2972
+ gap: 10px;
2973
+ background-color: var(--el-fill-color-lighter);
2974
+ border-bottom: 1px solid var(--el-border-color-lighter);
2975
+ margin-bottom: 0;
2925
2976
  }
2926
- .bookmarks-grid {
2927
- display: grid;
2928
- grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
2929
- gap: 15px;
2930
- margin-bottom: 20px;
2931
- max-height: 400px;
2977
+ .bookmarks-content .bookmarks-grid {
2978
+ flex: 1;
2932
2979
  overflow-y: auto;
2980
+ padding: 16px;
2981
+ display: grid;
2982
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
2983
+ gap: 16px;
2984
+ margin-bottom: 0;
2985
+ max-height: none;
2933
2986
  }
2934
- .bookmark-card {
2935
- border: 1px solid #303133;
2936
- border-radius: 8px;
2937
- overflow: hidden;
2938
- background: rgba(255, 255, 255, 0.02);
2939
- transition: all 0.3s ease;
2987
+ .bookmarks-content .bookmarks-grid::-webkit-scrollbar {
2988
+ width: 6px;
2989
+ }
2990
+ .bookmarks-content .bookmarks-grid::-webkit-scrollbar-track {
2991
+ background: var(--el-fill-color-light);
2992
+ border-radius: 3px;
2993
+ }
2994
+ .bookmarks-content .bookmarks-grid::-webkit-scrollbar-thumb {
2995
+ background: var(--el-border-color);
2996
+ border-radius: 3px;
2997
+ }
2998
+ .bookmarks-content .bookmarks-grid::-webkit-scrollbar-thumb:hover {
2999
+ background: var(--el-border-color-darker);
3000
+ }
3001
+ .bookmarks-content .bookmark-card {
3002
+ border: 1px solid var(--el-border-color-light);
3003
+ border-radius: 8px;
3004
+ overflow: hidden;
3005
+ background-color: var(--el-bg-color-overlay);
3006
+ transition: all 0.3s ease;
2940
3007
  cursor: pointer;
3008
+ display: flex;
3009
+ flex-direction: column;
2941
3010
  }
2942
- .bookmark-card:hover {
2943
- border-color: #409eff;
2944
- box-shadow: 0 4px 12px rgba(64, 158, 255, 0.2);
3011
+ .bookmarks-content .bookmark-card:hover {
3012
+ border-color: var(--el-color-primary);
3013
+ box-shadow: var(--el-box-shadow-light);
2945
3014
  transform: translateY(-2px);
2946
3015
  }
2947
- .bookmark-thumbnail {
2948
- position: relative;
2949
- height: 120px;
2950
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
2951
- display: flex;
2952
- align-items: center;
3016
+ .bookmarks-content .bookmark-card .bookmark-thumbnail {
3017
+ position: relative;
3018
+ height: 140px;
3019
+ background: var(--el-fill-color-light);
3020
+ display: flex;
3021
+ align-items: center;
2953
3022
  justify-content: center;
3023
+ overflow: hidden;
2954
3024
  }
2955
- .thumbnail-placeholder {
3025
+ .bookmarks-content .bookmark-card .bookmark-thumbnail .thumbnail-image {
3026
+ width: 100%;
3027
+ height: 100%;
3028
+ object-fit: cover;
3029
+ }
3030
+ .bookmarks-content .bookmark-card .bookmark-thumbnail .thumbnail-placeholder {
2956
3031
  opacity: 0.6;
2957
3032
  }
2958
- .bookmark-overlay {
2959
- position: absolute;
2960
- top: 0;
2961
- left: 0;
2962
- right: 0;
2963
- bottom: 0;
2964
- background: rgba(0, 0, 0, 0.7);
2965
- display: flex;
2966
- align-items: center;
2967
- justify-content: center;
2968
- opacity: 0;
3033
+ .bookmarks-content .bookmark-card .bookmark-thumbnail .bookmark-overlay {
3034
+ position: absolute;
3035
+ top: 0;
3036
+ left: 0;
3037
+ right: 0;
3038
+ bottom: 0;
3039
+ background: rgba(0, 0, 0, 0.6);
3040
+ display: flex;
3041
+ align-items: center;
3042
+ justify-content: center;
3043
+ opacity: 0;
2969
3044
  transition: opacity 0.3s ease;
3045
+ backdrop-filter: blur(2px);
2970
3046
  }
2971
- .bookmark-card:hover .bookmark-overlay {
3047
+ .bookmarks-content .bookmark-card:hover .bookmark-overlay {
2972
3048
  opacity: 1;
2973
3049
  }
2974
- .bookmark-info {
3050
+ .bookmarks-content .bookmark-card .bookmark-info {
2975
3051
  padding: 12px;
3052
+ flex: 1;
3053
+ display: flex;
3054
+ flex-direction: column;
2976
3055
  }
2977
- .bookmark-title {
2978
- font-size: 16px;
2979
- font-weight: bold;
2980
- color: #e4e7ed;
2981
- margin-bottom: 8px;
2982
- white-space: nowrap;
2983
- overflow: hidden;
3056
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-title {
3057
+ font-size: 16px;
3058
+ font-weight: 600;
3059
+ color: var(--el-text-color-primary);
3060
+ margin-bottom: 8px;
3061
+ white-space: nowrap;
3062
+ overflow: hidden;
2984
3063
  text-overflow: ellipsis;
2985
3064
  }
2986
- .bookmark-meta {
2987
- display: flex;
2988
- justify-content: space-between;
2989
- align-items: center;
3065
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-meta {
3066
+ display: flex;
3067
+ justify-content: space-between;
3068
+ align-items: center;
2990
3069
  margin-bottom: 8px;
2991
3070
  }
2992
- .use-count {
2993
- font-size: 12px;
2994
- color: #909399;
2995
- }
2996
- .bookmark-description {
2997
- font-size: 12px;
2998
- color: #c0c4cc;
2999
- margin-bottom: 8px;
3000
- line-height: 1.4;
3001
- display: -webkit-box;
3002
- -webkit-line-clamp: 2;
3003
- -webkit-box-orient: vertical;
3071
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-meta .use-count {
3072
+ font-size: 12px;
3073
+ color: var(--el-text-color-secondary);
3074
+ }
3075
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-description {
3076
+ font-size: 12px;
3077
+ color: var(--el-text-color-regular);
3078
+ margin-bottom: 12px;
3079
+ line-height: 1.5;
3080
+ display: -webkit-box;
3081
+ -webkit-line-clamp: 2;
3082
+ -webkit-box-orient: vertical;
3004
3083
  overflow: hidden;
3084
+ height: 36px;
3005
3085
  }
3006
- .bookmark-details {
3007
- display: flex;
3008
- flex-direction: column;
3009
- gap: 4px;
3010
- margin-bottom: 8px;
3086
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-details {
3087
+ margin-top: auto;
3088
+ display: flex;
3089
+ flex-direction: column;
3090
+ gap: 6px;
3091
+ padding-top: 12px;
3092
+ border-top: 1px solid var(--el-border-color-lighter);
3011
3093
  }
3012
- .detail-item {
3013
- display: flex;
3014
- align-items: center;
3015
- gap: 4px;
3016
- font-size: 11px;
3017
- color: #909399;
3094
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-details .detail-item {
3095
+ display: flex;
3096
+ align-items: center;
3097
+ gap: 6px;
3098
+ font-size: 12px;
3099
+ color: var(--el-text-color-secondary);
3018
3100
  }
3019
- .bookmark-time {
3020
- font-size: 11px;
3021
- color: #606266;
3101
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-time {
3102
+ margin-top: 8px;
3103
+ font-size: 12px;
3104
+ color: var(--el-text-color-placeholder);
3022
3105
  text-align: right;
3023
3106
  }
3024
- .delete-btn {
3025
- color: #f56c6c;
3026
- }
3027
- .delete-btn:hover {
3028
- color: #f78989;
3029
- }
3030
- .empty-state {
3031
- text-align: center;
3032
- padding: 40px 0;
3107
+ .bookmarks-content .empty-state {
3108
+ text-align: center;
3109
+ padding: 60px 0;
3110
+ display: flex;
3111
+ justify-content: center;
3112
+ align-items: center;
3113
+ height: 100%;
3033
3114
  }
3034
- .statistics {
3035
- padding: 15px;
3036
- background: rgba(64, 158, 255, 0.05);
3037
- border-radius: 6px;
3038
- border: 1px solid rgba(64, 158, 255, 0.2);
3115
+ .bookmarks-content .statistics {
3116
+ padding: 12px 16px;
3117
+ background-color: var(--el-fill-color-light);
3118
+ border-top: 1px solid var(--el-border-color-lighter);
3039
3119
  }
3040
- .dialog-footer {
3041
- text-align: right;
3042
- }
3043
-
3044
- /* 自定义滚动条 */
3045
- .bookmarks-grid::-webkit-scrollbar {
3046
- width: 6px;
3120
+ .bookmarks-content .statistics :deep(.el-statistic__title) {
3121
+ font-size: 12px;
3122
+ margin-bottom: 4px;
3047
3123
  }
3048
- .bookmarks-grid::-webkit-scrollbar-track {
3049
- background: #2c2c2c;
3050
- border-radius: 3px;
3124
+ .bookmarks-content .statistics :deep(.el-statistic__content) {
3125
+ font-size: 18px;
3051
3126
  }
3052
- .bookmarks-grid::-webkit-scrollbar-thumb {
3053
- background: #409eff;
3054
- border-radius: 3px;
3127
+ .delete-btn {
3128
+ color: var(--el-color-danger);
3055
3129
  }
3056
- .bookmarks-grid::-webkit-scrollbar-thumb:hover {
3057
- background: #66b1ff;
3058
- }
3059
- .mark-tab-container[data-v-b5ca6d89] {
3130
+ .delete-btn:hover {
3131
+ color: var(--el-color-danger-light-3);
3132
+ }.mark-tab-container[data-v-72865d9e] {
3060
3133
  display: flex;
3061
3134
  flex-direction: column;
3062
3135
  height: 100%;
3063
3136
  padding: 12px;
3064
3137
  }
3065
- .type-select[data-v-b5ca6d89] {
3138
+ .type-select[data-v-72865d9e] {
3066
3139
  width: 100%;
3067
3140
  margin-bottom: 12px;
3068
3141
  }
3069
- .continuous-switch[data-v-b5ca6d89] {
3142
+ .continuous-switch[data-v-72865d9e] {
3070
3143
  display: flex;
3071
3144
  align-items: center;
3072
3145
  justify-content: space-between;
@@ -3075,18 +3148,18 @@ to {
3075
3148
  background-color: #f9fafb;
3076
3149
  border-radius: 6px;
3077
3150
  }
3078
- .switch-label[data-v-b5ca6d89] {
3151
+ .switch-label[data-v-72865d9e] {
3079
3152
  font-size: 14px;
3080
3153
  color: #374151;
3081
3154
  }
3082
- .tools-grid[data-v-b5ca6d89] {
3155
+ .tools-grid[data-v-72865d9e] {
3083
3156
  display: grid;
3084
3157
  grid-template-columns: repeat(3, 1fr);
3085
3158
  gap: 16px;
3086
3159
  flex: 1;
3087
3160
  overflow: auto;
3088
3161
  }
3089
- .tool-item[data-v-b5ca6d89] {
3162
+ .tool-item[data-v-72865d9e] {
3090
3163
  display: flex;
3091
3164
  flex-direction: column;
3092
3165
  align-items: center;
@@ -3097,28 +3170,28 @@ to {
3097
3170
  cursor: pointer;
3098
3171
  transition: all 0.3s ease;
3099
3172
  }
3100
- .tool-item[data-v-b5ca6d89]:hover {
3173
+ .tool-item[data-v-72865d9e]:hover {
3101
3174
  background-color: #f3f4f6;
3102
3175
  border-color: #60a5fa;
3103
3176
  }
3104
- .tool-image[data-v-b5ca6d89] {
3177
+ .tool-image[data-v-72865d9e] {
3105
3178
  width: 24px;
3106
3179
  height: 24px;
3107
3180
  margin-bottom: 4px;
3108
3181
  }
3109
- .tool-icon-large[data-v-b5ca6d89] {
3182
+ .tool-icon-large[data-v-72865d9e] {
3110
3183
  font-size: 24px;
3111
3184
  margin-bottom: 4px;
3112
3185
  }
3113
- .tool-label[data-v-b5ca6d89] {
3186
+ .tool-label[data-v-72865d9e] {
3114
3187
  font-size: 12px;
3115
3188
  color: #6b7280;
3116
3189
  text-align: center;
3117
3190
  }
3118
- .tool-item:hover .tool-label[data-v-b5ca6d89] {
3191
+ .tool-item:hover .tool-label[data-v-72865d9e] {
3119
3192
  color: #3b82f6;
3120
3193
  }
3121
- .stop-drawing-section[data-v-b5ca6d89] {
3194
+ .stop-drawing-section[data-v-72865d9e] {
3122
3195
  margin-top: 12px;
3123
3196
  padding-top: 12px;
3124
3197
  border-top: 1px solid #e5e7eb;
@@ -3133,61 +3206,61 @@ to {
3133
3206
  width: 100%;
3134
3207
  font-weight: 500;
3135
3208
  }
3136
- .list-tab-container[data-v-148877f2] {
3209
+ .list-tab-container[data-v-7222689f] {
3137
3210
  display: flex;
3138
3211
  flex-direction: column;
3139
3212
  height: 100%;
3140
3213
  font-size: 14px;
3141
3214
  }
3142
- .toolbar[data-v-148877f2] {
3215
+ .toolbar[data-v-7222689f] {
3143
3216
  display: flex;
3144
3217
  align-items: center;
3145
3218
  justify-content: space-between;
3146
3219
  padding: 4px 8px;
3147
3220
  border-bottom: 1px solid #d1d5db;
3148
3221
  }
3149
- .toolbar-left[data-v-148877f2] {
3222
+ .toolbar-left[data-v-7222689f] {
3150
3223
  display: flex;
3151
3224
  align-items: center;
3152
3225
  gap: 8px;
3153
3226
  }
3154
- .toolbar-title[data-v-148877f2] {
3227
+ .toolbar-title[data-v-7222689f] {
3155
3228
  font-weight: 500;
3156
3229
  }
3157
- .toolbar-icon[data-v-148877f2] {
3230
+ .toolbar-icon[data-v-7222689f] {
3158
3231
  font-size: 16px;
3159
3232
  }
3160
- .data-count[data-v-148877f2] {
3233
+ .data-count[data-v-7222689f] {
3161
3234
  color: #6b7280;
3162
3235
  }
3163
- .list-content[data-v-148877f2] {
3236
+ .list-content[data-v-7222689f] {
3164
3237
  flex: 1;
3165
3238
  overflow: auto;
3166
3239
  padding: 4px;
3167
3240
  }
3168
- .tree-component[data-v-148877f2] {
3241
+ .tree-component[data-v-7222689f] {
3169
3242
  font-size: 14px;
3170
3243
  }
3171
- .tree-node[data-v-148877f2] {
3244
+ .tree-node[data-v-7222689f] {
3172
3245
  display: flex;
3173
3246
  align-items: center;
3174
3247
  gap: 8px;
3175
3248
  }
3176
- .node-icon[data-v-148877f2] {
3249
+ .node-icon[data-v-7222689f] {
3177
3250
  font-size: 16px;
3178
3251
  }
3179
- .empty-state[data-v-148877f2] {
3252
+ .empty-state[data-v-7222689f] {
3180
3253
  height: 100%;
3181
3254
  display: flex;
3182
3255
  align-items: center;
3183
3256
  justify-content: center;
3184
3257
  color: #9ca3af;
3185
- }.dialog-content[data-v-0f3bc776] {
3258
+ }.dialog-content[data-v-57937348] {
3186
3259
  display: flex;
3187
3260
  flex-direction: column;
3188
3261
  height: 100%;
3189
3262
  }
3190
- .toolbar[data-v-0f3bc776] {
3263
+ .toolbar[data-v-57937348] {
3191
3264
  display: flex;
3192
3265
  align-items: center;
3193
3266
  justify-content: space-between;
@@ -3195,46 +3268,46 @@ to {
3195
3268
  border-bottom: 1px solid #e5e7eb;
3196
3269
  background-color: #f9fafb;
3197
3270
  }
3198
- .toolbar-left[data-v-0f3bc776] {
3271
+ .toolbar-left[data-v-57937348] {
3199
3272
  display: flex;
3200
3273
  align-items: center;
3201
3274
  gap: 20px;
3202
3275
  }
3203
- .toolbar-right[data-v-0f3bc776] {
3276
+ .toolbar-right[data-v-57937348] {
3204
3277
  display: flex;
3205
3278
  align-items: center;
3206
3279
  gap: 20px;
3207
3280
  }
3208
- .tool-icon[data-v-0f3bc776] {
3281
+ .tool-icon[data-v-57937348] {
3209
3282
  font-size: 20px;
3210
3283
  cursor: pointer;
3211
3284
  color: #6b7280;
3212
3285
  transition: color 0.3s ease;
3213
3286
  }
3214
- .tool-icon[data-v-0f3bc776]:hover {
3287
+ .tool-icon[data-v-57937348]:hover {
3215
3288
  color: var(--el-color-primary, #409eff);
3216
3289
  }
3217
- .content-area[data-v-0f3bc776] {
3290
+ .content-area[data-v-57937348] {
3218
3291
  flex: 1;
3219
3292
  overflow: hidden;
3220
3293
  }
3221
- .tabs-container[data-v-0f3bc776] {
3294
+ .tabs-container[data-v-57937348] {
3222
3295
  height: 100%;
3223
3296
  }
3224
- .map-drawing-dialog[data-v-0f3bc776] .el-tabs {
3297
+ .map-drawing-dialog[data-v-57937348] .el-tabs {
3225
3298
  height: 100%;
3226
3299
  display: flex;
3227
3300
  flex-direction: column;
3228
3301
  }
3229
- .map-drawing-dialog[data-v-0f3bc776] .el-tabs__content {
3302
+ .map-drawing-dialog[data-v-57937348] .el-tabs__content {
3230
3303
  flex: 1;
3231
3304
  overflow: auto;
3232
3305
  padding: 12px;
3233
3306
  }
3234
- .map-drawing-dialog[data-v-0f3bc776] .el-tabs__nav-wrap {
3307
+ .map-drawing-dialog[data-v-57937348] .el-tabs__nav-wrap {
3235
3308
  padding: 0 10px;
3236
3309
  }
3237
- .map-drawing-dialog[data-v-0f3bc776] .el-tabs__item {
3310
+ .map-drawing-dialog[data-v-57937348] .el-tabs__item {
3238
3311
  font-size: 14px;
3239
3312
  font-weight: 500;
3240
3313
  padding: 0 20px;
@@ -3242,10 +3315,10 @@ to {
3242
3315
  line-height: 40px;
3243
3316
  transition: all 0.3s;
3244
3317
  }
3245
- .map-drawing-dialog[data-v-0f3bc776] .el-tabs__item.is-active {
3318
+ .map-drawing-dialog[data-v-57937348] .el-tabs__item.is-active {
3246
3319
  color: var(--el-color-primary);
3247
3320
  font-weight: 600;
3248
3321
  }
3249
- .map-drawing-dialog[data-v-0f3bc776] .el-tabs__item:hover {
3322
+ .map-drawing-dialog[data-v-57937348] .el-tabs__item:hover {
3250
3323
  color: var(--el-color-primary);
3251
3324
  }