vue-openlayers-plugin 1.0.88 → 1.0.90

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 (28) hide show
  1. package/lib/{BasemapPanel-ca055f97.mjs → BasemapPanel-cba3afd6.mjs} +6 -6
  2. package/lib/{CoordinateLocationDialog-bcb93549.mjs → CoordinateLocationDialog-6e8a5f24.mjs} +1 -1
  3. package/lib/{FilterPanel-5493db0e.mjs → FilterPanel-9a8e2aca.mjs} +1 -1
  4. package/lib/{MapPrintDialog-cde4a9cc.mjs → LayerPanel-be35370b.mjs} +1 -1
  5. package/lib/{LayerPanel-467aaf4a.mjs → MapPrintDialog-03c0823b.mjs} +1 -1
  6. package/lib/{MeasurementDialog-48a220c5.mjs → MeasurementDialog-7fce097a.mjs} +7 -7
  7. package/lib/{MyMarkersDialog-6cd29bfa.mjs → MyMarkersDialog-7dd24d9a.mjs} +2 -2
  8. package/lib/{ViewBookmarksDialog-2e388ac1.mjs → ViewBookmarksDialog-60c9e851.mjs} +2 -2
  9. package/lib/{index-30ef3c66.mjs → index-05da77ba.mjs} +437 -524
  10. package/lib/{index-9a7511e2.mjs → index-7aae577e.mjs} +1 -1
  11. package/lib/{index-365a4c9c.mjs → index-b3c7ea8d.mjs} +1 -1
  12. package/lib/{index.es-051b071d.mjs → index.es-e4a6ccb9.mjs} +1 -1
  13. package/lib/index.esm.js +63 -63
  14. package/lib/index.umd.js +380 -467
  15. package/lib/style.css +319 -354
  16. package/package.json +2 -3
  17. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts +1 -1
  18. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts +1 -0
  19. package/types/src/components/OlDialogs/BasemapPanel.vue.d.ts.map +1 -1
  20. package/types/src/components/OlDialogs/LayerPanel.vue.d.ts.map +1 -1
  21. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts +1 -0
  22. package/types/src/components/OlDialogs/MeasurementDialog.vue.d.ts.map +1 -1
  23. package/types/src/components/OlDrawToolbar.vue.d.ts.map +1 -1
  24. package/types/src/components/OlLegendPanel.vue.d.ts +2 -26
  25. package/types/src/components/OlLegendPanel.vue.d.ts.map +1 -1
  26. package/types/src/core/layers/BaseLayer.d.ts +8 -0
  27. package/types/src/core/layers/BaseLayer.d.ts.map +1 -1
  28. package/types/tsconfig.tsbuildinfo +1 -1
package/lib/style.css CHANGED
@@ -682,14 +682,15 @@
682
682
  }
683
683
 
684
684
 
