| <template> | 
|   <div class="list-wrap"> | 
|     <a-typography-title class="block-title" :heading="6"> | 
|       {{ $t('cardList.tab.title.content') }} | 
|     </a-typography-title> | 
|     <a-row class="list-row" :gutter="24"> | 
|       <a-col | 
|         :xs="12" | 
|         :sm="12" | 
|         :md="12" | 
|         :lg="6" | 
|         :xl="6" | 
|         :xxl="6" | 
|         class="list-col" | 
|       > | 
|         <div class="card-wrap empty-wrap"> | 
|           <a-card :bordered="false" hoverable> | 
|             <a-result :status="null" :title="$t('cardList.content.action')"> | 
|               <template #icon> | 
|                 <icon-plus style="font-size: 20px" /> | 
|               </template> | 
|             </a-result> | 
|           </a-card> | 
|         </div> | 
|       </a-col> | 
|       <a-col | 
|         v-for="item in renderData" | 
|         :key="item.id" | 
|         class="list-col" | 
|         :xs="12" | 
|         :sm="12" | 
|         :md="12" | 
|         :lg="6" | 
|         :xl="6" | 
|         :xxl="6" | 
|       > | 
|         <CardWrap | 
|           :loading="loading" | 
|           :title="item.title" | 
|           :description="item.description" | 
|           :default-value="item.enable" | 
|           :action-type="item.actionType" | 
|           :icon="item.icon" | 
|           :open-txt="$t('cardList.content.inspection')" | 
|           :close-txt="$t('cardList.content.delete')" | 
|           :show-tag="false" | 
|         > | 
|           <a-descriptions | 
|             style="margin-top: 16px" | 
|             :data="item.data" | 
|             layout="inline-horizontal" | 
|             :column="2" | 
|           /> | 
|           <template #skeleton> | 
|             <a-skeleton :animation="true"> | 
|               <a-skeleton-line | 
|                 :widths="['50%', '50%', '100%', '40%']" | 
|                 :rows="4" | 
|               /> | 
|               <a-skeleton-line :widths="['40%']" :rows="1" /> | 
|             </a-skeleton> | 
|           </template> | 
|         </CardWrap> | 
|       </a-col> | 
|     </a-row> | 
|   </div> | 
| </template> | 
|   | 
| <script lang="ts" setup> | 
|   import { queryInspectionList, ServiceRecord } from '@/api/list'; | 
|   import useRequest from '@/hooks/request'; | 
|   import CardWrap from './card-wrap.vue'; | 
|   | 
|   const defaultValue: ServiceRecord[] = new Array(3).fill({}); | 
|   const { loading, response: renderData } = useRequest<ServiceRecord[]>( | 
|     queryInspectionList, | 
|     defaultValue | 
|   ); | 
| </script> | 
|   | 
| <style scoped lang="less"> | 
|   .card-wrap { | 
|     height: 100%; | 
|     transition: all 0.3s; | 
|     border: 1px solid var(--color-neutral-3); | 
|     &:hover { | 
|       transform: translateY(-4px); | 
|     } | 
|     :deep(.arco-card-meta-description) { | 
|       color: rgb(var(--gray-6)); | 
|       .arco-descriptions-item-label-inline { | 
|         font-weight: normal; | 
|         font-size: 12px; | 
|         color: rgb(var(--gray-6)); | 
|       } | 
|       .arco-descriptions-item-value-inline { | 
|         color: rgb(var(--gray-8)); | 
|       } | 
|     } | 
|   } | 
|   .empty-wrap { | 
|     height: 200px; | 
|     border-radius: 4px; | 
|     :deep(.arco-card) { | 
|       height: 100%; | 
|       display: flex; | 
|       align-items: center; | 
|       justify-content: center; | 
|       border-radius: 4px; | 
|       .arco-result-title { | 
|         color: rgb(var(--gray-6)); | 
|       } | 
|     } | 
|   } | 
| </style> |