page.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use client";
  2. import React from "react";
  3. import Link from "next/link";
  4. const subsystems = [
  5. {
  6. name: "城市生命线驾驶舱",
  7. img: "/1.png",
  8. url: '/test5',
  9. },
  10. {
  11. name: "生命线预警联动处置平台",
  12. img: "/2.png",
  13. url: '/test6',
  14. },
  15. {
  16. name: "生命线物联网平台",
  17. img: "/3.png",
  18. url: '/test7',
  19. },
  20. {
  21. name: "燃气管网安全运行监测子系统",
  22. img: "/4.png",
  23. url: '/test8',
  24. },
  25. {
  26. name: "供水管网安全运行监测子系统",
  27. img: "/5.png",
  28. url: '/test9',
  29. },
  30. {
  31. name: "排水管网安全运行监测子系统",
  32. img: "/6.png",
  33. url: '/test10',
  34. },
  35. {
  36. name: "窨井盖安全运行监测子系统",
  37. img: "/7.png",
  38. url: '/test11',
  39. },
  40. ];
  41. export default function CityLifelinePortal() {
  42. return (
  43. <div className="min-h-full w-full bg-slate-50 p-10 font-sans flex flex-col">
  44. <div className="flex-1 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-10">
  45. {subsystems.map((s) => (
  46. <Link key={s.name} href={s.url}>
  47. <div
  48. 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"
  49. >
  50. <div className="w-full h-56 overflow-hidden">
  51. <img src={s.img} alt={s.name} className="w-full h-full object-cover"/>
  52. </div>
  53. <div className="p-6 flex flex-col items-center justify-center text-center">
  54. <div className="text-xl font-semibold text-slate-800 mb-3">{s.name}</div>
  55. <div className="text-slate-500 text-base">点击进入</div>
  56. </div>
  57. </div>
  58. </Link>
  59. ))}
  60. </div>
  61. </div>
  62. );
  63. }