Răsfoiți Sursa

项目详情,亮点模块修改

BAI 3 săptămâni în urmă
părinte
comite
d001b2f3b0

BIN
RuoYi-Vue3/src/assets/images/水资源模型调配.png


BIN
RuoYi-Vue3/src/assets/images/采集平台.png


+ 75 - 18
RuoYi-Vue3/src/data/projectCasesData.js

@@ -4,6 +4,9 @@ import kangXianBaoGongImage from '@/assets/images/抗咸保供.png'
 import fangXunYanLianImage from '@/assets/images/防汛演练.jpg'
 import fangXunYanLian2023Image from '@/assets/images/2023防汛演练.jpg'
 import buZhangDiaoYanImage from '@/assets/images/部长调研.jpg'
+import siYuImage from '@/assets/images/四预.png'
+import historicalFloodImage from '@/assets/images/历史洪水.png'
+import waterResourcesImage from '@/assets/images/水资源模型调配.png'
 import taiPuRiverVideo from '@/assets/video/太浦河资料.mp4'
 
 // 项目案例数据 - 支持多个项目
@@ -114,22 +117,26 @@ export const projectData = [
       dataBase: {
         title: '数据底板',
         description: '数据底板构建核心在于构建符合平原感潮河网双向水流、水位多变特点的全要素、高精度、动态化数字映射。',
-        features: ['多源数据融合', '水利枢纽', '三维场景']
+        features: ['多源数据融合', '水利枢纽', '三维场景'],
+        images: [taiPuRiverImage2, gongHuImage, buZhangDiaoYanImage] // 图片集合
       },
       floodControl: {
         title: '四预一体化',
         description: '建成满足多目标统筹调度要求的“四预”应用,实现洪水的精准预测、预警、预演和预案,提升流域防洪能力。',
-        features: ['洪水预测预警', '防洪调度预演', '应急预案管理', '实时风险评估']
+        features: ['洪水预测预警', '防洪调度预演', '应急预案管理', '实时风险评估'],
+        images: [siYuImage, fangXunYanLianImage, fangXunYanLian2023Image] // 图片集合
       },
       historicalTopics: {
         title: '历史专题',
         description: '系统梳理和分析流域历史水文数据、灾害事件和治理经验,为当前和未来的水资源管理提供参考。',
-        features: ['历史数据挖掘', '灾害事件分析', '治理经验总结', '专题知识库']
+        features: ['历史数据挖掘', '灾害事件分析', '治理经验总结', '专题知识库'],
+        images: [historicalFloodImage, kangXianBaoGongImage, taiPuRiverImage2] // 图片集合
       },
       waterResources: {
         title: '水资源调配',
         description: '实现水资源的优化配置和调度,保障流域供水安全,提升水资源利用效率,支持经济社会可持续发展。',
-        features: ['优化调度策略', '供需平衡分析', '调度方案评估', '实时监控调度']
+        features: ['优化调度策略', '供需平衡分析', '调度方案评估', '实时监控调度'],
+        images: [waterResourcesImage, taiPuRiverImage2, gongHuImage] // 图片集合
       }
     },
     achievements: [
@@ -555,13 +562,38 @@ export const projectData = [
         description: '系统使用培训手册'
       }
     ],
