vue-openlayers-plugin 1.0.31 → 1.0.33

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 (37) hide show
  1. package/lib/{index-5109705e.mjs → index-ce768f90.mjs} +1265 -310
  2. package/lib/{index.es-ab75e372.mjs → index.es-3480a166.mjs} +1 -1
  3. package/lib/index.esm.js +1 -1
  4. package/lib/index.umd.js +1269 -314
  5. package/lib/style.css +144 -103
  6. package/package.json +1 -1
  7. package/types/src/components/CustomOpenlayer/components/MapContainer.vue.d.ts +2 -0
  8. package/types/src/components/CustomOpenlayer/components/MapContainer.vue.d.ts.map +1 -1
  9. package/types/src/components/CustomOpenlayer/components/MapPopup/ArrayPopup.vue.d.ts.map +1 -1
  10. package/types/src/components/CustomOpenlayer/components/MapPopup/BasePopup.vue.d.ts.map +1 -1
  11. package/types/src/components/CustomOpenlayer/components/MapPopup/PopupManager.d.ts.map +1 -1
  12. package/types/src/components/CustomOpenlayer/components/MapPopup/types.d.ts +1 -0
  13. package/types/src/components/CustomOpenlayer/components/MapPopup/types.d.ts.map +1 -1
  14. package/types/src/components/CustomOpenlayer/index.vue.d.ts.map +1 -1
  15. package/types/src/components/CustomOpenlayer/types/index.d.ts +89 -172
  16. package/types/src/components/CustomOpenlayer/types/index.d.ts.map +1 -1
  17. package/types/src/components/CustomOpenlayer/utils/eventManager.d.ts +0 -15
  18. package/types/src/components/CustomOpenlayer/utils/eventManager.d.ts.map +1 -1
  19. package/types/src/components/CustomOpenlayer/utils/layerManager.d.ts +8 -8
  20. package/types/src/components/CustomOpenlayer/utils/layerManager.d.ts.map +1 -1
  21. package/types/src/components/CustomOpenlayer/utils/layers/BaseLayer.d.ts.map +1 -1
  22. package/types/src/components/CustomOpenlayer/utils/layers/CanvasLayerHandler.d.ts +2 -1
  23. package/types/src/components/CustomOpenlayer/utils/layers/CanvasLayerHandler.d.ts.map +1 -1
  24. package/types/src/components/CustomOpenlayer/utils/layers/ClusterLayerHandler.d.ts.map +1 -1
  25. package/types/src/components/CustomOpenlayer/utils/layers/GMLLayerHandler.d.ts.map +1 -1
  26. package/types/src/components/CustomOpenlayer/utils/layers/GeoJSONLayerHandler.d.ts +0 -1
  27. package/types/src/components/CustomOpenlayer/utils/layers/GeoJSONLayerHandler.d.ts.map +1 -1
  28. package/types/src/components/CustomOpenlayer/utils/layers/SuperMapServiceTester.d.ts +54 -0
  29. package/types/src/components/CustomOpenlayer/utils/layers/SuperMapServiceTester.d.ts.map +1 -0
  30. package/types/src/components/CustomOpenlayer/utils/layers/TileSuperMapRestHandler.d.ts +109 -0
  31. package/types/src/components/CustomOpenlayer/utils/layers/TileSuperMapRestHandler.d.ts.map +1 -1
  32. package/types/src/components/CustomOpenlayer/utils/layers/WMSLayerHandler.d.ts +14 -1
  33. package/types/src/components/CustomOpenlayer/utils/layers/WMSLayerHandler.d.ts.map +1 -1
  34. package/types/src/components/CustomOpenlayer/utils/mapManager.d.ts.map +1 -1
  35. package/types/src/components/CustomOpenlayer/utils/storage.d.ts +62 -0
  36. package/types/src/components/CustomOpenlayer/utils/storage.d.ts.map +1 -1
  37. package/types/tsconfig.tsbuildinfo +1 -1
