hsy
7 天以前 77b083d347eb8e75eb29a4146238b3f7304489f6
src/views/mes/pd/project/modules/workflow-timeline.vue
@@ -3,22 +3,35 @@
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>