瀏覽代碼

Merge branch 'lili' of qw/12 into master

Ding 2 天之前
父節點
當前提交
901fe33564

+ 47 - 15
src/components/atmpollution/atmcompanyline.vue

@@ -189,32 +189,64 @@ onMounted(() => {
 
 /* 最基础的表格样式 */
 .table-container {
-  overflow-x: auto;
-  background-color: white;
+  width: 100%;
+  max-width: 1200px;
+  margin: 0 auto;
+  overflow-x: auto; /* 防止内容溢出 */
 }
+
 .data-table {
-  width: 100%;
-  border-collapse: collapse;
-  border: 1px solid #ccc;
+  border-collapse: collapse; /* 确保边框合并 */
+  border: 1px solid #ccc; /* 表格外边框 */
 }
-.data-table th, .data-table td {
+
+.data-table th, 
+.data-table td {
+  border: 1px solid #ccc; /* 单元格边框 */
   padding: 8px 10px;
   text-align: center;
-  border: 1px solid #ccc;
   font-size: 14px;
 }
+
 .data-table th {
   font-weight: bold;
+  background-color: #f5f5f5; /* 表头背景色 */
 }
-/* 完全移除所有行的背景色和悬停效果 */
-.data-table tr {
-  background-color: transparent;
+
+/* 添加行分隔线效果 */
+.data-table tr:not(:last-child) {
+  border-bottom: 1px solid #e0e0e0; /* 行间分隔线 */
 }
-.data-table tr:hover {
-  background-color: transparent;
+
+/* 列宽分配 */
+.data-table th:nth-child(1),
+.data-table td:nth-child(1) { width: 10%; }/**污染源序号 */
+.data-table th:nth-child(2),
+.data-table td:nth-child(2) { width: 28%; }/**公司名 */
+.data-table th:nth-child(3),
+.data-table td:nth-child(3) { width: 16%; }/**类型 */
+.data-table th:nth-child(4),
+.data-table td:nth-child(4) { width: 10%; }/**位置区县 */
+.data-table th:nth-child(5),
+.data-table td:nth-child(5) { width: 12%; }/**颗粒物排放数据 */
+.data-table th:nth-child(6),
+.data-table td:nth-child(6) { width: 11%; }/**经度 */
+.data-table th:nth-child(7),
+.data-table td:nth-child(7) { width: 11%; }/**纬度 */
+
+/* 内容换行处理 */
+.data-table td {
+  word-wrap: break-word; /* 长内容自动换行 */
+  padding: 8px 5px; /* 调整内边距 */
 }
-.empty-state {
-  padding: 20px 0;
-  color: #666;
+
+/* 移动端适配 */
+@media (max-width: 768px) {
+  .table-container {
+    padding: 10px 0;
+  }
+  .data-table {
+    font-size: 13px; /* 缩小字体 */
+  }
 }
 </style>

+ 2 - 2
src/components/atmpollution/heavyMetalEnterprisechart.vue

@@ -155,11 +155,11 @@ const processData = (features) => {
     data: validRegions.map(region => {
       if (region === '全市平均') {
         return globalStats[field].count 
-          ? (globalStats[field].sum / globalStats[field].count) 
+          ? (globalStats[field].sum / globalStats[field].count).toFixed(5)
           : 0;
       }
       return regionStats[region][field].count 
-        ? (regionStats[region][field].sum / regionStats[region][field].count) 
+        ? (regionStats[region][field].sum / regionStats[region][field].count).toFixed(5) 
         : 0;
     }),
     itemStyle: { 

+ 6 - 6
src/components/cdStatictics/refluxcdStatictics.vue

@@ -11,13 +11,13 @@ import { ref, onMounted, onUnmounted, nextTick } from 'vue'
 import * as echarts from 'echarts' 
 
 const indicators = [
-  { key: 'Al3_plus', name: 'Al3_plus', color: '#3498db' },
-  { key: 'CEC', name: 'CEC', color: '#2ecc71' },
-  { key: 'CL', name: 'CL', color: '#e74c3c' },
+  //{ key: 'Al3_plus', name: 'Al3_plus', color: '#3498db' },
+  //{ key: 'CEC', name: 'CEC', color: '#2ecc71' },
+//  { key: 'CL', name: 'CL', color: '#e74c3c' },
   { key: 'Delta_pH', name: 'Delta_pH', color: '#f39c12' },
-  { key: 'H_plus', name: 'H_plus', color: '#9b59b6' },
-  { key: 'N', name: 'N', color: '#1abc9c' },
-  { key: 'OM', name: 'OM', color: '#d35400' }
+  //{ key: 'H_plus', name: 'H_plus', color: '#9b59b6' },
+  //{ key: 'N', name: 'N', color: '#1abc9c' },
+  //{ key: 'OM', name: 'OM', color: '#d35400' }
 ];
 
 let chart = ref(null) // 存储 ECharts 实例

+ 0 - 14
src/components/detectionStatistics/crosscetionStatistics.vue

@@ -265,20 +265,6 @@ export default {
 </script>
 
 <style>
-* {
-  margin: 0;
-  padding: 0;
-  box-sizing: border-box;
-  font-family: 'Segoe UI', 'Microsoft YaHei', sans-serif;
-}
-
-body {
-  background: #f8fafc;
-  color: #3498db;
-  min-height: 100vh;
-  padding: 20px;
-}
-
 /* 固定组件总高度为350px */
 .dashboard {
   width: 100%;

+ 2 - 2
src/components/irrpollution/crossSetionData1.vue

@@ -109,7 +109,7 @@ const calculateRiverAvg = () => {
     const avg = riverGroups[river].total / riverGroups[river].count;
     riverAvg.push({
       river,
-      avg: parseFloat(avg) // 保留3位小数
+      avg: parseFloat(avg).toFixed(6)  //保留6位小数
     });
     totalAll += riverGroups[river].total;
     countAll += riverGroups[river].count;
@@ -118,7 +118,7 @@ const calculateRiverAvg = () => {
   // 添加总平均值
   const totalAvg = {
     river: '总河流平均',
-    avg: parseFloat((totalAll / countAll))
+    avg: parseFloat((totalAll / countAll)).toFixed(6)
   };
   riverAvg.push(totalAvg);
 

+ 2 - 2
src/components/irrpollution/crossSetionData2.vue

@@ -79,7 +79,7 @@ const calculateDistrictAvg = () => {
     const avg = districtGroups[district].total / districtGroups[district].count;
     districtAvg.push({
       district,
-      avg: parseFloat(avg) // 保留3位小数
+      avg: parseFloat(avg).toFixed(6)
     });
     totalAll += districtGroups[district].total;
     countAll += districtGroups[district].count;
@@ -88,7 +88,7 @@ const calculateDistrictAvg = () => {
   // 添加总平均值(最后一项)
   districtAvg.push({
     district: '总平均',
-    avg: parseFloat((totalAll / countAll))
+    avg: parseFloat((totalAll / countAll)).toFixed(6)
   });
 
   state.districtAvgData = districtAvg;

+ 5 - 5
src/components/irrpollution/irrwatermap.vue

@@ -148,11 +148,11 @@ onMounted(() => {
                         </thead>
                         <tbody>
                           <tr><td>Ph</td><td>${props.ph_value || '未知'}</td></tr>
-                          <tr><td>铬(Cr)</td><td>${props.cr_concentration || '未知'}</td></tr>
-                          <tr><td>砷(As)</td><td>${props.as_concentration || '未知'}</td></tr>
-                          <tr><td>镉(Cd)</td><td>${props.cd_concentration || '未知'}</td></tr>
-                          <tr><td>汞(Hg)</td><td>${props.hg_concentration || '未知'}</td></tr>
-                          <tr><td>铅(Pb)</td><td>${props.pb_concentration || '未知'}</td></tr>
+                          <tr><td>铬(Cr)(ug/L)</td><td>${props.cr_concentration.toFixed(6)|| '未知'}</td></tr>
+                          <tr><td>砷(As)(ug/L)</td><td>${props.as_concentration.toFixed(6) || '未知'}</td></tr>
+                          <tr><td>镉(Cd)(ug/L)</td><td>${props.cd_concentration.toFixed(6) || '未知'}</td></tr>
+                          <tr><td>汞(Hg)(ug/L)</td><td>${props.hg_concentration.toFixed(6) || '未知'}</td></tr>
+                          <tr><td>铅(Pb)(ug/L)</td><td>${props.pb_concentration.toFixed(6) || '未知'}</td></tr>
                         </tbody>
                       </table>
                     </div>

+ 188 - 134
src/components/soilcdStatistics/fluxcdStatictics.vue

@@ -8,45 +8,47 @@
         </div>
       </div>
     </div>
-    
-    <!-- 加载状态 & 错误提示 -->
-    <div v-if="isLoading" class="fixed inset-0 bg-white bg-opacity-80 flex items-center justify-center z-50">
-      <div class="text-center">
-        <div class="spinner mx-auto"></div>
-        <p class="mt-4 text-gray-700">数据加载中,请稍候...</p>
-        <p class="text-sm text-gray-500 mt-2">正在初始化图表容器</p>
-      </div>
-    </div>
+  
     <div v-if="error" class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded mb-6">
       <p>数据加载失败: {{ error.message }}</p>
       <button class="mt-2 px-3 py-1 bg-red-500 text-white rounded" @click="initCharts">重试</button>
     </div>
     
     <!-- 1. 初始Cd 单独箱线图 -->
-    <section class="mb-6 chart-container" v-if="!isLoading && !error">
-      <h3 class="section-title text-base font-semibold">初始Cd(Initial_Cd)分布箱线图</h3>
-      <div ref="initialCdChart" style="width: 100%; height: 400px;"></div>
-      <div v-if="!chartInstanceInitial" class="bg-yellow-50 border border-yellow-200 p-4 rounded mt-4">
-        <p class="text-yellow-700">图表初始化中...</p>
-        <button class="mt-2 px-3 py-1 bg-yellow-500 text-white rounded" @click="initInitialCdChart">
-          重新尝试初始化
-        </button>
-      </div>
-    </section>
-    
-    <!-- 2. 其他指标 合并箱线图 -->
-    <section class="mb-6 chart-container" v-if="!isLoading && !error">
-      <div class="flex flex-wrap justify-between items-center mb-4">
-        <h3 class="section-title text-base font-semibold">其他通量Cd指标分布箱线图</h3>
-      </div>
-      <div ref="otherIndicatorsChart" style="width: 100%; height: 400px;"></div>
-      <div v-if="!chartInstanceOther" class="bg-yellow-50 border border-yellow-200 p-4 rounded mt-4">
-        <p class="text-yellow-700">图表初始化中...</p>
-        <button class="mt-2 px-3 py-1 bg-yellow-500 text-white rounded" @click="initOtherIndicatorsChart">
-          重新尝试初始化
-        </button>
-      </div>
-    </section>
+<section class="mb-6 chart-container">
+  <h3 class="section-title text-base font-semibold">初始Cd(Initial_Cd)分布箱线图</h3>
+  <div ref="initialCdChart" style="width: 100%; height: 400px;"></div>
+  <!-- 容器内的加载遮罩 -->
+  <div v-if="isLoading" class="absolute inset-0 bg-white bg-opacity-80 flex items-center justify-center">
+    <div class="spinner"></div>
+  </div>
+  <!-- 错误提示(保留重试按钮) -->
+  <div v-if="error && !chartInstanceInitial" class="bg-yellow-50 border border-yellow-200 p-4 rounded mt-4">
+    <p class="text-yellow-700">图表初始化失败: {{ error.message }}</p>
+    <button class="mt-2 px-3 py-1 bg-yellow-500 text-white rounded" @click="initInitialCdChart">
+      重新尝试初始化
+    </button>
+  </div>
+</section>
+
+<!-- 2. 其他指标 合并箱线图 -->
+<section class="mb-6 chart-container">
+  <div class="flex flex-wrap justify-between items-center mb-4">
+    <h3 class="section-title text-base font-semibold">其他通量Cd指标分布箱线图</h3>
+  </div>
+  <div ref="otherIndicatorsChart" style="width: 100%; height: 400px;"></div>
+  <!-- 容器内的加载遮罩 -->
+  <div v-if="isLoading" class="absolute inset-0 bg-white bg-opacity-80 flex items-center justify-center">
+    <div class="spinner"></div>
+  </div>
+  <!-- 错误提示(保留重试按钮) -->
+  <div v-if="error && !chartInstanceOther" class="bg-yellow-50 border border-yellow-200 p-4 rounded mt-4">
+    <p class="text-yellow-700">图表初始化失败: {{ error.message }}</p>
+    <button class="mt-2 px-3 py-1 bg-yellow-500 text-white rounded" @click="initOtherIndicatorsChart">
+      重新尝试初始化
+    </button>
+  </div>
+</section>
   </div>
 </template>
 
@@ -129,18 +131,28 @@ const calculateFieldStats = (data, fieldKey, fieldName) => {
   const rawValues = data.map(item => item[fieldKey]);
   const values = rawValues
     .map((val, idx) => {
+      // 更严格的数值校验
+      if (val === null || val === undefined || val === '' || isNaN(Number(val))) {
+        log(`无效数据: ${fieldName} 第${idx+1}条 → ${val}`, fieldName);
+        return null;
+      }
       const num = Number(val);
-      if (isNaN(num)) log(`无效数据: ${fieldName} 第${idx+1}条 →`, val);
-      return isNaN(num) ? null : num;
+      // 过滤极端值(根据业务需求调整阈值)
+      if (num < -1000000 || num > 1000000) {
+        log(`极端值过滤: ${fieldName} 第${idx+1}条 → ${num}`, fieldName);
+        return null;
+      }
+      return num;
     })
     .filter(v => v !== null);
-  //console.log(`${fieldName}有效数据量:`,values.length);
   
+  // 处理无有效数据的情况
   if (values.length === 0) {
-    log(`无有效数据: ${fieldName}`);
+    log(`无有效数据: ${fieldName}`, fieldName);
     return { key: fieldKey, name: fieldName, min: null, q1: null, median: null, q3: null, max: null };
   }
   
+  // 排序并计算分位数(保持原逻辑)
   const sorted = [...values].sort((a, b) => a - b);
   const min = sorted[0];
   const max = sorted[sorted.length - 1];
@@ -186,119 +198,131 @@ const buildBoxplotData = (statsArray) => {
 };
 
 // 初始化【初始Cd】图表(独立箱线图)
-const initInitialCdChart = (retryCount = 0) => {
-  // 容器检查与重试机制
+const initInitialCdChart = () => {
+  // 容器存在性检查
   if (!initialCdChart.value) {
-    if (retryCount < 10) {
-      console.warn(`initialCdChart容器未找到,第${retryCount+1}次重试...`);
-      setTimeout(() => initInitialCdChart(retryCount + 1), 100);
-      return;
-    } else {
-      console.error('initialCdChart容器未找到,重试超时');
-      return;
-    }
+    console.error('initialCdChart容器未找到');
+    error.value = new Error('初始Cd图表容器未找到,请刷新页面重试');
+    return;
   }
   
   // 容器尺寸检查
-  if (initialCdChart.value.offsetWidth === 0 || initialCdChart.value.offsetHeight === 0) {
-    if (retryCount < 5) {
-      setTimeout(() => initInitialCdChart(retryCount + 1), 200);
-      return;
-    }
+  const { offsetWidth, offsetHeight } = initialCdChart.value;
+  if (offsetWidth === 0 || offsetHeight === 0) {
+    console.error('initialCdChart容器尺寸异常', { offsetWidth, offsetHeight });
+    error.value = new Error('初始Cd图表容器尺寸异常,请检查页面样式');
+    return;
   }
 
-  if (chartInstanceInitial.value) chartInstanceInitial.value.dispose();
-  chartInstanceInitial.value = echarts.init(initialCdChart.value);
-  const xAxisData = fieldConfig.initialCd.map(ind => ind.name);
-  const boxData = buildBoxplotData(initialCdStats.value);
+  // 销毁旧实例
+  if (chartInstanceInitial.value) {
+    chartInstanceInitial.value.dispose();
+  }
   
-  chartInstanceInitial.value.setOption({
-    title: { text: '初始Cd分布箱线图', left: 'center', textStyle: { fontSize: 14 } },
-    tooltip: {
-      trigger: "item",
-      formatter: (params) => formatTooltip(initialCdStats.value[params.dataIndex])
-    },
-    grid: { top: 60, right: 30, bottom: 25, left: 60 },
-    xAxis: { 
-      type: "category", 
-      data: xAxisData,
-      axisLabel: { fontSize: 12 }
-    },
-    yAxis: { 
-      type: "value", 
-      name: 'g/ha', 
-      nameTextStyle: { fontSize: 12 }, 
-      axisLabel: { fontSize: 11 },
-      scale: true
-    },
-    series: [{
-      name: '初始Cd', 
-      type: "boxplot",
-      itemStyle: { 
-        color: (p) => fieldConfig.initialCd[p.dataIndex].color,
-        borderWidth: 2 
+  // 初始化图表
+  try {
+    chartInstanceInitial.value = echarts.init(initialCdChart.value);
+    const xAxisData = fieldConfig.initialCd.map(ind => ind.name);
+    const boxData = buildBoxplotData(initialCdStats.value);
+    
+    chartInstanceInitial.value.setOption({
+      // 保持原配置不变...
+      title: { text: '初始Cd分布箱线图', left: 'center', textStyle: { fontSize: 14 } },
+      tooltip: {
+        trigger: "item",
+        formatter: (params) => formatTooltip(initialCdStats.value[params.dataIndex])
       },
-      data: boxData
-    }]
-  });
+      grid: { top: 60, right: 30, bottom: 25, left: 60 },
+      xAxis: { 
+        type: "category", 
+        data: xAxisData,
+        axisLabel: { fontSize: 12 }
+      },
+      yAxis: { 
+        type: "value", 
+        name: 'g/ha', 
+        nameTextStyle: { fontSize: 12 }, 
+        axisLabel: { fontSize: 11 },
+        scale: true
+      },
+      series: [{
+        name: '初始Cd', 
+        type: "boxplot",
+        itemStyle: { 
+          color: (p) => fieldConfig.initialCd[p.dataIndex].color,
+          borderWidth: 2 
+        },
+        data: boxData
+      }]
+    });
+  } catch (err) {
+    console.error('初始Cd图表初始化失败', err);
+    error.value = new Error(`初始Cd图表初始化失败: ${err.message}`);
+  }
 };
 
+
 // 初始化【其他指标】合并图表
-const initOtherIndicatorsChart = (retryCount = 0) => {
+const initOtherIndicatorsChart = () => {
+  // 容器存在性检查
   if (!otherIndicatorsChart.value) {
-    if (retryCount < 10) {
-      console.warn(`otherIndicatorsChart容器未找到,第${retryCount+1}次重试...`);
-      setTimeout(() => initOtherIndicatorsChart(retryCount + 1), 100);
-      return;
-    } else {
-      console.error('otherIndicatorsChart容器未找到,重试超时');
-      return;
-    }
+    console.error('otherIndicatorsChart容器未找到');
+    error.value = new Error('其他指标图表容器未找到,请刷新页面重试');
+    return;
   }
   
   // 容器尺寸检查
-  if (otherIndicatorsChart.value.offsetWidth === 0 || otherIndicatorsChart.value.offsetHeight === 0) {
-    if (retryCount < 5) {
-      setTimeout(() => initOtherIndicatorsChart(retryCount + 1), 200);
-      return;
-    }
+  const { offsetWidth, offsetHeight } = otherIndicatorsChart.value;
+  if (offsetWidth === 0 || offsetHeight === 0) {
+    console.error('otherIndicatorsChart容器尺寸异常', { offsetWidth, offsetHeight });
+    error.value = new Error('其他指标图表容器尺寸异常,请检查页面样式');
+    return;
   }
 
-  if (chartInstanceOther.value) chartInstanceOther.value.dispose();
-  chartInstanceOther.value = echarts.init(otherIndicatorsChart.value);
-  const xAxisData = fieldConfig.otherIndicators.map(ind => ind.name);
-  const boxData = buildBoxplotData(otherIndicatorsStats.value);
+  // 销毁旧实例
+  if (chartInstanceOther.value) {
+    chartInstanceOther.value.dispose();
+  }
   
-  chartInstanceOther.value.setOption({
-    title: { text: '其他通量Cd指标分布对比', left: 'center', textStyle: { fontSize: 14 } },
-    tooltip: {
-      trigger: "item",
-      formatter: (params) => formatTooltip(otherIndicatorsStats.value[params.dataIndex])
-    },
-    grid: { top: 60, right: 30, bottom: 70, left: 60 },
-    xAxis: { 
-      type: "category", 
-      data: xAxisData,
-      axisLabel: { fontSize: 11, rotate: 45 }
-    },
-    yAxis: { 
-      type: "value", 
-      name: 'g/ha/a', 
-      nameTextStyle: { fontSize: 12 }, 
-      axisLabel: { fontSize: 11 }
-    },
-    series: [{
-      name: '其他指标', 
-      type: "boxplot",
-      itemStyle: { 
-        color: (p) => fieldConfig.otherIndicators[p.dataIndex].color,
-        borderWidth: 2 
+  // 初始化图表
+  try {
+    chartInstanceOther.value = echarts.init(otherIndicatorsChart.value);
+    const xAxisData = fieldConfig.otherIndicators.map(ind => ind.name);
+    const boxData = buildBoxplotData(otherIndicatorsStats.value);
+    
+    chartInstanceOther.value.setOption({
+      // 保持原配置不变...
+      title: { text: '其他通量Cd指标分布对比', left: 'center', textStyle: { fontSize: 14 } },
+      tooltip: {
+        trigger: "item",
+        formatter: (params) => formatTooltip(otherIndicatorsStats.value[params.dataIndex])
       },
-      data: boxData
-    }]
-  });
-  
-
+      grid: { top: 60, right: 30, bottom: 70, left: 60 },
+      xAxis: { 
+        type: "category", 
+        data: xAxisData,
+        axisLabel: { fontSize: 11, rotate: 45 }
+      },
+      yAxis: { 
+        type: "value", 
+        name: 'g/ha/a', 
+        nameTextStyle: { fontSize: 12 }, 
+        axisLabel: { fontSize: 11 }
+      },
+      series: [{
+        name: '其他指标', 
+        type: "boxplot",
+        itemStyle: { 
+          color: (p) => fieldConfig.otherIndicators[p.dataIndex].color,
+          borderWidth: 2 
+        },
+        data: boxData
+      }]
+    });
+  } catch (err) {
+    console.error('其他指标图表初始化失败', err);
+    error.value = new Error(`其他指标图表初始化失败: ${err.message}`);
+  }
 };
 
 
@@ -323,15 +347,45 @@ const initCharts = async () => {
   try {
     isLoading.value = true;
     error.value = null;
+    chartInstanceInitial.value = null;
+    chartInstanceOther.value = null;
     
+    // 1. 获取数据
     const data = await fetchData();
+    if (!data || data.length === 0) {
+      throw new Error('未获取到有效数据');
+    }
+    
+    // 2. 计算统计数据
     calculateAllStats(data);
     
-    await nextTick(); // 等待DOM渲染完成
+    // 3. 等待DOM更新
+    await nextTick(); 
+    
+    // 4. 轮询检查容器尺寸(最多等待3秒)
+    const checkContainers = () => {
+      return new Promise((resolve, reject) => {
+        let checkCount = 0;
+        const interval = setInterval(() => {
+          // 检查两个容器的宽度是否有效
+          const initialWidth = initialCdChart.value?.offsetWidth || 0;
+          const otherWidth = otherIndicatorsChart.value?.offsetWidth || 0;
+          
+          if (initialWidth > 0 && otherWidth > 0) {
+            clearInterval(interval);
+            resolve();
+          } else if (checkCount >= 30) { // 30 * 100ms = 3秒
+            clearInterval(interval);
+            reject(new Error('图表容器尺寸异常,准备超时,请检查样式'));
+          }
+          checkCount++;
+        }, 100);
+      });
+    };
     
-    // 添加额外延迟确保容器渲染
-    await new Promise(resolve => setTimeout(resolve, 300));
+    await checkContainers(); 
     
+    // 5. 初始化图表
     initInitialCdChart();
     initOtherIndicatorsChart();
     

+ 0 - 12
src/views/User/HmOutFlux/irrigationWater/crossSection.vue

@@ -42,12 +42,6 @@
         <div class="section-header">
           <div class="section-icon">📈</div>
           <h2 class="component-title">河流Cd浓度分析</h2>
-          <div class="analysis-legend">
-            <div class="legend-item">
-              <div class="legend-color cadmium"></div>
-              <span>镉(Cd)浓度</span>
-            </div>
-          </div>
         </div>
         <div class="dashboard-card chart-card">
           <div class="chart-header">
@@ -65,12 +59,6 @@
         <div class="section-header">
           <div class="section-icon">📉</div>
           <h2 class="component-title">区县Cd浓度分析</h2>
-          <div class="analysis-legend">
-            <div class="legend-item">
-              <div class="legend-color cadmium"></div>
-              <span>镉(Cd)浓度</span>
-            </div>
-          </div>
         </div>
         <div class="dashboard-card chart-card">
           <div class="chart-header">

+ 16 - 16
src/views/User/HmOutFlux/irrigationWater/samplingMethodDevice1.vue

@@ -20,15 +20,7 @@
         
         <div class="image-gallery">
           <div class="image-card">
-            <el-image :src="image1" alt="采样容器" class="sampling-image"></el-image>
-            <div class="image-info">
-              <h3>采样容器</h3>
-              <p>500mL白色聚乙烯瓶,符合水质采样标准</p>
-            </div>
-          </div>
-          
-          <div class="image-card">
-            <el-image :src="image2" alt="采样现场" class="sampling-image"></el-image>
+            <el-image :src="image1" alt="采样现场" class="sampling-image"></el-image>
             <div class="image-info">
               <h3>采样现场</h3>
               <p>河流环境采样,多云天气条件下进行</p>
@@ -36,12 +28,20 @@
           </div>
           
           <div class="image-card">
-            <el-image :src="image3" alt="灌溉水采样设备" class="sampling-image"></el-image>
+            <el-image :src="image2" alt="灌溉水采样设备" class="sampling-image"></el-image>
             <div class="image-info">
               <h3>灌溉水采样设备</h3>
               <p>专业水质采样设备,确保样品完整性</p>
             </div>
           </div>
+    
+          <div class="image-card">
+            <el-image :src="image3" alt="采样容器" class="sampling-image"></el-image>
+            <div class="image-info">
+              <h3>采样容器</h3>
+              <p>500mL白色聚乙烯瓶,符合水质采样标准</p>
+            </div>
+          </div>
         </div>
       </div>
     </div>
@@ -84,24 +84,24 @@
           <div class="field-card">
             <el-image :src="fieldImage1" alt="工作人员采样现场" class="sampling-image"></el-image>
             <div class="field-info">
-              <h3>河流采样现场</h3>
-              <p>多云天气下的河流采样工作</p>
+              <!--<h3>河流采样现场</h3>
+              <p>多云天气下的河流采样工作</p>-->
             </div>
           </div>
           
           <div class="field-card">
             <el-image :src="fieldImage2" alt="工作人员采样现场" class="sampling-image"></el-image>
             <div class="field-info">
-              <h3>水渠采样现场</h3>
-              <p>小雨天气下的水渠采样工作</p>
+              <!--<h3>水渠采样现场</h3>
+              <p>小雨天气下的水渠采样工作</p>-->
             </div>
           </div>
           
           <div class="field-card">
             <el-image :src="fieldImage3" alt="工作人员采样现场" class="sampling-image"></el-image>
             <div class="field-info">
-              <h3>瀑布区域采样</h3>
-              <p>特殊地形条件下的采样工作</p>
+              <!--<h3>瀑布区域采样</h3>
+              <p>特殊地形条件下的采样工作</p>-->
             </div>
           </div>
         </div>