hero.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <template>
  2. <section class="hero">
  3. <div class="hero-content">
  4. <div class="hero-text">
  5. <div class="hero-title">智慧社区整体解决方案</div>
  6. <div class="hero-subtitle">绘家科技助力物业管理数字化转型,提升服务品质与业主满意度。</div>
  7. <div class="hero-metrics">
  8. <div class="metric">
  9. <div class="metric-value">300+</div>
  10. <div class="metric-label">服务客户</div>
  11. </div>
  12. <div class="metric">
  13. <div class="metric-value">800+</div>
  14. <div class="metric-label">管理小区</div>
  15. </div>
  16. <div class="metric">
  17. <div class="metric-value">50w+</div>
  18. <div class="metric-label">管理房屋</div>
  19. </div>
  20. </div>
  21. <div class="hero-actions">
  22. <button class="btn-primary hero-btn-primary">查看方案</button>
  23. <button class="hero-btn-outline" @click="openConsultation">免费咨询</button>
  24. </div>
  25. </div>
  26. </div>
  27. </section>
  28. </template>
  29. <script setup lang="ts">
  30. const { openConsultation } = useConsultation()
  31. </script>
  32. <style scoped lang="scss">
  33. .hero {
  34. @apply h-680px relative overflow-hidden;
  35. @apply lt-sm:w-full lt-sm:h-auto lt-sm:aspect-[750/880];
  36. background-size: cover;
  37. background-position: center;
  38. background-image: url('@/assets/images/banner.png');
  39. @screen lt-sm {
  40. @apply w-full h-auto;
  41. aspect-ratio: 750/880;
  42. background-image: url('@/assets/images/banner-mobile.png');
  43. background-size: 100% 100%;
  44. background-repeat: no-repeat;
  45. background-position: center;
  46. }
  47. .hero-content {
  48. @extend %landing-container;
  49. @apply flex items-center pb-48px pt-200px;
  50. @apply lt-sm:pt-80px;
  51. }
  52. .hero-text {
  53. @apply text-left w-full;
  54. @apply lt-sm:text-center;
  55. }
  56. .hero-metrics {
  57. @apply mt-35px flex items-center gap-48px;
  58. @apply lt-sm:justify-center lt-sm:mt-20px lt-sm:gap-76px;
  59. }
  60. .hero-title {
  61. @apply font-s-48px font-semibold text-#000000;
  62. @apply lt-sm:font-s-56px;
  63. }
  64. .hero-subtitle {
  65. @apply font-s-18px text-#091221/70;
  66. @apply lt-sm:mt-12px lt-sm:font-s-26px lt-sm:px-25px;
  67. @apply lt-xs:px-0;
  68. }
  69. .hero-actions {
  70. @apply mt-35px flex items-center gap-16px;
  71. @apply lt-sm:justify-center lt-sm:absolute lt-sm:bottom-80px lt-sm:left-1/2 lt-sm:-translate-x-1/2;
  72. }
  73. .hero-btn-primary {
  74. @apply w-127px h-56px rounded-8px text-white font-s-18px pf-sc-semibold;
  75. @apply lt-sm:w-168px lt-sm:h-71px lt-sm:font-s-24px lt-sm:rounded-8px;
  76. }
  77. .hero-btn-outline {
  78. @apply w-127px h-56px bg-white border-#0F67F8 border-1 rounded-8px hover:opacity-80 font-s-18px font-semibold text-#0F67F8;
  79. @apply lt-sm:w-168px lt-sm:h-71px lt-sm:font-s-24px lt-sm:rounded-8px;
  80. }
  81. .metric {
  82. @apply flex items-start flex-col;
  83. @apply lt-sm:items-center;
  84. .metric-value {
  85. @apply font-s-32px font-semibold text-#0F67F8;
  86. @apply lt-sm:font-s-52px;
  87. }
  88. .metric-label {
  89. @apply font-s-14px text-#384146;
  90. @apply lt-sm:font-s-24px;
  91. }
  92. }
  93. }
  94. .btn-primary {
  95. @apply bg-gradient-to-r from-[#779EFF] to-[#0A50FF];
  96. border: none;
  97. outline: none;
  98. &:hover {
  99. opacity: 0.8;
  100. }
  101. }
  102. </style>