vue-openlayers-plugin 1.0.67 → 1.0.69

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/README.md +1 -1
  2. package/lib/{index-1b888705.mjs → index-b61cd0bb.mjs} +127 -135
  3. package/lib/{index.es-bc4e91cb.mjs → index.es-09c58559.mjs} +1 -1
  4. package/lib/index.esm.js +21 -21
  5. package/lib/index.umd.js +128 -136
  6. package/lib/style.css +350 -410
  7. package/package.json +1 -1
  8. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts.map +1 -1
  9. package/types/src/components/CustomOpenlayer/components/LegendPanel.vue.d.ts.map +1 -1
  10. package/types/src/components/CustomOpenlayer/components/MapContainer.vue.d.ts.map +1 -1
  11. package/types/src/components/CustomOpenlayer/components/MapPopup/ArrayPopup.vue.d.ts.map +1 -1
  12. package/types/src/components/CustomOpenlayer/components/MapPopup/BasePopup.vue.d.ts.map +1 -1
  13. package/types/src/components/CustomOpenlayer/components/MapPopup/HtmlPopup.vue.d.ts.map +1 -1
  14. package/types/src/components/CustomOpenlayer/components/MapPopup/ImagePopup.vue.d.ts.map +1 -1
  15. package/types/src/components/CustomOpenlayer/components/dialogs/BasemapPanel.vue.d.ts.map +1 -1
  16. package/types/src/components/CustomOpenlayer/components/dialogs/CoordinateLocationDialog.vue.d.ts.map +1 -1
  17. package/types/src/components/CustomOpenlayer/components/dialogs/FilterPanel.vue.d.ts.map +1 -1
  18. package/types/src/components/CustomOpenlayer/components/dialogs/LayerPanel.vue.d.ts.map +1 -1
  19. package/types/src/components/CustomOpenlayer/components/dialogs/LayerStyleConfig.vue.d.ts.map +1 -1
  20. package/types/src/components/CustomOpenlayer/components/dialogs/LayerTreeNode.vue.d.ts.map +1 -1
  21. package/types/src/components/CustomOpenlayer/components/dialogs/MapPrintDialog.vue.d.ts.map +1 -1
  22. package/types/src/components/CustomOpenlayer/components/dialogs/MyMarkersDialog.vue.d.ts.map +1 -1
  23. package/types/src/components/CustomOpenlayer/components/dialogs/RegionNavigationDialog.vue.d.ts.map +1 -1
  24. package/types/src/components/CustomOpenlayer/components/dialogs/ViewBookmarksDialog.vue.d.ts.map +1 -1
  25. package/types/tsconfig.tsbuildinfo +1 -1
  26. package/types/src/components/CustomOpenlayer/utils/layerManager.d.ts.map +0 -1
  27. package/types/src/components/CustomOpenlayer/utils/layers/TileSuperMapRestHandler.d.ts.map +0 -1
  28. package/types/src/components/CustomOpenlayer/utils/mapManager.d.ts.map +0 -1
