vue-openlayers-plugin 1.0.90 → 1.0.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/lib/{BasemapPanel-cba3afd6.mjs → BasemapPanel-a7640f57.mjs} +69 -22
  2. package/lib/{CoordinateLocationDialog-6e8a5f24.mjs → CoordinateLocationDialog-3fd9613f.mjs} +106 -51
  3. package/lib/{FilterPanel-9a8e2aca.mjs → FilterPanel-53958140.mjs} +1 -1
  4. package/lib/{MapPrintDialog-03c0823b.mjs → LayerPanel-02152994.mjs} +1 -1
  5. package/lib/{LayerPanel-be35370b.mjs → MapPrintDialog-bbf1ccc1.mjs} +1 -1
  6. package/lib/{MeasurementDialog-7fce097a.mjs → MeasurementDialog-4ffa44ae.mjs} +85 -33
  7. package/lib/{MyMarkersDialog-7dd24d9a.mjs → MyMarkersDialog-605a60e2.mjs} +139 -63
  8. package/lib/{RegionNavigationDialog-0808549f.mjs → RegionNavigationDialog-b0b6f86b.mjs} +30 -26
  9. package/lib/{ViewBookmarksDialog-60c9e851.mjs → ViewBookmarksDialog-475f44f3.mjs} +251 -92
  10. package/lib/{index-b3c7ea8d.mjs → index-30b0d26c.mjs} +1 -1
  11. package/lib/{index-05da77ba.mjs → index-7f38e279.mjs} +3361 -1919
  12. package/lib/{index-7aae577e.mjs → index-ecd9c14c.mjs} +14 -17
  13. package/lib/{index.es-e4a6ccb9.mjs → index.es-d464d539.mjs} +1 -1
  14. package/lib/index.esm.js +63 -63
  15. package/lib/index.umd.js +3956 -2128
  16. package/lib/style.css +707 -633
  17. package/package.json +2 -2
  18. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts +11 -11
  19. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts.map +1 -1
  20. package/types/src/components/CustomDialog/dialogCache.d.ts.map +1 -1
  21. package/types/src/components/CustomDialog/icons/index.d.ts.map +1 -1
  22. package/types/src/components/CustomDialog/index.d.ts.map +1 -1
  23. package/types/src/components/OlBaseLayerSwitcher.vue.d.ts.map +1 -1
  24. package/types/src/components/OlControlPanel.vue.d.ts +2 -2
  25. package/types/src/components/OlControlPanel.vue.d.ts.map +1 -1
  26. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts +1 -1
  27. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts.map +1 -1
  28. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts +1 -1
  29. package/types/src/components/OlDialogs/CoordinateLocationDialog.vue.d.ts.map +1 -1
  30. package/types/src/components/OlDialogs/DialogManager.d.ts +1 -1
  31. package/types/src/components/OlDialogs/DialogManager.d.ts.map +1 -1
  32. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts +3 -3
  33. package/types/src/components/OlDialogs/FilterPanel.vue.d.ts.map +1 -1
  34. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts +786 -786
  35. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts.map +1 -1
  36. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts +3 -3
  37. package/types/src/components/OlDialogs/LayerStyleConfig.vue.d.ts.map +1 -1
  38. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts +5 -5
  39. package/types/src/components/OlDialogs/LayerTreeNode.vue.d.ts.map +1 -1
  40. package/types/src/components/OlDialogs/MapDrawingDialog/index.vue.d.ts.map +1 -1
  41. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts +2 -2
  42. package/types/src/components/OlDialogs/MapPrintDialog.vue.d.ts.map +1 -1
  43. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts +1 -1
  44. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts.map +1 -1
  45. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts +2 -2
  46. package/types/src/components/OlDialogs/MyMarkersDialog.vue.d.ts.map +1 -1
  47. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts +5 -5
  48. package/types/src/components/OlDialogs/RegionNavigationDialog.vue.d.ts.map +1 -1
  49. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts +2 -2
  50. package/types/src/components/OlDialogs/ViewBookmarksDialog.vue.d.ts.map +1 -1
  51. package/types/src/components/OlDialogs/registry.d.ts.map +1 -1
  52. package/types/src/components/OlDrawToolbar.vue.d.ts +16 -16
  53. package/types/src/components/OlDrawToolbar.vue.d.ts.map +1 -1
  54. package/types/src/components/OlLegendPanel.vue.d.ts +1 -1
  55. package/types/src/components/OlLegendPanel.vue.d.ts.map +1 -1
  56. package/types/src/components/OlMapContainer.vue.d.ts +31 -31
  57. package/types/src/components/OlMapContainer.vue.d.ts.map +1 -1
  58. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts +4 -4
  59. package/types/src/components/OlMapPopup/ArrayPopup.vue.d.ts.map +1 -1
  60. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts +6 -6
  61. package/types/src/components/OlMapPopup/BasePopup.vue.d.ts.map +1 -1
  62. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts +3 -3
  63. package/types/src/components/OlMapPopup/HtmlPopup.vue.d.ts.map +1 -1
  64. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts +3 -3
  65. package/types/src/components/OlMapPopup/ImagePopup.vue.d.ts.map +1 -1
  66. package/types/src/components/OlMapPopup/index.d.ts +1 -1
  67. package/types/src/components/OlMapPopup/index.d.ts.map +1 -1
  68. package/types/src/components/OlMapPopup/types.d.ts +12 -12
  69. package/types/src/components/OlMapPopup/types.d.ts.map +1 -1
  70. package/types/src/components/OlMapSearch.vue.d.ts +3 -3
  71. package/types/src/components/OlMapSearch.vue.d.ts.map +1 -1
  72. package/types/src/components/OlMapTooltip.vue.d.ts +8 -8
  73. package/types/src/components/OlMapTooltip.vue.d.ts.map +1 -1
  74. package/types/src/components/SvgIcon/index.vue.d.ts.map +1 -1
  75. package/types/src/core/EventBus.d.ts.map +1 -1
  76. package/types/src/core/EventManager.d.ts.map +1 -1
  77. package/types/src/core/FeatureHighlightManager.d.ts.map +1 -1
  78. package/types/src/core/GlobalStyleManager.d.ts +1 -1
  79. package/types/src/core/LayerConfigManager.d.ts.map +1 -1
  80. package/types/src/core/LayerManager.d.ts +2 -2
  81. package/types/src/core/LayerManager.d.ts.map +1 -1
  82. package/types/src/core/LayerTreeManager.d.ts +1 -1
  83. package/types/src/core/LayerTreeManager.d.ts.map +1 -1
  84. package/types/src/core/MapManager.d.ts +15 -15
  85. package/types/src/core/MapManager.d.ts.map +1 -1
  86. package/types/src/core/MarkerDrawingAdapter.d.ts.map +1 -1
  87. package/types/src/core/PluginManager.d.ts +1 -1
  88. package/types/src/core/PluginManager.d.ts.map +1 -1
  89. package/types/src/core/PopupManager.d.ts.map +1 -1
  90. package/types/src/core/SearchMarkerManager.d.ts.map +1 -1
  91. package/types/src/core/TooltipHelper.d.ts +1 -1
  92. package/types/src/core/TooltipHelper.d.ts.map +1 -1
  93. package/types/src/core/amapSearchApi.d.ts.map +1 -1
  94. package/types/src/core/configLoader.d.ts +33 -33
  95. package/types/src/core/configLoader.d.ts.map +1 -1
  96. package/types/src/core/drawing/BaseDrawing.d.ts.map +1 -1
  97. package/types/src/core/drawing/DrawingManager.d.ts.map +1 -1
  98. package/types/src/core/drawing/IconDrawing.d.ts.map +1 -1
  99. package/types/src/core/drawing/ImageDrawing.d.ts.map +1 -1
  100. package/types/src/core/drawing/LineDrawing.d.ts.map +1 -1
  101. package/types/src/core/drawing/MilitaryDrawing.d.ts.map +1 -1
  102. package/types/src/core/drawing/MultiLineStringDrawing.d.ts.map +1 -1
  103. package/types/src/core/drawing/MultiPointDrawing.d.ts.map +1 -1
  104. package/types/src/core/drawing/MultiPolygonDrawing.d.ts.map +1 -1
  105. package/types/src/core/drawing/PointDrawing.d.ts +2 -2
  106. package/types/src/core/drawing/PointDrawing.d.ts.map +1 -1
  107. package/types/src/core/drawing/PointWithTextDrawing.d.ts +2 -2
  108. package/types/src/core/drawing/PointWithTextDrawing.d.ts.map +1 -1
  109. package/types/src/core/drawing/PolygonDrawing.d.ts.map +1 -1
  110. package/types/src/core/drawing/TextDrawing.d.ts.map +1 -1
  111. package/types/src/core/drawing/index.d.ts +12 -12
  112. package/types/src/core/drawing/index.d.ts.map +1 -1
  113. package/types/src/core/geoJsonLocationTool.d.ts +3 -3
  114. package/types/src/core/geoJsonLocationTool.d.ts.map +1 -1
  115. package/types/src/core/layers/BaseLayer.d.ts +1 -1
  116. package/types/src/core/layers/BaseLayer.d.ts.map +1 -1
  117. package/types/src/core/layers/CanvasLayerHandler.d.ts.map +1 -1
  118. package/types/src/core/layers/ClusterLayerHandler.d.ts.map +1 -1
  119. package/types/src/core/layers/GMLLayerHandler.d.ts.map +1 -1
  120. package/types/src/core/layers/GeoJSONLayerHandler.d.ts.map +1 -1
  121. package/types/src/core/layers/HeatmapLayerHandler.d.ts.map +1 -1
  122. package/types/src/core/layers/ImageVectorLayerHandler.d.ts.map +1 -1
  123. package/types/src/core/layers/KMLLayerHandler.d.ts.map +1 -1
  124. package/types/src/core/layers/LayerFactory.d.ts.map +1 -1
  125. package/types/src/core/layers/SuperMapServiceTester.d.ts.map +1 -1
  126. package/types/src/core/layers/SuperMapTiledMapServiceHandler.d.ts.map +1 -1
  127. package/types/src/core/layers/TiandituConfigHelper.d.ts.map +1 -1
  128. package/types/src/core/layers/TiandituLayerHandler.d.ts.map +1 -1
  129. package/types/src/core/layers/TileLayerHandler.d.ts.map +1 -1
  130. package/types/src/core/layers/TileSuperMapRestHandler.d.ts +1 -1
  131. package/types/src/core/layers/TileSuperMapRestHandler.d.ts.map +1 -1
  132. package/types/src/core/layers/VectorTileLayerHandler.d.ts +3 -3
  133. package/types/src/core/layers/VectorTileLayerHandler.d.ts.map +1 -1
  134. package/types/src/core/layers/WFSLayerHandler.d.ts +1 -1
  135. package/types/src/core/layers/WFSLayerHandler.d.ts.map +1 -1
  136. package/types/src/core/layers/WKTLayerHandler.d.ts.map +1 -1
  137. package/types/src/core/layers/WMSLayerHandler.d.ts +1 -1
  138. package/types/src/core/layers/WMSLayerHandler.d.ts.map +1 -1
  139. package/types/src/core/layers/WMTSLayerHandler.d.ts.map +1 -1
  140. package/types/src/core/layers/interfaces.d.ts +1 -1
  141. package/types/src/core/layers/interfaces.d.ts.map +1 -1
  142. package/types/src/core/mapOperationTool.d.ts.map +1 -1
  143. package/types/src/core/measurementTool.d.ts.map +1 -1
  144. package/types/src/core/overviewMapUtil.d.ts.map +1 -1
  145. package/types/src/core/proxyHelper.d.ts +1 -1
  146. package/types/src/core/proxyHelper.d.ts.map +1 -1
  147. package/types/src/core/storage.d.ts.map +1 -1
  148. package/types/src/core/styles/StyleFactory.d.ts.map +1 -1
  149. package/types/src/core/styles/StyleManager.d.ts.map +1 -1
  150. package/types/src/core/styles/index.d.ts +1 -1
  151. package/types/src/core/styles/index.d.ts.map +1 -1
  152. package/types/src/core/styles/interfaces.d.ts +3 -3
  153. package/types/src/core/styles/interfaces.d.ts.map +1 -1
  154. package/types/src/core/tiandituSearchApi.d.ts.map +1 -1
  155. package/types/src/hooks/useMap.d.ts.map +1 -1
  156. package/types/src/services/searchService.d.ts +2 -2
  157. package/types/src/services/searchService.d.ts.map +1 -1
  158. package/types/src/style.d.ts.map +1 -1
  159. package/types/src/types/map.d.ts +75 -0
  160. package/types/src/types/map.d.ts.map +1 -1
  161. package/types/src/utils/DiffusionAnimationHelper.d.ts.map +1 -1
  162. package/types/src/utils/GifAnimationHelper.d.ts.map +1 -1
  163. package/types/src/utils/coordinateTransform.d.ts.map +1 -1
  164. package/types/src/utils/html2pdf.d.ts +3 -0
  165. package/types/src/utils/html2pdf.d.ts.map +1 -1
  166. package/types/src/utils/index.d.ts +1 -1
  167. package/types/src/utils/index.d.ts.map +1 -1
  168. package/types/src/utils/unitConverter.d.ts.map +1 -1
  169. package/types/tsconfig.tsbuildinfo +1 -1
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-8c624b16] {
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-8c624b16]: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-8c624b16] {
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-8c624b16] {
903
+ flex-direction: row;
904
+ height: fit-content;
905
+ }
906
+ .control-section[data-v-8c624b16] {
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-8c624b16] {
914
+ flex-direction: column;
915
+ width: 100%;
916
+ }
917
+ .flex-row .control-section[data-v-8c624b16] {
918
+ flex-direction: row;
919
+ height: 100%;
920
+ }
921
+ .control-divider[data-v-8c624b16] {
922
+ background-color: var(--el-border-color-light);
923
+ }
924
+ .flex-col .control-divider[data-v-8c624b16] {
925
+ width: 80%;
926
+ height: 1px;
927
+ margin: 4px 0;
928
+ }
929
+ .flex-row .control-divider[data-v-8c624b16] {
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-8c624b16] {
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-8c624b16]: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-8c624b16] .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-8c624b16] .el-button,[data-v-8c624b16] .el-slider,[data-v-8c624b16] .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,277 +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 {
1256
+ .layer-dialog {
1227
1257
  /* 全局样式面板样式 */
1228
- .global-style-panel {
1229
- padding: 16px;
1230
- 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);
1231
1261
  background-color: var(--el-fill-color-light);
1232
- .panel-title {
1233
- margin: 0 0 16px 0;
1234
- font-size: 14px;
1235
- font-weight: 600;
1236
- color: var(--el-text-color-primary);
1237
- 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);
1238
1268
  padding-bottom: 8px;
1239
1269
  }
1240
- .config-section {
1270
+ .config-section {
1241
1271
  margin-bottom: 16px;
1242
- h5 {
1243
- margin: 0 0 12px 0;
1244
- font-size: 13px;
1245
- font-weight: 500;
1272
+ h5 {
1273
+ margin: 0 0 12px 0;
1274
+ font-size: 13px;
1275
+ font-weight: 500;
1246
1276
  color: var(--el-text-color-regular);
1247
1277
  }
1248
- .config-item {
1249
- display: flex;
1250
- align-items: center;
1251
- margin-bottom: 12px;
1278
+ .config-item {
1279
+ display: flex;
1280
+ align-items: center;
1281
+ margin-bottom: 12px;
1252
1282
  gap: 8px;
1253
- label {
1254
- flex: 0 0 60px;
1255
- font-size: 12px;
1283
+ label {
1284
+ flex: 0 0 60px;
1285
+ font-size: 12px;
1256
1286
  color: var(--el-text-color-regular);
1257
1287
  }
1258
- .el-slider {
1259
- flex: 1;
1288
+ .el-slider {
1289
+ flex: 1;
1260
1290
  margin: 0 8px;
1261
1291
  }
1262
- .value-text {
1263
- flex: 0 0 45px;
1264
- font-size: 12px;
1265
- 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);
1266
1296
  text-align: right;
1267
1297
  }
1268
1298
  }
1269
- .preset-buttons {
1270
- display: flex;
1271
- gap: 6px;
1299
+ .preset-buttons {
1300
+ display: flex;
1301
+ gap: 6px;
1272
1302
  flex-wrap: wrap;
1273
- .el-button {
1274
- flex: 1;
1303
+ .el-button {
1304
+ flex: 1;
1275
1305
  min-width: 60px;
1276
1306
  }
1277
1307
  }
1278
1308
  }
1279
- .panel-actions {
1280
- margin-top: 16px;
1281
- padding-top: 12px;
1282
- 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);
1283
1313
  text-align: center;
1284
1314
  }
1285
- .custom-css-input {
1286
- font-family: "Courier New", monospace;
1287
- font-size: 12px;
1315
+ .custom-css-input {
1316
+ font-family: "Courier New", monospace;
1317
+ font-size: 12px;
1288
1318
  line-height: 1.4;
1289
1319
  }
1290
- .custom-css-input :deep(.el-textarea__inner) {
1291
- font-family: "Courier New", monospace;
1292
- font-size: 12px;
1293
- line-height: 1.4;
1294
- 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);
1295
1325
  border: 1px solid var(--el-border-color-light);
1296
1326
  }
1297
1327
  .style-tabs {
1298
- :deep(.el-tabs__header) {
1328
+ :deep(.el-tabs__header) {
1299
1329
  margin: 0 0 16px 0;
1300
1330
  }
1301
- :deep(.el-tabs__nav-wrap) {
1331
+ :deep(.el-tabs__nav-wrap) {
1302
1332
  padding: 0;
1303
1333
  }
1304
- :deep(.el-tabs__item) {
1305
- font-size: 12px;
1306
- padding: 0 16px;
1307
- height: 32px;
1334
+ :deep(.el-tabs__item) {
1335
+ font-size: 12px;
1336
+ padding: 0 16px;
1337
+ height: 32px;
1308
1338
  line-height: 32px;
1309
1339
  }
1310
- :deep(.el-tabs__content) {
1340
+ :deep(.el-tabs__content) {
1311
1341
  padding: 0;
1312
1342
  }
1313
1343
  }
1314
- .current-style-display {
1315
- margin-top: 16px;
1316
- padding: 12px;
1317
- background-color: var(--el-fill-color-light);
1318
- 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;
1319
1349
  border: 1px solid var(--el-border-color-light);
1320
- h6 {
1321
- margin: 0 0 8px 0;
1322
- font-size: 12px;
1323
- font-weight: 500;
1350
+ h6 {
1351
+ margin: 0 0 8px 0;
1352
+ font-size: 12px;
1353
+ font-weight: 500;
1324
1354
  color: var(--el-text-color-regular);
1325
1355
  }
1326
- .style-preview {
1327
- font-family: "Courier New", monospace;
1328
- font-size: 11px;
1329
- line-height: 1.4;
1330
- color: var(--el-text-color-primary);
1331
- background-color: var(--el-bg-color-overlay);
1332
- padding: 8px;
1333
- border-radius: 3px;
1334
- border: 1px solid var(--el-border-color-light);
1335
- word-break: break-all;
1336
- white-space: pre-wrap;
1337
- 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;
1338
1368
  overflow-y: auto;
1339
1369
  }
1340
1370
  }
1341
- }
1342
-
1371
+ }
1372
+
1343
1373
  /* 主标签页样式 */
1344
- .main-tabs {
1345
- height: 100%;
1346
- display: flex;
1374
+ .main-tabs {
1375
+ height: 100%;
1376
+ display: flex;
1347
1377
  flex-direction: column;
1348
1378
  }
1349
- .main-tabs .el-tabs__content {
1350
- flex: 1;
1351
- overflow: hidden;
1379
+ .main-tabs .el-tabs__content {
1380
+ flex: 1;
1381
+ overflow: hidden;
1352
1382
  padding: 0;
1353
1383
  }
1354
- .main-tabs .el-tab-pane {
1355
- height: 100%;
1356
- overflow: auto;
1357
- display: flex;
1384
+ .main-tabs .el-tab-pane {
1385
+ height: 100%;
1386
+ overflow: auto;
1387
+ display: flex;
1358
1388
  flex-direction: column;
1359
1389
  }
1360
1390
  .layer-tree {
1361
- .tree-node-content {
1391
+ .tree-node-content {
1362
1392
  width: 100%;
1363
- .group-node {
1364
- display: flex;
1365
- align-items: center;
1393
+ .group-node {
1394
+ display: flex;
1395
+ align-items: center;
1366
1396
  padding: 8px 0;
1367
1397
  }
1368
- .layer-item {
1369
- display: flex;
1370
- align-items: center;
1371
- justify-content: space-between;
1372
- width: 100%;
1398
+ .layer-item {
1399
+ display: flex;
1400
+ align-items: center;
1401
+ justify-content: space-between;
1402
+ width: 100%;
1373
1403
  padding: 6px 0;
1374
- .layer-info {
1375
- display: flex;
1376
- align-items: center;
1377
- flex: 1;
1404
+ .layer-info {
1405
+ display: flex;
1406
+ align-items: center;
1407
+ flex: 1;
1378
1408
  min-width: 0;
1379
- .layer-icon {
1380
- margin-right: 8px;
1409
+ .layer-icon {
1410
+ margin-right: 8px;
1381
1411
  flex-shrink: 0;
1382
1412
  }
1383
- .layer-name {
1384
- font-size: 14px;
1385
- color: var(--el-text-color-primary);
1386
- white-space: nowrap;
1387
- overflow: hidden;
1413
+ .layer-name {
1414
+ font-size: 14px;
1415
+ color: var(--el-text-color-primary);
1416
+ white-space: nowrap;
1417
+ overflow: hidden;
1388
1418
  text-overflow: ellipsis;
1389
1419
  }
1390
1420
  }
1391
- .layer-controls {
1392
- display: flex;
1393
- align-items: center;
1421
+ .layer-controls {
1422
+ display: flex;
1423
+ align-items: center;
1394
1424
  gap: 8px;
1395
- .opacity-control {
1396
- display: flex;
1397
- align-items: center;
1398
- gap: 8px;
1425
+ .opacity-control {
1426
+ display: flex;
1427
+ align-items: center;
1428
+ gap: 8px;
1399
1429
  min-width: 120px;
1400
- .opacity-slider {
1401
- flex: 1;
1430
+ .opacity-slider {
1431
+ flex: 1;
1402
1432
  min-width: 80px;
1403
1433
  }
1404
- .opacity-value {
1405
- font-size: 12px;
1406
- color: var(--el-text-color-regular);
1407
- min-width: 35px;
1408
- 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;
1409
1439
  white-space: nowrap;
1410
1440
  }
1411
1441
  }
1412
- .style-config-btn {
1413
- width: 24px;
1414
- height: 24px;
1415
- padding: 0;
1442
+ .style-config-btn {
1443
+ width: 24px;
1444
+ height: 24px;
1445
+ padding: 0;
1416
1446
  margin-left: 4px;
1417
1447
  }
1418
1448
  }
1419
1449
  }
1420
1450
  }
1421
1451
  }
1422
- }
1423
-
1452
+ }
1453
+
1424
1454
  /* 样式配置面板样式 */
1425
1455
  :deep(.layer-style-popover) {
1426
- .style-config-panel {
1456
+ .style-config-panel {
1427
1457
  padding: 0;
1428
- .panel-title {
1429
- margin: 0 0 16px 0;
1430
- font-size: 14px;
1431
- font-weight: 600;
1432
- color: var(--el-text-color-primary);
1433
- 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);
1434
1464
  padding-bottom: 8px;
1435
1465
  }
1436
- .config-section {
1466
+ .config-section {
1437
1467
  margin-bottom: 16px;
1438
- h5 {
1439
- margin: 0 0 12px 0;
1440
- font-size: 13px;
1441
- font-weight: 500;
1468
+ h5 {
1469
+ margin: 0 0 12px 0;
1470
+ font-size: 13px;
1471
+ font-weight: 500;
1442
1472
  color: var(--el-text-color-regular);
1443
1473
  }
1444
- .config-item {
1445
- display: flex;
1446
- align-items: center;
1447
- margin-bottom: 12px;
1474
+ .config-item {
1475
+ display: flex;
1476
+ align-items: center;
1477
+ margin-bottom: 12px;
1448
1478
  gap: 8px;
1449
- label {
1450
- flex: 0 0 60px;
1451
- font-size: 12px;
1479
+ label {
1480
+ flex: 0 0 60px;
1481
+ font-size: 12px;
1452
1482
  color: var(--el-text-color-regular);
1453
1483
  }
1454
- .el-slider {
1455
- flex: 1;
1484
+ .el-slider {
1485
+ flex: 1;
1456
1486
  margin: 0 8px;
1457
1487
  }
1458
- .value-text {
1459
- flex: 0 0 45px;
1460
- font-size: 12px;
1461
- 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);
1462
1492
  text-align: right;
1463
1493
  }
1464
1494
  }
1465
- .preset-buttons {
1466
- display: flex;
1467
- gap: 6px;
1495
+ .preset-buttons {
1496
+ display: flex;
1497
+ gap: 6px;
1468
1498
  flex-wrap: wrap;
1469
- .el-button {
1470
- flex: 1;
1499
+ .el-button {
1500
+ flex: 1;
1471
1501
  min-width: 60px;
1472
1502
  }
1473
1503
  }
1474
1504
  }
1475
- .panel-actions {
1476
- margin-top: 16px;
1477
- padding-top: 12px;
1478
- 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);
1479
1509
  text-align: center;
1480
1510
  }
1481
- .custom-css-input {
1482
- font-family: "Courier New", monospace;
1483
- font-size: 12px;
1511
+ .custom-css-input {
1512
+ font-family: "Courier New", monospace;
1513
+ font-size: 12px;
1484
1514
  line-height: 1.4;
1485
1515
  }
1486
- .custom-css-input :deep(.el-textarea__inner) {
1487
- font-family: "Courier New", monospace;
1488
- font-size: 12px;
1489
- line-height: 1.4;
1490
- 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);
1491
1521
  border: 1px solid var(--el-border-color-light);
1492
1522
  }
1493
1523
  }
1494
- }
1524
+ }
1495
1525
 
1496
- .ol-base-layer-switcher[data-v-6a7660a8] {
1526
+ .ol-base-layer-switcher[data-v-83257bd9] {
1497
1527
  position: absolute;
1498
1528
  bottom: 20px;
1499
1529
  right: 20px;
@@ -1512,7 +1542,7 @@ label {
1512
1542
  }
1513
1543
 
1514
1544
  /* 列表面板 */
1515
- .layer-panel[data-v-6a7660a8] {
1545
+ .layer-panel[data-v-83257bd9] {
1516
1546
  display: flex;
1517
1547
  gap: 10px;
1518
1548
  height: 100%;
@@ -1521,7 +1551,7 @@ label {
1521
1551
  }
1522
1552
 
1523
1553
  /* 收起状态的触发器 */
1524
- .layer-trigger[data-v-6a7660a8] {
1554
+ .layer-trigger[data-v-83257bd9] {
1525
1555
  position: absolute;
1526
1556
  right: 5px;
1527
1557
  top: 5px;
@@ -1532,13 +1562,14 @@ label {
1532
1562
  z-index: 10;
1533
1563
  background: #fff; /* 遮挡下面的列表 */
1534
1564
  }
1535
- .layer-trigger.is-hidden[data-v-6a7660a8] {
1565
+ .layer-trigger.is-hidden[data-v-83257bd9] {
1536
1566
  opacity: 0;
1537
1567
  pointer-events: none;
1538
1568
  }
1539
1569
 
1540
1570
  /* 通用图层项样式 */
1541
- .layer-item[data-v-6a7660a8], .current-layer-box[data-v-6a7660a8] {
1571
+ .layer-item[data-v-83257bd9],
1572
+ .current-layer-box[data-v-83257bd9] {
1542
1573
  width: 86px;
1543
1574
  height: 60px;
1544
1575
  border-radius: 2px;
@@ -1551,16 +1582,16 @@ label {
1551
1582
  transition: all 0.2s;
1552
1583
  overflow: hidden;
1553
1584
  }
1554
- .layer-item[data-v-6a7660a8]:hover {
1585
+ .layer-item[data-v-83257bd9]:hover {
1555
1586
  border-color: #409eff;
1556
1587
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
1557
1588
  }
1558
- .layer-item.active[data-v-6a7660a8] {
1589
+ .layer-item.active[data-v-83257bd9] {
1559
1590
  border: 2px solid #409eff;
1560
1591
  }
1561
1592
 
1562
1593
  /* 选中状态的蓝色边框和对勾 */
1563
- .active-border[data-v-6a7660a8] {
1594
+ .active-border[data-v-83257bd9] {
1564
1595
  position: absolute;
1565
1596
  top: 0;
1566
1597
  left: 0;
@@ -1571,7 +1602,7 @@ label {
1571
1602
  border-radius: 2px;
1572
1603
  pointer-events: none;
1573
1604
  }
1574
- .check-icon[data-v-6a7660a8] {
1605
+ .check-icon[data-v-83257bd9] {
1575
1606
  position: absolute;
1576
1607
  bottom: 0;
1577
1608
  right: 0;
@@ -1580,7 +1611,7 @@ label {
1580
1611
  border-bottom: 24px solid #409eff;
1581
1612
  border-left: 24px solid transparent;
1582
1613
  }
1583
- .check-icon svg[data-v-6a7660a8] {
1614
+ .check-icon svg[data-v-83257bd9] {
1584
1615
  position: absolute;
1585
1616
  right: -1px;
1586
1617
  bottom: -13px;
@@ -1588,7 +1619,7 @@ label {
1588
1619
  }
1589
1620
 
1590
1621
  /* 图层名称标签 */
1591
- .layer-name[data-v-6a7660a8] {
1622
+ .layer-name[data-v-83257bd9] {
1592
1623
  position: absolute;
1593
1624
  bottom: 0;
1594
1625
  left: 0;
@@ -1603,41 +1634,41 @@ label {
1603
1634
  text-overflow: ellipsis;
1604
1635
  box-sizing: border-box;
1605
1636
  }
1606
- .layer-item:hover .layer-name[data-v-6a7660a8] {
1637
+ .layer-item:hover .layer-name[data-v-83257bd9] {
1607
1638
  background: rgba(0, 0, 0, 0.7);
1608
1639
  }
1609
-
1640
+
1610
1641
  /* 地图预览容器样式 */
1611
- .map-preview-container > div {
1612
- width: 100% !important;
1642
+ .map-preview-container > div {
1643
+ width: 100% !important;
1613
1644
  height: 100% !important;
1614
- }
1615
-
1645
+ }
1646
+
1616
1647
  /* 预览页面缩放变换 */
1617
- .preview-page {
1648
+ .preview-page {
1618
1649
  transform-origin: top center;
1619
- }
1620
-
1650
+ }
1651
+
1621
1652
  /* 确保地图容器有明确的尺寸 */
1622
- #map-preview-container {
1623
- width: 100% !important;
1624
- height: 400px !important;
1625
- min-height: 400px !important;
1653
+ #map-preview-container {
1654
+ width: 100% !important;
1655
+ height: 400px !important;
1656
+ min-height: 400px !important;
1626
1657
  position: relative !important;
1627
- }
1628
-
1658
+ }
1659
+
1629
1660
  /* OpenLayers地图容器样式 */
1630
- #map-preview-container .ol-viewport {
1631
- width: 100% !important;
1661
+ #map-preview-container .ol-viewport {
1662
+ width: 100% !important;
1632
1663
  height: 100% !important;
1633
- }
1634
-
1664
+ }
1665
+
1635
1666
  /* 确保Canvas元素正确显示 */
1636
- #map-preview-container canvas {
1637
- width: 100% !important;
1667
+ #map-preview-container canvas {
1668
+ width: 100% !important;
1638
1669
  height: 100% !important;
1639
- }
1640
- .context-menu[data-v-736d12b7] {
1670
+ }
1671
+ .context-menu[data-v-4eef8abb] {
1641
1672
  background: var(--el-bg-color-overlay);
1642
1673
  border: 1px solid var(--el-border-color-light);
1643
1674
  border-radius: var(--el-border-radius-base);
@@ -1646,7 +1677,7 @@ label {
1646
1677
  min-width: 140px;
1647
1678
  overflow: hidden;
1648
1679
  }
1649
- .context-menu .context-menu-item[data-v-736d12b7] {
1680
+ .context-menu .context-menu-item[data-v-4eef8abb] {
1650
1681
  display: flex;
1651
1682
  align-items: center;
1652
1683
  padding: 8px 16px;
@@ -1655,14 +1686,14 @@ label {
1655
1686
  color: var(--el-text-color-primary);
1656
1687
  transition: all 0.2s;
1657
1688
  }
1658
- .context-menu .context-menu-item[data-v-736d12b7]:hover {
1689
+ .context-menu .context-menu-item[data-v-4eef8abb]:hover {
1659
1690
  background-color: var(--el-fill-color-light);
1660
1691
  color: var(--el-color-primary);
1661
1692
  }
1662
- .context-menu .context-menu-item:hover .el-icon[data-v-736d12b7] {
1693
+ .context-menu .context-menu-item:hover .el-icon[data-v-4eef8abb] {
1663
1694
  color: var(--el-color-primary);
1664
1695
  }
1665
- .context-menu .context-menu-item .el-icon[data-v-736d12b7] {
1696
+ .context-menu .context-menu-item .el-icon[data-v-4eef8abb] {
1666
1697
  margin-right: 8px;
1667
1698
  font-size: 16px;
1668
1699
  color: var(--el-text-color-secondary);
@@ -2533,30 +2564,30 @@ to {
2533
2564
  /* 图例面板相关样式 */
2534
2565
  .legend-collapsed .panel-content {
2535
2566
  display: none;
2536
- }.measurement-content[data-v-60e80f64] {
2567
+ }.measurement-content[data-v-88b16326] {
2537
2568
  background: var(--el-bg-color);
2538
2569
  border-radius: var(--el-border-radius-base);
2539
2570
  overflow: hidden;
2540
2571
  }
2541
- .measurement-header[data-v-60e80f64] {
2572
+ .measurement-header[data-v-88b16326] {
2542
2573
  background: var(--el-bg-color-overlay);
2543
2574
  border-bottom: 1px solid var(--el-border-color-light);
2544
2575
  }
2545
- .measurement-result[data-v-60e80f64] {
2576
+ .measurement-result[data-v-88b16326] {
2546
2577
  background: var(--el-fill-color-light);
2547
2578
  border-bottom: 1px solid var(--el-border-color-light);
2548
2579
  display: flex;
2549
2580
  align-items: center;
2550
2581
  justify-content: center;
2551
2582
  }
2552
- .result-value[data-v-60e80f64] {
2583
+ .result-value[data-v-88b16326] {
2553
2584
  font-size: 42px;
2554
2585
  font-weight: 600;
2555
2586
  color: var(--el-color-primary);
2556
2587
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
2557
2588
  line-height: 1;
2558
2589
  }
2559
- .tool-grid[data-v-60e80f64] {
2590
+ .tool-grid[data-v-88b16326] {
2560
2591
  display: grid;
2561
2592
  grid-template-columns: repeat(4, 1fr);
2562
2593
  column-gap: 18px;
@@ -2564,7 +2595,7 @@ to {
2564
2595
  justify-items: center;
2565
2596
  align-items: start;
2566
2597
  }
2567
- .tool-item[data-v-60e80f64] {
2598
+ .tool-item[data-v-88b16326] {
2568
2599
  position: relative;
2569
2600
  display: flex;
2570
2601
  flex-direction: column;
@@ -2573,7 +2604,7 @@ to {
2573
2604
  user-select: none;
2574
2605
  transition: transform 0.2s ease;
2575
2606
  }
2576
- .tool-icon[data-v-60e80f64] {
2607
+ .tool-icon[data-v-88b16326] {
2577
2608
  width: 28px;
2578
2609
  height: 28px;
2579
2610
  padding: 14px;
@@ -2584,204 +2615,215 @@ to {
2584
2615
  transition: all 0.2s ease;
2585
2616
  margin-bottom: 10px;
2586
2617
  }
2587
- .tool-item:hover .tool-icon[data-v-60e80f64],
2588
- .tool-item.active .tool-icon[data-v-60e80f64] {
2618
+ .tool-item:hover .tool-icon[data-v-88b16326],
2619
+ .tool-item.active .tool-icon[data-v-88b16326] {
2589
2620
  transform: translateY(-2px);
2590
2621
  box-shadow: var(--el-box-shadow-light);
2591
2622
  border-color: var(--el-color-primary-light-5);
2592
2623
  background-color: var(--el-color-primary-light-9);
2593
2624
  }
2594
- .tool-label[data-v-60e80f64] {
2625
+ .tool-label[data-v-88b16326] {
2595
2626
  font-size: 14px;
2596
2627
  line-height: 1.2;
2597
2628
  color: var(--el-text-color-regular);
2598
2629
  font-weight: 500;
2599
2630
  white-space: nowrap;
2600
2631
  }
2601
- .dialog-footer[data-v-60e80f64] {
2632
+ .dialog-footer[data-v-88b16326] {
2602
2633
  display: none;
2603
- }
2634
+ }
2604
2635
  /* 底图对话框样式 */
2605
- .basemap-dialog[data-v-75f232fd] {
2636
+ .basemap-dialog[data-v-60bca8a2] {
2606
2637
  /* CustomDialog 会处理右侧滑入动画 */
2607
- }
2608
-
2638
+ }
2639
+
2609
2640
  /* 底图内容容器 */
2610
- .basemap-content[data-v-75f232fd] {
2611
- padding: 8px;
2612
- height: 100%;
2613
- overflow: visible;
2641
+ .basemap-content[data-v-60bca8a2] {
2642
+ padding: 8px;
2643
+ height: 100%;
2644
+ overflow: visible;
2614
2645
  background-color: var(--el-bg-color);
2615
- }
2616
-
2646
+ }
2647
+
2617
2648
  /* 底图网格布局 */
2618
- .basemap-grid[data-v-75f232fd] {
2619
- display: grid;
2620
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
2621
- gap: 8px;
2649
+ .basemap-grid[data-v-60bca8a2] {
2650
+ display: grid;
2651
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
2652
+ gap: 8px;
2622
2653
  padding: 8px 0;
2623
- }
2624
-
2654
+ }
2655
+
2625
2656
  /* 底图项目 */
2626
- .basemap-item[data-v-75f232fd] {
2627
- display: flex;
2628
- flex-direction: column;
2629
- align-items: center;
2630
- padding: 8px;
2631
- border: 2px solid transparent;
2632
- border-radius: var(--el-border-radius-base);
2633
- cursor: pointer;
2634
- transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
2635
- background: var(--el-bg-color-overlay);
2636
- 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);
2637
2668
  border: 1px solid var(--el-border-color-light);
2638
2669
  }
2639
- .basemap-item[data-v-75f232fd]:hover {
2640
- transform: translateY(-2px) scale(1.02);
2641
- 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);
2642
2673
  box-shadow: var(--el-box-shadow);
2643
2674
  }
2644
- .basemap-item.active[data-v-75f232fd] {
2645
- border-color: var(--el-color-primary);
2646
- 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);
2647
2678
  box-shadow: var(--el-box-shadow);
2648
- }
2649
-
2679
+ }
2680
+
2650
2681
  /* 底图预览图片 */
2651
- .basemap-preview[data-v-75f232fd] {
2652
- width: 92px;
2653
- height: 68px;
2654
- border-radius: var(--el-border-radius-small);
2655
- overflow: hidden;
2656
- margin-bottom: 8px;
2657
- box-shadow: var(--el-box-shadow-lighter);
2658
- transition: all 0.3s ease;
2659
- background: var(--el-fill-color-light);
2660
- display: flex;
2661
- 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;
2662
2693
  justify-content: center;
2663
2694
  }
2664
- .basemap-item:hover .basemap-preview[data-v-75f232fd] {
2665
- box-shadow: var(--el-box-shadow-light);
2695
+ .basemap-item:hover .basemap-preview[data-v-60bca8a2] {
2696
+ box-shadow: var(--el-box-shadow-light);
2666
2697
  transform: scale(1.05);
2667
2698
  }
2668
- .basemap-preview img[data-v-75f232fd] {
2669
- width: 100%;
2670
- height: 100%;
2671
- object-fit: cover;
2699
+ .basemap-preview img[data-v-60bca8a2] {
2700
+ width: 100%;
2701
+ height: 100%;
2702
+ object-fit: cover;
2672
2703
  transition: all 0.3s ease;
2673
- }
2674
-
2704
+ }
2705
+
2675
2706
  /* 底图名称 */
2676
- .basemap-name[data-v-75f232fd] {
2677
- font-size: 11px;
2678
- font-weight: 500;
2679
- color: var(--el-text-color-regular);
2680
- text-align: center;
2681
- line-height: 1.4;
2682
- 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;
2683
2714
  margin-top: 4px;
2684
2715
  }
2685
- .basemap-item:hover .basemap-name[data-v-75f232fd] {
2686
- color: var(--el-text-color-primary);
2716
+ .basemap-item:hover .basemap-name[data-v-60bca8a2] {
2717
+ color: var(--el-text-color-primary);
2687
2718
  font-weight: 600;
2688
2719
  }
2689
- .basemap-item.active .basemap-name[data-v-75f232fd] {
2690
- color: var(--el-color-primary);
2720
+ .basemap-item.active .basemap-name[data-v-60bca8a2] {
2721
+ color: var(--el-color-primary);
2691
2722
  font-weight: 600;
2692
- }
2693
-
2723
+ }
2724
+
2694
2725
  /* 响应式设计 */
2695
2726
  @media (max-width: 480px) {
2696
- .basemap-grid[data-v-75f232fd] {
2727
+ .basemap-grid[data-v-60bca8a2] {
2697
2728
  grid-template-columns: 1fr;
2698
2729
  }
2699
- }
2730
+ }
2700
2731
 
2701
- .coordinate-dialog {
2702
- --el-dialog-bg-color: #1a1a1a;
2732
+ .coordinate-dialog[data-v-0c70c644] {
2733
+ /* Inherits from global if not scoped, but we can override */
2703
2734
  }
2704
- .coordinate-content {
2705
- padding: 10px 0;
2735
+ .coordinate-content[data-v-0c70c644] {
2736
+ padding: 10px 20px;
2737
+ overflow-x: hidden;
2706
2738
  }
2707
- .format-selection {
2708
- margin-bottom: 20px;
2709
- padding: 15px;
2710
- background: #f8f9fa;
2711
- border-radius: 6px;
2712
- border: 1px solid #e9ecef;
2739
+ .format-selection[data-v-0c70c644] {
2740
+ margin-bottom: 24px;
2741
+ display: flex;
2742
+ justify-content: center;
2713
2743
  }
2714
- .format-title {
2715
- font-weight: 500;
2716
- margin-bottom: 10px;
2717
- color: #495057;
2744
+ .coordinate-input[data-v-0c70c644] {
2745
+ margin-bottom: 8px;
2718
2746
  }
2719
- .format-options {
2720
- display: flex;
2721
- 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;
2722
2763
  }
2723
- .format-options :deep(.el-radio) {
2724
- margin-right: 0;
2764
+ .action-btn[data-v-0c70c644] {
2765
+ padding: 10px 20px;
2766
+ font-weight: 500;
2725
2767
  }
2726
- .coordinate-input {
2727
- margin-bottom: 20px;
2768
+ .mr-1[data-v-0c70c644] {
2769
+ margin-right: 4px;
2728
2770
  }
2729
- .dialog-footer {
2730
- 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);
2731
2776
  }
2732
- .dialog-footer .el-button {
2733
- margin-left: 10px;
2734
- }
2735
2777
 
2736
2778
  .region-dialog {
2737
- .region-content {
2738
- max-height: 500px;
2779
+ .region-content {
2780
+ max-height: 500px;
2739
2781
  overflow-y: auto;
2740
2782
  }
2741
- :deep(.el-tabs__header) {
2783
+ :deep(.el-tabs__header) {
2742
2784
  margin: 0 0 20px 0;
2743
2785
  }
2744
- :deep(.el-tabs__nav-wrap) {
2786
+ :deep(.el-tabs__nav-wrap) {
2745
2787
  padding: 0 20px;
2746
2788
  }
2747
- :deep(.el-tabs__item) {
2748
- font-size: 16px;
2749
- font-weight: 500;
2789
+ :deep(.el-tabs__item) {
2790
+ font-size: 16px;
2791
+ font-weight: 500;
2750
2792
  color: #606266;
2751
- &.is-active {
2752
- color: #409eff;
2793
+ &.is-active {
2794
+ color: #409eff;
2753
2795
  font-weight: 600;
2754
2796
  }
2755
2797
  }
2756
- :deep(.el-tabs__active-bar) {
2798
+ :deep(.el-tabs__active-bar) {
2757
2799
  background-color: #409eff;
2758
2800
  }
2759
2801
  .region-categories {
2760
- .region-group {
2802
+ .region-group {
2761
2803
  margin-bottom: 20px;
2762
- .group-title {
2763
- font-size: 14px;
2764
- font-weight: 600;
2765
- color: #606266;
2766
- margin-bottom: 10px;
2767
- 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;
2768
2810
  border-left: 3px solid #409eff;
2769
2811
  }
2770
- .region-items {
2771
- display: flex;
2772
- flex-wrap: wrap;
2812
+ .region-items {
2813
+ display: flex;
2814
+ flex-wrap: wrap;
2773
2815
  gap: 8px;
2774
- .region-btn {
2775
- margin: 0;
2776
- padding: 8px 16px;
2777
- border: 1px solid #dcdfe6;
2778
- border-radius: 4px;
2779
- background: #fff;
2780
- 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;
2781
2823
  transition: all 0.3s;
2782
- &:hover {
2783
- color: #409eff;
2784
- border-color: #409eff;
2824
+ &:hover {
2825
+ color: #409eff;
2826
+ border-color: #409eff;
2785
2827
  background: #ecf5ff;
2786
2828
  }
2787
2829
  }
@@ -2789,36 +2831,36 @@ to {
2789
2831
  }
2790
2832
  }
2791
2833
  .beijing-districts {
2792
- .district-grid {
2793
- display: grid;
2794
- grid-template-columns: repeat(5, 1fr);
2795
- gap: 12px;
2834
+ .district-grid {
2835
+ display: grid;
2836
+ grid-template-columns: repeat(5, 1fr);
2837
+ gap: 12px;
2796
2838
  padding: 10px;
2797
- .district-btn {
2798
- padding: 12px 8px;
2799
- border: 1px solid #dcdfe6;
2800
- border-radius: 6px;
2801
- background: #fff;
2802
- color: #606266;
2803
- font-size: 14px;
2804
- text-align: center;
2805
- transition: all 0.3s;
2806
- cursor: pointer;
2807
- min-height: 44px;
2808
- display: flex;
2809
- 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;
2810
2852
  justify-content: center;
2811
- &:hover {
2812
- color: #409eff;
2813
- border-color: #409eff;
2814
- background: #ecf5ff;
2815
- transform: translateY(-2px);
2853
+ &:hover {
2854
+ color: #409eff;
2855
+ border-color: #409eff;
2856
+ background: #ecf5ff;
2857
+ transform: translateY(-2px);
2816
2858
  box-shadow: 0 4px 8px rgba(64, 158, 255, 0.2);
2817
2859
  }
2818
- &.active {
2819
- color: #fff;
2820
- background: #409eff;
2821
- border-color: #409eff;
2860
+ &.active {
2861
+ color: #fff;
2862
+ background: #409eff;
2863
+ border-color: #409eff;
2822
2864
  box-shadow: 0 4px 8px rgba(64, 158, 255, 0.3);
2823
2865
  }
2824
2866
  }
@@ -2828,8 +2870,8 @@ to {
2828
2870
  @media (max-width: 768px) {
2829
2871
  .region-dialog {
2830
2872
  .beijing-districts {
2831
- .district-grid {
2832
- grid-template-columns: repeat(3, 1fr);
2873
+ .district-grid {
2874
+ grid-template-columns: repeat(3, 1fr);
2833
2875
  gap: 8px;
2834
2876
  }
2835
2877
  }
@@ -2838,234 +2880,266 @@ to {
2838
2880
  @media (max-width: 480px) {
2839
2881
  .region-dialog {
2840
2882
  .beijing-districts {
2841
- .district-grid {
2883
+ .district-grid {
2842
2884
  grid-template-columns: repeat(2, 1fr);
2843
2885
  }
2844
2886
  }
2845
2887
  }
2846
- }
2847
-
2848
- .markers-dialog {
2849
- --el-dialog-bg-color: #1a1a1a;
2850
2888
  }
2851
- .markers-content {
2852
- padding: 10px 0;
2889
+ .markers-dialog .el-dialog__body {
2890
+ padding: 0 !important;
2853
2891
  }
2854
- .toolbar {
2855
- margin-bottom: 15px;
2856
- display: flex;
2857
- gap: 10px;
2892
+ .markers-content {
2893
+ height: 100%;
2894
+ display: flex;
2895
+ flex-direction: column;
2896
+ background-color: var(--el-bg-color);
2858
2897
  }
2859
- .toolbar .adding-marker {
2860
- background-color: #f56c6c !important;
2861
- border-color: #f56c6c !important;
2862
- 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);
2863
2905
  }
2864
- @keyframes pulse {
2865
- 0% {
2866
- 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;
2867
2910
  }
2868
- 70% {
2869
- 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);
2870
2918
  }
2871
- 100% {
2872
- 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;
2873
2923
  }
2924
+ .markers-content .markers-list .markers-table {
2925
+ width: 100%;
2874
2926
  }
2875
- .search-filter {
2876
- margin-bottom: 15px;
2877
- display: flex;
2927
+ .markers-content .markers-list .markers-table .marker-name {
2928
+ display: flex;
2878
2929
  align-items: center;
2930
+ gap: 8px;
2931
+ font-weight: 500;
2932
+ color: var(--el-text-color-primary);
2879
2933
  }
2880
- .markers-list {
2881
- margin-bottom: 20px;
2882
- }
2883
- .markers-table {
2884
- --el-table-bg-color: transparent;
2885
- --el-table-tr-bg-color: transparent;
2886
- --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);
2887
2936
  }
2888
- .marker-name {
2889
- display: flex;
2890
- align-items: center;
2891
- gap: 5px;
2937
+ .markers-content .markers-list .markers-table .delete-btn:hover {
2938
+ color: var(--el-color-danger-light-3);
2892
2939
  }
2893
- .delete-btn {
2894
- color: #f56c6c;
2940
+ @keyframes pulse {
2941
+ 0% {
2942
+ box-shadow: 0 0 0 0 rgba(245, 108, 108, 0.7);
2895
2943
  }
2896
- .delete-btn:hover {
2897
- color: #f78989;
2944
+ 70% {
2945
+ box-shadow: 0 0 0 10px rgba(245, 108, 108, 0);
2898
2946
  }
2899
- .statistics {
2900
- padding: 15px;
2901
- background: rgba(64, 158, 255, 0.05);
2902
- border-radius: 6px;
2903
- border: 1px solid rgba(64, 158, 255, 0.2);
2947
+ 100% {
2948
+ box-shadow: 0 0 0 0 rgba(245, 108, 108, 0);
2904
2949
  }
2905
- .dialog-footer {
2906
- text-align: right;
2907
- }
2908
-
2909
- .bookmarks-dialog {
2910
- --el-dialog-bg-color: #1a1a1a;
2950
+ }.bookmarks-dialog .el-dialog__body {
2951
+ padding: 0 !important;
2911
2952
  }
2912
- .bookmarks-content {
2913
- padding: 10px 0;
2953
+ .bookmarks-content {
2954
+ height: 100%;
2955
+ display: flex;
2956
+ flex-direction: column;
2957
+ background-color: var(--el-bg-color);
2914
2958
  }
2915
- .toolbar {
2916
- margin-bottom: 15px;
2917
- display: flex;
2918
- 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;
2919
2967
  }
2920
- .search-filter {
2921
- margin-bottom: 15px;
2922
- display: flex;
2968
+ .bookmarks-content .search-filter {
2969
+ padding: 12px 16px;
2970
+ display: flex;
2923
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;
2924
2976
  }
2925
- .bookmarks-grid {
2926
- display: grid;
2927
- grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
2928
- gap: 15px;
2929
- margin-bottom: 20px;
2930
- max-height: 400px;
2977
+ .bookmarks-content .bookmarks-grid {
2978
+ flex: 1;
2931
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;
2932
2986
  }
2933
- .bookmark-card {
2934
- border: 1px solid #303133;
2935
- border-radius: 8px;
2936
- overflow: hidden;
2937
- background: rgba(255, 255, 255, 0.02);
2938
- 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;
2939
3007
  cursor: pointer;
3008
+ display: flex;
3009
+ flex-direction: column;
2940
3010
  }
2941
- .bookmark-card:hover {
2942
- border-color: #409eff;
2943
- 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);
2944
3014
  transform: translateY(-2px);
2945
3015
  }
2946
- .bookmark-thumbnail {
2947
- position: relative;
2948
- height: 120px;
2949
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
2950
- display: flex;
2951
- 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;
2952
3022
  justify-content: center;
3023
+ overflow: hidden;
2953
3024
  }
2954
- .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 {
2955
3031
  opacity: 0.6;
2956
3032
  }
2957
- .bookmark-overlay {
2958
- position: absolute;
2959
- top: 0;
2960
- left: 0;
2961
- right: 0;
2962
- bottom: 0;
2963
- background: rgba(0, 0, 0, 0.7);
2964
- display: flex;
2965
- align-items: center;
2966
- justify-content: center;
2967
- 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;
2968
3044
  transition: opacity 0.3s ease;
3045
+ backdrop-filter: blur(2px);
2969
3046
  }
2970
- .bookmark-card:hover .bookmark-overlay {
3047
+ .bookmarks-content .bookmark-card:hover .bookmark-overlay {
2971
3048
  opacity: 1;
2972
3049
  }
2973
- .bookmark-info {
3050
+ .bookmarks-content .bookmark-card .bookmark-info {
2974
3051
  padding: 12px;
3052
+ flex: 1;
3053
+ display: flex;
3054
+ flex-direction: column;
2975
3055
  }
2976
- .bookmark-title {
2977
- font-size: 16px;
2978
- font-weight: bold;
2979
- color: #e4e7ed;
2980
- margin-bottom: 8px;
2981
- white-space: nowrap;
2982
- 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;
2983
3063
  text-overflow: ellipsis;
2984
3064
  }
2985
- .bookmark-meta {
2986
- display: flex;
2987
- justify-content: space-between;
2988
- align-items: center;
3065
+ .bookmarks-content .bookmark-card .bookmark-info .bookmark-meta {
3066
+ display: flex;
3067
+ justify-content: space-between;
3068
+ align-items: center;
2989
3069
  margin-bottom: 8px;
2990
3070
  }
2991
- .use-count {
2992
- font-size: 12px;
2993
- color: #909399;
2994
- }
2995
- .bookmark-description {
2996
- font-size: 12px;
2997
- color: #c0c4cc;
2998
- margin-bottom: 8px;
2999
- line-height: 1.4;
3000
- display: -webkit-box;
3001
- -webkit-line-clamp: 2;
3002
- -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;
3003
3083
  overflow: hidden;
3084
+ height: 36px;
3004
3085
  }
3005
- .bookmark-details {
3006
- display: flex;
3007
- flex-direction: column;
3008
- gap: 4px;
3009
- 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);
3010
3093
  }
3011
- .detail-item {
3012
- display: flex;
3013
- align-items: center;
3014
- gap: 4px;
3015
- font-size: 11px;
3016
- 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);
3017
3100
  }
3018
- .bookmark-time {
3019
- font-size: 11px;
3020
- 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);
3021
3105
  text-align: right;
3022
3106
  }
3023
- .delete-btn {
3024
- color: #f56c6c;
3025
- }
3026
- .delete-btn:hover {
3027
- color: #f78989;
3028
- }
3029
- .empty-state {
3030
- text-align: center;
3031
- 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%;
3032
3114
  }
3033
- .statistics {
3034
- padding: 15px;
3035
- background: rgba(64, 158, 255, 0.05);
3036
- border-radius: 6px;
3037
- 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);
3038
3119
  }
3039
- .dialog-footer {
3040
- text-align: right;
3041
- }
3042
-
3043
- /* 自定义滚动条 */
3044
- .bookmarks-grid::-webkit-scrollbar {
3045
- width: 6px;
3120
+ .bookmarks-content .statistics :deep(.el-statistic__title) {
3121
+ font-size: 12px;
3122
+ margin-bottom: 4px;
3046
3123
  }
3047
- .bookmarks-grid::-webkit-scrollbar-track {
3048
- background: #2c2c2c;
3049
- border-radius: 3px;
3124
+ .bookmarks-content .statistics :deep(.el-statistic__content) {
3125
+ font-size: 18px;
3050
3126
  }
3051
- .bookmarks-grid::-webkit-scrollbar-thumb {
3052
- background: #409eff;
3053
- border-radius: 3px;
3127
+ .delete-btn {
3128
+ color: var(--el-color-danger);
3054
3129
  }
3055
- .bookmarks-grid::-webkit-scrollbar-thumb:hover {
3056
- background: #66b1ff;
3057
- }
3058
- .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] {
3059
3133
  display: flex;
3060
3134
  flex-direction: column;
3061
3135
  height: 100%;
3062
3136
  padding: 12px;
3063
3137
  }
3064
- .type-select[data-v-b5ca6d89] {
3138
+ .type-select[data-v-72865d9e] {
3065
3139
  width: 100%;
3066
3140
  margin-bottom: 12px;
3067
3141
  }
3068
- .continuous-switch[data-v-b5ca6d89] {
3142
+ .continuous-switch[data-v-72865d9e] {
3069
3143
  display: flex;
3070
3144
  align-items: center;
3071
3145
  justify-content: space-between;
@@ -3074,18 +3148,18 @@ to {
3074
3148
  background-color: #f9fafb;
3075
3149
  border-radius: 6px;
3076
3150
  }
3077
- .switch-label[data-v-b5ca6d89] {
3151
+ .switch-label[data-v-72865d9e] {
3078
3152
  font-size: 14px;
3079
3153
  color: #374151;
3080
3154
  }
3081
- .tools-grid[data-v-b5ca6d89] {
3155
+ .tools-grid[data-v-72865d9e] {
3082
3156
  display: grid;
3083
3157
  grid-template-columns: repeat(3, 1fr);
3084
3158
  gap: 16px;
3085
3159
  flex: 1;
3086
3160
  overflow: auto;
3087
3161
  }
3088
- .tool-item[data-v-b5ca6d89] {
3162
+ .tool-item[data-v-72865d9e] {
3089
3163
  display: flex;
3090
3164
  flex-direction: column;
3091
3165
  align-items: center;
@@ -3096,28 +3170,28 @@ to {
3096
3170
  cursor: pointer;
3097
3171
  transition: all 0.3s ease;
3098
3172
  }
3099
- .tool-item[data-v-b5ca6d89]:hover {
3173
+ .tool-item[data-v-72865d9e]:hover {
3100
3174
  background-color: #f3f4f6;
3101
3175
  border-color: #60a5fa;
3102
3176
  }
3103
- .tool-image[data-v-b5ca6d89] {
3177
+ .tool-image[data-v-72865d9e] {
3104
3178
  width: 24px;
3105
3179
  height: 24px;
3106
3180
  margin-bottom: 4px;
3107
3181
  }
3108
- .tool-icon-large[data-v-b5ca6d89] {
3182
+ .tool-icon-large[data-v-72865d9e] {
3109
3183
  font-size: 24px;
3110
3184
  margin-bottom: 4px;
3111
3185
  }
3112
- .tool-label[data-v-b5ca6d89] {
3186
+ .tool-label[data-v-72865d9e] {
3113
3187
  font-size: 12px;
3114
3188
  color: #6b7280;
3115
3189
  text-align: center;
3116
3190
  }
3117
- .tool-item:hover .tool-label[data-v-b5ca6d89] {
3191
+ .tool-item:hover .tool-label[data-v-72865d9e] {
3118
3192
  color: #3b82f6;
3119
3193
  }
3120
- .stop-drawing-section[data-v-b5ca6d89] {
3194
+ .stop-drawing-section[data-v-72865d9e] {
3121
3195
  margin-top: 12px;
3122
3196
  padding-top: 12px;
3123
3197
  border-top: 1px solid #e5e7eb;
@@ -3132,61 +3206,61 @@ to {
3132
3206
  width: 100%;
3133
3207
  font-weight: 500;
3134
3208
  }
3135
- .list-tab-container[data-v-148877f2] {
3209
+ .list-tab-container[data-v-7222689f] {
3136
3210
  display: flex;
3137
3211
  flex-direction: column;
3138
3212
  height: 100%;
3139
3213
  font-size: 14px;
3140
3214
  }
3141
- .toolbar[data-v-148877f2] {
3215
+ .toolbar[data-v-7222689f] {
3142
3216
  display: flex;
3143
3217
  align-items: center;
3144
3218
  justify-content: space-between;
3145
3219
  padding: 4px 8px;
3146
3220
  border-bottom: 1px solid #d1d5db;
3147
3221
  }
3148
- .toolbar-left[data-v-148877f2] {
3222
+ .toolbar-left[data-v-7222689f] {
3149
3223
  display: flex;
3150
3224
  align-items: center;
3151
3225
  gap: 8px;
3152
3226
  }
3153
- .toolbar-title[data-v-148877f2] {
3227
+ .toolbar-title[data-v-7222689f] {
3154
3228
  font-weight: 500;
3155
3229
  }
3156
- .toolbar-icon[data-v-148877f2] {
3230
+ .toolbar-icon[data-v-7222689f] {
3157
3231
  font-size: 16px;
3158
3232
  }
3159
- .data-count[data-v-148877f2] {
3233
+ .data-count[data-v-7222689f] {
3160
3234
  color: #6b7280;
3161
3235
  }
3162
- .list-content[data-v-148877f2] {
3236
+ .list-content[data-v-7222689f] {
3163
3237
  flex: 1;
3164
3238
  overflow: auto;
3165
3239
  padding: 4px;
3166
3240
  }
3167
- .tree-component[data-v-148877f2] {
3241
+ .tree-component[data-v-7222689f] {
3168
3242
  font-size: 14px;
3169
3243
  }
3170
- .tree-node[data-v-148877f2] {
3244
+ .tree-node[data-v-7222689f] {
3171
3245
  display: flex;
3172
3246
  align-items: center;
3173
3247
  gap: 8px;
3174
3248
  }
3175
- .node-icon[data-v-148877f2] {
3249
+ .node-icon[data-v-7222689f] {
3176
3250
  font-size: 16px;
3177
3251
  }
3178
- .empty-state[data-v-148877f2] {
3252
+ .empty-state[data-v-7222689f] {
3179
3253
  height: 100%;
3180
3254
  display: flex;
3181
3255
  align-items: center;
3182
3256
  justify-content: center;
3183
3257
  color: #9ca3af;
3184
- }.dialog-content[data-v-c695eece] {
3258
+ }.dialog-content[data-v-57937348] {
3185
3259
  display: flex;
3186
3260
  flex-direction: column;
3187
3261
  height: 100%;
3188
3262
  }
3189
- .toolbar[data-v-c695eece] {
3263
+ .toolbar[data-v-57937348] {
3190
3264
  display: flex;
3191
3265
  align-items: center;
3192
3266
  justify-content: space-between;
@@ -3194,46 +3268,46 @@ to {
3194
3268
  border-bottom: 1px solid #e5e7eb;
3195
3269
  background-color: #f9fafb;
3196
3270
  }
3197
- .toolbar-left[data-v-c695eece] {
3271
+ .toolbar-left[data-v-57937348] {
3198
3272
  display: flex;
3199
3273
  align-items: center;
3200
3274
  gap: 20px;
3201
3275
  }
3202
- .toolbar-right[data-v-c695eece] {
3276
+ .toolbar-right[data-v-57937348] {
3203
3277
  display: flex;
3204
3278
  align-items: center;
3205
3279
  gap: 20px;
3206
3280
  }
3207
- .tool-icon[data-v-c695eece] {
3281
+ .tool-icon[data-v-57937348] {
3208
3282
  font-size: 20px;
3209
3283
  cursor: pointer;
3210
3284
  color: #6b7280;
3211
3285
  transition: color 0.3s ease;
3212
3286
  }
3213
- .tool-icon[data-v-c695eece]:hover {
3287
+ .tool-icon[data-v-57937348]:hover {
3214
3288
  color: var(--el-color-primary, #409eff);
3215
3289
  }
3216
- .content-area[data-v-c695eece] {
3290
+ .content-area[data-v-57937348] {
3217
3291
  flex: 1;
3218
3292
  overflow: hidden;
3219
3293
  }
3220
- .tabs-container[data-v-c695eece] {
3294
+ .tabs-container[data-v-57937348] {
3221
3295
  height: 100%;
3222
3296
  }
3223
- .map-drawing-dialog[data-v-c695eece] .el-tabs {
3297
+ .map-drawing-dialog[data-v-57937348] .el-tabs {
3224
3298
  height: 100%;
3225
3299
  display: flex;
3226
3300
  flex-direction: column;
3227
3301
  }
3228
- .map-drawing-dialog[data-v-c695eece] .el-tabs__content {
3302
+ .map-drawing-dialog[data-v-57937348] .el-tabs__content {
3229
3303
  flex: 1;
3230
3304
  overflow: auto;
3231
3305
  padding: 12px;
3232
3306
  }
3233
- .map-drawing-dialog[data-v-c695eece] .el-tabs__nav-wrap {
3307
+ .map-drawing-dialog[data-v-57937348] .el-tabs__nav-wrap {
3234
3308
  padding: 0 10px;
3235
3309
  }
3236
- .map-drawing-dialog[data-v-c695eece] .el-tabs__item {
3310
+ .map-drawing-dialog[data-v-57937348] .el-tabs__item {
3237
3311
  font-size: 14px;
3238
3312
  font-weight: 500;
3239
3313
  padding: 0 20px;
@@ -3241,10 +3315,10 @@ to {
3241
3315
  line-height: 40px;
3242
3316
  transition: all 0.3s;
3243
3317
  }
3244
- .map-drawing-dialog[data-v-c695eece] .el-tabs__item.is-active {
3318
+ .map-drawing-dialog[data-v-57937348] .el-tabs__item.is-active {
3245
3319
  color: var(--el-color-primary);
3246
3320
  font-weight: 600;
3247
3321
  }
3248
- .map-drawing-dialog[data-v-c695eece] .el-tabs__item:hover {
3322
+ .map-drawing-dialog[data-v-57937348] .el-tabs__item:hover {
3249
3323
  color: var(--el-color-primary);
3250
3324
  }