From 9ced1289954c75ae3c8f55b6a1da16d9518853ae Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 20 三月 2026 15:14:15 +0800
Subject: [PATCH] fix: 生产详细接口对接90%
---
src/views/productionManagement/productionOrder/Detail/index.vue | 77 ++++++++++++++++++++++++++++++++------
1 files changed, 65 insertions(+), 12 deletions(-)
diff --git a/src/views/productionManagement/productionOrder/Detail/index.vue b/src/views/productionManagement/productionOrder/Detail/index.vue
index 7b7c2e2..0b5858c 100644
--- a/src/views/productionManagement/productionOrder/Detail/index.vue
+++ b/src/views/productionManagement/productionOrder/Detail/index.vue
@@ -50,7 +50,13 @@
}"
@click="selectProcess(idx)"
>
- <span v-if="idx === active" class="step-current-badge">鐢熶骇涓�</span>
+ <span
+ v-if="p?.status"
+ class="step-status-badge"
+ :class="`step-status-badge-${p.status}`"
+ >
+ {{ statusTagText(p.status) }}
+ </span>
<div v-if="p.status !== 'wait'" class="current-progress">
<div class="current-progress-head">
<span class="current-progress-title">宸ュ簭杩涘害</span>
@@ -120,7 +126,7 @@
<el-table-column label="浜у嚭鏁伴噺" prop="outputQty" min-width="110" />
<el-table-column label="鍚堟牸鏁伴噺" prop="qualifiedQty" min-width="110" />
<el-table-column label="涓嶈壇鏁伴噺" prop="badQty" min-width="110" />
- <el-table-column label="涓嶅悎鏍煎鐞�" prop="remark" min-width="160" show-overflow-tooltip />
+ <el-table-column label="涓嶅悎鏍煎鐞�" prop="dealResult" min-width="160" show-overflow-tooltip />
<el-table-column label="鎿嶄綔" width="150" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="viewReportRecord(row)">
@@ -173,14 +179,13 @@
const normalizeStatus = (statusText, completionStatus, inputQty, outputQty) => {
const s = statusText === null || statusText === undefined ? "" : String(statusText).trim();
- const lower = s.toLowerCase();
- // 甯歌涓枃鐘舵�佸厹搴曪細杩涜涓�/宸插畬鎴�/绛夊緟
- if (s.includes("杩涜") || lower.includes("process") || lower.includes("doing") || lower.includes("running")) return "process";
- if (s.includes("瀹屾垚") || s.includes("宸插畬") || lower.includes("success") || lower.includes("done") || lower.includes("completed")) return "success";
- if (s.includes("寰�") || s.includes("鏈紑濮�") || lower.includes("wait") || lower.includes("pending") || lower.includes("not_start")) return "wait";
+ // 鎸夋帴鍙e疄闄呬笁绉嶇姸鎬侊細宸茬敓鎴� / 鐢熶骇涓� / 寰呯敓浜�
+ if (s.includes("鐢熶骇涓�")) return "process";
+ if (s.includes("寰呯敓浜�")) return "wait";
+ if (s.includes("宸茬敓浜�")) return "success";
- // 鐢� completionStatus 鍋氬厹搴曪紙涓�鑸负 0~100锛�
+ // 鍏滃簳锛氫粛鎸� completionStatus 鍋� 0~100 鍒ゆ柇
const cs = Number(completionStatus);
if (Number.isFinite(cs)) {
if (cs >= 100) return "success";
@@ -188,7 +193,7 @@
return "wait";
}
- // 鏈�鍚庡啀鐢ㄦ暟閲忓厹搴�
+ // 鍐嶅厹搴曪細鐢ㄦ暟閲忓垽鏂�
if (Number.isFinite(inputQty) && inputQty > 0 && Number.isFinite(outputQty) && outputQty >= inputQty) return "success";
if (Number.isFinite(outputQty) && outputQty > 0) return "process";
return "wait";
@@ -278,7 +283,7 @@
outputQty: Number.isFinite(outputQty) ? outputQty : 0,
qualifiedQty: Math.max(0, Number.isFinite(qualifiedQty) ? qualifiedQty : 0),
badQty: Number.isFinite(badQty) ? Math.max(0, badQty) : 0,
- remark: item?.remark ?? item?.remarkText ?? item?.description ?? "",
+ dealResult: item?.dealResult ?? item?.dealResultText ?? item?.description ?? "",
};
};
@@ -334,11 +339,26 @@
return Math.round(n);
};
+const statusTagText = (status) => {
+ if (status === "success") return "宸茬敓浜�";
+ if (status === "process") return "鐢熶骇涓�";
+ if (status === "wait") return "寰呯敓浜�";
+ return String(status ?? "");
+};
+
// el-steps: active 涓哄綋鍓嶈繘琛屼腑鐨勬楠や笅鏍囷紙妯℃嫙锛�
const active = computed(() => {
const list = processes.value || [];
- const idx = list.findIndex((p) => p.status === "process");
- return idx >= 0 ? idx : 0;
+ // 婵�娲荤姸鎬佷负鈥滃緟鐢熶骇鈥濈殑涓婁竴鏉�
+ const firstWaitIdx = list.findIndex((p) => p?.status === "wait");
+ if (firstWaitIdx > 0) return firstWaitIdx - 1;
+
+ // 濡傛灉娌℃湁寰呯敓浜э細
+ // - 涓旀渶鍚庝竴鏉℃槸鐢熶骇涓細婵�娲绘渶鍚庝竴鏉�
+ // - 鍚﹀垯锛氭病鏈夋縺娲绘牱寮�
+ const lastIdx = list.length - 1;
+ if (lastIdx >= 0 && list[lastIdx]?.status === "process") return lastIdx;
+ return null;
});
// 宸ュ簭杩涘害锛氱敤浜у嚭/鎶曞叆浼扮畻锛圲I 鍏堣窇閫氾紝鍚庣画鎸夌湡瀹炶鍒欐浛鎹級
@@ -563,6 +583,39 @@
pointer-events: none;
}
+ .step-status-badge {
+ position: absolute;
+ top: 8px;
+ right: 10px;
+ z-index: 1;
+ font-size: 11px;
+ font-weight: 600;
+ border-radius: 4px;
+ padding: 2px 8px;
+ line-height: 1.2;
+ pointer-events: none;
+ white-space: nowrap;
+ border: 1px solid transparent;
+ }
+
+ .step-status-badge-success {
+ color: #67c23a;
+ background: rgba(103, 194, 58, 0.14);
+ border-color: rgba(103, 194, 58, 0.35);
+ }
+
+ .step-status-badge-process {
+ color: #b88230;
+ background: rgba(230, 162, 60, 0.18);
+ border-color: rgba(230, 162, 60, 0.45);
+ }
+
+ .step-status-badge-wait {
+ color: #909399;
+ background: rgba(144, 147, 153, 0.12);
+ border-color: rgba(144, 147, 153, 0.35);
+ }
+
.right-panel {
border: 1px solid #ebeef5;
border-radius: 10px;
--
Gitblit v1.9.3