| | |
| | | |
| | | import { Steps } from 'ant-design-vue'; |
| | | |
| | | const STEPS = ['待发布', '待上传', '待审核', '待归档', '已归档'] as const; |
| | | import { MesPdProjectStatusEnum } from '#/packages/constants/src'; |
| | | |
| | | const STEPS = ['待发布', '待上传', '待审核', '审批中', '待归档', '已归档'] as const; |
| | | |
| | | // 状态值 → 时间线步骤索引(审批中=5 插在待审核之后) |
| | | const STATUS_ORDER = [ |
| | | MesPdProjectStatusEnum.PENDING_PUBLISH, |
| | | MesPdProjectStatusEnum.PENDING_UPLOAD, |
| | | MesPdProjectStatusEnum.PENDING_AUDIT, |
| | | MesPdProjectStatusEnum.APPROVING, |
| | | MesPdProjectStatusEnum.PENDING_ARCHIVE, |
| | | MesPdProjectStatusEnum.ARCHIVED, |
| | | ]; |
| | | |
| | | const props = defineProps<{ |
| | | /** 项目当前状态 (0-4) */ |
| | | /** 项目当前状态 */ |
| | | status: number; |
| | | }>(); |
| | | |
| | | const current = computed(() => { |
| | | // 状态值即当前已完成到第几步:0=第一步进行中,4=全部完成 |
| | | return props.status; |
| | | // 根据状态值映射到时间线步骤索引 |
| | | const index = STATUS_ORDER.indexOf(props.status); |
| | | return index >= 0 ? index : 0; |
| | | }); |
| | | |
| | | const nodes = computed(() => |
| | | STEPS.map((name, index) => ({ |
| | | title: name, |
| | | status: index < props.status ? 'finish' : index === props.status ? 'process' : 'wait', |
| | | status: index < current.value ? 'finish' : index === current.value ? 'process' : 'wait', |
| | | })), |
| | | ); |
| | | </script> |