|
|
@@ -1,39 +1,43 @@
|
|
|
<template>
|
|
|
<div class="water-station-content">
|
|
|
- <!-- 左侧统计面板 -->
|
|
|
<div class="left-panel">
|
|
|
<div class="left-panel-3d">
|
|
|
- <div class="stats-card">
|
|
|
- <div class="stats-title">圩区统计</div>
|
|
|
- <div class="stats-grid">
|
|
|
- <div class="stat-item">
|
|
|
- <div class="stat-value">18</div>
|
|
|
- <div class="stat-label">骨干河道</div>
|
|
|
+ <m-card title="圩区统计" class="water-station-card" :width="398" :height="450">
|
|
|
+ <div class="stats-panel">
|
|
|
+ <div class="core-indicator">
|
|
|
+ <div class="indicator-main">
|
|
|
+ <span class="main-value">94</span>
|
|
|
+ <span class="main-unit">个</span>
|
|
|
+ </div>
|
|
|
+ <div class="indicator-label">圩区总数</div>
|
|
|
</div>
|
|
|
- <div class="stat-item">
|
|
|
- <div class="stat-value">94</div>
|
|
|
- <div class="stat-label">圩区总数</div>
|
|
|
- </div>
|
|
|
- <div class="stat-item">
|
|
|
- <div class="stat-value">618</div>
|
|
|
- <div class="stat-label">防洪闸</div>
|
|
|
- </div>
|
|
|
- <div class="stat-item">
|
|
|
- <div class="stat-value">560</div>
|
|
|
- <div class="stat-label">排涝站</div>
|
|
|
- </div>
|
|
|
- <div class="stat-item">
|
|
|
- <div class="stat-value">2173.69<span class="stat-unit">m³/s</span></div>
|
|
|
- <div class="stat-label">排涝流量</div>
|
|
|
+ <div class="stats-grid">
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="stat-value">18</div>
|
|
|
+ <div class="stat-label">骨干河道</div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="stat-value">618</div>
|
|
|
+ <div class="stat-label">防洪闸</div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="stat-value">560</div>
|
|
|
+ <div class="stat-label">排涝站</div>
|
|
|
+ </div>
|
|
|
+ <div class="stat-item">
|
|
|
+ <div class="stat-value">2173.69<span class="stat-unit">m³/s</span></div>
|
|
|
+ <div class="stat-label">排涝流量</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </m-card>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
+import mCard from "@/components/mCard/index.vue"
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
|
@@ -71,66 +75,90 @@
|
|
|
z-index: 4;
|
|
|
}
|
|
|
|
|
|
-.stats-card {
|
|
|
- height: 450px;
|
|
|
- background: rgba(0, 20, 40, 0.8);
|
|
|
- border: 1px solid rgba(48, 220, 255, 0.3);
|
|
|
- border-radius: 10px;
|
|
|
- box-shadow: 0 0 20px rgba(48, 220, 255, 0.1);
|
|
|
- padding: 20px;
|
|
|
- pointer-events: auto;
|
|
|
+.water-station-card {
|
|
|
transform: translateX(-150%);
|
|
|
opacity: 0;
|
|
|
+}
|
|
|
+
|
|
|
+.stats-panel {
|
|
|
+ padding: 12px;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 12px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
+.core-indicator {
|
|
|
+ text-align: center;
|
|
|
+ padding: 12px;
|
|
|
+ background: linear-gradient(135deg, rgba(48, 220, 255, 0.1) 0%, rgba(0, 191, 255, 0.05) 100%);
|
|
|
+ border-radius: 8px;
|
|
|
+ border: 1px solid rgba(48, 220, 255, 0.3);
|
|
|
+}
|
|
|
+
|
|
|
+.indicator-main {
|
|
|
+ margin-bottom: 5px;
|
|
|
+}
|
|
|
+
|
|
|
+.main-value {
|
|
|
+ font-size: 40px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: #30DCFF;
|
|
|
+ font-family: "D-DIN";
|
|
|
+ text-shadow: 0 0 20px rgba(48, 220, 255, 0.5);
|
|
|
+}
|
|
|
+
|
|
|
+.main-unit {
|
|
|
+ font-size: 20px;
|
|
|
+ color: rgba(48, 220, 255, 0.8);
|
|
|
+ font-weight: 600;
|
|
|
+}
|
|
|
+
|
|
|
+.indicator-label {
|
|
|
+ color: rgba(255, 255, 255, 0.8);
|
|
|
+ font-size: 12px;
|
|
|
+ letter-spacing: 1px;
|
|
|
+}
|
|
|
+
|
|
|
+.stats-grid {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(2, 1fr);
|
|
|
+ gap: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.stat-item {
|
|
|
+ background: rgba(0, 180, 255, 0.08);
|
|
|
+ border: 1px solid rgba(0, 180, 255, 0.2);
|
|
|
+ border-radius: 8px;
|
|
|
+ padding: 15px 10px;
|
|
|
+ text-align: center;
|
|
|
+ transition: all 0.3s ease;
|
|
|
|
|
|
- .stats-title {
|
|
|
- font-size: 20px;
|
|
|
- font-weight: bold;
|
|
|
- color: #30dcff;
|
|
|
- text-align: center;
|
|
|
- margin-bottom: 20px;
|
|
|
- padding-bottom: 15px;
|
|
|
- border-bottom: 1px solid rgba(48, 220, 255, 0.3);
|
|
|
- letter-spacing: 4px;
|
|
|
- }
|
|
|
-
|
|
|
- .stats-grid {
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- gap: 15px;
|
|
|
+ &:hover {
|
|
|
+ background: rgba(0, 180, 255, 0.15);
|
|
|
+ border-color: rgba(48, 220, 255, 0.5);
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+.stat-value {
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: #30DCFF;
|
|
|
+ font-family: "D-DIN";
|
|
|
+ margin-bottom: 5px;
|
|
|
+ text-shadow: 0 0 10px rgba(48, 220, 255, 0.5);
|
|
|
|
|
|
- .stat-item {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- padding: 15px 20px;
|
|
|
- background: rgba(48, 220, 255, 0.05);
|
|
|
- border: 1px solid rgba(48, 220, 255, 0.15);
|
|
|
- border-radius: 8px;
|
|
|
- transition: all 0.3s ease;
|
|
|
-
|
|
|
- &:hover {
|
|
|
- background: rgba(48, 220, 255, 0.1);
|
|
|
- border-color: rgba(48, 220, 255, 0.3);
|
|
|
- }
|
|
|
-
|
|
|
- .stat-value {
|
|
|
- font-size: 28px;
|
|
|
- font-weight: bold;
|
|
|
- color: #30dcff;
|
|
|
- text-shadow: 0 0 10px rgba(48, 220, 255, 0.5);
|
|
|
-
|
|
|
- .stat-unit {
|
|
|
- font-size: 14px;
|
|
|
- margin-left: 4px;
|
|
|
- opacity: 0.8;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .stat-label {
|
|
|
- font-size: 15px;
|
|
|
- color: #a3dcde;
|
|
|
- }
|
|
|
+ .stat-unit {
|
|
|
+ font-size: 12px;
|
|
|
+ margin-left: 2px;
|
|
|
+ opacity: 0.8;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.stat-label {
|
|
|
+ font-size: 12px;
|
|
|
+ color: rgba(255, 255, 255, 0.7);
|
|
|
+ letter-spacing: 1px;
|
|
|
+}
|
|
|
</style>
|