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