123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <template>
- <PageWrapper :class="prefixCls" title="标准列表">
- <div :class="`${prefixCls}__top`">
- <a-row :gutter="12">
- <a-col :span="8" :class="`${prefixCls}__top-col`">
- <div>我的待办</div>
- <p>8个任务</p>
- </a-col>
- <a-col :span="8" :class="`${prefixCls}__top-col`">
- <div>本周任务平均处理时间</div>
- <p>32分钟</p>
- </a-col>
- <a-col :span="8" :class="`${prefixCls}__top-col`">
- <div>本周完成任务数</div>
- <p>24个任务</p>
- </a-col>
- </a-row>
- </div>
- <div :class="`${prefixCls}__content`">
- <a-list :pagination="pagination">
- <template v-for="item in list" :key="item.id">
- <a-list-item class="list">
- <a-list-item-meta>
- <template #avatar>
- <Icon class="icon" v-if="item.icon" :icon="item.icon" :color="item.color" />
- </template>
- <template #title>
- <span>{{ item.title }}</span>
- <div class="extra" v-if="item.extra">
- {{ item.extra }}
- </div>
- </template>
- <template #description>
- <div class="description">
- {{ item.description }}
- </div>
- <div class="info">
- <div><span>Owner</span>{{ item.author }}</div>
- <div><span>开始时间</span>{{ item.datetime }}</div>
- </div>
- <div class="progress">
- <Progress :percent="item.percent" status="active" />
- </div>
- </template>
- </a-list-item-meta>
- </a-list-item>
- </template>
- </a-list>
- </div>
- </PageWrapper>
- </template>
- <script lang="ts">
- import { Progress, Row, Col, List } from 'ant-design-vue';
- import { defineComponent } from 'vue';
- import Icon from '@/components/Icon/Icon.vue';
- import { cardList } from './data';
- import { PageWrapper } from '/@/components/Page';
- export default defineComponent({
- components: {
- Icon,
- Progress,
- PageWrapper,
- [List.name]: List,
- [List.Item.name]: List.Item,
- AListItemMeta: List.Item.Meta,
- [Row.name]: Row,
- [Col.name]: Col,
- },
- setup() {
- return {
- prefixCls: 'list-basic',
- list: cardList,
- pagination: {
- show: true,
- pageSize: 3,
- },
- };
- },
- });
- </script>
- <style lang="less" scoped>
- .list-basic {
- &__top {
- padding: 24px;
- background-color: @component-background;
- text-align: center;
- &-col {
- &:not(:last-child) {
- border-right: 1px dashed @border-color-base;
- }
- div {
- margin-bottom: 12px;
- color: @text-color;
- font-size: 14px;
- line-height: 22px;
- }
- p {
- margin: 0;
- color: @text-color;
- font-size: 24px;
- line-height: 32px;
- }
- }
- }
- &__content {
- margin-top: 12px;
- padding: 24px;
- background-color: @component-background;
- .list {
- position: relative;
- }
- .icon {
- font-size: 40px !important;
- }
- .extra {
- position: absolute;
- top: 20px;
- right: 15px;
- color: @primary-color;
- font-weight: normal;
- cursor: pointer;
- }
- .description {
- display: inline-block;
- width: 40%;
- }
- .info {
- display: inline-block;
- width: 30%;
- text-align: center;
- div {
- display: inline-block;
- padding: 0 20px;
- span {
- display: block;
- }
- }
- }
- .progress {
- display: inline-block;
- width: 15%;
- vertical-align: top;
- }
- }
- }
- </style>
|