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