From f10cf167372f2d8c4c0e14f42f361d7ab96d8347 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 03 七月 2026 13:59:00 +0800
Subject: [PATCH] Merge branch 'dev_pro2.0' of http://114.132.189.42:9002/r/mom-pro2-before into dev_pro2.0
---
src/views/mes/pd/project/modules/workflow-timeline.vue | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/src/views/mes/pd/project/modules/workflow-timeline.vue b/src/views/mes/pd/project/modules/workflow-timeline.vue
new file mode 100644
index 0000000..58a6d8a
--- /dev/null
+++ b/src/views/mes/pd/project/modules/workflow-timeline.vue
@@ -0,0 +1,53 @@
+<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>
--
Gitblit v1.9.3