From 20dbdee5a002544f6a4e12b5e39e338052418782 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 26 十二月 2025 10:36:27 +0800
Subject: [PATCH] fix: 完成成品单丝报工逻辑
---
src/pages/production/wire/report/reportManage.vue | 85 ++++++++++++++++++++++++++++++++++++------
1 files changed, 73 insertions(+), 12 deletions(-)
diff --git a/src/pages/production/wire/report/reportManage.vue b/src/pages/production/wire/report/reportManage.vue
index c7e13b1..7df3b0f 100644
--- a/src/pages/production/wire/report/reportManage.vue
+++ b/src/pages/production/wire/report/reportManage.vue
@@ -272,6 +272,9 @@
const oneLength = ref();
const allChildDataList = ref<any[]>([]);
const wireDetail = ref<any>(null);
+const isMonofil = ref();
+const meterWeight = ref();
+const totalWeight = ref();
// 鏂板寮规鐩稿叧
const addDialogVisible = ref(false);
@@ -344,20 +347,33 @@
const handleAdd = () => {
const lastChild = childList.value[childList.value.length - 1];
- // 浠庤鎯呮暟鎹腑鑾峰彇绫抽噸
- const meterWeight =
+ // 浠庤鎯呮暟鎹腑鑾峰彇绫抽噸锛屼紭鍏堜娇鐢ㄤ紶鍏ョ殑鍙傛暟
+ const meterWeightValue =
+ Number(meterWeight.value) ||
Number(wireDetail.value?.meterWeight) ||
Number(wireDetail.value?.weight) ||
Number(wireDetail.value?.theoryWeight) ||
0;
+ // 濡傛灉鏄垚鍝佸崟涓濓紝鏍规嵁鍏紡鑷姩璁$畻鐩橀暱锛�(totalWeight/meterWeight)*1000
+ let calculatedLength = "";
+ if (
+ isMonofil.value &&
+ (isMonofil.value === 1 || isMonofil.value === "1" || isMonofil.value === true)
+ ) {
+ const totalWeightValue = Number(totalWeight.value) || 0;
+ if (totalWeightValue > 0 && meterWeightValue > 0) {
+ calculatedLength = ((totalWeightValue / meterWeightValue) * 1000).toFixed(2);
+ }
+ }
+
// 鍒濆鍖栨柊鏁版嵁锛屽鏋滄湁鏈�鍚庝竴鏉℃暟鎹紝浣跨敤鍏跺�间綔涓洪粯璁ゅ��
newChildData.value = {
dishModel: lastChild?.dishModel || "",
- actuallyLength: lastChild?.actuallyLength || "",
+ actuallyLength: calculatedLength || lastChild?.actuallyLength || "",
actuallyWeight: lastChild?.actuallyWeight || "",
isJoint: lastChild?.isJoint || 0,
- meterWeight: meterWeight,
+ meterWeight: meterWeightValue,
};
addDialogVisible.value = true;
@@ -530,28 +546,68 @@
}
};
-// 鑷姩璁$畻瀹為檯閲嶉噺
+// 鑷姩璁$畻瀹為檯閲嶉噺锛堟牴鎹暱搴︼級
const handleCalculateWeight = (row: any) => {
// 浠� newChildData 瀵硅薄涓幏鍙栫背閲�
- const meterWeight = Number(row.meterWeight) || 0;
+ const meterWeightValue = Number(row.meterWeight) || 0;
const actuallyLength = Number(row.actuallyLength);
- if (meterWeight > 0 && actuallyLength > 0) {
- const calculatedWeight = (meterWeight * actuallyLength) / 1000;
+ if (meterWeightValue > 0 && actuallyLength > 0) {
+ const calculatedWeight = (meterWeightValue * actuallyLength) / 1000;
row.actuallyWeight = Number(calculatedWeight.toFixed(3));
}
- console.log("row", meterWeight, actuallyLength);
+ console.log("row", meterWeightValue, actuallyLength);
};
-// 鐩戝惉瀹為檯闀垮害鍙樺寲锛岃嚜鍔ㄨ绠楅噸閲�
+// 鑷姩璁$畻瀹為檯闀垮害锛堟牴鎹噸閲忥紝浠呮垚鍝佸崟涓濓級
+const handleCalculateLength = (row: any) => {
+ // 濡傛灉鏄垚鍝佸崟涓濓紝鏍规嵁閲嶉噺璁$畻闀垮害
+ if (
+ isMonofil.value &&
+ (isMonofil.value === 1 || isMonofil.value === "1" || isMonofil.value === true)
+ ) {
+ const meterWeightValue = Number(meterWeight.value) || Number(row.meterWeight) || 0;
+ const actuallyWeight = Number(row.actuallyWeight);
+
+ if (meterWeightValue > 0 && actuallyWeight > 0) {
+ const calculatedLength = (actuallyWeight / meterWeightValue) * 1000;
+ row.actuallyLength = Number(calculatedLength.toFixed(2));
+ }
+ }
+};
+
+// 鐩戝惉瀹為檯闀垮害鍙樺寲锛岃嚜鍔ㄨ绠楅噸閲忥紙闈炴垚鍝佸崟涓濇椂锛�
watch(
() => newChildData.value.actuallyLength,
(newValue, oldValue) => {
- console.log("瀹為檯闀垮害鍙樺寲:", { newValue, oldValue, newChildData: newChildData.value });
- if (newValue && String(newValue).trim() !== "") {
+ console.log("瀹為檯闀垮害鍙樺寲:", { newValue, oldValue, isMonofil: isMonofil.value });
+ // 濡傛灉涓嶆槸鎴愬搧鍗曚笣锛屾墠鏍规嵁闀垮害璁$畻閲嶉噺
+ if (
+ newValue &&
+ String(newValue).trim() !== "" &&
+ !(
+ isMonofil.value &&
+ (isMonofil.value === 1 || isMonofil.value === "1" || isMonofil.value === true)
+ )
+ ) {
// 浣跨敤 nextTick 纭繚 v-model 宸茬粡鏇存柊
nextTick(() => {
handleCalculateWeight(newChildData.value);
+ });
+ }
+ },
+ { immediate: false, deep: true }
+);
+
+// 鐩戝惉瀹為檯閲嶉噺鍙樺寲锛岃嚜鍔ㄨ绠楅暱搴︼紙浠呮垚鍝佸崟涓濓級
+watch(
+ () => newChildData.value.actuallyWeight,
+ (newValue, oldValue) => {
+ console.log("瀹為檯閲嶉噺鍙樺寲:", { newValue, oldValue, isMonofil: isMonofil.value });
+ if (newValue && String(newValue).trim() !== "") {
+ // 浣跨敤 nextTick 纭繚 v-model 宸茬粡鏇存柊
+ nextTick(() => {
+ handleCalculateLength(newChildData.value);
});
}
},
@@ -571,6 +627,11 @@
supplier: options.supplier,
};
+ // 鎺ユ敹浼犻�掔殑鍙傛暟
+ isMonofil.value = options.isMonofil;
+ meterWeight.value = options.meterWeight;
+ totalWeight.value = options.totalWeight;
+
await getDetailData(options.wireId);
await getData();
});
--
Gitblit v1.9.3