page.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use client";
  2. import React from "react";
  3. const subsystems = [
  4. {
  5. name: "城市生命线驾驶舱",
  6. img: "/1.png",
  7. },
  8. {
  9. name: "生命线预警联动处置平台",
  10. img: "/2.png",
  11. },
  12. {
  13. name: "生命线物联网平台",
  14. img: "/3.png",
  15. },
  16. {
  17. name: "燃气管网安全运行监测子系统",
  18. img: "/4.png",
  19. },
  20. {
  21. name: "供水管网安全运行监测子系统",
  22. img: "/5.png",
  23. },
  24. {
  25. name: "排水管网安全运行监测子系统",
  26. img: "/6.png",
  27. },
  28. {
  29. name: "窨井盖安全运行监测子系统",
  30. img: "/7.png",
  31. },
  32. ];
  33. export default function CityLifelinePortal() {
  34. return (
  35. <div className="min-h-full w-full bg-slate-50 p-10 font-sans flex flex-col">
  36. <div className="flex-1 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-10">
  37. {subsystems.map((s) => (
  38. <div
  39. key={s.name}
  40. className="bg-white rounded-3xl shadow-xl cursor-pointer hover:shadow-2xl hover:bg-sky-50 transition transform hover:scale-110 flex flex-col overflow-hidden border-4 border-transparent hover:border-sky-200"
  41. onClick={() => alert(`进入 ${s.name}`)}
  42. >
  43. <div className="w-full h-56 overflow-hidden">
  44. <img src={s.img} alt={s.name} className="w-full h-full object-cover" />
  45. </div>
  46. <div className="p-6 flex flex-col items-center justify-center text-center">
  47. <div className="text-xl font-semibold text-slate-800 mb-3">{s.name}</div>
  48. <div className="text-slate-500 text-base">点击进入</div>
  49. </div>
  50. </div>
  51. ))}
  52. </div>
  53. </div>
  54. );
  55. }