98 lines
1.7 KiB
Vue
Raw Normal View History

2022-10-17 10:13:22 +08:00
<!-- 步骤条 -->
<template>
<div class="list progress">
<div class="list-item progress-item" v-for="(item, index) in list" :key="index">
<div :class="['progress-item-dot', { active: item.state }]"></div>
<div class="info">
<span class="label">{{ item.endTime }}</span>
<span class="value">{{ item.subitemProjectName }}</span>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
list: {
type: Array,
default: () => []
}
}
}
</script>
<style lang="scss" scoped>
.progress {
display: flex;
align-items: center;
width: 100%;
height: 100%;
.progress-item {
position: relative;
display: flex;
flex-shrink: 0;
flex-direction: column;
align-items: center;
width: 190px;
color: #fff;
.progress-item-dot {
width: 10px;
height: 10px;
background-color: #fff;
border-radius: 50%;
&::after {
content: '';
position: absolute;
top: 4px;
transform: translateX(-99%);
display: block;
width: 190px;
height: 2px;
background: #fff;
}
&.active {
&::after {
background: #6dc6d8;
}
}
&::before {
content: '';
position: relative;
z-index: 9;
display: block;
width: 10px;
height: 10px;
background-color: #fff;
border-radius: 50%;
}
}
.info {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 10px;
height: 60px;
.label {
margin-bottom: 20px;
}
}
&:first-child {
.progress-item-dot {
&::after {
display: none;
}
}
}
}
}
</style>