package/lib/style.css CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- .map-info-panel[data-v-53c8deda] {
2
+ .map-info-panel[data-v-9900e920] {
3
3
  position: absolute;
4
4
  gap: 12px;
5
5
  bottom: 0px;
@@ -1491,18 +1491,18 @@ label[data-v-21ab8d8c] {
1491
1491
  }
1492
1492
 
1493
1493
  .layer-dialog {
1494
- &[data-v-2456ec00] {
1494
+ &[data-v-6929b38c] {
1495
1495
  /* 全局样式面板样式 */
1496
1496
 
1497
1497
  /* 主标签页样式 */
1498
1498
  }
1499
1499
  .global-style-panel {
1500
- &[data-v-2456ec00] {
1500
+ &[data-v-6929b38c] {
1501
1501
  padding: 16px;
1502
1502
  border-bottom: 1px solid #eee;
1503
1503
  background-color: #f8f9fa;
1504
1504
  }
1505
- .panel-title[data-v-2456ec00] {
1505
+ .panel-title[data-v-6929b38c] {
1506
1506
  margin: 0 0 16px 0;
1507
1507
  font-size: 14px;
1508
1508
  font-weight: 600;
@@ -1511,32 +1511,32 @@ label[data-v-21ab8d8c] {
1511
1511
  padding-bottom: 8px;
1512
1512
  }
1513
1513
  .config-section {
1514
- &[data-v-2456ec00] {
1514
+ &[data-v-6929b38c] {
1515
1515
  margin-bottom: 16px;
1516
1516
  }
1517
- h5[data-v-2456ec00] {
1517
+ h5[data-v-6929b38c] {
1518
1518
  margin: 0 0 12px 0;
1519
1519
  font-size: 13px;
1520
1520
  font-weight: 500;
1521
1521
  color: #666;
1522
1522
  }
1523
1523
  .config-item {
1524
- &[data-v-2456ec00] {
1524
+ &[data-v-6929b38c] {
1525
1525
  display: flex;
1526
1526
  align-items: center;
1527
1527
  margin-bottom: 12px;
1528
1528
  gap: 8px;
1529
1529
  }
1530
- label[data-v-2456ec00] {
1530
+ label[data-v-6929b38c] {
1531
1531
  flex: 0 0 60px;
1532
1532
  font-size: 12px;
1533
1533
  color: #666;
1534
1534
  }
1535
- .el-slider[data-v-2456ec00] {
1535
+ .el-slider[data-v-6929b38c] {
1536
1536
  flex: 1;
1537
1537
  margin: 0 8px;
1538
1538
  }
1539
- .value-text[data-v-2456ec00] {
1539
+ .value-text[data-v-6929b38c] {
1540
1540
  flex: 0 0 45px;
1541
1541
  font-size: 12px;
1542
1542
  color: #999;
@@ -1544,29 +1544,29 @@ label[data-v-2456ec00] {
1544
1544
  }
1545
1545
  }
1546
1546
  .preset-buttons {
1547
- &[data-v-2456ec00] {
1547
+ &[data-v-6929b38c] {
1548
1548
  display: flex;
1549
1549
  gap: 6px;
1550
1550
  flex-wrap: wrap;
1551
1551
  }
1552
- .el-button[data-v-2456ec00] {
1552
+ .el-button[data-v-6929b38c] {
1553
1553
  flex: 1;
1554
1554
  min-width: 60px;
1555
1555
  }
1556
1556
  }
1557
1557
  }
1558
- .panel-actions[data-v-2456ec00] {
1558
+ .panel-actions[data-v-6929b38c] {
1559
1559
  margin-top: 16px;
1560
1560
  padding-top: 12px;
1561
1561
  border-top: 1px solid #ddd;
1562
1562
  text-align: center;
1563
1563
  }
1564
- .custom-css-input[data-v-2456ec00] {
1564
+ .custom-css-input[data-v-6929b38c] {
1565
1565
  font-family: 'Courier New', monospace;
1566
1566
  font-size: 12px;
1567
1567
  line-height: 1.4;
1568
1568
  }
1569
- .custom-css-input[data-v-2456ec00] .el-textarea__inner {
1569
+ .custom-css-input[data-v-6929b38c] .el-textarea__inner {
1570
1570
  font-family: 'Courier New', monospace;
1571
1571
  font-size: 12px;
1572
1572
  line-height: 1.4;
@@ -1574,37 +1574,37 @@ label[data-v-2456ec00] {
1574
1574
  border: 1px solid #e9ecef;
1575
1575
  }
1576
1576
  .style-tabs {
1577
- [data-v-2456ec00] .el-tabs__header {
1577
+ [data-v-6929b38c] .el-tabs__header {
1578
1578
  margin: 0 0 16px 0;
1579
1579
  }
1580
- [data-v-2456ec00] .el-tabs__nav-wrap {
1580
+ [data-v-6929b38c] .el-tabs__nav-wrap {
1581
1581
  padding: 0;
1582
1582
  }
1583
- [data-v-2456ec00] .el-tabs__item {
1583
+ [data-v-6929b38c] .el-tabs__item {
1584
1584
  font-size: 12px;
1585
1585
  padding: 0 16px;
1586
1586
  height: 32px;
1587
1587
  line-height: 32px;
1588
1588
  }
1589
- [data-v-2456ec00] .el-tabs__content {
1589
+ [data-v-6929b38c] .el-tabs__content {
1590
1590
  padding: 0;
1591
1591
  }
1592
1592
  }
1593
1593
  .current-style-display {
1594
- &[data-v-2456ec00] {
1594
+ &[data-v-6929b38c] {
1595
1595
  margin-top: 16px;
1596
1596
  padding: 12px;
1597
1597
  background-color: #f5f5f5;
1598
1598
  border-radius: 4px;
1599
1599
  border: 1px solid #e9ecef;
1600
1600
  }
1601
- h6[data-v-2456ec00] {
1601
+ h6[data-v-6929b38c] {
1602
1602
  margin: 0 0 8px 0;
1603
1603
  font-size: 12px;
1604
1604
  font-weight: 500;
1605
1605
  color: #666;
1606
1606
  }
1607
- .style-preview[data-v-2456ec00] {
1607
+ .style-preview[data-v-6929b38c] {
1608
1608
  font-family: 'Courier New', monospace;
1609
1609
  font-size: 11px;
1610
1610
  line-height: 1.4;
@@ -1620,17 +1620,17 @@ h6[data-v-2456ec00] {
1620
1620
  }
1621
1621
  }
1622
1622
  }
1623
- .main-tabs[data-v-2456ec00] {
1623
+ .main-tabs[data-v-6929b38c] {
1624
1624
  height: 100%;
1625
1625
  display: flex;
1626
1626
  flex-direction: column;
1627
1627
  }
1628
- .main-tabs .el-tabs__content[data-v-2456ec00] {
1628
+ .main-tabs .el-tabs__content[data-v-6929b38c] {
1629
1629
  flex: 1;
1630
1630
  overflow: hidden;
1631
1631
  padding: 0;
1632
1632
  }
1633
- .main-tabs .el-tab-pane[data-v-2456ec00] {
1633
+ .main-tabs .el-tab-pane[data-v-6929b38c] {
1634
1634
  height: 100%;
1635
1635
  overflow: auto;
1636
1636
  display: flex;
@@ -1638,16 +1638,16 @@ h6[data-v-2456ec00] {
1638
1638
  }
1639
1639
  .layer-tree {
1640
1640
  .tree-node-content {
1641
- &[data-v-2456ec00] {
1641
+ &[data-v-6929b38c] {
1642
1642
  width: 100%;
1643
1643
  }
1644
- .group-node[data-v-2456ec00] {
1644
+ .group-node[data-v-6929b38c] {
1645
1645
  display: flex;
1646
1646
  align-items: center;
1647
1647
  padding: 8px 0;
1648
1648
  }
1649
1649
  .layer-item {
1650
- &[data-v-2456ec00] {
1650
+ &[data-v-6929b38c] {
1651
1651
  display: flex;
1652
1652
  align-items: center;
1653
1653
  justify-content: space-between;
@@ -1655,17 +1655,17 @@ h6[data-v-2456ec00] {
1655
1655
  padding: 6px 0;
1656
1656
  }
1657
1657
  .layer-info {
1658
- &[data-v-2456ec00] {
1658
+ &[data-v-6929b38c] {
1659
1659
  display: flex;
1660
1660
  align-items: center;
1661
1661
  flex: 1;
1662
1662
  min-width: 0;
1663
1663
  }
1664
- .layer-icon[data-v-2456ec00] {
1664
+ .layer-icon[data-v-6929b38c] {
1665
1665
  margin-right: 8px;
1666
1666
  flex-shrink: 0;
1667
1667
  }
1668
- .layer-name[data-v-2456ec00] {
1668
+ .layer-name[data-v-6929b38c] {
1669
1669
  font-size: 14px;
1670
1670
  color: #333;
1671
1671
  white-space: nowrap;
@@ -1674,23 +1674,23 @@ h6[data-v-2456ec00] {
1674
1674
  }
1675
1675
  }
1676
1676
  .layer-controls {
1677
- &[data-v-2456ec00] {
1677
+ &[data-v-6929b38c] {
1678
1678
  display: flex;
1679
1679
  align-items: center;
1680
1680
  gap: 8px;
1681
1681
  }
1682
1682
  .opacity-control {
1683
- &[data-v-2456ec00] {
1683
+ &[data-v-6929b38c] {
1684
1684
  display: flex;
1685
1685
  align-items: center;
1686
1686
  gap: 8px;
1687
1687
  min-width: 120px;
1688
1688
  }
1689
- .opacity-slider[data-v-2456ec00] {
1689
+ .opacity-slider[data-v-6929b38c] {
1690
1690
  flex: 1;
1691
1691
  min-width: 80px;
1692
1692
  }
1693
- .opacity-value[data-v-2456ec00] {
1693
+ .opacity-value[data-v-6929b38c] {
1694
1694
  font-size: 12px;
1695
1695
  color: #666;
1696
1696
  min-width: 35px;
@@ -1698,7 +1698,7 @@ h6[data-v-2456ec00] {
1698
1698
  white-space: nowrap;
1699
1699
  }
1700
1700
  }
1701
- .style-config-btn[data-v-2456ec00] {
1701
+ .style-config-btn[data-v-6929b38c] {
1702
1702
  width: 24px;
1703
1703
  height: 24px;
1704
1704
  padding: 0;
@@ -1711,7 +1711,7 @@ h6[data-v-2456ec00] {
1711
1711
  }
1712
1712
 
1713
1713
  /* 样式配置面板样式 */
1714
- [data-v-2456ec00] .layer-style-popover {
1714
+ [data-v-6929b38c] .layer-style-popover {
1715
1715
  .style-config-panel {
1716
1716
  & {
1717
1717
  padding: 0;
@@ -1790,7 +1790,7 @@ label {
1790
1790
  }
1791
1791
  }
1792
1792
 
1793
- .ol-popup[data-v-90f1b0a2] {
1793
+ .ol-popup[data-v-9a5b6333] {
1794
1794
  position: absolute;
1795
1795
  background-color: white;
1796
1796
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
@@ -1801,10 +1801,12 @@ label {
1801
1801
  left: -150px; /* 调整为更精确的居中对齐,考虑边框和内边距 */
1802
1802
  min-width: 280px;
1803
1803
  z-index: 1000;
1804
+ /* 确保popup区域不会穿透点击事件到地图 */
1805
+ pointer-events: auto;
1804
1806
  }
1805
1807
 
1806
1808
  /* 移除了重复的伪元素箭头样式,使用 .ol-popup-tip 元素代替 */
1807
- .ol-popup-closer[data-v-90f1b0a2] {
1809
+ .ol-popup-closer[data-v-9a5b6333] {
1808
1810
  text-decoration: none;
1809
1811
  position: absolute;
1810
1812
  top: 2px;
@@ -1822,14 +1824,31 @@ label {
1822
1824
  align-items: center;
1823
1825
  justify-content: center;
1824
1826
  }
1825
- .ol-popup-closer[data-v-90f1b0a2]:hover {
1827
+ .ol-popup-closer[data-v-9a5b6333]:hover {
1826
1828
  color: #999;
1827
1829
  }
1828
- .ol-popup-content[data-v-90f1b0a2] {
1830
+ .ol-popup-content[data-v-9a5b6333] {
1829
1831
  max-height: 400px;
1830
1832
  overflow-y: auto;
1833
+ /* 自定义滚动条样式 */
1834
+ scrollbar-width: thin;
1835
+ scrollbar-color: #c1c1c1 #f1f1f1;
1836
+ }
1837
+ .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar {
1838
+ width: 6px;
1839
+ }
1840
+ .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar-track {
1841
+ background: #f1f1f1;
1842
+ border-radius: 3px;
1831
1843
  }
1832
- .ol-popup-tip[data-v-90f1b0a2] {
1844
+ .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar-thumb {
1845
+ background: #c1c1c1;
1846
+ border-radius: 3px;
1847
+ }
1848
+ .ol-popup-content[data-v-9a5b6333]::-webkit-scrollbar-thumb:hover {
1849
+ background: #a1a1a1;
1850
+ }
1851
+ .ol-popup-tip[data-v-9a5b6333] {
1833
1852
  width: 0;
1834
1853
  height: 0;
1835
1854
  border-left: 10px solid transparent;
@@ -1842,31 +1861,53 @@ label {
1842
1861
  }
1843
1862
 
1844
1863
  /* 不同位置的样式 */
1845
- .ol-popup-top[data-v-90f1b0a2] {
1864
+ .ol-popup-top[data-v-9a5b6333] {
1846
1865
  bottom: 12px;
1847
1866
  }
1848
- .ol-popup-bottom[data-v-90f1b0a2] {
1867
+ .ol-popup-bottom[data-v-9a5b6333] {
1849
1868
  top: 12px;
1850
1869
  }
1851
- .ol-popup-bottom .ol-popup-tip[data-v-90f1b0a2] {
1870
+ .ol-popup-bottom .ol-popup-tip[data-v-9a5b6333] {
1852
1871
  border-top: none;
1853
1872
  border-bottom: 10px solid white;
1854
1873
  top: -10px;
1855
1874
  bottom: auto;
1856
1875
  }
1857
- .ol-popup-left[data-v-90f1b0a2] {
1876
+ .ol-popup-left[data-v-9a5b6333] {
1858
1877
  right: 12px;
1859
1878
  left: auto;
1860
1879
  }
1861
- .ol-popup-right[data-v-90f1b0a2] {
1880
+ .ol-popup-right[data-v-9a5b6333] {
1862
1881
  left: 12px;
1863
1882
  }
1864
- .ol-popup-default[data-v-90f1b0a2] {
1883
+ .ol-popup-default[data-v-9a5b6333] {
1865
1884
  text-align: center;
1866
1885
  color: #666;
1867
1886
  font-style: italic;
1868
1887
  }
1869
1888
 
1889
+ /* 竖向显示样式 */
1890
+ .ol-popup-vertical[data-v-9a5b6333] {
1891
+ display: flex;
1892
+ flex-direction: column;
1893
+ min-width: 200px;
1894
+ max-width: 300px;
1895
+ width: auto;
1896
+ }
1897
+ .ol-popup-vertical .ol-popup-content[data-v-9a5b6333] {
1898
+ flex: 1;
1899
+ display: flex;
1900
+ flex-direction: column;
1901
+ min-height: 0; /* 允许内容区域收缩 */
1902
+ }
1903
+ .ol-popup-vertical .ol-popup-closer[data-v-9a5b6333] {
1904
+ position: relative;
1905
+ top: auto;
1906
+ right: auto;
1907
+ align-self: flex-end;
1908
+ margin-bottom: 8px;
1909
+ }
1910
+
1870
1911
  .html-popup-content[data-v-0f5b8711] {
1871
1912
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
1872
1913
  }
@@ -2151,24 +2192,24 @@ label {
2151
2192
  border-radius: 50%;
2152
2193
  }
2153
2194
 
2154
- .array-popup-content[data-v-620d344e] {
2195
+ .array-popup-content[data-v-4a372183] {
2155
2196
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
2156
2197
  max-width: 600px;
2157
2198
  }
2158
- .array-popup-title[data-v-620d344e] {
2199
+ .array-popup-title[data-v-4a372183] {
2159
2200
  font-size: 16px;
2160
2201
  font-weight: 600;
2161
2202
  color: #333;
2162
2203
  margin-bottom: 8px;
2163
2204
  text-align: center;
2164
2205
  }
2165
- .array-popup-description[data-v-620d344e] {
2206
+ .array-popup-description[data-v-4a372183] {
2166
2207
  font-size: 14px;
2167
2208
  color: #666;
2168
2209
  margin-bottom: 12px;
2169
2210
  text-align: center;
2170
2211
  }
2171
- .view-switch[data-v-620d344e] {
2212
+ .view-switch[data-v-4a372183] {
2172
2213
  display: flex;
2173
2214
  gap: 4px;
2174
2215
  margin-bottom: 12px;
@@ -2176,7 +2217,7 @@ label {
2176
2217
  border-radius: 6px;
2177
2218
  padding: 2px;
2178
2219
  }
2179
- .view-btn[data-v-620d344e] {
2220
+ .view-btn[data-v-4a372183] {
2180
2221
  flex: 1;
2181
2222
  padding: 6px 12px;
2182
2223
  border: none;
@@ -2186,17 +2227,17 @@ label {
2186
2227
  font-size: 12px;
2187
2228
  transition: all 0.2s ease;
2188
2229
  }
2189
- .view-btn.active[data-v-620d344e] {
2230
+ .view-btn.active[data-v-4a372183] {
2190
2231
  background: #1890ff;
2191
2232
  color: white;
2192
2233
  }
2193
- .view-btn[data-v-620d344e]:hover:not(.active) {
2234
+ .view-btn[data-v-4a372183]:hover:not(.active) {
2194
2235
  background: #e6f7ff;
2195
2236
  }
2196
- .search-container[data-v-620d344e] {
2237
+ .search-container[data-v-4a372183] {
2197
2238
  margin-bottom: 12px;
2198
2239
  }
2199
- .search-input[data-v-620d344e] {
2240
+ .search-input[data-v-4a372183] {
2200
2241
  width: 100%;
2201
2242
  padding: 8px 12px;
2202
2243
  border: 1px solid #d9d9d9;
@@ -2205,10 +2246,10 @@ label {
2205
2246
  outline: none;
2206
2247
  transition: border-color 0.2s ease;
2207
2248
  }
2208
- .search-input[data-v-620d344e]:focus {
2249
+ .search-input[data-v-4a372183]:focus {
2209
2250
  border-color: #1890ff;
2210
2251
  }
2211
- .data-stats[data-v-620d344e] {
2252
+ .data-stats[data-v-4a372183] {
2212
2253
  font-size: 12px;
2213
2254
  color: #666;
2214
2255
  margin-bottom: 8px;
@@ -2216,18 +2257,18 @@ label {
2216
2257
  }
2217
2258
 
2218
2259
  /* 表格视图 */
2219
- .table-container[data-v-620d344e] {
2260
+ .table-container[data-v-4a372183] {
2220
2261
  max-height: 300px;
2221
2262
  overflow: auto;
2222
2263
  border: 1px solid #f0f0f0;
2223
2264
  border-radius: 4px;
2224
2265
  }
2225
- .data-table[data-v-620d344e] {
2266
+ .data-table[data-v-4a372183] {
2226
2267
  width: 100%;
2227
2268
  border-collapse: collapse;
2228
2269
  font-size: 12px;
2229
2270
  }
2230
- .data-table th[data-v-620d344e] {
2271
+ .data-table th[data-v-4a372183] {
2231
2272
  background: #fafafa;
2232
2273
  padding: 8px;
2233
2274
  text-align: left;
@@ -2237,45 +2278,45 @@ label {
2237
2278
  top: 0;
2238
2279
  z-index: 1;
2239
2280
  }
2240
- .data-table th.sortable[data-v-620d344e] {
2281
+ .data-table th.sortable[data-v-4a372183] {
2241
2282
  cursor: pointer;
2242
2283
  user-select: none;
2243
2284
  }
2244
- .data-table th.sortable[data-v-620d344e]:hover {
2285
+ .data-table th.sortable[data-v-4a372183]:hover {
2245
2286
  background: #f0f0f0;
2246
2287
  }
2247
- .sort-indicator[data-v-620d344e] {
2288
+ .sort-indicator[data-v-4a372183] {
2248
2289
  margin-left: 4px;
2249
2290
  font-size: 10px;
2250
2291
  }
2251
- .data-table td[data-v-620d344e] {
2292
+ .data-table td[data-v-4a372183] {
2252
2293
  padding: 8px;
2253
2294
  border-bottom: 1px solid #f0f0f0;
2254
2295
  }
2255
- .data-table tbody tr[data-v-620d344e]:hover {
2296
+ .data-table tbody tr[data-v-4a372183]:hover {
2256
2297
  background: #f5f5f5;
2257
2298
  cursor: pointer;
2258
2299
  }
2259
- .table-image[data-v-620d344e] {
2300
+ .table-image[data-v-4a372183] {
2260
2301
  width: 40px;
2261
2302
  height: 40px;
2262
2303
  object-fit: cover;
2263
2304
  border-radius: 4px;
2264
2305
  }
2265
- .table-link[data-v-620d344e] {
2306
+ .table-link[data-v-4a372183] {
2266
2307
  color: #1890ff;
2267
2308
  text-decoration: none;
2268
2309
  }
2269
- .table-link[data-v-620d344e]:hover {
2310
+ .table-link[data-v-4a372183]:hover {
2270
2311
  text-decoration: underline;
2271
2312
  }
2272
2313
 
2273
2314
  /* 列表视图 */
2274
- .list-view[data-v-620d344e] {
2315
+ .list-view[data-v-4a372183] {
2275
2316
  max-height: 300px;
2276
2317
  overflow-y: auto;
2277
2318
  }
2278
- .list-item[data-v-620d344e] {
2319
+ .list-item[data-v-4a372183] {
2279
2320
  padding: 12px;
2280
2321
  border: 1px solid #f0f0f0;
2281
2322
  border-radius: 4px;
@@ -2283,100 +2324,100 @@ label {
2283
2324
  cursor: pointer;
2284
2325
  transition: all 0.2s ease;
2285
2326
  }
2286
- .list-item[data-v-620d344e]:hover {
2327
+ .list-item[data-v-4a372183]:hover {
2287
2328
  border-color: #1890ff;
2288
2329
  box-shadow: 0 2px 4px rgba(24, 144, 255, 0.1);
2289
2330
  }
2290
- .list-field[data-v-620d344e] {
2331
+ .list-field[data-v-4a372183] {
2291
2332
  display: flex;
2292
2333
  margin-bottom: 4px;
2293
2334
  font-size: 12px;
2294
2335
  }
2295
- .list-field[data-v-620d344e]:last-child {
2336
+ .list-field[data-v-4a372183]:last-child {
2296
2337
  margin-bottom: 0;
2297
2338
  }
2298
- .field-label[data-v-620d344e] {
2339
+ .field-label[data-v-4a372183] {
2299
2340
  font-weight: 600;
2300
2341
  color: #666;
2301
2342
  min-width: 80px;
2302
2343
  margin-right: 8px;
2303
2344
  }
2304
- .field-value[data-v-620d344e] {
2345
+ .field-value[data-v-4a372183] {
2305
2346
  flex: 1;
2306
2347
  color: #333;
2307
2348
  }
2308
- .list-image[data-v-620d344e] {
2349
+ .list-image[data-v-4a372183] {
2309
2350
  width: 30px;
2310
2351
  height: 30px;
2311
2352
  object-fit: cover;
2312
2353
  border-radius: 4px;
2313
2354
  }
2314
- .list-link[data-v-620d344e] {
2355
+ .list-link[data-v-4a372183] {
2315
2356
  color: #1890ff;
2316
2357
  text-decoration: none;
2317
2358
  }
2318
- .list-link[data-v-620d344e]:hover {
2359
+ .list-link[data-v-4a372183]:hover {
2319
2360
  text-decoration: underline;
2320
2361
  }
2321
2362
 
2322
2363
  /* 卡片视图 */
2323
- .card-view[data-v-620d344e] {
2364
+ .card-view[data-v-4a372183] {
2324
2365
  display: grid;
2325
2366
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
2326
2367
  gap: 12px;
2327
2368
  max-height: 300px;
2328
2369
  overflow-y: auto;
2329
2370
  }
2330
- .card-item[data-v-620d344e] {
2371
+ .card-item[data-v-4a372183] {
2331
2372
  border: 1px solid #f0f0f0;
2332
2373
  border-radius: 8px;
2333
2374
  padding: 12px;
2334
2375
  cursor: pointer;
2335
2376
  transition: all 0.2s ease;
2336
2377
  }
2337
- .card-item[data-v-620d344e]:hover {
2378
+ .card-item[data-v-4a372183]:hover {
2338
2379
  border-color: #1890ff;
2339
2380
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.1);
2340
2381
  }
2341
- .card-header h4[data-v-620d344e] {
2382
+ .card-header h4[data-v-4a372183] {
2342
2383
  margin: 0 0 8px 0;
2343
2384
  font-size: 14px;
2344
2385
  font-weight: 600;
2345
2386
  color: #333;
2346
2387
  }
2347
- .card-field[data-v-620d344e] {
2388
+ .card-field[data-v-4a372183] {
2348
2389
  display: flex;
2349
2390
  flex-direction: column;
2350
2391
  margin-bottom: 6px;
2351
2392
  font-size: 12px;
2352
2393
  }
2353
- .card-field[data-v-620d344e]:last-child {
2394
+ .card-field[data-v-4a372183]:last-child {
2354
2395
  margin-bottom: 0;
2355
2396
  }
2356
- .card-field .field-label[data-v-620d344e] {
2397
+ .card-field .field-label[data-v-4a372183] {
2357
2398
  font-weight: 600;
2358
2399
  color: #666;
2359
2400
  margin-bottom: 2px;
2360
2401
  }
2361
- .card-field .field-value[data-v-620d344e] {
2402
+ .card-field .field-value[data-v-4a372183] {
2362
2403
  color: #333;
2363
2404
  }
2364
- .card-image[data-v-620d344e] {
2405
+ .card-image[data-v-4a372183] {
2365
2406
  width: 40px;
2366
2407
  height: 40px;
2367
2408
  object-fit: cover;
2368
2409
  border-radius: 4px;
2369
2410
  }
2370
- .card-link[data-v-620d344e] {
2411
+ .card-link[data-v-4a372183] {
2371
2412
  color: #1890ff;
2372
2413
  text-decoration: none;
2373
2414
  }
2374
- .card-link[data-v-620d344e]:hover {
2415
+ .card-link[data-v-4a372183]:hover {
2375
2416
  text-decoration: underline;
2376
2417
  }
2377
2418
 
2378
2419
  /* 分页 */
2379
- .pagination[data-v-620d344e] {
2420
+ .pagination[data-v-4a372183] {
2380
2421
  display: flex;
2381
2422
  justify-content: space-between;
2382
2423
  align-items: center;
@@ -2384,7 +2425,7 @@ label {
2384
2425
  padding-top: 12px;
2385
2426
  border-top: 1px solid #f0f0f0;
2386
2427
  }
2387
- .page-btn[data-v-620d344e] {
2428
+ .page-btn[data-v-4a372183] {
2388
2429
  padding: 6px 12px;
2389
2430
  border: 1px solid #d9d9d9;
2390
2431
  background: white;
@@ -2393,34 +2434,34 @@ label {
2393
2434
  font-size: 12px;
2394
2435
  transition: all 0.2s ease;
2395
2436
  }
2396
- .page-btn[data-v-620d344e]:hover:not(:disabled) {
2437
+ .page-btn[data-v-4a372183]:hover:not(:disabled) {
2397
2438
  border-color: #1890ff;
2398
2439
  color: #1890ff;
2399
2440
  }
2400
- .page-btn[data-v-620d344e]:disabled {
2441
+ .page-btn[data-v-4a372183]:disabled {
2401
2442
  opacity: 0.5;
2402
2443
  cursor: not-allowed;
2403
2444
  }
2404
- .page-info[data-v-620d344e] {
2445
+ .page-info[data-v-4a372183] {
2405
2446
  font-size: 12px;
2406
2447
  color: #666;
2407
2448
  }
2408
2449
 
2409
2450
  /* 空数据 */
2410
- .empty-data[data-v-620d344e] {
2451
+ .empty-data[data-v-4a372183] {
2411
2452
  text-align: center;
2412
2453
  padding: 40px 20px;
2413
2454
  color: #999;
2414
2455
  }
2415
- .empty-icon[data-v-620d344e] {
2456
+ .empty-icon[data-v-4a372183] {
2416
2457
  font-size: 48px;
2417
2458
  margin-bottom: 12px;
2418
2459
  }
2419
- .empty-text[data-v-620d344e] {
2460
+ .empty-text[data-v-4a372183] {
2420
2461
  font-size: 14px;
2421
2462
  }
2422
2463
 
2423
- .context-menu[data-v-7dc7f994] {
2464
+ .context-menu[data-v-78070f98] {
2424
2465
  background: white;
2425
2466
  border: 1px solid #dcdfe6;
2426
2467
  border-radius: 4px;
@@ -2428,7 +2469,7 @@ label {
2428
2469
  padding: 4px 0;
2429
2470
  min-width: 120px;
2430
2471
  }
2431
- .context-menu-item[data-v-7dc7f994] {
2472
+ .context-menu-item[data-v-78070f98] {
2432
2473
  display: flex;
2433
2474
  align-items: center;
2434
2475
  padding: 8px 12px;
@@ -2437,10 +2478,10 @@ label {
2437
2478
  color: #606266;
2438
2479
  transition: background-color 0.3s;
2439
2480
  }
2440
- .context-menu-item[data-v-7dc7f994]:hover {
2481
+ .context-menu-item[data-v-78070f98]:hover {
2441
2482
  background-color: #f5f7fa;
2442
2483
  }
2443
- .context-menu-item .el-icon[data-v-7dc7f994] {
2484
+ .context-menu-item .el-icon[data-v-78070f98] {
2444
2485
  margin-right: 8px;
2445
2486
  font-size: 16px;
2446
2487
  }