干燥机配套车间生产管理系统/云平台服务端
baoshiwei
2023-05-24 beca65f4d01ca07c358102a35b949c2a4f277afe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<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 } from 'ant-design-vue'
    import { defineComponent } from 'vue'
    import Icon from '/@/components/Icon/index'
    import { cardList } from './data'
    import { PageWrapper } from '/@/components/Page'
    import { List } from 'ant-design-vue'
 
    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;
            text-align: center;
            background-color: @component-background;
 
            &-col {
                &:not(:last-child) {
                    border-right: 1px dashed @border-color-base;
                }
 
                div {
                    margin-bottom: 12px;
                    font-size: 14px;
                    line-height: 22px;
                    color: @text-color;
                }
 
                p {
                    margin: 0;
                    font-size: 24px;
                    line-height: 32px;
                    color: @text-color;
                }
            }
        }
 
        &__content {
            padding: 24px;
            margin-top: 12px;
            background-color: @component-background;
 
            .list {
                position: relative;
            }
 
            .icon {
                font-size: 40px !important;
            }
 
            .extra {
                position: absolute;
                top: 20px;
                right: 15px;
                font-weight: normal;
                color: @primary-color;
                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>