-    technicalHighlights: [
-      '分布式数据采集系统',
-      '标准化数据接口',
-      '高性能数据存储',
-      '实时数据处理',
-      '数据质量评估体系'
-    ],
+    technicalHighlights: {
+      distributedCollection: {
+        title: '分布式数据采集系统',
+        description: '构建了覆盖全流域的分布式数据采集系统,实现多类型传感器数据的同步采集',
+        features: ['多类型传感器', '同步采集', '分布式部署', '故障容错'],
+        images: [taiPuRiverImage2, gongHuImage, kangXianBaoGongImage] // 图片集合
+      },
+      standardizedInterface: {
+        title: '标准化数据接口',
+        description: '建立了标准化的数据接口规范,实现不同系统间的数据交换和共享',
+        features: ['统一接口', '数据交换', '格式标准化', '接口文档'],
+        images: [taiPuRiverImage2, fangXunYanLianImage, buZhangDiaoYanImage] // 图片集合
+      },
+      highPerformanceStorage: {
+        title: '高性能数据存储',
+        description: '采用高性能存储技术,实现大规模数据的高效存储和快速检索',
+        features: ['分布式存储', '快速检索', '数据备份', '容灾恢复'],
+        images: [taiPuRiverImage2, siYuImage, historicalFloodImage] // 图片集合
+      },
+      realTimeProcessing: {
+        title: '实时数据处理',
+        description: '实现数据的实时处理和分析,为决策提供及时的支持',
+        features: ['实时处理', '流式计算', '数据分析', '结果可视化'],
+        images: [taiPuRiverImage2, waterResourcesImage, gongHuImage] // 图片集合
+      },
+      dataQualityAssessment: {
+        title: '数据质量评估体系',
+        description: '建立了完整的数据质量评估体系,确保数据的准确性和可靠性',
+        features: ['质量检测', '异常识别', '数据清洗', '质量报告'],
+        images: [taiPuRiverImage2, kangXianBaoGongImage, fangXunYanLianImage] // 图片集合
+      }
+    },
     achievements: [
       {
         id: '1',
@@ -760,13 +792,38 @@ export const projectData = [
         category: '媒体'
       }
     ],
-    technicalHighlights: [
-      '灌区全要素数字孪生建模',
-      '作物需水智能预测算法',
-      '精准灌溉自动控制系统',
-      '多源数据融合分析技术',
-      '可视化决策支持平台'
-    ],
+    technicalHighlights: {
+      digitalTwinModeling: {
+        title: '灌区全要素数字孪生建模',
+        description: '构建了灌区全要素数字化映射,包括地形、土壤、作物、水利设施等,实现灌区状态的实时监测和模拟',
+        features: ['全要素建模', '实时监测', '高精度映射', '动态模拟'],
+        images: [taiPuRiverImage2, gongHuImage, kangXianBaoGongImage] // 图片集合
+      },
+      cropWaterPrediction: {
+        title: '作物需水智能预测算法',
+        description: '基于机器学习算法,结合气象数据和作物生长模型,实现作物需水的精准预测',
+        features: ['机器学习', '气象数据融合', '作物生长模型', '精准预测'],
+        images: [taiPuRiverImage2, fangXunYanLianImage, buZhangDiaoYanImage] // 图片集合
+      },
+      precisionIrrigation: {
+        title: '精准灌溉自动控制系统',
+        description: '实现了精准灌溉的自动化控制,根据作物需水情况和土壤墒情,自动调整灌溉量和灌溉时间',
+        features: ['自动化控制', '精准灌溉', '墒情监测', '智能调节'],
+        images: [taiPuRiverImage2, siYuImage, historicalFloodImage] // 图片集合
+      },
+      multiSourceDataFusion: {
+        title: '多源数据融合分析技术',
+        description: '集成多源数据进行融合分析,包括气象数据、土壤数据、作物数据等,为决策提供全面支持',
+        features: ['多源数据集成', '融合分析', '数据挖掘', '知识发现'],
+        images: [taiPuRiverImage2, waterResourcesImage, gongHuImage] // 图片集合
+      },
+      visualizationDecision: {
+        title: '可视化决策支持平台',
+        description: '提供了直观的数据可视化和决策支持功能,帮助用户快速理解和分析复杂的灌区数据',
+        features: ['可视化展示', '决策支持', '图表分析', '交互操作'],
+        images: [taiPuRiverImage2, kangXianBaoGongImage, fangXunYanLianImage] // 图片集合
+      }
+    },
     achievements: [
       {
         id: '1',

+ 32 - 7
RuoYi-Vue3/src/data/projects/dataCollectionProjects.js

@@ -68,13 +68,38 @@ export const dataCollectionProjects = [
         category: '文件'
       }
     ],
-    technicalHighlights: [
-      '分布式数据采集系统',
-      '标准化数据接口',
-      '高性能数据存储',
-      '实时数据处理',
-      '数据质量评估体系'
-    ],
+    technicalHighlights: {
+      distributedCollection: {
+        title: '分布式数据采集系统',
+        description: '构建了覆盖全流域的分布式数据采集系统,实现多源数据的全面采集',
+        features: ['多源数据采集', '分布式架构', '全面覆盖', '稳定可靠'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      standardInterface: {
+        title: '标准化数据接口',
+        description: '建立了标准化的数据接口体系,实现不同系统之间的数据交换和共享',
+        features: ['标准化接口', '数据交换', '系统集成', '灵活扩展'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      highPerformanceStorage: {
+        title: '高性能数据存储',
+        description: '构建了高性能数据存储系统,支持大规模数据的存储和管理',
+        features: ['大容量存储', '高性能读写', '数据备份', '安全可靠'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      realTimeProcessing: {
+        title: '实时数据处理',
+        description: '实现了数据的实时处理和分析,满足业务需求的实时性要求',
+        features: ['实时处理', '数据清洗', '分析计算', '结果输出'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      qualityAssessment: {
+        title: '数据质量评估体系',
+        description: '建立了完善的数据质量评估体系,确保数据的准确性和可靠性',
+        features: ['质量检测', '误差分析', '数据修正', '质量报告'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      }
+    },
     achievements: [
       {
         id: '1',

+ 40 - 11
RuoYi-Vue3/src/data/projects/digitalTwinProjects.js

@@ -110,22 +110,26 @@ export const digitalTwinProjects = [
       dataBase: {
         title: '数据底板',
         description: '数据底板构建核心在于构建符合平原感潮河网双向水流、水位多变特点的全要素、高精度、动态化数字映射。',
-        features: ['多源数据融合', '水利枢纽', '三维场景']
+        features: ['多源数据融合', '水利枢纽', '三维场景'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
       },
       floodControl: {
         title: '四预一体化',
         description: '建成满足多目标统筹调度要求的“四预”应用,实现洪水的精准预测、预警、预演和预案,提升流域防洪能力。',
-        features: ['洪水预测预警', '防洪调度预演', '应急预案管理', '实时风险评估']
+        features: ['洪水预测预警', '防洪调度预演', '应急预案管理', '实时风险评估'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
       },
       historicalTopics: {
         title: '历史专题',
         description: '系统梳理和分析流域历史水文数据、灾害事件和治理经验,为当前和未来的水资源管理提供参考。',
-        features: ['历史数据挖掘', '灾害事件分析', '治理经验总结', '专题知识库']
+        features: ['历史数据挖掘', '灾害事件分析', '治理经验总结', '专题知识库'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
       },
       waterResources: {
         title: '水资源调配',
         description: '实现水资源的优化配置和调度,保障流域供水安全,提升水资源利用效率,支持经济社会可持续发展。',
-        features: ['优化调度策略', '供需平衡分析', '调度方案评估', '实时监控调度']
+        features: ['优化调度策略', '供需平衡分析', '调度方案评估', '实时监控调度'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
       }
     },
     achievements: [
@@ -360,13 +364,38 @@ export const digitalTwinProjects = [
         category: '媒体'
       }
     ],
-    technicalHighlights: [
-      '高精度传感器网络',
-      '实时数据传输技术',
-      'AI预测分析模型',
-      '移动端应用开发',
-      '故障诊断与预警系统'
-    ],
+    technicalHighlights: {
+      sensorNetwork: {
+        title: '高精度传感器网络',
+        description: '构建了覆盖全流域的高精度传感器网络,实现水位、流量、水质等多参数实时监测',
+        features: ['多参数监测', '高精度采集', '覆盖全流域', '实时传输'],
+        images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
+      },
+      dataTransmission: {
+        title: '实时数据传输技术',
+        description: '采用5G和物联网技术,实现监测数据的实时传输和处理,确保数据及时性和准确性',
+        features: ['5G传输', '低延迟', '高可靠性', '断点续传'],
+        images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
+      },
+      aiAnalysis: {
+        title: 'AI预测分析模型',
+        description: '基于机器学习算法,对水文数据进行智能分析和预测,提升预测精度和效率',
+        features: ['机器学习', '智能预测', '数据分析', '模型优化'],
+        images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
+      },
+      mobileApp: {
+        title: '移动端应用开发',
+        description: '开发了移动应用程序,支持数据查询、预警通知和远程控制功能',
+        features: ['数据查询', '预警通知', '远程控制', '离线查看'],
+        images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
+      },
+      faultDiagnosis: {
+        title: '故障诊断与预警系统',
+        description: '实现设备状态实时监测和故障预警,提高运维效率和设备可靠性',
+        features: ['状态监测', '故障预警', '诊断分析', '运维建议'],
+        images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
+      }
+    },
     achievements: [
       {
         id: '1',

+ 10 - 5
RuoYi-Vue3/src/data/projects/hydrologicalStation.js

@@ -107,27 +107,32 @@ export const hydrologicalStationProject = {
     sensorNetwork: {
       title: '高精度传感器网络',
       description: '构建了覆盖全流域的高精度传感器网络,实现水位、流量、水质等多参数实时监测',
-      features: ['多参数监测', '高精度采集', '覆盖全流域', '实时传输']
+      features: ['多参数监测', '高精度采集', '覆盖全流域', '实时传输'],
+      images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
     },
     dataTransmission: {
       title: '实时数据传输技术',
       description: '采用5G和物联网技术,实现监测数据的实时传输和处理,确保数据及时性和准确性',
-      features: ['5G传输', '低延迟', '高可靠性', '断点续传']
+      features: ['5G传输', '低延迟', '高可靠性', '断点续传'],
+      images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
     },
     aiAnalysis: {
       title: 'AI预测分析模型',
       description: '基于机器学习算法,对水文数据进行智能分析和预测,提升预测精度和效率',
-      features: ['机器学习', '智能预测', '数据分析', '模型优化']
+      features: ['机器学习', '智能预测', '数据分析', '模型优化'],
+      images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
     },
     mobileApp: {
       title: '移动端应用开发',
       description: '开发了移动应用程序,支持数据查询、预警通知和远程控制功能',
-      features: ['数据查询', '预警通知', '远程控制', '离线查看']
+      features: ['数据查询', '预警通知', '远程控制', '离线查看'],
+      images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
     },
     faultDiagnosis: {
       title: '故障诊断与预警系统',
       description: '实现设备状态实时监测和故障预警,提高运维效率和设备可靠性',
-      features: ['状态监测', '故障预警', '诊断分析', '运维建议']
+      features: ['状态监测', '故障预警', '诊断分析', '运维建议'],
+      images: [gongHuImage, gongHuImage, gongHuImage] // 图片集合
     }
   },
   achievements: [

+ 32 - 7
RuoYi-Vue3/src/data/projects/irrigationProjects.js

@@ -77,13 +77,38 @@ export const irrigationProjects = [
         category: '媒体'
       }
     ],
-    technicalHighlights: [
-      '灌区全要素数字孪生建模',
-      '作物需水智能预测算法',
-      '精准灌溉自动控制系统',
-      '多源数据融合分析技术',
-      '可视化决策支持平台'
-    ],
+    technicalHighlights: {
+      digitalTwinModeling: {
+        title: '灌区全要素数字孪生建模',
+        description: '构建了灌区全要素数字化映射,包括地形、土壤、作物、水利设施等,实现灌区状态的实时监测和模拟',
+        features: ['全要素建模', '实时监测', '高精度映射', '动态模拟'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      cropWaterPrediction: {
+        title: '作物需水智能预测算法',
+        description: '基于机器学习算法,结合气象数据和作物生长模型,实现作物需水的精准预测',
+        features: ['机器学习', '气象数据融合', '作物生长模型', '精准预测'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      precisionIrrigation: {
+        title: '精准灌溉自动控制系统',
+        description: '实现灌溉水量和时间的精准控制,根据作物需水和土壤墒情自动调整灌溉策略',
+        features: ['自动控制', '精准灌溉', '墒情监测', '智能调度'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      dataFusion: {
+        title: '多源数据融合分析技术',
+        description: '融合水位、流量、土壤墒情、气象等多源数据,实现灌区水资源的综合分析和优化调度',
+        features: ['多源数据融合', '数据分析', '优化调度', '决策支持'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      },
+      visualizationPlatform: {
+        title: '可视化决策支持平台',
+        description: '提供直观的数据可视化界面,支持灌区运行状态的实时监控和决策分析',
+        features: ['实时监控', '数据可视化', '决策分析', '报表生成'],
+        images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
+      }
+    },
     achievements: [
       {
         id: '1',

+ 10 - 5
RuoYi-Vue3/src/data/projects/taipuGate.js

@@ -80,27 +80,32 @@ export const taiPuZhaProject = {
     realTimeMonitoring: {
       title: '闸门运行状态实时监测',
       description: '实现闸门运行状态的全面实时监测,包括闸门开度、运行速度、受力情况等参数',
-      features: ['实时监测', '多参数采集', '状态反馈', '异常检测']
+      features: ['实时监测', '多参数采集', '状态反馈', '异常检测'],
+      images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
     },
     waterFlowSimulation: {
       title: '高精度水流模拟计算',
       description: '建立高精度水流模拟模型,准确预测闸门调度对水流的影响',
-      features: ['高精度模型', '实时计算', '结果可视化', '方案评估']
+      features: ['高精度模型', '实时计算', '结果可视化', '方案评估'],
+      images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
     },
     intelligentScheduling: {
       title: '智能调度决策支持系统',
       description: '基于AI算法的智能调度系统,实现闸门调度的自动化和优化',
-      features: ['AI算法', '自动调度', '方案优化', '决策支持']
+      features: ['AI算法', '自动调度', '方案优化', '决策支持'],
+      images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
     },
     dataVisualization: {
       title: '多维度数据可视化展示',
       description: '提供丰富的数据可视化方式,直观展示闸门运行和水流情况',
-      features: ['图表展示', '地图可视化', '实时更新', '历史回放']
+      features: ['图表展示', '地图可视化', '实时更新', '历史回放'],
+      images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
     },
     faultDiagnosis: {
       title: '故障预警与诊断系统',
       description: '实现设备故障的提前预警和诊断,提高运维效率和设备可靠性',
-      features: ['故障预警', '诊断分析', '运维建议', '历史记录']
+      features: ['故障预警', '诊断分析', '运维建议', '历史记录'],
+      images: [taiPuRiverImage2, taiPuRiverImage2, taiPuRiverImage2] // 图片集合
     }
   },
   achievements: [

+ 11 - 4
RuoYi-Vue3/src/data/projects/taipuRiver.js

@@ -4,6 +4,9 @@ import kangXianBaoGongImage from '@/assets/images/抗咸保供.png'
 import fangXunYanLianImage from '@/assets/images/防汛演练.jpg'
 import fangXunYanLian2023Image from '@/assets/images/2023防汛演练.jpg'
 import buZhangDiaoYanImage from '@/assets/images/部长调研.jpg'
+import siYuImage from '@/assets/images/四预.png'
+import historicalFloodImage from '@/assets/images/历史洪水.png'
+import waterResourcesImage from '@/assets/images/水资源模型调配.png'
 import taiPuRiverVideo from '@/assets/video/太浦河资料.mp4'
 
 // 太浦河项目数据
@@ -113,22 +116,26 @@ export const taiPuHeProject = {
     dataBase: {
       title: '数据底板',
       description: '数据底板构建核心在于构建符合平原感潮河网双向水流、水位多变特点的全要素、高精度、动态化数字映射。',
-      features: ['多源数据融合', '水利枢纽', '三维场景']
+      features: ['多源数据融合', '水利枢纽', '三维场景'],
+      images: [taiPuRiverImage2, gongHuImage, buZhangDiaoYanImage] // 图片集合
     },
     floodControl: {
       title: '四预一体化',
       description: '建成满足多目标统筹调度要求的“四预”应用,实现洪水的精准预测、预警、预演和预案,提升流域防洪能力。',
-      features: ['洪水预测预警', '防洪调度预演', '应急预案管理', '实时风险评估']
+      features: ['洪水预测预警', '防洪调度预演', '应急预案管理', '实时风险评估'],
+      images: [siYuImage, fangXunYanLianImage, fangXunYanLian2023Image] // 图片集合
     },
     historicalTopics: {
       title: '历史专题',
       description: '系统梳理和分析流域历史水文数据、灾害事件和治理经验,为当前和未来的水资源管理提供参考。',
-      features: ['历史数据挖掘', '灾害事件分析', '治理经验总结', '专题知识库']
+      features: ['历史数据挖掘', '灾害事件分析', '治理经验总结', '专题知识库'],
+      images: [historicalFloodImage, kangXianBaoGongImage, taiPuRiverImage2] // 图片集合
     },
     waterResources: {
       title: '水资源调配',
       description: '实现水资源的优化配置和调度,保障流域供水安全,提升水资源利用效率,支持经济社会可持续发展。',
-      features: ['优化调度策略', '供需平衡分析', '调度方案评估', '实时监控调度']
+      features: ['优化调度策略', '供需平衡分析', '调度方案评估', '实时监控调度'],
+      images: [waterResourcesImage, taiPuRiverImage2, gongHuImage] // 图片集合
     }
   },
   achievements: [

+ 14 - 12
RuoYi-Vue3/src/views/front/HydrologicalPlatform.vue

@@ -22,12 +22,12 @@
                 >
                 <div v-if="!carouselData[0].image || !carouselData[0].loaded" class="image-placeholder">
                   <span class="placeholder-icon">🌊</span>
-                  <span class="placeholder-text">数字孪生太浦河</span>
+                  <span class="placeholder-text">数字孪生流域</span>
                 </div>
               </div>
               <div class="carousel-text">
-                <h1 class="hero-title">数字孪生太浦河</h1>
-                <p class="hero-description">基于数字孪生技术的太浦河流域综合管理平台,实现流监测、模拟预测与智能调度</p>
+                <h1 class="hero-title">数字孪生流域</h1>
+                <p class="hero-description">基于数字孪生技术的流域综合管理平台,实现流监测、模拟预测与智能调度</p>
                 <el-button type="primary" size="medium" @click="goToProjectCases">
                   <el-icon><Document /></el-icon>
                   查看案例
@@ -110,8 +110,8 @@
                 </div>
               </div>
               <div class="carousel-text">
-                <h1 class="hero-title">智能水文解决方案</h1>
-                <p class="hero-description">结合物联网、大数据、人工智能等技术,提供全方位的水文监测与管理解决方案</p>
+                <h1 class="hero-title">水资源评价与调配</h1>
+                <p class="hero-description">基于水资源调配模型分析,提供精准的水资源评价与优化调配方案</p>
                 <el-button type="primary" size="medium" @click="goToCompanyProfile">
                   <el-icon><OfficeBuilding /></el-icon>
                   了解我们
@@ -178,14 +178,14 @@
             <div class="project-image">
               <img 
                 :src="taiPuRiverImage2" 
-                alt="数字孪生太浦河" 
+                alt="数字孪生流域" 
                 loading="lazy"
                 class="project-image-element"
               >
             </div>
             <div class="project-content">
-              <h3>数字孪生太浦河</h3>
-              <p>基于数字孪生技术的太浦河流域综合管理平台,实现流监测、模拟预测与智能调度</p>
+              <h3>数字孪生流域</h3>
+              <p>基于数字孪生技术的流域综合管理平台,实现流监测、模拟预测与智能调度</p>
               <div class="project-tags">
                 <span class="tag">数字孪生</span>
                 <span class="tag">GIS</span>
@@ -274,6 +274,8 @@ import { useRouter } from 'vue-router'
 import taiPuRiverImage from '@/assets/images/太浦河全景.png'
 import taiPuRiverImage2 from '@/assets/images/太浦河全景2.png'
 import gongHuImage from '@/assets/images/贡湖.png'
+import collectionPlatformImage from '@/assets/images/采集平台.png'
+import waterResourcesImage from '@/assets/images/水资源模型调配.png'
 
 const router = useRouter()
 
@@ -297,14 +299,14 @@ const carouselData = ref([
     title: '流域数据采集',
     description: '全流域水文数据采集与传输系统',
     buttonText: '查看案例',
-    image: '', // 暂时留空,等待添加新图片
+    image: collectionPlatformImage, // 使用采集平台图片
     loaded: false
   },
   {
-    title: '智能水文解决方案',
-    description: '全方位的水文监测与管理解决方案',
+    title: '水资源评价与调配',
+    description: '通过专业水资源模型分析,提供精准的水资源评价与优化调配方案',
     buttonText: '了解我们',
-    image: '', // 暂时留空,等待添加新图片
+    image: waterResourcesImage, // 使用水资源模型调配图片
     loaded: false
   }
 ])

+ 1 - 1
RuoYi-Vue3/src/views/front/PageHeader.vue

@@ -6,7 +6,7 @@
           <img src="/金水logo.png" alt="中国水文" class="water-logo">
         </div>
         <div class="title-container">
-          <h1 class="site-title">东南大区成果展示平台</h1>
+          <h1 class="site-title">项目成果展示平台</h1>
           <h2 class="site-subtitle">数字孪生技术在水文领域的应用与解决方案</h2>
         </div>
       </div>

+ 410 - 126
RuoYi-Vue3/src/views/front/ProjectCases.vue

@@ -101,26 +101,54 @@
         <!-- 技术亮点 -->
         <section class="technical-highlights">
           <h2 class="section-title">技术亮点</h2>
-          <div class="horizontal-accordion-container">
-            <div 
-              v-for="(item, index) in Object.values(currentProject.technicalHighlights)" 
-              :key="index"
-              class="accordion-item"
-              :class="{ 'active': activeAccordion === index }"
-              @mouseenter="handleItemHover(index)"
-            >
-              <div class="accordion-header">
-                <el-icon class="collapse-icon"><Star /></el-icon>
+          <div class="highlights-container">
+            <!-- 左侧分类列表 -->
+            <div class="highlights-menu">
+              <div 
+                v-for="(item, index) in Object.values(currentProject.technicalHighlights)" 
+                :key="index"
+                class="menu-item"
+                :class="{ 'active': activeHighlight === index }"
+                @click="handleHighlightClick(index)"
+              >
+                <el-icon class="menu-icon"><Star /></el-icon>
                 <span>{{ item.title }}</span>
               </div>
-              <div class="accordion-content">
-                <p class="collapse-description">{{ item.description }}</p>
-                <ul class="collapse-features">
-                  <li v-for="(feature, idx) in item.features" :key="idx">
-                    <el-icon class="feature-icon"><Check /></el-icon>
-                    {{ feature }}
-                  </li>
-                </ul>
+            </div>
+            
+            <!-- 右侧图片展示 -->
+            <div class="highlights-content">
+              <div v-if="currentHighlight" class="highlight-detail">
+                <!-- 大图展示 -->
+                <div class="highlight-image">
+                  <img 
+                    :src="currentHighlight.images[activeImageIndex]" 
+                    :alt="currentHighlight.title"
+                    class="detail-image"
+                    loading="lazy"
+                  >
+                </div>
+                <!-- 缩略图小图集 -->
+                <div class="thumbnail-gallery">
+                  <div 
+                    v-for="(image, index) in currentHighlight.images" 
+                    :key="index"
+                    class="thumbnail-item"
+                    :class="{ 'active': activeImageIndex === index }"
+                    @click="handleImageClick(index)"
+                  >
+                    <img 
+                      :src="image" 
+                      :alt="`${currentHighlight.title} - 图${index + 1}`"
+                      class="thumbnail-image"
+                      loading="lazy"
+                    >
+                  </div>
+                </div>
+              </div>
+              <div v-else class="no-selection">
+                <el-icon class="no-selection-icon"><Star /></el-icon>
+                <p>请选择一个技术亮点查看</p>
               </div>
             </div>
           </div>
@@ -443,12 +471,29 @@ import { allProjects, getProjectById } from '@/data/projects'
 const videoPlaying = ref(false)
 const viewerVideoPlaying = ref(false)
 
-// 手风琴组件状态
-const activeAccordion = ref(0)
+// 技术亮点选中状态
+const activeHighlight = ref(null)
+// 当前图集的图片索引
+const activeImageIndex = ref(0)
+
+// 当前选中的技术亮点
+const currentHighlight = computed(() => {
+  if (activeHighlight.value !== null) {
+    const highlights = Object.values(currentProject.value.technicalHighlights)
+    return highlights[activeHighlight.value]
+  }
+  return null
+})
+
+// 处理技术亮点点击
+const handleHighlightClick = (index) => {
+  activeHighlight.value = index
+  activeImageIndex.value = 0 // 切换分类时重置图片索引
+}
 
-// 鼠标悬停触发面板展开(手风琴模式自动收起其他)
-const handleItemHover = (key) => {
-  activeAccordion.value = key
+// 处理图片点击
+const handleImageClick = (index) => {
+  activeImageIndex.value = index
 }
 
 // 控制案例展示视频播放
@@ -503,14 +548,27 @@ const handleViewerVideoPause = () => {
   viewerVideoPlaying.value = false
 }
 
-// 当前选中的案例索引(默认显示视频)
-const selectedCaseIndex = ref(3)
+// 当前选中的案例索引(自动判断是否有视频)
+const selectedCaseIndex = ref(null)
 
 // 当前选中的案例
 const selectedCase = computed(() => {
+  // 如果已经手动选择了案例,直接返回
   if (selectedCaseIndex.value !== null && currentProject.value.caseStudies[selectedCaseIndex.value]) {
     return currentProject.value.caseStudies[selectedCaseIndex.value]
   }
+  
+  // 自动判断:如果有视频案例,返回第一个视频案例
+  const videoCase = currentProject.value.caseStudies.find(caseItem => caseItem.type === 'video')
+  if (videoCase) {
+    return videoCase
+  }
+  
+  // 如果没有视频案例,返回第一个图片案例
+  if (currentProject.value.caseStudies.length > 0) {
+    return currentProject.value.caseStudies[0]
+  }
+  
   return null
 })
 
@@ -949,173 +1007,354 @@ const goToHome = () => {
 /* 技术亮点 */
 .technical-highlights {
   background: white;
-  padding: 2rem;
-  border-radius: 16px;
-  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
-  margin-bottom: 2rem;
+  padding: 1.5rem;
+  border-radius: 12px;
+  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
+  margin-bottom: 1.5rem;
 }
 
-/* 横向手风琴容器 */
-.horizontal-accordion-container {
-  width: 100%;
-  height: 400px;
+/* 技术亮点容器 */
+.highlights-container {
   display: flex;
-  border: 1px solid #e6e6e6;
-  border-radius: 8px;
-  overflow: hidden;
-  margin-top: 1.5rem;
-  background: #fff;
+  gap: 0.75rem;
+  margin-top: 0.5rem;
+  min-height: 500px;
 }
 
-/* 单个手风琴项 */
-.accordion-item {
-  flex: 1;
-  min-width: 150px;
-  max-width: 150px;
-  background-size: cover;
-  background-position: center;
-  background-repeat: no-repeat;
-  border-right: 1px solid rgba(255, 255, 255, 0.2);
-  transition: all 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
+/* 左侧菜单 */
+.highlights-menu {
+  width: 14%;
+  max-width: 170px;
+  background: #f8f9fa;
+  border-radius: 6px;
+  padding: 0.375rem;
+  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
+  display: flex;
+  flex-direction: column;
+  gap: 0.125rem;
+}
+
+/* 菜单项目 */
+.menu-item {
+  display: flex;
+  align-items: center;
+  padding: 0.5rem 0.625rem;
+  background: white;
+  border-radius: 4px;
+  cursor: pointer;
+  transition: all 0.3s ease;
+  border: 1px solid transparent;
   position: relative;
   overflow: hidden;
-  cursor: pointer;
+  font-size: 0.85rem;
 }
 
-/* 为每个手风琴项设置不同的背景图片 */
-.accordion-item:nth-child(1) {
-  background-image: url('@/assets/images/太浦河全景2.png');
+.menu-item::before {
+  content: '';
+  position: absolute;
+  left: 0;
+  top: 0;
+  height: 100%;
+  width: 0;
+  background: linear-gradient(90deg, rgba(50, 110, 226, 0.1), rgba(50, 110, 226, 0));
+  transition: width 0.3s ease;
 }
 
-.accordion-item:nth-child(2) {
-  background-image: url('@/assets/images/四预.png');
+.menu-item:hover::before {
+  width: 100%;
 }
 
-.accordion-item:nth-child(3) {
-  background-image: url('@/assets/images/历史洪水.png');
+.menu-item:hover {
+  background: #f0f5ff;
+  border-color: #326ee2;
+  transform: translateX(4px);
+  box-shadow: 0 2px 8px rgba(50, 110, 226, 0.2);
 }
 
-.accordion-item:nth-child(4) {
-  background-image: url('@/assets/images/抗咸保供.png');
+.menu-item.active {
+  background: #326ee2;
+  color: white;
+  border-color: #326ee2;
+  box-shadow: 0 4px 12px rgba(50, 110, 226, 0.4);
+}
+
+.menu-item.active::before {
+  width: 100%;
+  background: linear-gradient(90deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0));
 }
 
-/* 背景图片增强文字可读性 */
-.accordion-item::before {
+.menu-icon {
+  margin-right: 0.5rem;
+  font-size: 1rem;
+  position: relative;
+  z-index: 1;
+}
+
+.menu-item span {
+  position: relative;
+  z-index: 1;
+  font-weight: 500;
+}
+
+/* 缩略图小图集 */
+.thumbnail-gallery {
+  display: flex;
+  gap: 0.25rem;
+  margin-top: 0.5rem;
+  overflow-x: auto;
+  padding-bottom: 0.125rem;
+  scrollbar-width: thin;
+  scrollbar-color: #326ee2 #f0f0f0;
+}
+
+.thumbnail-gallery::-webkit-scrollbar {
+  height: 3px;
+}
+
+.thumbnail-gallery::-webkit-scrollbar-track {
+  background: #f0f0f0;
+  border-radius: 1.5px;
+}
+
+.thumbnail-gallery::-webkit-scrollbar-thumb {
+  background: #326ee2;
+  border-radius: 1.5px;
+}
+
+.thumbnail-gallery::-webkit-scrollbar-thumb:hover {
+  background: #64b5f6;
+}
+
+.thumbnail-item {
+  flex-shrink: 0;
+  width: 70px;
+  height: 45px;
+  border-radius: 4px;
+  overflow: hidden;
+  cursor: pointer;
+  border: 1px solid transparent;
+  transition: all 0.3s ease;
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
+  position: relative;
+}
+
+.thumbnail-item:hover {
+  transform: translateY(-1px);
+  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
+  border-color: #64b5f6;
+}
+
+.thumbnail-item.active {
+  border-color: #326ee2;
+  box-shadow: 0 2px 8px rgba(50, 110, 226, 0.4);
+}
+
+.thumbnail-item.active::after {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
-  background: linear-gradient(to right, rgba(0, 0, 0, 1), transparent); /* 渐变黑色到透明,左侧完全不透明 */
-  transition: all 0.3s ease;
+  background: rgba(50, 110, 226, 0.1);
 }
 
-.accordion-item:last-child {
-  border-right: none;
+.thumbnail-image {
+  width: 100%;
+  height: 100%;
+  object-fit: cover;
+  transition: transform 0.3s ease;
+}
+
+.thumbnail-item:hover .thumbnail-image {
+  transform: scale(1.1);
 }
 
-/* 手风琴项激活状态(展开) */
-.accordion-item.active {
-  flex: 4;
-  max-width: none;
+/* 右侧内容 */
+.highlights-content {
+  flex: 1;
+  background: #f8f9fa;
+  border-radius: 6px;
+  padding: 0.5rem;
+  display: flex;
+  align-items: stretch;
+  justify-content: center;
+  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
+  min-height: 480px;
 }
 
-/* 手风琴头部 */
-.accordion-header {
+/* 技术亮点详情 */
+.highlight-detail {
+  width: 100%;
   height: 100%;
   display: flex;
   flex-direction: column;
+}
+
+.highlight-image {
+  flex: 1;
+  margin-bottom: 0.5rem;
+  border-radius: 6px;
+  overflow: hidden;
+  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+  position: relative;
+  min-height: 400px;
+  max-height: 450px;
+  display: flex;
   align-items: center;
   justify-content: center;
-  padding: 1.5rem;
-  text-align: center;
-  transition: all 0.3s ease;
-  color: white;
-  font-weight: 500;
-  position: relative;
+}
+
+.highlight-image::before {
+  content: '';
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 80%, rgba(0, 0, 0, 0.1));
   z-index: 1;
 }
 
-.accordion-item:hover .accordion-header {
-  background: rgba(255, 255, 255, 0.1);
-  color: white;
+.detail-image {
+  width: 100%;
+  height: 100%;
+  object-fit: contain;
+  transition: transform 0.3s ease;
 }
 
-.accordion-item.active .accordion-header {
-  opacity: 0;
-  visibility: hidden;
-  transform: translateX(-100%);
+.highlight-image:hover .detail-image {
+  transform: scale(1.05);
 }
 
-.collapse-icon {
-  color: white;
-  font-size: 1.5rem;
-  margin-bottom: 1rem;
-  transition: transform 0.3s ease;
+/* 响应式设计 */
+@media (max-width: 768px) {
+  .highlights-container {
+    flex-direction: column;
+    min-height: 450px;
+  }
+  
+  .highlights-menu {
+    width: 100%;
+    max-width: none;
+    flex-direction: row;
+    overflow-x: auto;
+    padding: 0.5rem;
+  }
+  
+  .menu-item {
+    white-space: nowrap;
+    flex-shrink: 0;
+  }
+  
+  .highlights-content {
+    min-height: 380px;
+  }
+  
+  .highlight-detail {
+    max-width: 100%;
+  }
+  
+  .highlight-image {
+    min-height: 320px;
+    max-height: 380px;
+  }
+  
+  .thumbnail-item {
+    width: 70px;
+    height: 50px;
+  }
 }
 
-.accordion-item:hover .collapse-icon {
-  transform: scale(1.1);
+@media (max-width: 480px) {
+  .technical-highlights {
+    padding: 1rem;
+  }
+  
+  .highlight-content {
+    padding: 0.75rem;
+  }
+  
+  .highlight-image {
+    min-height: 250px;
+    max-height: 300px;
+  }
+  
+  .thumbnail-item {
+    width: 60px;
+    height: 45px;
+  }
+  
+  .menu-item {
+    padding: 0.625rem 0.75rem;
+    font-size: 0.85rem;
+  }
+  
+  .menu-icon {
+    font-size: 0.9rem;
+  }
 }
 
-/* 手风琴内容 */
-.accordion-content {
-  position: absolute;
-  top: 0;
-  left: 150px;
-  height: 100%;
-  width: calc(100% - 150px);
-  padding: 2rem;
-  opacity: 0;
-  visibility: hidden;
-  transition: all 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
-  overflow-y: auto;
+.highlight-info {
+  text-align: left;
 }
 
-.accordion-item.active .accordion-content {
-  left: 0;
-  width: 100%;
-  opacity: 1;
-  visibility: visible;
+.detail-title {
+  font-size: 1.75rem;
+  color: #2c3e50;
+  margin-bottom: 1rem;
+  font-weight: 600;
+  line-height: 1.4;
 }
 
-.collapse-description {
-  font-size: 1rem;
-  color: white;
-  line-height: 1.8;
+.detail-description {
+  font-size: 1.1rem;
+  color: #7f8c8d;
   margin-bottom: 1.5rem;
-  font-weight: 400;
+  line-height: 1.6;
 }
 
-.collapse-features {
+.detail-features {
   list-style: none;
   padding: 0;
   margin: 0;
 }
 
-.collapse-features li {
+.detail-features li {
   display: flex;
   align-items: flex-start;
-  gap: 0.75rem;
-  font-size: 0.95rem;
-  color: white;
-  padding: 0.75rem 0;
-  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+  gap: 0.5rem;
+  margin-bottom: 0.75rem;
+  font-size: 1rem;
+  color: #34495e;
   line-height: 1.6;
 }
 
-.collapse-features li:last-child {
-  border-bottom: none;
-}
-
 .feature-icon {
-  color: #28a745;
-  font-size: 0.9rem;
-  margin-top: 0.2rem;
+  margin-top: 0.25rem;
+  color: #326ee2;
   flex-shrink: 0;
 }
 
+/* 无选择状态 */
+.no-selection {
+  text-align: center;
+  color: #7f8c8d;
+}
+
+.no-selection-icon {
+  font-size: 4rem;
+  margin-bottom: 1rem;
+  color: #bdc3c7;
+}
+
+.no-selection p {
+  font-size: 1.2rem;
+  margin: 0;
+}
+
+
+
 /* 项目成果 */
 .project-achievements {
   margin-bottom: 2rem;
@@ -1767,6 +2006,51 @@ const goToHome = () => {
     padding: 2rem;
   }
 
+  /* 技术亮点区域响应式调整 */
+  .highlights-container {
+    flex-direction: column;
+    min-height: 400px;
+  }
+
+  .highlights-menu {
+    width: 100%;
+    max-width: none;
+    flex-direction: row;
+    overflow-x: auto;
+    padding: 0.5rem;
+    gap: 0.5rem;
+  }
+
+  .menu-item {
+    padding: 0.75rem 1rem;
+    white-space: nowrap;
+    flex-shrink: 0;
+  }
+
+  .menu-item:hover {
+    transform: translateY(-3px);
+    translateX: 0;
+  }
+
+  .highlights-content {
+    min-height: 300px;
+    padding: 1.5rem;
+  }
+
+  .highlight-image {
+    margin-bottom: 1.5rem;
+  }
+
+  .detail-image {
+    min-height: 250px;
+    max-height: 350px;
+  }
+
+  .thumbnail-item {
+    width: 100px;
+    height: 70px;
+  }
+
   .features-grid,
   .case-study-grid {
     grid-template-columns: 1fr;