<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> 
 |