|
@@ -0,0 +1,150 @@
|
|
|
+<template>
|
|
|
+ <div :class="prefixCls">
|
|
|
+ <a-page-header title="标准列表" :ghost="false" />
|
|
|
+ <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>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script lang="ts">
|
|
|
+ import { Progress } from 'ant-design-vue';
|
|
|
+ import { defineComponent } from 'vue';
|
|
|
+ import Icon from '/@/components/Icon/index';
|
|
|
+ import { cardList } from './data';
|
|
|
+
|
|
|
+ export default defineComponent({
|
|
|
+ components: { Icon, Progress },
|
|
|
+ setup() {
|
|
|
+ return {
|
|
|
+ prefixCls: 'list-basic',
|
|
|
+ list: cardList,
|
|
|
+ pagination: {
|
|
|
+ show: true,
|
|
|
+ pageSize: 3,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ });
|
|
|
+</script>
|
|
|
+<style lang="less" scoped>
|
|
|
+ .list-basic {
|
|
|
+ &__top {
|
|
|
+ padding: 24px;
|
|
|
+ margin: 24px 24px 0 24px;
|
|
|
+ text-align: center;
|
|
|
+ background: #fff;
|
|
|
+
|
|
|
+ &-col {
|
|
|
+ &:not(:last-child) {
|
|
|
+ border-right: 1px dashed rgba(206, 206, 206, 0.4);
|
|
|
+ }
|
|
|
+
|
|
|
+ div {
|
|
|
+ margin-bottom: 12px;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 22px;
|
|
|
+ color: rgba(0, 0, 0, 0.45);
|
|
|
+ }
|
|
|
+
|
|
|
+ p {
|
|
|
+ margin: 0;
|
|
|
+ font-size: 24px;
|
|
|
+ line-height: 32px;
|
|
|
+ color: rgba(0, 0, 0, 0.85);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &__content {
|
|
|
+ padding: 24px;
|
|
|
+ margin: 12px 24px;
|
|
|
+ background: #fff;
|
|
|
+
|
|
|
+ .list {
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon {
|
|
|
+ font-size: 40px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .extra {
|
|
|
+ position: absolute;
|
|
|
+ top: 20px;
|
|
|
+ right: 15px;
|
|
|
+ font-weight: normal;
|
|
|
+ color: #1890ff;
|
|
|
+ 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>
|