You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.0 KiB
83 lines
2.0 KiB
<template> |
|
<view class="flex"> |
|
<view v-for="(item, index) in steps" class="step text-center" :active="index == activeIndex" :completed="index < activeIndex"> |
|
<text>{{ index + 1 }}</text> |
|
<text>{{ item }}</text> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script setup> |
|
import { inject, computed } from "vue"; |
|
const steps = ['信件签收', '联系群众', '接访群众', '核查办理', '办结审批'] |
|
const flowNode = inject("flowNode"); |
|
const activeIndex = computed(() => { |
|
if (flowNode.value.key === "contact_writer") { |
|
return 1; |
|
} |
|
if (flowNode.value.key === "interview_writer") { |
|
return 2; |
|
} |
|
if (flowNode.value.key === "verify") { |
|
return 3; |
|
} |
|
if ( |
|
flowNode.value.key === "three_leader_approval" || |
|
flowNode.value.key === "second_approval" || |
|
flowNode.value.key === "second_deputy_approval" || |
|
flowNode.value.key === "second_leader_approval" || |
|
flowNode.value.key === "second_reporting" || |
|
flowNode.value.key === "first_approval" || |
|
flowNode.value.key === "countersign" |
|
) { |
|
return 4; |
|
} |
|
if (flowNode.value.key === "completion") { |
|
return 5; |
|
} |
|
return 0; |
|
}) |
|
</script> |
|
|
|
<style scoped> |
|
.step { |
|
--background-color: var(--primary-color); |
|
width: 20%; |
|
color: #ACB7FF; |
|
line-height: 14px; |
|
padding: 3px 0; |
|
border-top: 1px solid #4B60E4; |
|
border-bottom: 1px solid #4B60E4; |
|
position: relative; |
|
background-color: var(--background-color); |
|
&:before { |
|
display: block; |
|
content: ''; |
|
height: 14.5px; |
|
width: 14.5px; |
|
position: absolute; |
|
top: 2px; |
|
right: -6px; |
|
border-top: 1px solid #4B60E4; |
|
border-right: 1px solid #4B60E4; |
|
transform: rotate(45deg); |
|
z-index: 1; |
|
background-color: var(--background-color);; |
|
} |
|
&:last-child::before { |
|
display: none; |
|
} |
|
&[active=true] { |
|
--background-color: #f40000; |
|
border-color: #FF7474; |
|
color: #fff; |
|
&:before { |
|
border-color: #FF7474; |
|
} |
|
} |
|
&[completed=true] { |
|
color: #fff; |
|
--background-color: #3A4DC1; |
|
} |
|
} |
|
</style> |