| <template> | 
|   <div class="pro-list-item"> | 
|     <div class="pro-list-item-inner"> | 
|       <img v-if="icon" :src="icon" class="pro-list-item-icon" /> | 
|       <div class="pro-list-item-title">{{ title }}</div> | 
|       <slot name="extra"></slot> | 
|       <img v-if="showArrow" :src="IconArrow" class="pro-list-item-arrow" /> | 
|     </div> | 
|   </div> | 
| </template> | 
|   | 
| <script setup lang="ts"> | 
| import IconArrow from '@/assets/setting/icon-arrow.png'; | 
|   | 
| defineOptions({ | 
|   name: 'ListItem', | 
| }); | 
|   | 
| type Props = { | 
|   icon?: string; | 
|   title?: string; | 
|   showArrow?: boolean; | 
| }; | 
|   | 
| const props = withDefaults(defineProps<Props>(), { | 
|   showArrow: true, | 
| }); | 
| </script> | 
|   | 
| <style lang="scss"> | 
| @import '@/styles/common.scss'; | 
|   | 
| .pro-list-item { | 
|   padding: 0 boleGetCssVar('size', 'body-padding-h'); | 
|   | 
|   .pro-list-item-inner { | 
|     height: 102px; | 
|     border-bottom: 1px solid #f6f6f6; | 
|     display: flex; | 
|     align-items: center; | 
|   | 
|     .pro-list-item-icon { | 
|       width: 40px; | 
|       height: 40px; | 
|       margin-right: 16px; | 
|     } | 
|   | 
|     .pro-list-item-title { | 
|       font-weight: 400; | 
|       font-size: 28px; | 
|       color: boleGetCssVar('text-color', 'primary'); | 
|       line-height: 40px; | 
|       flex: 1; | 
|       min-width: 0; | 
|       @include ellipsis; | 
|     } | 
|   | 
|     .pro-list-item-arrow { | 
|       width: 32px; | 
|       height: 32px; | 
|     } | 
|   } | 
| } | 
| </style> |