electripper-v2-ui/src/views/bst/index/components/TodoList.vue
2025-04-06 18:20:25 +08:00

102 lines
2.5 KiB
Vue

<template>
<el-card class="todo-list" v-loading="loading" shadow="never" header="待办事项">
<div class="todo-item" @click="$router.push('/money/withdraw?status=11')">
<div class="label"><i class="el-icon-wallet"/> 提现申请</div>
<div class="value">
<count-to :start-val="0" :end-val="stat.withdrawCount" :duration="3000"/>
</div>
<div class="unit">条</div>
</div>
<div class="todo-item" @click="$router.push('/money/withdraw?status=11')">
<div class="label"><i class="el-icon-refresh"/> 还车审核</div>
<div class="value">
<count-to :start-val="0" :end-val="stat.withdrawCount" :duration="3000"/>
</div>
<div class="unit">条</div>
</div>
<div class="todo-item" @click="$router.push('/complaint/mchApply?status=0')">
<div class="label"><i class="el-icon-office-building"/> 商家加盟</div>
<div class="value">
<count-to :start-val="0" :end-val="stat.mchApplyCount" :duration="3000"/>
</div>
<div class="unit">条</div>
</div>
<div class="todo-item" @click="$router.push('/complaint/abnormal?status=1')">
<div class="label"><i class="el-icon-warning-outline"/> 待处理故障信息</div>
<div class="value">
<count-to :start-val="0" :end-val="stat.abnormalCount" :duration="3000"/>
</div>
<div class="unit">条</div>
</div>
</el-card>
</template>
<script>
import CountTo from 'vue-count-to'
export default {
name: 'TodoList',
components: {
CountTo
},
props: {
stat: {
type: Object,
default: () => ({})
}
},
data() {
return {
loading: false,
}
},
}
</script>
<style scoped lang="scss">
.todo-list {
position: relative;
width: 100%;
}
.todo-item {
position: relative;
width: 100%;
display: flex;
transition: .25s;
padding: 0.55em 1em;
cursor: pointer;
border-radius: 16px;
vertical-align: bottom;
background: #fff;
.value {
display: inline-block;
width: fit-content;
margin-left: 1em;
color: #165DFF;
font-size: 20px;
}
.label {
display: flex;
align-items: center;
color: #1D252F;
flex: 1;
i {
color: #165DFF;
font-size: 20px;
margin-right: 0.3em;
}
}
.unit {
display: inline-block;
margin-left: 0.5em;
font-size: 14px;
}
}
.todo-item:hover {
background: linear-gradient(180deg, #F2F9FE -3%, #E6F4FE 100%);
}
.todo-item:nth-child(n + 2) {
margin-top: 8px;
}
</style>