<template> 
 | 
  <div :class="['authentication-home-item', { isJBR }]"> 
 | 
    <div class="authentication-home-item-top"> 
 | 
      <img class="authentication-home-item-icon" :src="icon" /> 
 | 
      <div class="authentication-home-item-title-wrapper"> 
 | 
        <div class="authentication-home-item-title"> 
 | 
          <div class="authentication-home-item-title-text"> 
 | 
            {{ title }} 
 | 
          </div> 
 | 
          <slot name="title-extra"></slot> 
 | 
        </div> 
 | 
        <div class="authentication-home-item-subtitle">您需要准备</div> 
 | 
      </div> 
 | 
      <img :src="IconArrow" alt="" class="authentication-home-item-arrow" /> 
 | 
    </div> 
 | 
    <div class="authentication-home-item-info"> 
 | 
      <div class="authentication-home-item-info-row" v-for="(infoItem, index) in info" :key="index"> 
 | 
        <div class="authentication-home-item-info-item" v-for="(item, i) in infoItem" :key="i"> 
 | 
          <div class="authentication-home-item-info-item-dot"></div> 
 | 
          <div class="authentication-home-item-info-item-text">{{ item }}</div> 
 | 
        </div> 
 | 
      </div> 
 | 
    </div> 
 | 
  </div> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
import IconArrow from '@/assets/authentication/icon-arrow.png'; 
 | 
  
 | 
defineOptions({ 
 | 
  name: 'authenticationHomeItem', 
 | 
}); 
 | 
  
 | 
type Props = { 
 | 
  title?: string; 
 | 
  isJBR?: boolean; 
 | 
  icon?: string; 
 | 
  info?: string[][]; 
 | 
}; 
 | 
  
 | 
const props = withDefaults(defineProps<Props>(), { 
 | 
  info: () => [], 
 | 
}); 
 | 
</script> 
 | 
  
 | 
<style lang="scss"> 
 | 
@import '@/styles/common.scss'; 
 | 
  
 | 
.authentication-home-item { 
 | 
  background-color: #fff; 
 | 
  padding: 36px 24px 32px; 
 | 
  border-radius: 32px; 
 | 
  position: relative; 
 | 
  z-index: 1; 
 | 
  margin-bottom: 32px; 
 | 
  
 | 
  &::before { 
 | 
    content: ''; 
 | 
    position: absolute; 
 | 
    top: 0; 
 | 
    left: 0; 
 | 
    width: 100%; 
 | 
    height: 80px; 
 | 
    background: linear-gradient(180deg, #eff6ff 0%, rgba(239, 246, 255, 0) 100%); 
 | 
    border-radius: 30px 30px 0px 0px; 
 | 
    z-index: -1; 
 | 
  } 
 | 
  
 | 
  &.isJBR { 
 | 
    &::before { 
 | 
      background: linear-gradient(180deg, #fff7f7 0%, rgba(255, 247, 247, 0) 100%); 
 | 
    } 
 | 
  } 
 | 
  
 | 
  .authentication-home-item-top { 
 | 
    display: flex; 
 | 
    align-items: center; 
 | 
    margin-bottom: 40px; 
 | 
  
 | 
    .authentication-home-item-icon { 
 | 
      width: 72px; 
 | 
      height: 72px; 
 | 
      margin-right: 16px; 
 | 
    } 
 | 
  
 | 
    .authentication-home-item-title-wrapper { 
 | 
      flex: 1; 
 | 
      min-width: 0; 
 | 
  
 | 
      .authentication-home-item-title { 
 | 
        font-weight: 600; 
 | 
        font-size: 32px; 
 | 
        line-height: 44px; 
 | 
        display: flex; 
 | 
        align-items: center; 
 | 
  
 | 
        .authentication-home-item-title-text { 
 | 
          color: boleGetCssVar('text-color', 'primary'); 
 | 
        } 
 | 
      } 
 | 
  
 | 
      .authentication-home-item-subtitle { 
 | 
        font-weight: 400; 
 | 
        font-size: 24px; 
 | 
        color: boleGetCssVar('text-color', 'regular'); 
 | 
        line-height: 34px; 
 | 
      } 
 | 
    } 
 | 
  
 | 
    .authentication-home-item-arrow { 
 | 
      width: 32px; 
 | 
      height: 32px; 
 | 
    } 
 | 
  } 
 | 
  
 | 
  .authentication-home-item-info { 
 | 
    background: #f9fbff; 
 | 
    border-radius: 8px; 
 | 
    padding: 24px; 
 | 
    display: flex; 
 | 
    flex-wrap: wrap; 
 | 
  
 | 
    .authentication-home-item-info-row { 
 | 
      display: flex; 
 | 
      align-items: center; 
 | 
      margin-bottom: 16px; 
 | 
  
 | 
      &:last-child { 
 | 
        margin-bottom: 0; 
 | 
      } 
 | 
    } 
 | 
  
 | 
    .authentication-home-item-info-item { 
 | 
      display: flex; 
 | 
      align-items: center; 
 | 
      margin-right: 24px; 
 | 
  
 | 
      &:last-child { 
 | 
        margin-right: 0; 
 | 
      } 
 | 
  
 | 
      .authentication-home-item-info-item-dot { 
 | 
        width: 8px; 
 | 
        height: 8px; 
 | 
        background: #7bb0f6; 
 | 
        border-radius: 50%; 
 | 
        margin-right: 16px; 
 | 
      } 
 | 
  
 | 
      .authentication-home-item-info-item-text { 
 | 
        font-weight: 400; 
 | 
        font-size: 24px; 
 | 
        color: boleGetCssVar('text-color', 'primary'); 
 | 
        line-height: 34px; 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</style> 
 |