685
- .map-toolbar[data-v-65f64ab9] {
685
+ .map-toolbar[data-v-b8c938a3] {
686
686
  position: absolute;
687
- top: 10px;
688
- right: 20px;
689
- height: 32px;
687
+ top: 20px;
688
+ right: 1%;
689
+ z-index: 100;
690
690
  }
691
- [data-v-65f64ab9].el-menu--horizontal {
692
- height: 100% !important;
691
+ .map-toolbar[data-v-b8c938a3]:hover {
692
+ box-shadow: var(--el-box-shadow);
693
+ border-color: var(--el-border-color-hover);
693
694
  }.map-search-container {
694
695
  position: absolute;
695
696
  z-index: 99;
@@ -724,14 +725,14 @@
724
725
  transition: all 0.3s ease;
725
726
  }
726
727
  .search-active .search-input :deep(.el-input__inner) {
727
- border-color: #409eff;
728
- box-shadow: 0 2px 12px rgba(64, 158, 255, 0.2);
728
+ border-color: var(--el-color-primary);
729
+ box-shadow: 0 0 0 1px var(--el-color-primary-light-5);
729
730
  }
730
731
  .search-icon {
731
- color: #909399;
732
+ color: var(--el-text-color-placeholder);
732
733
  }
733
734
  .loading-icon {
734
- color: #409eff;
735
+ color: var(--el-color-primary);
735
736
  animation: rotate 1s linear infinite;
736
737
  }
737
738
  @keyframes rotate {
@@ -747,10 +748,10 @@ to {
747
748
  top: 100%;
748
749
  left: 0;
749
750
  right: 0;
750
- background: white;
751
- border: 1px solid #e4e7ed;
752
- border-radius: 6px;
753
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
751
+ background: var(--el-bg-color-overlay);
752
+ border: 1px solid var(--el-border-color-light);
753
+ border-radius: var(--el-border-radius-base);
754
+ box-shadow: var(--el-box-shadow-light);
754
755
  max-height: 400px;
755
756
  overflow-y: auto;
756
757
  z-index: 10000;
@@ -760,7 +761,7 @@ to {
760
761
  padding: 8px 0;
761
762
  }
762
763
  .search-section:not(:last-child) {
763
- border-bottom: 1px solid #f0f0f0;
764
+ border-bottom: 1px solid var(--el-border-color-lighter);
764
765
  }
765
766
  .section-title {
766
767
  display: flex;
@@ -768,11 +769,11 @@ to {
768
769
  align-items: center;
769
770
  padding: 8px 16px;
770
771
  font-size: 12px;
771
- color: #909399;
772
+ color: var(--el-text-color-secondary);
772
773
  font-weight: 500;
773
774
  }
774
775
  .result-count {
775
- color: #c0c4cc;
776
+ color: var(--el-text-color-placeholder);
776
777
  }
777
778
  .search-item {
778
779
  display: flex;
@@ -783,19 +784,19 @@ to {
783
784
  }
784
785
  .search-item:hover,
785
786
  .search-item.active {
786
- background-color: #f5f7fa;
787
+ background-color: var(--el-fill-color-light);
787
788
  }
788
789
  .item-icon {
789
790
  margin-right: 12px;
790
- color: #909399;
791
+ color: var(--el-text-color-secondary);
791
792
  font-size: 16px;
792
793
  flex-shrink: 0;
793
794
  }
794
795
  .history-item .item-icon {
795
- color: #c0c4cc;
796
+ color: var(--el-text-color-placeholder);
796
797
  }
797
798
  .result-item .item-icon {
798
- color: #409eff;
799
+ color: var(--el-color-primary);
799
800
  }
800
801
  .item-content {
801
802
  flex: 1;
@@ -803,39 +804,39 @@ to {
803
804
  }
804
805
  .item-name {
805
806
  font-size: 14px;
806
- color: #303133;
807
+ color: var(--el-text-color-primary);
807
808
  margin-bottom: 4px;
808
809
  white-space: nowrap;
809
810
  overflow: hidden;
810
811
  text-overflow: ellipsis;
811
812
  }
812
813
  .item-name :deep(mark) {
813
- background-color: #fff2cc;
814
- color: #e6a23c;
814
+ background-color: var(--el-color-warning-light-9);
815
+ color: var(--el-color-warning);
815
816
  padding: 0 2px;
816
817
  border-radius: 2px;
817
818
  }
818
819
  .item-address {
819
820
  font-size: 12px;
820
- color: #909399;
821
+ color: var(--el-text-color-secondary);
821
822
  white-space: nowrap;
822
823
  overflow: hidden;
823
824
  text-overflow: ellipsis;
824
825
  }
825
826
  .item-address :deep(mark) {
826
- background-color: #fff2cc;
827
- color: #e6a23c;
827
+ background-color: var(--el-color-warning-light-9);
828
+ color: var(--el-color-warning);
828
829
  padding: 0 2px;
829
830
  border-radius: 2px;
830
831
  }
831
832
  .item-type {
832
833
  font-size: 11px;
833
- color: #c0c4cc;
834
+ color: var(--el-text-color-placeholder);
834
835
  margin-top: 2px;
835
836
  }
836
837
  .item-confidence {
837
838
  font-size: 12px;
838
- color: #67c23a;
839
+ color: var(--el-color-success);
839
840
  margin-left: 8px;
840
841
  flex-shrink: 0;
841
842
  }
@@ -844,7 +845,7 @@ to {
844
845
  align-items: center;
845
846
  justify-content: center;
846
847
  padding: 24px 16px;
847
- color: #909399;
848
+ color: var(--el-text-color-secondary);
848
849
  font-size: 14px;
849
850
  }
850
851
  .no-results .el-icon {
@@ -874,107 +875,198 @@ to {
874
875
  .position-bottom-right {
875
876
  bottom: 5px;
876
877
  }
877
- }.control-group[data-v-e2bbe659] {
878
+ }.control-group[data-v-2fc6cae7] {
878
879
  display: flex;
879
880
  align-items: center;
880
- gap: 6px;
881
+ gap: 8px;
881
882
  /* re-enable interactions inside the controls container */
882
883
  pointer-events: auto;
884
+ background-color: var(--el-bg-color-overlay);
885
+ backdrop-filter: blur(4px);
886
+ padding: 4px;
887
+ border-radius: var(--el-border-radius-base);
888
+ box-shadow: var(--el-box-shadow-light);
889
+ border: 1px solid var(--el-border-color-light);
890
+ transition: all 0.3s ease;
891
+ }
892
+ .control-group[data-v-2fc6cae7]:hover {
893
+ box-shadow: var(--el-box-shadow);
894
+ border-color: var(--el-border-color-hover);
883
895
  }
884
896
 
885
897
  /* when direction becomes column, keep spacing vertical */
886
- .control-group.flex-col[data-v-e2bbe659] {
898
+ .control-group.flex-col[data-v-2fc6cae7] {
887
899
  flex-direction: column;
888
- align-items: stretch;
889
- gap: 6px;
900
+ align-items: center; /* Center items in vertical mode */
901
+ gap: 8px;
902
+ padding: 6px 4px;
890
903
  }
891
904
 
892
905
  /* ensure buttons themselves are interactive */
893
- .control-btn[data-v-e2bbe659] {
906
+ .control-btn[data-v-2fc6cae7] {
894
907
  pointer-events: auto;
908
+ margin: 0 !important; /* Ensure no margin interferes */
909
+ transition: transform 0.1s;
910
+ }
911
+ .control-btn[data-v-2fc6cae7]:active {
912
+ transform: scale(0.95);
895
913
  }
896
914
 
897
915
  /* reset Element Plus button default adjacent margin and use our gap instead */
898
- [data-v-e2bbe659] .el-button + .el-button {
916
+ [data-v-2fc6cae7] .el-button + .el-button {
899
917
  margin-left: 0 !important;
900
918
  }
901
919
 
902
920
  /* make sure all EP interactive widgets are clickable */
903
- [data-v-e2bbe659] .el-button,[data-v-e2bbe659] .el-slider,[data-v-e2bbe659] .el-icon {
921
+ [data-v-2fc6cae7] .el-button,[data-v-2fc6cae7] .el-slider,[data-v-2fc6cae7] .el-icon {
904
922
  pointer-events: auto;
905
- }
906
- .absolute {
923
+ }.ol-legend-panel[data-v-b1b6d5ed] {
907
924
  position: absolute;
925
+ z-index: 1000;
926
+ display: flex;
927
+ flex-direction: column;
928
+ max-height: calc(100vh - 140px);
929
+ overflow: hidden;
930
+ border: 1px solid var(--el-border-color-light);
931
+ border-radius: var(--el-border-radius-base);
932
+ box-shadow: var(--el-box-shadow-light);
933
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.5, 1);
908
934
  }
909
- .bottom-40px {
910
- bottom: 40px;
911
- }
912
-
913
- /* 图例面板样式 */
914
- .legend-collapsed {
915
- transform: translateX(calc(100% - 40px));
935
+ .ol-legend-panel.is-collapsed[data-v-b1b6d5ed] {
936
+ width: auto !important;
937
+ height: 40px;
938
+ max-height: 40px;
916
939
  }
917
- .legend-collapsed:hover {
918
- transform: translateX(0);
919
- }
920
-
921
- /* 图例项样式 */
922
- .legend-item {
923
- @apply mb-2 last:mb-0;
940
+ .ol-legend-panel.is-collapsed .ol-legend-body[data-v-b1b6d5ed] {
941
+ opacity: 0;
942
+ pointer-events: none;
924
943
  }
925
- .legend-title {
926
- @apply text-sm font-medium text-gray-700 mb-2;
944
+ .ol-legend-panel.is-collapsed .header-title[data-v-b1b6d5ed] {
945
+ display: none;
927
946
  }
928
- .legend-content {
929
- @apply space-y-1;
947
+ .ol-legend-header[data-v-b1b6d5ed] {
948
+ display: flex;
949
+ align-items: center;
950
+ justify-content: space-between;
951
+ height: 40px;
952
+ padding: 0 12px;
953
+ background-color: var(--el-fill-color-light);
954
+ border-bottom: 1px solid var(--el-border-color-lighter);
955
+ flex-shrink: 0;
930
956
  }
931
- .legend-symbol {
932
- @apply inline-block mr-2 align-middle;
957
+ .ol-legend-header .header-title[data-v-b1b6d5ed] {
958
+ font-size: 14px;
959
+ font-weight: 600;
960
+ color: var(--el-text-color-primary);
933
961
  }
934
- .legend-label {
935
- @apply text-xs text-gray-600 align-middle;
936
- }
937
-
938
- /* 渐变图例样式 */
939
- .gradient-legend {
940
- @apply h-4 rounded mb-1;
962
+ .ol-legend-header .action-icon[data-v-b1b6d5ed] {
963
+ cursor: pointer;
964
+ color: var(--el-text-color-secondary);
965
+ transition: color 0.2s;
941
966
  }
942
- .gradient-labels {
943
- @apply flex justify-between text-xs text-gray-500;
944
- }
945
-
946
- /* 分类图例样式 */
947
- .category-legend {
948
- @apply flex items-center mb-1;
967
+ .ol-legend-header .action-icon[data-v-b1b6d5ed]:hover {
968
+ color: var(--el-color-primary);
949
969
  }
950
- .category-symbol {
951
- @apply w-4 h-4 mr-2 rounded-sm;
952
- }
953
-
954
- /* 符号图例样式 */
955
- .symbol-legend {
956
- @apply flex items-center mb-1;
970
+ .ol-legend-body[data-v-b1b6d5ed] {
971
+ flex: 1;
972
+ overflow-y: auto;
973
+ background-color: transparent;
974
+ padding: 8px 0;
975
+ /* 自定义滚动条 */
957
976
  }
958
- .symbol-item {
959
- @apply w-4 h-4 mr-2;
960
- }
961
-
962
- /* 面板头部样式 */
963
- .legend-header {
964
- @apply flex items-center justify-between p-3 border-b border-gray-200;
977
+ .ol-legend-body[data-v-b1b6d5ed]::-webkit-scrollbar {
978
+ width: 6px;
965
979
  }
966
- .legend-body {
967
- @apply p-3 max-h-96 overflow-y-auto;
968
- }
969
-
970
- /* 折叠按钮样式 */
971
- .collapse-btn {
972
- @apply p-1 rounded hover:bg-gray-100 transition-colors;
980
+ .ol-legend-body[data-v-b1b6d5ed]::-webkit-scrollbar-thumb {
981
+ background: var(--el-border-color-lighter);
982
+ border-radius: 3px;
983
+ }
984
+ .legend-collapse[data-v-b1b6d5ed] {
985
+ border: none;
986
+ }
987
+ .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__header {
988
+ box-sizing: border-box;
989
+ height: 36px;
990
+ line-height: 36px;
991
+ padding: 0 12px;
992
+ font-size: 13px;
993
+ color: var(--el-text-color-regular);
994
+ background-color: transparent;
995
+ border-bottom-color: var(--el-border-color-lighter);
996
+ }
997
+ .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__header.is-active {
998
+ color: var(--el-text-color-primary);
999
+ font-weight: 500;
1000
+ }
1001
+ .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__wrap {
1002
+ background-color: transparent;
1003
+ border-bottom: none;
1004
+ }
1005
+ .legend-collapse[data-v-b1b6d5ed] .el-collapse-item__content {
1006
+ padding: 8px 12px;
1007
+ padding-bottom: 12px;
1008
+ }
1009
+ .layer-title[data-v-b1b6d5ed] {
1010
+ display: inline-block;
1011
+ max-width: 180px;
1012
+ overflow: hidden;
1013
+ text-overflow: ellipsis;
1014
+ white-space: nowrap;
1015
+ }
1016
+ .legend-row[data-v-b1b6d5ed] {
1017
+ display: flex;
1018
+ align-items: center;
1019
+ margin-bottom: 6px;
1020
+ }
1021
+ .legend-row[data-v-b1b6d5ed]:last-child {
1022
+ margin-bottom: 0;
1023
+ }
1024
+ .legend-row .legend-icon[data-v-b1b6d5ed] {
1025
+ margin-right: 8px;
1026
+ display: flex;
1027
+ align-items: center;
1028
+ justify-content: center;
1029
+ }
1030
+ .legend-row .legend-icon .icon-img[data-v-b1b6d5ed] {
1031
+ width: 100%;
1032
+ height: 100%;
1033
+ object-fit: contain;
1034
+ }
1035
+ .legend-row .legend-icon .symbol-shape[data-v-b1b6d5ed] {
1036
+ /* style injected by js */
1037
+ }
1038
+ .legend-row .legend-label[data-v-b1b6d5ed] {
1039
+ font-size: 12px;
1040
+ color: var(--el-text-color-primary);
1041
+ line-height: 1.4;
1042
+ }
1043
+ .legend-gradient-box .gradient-bar[data-v-b1b6d5ed] {
1044
+ height: 12px;
1045
+ border-radius: 2px;
1046
+ margin-bottom: 4px;
1047
+ border: 1px solid var(--el-border-color-lighter);
1048
+ }
1049
+ .legend-gradient-box .gradient-labels[data-v-b1b6d5ed] {
1050
+ display: flex;
1051
+ justify-content: space-between;
1052
+ font-size: 11px;
1053
+ color: var(--el-text-color-secondary);
1054
+ }
1055
+ .legend-gradient-box .gradient-unit[data-v-b1b6d5ed] {
1056
+ text-align: center;
1057
+ font-size: 11px;
1058
+ color: var(--el-text-color-secondary);
1059
+ margin-top: 2px;
1060
+ }
1061
+ .legend-desc[data-v-b1b6d5ed] {
1062
+ margin-top: 6px;
1063
+ font-size: 11px;
1064
+ color: var(--el-text-color-secondary);
1065
+ line-height: 1.4;
1066
+ }
1067
+ .empty-state[data-v-b1b6d5ed] {
1068
+ padding: 20px 0;
973
1069
  }
974
- .close-btn {
975
- @apply p-1 rounded hover:bg-gray-100 transition-colors text-gray-500 hover:text-gray-700;
976
- }
977
-
978
1070
  .filter-panel {
979
1071
  .config-section {
980
1072
  margin-bottom: 16px;
@@ -1129,20 +1221,20 @@ label {
1129
1221
  }
1130
1222
  }
1131
1223
  }
1132
- .el-modal-dialog{pointer-events:none}.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}
1224
+ .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}
1133
1225
 
1134
1226
  .layer-dialog {
1135
1227
  /* 全局样式面板样式 */
1136
1228
  .global-style-panel {
1137
1229
  padding: 16px;
1138
- border-bottom: 1px solid #eee;
1139
- background-color: #f8f9fa;
1230
+ border-bottom: 1px solid var(--el-border-color-light);
1231
+ background-color: var(--el-fill-color-light);
1140
1232
  .panel-title {
1141
1233
  margin: 0 0 16px 0;
1142
1234
  font-size: 14px;
1143
1235
  font-weight: 600;
1144
- color: #333;
1145
- border-bottom: 1px solid #ddd;
1236
+ color: var(--el-text-color-primary);
1237
+ border-bottom: 1px solid var(--el-border-color-light);
1146
1238
  padding-bottom: 8px;
1147
1239
  }
1148
1240
  .config-section {
@@ -1151,7 +1243,7 @@ h5 {
1151
1243
  margin: 0 0 12px 0;
1152
1244
  font-size: 13px;
1153
1245
  font-weight: 500;
1154
- color: #666;
1246
+ color: var(--el-text-color-regular);
1155
1247
  }
1156
1248
  .config-item {
1157
1249
  display: flex;
@@ -1161,7 +1253,7 @@ h5 {
1161
1253
  label {
1162
1254
  flex: 0 0 60px;
1163
1255
  font-size: 12px;
1164
- color: #666;
1256
+ color: var(--el-text-color-regular);
1165
1257
  }
1166
1258
  .el-slider {
1167
1259
  flex: 1;
@@ -1170,7 +1262,7 @@ label {
1170
1262
  .value-text {
1171
1263
  flex: 0 0 45px;
1172
1264
  font-size: 12px;
1173
- color: #999;
1265
+ color: var(--el-text-color-secondary);
1174
1266
  text-align: right;
1175
1267
  }
1176
1268
  }
@@ -1187,7 +1279,7 @@ label {
1187
1279
  .panel-actions {
1188
1280
  margin-top: 16px;
1189
1281
  padding-top: 12px;
1190
- border-top: 1px solid #ddd;
1282
+ border-top: 1px solid var(--el-border-color-light);
1191
1283
  text-align: center;
1192
1284
  }
1193
1285
  .custom-css-input {
@@ -1199,8 +1291,8 @@ label {
1199
1291
  font-family: "Courier New", monospace;
1200
1292
  font-size: 12px;
1201
1293
  line-height: 1.4;
1202
- background-color: #fff;
1203
- border: 1px solid #e9ecef;
1294
+ background-color: var(--el-bg-color-overlay);
1295
+ border: 1px solid var(--el-border-color-light);
1204
1296
  }
1205
1297
  .style-tabs {
1206
1298
  :deep(.el-tabs__header) {
@@ -1222,24 +1314,24 @@ label {
1222
1314
  .current-style-display {
1223
1315
  margin-top: 16px;
1224
1316
  padding: 12px;
1225
- background-color: #f5f5f5;
1317
+ background-color: var(--el-fill-color-light);
1226
1318
  border-radius: 4px;
1227
- border: 1px solid #e9ecef;
1319
+ border: 1px solid var(--el-border-color-light);
1228
1320
  h6 {
1229
1321
  margin: 0 0 8px 0;
1230
1322
  font-size: 12px;
1231
1323
  font-weight: 500;
1232
- color: #666;
1324
+ color: var(--el-text-color-regular);
1233
1325
  }
1234
1326
  .style-preview {
1235
1327
  font-family: "Courier New", monospace;
1236
1328
  font-size: 11px;
1237
1329
  line-height: 1.4;
1238
- color: #333;
1239
- background-color: #fff;
1330
+ color: var(--el-text-color-primary);
1331
+ background-color: var(--el-bg-color-overlay);
1240
1332
  padding: 8px;
1241
1333
  border-radius: 3px;
1242
- border: 1px solid #ddd;
1334
+ border: 1px solid var(--el-border-color-light);
1243
1335
  word-break: break-all;
1244
1336
  white-space: pre-wrap;
1245
1337
  max-height: 120px;
@@ -1290,7 +1382,7 @@ h6 {
1290
1382
  }
1291
1383
  .layer-name {
1292
1384
  font-size: 14px;
1293
- color: #333;
1385
+ color: var(--el-text-color-primary);
1294
1386
  white-space: nowrap;
1295
1387
  overflow: hidden;
1296
1388
  text-overflow: ellipsis;
@@ -1311,7 +1403,7 @@ h6 {
1311
1403
  }
1312
1404
  .opacity-value {
1313
1405
  font-size: 12px;
1314
- color: #666;
1406
+ color: var(--el-text-color-regular);
1315
1407
  min-width: 35px;
1316
1408
  text-align: right;
1317
1409
  white-space: nowrap;
@@ -1337,8 +1429,8 @@ h6 {
1337
1429
  margin: 0 0 16px 0;
1338
1430
  font-size: 14px;
1339
1431
  font-weight: 600;
1340
- color: #333;
1341
- border-bottom: 1px solid #eee;
1432
+ color: var(--el-text-color-primary);
1433
+ border-bottom: 1px solid var(--el-border-color-light);
1342
1434
  padding-bottom: 8px;
1343
1435
  }
1344
1436
  .config-section {
@@ -1347,7 +1439,7 @@ h5 {
1347
1439
  margin: 0 0 12px 0;
1348
1440
  font-size: 13px;
1349
1441
  font-weight: 500;
1350
- color: #666;
1442
+ color: var(--el-text-color-regular);
1351
1443
  }
1352
1444
  .config-item {
1353
1445
  display: flex;
@@ -1357,7 +1449,7 @@ h5 {
1357
1449
  label {
1358
1450
  flex: 0 0 60px;
1359
1451
  font-size: 12px;
1360
- color: #666;
1452
+ color: var(--el-text-color-regular);
1361
1453
  }
1362
1454
  .el-slider {
1363
1455
  flex: 1;
@@ -1366,7 +1458,7 @@ label {
1366
1458
  .value-text {
1367
1459
  flex: 0 0 45px;
1368
1460
  font-size: 12px;
1369
- color: #999;
1461
+ color: var(--el-text-color-secondary);
1370
1462
  text-align: right;
1371
1463
  }
1372
1464
  }
@@ -1383,7 +1475,7 @@ label {
1383
1475
  .panel-actions {
1384
1476
  margin-top: 16px;
1385
1477
  padding-top: 12px;
1386
- border-top: 1px solid #eee;
1478
+ border-top: 1px solid var(--el-border-color-light);
1387
1479
  text-align: center;
1388
1480
  }
1389
1481
  .custom-css-input {
@@ -1395,8 +1487,8 @@ label {
1395
1487
  font-family: "Courier New", monospace;
1396
1488
  font-size: 12px;
1397
1489
  line-height: 1.4;
1398
- background-color: #f8f9fa;
1399
- border: 1px solid #e9ecef;
1490
+ background-color: var(--el-fill-color-light);
1491
+ border: 1px solid var(--el-border-color-light);
1400
1492
  }
1401
1493
  }
1402
1494
  }
@@ -1545,32 +1637,37 @@ label {
1545
1637
  width: 100% !important;
1546
1638
  height: 100% !important;
1547
1639
  }
1548
-
1549
- .context-menu {
1550
- background: white;
1551
- border: 1px solid #dcdfe6;
1552
- border-radius: 4px;
1553
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
1554
- padding: 4px 0;
1555
- min-width: 120px;
1640
+ .context-menu[data-v-736d12b7] {
1641
+ background: var(--el-bg-color-overlay);
1642
+ border: 1px solid var(--el-border-color-light);
1643
+ border-radius: var(--el-border-radius-base);
1644
+ box-shadow: var(--el-box-shadow-light);
1645
+ padding: 4px 0;
1646
+ min-width: 140px;
1647
+ overflow: hidden;
1556
1648
  }
1557
- .context-menu-item {
1558
- display: flex;
1559
- align-items: center;
1560
- padding: 8px 12px;
1561
- cursor: pointer;
1562
- font-size: 14px;
1563
- color: #606266;
1564
- transition: background-color 0.3s;
1649
+ .context-menu .context-menu-item[data-v-736d12b7] {
1650
+ display: flex;
1651
+ align-items: center;
1652
+ padding: 8px 16px;
1653
+ cursor: pointer;
1654
+ font-size: var(--el-font-size-base);
1655
+ color: var(--el-text-color-primary);
1656
+ transition: all 0.2s;
1565
1657
  }
1566
- .context-menu-item:hover {
1567
- background-color: #f5f7fa;
1658
+ .context-menu .context-menu-item[data-v-736d12b7]:hover {
1659
+ background-color: var(--el-fill-color-light);
1660
+ color: var(--el-color-primary);
1568
1661
  }
1569
- .context-menu-item .el-icon {
1570
- margin-right: 8px;
1662
+ .context-menu .context-menu-item:hover .el-icon[data-v-736d12b7] {
1663
+ color: var(--el-color-primary);
1664
+ }
1665
+ .context-menu .context-menu-item .el-icon[data-v-736d12b7] {
1666
+ margin-right: 8px;
1571
1667
  font-size: 16px;
1572
- }
1573
-
1668
+ color: var(--el-text-color-secondary);
1669
+ transition: color 0.2s;
1670
+ }
1574
1671
  /* 右侧滑入动画 */
1575
1672
  .fixed.items-stretch.justify-end .bg-white {
1576
1673
  animation: slideInRight 0.3s ease-out;
@@ -2436,51 +2533,30 @@ to {
2436
2533
  /* 图例面板相关样式 */
2437
2534
  .legend-collapsed .panel-content {
2438
2535
  display: none;
2439
- }/* 让样式穿透到 CustomDialog 内部容器(其上有我们传入的 class="measurement-dialog") */
2440
- [data-v-ac238457] .measurement-dialog {
2441
- background-color: transparent !important; /* 覆盖 CustomDialog 根容器的 bg-white */
2442
- box-shadow: none !important;
2443
- }
2444
-
2445
- /* 让 CustomDialog 自带的标题栏不再是灰底 */
2446
- [data-v-ac238457] .measurement-dialog .bg-gray-50 {
2447
- background-color: transparent !important;
2448
- border-bottom-color: transparent !important;
2449
- }
2450
-
2451
- /* 保留以下原有样式 */
2452
- .measurement-dialog[data-v-ac238457] {
2453
- --el-dialog-bg-color: transparent;
2454
- --el-dialog-title-font-size: 16px;
2455
- --el-dialog-box-shadow: none;
2456
- }
2457
- .measurement-content[data-v-ac238457] {
2458
- background: transparent;
2459
- border-radius: 12px;
2536
+ }.measurement-content[data-v-60e80f64] {
2537
+ background: var(--el-bg-color);
2538
+ border-radius: var(--el-border-radius-base);
2460
2539
  overflow: hidden;
2461
2540
  }
2462
- .measurement-header[data-v-ac238457] {
2463
- background: transparent;
2464
- backdrop-filter: blur(10px);
2465
- border-bottom: 1px solid rgba(226, 232, 240, 0);
2541
+ .measurement-header[data-v-60e80f64] {
2542
+ background: var(--el-bg-color-overlay);
2543
+ border-bottom: 1px solid var(--el-border-color-light);
2466
2544
  }
2467
- .measurement-result[data-v-ac238457] {
2468
- background: rgba(255, 255, 255, 0.9);
2469
- backdrop-filter: blur(10px);
2470
- border-bottom: 1px solid rgba(226, 232, 240, 0.8);
2545
+ .measurement-result[data-v-60e80f64] {
2546
+ background: var(--el-fill-color-light);
2547
+ border-bottom: 1px solid var(--el-border-color-light);
2471
2548
  display: flex;
2472
2549
  align-items: center;
2473
2550
  justify-content: center;
2474
2551
  }
2475
- .result-value[data-v-ac238457] {
2552
+ .result-value[data-v-60e80f64] {
2476
2553
  font-size: 42px;
2477
2554
  font-weight: 600;
2478
- color: #3b82f6;
2555
+ color: var(--el-color-primary);
2479
2556
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
2480
2557
  line-height: 1;
2481
- text-shadow: 0 2px 4px rgba(59, 130, 246, 0.1);
2482
2558
  }
2483
- .tool-grid[data-v-ac238457] {
2559
+ .tool-grid[data-v-60e80f64] {
2484
2560
  display: grid;
2485
2561
  grid-template-columns: repeat(4, 1fr);
2486
2562
  column-gap: 18px;
@@ -2488,7 +2564,7 @@ to {
2488
2564
  justify-items: center;
2489
2565
  align-items: start;
2490
2566
  }
2491
- .tool-item[data-v-ac238457] {
2567
+ .tool-item[data-v-60e80f64] {
2492
2568
  position: relative;
2493
2569
  display: flex;
2494
2570
  flex-direction: column;
@@ -2497,240 +2573,129 @@ to {
2497
2573
  user-select: none;
2498
2574
  transition: transform 0.2s ease;
2499
2575
  }
2500
- .tool-icon[data-v-ac238457] {
2576
+ .tool-icon[data-v-60e80f64] {
2501
2577
  width: 28px;
2502
2578
  height: 28px;
2503
- padding: 14px; /* 28 + 14*2 = 56px 的方块 */
2579
+ padding: 14px;
2504
2580
  border-radius: 10px;
2505
- background: linear-gradient(180deg, #f2f4f8 0%, #e9eef5 100%);
2506
- border: 1px solid #e6ebf2;
2507
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
2508
- transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
2581
+ background: var(--el-fill-color);
2582
+ border: 1px solid var(--el-border-color);
2583
+ box-shadow: var(--el-box-shadow-lighter);
2584
+ transition: all 0.2s ease;
2509
2585
  margin-bottom: 10px;
2510
2586
  }
2511
- .tool-item:hover .tool-icon[data-v-ac238457],
2512
- .tool-item.active .tool-icon[data-v-ac238457] {
2587
+ .tool-item:hover .tool-icon[data-v-60e80f64],
2588
+ .tool-item.active .tool-icon[data-v-60e80f64] {
2513
2589
  transform: translateY(-2px);
2514
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
2515
- border-color: #c8d4e6;
2590
+ box-shadow: var(--el-box-shadow-light);
2591
+ border-color: var(--el-color-primary-light-5);
2592
+ background-color: var(--el-color-primary-light-9);
2516
2593
  }
2517
- .tool-label[data-v-ac238457] {
2594
+ .tool-label[data-v-60e80f64] {
2518
2595
  font-size: 14px;
2519
2596
  line-height: 1.2;
2520
- color: #334155; /* 不改变整体背景,仅优化文字可读性 */
2597
+ color: var(--el-text-color-regular);
2521
2598
  font-weight: 500;
2522
2599
  white-space: nowrap;
2523
2600
  }
2524
- .dialog-footer[data-v-ac238457] {
2525
- @apply hidden;
2601
+ .dialog-footer[data-v-60e80f64] {
2602
+ display: none;
2526
2603
  }
2527
2604
  /* 底图对话框样式 */
2528
- .basemap-dialog {
2605
+ .basemap-dialog[data-v-75f232fd] {
2529
2606
  /* CustomDialog 会处理右侧滑入动画 */
2530
2607
  }
2531
2608
 
2532
2609
  /* 底图内容容器 */
2533
- .basemap-content {
2534
- padding: 16px;
2610
+ .basemap-content[data-v-75f232fd] {
2611
+ padding: 8px;
2535
2612
  height: 100%;
2536
- overflow: visible;
2613
+ overflow: visible;
2614
+ background-color: var(--el-bg-color);
2537
2615
  }
2538
2616
 
2539
2617
  /* 底图网格布局 */
2540
- .basemap-grid {
2618
+ .basemap-grid[data-v-75f232fd] {
2541
2619
  display: grid;
2542
- grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
2543
- gap: 16px;
2620
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
2621
+ gap: 8px;
2544
2622
  padding: 8px 0;
2545
2623
  }
2546
2624
 
2547
2625
  /* 底图项目 */
2548
- .basemap-item {
2626
+ .basemap-item[data-v-75f232fd] {
2549
2627
  display: flex;
2550
2628
  flex-direction: column;
2551
2629
  align-items: center;
2552
- padding: 12px;
2630
+ padding: 8px;
2553
2631
  border: 2px solid transparent;
2554
- border-radius: 12px;
2632
+ border-radius: var(--el-border-radius-base);
2555
2633
  cursor: pointer;
2556
2634
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
2557
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.8) 0%, rgba(248, 250, 252, 0.9) 100%);
2558
- backdrop-filter: blur(10px);
2559
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
2635
+ background: var(--el-bg-color-overlay);
2636
+ box-shadow: var(--el-box-shadow-light);
2637
+ border: 1px solid var(--el-border-color-light);
2560
2638
  }
2561
- .basemap-item:hover {
2639
+ .basemap-item[data-v-75f232fd]:hover {
2562
2640
  transform: translateY(-2px) scale(1.02);
2563
- border-color: rgba(59, 130, 246, 0.3);
2564
- box-shadow: 0 8px 25px rgba(59, 130, 246, 0.15), 0 4px 12px rgba(0, 0, 0, 0.1);
2565
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 1) 100%);
2566
- }
2567
- .basemap-item.active {
2568
- border-color: #3b82f6;
2569
- background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(147, 197, 253, 0.15) 100%);
2570
- box-shadow: 0 8px 25px rgba(59, 130, 246, 0.2), 0 4px 12px rgba(0, 0, 0, 0.1);
2641
+ border-color: var(--el-color-primary-light-5);
2642
+ box-shadow: var(--el-box-shadow);
2643
+ }
2644
+ .basemap-item.active[data-v-75f232fd] {
2645
+ border-color: var(--el-color-primary);
2646
+ background: var(--el-color-primary-light-9);
2647
+ box-shadow: var(--el-box-shadow);
2571
2648
  }
2572
2649
 
2573
2650
  /* 底图预览图片 */
2574
- .basemap-preview {
2575
- width: 100px;
2576
- height: 75px;
2577
- border-radius: 8px;
2651
+ .basemap-preview[data-v-75f232fd] {
2652
+ width: 92px;
2653
+ height: 68px;
2654
+ border-radius: var(--el-border-radius-small);
2578
2655
  overflow: hidden;
2579
2656
  margin-bottom: 8px;
2580
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
2581
- transition: all 0.3s ease;
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;
2662
+ justify-content: center;
2582
2663
  }
2583
- .basemap-item:hover .basemap-preview {
2584
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
2664
+ .basemap-item:hover .basemap-preview[data-v-75f232fd] {
2665
+ box-shadow: var(--el-box-shadow-light);
2585
2666
  transform: scale(1.05);
2586
2667
  }
2587
- .basemap-preview img {
2668
+ .basemap-preview img[data-v-75f232fd] {
2588
2669
  width: 100%;
2589
2670
  height: 100%;
2590
2671
  object-fit: cover;
2591
- transition: all 0.3s ease;
2592
- image-rendering: -webkit-optimize-contrast;
2593
- image-rendering: crisp-edges;
2672
+ transition: all 0.3s ease;
2594
2673
  }
2595
2674
 
2596
2675
  /* 底图名称 */
2597
- .basemap-name {
2598
- font-size: 12px;
2676
+ .basemap-name[data-v-75f232fd] {
2677
+ font-size: 11px;
2599
2678
  font-weight: 500;
2600
- color: #374151;
2679
+ color: var(--el-text-color-regular);
2601
2680
  text-align: center;
2602
2681
  line-height: 1.4;
2603
- transition: all 0.3s ease;
2604
- }
2605
- .basemap-item:hover .basemap-name {
2606
- color: #1f2937;
2607
- font-weight: 600;
2682
+ transition: all 0.3s ease;
2683
+ margin-top: 4px;
2608
2684
  }
2609
- .basemap-item.active .basemap-name {
2610
- color: #3b82f6;
2685
+ .basemap-item:hover .basemap-name[data-v-75f232fd] {
2686
+ color: var(--el-text-color-primary);
2611
2687
  font-weight: 600;
2612
- }
2613
-
2614
- /* 底图网格 */
2615
- .basemap-grid {
2616
- display: grid;
2617
- grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
2618
- gap: 16px;
2619
- }
2620
-
2621
- /* 底图项 */
2622
- .basemap-item {
2623
- cursor: pointer;
2624
- border-radius: 12px;
2625
- overflow: hidden;
2626
- transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
2627
- border: 2px solid rgba(0, 0, 0, 0.08);
2628
- background: rgba(255, 255, 255, 0.8);
2629
- backdrop-filter: blur(10px);
2630
- position: relative;
2631
- }
2632
- .basemap-item::before {
2633
- content: '';
2634
- position: absolute;
2635
- top: 0;
2636
- left: 0;
2637
- right: 0;
2638
- bottom: 0;
2639
- background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(147, 51, 234, 0.1) 100%);
2640
- opacity: 0;
2641
- transition: opacity 0.3s ease;
2642
- z-index: 1;
2643
- }
2644
- .basemap-item:hover {
2645
- transform: translateY(-4px) scale(1.02);
2646
- border-color: rgba(59, 130, 246, 0.3);
2647
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
2648
- }
2649
- .basemap-item:hover::before {
2650
- opacity: 1;
2651
- }
2652
- .basemap-item.active {
2653
- border-color: #3b82f6;
2654
- box-shadow: 0 8px 25px rgba(59, 130, 246, 0.25);
2655
- transform: translateY(-2px);
2656
- }
2657
- .basemap-item.active::before {
2658
- opacity: 0.7;
2659
- }
2660
-
2661
- /* 底图预览 */
2662
- .basemap-preview {
2663
- width: 100%;
2664
- height: 80px;
2665
- background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
2666
- display: flex;
2667
- align-items: center;
2668
- justify-content: center;
2669
- overflow: hidden;
2670
- position: relative;
2671
- z-index: 2;
2672
- }
2673
- .basemap-preview img {
2674
- width: 100%;
2675
- height: 100%;
2676
- object-fit: cover;
2677
- transition: transform 0.3s ease;
2678
- }
2679
- .basemap-item:hover .basemap-preview img {
2680
- transform: scale(1.1);
2681
- }
2682
-
2683
- /* 底图名称 */
2684
- .basemap-name {
2685
- padding: 12px 16px;
2686
- text-align: center;
2687
- font-size: 13px;
2688
- font-weight: 500;
2689
- color: #374151;
2690
- background: rgba(255, 255, 255, 0.9);
2691
- backdrop-filter: blur(5px);
2692
- position: relative;
2693
- z-index: 2;
2694
- letter-spacing: 0.3px;
2695
2688
  }
2696
- .basemap-item.active .basemap-name {
2697
- color: #1f2937;
2689
+ .basemap-item.active .basemap-name[data-v-75f232fd] {
2690
+ color: var(--el-color-primary);
2698
2691
  font-weight: 600;
2699
2692
  }
2700
2693
 
2701
2694
  /* 响应式设计 */
2702
2695
  @media (max-width: 480px) {
2703
- .basemap-panel {
2704
- width: 100%;
2705
- }
2706
- .basemap-grid {
2696
+ .basemap-grid[data-v-75f232fd] {
2707
2697
  grid-template-columns: 1fr;
2708
2698
  }
2709
- .panel-content {
2710
- padding: 16px;
2711
- }
2712
- }
2713
-
2714
- /* 动画关键帧 */
2715
- @keyframes slideInRight {
2716
- from {
2717
- transform: translateX(100%);
2718
- opacity: 0;
2719
- }
2720
- to {
2721
- transform: translateX(0);
2722
- opacity: 1;
2723
- }
2724
- }
2725
- @keyframes slideOutRight {
2726
- from {
2727
- transform: translateX(0);
2728
- opacity: 1;
2729
- }
2730
- to {
2731
- transform: translateX(100%);
2732
- opacity: 0;
2733
- }
2734
2699
  }
2735
2700
 
2736
2701
  .coordinate-dialog {