package/lib/style.css CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- .ol-popup[data-v-9a5b6333] {
2
+ .ol-popup {
3
3
  position: absolute;
4
4
  background-color: white;
5
5
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  /* 移除了重复的伪元素箭头样式,使用 .ol-popup-tip 元素代替 */
18
- .ol-popup-closer[data-v-9a5b6333] {
18
+ .ol-popup-closer {
19
19
  text-decoration: none;
20
20
  position: absolute;
21
21
  top: 2px;
@@ -33,31 +33,31 @@
33
33
  align-items: center;
34
34
  justify-content: center;
35
35
  }
36
- .ol-popup-closer[data-v-9a5b6333]:hover {
36
+ .ol-popup-closer:hover {
37
37
  color: #999;
38
38
  }
39
- .ol-popup-content[data-v-9a5b6333] {
39
+ .ol-popup-content {
40
40
  max-height: 400px;
41
41
  overflow-y: auto;
42
42
  /* 自定义滚动条样式 */
43
43
  scrollbar-width: thin;
44
44
  scrollbar-color: #c1c1c1 #f1f1f1;
45
45
  }
46
- .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar {
46
+ .ol-popup-content::-webkit-scrollbar {
47
47
  width: 6px;
48
48
  }
49
- .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar-track {
49
+ .ol-popup-content::-webkit-scrollbar-track {
50
50
  background: #f1f1f1;
51
51
  border-radius: 3px;
52
52
  }
53
- .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar-thumb {
53
+ .ol-popup-content::-webkit-scrollbar-thumb {
54
54
  background: #c1c1c1;
55
55
  border-radius: 3px;
56
56
  }
57
- .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar-thumb:hover {
57
+ .ol-popup-content::-webkit-scrollbar-thumb:hover {
58
58
  background: #a1a1a1;
59
59
  }
60
- .ol-popup-tip[data-v-9a5b6333] {
60
+ .ol-popup-tip {
61
61
  width: 0;
62
62
  height: 0;
63
63
  border-left: 10px solid transparent;
@@ -70,46 +70,46 @@
70
70
  }
71
71
 
72
72
  /* 不同位置的样式 */
73
- .ol-popup-top[data-v-9a5b6333] {
73
+ .ol-popup-top {
74
74
  bottom: 12px;
75
75
  }
76
- .ol-popup-bottom[data-v-9a5b6333] {
76
+ .ol-popup-bottom {
77
77
  top: 12px;
78
78
  }
79
- .ol-popup-bottom .ol-popup-tip[data-v-9a5b6333] {
79
+ .ol-popup-bottom .ol-popup-tip {
80
80
  border-top: none;
81
81
  border-bottom: 10px solid white;
82
82
  top: -10px;
83
83
  bottom: auto;
84
84
  }
85
- .ol-popup-left[data-v-9a5b6333] {
85
+ .ol-popup-left {
86
86
  right: 12px;
87
87
  left: auto;
88
88
  }
89
- .ol-popup-right[data-v-9a5b6333] {
89
+ .ol-popup-right {
90
90
  left: 12px;
91
91
  }
92
- .ol-popup-default[data-v-9a5b6333] {
92
+ .ol-popup-default {
93
93
  text-align: center;
94
94
  color: #666;
95
95
  font-style: italic;
96
96
  }
97
97
 
98
98
  /* 竖向显示样式 */
99
- .ol-popup-vertical[data-v-9a5b6333] {
99
+ .ol-popup-vertical {
100
100
  display: flex;
101
101
  flex-direction: column;
102
102
  min-width: 200px;
103
103
  max-width: 300px;
104
104
  width: auto;
105
105
  }
106
- .ol-popup-vertical .ol-popup-content[data-v-9a5b6333] {
106
+ .ol-popup-vertical .ol-popup-content {
107
107
  flex: 1;
108
108
  display: flex;
109
109
  flex-direction: column;
110
110
  min-height: 0; /* 允许内容区域收缩 */
111
111
  }
112
- .ol-popup-vertical .ol-popup-closer[data-v-9a5b6333] {
112
+ .ol-popup-vertical .ol-popup-closer {
113
113
  position: relative;
114
114
  top: auto;
115
115
  right: auto;
@@ -117,10 +117,10 @@
117
117
  margin-bottom: 8px;
118
118
  }
119
119
 
120
- .html-popup-content[data-v-0f5b8711] {
120
+ .html-popup-content {
121
121
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
122
122
  }
123
- .html-popup-title[data-v-0f5b8711] {
123
+ .html-popup-title {
124
124
  font-size: 16px;
125
125
  font-weight: 600;
126
126
  color: #333;
@@ -128,68 +128,68 @@
128
128
  padding-bottom: 8px;
129
129
  border-bottom: 1px solid #eee;
130
130
  }
131
- .html-popup-body[data-v-0f5b8711] {
131
+ .html-popup-body {
132
132
  font-size: 14px;
133
133
  line-height: 1.5;
134
134
  color: #666;
135
135
  }
136
136
 
137
137
  /* HTML 内容样式 */
138
- .html-popup-body[data-v-0f5b8711] h1,
139
- .html-popup-body[data-v-0f5b8711] h2,
140
- .html-popup-body[data-v-0f5b8711] h3,
141
- .html-popup-body[data-v-0f5b8711] h4,
142
- .html-popup-body[data-v-0f5b8711] h5,
143
- .html-popup-body[data-v-0f5b8711] h6 {
138
+ .html-popup-body :deep(h1),
139
+ .html-popup-body :deep(h2),
140
+ .html-popup-body :deep(h3),
141
+ .html-popup-body :deep(h4),
142
+ .html-popup-body :deep(h5),
143
+ .html-popup-body :deep(h6) {
144
144
  margin: 0 0 8px 0;
145
145
  color: #333;
146
146
  }
147
- .html-popup-body[data-v-0f5b8711] p {
147
+ .html-popup-body :deep(p) {
148
148
  margin: 0 0 8px 0;
149
149
  }
150
- .html-popup-body[data-v-0f5b8711] ul,
151
- .html-popup-body[data-v-0f5b8711] ol {
150
+ .html-popup-body :deep(ul),
151
+ .html-popup-body :deep(ol) {
152
152
  margin: 0 0 8px 0;
153
153
  padding-left: 20px;
154
154
  }
155
- .html-popup-body[data-v-0f5b8711] li {
155
+ .html-popup-body :deep(li) {
156
156
  margin-bottom: 4px;
157
157
  }
158
- .html-popup-body[data-v-0f5b8711] a {
158
+ .html-popup-body :deep(a) {
159
159
  color: #1890ff;
160
160
  text-decoration: none;
161
161
  }
162
- .html-popup-body[data-v-0f5b8711] a:hover {
162
+ .html-popup-body :deep(a:hover) {
163
163
  text-decoration: underline;
164
164
  }
165
- .html-popup-body[data-v-0f5b8711] img {
165
+ .html-popup-body :deep(img) {
166
166
  max-width: 100%;
167
167
  height: auto;
168
168
  border-radius: 4px;
169
169
  }
170
- .html-popup-body[data-v-0f5b8711] table {
170
+ .html-popup-body :deep(table) {
171
171
  width: 100%;
172
172
  border-collapse: collapse;
173
173
  margin: 8px 0;
174
174
  }
175
- .html-popup-body[data-v-0f5b8711] th,
176
- .html-popup-body[data-v-0f5b8711] td {
175
+ .html-popup-body :deep(th),
176
+ .html-popup-body :deep(td) {
177
177
  padding: 8px;
178
178
  text-align: left;
179
179
  border-bottom: 1px solid #eee;
180
180
  }
181
- .html-popup-body[data-v-0f5b8711] th {
181
+ .html-popup-body :deep(th) {
182
182
  background-color: #f5f5f5;
183
183
  font-weight: 600;
184
184
  }
185
- .html-popup-body[data-v-0f5b8711] code {
185
+ .html-popup-body :deep(code) {
186
186
  background-color: #f5f5f5;
187
187
  padding: 2px 4px;
188
188
  border-radius: 3px;
189
189
  font-family: 'Monaco', 'Consolas', monospace;
190
190
  font-size: 12px;
191
191
  }
192
- .html-popup-body[data-v-0f5b8711] pre {
192
+ .html-popup-body :deep(pre) {
193
193
  background-color: #f5f5f5;
194
194
  padding: 12px;
195
195
  border-radius: 4px;
@@ -197,7 +197,7 @@
197
197
  font-family: 'Monaco', 'Consolas', monospace;
198
198
  font-size: 12px;
199
199
  }
200
- .html-popup-body[data-v-0f5b8711] blockquote {
200
+ .html-popup-body :deep(blockquote) {
201
201
  margin: 8px 0;
202
202
  padding: 8px 16px;
203
203
  background-color: #f9f9f9;
@@ -205,26 +205,26 @@
205
205
  font-style: italic;
206
206
  }
207
207
 
208
- .image-popup-content[data-v-2b939e35] {
208
+ .image-popup-content {
209
209
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
210
210
  }
211
- .image-popup-title[data-v-2b939e35] {
211
+ .image-popup-title {
212
212
  font-size: 16px;
213
213
  font-weight: 600;
214
214
  color: #333;
215
215
  margin-bottom: 8px;
216
216
  text-align: center;
217
217
  }
218
- .image-popup-description[data-v-2b939e35] {
218
+ .image-popup-description {
219
219
  font-size: 14px;
220
220
  color: #666;
221
221
  margin-bottom: 12px;
222
222
  text-align: center;
223
223
  }
224
- .image-popup-main[data-v-2b939e35] {
224
+ .image-popup-main {
225
225
  margin-bottom: 12px;
226
226
  }
227
- .image-container[data-v-2b939e35] {
227
+ .image-container {
228
228
  position: relative;
229
229
  display: flex;
230
230
  justify-content: center;
@@ -234,18 +234,18 @@
234
234
  overflow: hidden;
235
235
  min-height: 200px;
236
236
  }
237
- .main-image[data-v-2b939e35] {
237
+ .main-image {
238
238
  max-width: 100%;
239
239
  max-height: 300px;
240
240
  object-fit: contain;
241
241
  cursor: pointer;
242
242
  transition: transform 0.2s ease;
243
243
  }
244
- .main-image[data-v-2b939e35]:hover {
244
+ .main-image:hover {
245
245
  transform: scale(1.02);
246
246
  }
247
- .image-loading[data-v-2b939e35],
248
- .image-error[data-v-2b939e35] {
247
+ .image-loading,
248
+ .image-error {
249
249
  position: absolute;
250
250
  top: 50%;
251
251
  left: 50%;
@@ -255,22 +255,22 @@
255
255
  align-items: center;
256
256
  color: #666;
257
257
  }
258
- .loading-spinner[data-v-2b939e35] {
258
+ .loading-spinner {
259
259
  width: 20px;
260
260
  height: 20px;
261
261
  border: 2px solid #f3f3f3;
262
262
  border-top: 2px solid #1890ff;
263
263
  border-radius: 50%;
264
- animation: spin-2b939e35 1s linear infinite;
264
+ animation: spin 1s linear infinite;
265
265
  margin-bottom: 8px;
266
266
  }
267
- @keyframes spin-2b939e35 {
267
+ @keyframes spin {
268
268
  0% { transform: rotate(0deg);
269
269
  }
270
270
  100% { transform: rotate(360deg);
271
271
  }
272
272
  }
273
- .image-navigation[data-v-2b939e35] {
273
+ .image-navigation {
274
274
  position: absolute;
275
275
  top: 50%;
276
276
  transform: translateY(-50%);
@@ -280,7 +280,7 @@
280
280
  padding: 0 10px;
281
281
  pointer-events: none;
282
282
  }
283
- .nav-btn[data-v-2b939e35] {
283
+ .nav-btn {
284
284
  background: rgba(0, 0, 0, 0.5);
285
285
  color: white;
286
286
  border: none;
@@ -292,14 +292,14 @@
292
292
  pointer-events: auto;
293
293
  transition: background-color 0.2s ease;
294
294
  }
295
- .nav-btn[data-v-2b939e35]:hover:not(:disabled) {
295
+ .nav-btn:hover:not(:disabled) {
296
296
  background: rgba(0, 0, 0, 0.7);
297
297
  }
298
- .nav-btn[data-v-2b939e35]:disabled {
298
+ .nav-btn:disabled {
299
299
  opacity: 0.3;
300
300
  cursor: not-allowed;
301
301
  }
302
- .image-counter[data-v-2b939e35] {
302
+ .image-counter {
303
303
  position: absolute;
304
304
  bottom: 10px;
305
305
  right: 10px;
@@ -309,13 +309,13 @@
309
309
  border-radius: 12px;
310
310
  font-size: 12px;
311
311
  }
312
- .image-thumbnails[data-v-2b939e35] {
312
+ .image-thumbnails {
313
313
  display: flex;
314
314
  gap: 8px;
315
315
  overflow-x: auto;
316
316
  padding: 8px 0;
317
317
  }
318
- .thumbnail[data-v-2b939e35] {
318
+ .thumbnail {
319
319
  flex-shrink: 0;
320
320
  width: 60px;
321
321
  height: 60px;
@@ -325,19 +325,19 @@
325
325
  border: 2px solid transparent;
326
326
  transition: border-color 0.2s ease;
327
327
  }
328
- .thumbnail.active[data-v-2b939e35] {
328
+ .thumbnail.active {
329
329
  border-color: #1890ff;
330
330
  }
331
- .thumbnail img[data-v-2b939e35] {
331
+ .thumbnail img {
332
332
  width: 100%;
333
333
  height: 100%;
334
334
  object-fit: cover;
335
335
  }
336
- .slideshow-controls[data-v-2b939e35] {
336
+ .slideshow-controls {
337
337
  text-align: center;
338
338
  margin-top: 8px;
339
339
  }
340
- .slideshow-btn[data-v-2b939e35] {
340
+ .slideshow-btn {
341
341
  background: #1890ff;
342
342
  color: white;
343
343
  border: none;
@@ -347,18 +347,18 @@
347
347
  font-size: 12px;
348
348
  transition: background-color 0.2s ease;
349
349
  }
350
- .slideshow-btn[data-v-2b939e35]:hover {
350
+ .slideshow-btn:hover {
351
351
  background: #40a9ff;
352
352
  }
353
- .slideshow-btn.active[data-v-2b939e35] {
353
+ .slideshow-btn.active {
354
354
  background: #ff4d4f;
355
355
  }
356
- .slideshow-btn.active[data-v-2b939e35]:hover {
356
+ .slideshow-btn.active:hover {
357
357
  background: #ff7875;
358
358
  }
359
359
 
360
360
  /* 全屏查看器 */
361
- .image-fullscreen[data-v-2b939e35] {
361
+ .image-fullscreen {
362
362
  position: fixed;
363
363
  top: 0;
364
364
  left: 0;
@@ -371,17 +371,17 @@
371
371
  z-index: 9999;
372
372
  cursor: pointer;
373
373
  }
374
- .fullscreen-container[data-v-2b939e35] {
374
+ .fullscreen-container {
375
375
  position: relative;
376
376
  max-width: 90vw;
377
377
  max-height: 90vh;
378
378
  }
379
- .fullscreen-image[data-v-2b939e35] {
379
+ .fullscreen-image {
380
380
  max-width: 100%;
381
381
  max-height: 100%;
382
382
  object-fit: contain;
383
383
  }
384
- .fullscreen-close[data-v-2b939e35] {
384
+ .fullscreen-close {
385
385
  position: absolute;
386
386
  top: -40px;
387
387
  right: 0;
@@ -396,29 +396,29 @@
396
396
  align-items: center;
397
397
  justify-content: center;
398
398
  }
399
- .fullscreen-close[data-v-2b939e35]:hover {
399
+ .fullscreen-close:hover {
400
400
  background: rgba(255, 255, 255, 0.1);
401
401
  border-radius: 50%;
402
402
  }
403
403
 
404
- .array-popup-content[data-v-140dd964] {
404
+ .array-popup-content {
405
405
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
406
406
  max-width: 600px;
407
407
  }
408
- .array-popup-title[data-v-140dd964] {
408
+ .array-popup-title {
409
409
  font-size: 16px;
410
410
  font-weight: 600;
411
411
  color: #333;
412
412
  margin-bottom: 8px;
413
413
  text-align: center;
414
414
  }
415
- .array-popup-description[data-v-140dd964] {
415
+ .array-popup-description {
416
416
  font-size: 14px;
417
417
  color: #666;
418
418
  margin-bottom: 12px;
419
419
  text-align: center;
420
420
  }
421
- .view-switch[data-v-140dd964] {
421
+ .view-switch {
422
422
  display: flex;
423
423
  gap: 4px;
424
424
  margin-bottom: 12px;
@@ -426,7 +426,7 @@
426
426
  border-radius: 6px;
427
427
  padding: 2px;
428
428
  }
429
- .view-btn[data-v-140dd964] {
429
+ .view-btn {
430
430
  flex: 1;
431
431
  padding: 6px 12px;
432
432
  border: none;
@@ -436,17 +436,17 @@
436
436
  font-size: 12px;
437
437
  transition: all 0.2s ease;
438
438
  }
439
- .view-btn.active[data-v-140dd964] {
439
+ .view-btn.active {
440
440
  background: #1890ff;
441
441
  color: white;
442
442
  }
443
- .view-btn[data-v-140dd964]:hover:not(.active) {
443
+ .view-btn:hover:not(.active) {
444
444
  background: #e6f7ff;
445
445
  }
446
- .search-container[data-v-140dd964] {
446
+ .search-container {
447
447
  margin-bottom: 12px;
448
448
  }
449
- .search-input[data-v-140dd964] {
449
+ .search-input {
450
450
  width: 100%;
451
451
  padding: 8px 12px;
452
452
  border: 1px solid #d9d9d9;
@@ -455,10 +455,10 @@
455
455
  outline: none;
456
456
  transition: border-color 0.2s ease;
457
457
  }
458
- .search-input[data-v-140dd964]:focus {
458
+ .search-input:focus {
459
459
  border-color: #1890ff;
460
460
  }
461
- .data-stats[data-v-140dd964] {
461
+ .data-stats {
462
462
  font-size: 12px;
463
463
  color: #666;
464
464
  margin-bottom: 8px;
@@ -466,18 +466,18 @@
466
466
  }
467
467
 
468
468
  /* 表格视图 */
469
- .table-container[data-v-140dd964] {
469
+ .table-container {
470
470
  max-height: 300px;
471
471
  overflow: auto;
472
472
  border: 1px solid #f0f0f0;
473
473
  border-radius: 4px;
474
474
  }
475
- .data-table[data-v-140dd964] {
475
+ .data-table {
476
476
  width: 100%;
477
477
  border-collapse: collapse;
478
478
  font-size: 12px;
479
479
  }
480
- .data-table th[data-v-140dd964] {
480
+ .data-table th {
481
481
  background: #fafafa;
482
482
  padding: 8px;
483
483
  text-align: left;
@@ -487,45 +487,45 @@
487
487
  top: 0;
488
488
  z-index: 1;
489
489
  }
490
- .data-table th.sortable[data-v-140dd964] {
490
+ .data-table th.sortable {
491
491
  cursor: pointer;
492
492
  user-select: none;
493
493
  }
494
- .data-table th.sortable[data-v-140dd964]:hover {
494
+ .data-table th.sortable:hover {
495
495
  background: #f0f0f0;
496
496
  }
497
- .sort-indicator[data-v-140dd964] {
497
+ .sort-indicator {
498
498
  margin-left: 4px;
499
499
  font-size: 10px;
500
500
  }
501
- .data-table td[data-v-140dd964] {
501
+ .data-table td {
502
502
  padding: 8px;
503
503
  border-bottom: 1px solid #f0f0f0;
504
504
  }
505
- .data-table tbody tr[data-v-140dd964]:hover {
505
+ .data-table tbody tr:hover {
506
506
  background: #f5f5f5;
507
507
  cursor: pointer;
508
508
  }
509
- .table-image[data-v-140dd964] {
509
+ .table-image {
510
510
  width: 40px;
511
511
  height: 40px;
512
512
  object-fit: cover;
513
513
  border-radius: 4px;
514
514
  }
515
- .table-link[data-v-140dd964] {
515
+ .table-link {
516
516
  color: #1890ff;
517
517
  text-decoration: none;
518
518
  }
519
- .table-link[data-v-140dd964]:hover {
519
+ .table-link:hover {
520
520
  text-decoration: underline;
521
521
  }
522
522
 
523
523
  /* 列表视图 */
524
- .list-view[data-v-140dd964] {
524
+ .list-view {
525
525
  max-height: 300px;
526
526
  overflow-y: auto;
527
527
  }
528
- .list-item[data-v-140dd964] {
528
+ .list-item {
529
529
  padding: 12px;
530
530
  border: 1px solid #f0f0f0;
531
531
  border-radius: 4px;
@@ -533,100 +533,100 @@
533
533
  cursor: pointer;
534
534
  transition: all 0.2s ease;
535
535
  }
536
- .list-item[data-v-140dd964]:hover {
536
+ .list-item:hover {
537
537
  border-color: #1890ff;
538
538
  box-shadow: 0 2px 4px rgba(24, 144, 255, 0.1);
539
539
  }
540
- .list-field[data-v-140dd964] {
540
+ .list-field {
541
541
  display: flex;
542
542
  margin-bottom: 4px;
543
543
  font-size: 12px;
544
544
  }
545
- .list-field[data-v-140dd964]:last-child {
545
+ .list-field:last-child {
546
546
  margin-bottom: 0;
547
547
  }
548
- .field-label[data-v-140dd964] {
548
+ .field-label {
549
549
  font-weight: 600;
550
550
  color: #666;
551
551
  min-width: 80px;
552
552
  margin-right: 8px;
553
553
  }
554
- .field-value[data-v-140dd964] {
554
+ .field-value {
555
555
  flex: 1;
556
556
  color: #333;
557
557
  }
558
- .list-image[data-v-140dd964] {
558
+ .list-image {
559
559
  width: 30px;
560
560
  height: 30px;
561
561
  object-fit: cover;
562
562
  border-radius: 4px;
563
563
  }
564
- .list-link[data-v-140dd964] {
564
+ .list-link {
565
565
  color: #1890ff;
566
566
  text-decoration: none;
567
567
  }
568
- .list-link[data-v-140dd964]:hover {
568
+ .list-link:hover {
569
569
  text-decoration: underline;
570
570
  }
571
571
 
572
572
  /* 卡片视图 */
573
- .card-view[data-v-140dd964] {
573
+ .card-view {
574
574
  display: grid;
575
575
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
576
576
  gap: 12px;
577
577
  max-height: 300px;
578
578
  overflow-y: auto;
579
579
  }
580
- .card-item[data-v-140dd964] {
580
+ .card-item {
581
581
  border: 1px solid #f0f0f0;
582
582
  border-radius: 8px;
583
583
  padding: 12px;
584
584
  cursor: pointer;
585
585
  transition: all 0.2s ease;
586
586
  }
587
- .card-item[data-v-140dd964]:hover {
587
+ .card-item:hover {
588
588
  border-color: #1890ff;
589
589
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.1);
590
590
  }
591
- .card-header h4[data-v-140dd964] {
591
+ .card-header h4 {
592
592
  margin: 0 0 8px 0;
593
593
  font-size: 14px;
594
594
  font-weight: 600;
595
595
  color: #333;
596
596
  }
597
- .card-field[data-v-140dd964] {
597
+ .card-field {
598
598
  display: flex;
599
599
  flex-direction: column;
600
600
  margin-bottom: 6px;
601
601
  font-size: 12px;
602
602
  }
603
- .card-field[data-v-140dd964]:last-child {
603
+ .card-field:last-child {
604
604
  margin-bottom: 0;
605
605
  }
606
- .card-field .field-label[data-v-140dd964] {
606
+ .card-field .field-label {
607
607
  font-weight: 600;
608
608
  color: #666;
609
609
  margin-bottom: 2px;
610
610
  }
611
- .card-field .field-value[data-v-140dd964] {
611
+ .card-field .field-value {
612
612
  color: #333;
613
613
  }
614
- .card-image[data-v-140dd964] {
614
+ .card-image {
615
615
  width: 40px;
616
616
  height: 40px;
617
617
  object-fit: cover;
618
618
  border-radius: 4px;
619
619
  }
620
- .card-link[data-v-140dd964] {
620
+ .card-link {
621
621
  color: #1890ff;
622
622
  text-decoration: none;
623
623
  }
624
- .card-link[data-v-140dd964]:hover {
624
+ .card-link:hover {
625
625
  text-decoration: underline;
626
626
  }
627
627
 
628
628
  /* 分页 */
629
- .pagination[data-v-140dd964] {
629
+ .pagination {
630
630
  display: flex;
631
631
  justify-content: space-between;
632
632
  align-items: center;
@@ -634,7 +634,7 @@
634
634
  padding-top: 12px;
635
635
  border-top: 1px solid #f0f0f0;
636
636
  }
637
- .page-btn[data-v-140dd964] {
637
+ .page-btn {
638
638
  padding: 6px 12px;
639
639
  border: 1px solid #d9d9d9;
640
640
  background: white;
@@ -643,34 +643,34 @@
643
643
  font-size: 12px;
644
644
  transition: all 0.2s ease;
645
645
  }
646
- .page-btn[data-v-140dd964]:hover:not(:disabled) {
646
+ .page-btn:hover:not(:disabled) {
647
647
  border-color: #1890ff;
648
648
  color: #1890ff;
649
649
  }
650
- .page-btn[data-v-140dd964]:disabled {
650
+ .page-btn:disabled {
651
651
  opacity: 0.5;
652
652
  cursor: not-allowed;
653
653
  }
654
- .page-info[data-v-140dd964] {
654
+ .page-info {
655
655
  font-size: 12px;
656
656
  color: #666;
657
657
  }
658
658
 
659
659
  /* 空数据 */
660
- .empty-data[data-v-140dd964] {
660
+ .empty-data {
661
661
  text-align: center;
662
662
  padding: 40px 20px;
663
663
  color: #999;
664
664
  }
665
- .empty-icon[data-v-140dd964] {
665
+ .empty-icon {
666
666
  font-size: 48px;
667
667
  margin-bottom: 12px;
668
668
  }
669
- .empty-text[data-v-140dd964] {
669
+ .empty-text {
670
670
  font-size: 14px;
671
671
  }
672
672
 
673
- .map-info-panel[data-v-9ef2c9f4] {
673
+ .map-info-panel {
674
674
  position: absolute;
675
675
  gap: 12px;
676
676
  bottom: 0px;
@@ -685,19 +685,19 @@
685
685
 
686
686
 
687
687
  /* 右侧滑入动画 */
688
- .fixed.items-stretch.justify-end .bg-white[data-v-c1dd261c] {
689
- animation: slideInRight-c1dd261c 0.3s ease-out;
688
+ .fixed.items-stretch.justify-end .bg-white {
689
+ animation: slideInRight 0.3s ease-out;
690
690
  }
691
- .fixed.items-stretch.justify-start .bg-white[data-v-c1dd261c] {
692
- animation: slideInLeft-c1dd261c 0.3s ease-out;
691
+ .fixed.items-stretch.justify-start .bg-white {
692
+ animation: slideInLeft 0.3s ease-out;
693
693
  }
694
- .fixed.items-start.justify-center .bg-white[data-v-c1dd261c] {
695
- animation: slideInTop-c1dd261c 0.3s ease-out;
694
+ .fixed.items-start.justify-center .bg-white {
695
+ animation: slideInTop 0.3s ease-out;
696
696
  }
697
- .fixed.items-end.justify-center .bg-white[data-v-c1dd261c] {
698
- animation: slideInBottom-c1dd261c 0.3s ease-out;
697
+ .fixed.items-end.justify-center .bg-white {
698
+ animation: slideInBottom 0.3s ease-out;
699
699
  }
700
- @keyframes slideInRight-c1dd261c {
700
+ @keyframes slideInRight {
701
701
  from {
702
702
  transform: translateX(100%);
703
703
  }
@@ -705,7 +705,7 @@ to {
705
705
  transform: translateX(0);
706
706
  }
707
707
  }
708
- @keyframes slideInLeft-c1dd261c {
708
+ @keyframes slideInLeft {
709
709
  from {
710
710
  transform: translateX(-100%);
711
711
  }
@@ -713,7 +713,7 @@ to {
713
713
  transform: translateX(0);
714
714
  }
715
715
  }
716
- @keyframes slideInTop-c1dd261c {
716
+ @keyframes slideInTop {
717
717
  from {
718
718
  transform: translateY(-100%);
719
719
  }
@@ -721,7 +721,7 @@ to {
721
721
  transform: translateY(0);
722
722
  }
723
723
  }
724
- @keyframes slideInBottom-c1dd261c {
724
+ @keyframes slideInBottom {
725
725
  from {
726
726
  transform: translateY(100%);
727
727
  }
@@ -731,8 +731,8 @@ to {
731
731
  }
732
732
 
733
733
  /* 调整右侧对话框的样式 */
734
- .fixed.items-stretch.justify-end .bg-white[data-v-c1dd261c],
735
- .fixed.items-stretch.justify-start .bg-white[data-v-c1dd261c] {
734
+ .fixed.items-stretch.justify-end .bg-white,
735
+ .fixed.items-stretch.justify-start .bg-white {
736
736
  max-width: none;
737
737
  max-height: none;
738
738
  border-radius: 0;
@@ -740,64 +740,64 @@ to {
740
740
  }
741
741
 
742
742
  /* 调整上下对话框的样式 */
743
- .fixed.items-start.justify-center .bg-white[data-v-c1dd261c],
744
- .fixed.items-end.justify-center .bg-white[data-v-c1dd261c] {
743
+ .fixed.items-start.justify-center .bg-white,
744
+ .fixed.items-end.justify-center .bg-white {
745
745
  max-height: none;
746
746
  width: 100vw;
747
747
  border-radius: 0;
748
748
  }
749
749
 
750
750
  /* 调整大小控制点样式 */
751
- .resize-n[data-v-c1dd261c] {
751
+ .resize-n {
752
752
  top: -3px;
753
753
  left: 0;
754
754
  right: 0;
755
755
  height: 6px;
756
756
  cursor: n-resize;
757
757
  }
758
- .resize-ne[data-v-c1dd261c] {
758
+ .resize-ne {
759
759
  top: -3px;
760
760
  right: -3px;
761
761
  width: 6px;
762
762
  height: 6px;
763
763
  cursor: ne-resize;
764
764
  }
765
- .resize-e[data-v-c1dd261c] {
765
+ .resize-e {
766
766
  top: 0;
767
767
  right: -3px;
768
768
  bottom: 0;
769
769
  width: 6px;
770
770
  cursor: e-resize;
771
771
  }
772
- .resize-se[data-v-c1dd261c] {
772
+ .resize-se {
773
773
  bottom: -3px;
774
774
  right: -3px;
775
775
  width: 6px;
776
776
  height: 6px;
777
777
  cursor: se-resize;
778
778
  }
779
- .resize-s[data-v-c1dd261c] {
779
+ .resize-s {
780
780
  bottom: -3px;
781
781
  left: 0;
782
782
  right: 0;
783
783
  height: 6px;
784
784
  cursor: s-resize;
785
785
  }
786
- .resize-sw[data-v-c1dd261c] {
786
+ .resize-sw {
787
787
  bottom: -3px;
788
788
  left: -3px;
789
789
  width: 6px;
790
790
  height: 6px;
791
791
  cursor: sw-resize;
792
792
  }
793
- .resize-w[data-v-c1dd261c] {
793
+ .resize-w {
794
794
  top: 0;
795
795
  left: -3px;
796
796
  bottom: 0;
797
797
  width: 6px;
798
798
  cursor: w-resize;
799
799
  }
800
- .resize-nw[data-v-c1dd261c] {
800
+ .resize-nw {
801
801
  top: -3px;
802
802
  left: -3px;
803
803
  width: 6px;
@@ -806,19 +806,19 @@ to {
806
806
  }
807
807
 
808
808
  /* 底图对话框样式 */
809
- .basemap-dialog[data-v-156831b6] {
809
+ .basemap-dialog {
810
810
  /* CustomDialog 会处理右侧滑入动画 */
811
811
  }
812
812
 
813
813
  /* 底图内容容器 */
814
- .basemap-content[data-v-156831b6] {
814
+ .basemap-content {
815
815
  padding: 16px;
816
816
  height: 100%;
817
817
  overflow: visible;
818
818
  }
819
819
 
820
820
  /* 底图网格布局 */
821
- .basemap-grid[data-v-156831b6] {
821
+ .basemap-grid {
822
822
  display: grid;
823
823
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
824
824
  gap: 16px;
@@ -826,7 +826,7 @@ to {
826
826
  }
827
827
 
828
828
  /* 底图项目 */
829
- .basemap-item[data-v-156831b6] {
829
+ .basemap-item {
830
830
  display: flex;
831
831
  flex-direction: column;
832
832
  align-items: center;
@@ -839,20 +839,20 @@ to {
839
839
  backdrop-filter: blur(10px);
840
840
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
841
841
  }
842
- .basemap-item[data-v-156831b6]:hover {
842
+ .basemap-item:hover {
843
843
  transform: translateY(-2px) scale(1.02);
844
844
  border-color: rgba(59, 130, 246, 0.3);
845
845
  box-shadow: 0 8px 25px rgba(59, 130, 246, 0.15), 0 4px 12px rgba(0, 0, 0, 0.1);
846
846
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 1) 100%);
847
847
  }
848
- .basemap-item.active[data-v-156831b6] {
848
+ .basemap-item.active {
849
849
  border-color: #3b82f6;
850
850
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(147, 197, 253, 0.15) 100%);
851
851
  box-shadow: 0 8px 25px rgba(59, 130, 246, 0.2), 0 4px 12px rgba(0, 0, 0, 0.1);
852
852
  }
853
853
 
854
854
  /* 底图预览图片 */
855
- .basemap-preview[data-v-156831b6] {
855
+ .basemap-preview {
856
856
  width: 100px;
857
857
  height: 75px;
858
858
  border-radius: 8px;
@@ -861,11 +861,11 @@ to {
861
861
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
862
862
  transition: all 0.3s ease;
863
863
  }
864
- .basemap-item:hover .basemap-preview[data-v-156831b6] {
864
+ .basemap-item:hover .basemap-preview {
865
865
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
866
866
  transform: scale(1.05);
867
867
  }
868
- .basemap-preview img[data-v-156831b6] {
868
+ .basemap-preview img {
869
869
  width: 100%;
870
870
  height: 100%;
871
871
  object-fit: cover;
@@ -875,7 +875,7 @@ to {
875
875
  }
876
876
 
877
877
  /* 底图名称 */
878
- .basemap-name[data-v-156831b6] {
878
+ .basemap-name {
879
879
  font-size: 12px;
880
880
  font-weight: 500;
881
881
  color: #374151;
@@ -883,24 +883,24 @@ to {
883
883
  line-height: 1.4;
884
884
  transition: all 0.3s ease;
885
885
  }
886
- .basemap-item:hover .basemap-name[data-v-156831b6] {
886
+ .basemap-item:hover .basemap-name {
887
887
  color: #1f2937;
888
888
  font-weight: 600;
889
889
  }
890
- .basemap-item.active .basemap-name[data-v-156831b6] {
890
+ .basemap-item.active .basemap-name {
891
891
  color: #3b82f6;
892
892
  font-weight: 600;
893
893
  }
894
894
 
895
895
  /* 底图网格 */
896
- .basemap-grid[data-v-156831b6] {
896
+ .basemap-grid {
897
897
  display: grid;
898
898
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
899
899
  gap: 16px;
900
900
  }
901
901
 
902
902
  /* 底图项 */
903
- .basemap-item[data-v-156831b6] {
903
+ .basemap-item {
904
904
  cursor: pointer;
905
905
  border-radius: 12px;
906
906
  overflow: hidden;
@@ -910,7 +910,7 @@ to {
910
910
  backdrop-filter: blur(10px);
911
911
  position: relative;
912
912
  }
913
- .basemap-item[data-v-156831b6]::before {
913
+ .basemap-item::before {
914
914
  content: '';
915
915
  position: absolute;
916
916
  top: 0;
@@ -922,25 +922,25 @@ to {
922
922
  transition: opacity 0.3s ease;
923
923
  z-index: 1;
924
924
  }
925
- .basemap-item[data-v-156831b6]:hover {
925
+ .basemap-item:hover {
926
926
  transform: translateY(-4px) scale(1.02);
927
927
  border-color: rgba(59, 130, 246, 0.3);
928
928
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
929
929
  }
930
- .basemap-item[data-v-156831b6]:hover::before {
930
+ .basemap-item:hover::before {
931
931
  opacity: 1;
932
932
  }
933
- .basemap-item.active[data-v-156831b6] {
933
+ .basemap-item.active {
934
934
  border-color: #3b82f6;
935
935
  box-shadow: 0 8px 25px rgba(59, 130, 246, 0.25);
936
936
  transform: translateY(-2px);
937
937
  }
938
- .basemap-item.active[data-v-156831b6]::before {
938
+ .basemap-item.active::before {
939
939
  opacity: 0.7;
940
940
  }
941
941
 
942
942
  /* 底图预览 */
943
- .basemap-preview[data-v-156831b6] {
943
+ .basemap-preview {
944
944
  width: 100%;
945
945
  height: 80px;
946
946
  background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
@@ -951,18 +951,18 @@ to {
951
951
  position: relative;
952
952
  z-index: 2;
953
953
  }
954
- .basemap-preview img[data-v-156831b6] {
954
+ .basemap-preview img {
955
955
  width: 100%;
956
956
  height: 100%;
957
957
  object-fit: cover;
958
958
  transition: transform 0.3s ease;
959
959
  }
960
- .basemap-item:hover .basemap-preview img[data-v-156831b6] {
960
+ .basemap-item:hover .basemap-preview img {
961
961
  transform: scale(1.1);
962
962
  }
963
963
 
964
964
  /* 底图名称 */
965
- .basemap-name[data-v-156831b6] {
965
+ .basemap-name {
966
966
  padding: 12px 16px;
967
967
  text-align: center;
968
968
  font-size: 13px;
@@ -974,26 +974,26 @@ to {
974
974
  z-index: 2;
975
975
  letter-spacing: 0.3px;
976
976
  }
977
- .basemap-item.active .basemap-name[data-v-156831b6] {
977
+ .basemap-item.active .basemap-name {
978
978
  color: #1f2937;
979
979
  font-weight: 600;
980
980
  }
981
981
 
982
982
  /* 响应式设计 */
983
983
  @media (max-width: 480px) {
984
- .basemap-panel[data-v-156831b6] {
984
+ .basemap-panel {
985
985
  width: 100%;
986
986
  }
987
- .basemap-grid[data-v-156831b6] {
987
+ .basemap-grid {
988
988
  grid-template-columns: 1fr;
989
989
  }
990
- .panel-content[data-v-156831b6] {
990
+ .panel-content {
991
991
  padding: 16px;
992
992
  }
993
993
  }
994
994
 
995
995
  /* 动画关键帧 */
996
- @keyframes slideInRight-156831b6 {
996
+ @keyframes slideInRight {
997
997
  from {
998
998
  transform: translateX(100%);
999
999
  opacity: 0;
@@ -1003,7 +1003,7 @@ to {
1003
1003
  opacity: 1;
1004
1004
  }
1005
1005
  }
1006
- @keyframes slideOutRight-156831b6 {
1006
+ @keyframes slideOutRight {
1007
1007
  from {
1008
1008
  transform: translateX(0);
1009
1009
  opacity: 1;
@@ -1101,53 +1101,53 @@ to {
1101
1101
  .dialog-footer[data-v-d868b567] {
1102
1102
  @apply hidden;
1103
1103
  }
1104
- .coordinate-dialog[data-v-26c1acac] {
1104
+ .coordinate-dialog {
1105
1105
  --el-dialog-bg-color: #1a1a1a;
1106
1106
  }
1107
- .coordinate-content[data-v-26c1acac] {
1107
+ .coordinate-content {
1108
1108
  padding: 10px 0;
1109
1109
  }
1110
- .format-selection[data-v-26c1acac] {
1110
+ .format-selection {
1111
1111
  margin-bottom: 20px;
1112
1112
  padding: 15px;
1113
1113
  background: #f8f9fa;
1114
1114
  border-radius: 6px;
1115
1115
  border: 1px solid #e9ecef;
1116
1116
  }
1117
- .format-title[data-v-26c1acac] {
1117
+ .format-title {
1118
1118
  font-weight: 500;
1119
1119
  margin-bottom: 10px;
1120
1120
  color: #495057;
1121
1121
  }
1122
- .format-options[data-v-26c1acac] {
1122
+ .format-options {
1123
1123
  display: flex;
1124
1124
  gap: 20px;
1125
1125
  }
1126
- .format-options[data-v-26c1acac] .el-radio {
1126
+ .format-options :deep(.el-radio) {
1127
1127
  margin-right: 0;
1128
1128
  }
1129
- .coordinate-input[data-v-26c1acac] {
1129
+ .coordinate-input {
1130
1130
  margin-bottom: 20px;
1131
1131
  }
1132
- .dialog-footer[data-v-26c1acac] {
1132
+ .dialog-footer {
1133
1133
  text-align: right;
1134
1134
  }
1135
- .dialog-footer .el-button[data-v-26c1acac] {
1135
+ .dialog-footer .el-button {
1136
1136
  margin-left: 10px;
1137
1137
  }
1138
1138
 
1139
1139
  .region-dialog {
1140
- .region-content[data-v-e968a62a] {
1140
+ .region-content {
1141
1141
  max-height: 500px;
1142
1142
  overflow-y: auto;
1143
1143
  }
1144
- [data-v-e968a62a] .el-tabs__header {
1144
+ :deep(.el-tabs__header) {
1145
1145
  margin: 0 0 20px 0;
1146
1146
  }
1147
- [data-v-e968a62a] .el-tabs__nav-wrap {
1147
+ :deep(.el-tabs__nav-wrap) {
1148
1148
  padding: 0 20px;
1149
1149
  }
1150
- [data-v-e968a62a] .el-tabs__item {
1150
+ :deep(.el-tabs__item) {
1151
1151
  font-size: 16px;
1152
1152
  font-weight: 500;
1153
1153
  color: #606266;
@@ -1156,15 +1156,13 @@ to {
1156
1156
  font-weight: 600;
1157
1157
  }
1158
1158
  }
1159
- [data-v-e968a62a] .el-tabs__active-bar {
1159
+ :deep(.el-tabs__active-bar) {
1160
1160
  background-color: #409eff;
1161
1161
  }
1162
1162
  .region-categories {
1163
- .region-group {
1164
- &[data-v-e968a62a] {
1163
+ .region-group {
1165
1164
  margin-bottom: 20px;
1166
- }
1167
- .group-title[data-v-e968a62a] {
1165
+ .group-title {
1168
1166
  font-size: 14px;
1169
1167
  font-weight: 600;
1170
1168
  color: #606266;
@@ -1172,14 +1170,11 @@ to {
1172
1170
  padding-left: 8px;
1173
1171
  border-left: 3px solid #409eff;
1174
1172
  }
1175
- .region-items {
1176
- &[data-v-e968a62a] {
1173
+ .region-items {
1177
1174
  display: flex;
1178
1175
  flex-wrap: wrap;
1179
1176
  gap: 8px;
1180
- }
1181
- .region-btn {
1182
- &[data-v-e968a62a] {
1177
+ .region-btn {
1183
1178
  margin: 0;
1184
1179
  padding: 8px 16px;
1185
1180
  border: 1px solid #dcdfe6;
@@ -1187,8 +1182,7 @@ to {
1187
1182
  background: #fff;
1188
1183
  color: #606266;
1189
1184
  transition: all 0.3s;
1190
- }
1191
- &[data-v-e968a62a]:hover {
1185
+ &:hover {
1192
1186
  color: #409eff;
1193
1187
  border-color: #409eff;
1194
1188
  background: #ecf5ff;
@@ -1198,15 +1192,12 @@ to {
1198
1192
  }
1199
1193
  }
1200
1194
  .beijing-districts {
1201
- .district-grid {
1202
- &[data-v-e968a62a] {
1195
+ .district-grid {
1203
1196
  display: grid;
1204
1197
  grid-template-columns: repeat(5, 1fr);
1205
1198
  gap: 12px;
1206
1199
  padding: 10px;
1207
- }
1208
- .district-btn {
1209
- &[data-v-e968a62a] {
1200
+ .district-btn {
1210
1201
  padding: 12px 8px;
1211
1202
  border: 1px solid #dcdfe6;
1212
1203
  border-radius: 6px;
@@ -1220,15 +1211,14 @@ to {
1220
1211
  display: flex;
1221
1212
  align-items: center;
1222
1213
  justify-content: center;
1223
- }
1224
- &[data-v-e968a62a]:hover {
1214
+ &:hover {
1225
1215
  color: #409eff;
1226
1216
  border-color: #409eff;
1227
1217
  background: #ecf5ff;
1228
1218
  transform: translateY(-2px);
1229
1219
  box-shadow: 0 4px 8px rgba(64, 158, 255, 0.2);
1230
1220
  }
1231
- &.active[data-v-e968a62a] {
1221
+ &.active {
1232
1222
  color: #fff;
1233
1223
  background: #409eff;
1234
1224
  border-color: #409eff;
@@ -1241,7 +1231,7 @@ to {
1241
1231
  @media (max-width: 768px) {
1242
1232
  .region-dialog {
1243
1233
  .beijing-districts {
1244
- .district-grid[data-v-e968a62a] {
1234
+ .district-grid {
1245
1235
  grid-template-columns: repeat(3, 1fr);
1246
1236
  gap: 8px;
1247
1237
  }
@@ -1251,30 +1241,30 @@ to {
1251
1241
  @media (max-width: 480px) {
1252
1242
  .region-dialog {
1253
1243
  .beijing-districts {
1254
- .district-grid[data-v-e968a62a] {
1244
+ .district-grid {
1255
1245
  grid-template-columns: repeat(2, 1fr);
1256
1246
  }
1257
1247
  }
1258
1248
  }
1259
1249
  }
1260
1250
 
1261
- .markers-dialog[data-v-940a2ace] {
1251
+ .markers-dialog {
1262
1252
  --el-dialog-bg-color: #1a1a1a;
1263
1253
  }
1264
- .markers-content[data-v-940a2ace] {
1254
+ .markers-content {
1265
1255
  padding: 10px 0;
1266
1256
  }
1267
- .toolbar[data-v-940a2ace] {
1257
+ .toolbar {
1268
1258
  margin-bottom: 15px;
1269
1259
  display: flex;
1270
1260
  gap: 10px;
1271
1261
  }
1272
- .toolbar .adding-marker[data-v-940a2ace] {
1262
+ .toolbar .adding-marker {
1273
1263
  background-color: #f56c6c !important;
1274
1264
  border-color: #f56c6c !important;
1275
- animation: pulse-940a2ace 1.5s infinite;
1265
+ animation: pulse 1.5s infinite;
1276
1266
  }
1277
- @keyframes pulse-940a2ace {
1267
+ @keyframes pulse {
1278
1268
  0% {
1279
1269
  box-shadow: 0 0 0 0 rgba(245, 108, 108, 0.7);
1280
1270
  }
@@ -1285,57 +1275,57 @@ to {
1285
1275
  box-shadow: 0 0 0 0 rgba(245, 108, 108, 0);
1286
1276
  }
1287
1277
  }
1288
- .search-filter[data-v-940a2ace] {
1278
+ .search-filter {
1289
1279
  margin-bottom: 15px;
1290
1280
  display: flex;
1291
1281
  align-items: center;
1292
1282
  }
1293
- .markers-list[data-v-940a2ace] {
1283
+ .markers-list {
1294
1284
  margin-bottom: 20px;
1295
1285
  }
1296
- .markers-table[data-v-940a2ace] {
1286
+ .markers-table {
1297
1287
  --el-table-bg-color: transparent;
1298
1288
  --el-table-tr-bg-color: transparent;
1299
1289
  --el-table-header-bg-color: rgba(255, 255, 255, 0.05);
1300
1290
  }
1301
- .marker-name[data-v-940a2ace] {
1291
+ .marker-name {
1302
1292
  display: flex;
1303
1293
  align-items: center;
1304
1294
  gap: 5px;
1305
1295
  }
1306
- .delete-btn[data-v-940a2ace] {
1296
+ .delete-btn {
1307
1297
  color: #f56c6c;
1308
1298
  }
1309
- .delete-btn[data-v-940a2ace]:hover {
1299
+ .delete-btn:hover {
1310
1300
  color: #f78989;
1311
1301
  }
1312
- .statistics[data-v-940a2ace] {
1302
+ .statistics {
1313
1303
  padding: 15px;
1314
1304
  background: rgba(64, 158, 255, 0.05);
1315
1305
  border-radius: 6px;
1316
1306
  border: 1px solid rgba(64, 158, 255, 0.2);
1317
1307
  }
1318
- .dialog-footer[data-v-940a2ace] {
1308
+ .dialog-footer {
1319
1309
  text-align: right;
1320
1310
  }
1321
1311
 
1322
- .bookmarks-dialog[data-v-f533ea83] {
1312
+ .bookmarks-dialog {
1323
1313
  --el-dialog-bg-color: #1a1a1a;
1324
1314
  }
1325
- .bookmarks-content[data-v-f533ea83] {
1315
+ .bookmarks-content {
1326
1316
  padding: 10px 0;
1327
1317
  }
1328
- .toolbar[data-v-f533ea83] {
1318
+ .toolbar {
1329
1319
  margin-bottom: 15px;
1330
1320
  display: flex;
1331
1321
  gap: 10px;
1332
1322
  }
1333
- .search-filter[data-v-f533ea83] {
1323
+ .search-filter {
1334
1324
  margin-bottom: 15px;
1335
1325
  display: flex;
1336
1326
  align-items: center;
1337
1327
  }
1338
- .bookmarks-grid[data-v-f533ea83] {
1328
+ .bookmarks-grid {
1339
1329
  display: grid;
1340
1330
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
1341
1331
  gap: 15px;
@@ -1343,7 +1333,7 @@ to {
1343
1333
  max-height: 400px;
1344
1334
  overflow-y: auto;
1345
1335
  }
1346
- .bookmark-card[data-v-f533ea83] {
1336
+ .bookmark-card {
1347
1337
  border: 1px solid #303133;
1348
1338
  border-radius: 8px;
1349
1339
  overflow: hidden;
@@ -1351,12 +1341,12 @@ to {
1351
1341
  transition: all 0.3s ease;
1352
1342
  cursor: pointer;
1353
1343
  }
1354
- .bookmark-card[data-v-f533ea83]:hover {
1344
+ .bookmark-card:hover {
1355
1345
  border-color: #409eff;
1356
1346
  box-shadow: 0 4px 12px rgba(64, 158, 255, 0.2);
1357
1347
  transform: translateY(-2px);
1358
1348
  }
1359
- .bookmark-thumbnail[data-v-f533ea83] {
1349
+ .bookmark-thumbnail {
1360
1350
  position: relative;
1361
1351
  height: 120px;
1362
1352
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
@@ -1364,10 +1354,10 @@ to {
1364
1354
  align-items: center;
1365
1355
  justify-content: center;
1366
1356
  }
1367
- .thumbnail-placeholder[data-v-f533ea83] {
1357
+ .thumbnail-placeholder {
1368
1358
  opacity: 0.6;
1369
1359
  }
1370
- .bookmark-overlay[data-v-f533ea83] {
1360
+ .bookmark-overlay {
1371
1361
  position: absolute;
1372
1362
  top: 0;
1373
1363
  left: 0;
@@ -1380,13 +1370,13 @@ to {
1380
1370
  opacity: 0;
1381
1371
  transition: opacity 0.3s ease;
1382
1372
  }
1383
- .bookmark-card:hover .bookmark-overlay[data-v-f533ea83] {
1373
+ .bookmark-card:hover .bookmark-overlay {
1384
1374
  opacity: 1;
1385
1375
  }
1386
- .bookmark-info[data-v-f533ea83] {
1376
+ .bookmark-info {
1387
1377
  padding: 12px;
1388
1378
  }
1389
- .bookmark-title[data-v-f533ea83] {
1379
+ .bookmark-title {
1390
1380
  font-size: 16px;
1391
1381
  font-weight: bold;
1392
1382
  color: #e4e7ed;
@@ -1395,17 +1385,17 @@ to {
1395
1385
  overflow: hidden;
1396
1386
  text-overflow: ellipsis;
1397
1387
  }
1398
- .bookmark-meta[data-v-f533ea83] {
1388
+ .bookmark-meta {
1399
1389
  display: flex;
1400
1390
  justify-content: space-between;
1401
1391
  align-items: center;
1402
1392
  margin-bottom: 8px;
1403
1393
  }
1404
- .use-count[data-v-f533ea83] {
1394
+ .use-count {
1405
1395
  font-size: 12px;
1406
1396
  color: #909399;
1407
1397
  }
1408
- .bookmark-description[data-v-f533ea83] {
1398
+ .bookmark-description {
1409
1399
  font-size: 12px;
1410
1400
  color: #c0c4cc;
1411
1401
  margin-bottom: 8px;
@@ -1415,73 +1405,73 @@ to {
1415
1405
  -webkit-box-orient: vertical;
1416
1406
  overflow: hidden;
1417
1407
  }
1418
- .bookmark-details[data-v-f533ea83] {
1408
+ .bookmark-details {
1419
1409
  display: flex;
1420
1410
  flex-direction: column;
1421
1411
  gap: 4px;
1422
1412
  margin-bottom: 8px;
1423
1413
  }
1424
- .detail-item[data-v-f533ea83] {
1414
+ .detail-item {
1425
1415
  display: flex;
1426
1416
  align-items: center;
1427
1417
  gap: 4px;
1428
1418
  font-size: 11px;
1429
1419
  color: #909399;
1430
1420
  }
1431
- .bookmark-time[data-v-f533ea83] {
1421
+ .bookmark-time {
1432
1422
  font-size: 11px;
1433
1423
  color: #606266;
1434
1424
  text-align: right;
1435
1425
  }
1436
- .delete-btn[data-v-f533ea83] {
1426
+ .delete-btn {
1437
1427
  color: #f56c6c;
1438
1428
  }
1439
- .delete-btn[data-v-f533ea83]:hover {
1429
+ .delete-btn:hover {
1440
1430
  color: #f78989;
1441
1431
  }
1442
- .empty-state[data-v-f533ea83] {
1432
+ .empty-state {
1443
1433
  text-align: center;
1444
1434
  padding: 40px 0;
1445
1435
  }
1446
- .statistics[data-v-f533ea83] {
1436
+ .statistics {
1447
1437
  padding: 15px;
1448
1438
  background: rgba(64, 158, 255, 0.05);
1449
1439
  border-radius: 6px;
1450
1440
  border: 1px solid rgba(64, 158, 255, 0.2);
1451
1441
  }
1452
- .dialog-footer[data-v-f533ea83] {
1442
+ .dialog-footer {
1453
1443
  text-align: right;
1454
1444
  }
1455
1445
 
1456
1446
  /* 自定义滚动条 */
1457
- .bookmarks-grid[data-v-f533ea83]::-webkit-scrollbar {
1447
+ .bookmarks-grid::-webkit-scrollbar {
1458
1448
  width: 6px;
1459
1449
  }
1460
- .bookmarks-grid[data-v-f533ea83]::-webkit-scrollbar-track {
1450
+ .bookmarks-grid::-webkit-scrollbar-track {
1461
1451
  background: #2c2c2c;
1462
1452
  border-radius: 3px;
1463
1453
  }
1464
- .bookmarks-grid[data-v-f533ea83]::-webkit-scrollbar-thumb {
1454
+ .bookmarks-grid::-webkit-scrollbar-thumb {
1465
1455
  background: #409eff;
1466
1456
  border-radius: 3px;
1467
1457
  }
1468
- .bookmarks-grid[data-v-f533ea83]::-webkit-scrollbar-thumb:hover {
1458
+ .bookmarks-grid::-webkit-scrollbar-thumb:hover {
1469
1459
  background: #66b1ff;
1470
1460
  }
1471
1461
 
1472
1462
  /* 地图预览容器样式 */
1473
- .map-preview-container > div[data-v-b6e68ef8] {
1463
+ .map-preview-container > div {
1474
1464
  width: 100% !important;
1475
1465
  height: 100% !important;
1476
1466
  }
1477
1467
 
1478
1468
  /* 预览页面缩放变换 */
1479
- .preview-page[data-v-b6e68ef8] {
1469
+ .preview-page {
1480
1470
  transform-origin: top center;
1481
1471
  }
1482
1472
 
1483
1473
  /* 确保地图容器有明确的尺寸 */
1484
- #map-preview-container[data-v-b6e68ef8] {
1474
+ #map-preview-container {
1485
1475
  width: 100% !important;
1486
1476
  height: 400px !important;
1487
1477
  min-height: 400px !important;
@@ -1489,27 +1479,27 @@ to {
1489
1479
  }
1490
1480
 
1491
1481
  /* OpenLayers地图容器样式 */
1492
- #map-preview-container .ol-viewport[data-v-b6e68ef8] {
1482
+ #map-preview-container .ol-viewport {
1493
1483
  width: 100% !important;
1494
1484
  height: 100% !important;
1495
1485
  }
1496
1486
 
1497
1487
  /* 确保Canvas元素正确显示 */
1498
- #map-preview-container canvas[data-v-b6e68ef8] {
1488
+ #map-preview-container canvas {
1499
1489
  width: 100% !important;
1500
1490
  height: 100% !important;
1501
1491
  }
1502
- .mark-tab-container[data-v-2ce9f7a4] {
1492
+ .mark-tab-container[data-v-127b85ab] {
1503
1493
  display: flex;
1504
1494
  flex-direction: column;
1505
1495
  height: 100%;
1506
1496
  padding: 12px;
1507
1497
  }
1508
- .type-select[data-v-2ce9f7a4] {
1498
+ .type-select[data-v-127b85ab] {
1509
1499
  width: 100%;
1510
1500
  margin-bottom: 12px;
1511
1501
  }
1512
- .continuous-switch[data-v-2ce9f7a4] {
1502
+ .continuous-switch[data-v-127b85ab] {
1513
1503
  display: flex;
1514
1504
  align-items: center;
1515
1505
  justify-content: space-between;
@@ -1518,18 +1508,18 @@ to {
1518
1508
  background-color: #f9fafb;
1519
1509
  border-radius: 6px;
1520
1510
  }
1521
- .switch-label[data-v-2ce9f7a4] {
1511
+ .switch-label[data-v-127b85ab] {
1522
1512
  font-size: 14px;
1523
1513
  color: #374151;
1524
1514
  }
1525
- .tools-grid[data-v-2ce9f7a4] {
1515
+ .tools-grid[data-v-127b85ab] {
1526
1516
  display: grid;
1527
1517
  grid-template-columns: repeat(3, 1fr);
1528
1518
  gap: 16px;
1529
1519
  flex: 1;
1530
1520
  overflow: auto;
1531
1521
  }
1532
- .tool-item[data-v-2ce9f7a4] {
1522
+ .tool-item[data-v-127b85ab] {
1533
1523
  display: flex;
1534
1524
  flex-direction: column;
1535
1525
  align-items: center;
@@ -1540,39 +1530,39 @@ to {
1540
1530
  cursor: pointer;
1541
1531
  transition: all 0.3s ease;
1542
1532
  }
1543
- .tool-item[data-v-2ce9f7a4]:hover {
1533
+ .tool-item[data-v-127b85ab]:hover {
1544
1534
  background-color: #f3f4f6;
1545
1535
  border-color: #60a5fa;
1546
1536
  }
1547
- .tool-image[data-v-2ce9f7a4] {
1537
+ .tool-image[data-v-127b85ab] {
1548
1538
  width: 24px;
1549
1539
  height: 24px;
1550
1540
  margin-bottom: 4px;
1551
1541
  }
1552
- .tool-icon-large[data-v-2ce9f7a4] {
1542
+ .tool-icon-large[data-v-127b85ab] {
1553
1543
  font-size: 24px;
1554
1544
  margin-bottom: 4px;
1555
1545
  }
1556
- .tool-label[data-v-2ce9f7a4] {
1546
+ .tool-label[data-v-127b85ab] {
1557
1547
  font-size: 12px;
1558
1548
  color: #6b7280;
1559
1549
  text-align: center;
1560
1550
  }
1561
- .tool-item:hover .tool-label[data-v-2ce9f7a4] {
1551
+ .tool-item:hover .tool-label[data-v-127b85ab] {
1562
1552
  color: #3b82f6;
1563
1553
  }
1564
- .stop-drawing-section[data-v-2ce9f7a4] {
1554
+ .stop-drawing-section[data-v-127b85ab] {
1565
1555
  margin-top: 12px;
1566
1556
  padding-top: 12px;
1567
1557
  border-top: 1px solid #e5e7eb;
1568
1558
  }
1569
- .stop-drawing-section[data-v-2ce9f7a4] {
1559
+ .stop-drawing-section {
1570
1560
  margin-top: 20px;
1571
1561
  padding-top: 16px;
1572
1562
  border-top: 1px solid #e4e7ed;
1573
1563
  text-align: center;
1574
1564
  }
1575
- .stop-drawing-section .el-button[data-v-2ce9f7a4] {
1565
+ .stop-drawing-section .el-button {
1576
1566
  width: 100%;
1577
1567
  font-weight: 500;
1578
1568
  }
@@ -1912,106 +1902,102 @@ to {
1912
1902
  [data-v-45410a30] .el-button,[data-v-45410a30] .el-slider,[data-v-45410a30] .el-icon {
1913
1903
  pointer-events: auto;
1914
1904
  }
1915
- .absolute[data-v-d37bba0b] {
1905
+ .absolute {
1916
1906
  position: absolute;
1917
1907
  }
1918
- .bottom-40px[data-v-d37bba0b] {
1908
+ .bottom-40px {
1919
1909
  bottom: 40px;
1920
1910
  }
1921
1911
 
1922
1912
  /* 图例面板样式 */
1923
- .legend-collapsed[data-v-d37bba0b] {
1913
+ .legend-collapsed {
1924
1914
  transform: translateX(calc(100% - 40px));
1925
1915
  }
1926
- .legend-collapsed[data-v-d37bba0b]:hover {
1916
+ .legend-collapsed:hover {
1927
1917
  transform: translateX(0);
1928
1918
  }
1929
1919
 
1930
1920
  /* 图例项样式 */
1931
- .legend-item[data-v-d37bba0b] {
1921
+ .legend-item {
1932
1922
  @apply mb-2 last:mb-0;
1933
1923
  }
1934
- .legend-title[data-v-d37bba0b] {
1924
+ .legend-title {
1935
1925
  @apply text-sm font-medium text-gray-700 mb-2;
1936
1926
  }
1937
- .legend-content[data-v-d37bba0b] {
1927
+ .legend-content {
1938
1928
  @apply space-y-1;
1939
1929
  }
1940
- .legend-symbol[data-v-d37bba0b] {
1930
+ .legend-symbol {
1941
1931
  @apply inline-block mr-2 align-middle;
1942
1932
  }
1943
- .legend-label[data-v-d37bba0b] {
1933
+ .legend-label {
1944
1934
  @apply text-xs text-gray-600 align-middle;
1945
1935
  }
1946
1936
 
1947
1937
  /* 渐变图例样式 */
1948
- .gradient-legend[data-v-d37bba0b] {
1938
+ .gradient-legend {
1949
1939
  @apply h-4 rounded mb-1;
1950
1940
  }
1951
- .gradient-labels[data-v-d37bba0b] {
1941
+ .gradient-labels {
1952
1942
  @apply flex justify-between text-xs text-gray-500;
1953
1943
  }
1954
1944
 
1955
1945
  /* 分类图例样式 */
1956
- .category-legend[data-v-d37bba0b] {
1946
+ .category-legend {
1957
1947
  @apply flex items-center mb-1;
1958
1948
  }
1959
- .category-symbol[data-v-d37bba0b] {
1949
+ .category-symbol {
1960
1950
  @apply w-4 h-4 mr-2 rounded-sm;
1961
1951
  }
1962
1952
 
1963
1953
  /* 符号图例样式 */
1964
- .symbol-legend[data-v-d37bba0b] {
1954
+ .symbol-legend {
1965
1955
  @apply flex items-center mb-1;
1966
1956
  }
1967
- .symbol-item[data-v-d37bba0b] {
1957
+ .symbol-item {
1968
1958
  @apply w-4 h-4 mr-2;
1969
1959
  }
1970
1960
 
1971
1961
  /* 面板头部样式 */
1972
- .legend-header[data-v-d37bba0b] {
1962
+ .legend-header {
1973
1963
  @apply flex items-center justify-between p-3 border-b border-gray-200;
1974
1964
  }
1975
- .legend-body[data-v-d37bba0b] {
1965
+ .legend-body {
1976
1966
  @apply p-3 max-h-96 overflow-y-auto;
1977
1967
  }
1978
1968
 
1979
1969
  /* 折叠按钮样式 */
1980
- .collapse-btn[data-v-d37bba0b] {
1970
+ .collapse-btn {
1981
1971
  @apply p-1 rounded hover:bg-gray-100 transition-colors;
1982
1972
  }
1983
- .close-btn[data-v-d37bba0b] {
1973
+ .close-btn {
1984
1974
  @apply p-1 rounded hover:bg-gray-100 transition-colors text-gray-500 hover:text-gray-700;
1985
1975
  }
1986
1976
 
1987
1977
  .filter-panel {
1988
1978
  .config-section {
1989
- &[data-v-c78acf80] {
1990
1979
  margin-bottom: 16px;
1991
- }
1992
- h5[data-v-c78acf80] {
1980
+ h5 {
1993
1981
  margin: 0 0 12px 0;
1994
1982
  font-size: 13px;
1995
1983
  font-weight: 500;
1996
1984
  color: #666;
1997
1985
  }
1998
1986
  .config-item {
1999
- &[data-v-c78acf80] {
2000
1987
  display: flex;
2001
1988
  align-items: center;
2002
1989
  margin-bottom: 12px;
2003
1990
  gap: 8px;
2004
- }
2005
- label[data-v-c78acf80] {
1991
+ label {
2006
1992
  flex: 0 0 60px;
2007
1993
  font-size: 12px;
2008
1994
  color: #666;
2009
1995
  }
2010
- .el-slider[data-v-c78acf80] {
1996
+ .el-slider {
2011
1997
  flex: 1;
2012
1998
  margin: 0 8px;
2013
1999
  }
2014
- .value-text[data-v-c78acf80] {
2000
+ .value-text {
2015
2001
  flex: 0 0 45px;
2016
2002
  font-size: 12px;
2017
2003
  color: #999;
@@ -2019,12 +2005,10 @@ label[data-v-c78acf80] {
2019
2005
  }
2020
2006
  }
2021
2007
  .preset-buttons {
2022
- &[data-v-c78acf80] {
2023
2008
  display: flex;
2024
2009
  gap: 8px;
2025
2010
  flex-wrap: wrap;
2026
- }
2027
- .el-button[data-v-c78acf80] {
2011
+ .el-button {
2028
2012
  flex: 1;
2029
2013
  min-width: 60px;
2030
2014
  }
@@ -2033,10 +2017,8 @@ label[data-v-c78acf80] {
2033
2017
  }
2034
2018
 
2035
2019
  .style-config-panel {
2036
- &[data-v-21ab8d8c] {
2037
2020
  padding: 0;
2038
- }
2039
- .panel-title[data-v-21ab8d8c] {
2021
+ .panel-title {
2040
2022
  margin: 0 0 16px 0;
2041
2023
  font-size: 14px;
2042
2024
  font-weight: 600;
@@ -2045,35 +2027,31 @@ label[data-v-c78acf80] {
2045
2027
  padding-bottom: 8px;
2046
2028
  }
2047
2029
  .config-section {
2048
- &[data-v-21ab8d8c] {
2049
2030
  margin-bottom: 16px;
2050
- }
2051
- h5[data-v-21ab8d8c] {
2031
+ h5 {
2052
2032
  margin: 0 0 12px 0;
2053
2033
  font-size: 13px;
2054
2034
  font-weight: 500;
2055
2035
  color: #666;
2056
2036
  }
2057
2037
  .config-item {
2058
- &[data-v-21ab8d8c] {
2059
2038
  display: flex;
2060
2039
  align-items: center;
2061
2040
  margin-bottom: 12px;
2062
2041
  gap: 8px;
2063
- }
2064
- label[data-v-21ab8d8c] {
2042
+ label {
2065
2043
  flex: 0 0 60px;
2066
2044
  font-size: 12px;
2067
2045
  color: #666;
2068
2046
  }
2069
- .el-slider[data-v-21ab8d8c] {
2047
+ .el-slider {
2070
2048
  flex: 1;
2071
2049
  margin: 0 8px;
2072
2050
  }
2073
- .el-select[data-v-21ab8d8c] {
2051
+ .el-select {
2074
2052
  flex: 1;
2075
2053
  }
2076
- .value-text[data-v-21ab8d8c] {
2054
+ .value-text {
2077
2055
  flex: 0 0 45px;
2078
2056
  font-size: 12px;
2079
2057
  color: #999;
@@ -2081,45 +2059,41 @@ label[data-v-21ab8d8c] {
2081
2059
  }
2082
2060
  }
2083
2061
  }
2084
- .panel-actions[data-v-21ab8d8c] {
2062
+ .panel-actions {
2085
2063
  padding-top: 12px;
2086
2064
  border-top: 1px solid #eee;
2087
2065
  text-align: center;
2088
2066
  }
2089
2067
  }
2090
2068
 
2091
- .tree-node-content[data-v-0c99df63] {
2069
+ .tree-node-content {
2092
2070
  display: flex;
2093
2071
  align-items: center;
2094
2072
  width: 100%;
2095
2073
  padding: 4px 0;
2096
2074
  }
2097
- .group-node[data-v-0c99df63] {
2075
+ .group-node {
2098
2076
  display: flex;
2099
2077
  align-items: center;
2100
2078
  font-weight: 500;
2101
2079
  color: #333;
2102
2080
  }
2103
2081
  .layer-item {
2104
- &[data-v-0c99df63] {
2105
2082
  display: flex;
2106
2083
  align-items: center;
2107
2084
  justify-content: space-between;
2108
2085
  width: 100%;
2109
2086
  padding: 2px 0;
2110
- }
2111
2087
  .layer-info {
2112
- &[data-v-0c99df63] {
2113
2088
  display: flex;
2114
2089
  align-items: center;
2115
2090
  flex: 1;
2116
2091
  min-width: 0;
2117
- }
2118
- .layer-icon[data-v-0c99df63] {
2092
+ .layer-icon {
2119
2093
  margin-right: 8px;
2120
2094
  font-size: 14px;
2121
2095
  }
2122
- .layer-name[data-v-0c99df63] {
2096
+ .layer-name {
2123
2097
  font-size: 13px;
2124
2098
  color: #333;
2125
2099
  white-space: nowrap;
@@ -2128,29 +2102,25 @@ label[data-v-21ab8d8c] {
2128
2102
  }
2129
2103
  }
2130
2104
  .layer-controls {
2131
- &[data-v-0c99df63] {
2132
2105
  display: flex;
2133
2106
  align-items: center;
2134
2107
  gap: 8px;
2135
2108
  flex-shrink: 0;
2136
- }
2137
2109
  .opacity-control {
2138
- &[data-v-0c99df63] {
2139
2110
  display: flex;
2140
2111
  align-items: center;
2141
2112
  gap: 4px;
2142
- }
2143
- .opacity-slider[data-v-0c99df63] {
2113
+ .opacity-slider {
2144
2114
  width: 60px;
2145
2115
  }
2146
- .opacity-value[data-v-0c99df63] {
2116
+ .opacity-value {
2147
2117
  font-size: 11px;
2148
2118
  color: #999;
2149
2119
  min-width: 30px;
2150
2120
  text-align: right;
2151
2121
  }
2152
2122
  }
2153
- .style-config-btn[data-v-0c99df63] {
2123
+ .style-config-btn {
2154
2124
  width: 24px;
2155
2125
  height: 24px;
2156
2126
  padding: 0;
@@ -2159,19 +2129,13 @@ label[data-v-21ab8d8c] {
2159
2129
  }
2160
2130
  }
2161
2131
 
2162
- .layer-dialog {
2163
- &[data-v-f32ce80e] {
2164
- /* 全局样式面板样式 */
2165
-
2166
- /* 主标签页样式 */
2167
- }
2168
- .global-style-panel {
2169
- &[data-v-f32ce80e] {
2132
+ .layer-dialog {
2133
+ /* 全局样式面板样式 */
2134
+ .global-style-panel {
2170
2135
  padding: 16px;
2171
2136
  border-bottom: 1px solid #eee;
2172
2137
  background-color: #f8f9fa;
2173
- }
2174
- .panel-title[data-v-f32ce80e] {
2138
+ .panel-title {
2175
2139
  margin: 0 0 16px 0;
2176
2140
  font-size: 14px;
2177
2141
  font-weight: 600;
@@ -2179,63 +2143,57 @@ label[data-v-21ab8d8c] {
2179
2143
  border-bottom: 1px solid #ddd;
2180
2144
  padding-bottom: 8px;
2181
2145
  }
2182
- .config-section {
2183
- &[data-v-f32ce80e] {
2146
+ .config-section {
2184
2147
  margin-bottom: 16px;
2185
- }
2186
- h5[data-v-f32ce80e] {
2148
+ h5 {
2187
2149
  margin: 0 0 12px 0;
2188
2150
  font-size: 13px;
2189
2151
  font-weight: 500;
2190
2152
  color: #666;
2191
2153
  }
2192
- .config-item {
2193
- &[data-v-f32ce80e] {
2154
+ .config-item {
2194
2155
  display: flex;
2195
2156
  align-items: center;
2196
2157
  margin-bottom: 12px;
2197
2158
  gap: 8px;
2198
- }
2199
- label[data-v-f32ce80e] {
2159
+ label {
2200
2160
  flex: 0 0 60px;
2201
2161
  font-size: 12px;
2202
2162
  color: #666;
2203
2163
  }
2204
- .el-slider[data-v-f32ce80e] {
2164
+ .el-slider {
2205
2165
  flex: 1;
2206
2166
  margin: 0 8px;
2207
2167
  }
2208
- .value-text[data-v-f32ce80e] {
2168
+ .value-text {
2209
2169
  flex: 0 0 45px;
2210
2170
  font-size: 12px;
2211
2171
  color: #999;
2212
2172
  text-align: right;
2213
2173
  }
2214
2174
  }
2215
- .preset-buttons {
2216
- &[data-v-f32ce80e] {
2175
+ .preset-buttons {
2217
2176
  display: flex;
2218
2177
  gap: 6px;
2219
2178
  flex-wrap: wrap;
2220
- }
2221
- .el-button[data-v-f32ce80e] {
2179
+ .el-button {
2222
2180
  flex: 1;
2223
2181
  min-width: 60px;
2224
2182
  }
2225
2183
  }
2226
2184
  }
2227
- .panel-actions[data-v-f32ce80e] {
2185
+ .panel-actions {
2228
2186
  margin-top: 16px;
2229
2187
  padding-top: 12px;
2230
2188
  border-top: 1px solid #ddd;
2231
2189
  text-align: center;
2232
2190
  }
2233
- .custom-css-input[data-v-f32ce80e] {
2191
+ .custom-css-input {
2234
2192
  font-family: "Courier New", monospace;
2235
2193
  font-size: 12px;
2236
2194
  line-height: 1.4;
2237
2195
  }
2238
- .custom-css-input[data-v-f32ce80e] .el-textarea__inner {
2196
+ .custom-css-input :deep(.el-textarea__inner) {
2239
2197
  font-family: "Courier New", monospace;
2240
2198
  font-size: 12px;
2241
2199
  line-height: 1.4;
@@ -2243,37 +2201,35 @@ label[data-v-f32ce80e] {
2243
2201
  border: 1px solid #e9ecef;
2244
2202
  }
2245
2203
  .style-tabs {
2246
- [data-v-f32ce80e] .el-tabs__header {
2204
+ :deep(.el-tabs__header) {
2247
2205
  margin: 0 0 16px 0;
2248
2206
  }
2249
- [data-v-f32ce80e] .el-tabs__nav-wrap {
2207
+ :deep(.el-tabs__nav-wrap) {
2250
2208
  padding: 0;
2251
2209
  }
2252
- [data-v-f32ce80e] .el-tabs__item {
2210
+ :deep(.el-tabs__item) {
2253
2211
  font-size: 12px;
2254
2212
  padding: 0 16px;
2255
2213
  height: 32px;
2256
2214
  line-height: 32px;
2257
2215
  }
2258
- [data-v-f32ce80e] .el-tabs__content {
2216
+ :deep(.el-tabs__content) {
2259
2217
  padding: 0;
2260
2218
  }
2261
2219
  }
2262
- .current-style-display {
2263
- &[data-v-f32ce80e] {
2220
+ .current-style-display {
2264
2221
  margin-top: 16px;
2265
2222
  padding: 12px;
2266
2223
  background-color: #f5f5f5;
2267
2224
  border-radius: 4px;
2268
2225
  border: 1px solid #e9ecef;
2269
- }
2270
- h6[data-v-f32ce80e] {
2226
+ h6 {
2271
2227
  margin: 0 0 8px 0;
2272
2228
  font-size: 12px;
2273
2229
  font-weight: 500;
2274
2230
  color: #666;
2275
2231
  }
2276
- .style-preview[data-v-f32ce80e] {
2232
+ .style-preview {
2277
2233
  font-family: "Courier New", monospace;
2278
2234
  font-size: 11px;
2279
2235
  line-height: 1.4;
@@ -2288,53 +2244,49 @@ h6[data-v-f32ce80e] {
2288
2244
  overflow-y: auto;
2289
2245
  }
2290
2246
  }
2291
- }
2292
- .main-tabs[data-v-f32ce80e] {
2247
+ }
2248
+
2249
+ /* 主标签页样式 */
2250
+ .main-tabs {
2293
2251
  height: 100%;
2294
2252
  display: flex;
2295
2253
  flex-direction: column;
2296
2254
  }
2297
- .main-tabs .el-tabs__content[data-v-f32ce80e] {
2255
+ .main-tabs .el-tabs__content {
2298
2256
  flex: 1;
2299
2257
  overflow: hidden;
2300
2258
  padding: 0;
2301
2259
  }
2302
- .main-tabs .el-tab-pane[data-v-f32ce80e] {
2260
+ .main-tabs .el-tab-pane {
2303
2261
  height: 100%;
2304
2262
  overflow: auto;
2305
2263
  display: flex;
2306
2264
  flex-direction: column;
2307
2265
  }
2308
2266
  .layer-tree {
2309
- .tree-node-content {
2310
- &[data-v-f32ce80e] {
2267
+ .tree-node-content {
2311
2268
  width: 100%;
2312
- }
2313
- .group-node[data-v-f32ce80e] {
2269
+ .group-node {
2314
2270
  display: flex;
2315
2271
  align-items: center;
2316
2272
  padding: 8px 0;
2317
2273
  }
2318
- .layer-item {
2319
- &[data-v-f32ce80e] {
2274
+ .layer-item {
2320
2275
  display: flex;
2321
2276
  align-items: center;
2322
2277
  justify-content: space-between;
2323
2278
  width: 100%;
2324
2279
  padding: 6px 0;
2325
- }
2326
- .layer-info {
2327
- &[data-v-f32ce80e] {
2280
+ .layer-info {
2328
2281
  display: flex;
2329
2282
  align-items: center;
2330
2283
  flex: 1;
2331
2284
  min-width: 0;
2332
- }
2333
- .layer-icon[data-v-f32ce80e] {
2285
+ .layer-icon {
2334
2286
  margin-right: 8px;
2335
2287
  flex-shrink: 0;
2336
2288
  }
2337
- .layer-name[data-v-f32ce80e] {
2289
+ .layer-name {
2338
2290
  font-size: 14px;
2339
2291
  color: #333;
2340
2292
  white-space: nowrap;
@@ -2342,24 +2294,20 @@ h6[data-v-f32ce80e] {
2342
2294
  text-overflow: ellipsis;
2343
2295
  }
2344
2296
  }
2345
- .layer-controls {
2346
- &[data-v-f32ce80e] {
2297
+ .layer-controls {
2347
2298
  display: flex;
2348
2299
  align-items: center;
2349
2300
  gap: 8px;
2350
- }
2351
- .opacity-control {
2352
- &[data-v-f32ce80e] {
2301
+ .opacity-control {
2353
2302
  display: flex;
2354
2303
  align-items: center;
2355
2304
  gap: 8px;
2356
2305
  min-width: 120px;
2357
- }
2358
- .opacity-slider[data-v-f32ce80e] {
2306
+ .opacity-slider {
2359
2307
  flex: 1;
2360
2308
  min-width: 80px;
2361
2309
  }
2362
- .opacity-value[data-v-f32ce80e] {
2310
+ .opacity-value {
2363
2311
  font-size: 12px;
2364
2312
  color: #666;
2365
2313
  min-width: 35px;
@@ -2367,7 +2315,7 @@ h6[data-v-f32ce80e] {
2367
2315
  white-space: nowrap;
2368
2316
  }
2369
2317
  }
2370
- .style-config-btn[data-v-f32ce80e] {
2318
+ .style-config-btn {
2371
2319
  width: 24px;
2372
2320
  height: 24px;
2373
2321
  padding: 0;
@@ -2380,11 +2328,9 @@ h6[data-v-f32ce80e] {
2380
2328
  }
2381
2329
 
2382
2330
  /* 样式配置面板样式 */
2383
- [data-v-f32ce80e] .layer-style-popover {
2384
- .style-config-panel {
2385
- & {
2331
+ :deep(.layer-style-popover) {
2332
+ .style-config-panel {
2386
2333
  padding: 0;
2387
- }
2388
2334
  .panel-title {
2389
2335
  margin: 0 0 16px 0;
2390
2336
  font-size: 14px;
@@ -2393,23 +2339,19 @@ h6[data-v-f32ce80e] {
2393
2339
  border-bottom: 1px solid #eee;
2394
2340
  padding-bottom: 8px;
2395
2341
  }
2396
- .config-section {
2397
- & {
2342
+ .config-section {
2398
2343
  margin-bottom: 16px;
2399
- }
2400
2344
  h5 {
2401
2345
  margin: 0 0 12px 0;
2402
2346
  font-size: 13px;
2403
2347
  font-weight: 500;
2404
2348
  color: #666;
2405
2349
  }
2406
- .config-item {
2407
- & {
2350
+ .config-item {
2408
2351
  display: flex;
2409
2352
  align-items: center;
2410
2353
  margin-bottom: 12px;
2411
2354
  gap: 8px;
2412
- }
2413
2355
  label {
2414
2356
  flex: 0 0 60px;
2415
2357
  font-size: 12px;
@@ -2426,12 +2368,10 @@ label {
2426
2368
  text-align: right;
2427
2369
  }
2428
2370
  }
2429
- .preset-buttons {
2430
- & {
2371
+ .preset-buttons {
2431
2372
  display: flex;
2432
2373
  gap: 6px;
2433
2374
  flex-wrap: wrap;
2434
- }
2435
2375
  .el-button {
2436
2376
  flex: 1;
2437
2377
  min-width: 60px;
@@ -2449,7 +2389,7 @@ label {
2449
2389
  font-size: 12px;
2450
2390
  line-height: 1.4;
2451
2391
  }
2452
- .custom-css-input .el-textarea__inner {
2392
+ .custom-css-input :deep(.el-textarea__inner) {
2453
2393
  font-family: "Courier New", monospace;
2454
2394
  font-size: 12px;
2455
2395
  line-height: 1.4;
@@ -2459,7 +2399,7 @@ label {
2459
2399
  }
2460
2400
  }
2461
2401
 
2462
- .context-menu[data-v-e0b9ba6a] {
2402
+ .context-menu {
2463
2403
  background: white;
2464
2404
  border: 1px solid #dcdfe6;
2465
2405
  border-radius: 4px;
@@ -2467,7 +2407,7 @@ label {
2467
2407
  padding: 4px 0;
2468
2408
  min-width: 120px;
2469
2409
  }
2470
- .context-menu-item[data-v-e0b9ba6a] {
2410
+ .context-menu-item {
2471
2411
  display: flex;
2472
2412
  align-items: center;
2473
2413
  padding: 8px 12px;
@@ -2476,10 +2416,10 @@ label {
2476
2416
  color: #606266;
2477
2417
  transition: background-color 0.3s;
2478
2418
  }
2479
- .context-menu-item[data-v-e0b9ba6a]:hover {
2419
+ .context-menu-item:hover {
2480
2420
  background-color: #f5f7fa;
2481
2421
  }
2482
- .context-menu-item .el-icon[data-v-e0b9ba6a] {
2422
+ .context-menu-item .el-icon {
2483
2423
  margin-right: 8px;
2484
2424
  font-size: 16px;
2485
2425
  }