<script lang="ts" setup>
|
import type { MesPdWorkflowApi } from '#/api/mes/pd/workflow';
|
|
import { onMounted, ref, watch } from 'vue';
|
|
import { Steps } from 'ant-design-vue';
|
|
import { getPdWorkflowList } from '#/api/mes/pd/workflow';
|
|
const props = defineProps<{
|
projectId: number;
|
}>();
|
|
const loading = ref(false);
|
const nodes = ref<MesPdWorkflowApi.WorkflowNode[]>([]);
|
const current = ref(0);
|
|
async function loadData() {
|
loading.value = true;
|
try {
|
nodes.value = await getPdWorkflowList(props.projectId);
|
const activeIndex = nodes.value.findIndex((item) => item.status !== 1);
|
current.value = activeIndex === -1 ? nodes.value.length : activeIndex;
|
} finally {
|
loading.value = false;
|
}
|
}
|
|
watch(
|
() => props.projectId,
|
() => loadData(),
|
{ immediate: true },
|
);
|
|
onMounted(loadData);
|
</script>
|
|
<template>
|
<Steps :current="current" direction="vertical" size="small">
|
<Steps.Step
|
v-for="node in nodes"
|
:key="node.id"
|
:description="node.remark"
|
:sub-title="node.operatorName"
|
:title="node.nodeName"
|
/>
|
<Steps.Step
|
v-if="!loading && nodes.length === 0"
|
description="暂无流程记录,保存项目后将自动生成"
|
title="待启动"
|
/>
|
</Steps>
|
</template>
|