page.tsx 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. "use client"
  2. import { useState } from "react"
  3. import { Card, Pagination, Button } from "antd"
  4. import { ArrowRightOutlined } from "@ant-design/icons"
  5. import MainTitle from "@/components/MainTitle";
  6. import Image from "next/image";
  7. const { Meta } = Card
  8. // 模拟数据
  9. const solutionsData = [
  10. {
  11. id: 1,
  12. title: "公路基础设施智能监测与预警平台建设方案",
  13. date: "2024-05-27",
  14. description:
  15. "本项目为省高速公路基础设施智能监测与预警平台,桥隧设施的基础数据、电子档案等;应用本平台开展巡养护工作,系统自动生成各类巡检、养护维修文档、合格测量定位应用本平台开展城市桥梁隧道定期检测工作,针对边坡的监测...",
  16. },
  17. {
  18. id: 2,
  19. title: "数字城市新基建解决方案",
  20. date: "2024-05-24",
  21. description:
  22. '"数字城市",是在新一代信息技术加速发展的背景下,充分运用物联网、云计算、光网络、移动互联网等技术手段,对公共服务、社会管理、产业运作等活动的各种需求做出智能的响应,将政务、商业、运输、通信、医疗、能源等城市运...',
  23. },
  24. {
  25. id: 3,
  26. title: "数字孪生可视化平台解决方案",
  27. date: "2024-05-20",
  28. description:
  29. "数字孪生可视化通过高起点规划、高质量建设、高品质管理运维的原则,为用户提供一种身临其境的现场信息体验模式。通过实景摄影制作模型,直观且真实地还原现场风貌;通过模型加载和漫游,使用户沉浸于现场体验;同时,通过...",
  30. },
  31. {
  32. id: 4,
  33. title: "水库大坝智慧监测解决方案-产品页",
  34. date: "2024-05-24",
  35. description:
  36. "中科盛阳雨水情测报与大坝安全监测系统由水库智能感知、物联网信息通信、云端智慧监控管理平台组成。小型水库的在线监控具有库位、雨量、视频、渗流渗压、应力应变、裂缝监测等数据自动采集、分析、上报功能,自动预警...",
  37. },
  38. {
  39. id: 5,
  40. title: "智慧环保监测系统解决方案20240513",
  41. date: "2024-05-16",
  42. description:
  43. "智慧环保监测系统由数据采集、传输、存储、显示、控制及应用五大模块组成。数据采集:主要由各类环保检测传感器、摄像机、动环主机、显示屏、支架组成,可选择一体化集成设备,也可以根据现场实际需求灵活配置。本次园区建设...",
  44. },
  45. {
  46. id: 6,
  47. title: "智慧园区解决方案",
  48. date: "2024-05-16",
  49. description:
  50. "在城市化进程不断加速的同时,传统园区建设也逐渐面临着各种挑战和困境。为适应新的发展需求,智慧园区应运而生。智慧园区是指互联网和物联网等新一代信息化技术在园区管理、服务等方面的应用,通过数字化转型,建立智能化的...",
  51. },
  52. {
  53. id: 7,
  54. title: "智能交通管理系统解决方案",
  55. date: "2024-05-15",
  56. description:
  57. "智能交通管理系统通过先进的信息技术、数据通信传输技术、电子传感技术、控制技术及计算机技术等有效地集成运用于整个地面交通管理系统而建立的一种在大范围内、全方位发挥作用的,实时、准确、高效的综合交通运输管理系统...",
  58. },
  59. {
  60. id: 8,
  61. title: "智慧医疗信息化平台",
  62. date: "2024-05-12",
  63. description:
  64. "智慧医疗信息化平台是运用物联网、云计算、大数据、人工智能等新兴技术,构建覆盖诊前、诊中、诊后的线上线下一体化医疗服务模式,实现医疗资源的优化配置和医疗服务的智能化升级,为患者提供更加便民、高效的医疗健康服务...",
  65. },
  66. {
  67. id: 9,
  68. title: "工业互联网平台解决方案",
  69. date: "2024-05-10",
  70. description:
  71. "工业互联网平台是面向制造业数字化、网络化、智能化需求,构建基于海量数据采集、汇聚、分析的服务体系,支撑制造资源泛在连接、弹性供给、高效配置的工业云平台,包括边缘、平台(工业PaaS)、应用三大核心层级...",
  72. },
  73. ]
  74. const ITEMS_PER_PAGE = 6
  75. export default function Home() {
  76. const [currentPage, setCurrentPage] = useState(1)
  77. const totalPages = Math.ceil(solutionsData.length / ITEMS_PER_PAGE)
  78. const startIndex = (currentPage - 1) * ITEMS_PER_PAGE
  79. const currentItems = solutionsData.slice(startIndex, startIndex + ITEMS_PER_PAGE)
  80. const handlePageChange = (page: number) => {
  81. setCurrentPage(page)
  82. }
  83. return (
  84. <>
  85. <div>
  86. <Image src={"/assets/solutions/1.jpg"} alt={"banner"} width={1920} height={1080}/>
  87. </div>
  88. <div className={"py-6 sm:py-10"}>
  89. <MainTitle title={"解决方案"}/>
  90. </div>
  91. <div className="" style={{background: "linear-gradient(135deg, #f0f8ff 0%, #e6f3ff 100%)"}}>
  92. <div className="container mx-auto px-3 sm:px-4 py-4 sm:py-8">
  93. <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-6 mb-4 sm:mb-8">
  94. {currentItems.map((solution) => (
  95. <Card
  96. key={solution.id}
  97. className="h-full shadow-md hover:shadow-lg transition-shadow duration-300"
  98. style={{borderRadius: "12px"}}
  99. actions={[
  100. <Button
  101. type="link"
  102. icon={<ArrowRightOutlined/>}
  103. className="text-blue-600 hover:text-blue-800"
  104. key="more"
  105. >
  106. 了解更多
  107. </Button>,
  108. ]}
  109. >
  110. <div className="h-full flex flex-col">
  111. <div className="mb-2 sm:mb-3">
  112. <h3
  113. className="text-base sm:text-lg font-semibold text-gray-800 mb-1 sm:mb-2 line-clamp-2 leading-tight sm:leading-normal">
  114. {solution.title}
  115. </h3>
  116. <p className="text-xs sm:text-sm text-gray-500 mb-2 sm:mb-3">{solution.date}</p>
  117. </div>
  118. <div className="flex-1">
  119. <p className="text-gray-600 text-xs sm:text-sm leading-relaxed line-clamp-3 sm:line-clamp-4">
  120. {solution.description}
  121. </p>
  122. </div>
  123. </div>
  124. </Card>
  125. ))}
  126. </div>
  127. <div className="flex justify-center">
  128. <Pagination
  129. current={currentPage}
  130. total={solutionsData.length}
  131. pageSize={ITEMS_PER_PAGE}
  132. onChange={handlePageChange}
  133. showSizeChanger={false}
  134. showQuickJumper={false}
  135. showTotal={(total, range) => (
  136. <span className="hidden sm:inline">
  137. 第 {range[0]}-{range[1]} 条,共 {total} 条
  138. </span>
  139. )}
  140. className="mt-2 sm:mt-4"
  141. size="small"
  142. responsive
  143. />
  144. </div>
  145. </div>
  146. </div>
  147. </>
  148. )
  149. }