|
@@ -2,7 +2,6 @@
|
|
|
<div class="container">
|
|
|
<!-- 顶部操作栏 -->
|
|
|
<div class="toolbar">
|
|
|
-
|
|
|
<!-- 操作按钮 -->
|
|
|
<div class="action-buttons">
|
|
|
<el-button class="custom-button" :disabled="!mapBlob" @click="exportMap">
|
|
@@ -19,37 +18,20 @@
|
|
|
|
|
|
<!-- 主体内容区 -->
|
|
|
<div class="content-area">
|
|
|
- <!-- 地图区域 - 修改为横向布局 -->
|
|
|
- <div class="horizontal-container">
|
|
|
- <!-- 地图展示 -->
|
|
|
- <div class="map-section">
|
|
|
- <h3>Cd当年浓度空间分布图</h3>
|
|
|
- <div v-if="loadingMap" class="loading-container">
|
|
|
- <el-icon class="loading-icon"><Loading /></el-icon>
|
|
|
- <span>地图加载中...</span>
|
|
|
- </div>
|
|
|
- <img v-if="mapImageUrl && !loadingMap" :src="mapImageUrl" alt="Cd当年浓度空间分布图" class="map-image">
|
|
|
- <div v-if="!mapImageUrl && !loadingMap" class="no-data">
|
|
|
- <el-icon><Picture /></el-icon>
|
|
|
- <p>暂无地图数据</p>
|
|
|
- </div>
|
|
|
+ <!-- 地图区域 - 单独一行 -->
|
|
|
+ <div class="map-section">
|
|
|
+ <h3>Cd当年浓度空间分布图</h3>
|
|
|
+ <div v-if="loadingMap" class="loading-container">
|
|
|
+ <el-icon class="loading-icon"><Loading /></el-icon>
|
|
|
+ <span>地图加载中...</span>
|
|
|
</div>
|
|
|
-
|
|
|
- <!-- 直方图展示 -->
|
|
|
- <div class="histogram-section">
|
|
|
- <h3>Cd当年浓度直方图</h3>
|
|
|
- <div v-if="loadingHistogram" class="loading-container">
|
|
|
- <el-icon class="loading-icon"><Loading /></el-icon>
|
|
|
- <span>直方图加载中...</span>
|
|
|
- </div>
|
|
|
- <img v-if="histogramImageUrl && !loadingHistogram" :src="histogramImageUrl" alt="Cd当年浓度直方图" class="histogram-image">
|
|
|
- <div v-if="!histogramImageUrl && !loadingHistogram" class="no-data">
|
|
|
- <el-icon><Histogram /></el-icon>
|
|
|
- <p>暂无直方图数据</p>
|
|
|
- </div>
|
|
|
+ <img v-if="mapImageUrl && !loadingMap" :src="mapImageUrl" alt="Cd当年浓度空间分布图" class="map-image">
|
|
|
+ <div v-if="!mapImageUrl && !loadingMap" class="no-data">
|
|
|
+ <el-icon><Picture /></el-icon>
|
|
|
+ <p>暂无地图数据</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<!-- 统计图表区域 -->
|
|
|
<div class="stats-area">
|
|
|
<h3>Cd当年浓度统计信息</h3>
|
|
@@ -78,12 +60,25 @@
|
|
|
<el-table-column prop="unit" label="单位" min-width="100" />
|
|
|
<el-table-column prop="description" label="描述" min-width="200" />
|
|
|
</el-table>
|
|
|
-
|
|
|
+ </div>
|
|
|
|
|
|
<div v-if="!loadingStats && !statisticsData.length" class="no-data">
|
|
|
<el-icon><DataAnalysis /></el-icon>
|
|
|
<p>暂无统计数据</p>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 直方图区域 - 单独一行,放在统计结果下面 -->
|
|
|
+ <div class="histogram-section">
|
|
|
+ <h3>Cd当年浓度直方图</h3>
|
|
|
+ <div v-if="loadingHistogram" class="loading-container">
|
|
|
+ <el-icon class="loading-icon"><Loading /></el-icon>
|
|
|
+ <span>直方图加载中...</span>
|
|
|
+ </div>
|
|
|
+ <img v-if="histogramImageUrl && !loadingHistogram" :src="histogramImageUrl" alt="Cd当年浓度直方图" class="histogram-image">
|
|
|
+ <div v-if="!histogramImageUrl && !loadingHistogram" class="no-data">
|
|
|
+ <el-icon><Histogram /></el-icon>
|
|
|
+ <p>暂无直方图数据</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -206,10 +201,10 @@ export default {
|
|
|
if (!stats) return [];
|
|
|
|
|
|
return [
|
|
|
- { name: '最小值', value: stats.min.toFixed(4), unit: 'mg/kg', description: '样本中的最小Cd当年浓度' },
|
|
|
- { name: '最大值', value: stats.max.toFixed(4), unit: 'mg/kg', description: '样本中的最大Cd当年浓度' },
|
|
|
- { name: '平均值', value: stats.mean.toFixed(4), unit: 'mg/kg', description: '所有样本的平均Cd当年浓度' },
|
|
|
- { name: '标准差', value: stats.std.toFixed(4), unit: 'mg/kg', description: 'Cd当年浓度的标准差' },
|
|
|
+ { name: '最小值', value: stats.min.toFixed(4), unit: 'g/ha/year', description: '样本中的最小Cd通量' },
|
|
|
+ { name: '最大值', value: stats.max.toFixed(4), unit: 'g/ha/year', description: '样本中的最大Cd通量' },
|
|
|
+ { name: '平均值', value: stats.mean.toFixed(4), unit: 'g/ha/year', description: '所有样本的平均Cd通量' },
|
|
|
+ { name: '标准差', value: stats.std.toFixed(4), unit: 'g/ha/year', description: 'Cd通量的标准差' },
|
|
|
];
|
|
|
},
|
|
|
|
|
@@ -424,26 +419,27 @@ export default {
|
|
|
gap: 20px;
|
|
|
}
|
|
|
|
|
|
-/* 横向布局容器 */
|
|
|
-.horizontal-container {
|
|
|
- display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
- gap: 20px;
|
|
|
- width: 100%;
|
|
|
-}
|
|
|
-
|
|
|
-.map-section, .histogram-section {
|
|
|
- flex: 1;
|
|
|
- min-width: 300px;
|
|
|
+.map-section, .histogram-section, .stats-area {
|
|
|
background-color: rgba(255, 255, 255, 0.8); /* 调整为半透明白色 */
|
|
|
border-radius: 8px;
|
|
|
padding: 15px;
|
|
|
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
|
|
|
position: relative;
|
|
|
- min-height: 400px;
|
|
|
backdrop-filter: blur(5px); /* 添加模糊效果增强半透明感 */
|
|
|
}
|
|
|
|
|
|
+.map-section {
|
|
|
+ min-height: 500px;
|
|
|
+}
|
|
|
+
|
|
|
+.histogram-section {
|
|
|
+ min-height: 500px;
|
|
|
+}
|
|
|
+
|
|
|
+.stats-area {
|
|
|
+ min-height: 300px;
|
|
|
+}
|
|
|
+
|
|
|
.map-image, .histogram-image {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
@@ -452,16 +448,6 @@ export default {
|
|
|
border-radius: 4px;
|
|
|
}
|
|
|
|
|
|
-.table-area {
|
|
|
- width: 100%;
|
|
|
- background-color: rgba(255, 255, 255, 0.8); /* 调整为半透明白色 */
|
|
|
- border-radius: 8px;
|
|
|
- padding: 15px;
|
|
|
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
|
|
|
- margin-top: 20px;
|
|
|
- backdrop-filter: blur(5px); /* 添加模糊效果增强半透明感 */
|
|
|
-}
|
|
|
-
|
|
|
.loading-container {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
@@ -503,13 +489,8 @@ export default {
|
|
|
|
|
|
/* 响应式布局调整 */
|
|
|
@media (max-width: 992px) {
|
|
|
- .horizontal-container {
|
|
|
+ .content-area {
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
-
|
|
|
- .map-section, .histogram-section {
|
|
|
- width: 100%;
|
|
|
- flex: none;
|
|
|
- }
|
|
|
}
|
|
|
</style>
|