From b4e3bcda9d02f40702758485d894def270201ee6 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 22 六月 2026 19:27:16 +0800
Subject: [PATCH] feat: 工艺路线自定义完成日期

---
 src/views/salesManagement/salesLedger/components/ProcessFlowConfigSelectDialog.vue |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/components/ProcessFlowConfigSelectDialog.vue b/src/views/salesManagement/salesLedger/components/ProcessFlowConfigSelectDialog.vue
index 606d86c..69e7350 100644
--- a/src/views/salesManagement/salesLedger/components/ProcessFlowConfigSelectDialog.vue
+++ b/src/views/salesManagement/salesLedger/components/ProcessFlowConfigSelectDialog.vue
@@ -60,6 +60,17 @@
               <div class="process-diagram-status" :class="{ 'is-done': Number(step.isCompleted) === 1 }">
                 {{ Number(step.isCompleted) === 1 ? "宸插畬鎴�" : "鏈畬鎴�" }}
               </div>
+              <div v-if="step.isCompleted" style="margin-top: 8px;">
+                <el-date-picker
+                  v-model="step.completedTime"
+                  type="datetime"
+                  placeholder="閫夋嫨鏃堕棿"
+                  format="YYYY-MM-DD HH:mm:ss"
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                  size="small"
+                  style="width: 100%;"
+                />
+              </div>
             </div>
             <div v-if="idx < steps.length - 1" class="process-diagram-arrow">鈫�</div>
           </div>
@@ -205,8 +216,16 @@
   await fetchRouteSteps(selectedRouteId.value);
 };
 
+const formatDateTime = (date) => {
+  const pad = (n) => (n < 10 ? '0' + n : n);
+  return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
+};
+
 const handleStepCompletedChange = (step) => {
   step.isCompleted = Boolean(step.isCompleted);
+  if (step.isCompleted && !step.completedTime) {
+    step.completedTime = proxy?.parseTime ? proxy.parseTime(new Date()) : formatDateTime(new Date());
+  }
 };
 
 const handleClose = () => {
@@ -227,6 +246,7 @@
       recordList: steps.value.map((step) => ({
         processRouteItemId: step.processRouteItemId,
         isCompleted: Number(step.isCompleted ?? 0),
+        completedTime: step.completedTime || (step.isCompleted ? (proxy?.parseTime ? proxy.parseTime(new Date()) : formatDateTime(new Date())) : null)
       })),
     });
   } catch (e) {
@@ -253,9 +273,9 @@
 }
 
 .process-diagram-node {
-  width: 160px;
-  min-width: 160px;
-  height: 78px;
+  width: 180px;
+  min-width: 180px;
+  min-height: 78px;
   border: 1px solid #ebeef5;
   border-radius: 10px;
   background: #fff;

--
Gitblit v1.9.3