| <template> | 
|   <div class="banner"> | 
|     <div class="banner-inner"> | 
|       <a-carousel class="carousel" animation-name="fade"> | 
|         <a-carousel-item v-for="item in carouselItem" :key="item.slogan"> | 
|           <div :key="item.slogan" class="carousel-item"> | 
|             <div class="carousel-title">{{ item.slogan }}</div> | 
|             <div class="carousel-sub-title">{{ item.subSlogan }}</div> | 
|             <img class="carousel-image" :src="item.image" /> | 
|           </div> | 
|         </a-carousel-item> | 
|       </a-carousel> | 
|     </div> | 
|   </div> | 
| </template> | 
|   | 
| <script lang="ts" setup> | 
|   import { computed } from 'vue'; | 
|   import { useI18n } from 'vue-i18n'; | 
|   import bannerImage from '@/assets/images/login-banner.png'; | 
|   | 
|   const { t } = useI18n(); | 
|   const carouselItem = computed(() => [ | 
|     { | 
|       slogan: t('login.banner.slogan1'), | 
|       subSlogan: t('login.banner.subSlogan1'), | 
|       image: bannerImage, | 
|     }, | 
|     // { | 
|     //   slogan: t('login.banner.slogan2'), | 
|     //   subSlogan: t('login.banner.subSlogan2'), | 
|     //   image: bannerImage, | 
|     // }, | 
|     // { | 
|     //   slogan: t('login.banner.slogan3'), | 
|     //   subSlogan: t('login.banner.subSlogan3'), | 
|     //   image: bannerImage, | 
|     // }, | 
|   ]); | 
| </script> | 
|   | 
| <style lang="less" scoped> | 
|   .banner { | 
|     display: flex; | 
|     align-items: center; | 
|     justify-content: center; | 
|   | 
|     &-inner { | 
|       flex: 1; | 
|       height: 100%; | 
|     } | 
|   } | 
|   | 
|   .carousel { | 
|     height: 100%; | 
|   | 
|     &-item { | 
|       display: flex; | 
|       flex-direction: column; | 
|       align-items: center; | 
|       justify-content: center; | 
|       height: 100%; | 
|     } | 
|   | 
|     &-title { | 
|       color: var(--color-fill-1); | 
|       font-weight: 500; | 
|       font-size: 20px; | 
|       line-height: 28px; | 
|     } | 
|   | 
|     &-sub-title { | 
|       margin-top: 8px; | 
|       color: var(--color-text-3); | 
|       font-size: 14px; | 
|       line-height: 22px; | 
|     } | 
|   | 
|     &-image { | 
|       width: 320px; | 
|       margin-top: 30px; | 
|     } | 
|   } | 
| </style> |