From a9ed2b5a1e4370ecf4c0d4f40d515daef0e999df Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 04 八月 2026 16:04:58 +0800
Subject: [PATCH] 1
---
src/views/productionManagement/workOrderManagement/index.vue | 62 ++++++++++++------------------
1 files changed, 25 insertions(+), 37 deletions(-)
diff --git a/src/views/productionManagement/workOrderManagement/index.vue b/src/views/productionManagement/workOrderManagement/index.vue
index d6811b8..b2ac432 100644
--- a/src/views/productionManagement/workOrderManagement/index.vue
+++ b/src/views/productionManagement/workOrderManagement/index.vue
@@ -133,7 +133,7 @@
<el-input v-model.number="reportForm.quantity"
type="number"
min="0"
- step="1"
+ step="0.0001"
style="width: 300px"
placeholder="璇疯緭鍏ョ敓浜у悎鏍兼暟閲�"
@input="handleQuantityInput" />
@@ -143,7 +143,7 @@
<el-input v-model.number="reportForm.scrapQty"
type="number"
min="0"
- step="1"
+ step="0.0001"
style="width: 300px"
placeholder="璇疯緭鍏ユ姤搴熸暟閲�"
@input="handleScrapQtyInput" />
@@ -245,6 +245,7 @@
<template #footer>
<span class="dialog-footer">
<el-button type="primary"
+ :loading="reportLoading"
@click="handleReport">纭畾</el-button>
<el-button @click="reportDialogVisible = false">鍙栨秷</el-button>
</span>
@@ -363,12 +364,12 @@
dataType: "action",
fixed: "right",
operation: [
- {
+ /*{
name: "娴佽浆鍗�",
clickFun: row => {
downloadAndPrintWorkOrder(row);
},
- },
+ },*/
{
name: "闄勪欢",
clickFun: row => {
@@ -414,6 +415,7 @@
const transferCardQrUrl = ref("");
const transferCardRowData = ref(null);
const reportDialogVisible = ref(false);
+ const reportLoading = ref(false);
const fileDialogVisible = ref(false);
const currentWorkOrderId = ref(null);
const reportFormRef = ref(null);
@@ -421,7 +423,7 @@
const reportForm = reactive({
planQuantity: 0,
quantity: null,
- scrapQty: null,
+ scrapQty: 0,
userName: "",
workOrderId: "",
reportWork: "",
@@ -445,8 +447,7 @@
return;
}
const num = Number(value);
- // 鏁存暟涓斿ぇ浜庣瓑浜�1
- if (isNaN(num) || !Number.isInteger(num) || num < 0) {
+ if (isNaN(num) || num < 0) {
callback(new Error("鐢熶骇鍚堟牸鏁伴噺蹇呴』澶т簬绛変簬0"));
return;
}
@@ -460,8 +461,7 @@
return;
}
const num = Number(value);
- // 鏁存暟涓斿ぇ浜庣瓑浜�0
- if (isNaN(num) || !Number.isInteger(num) || num < 0) {
+ if (isNaN(num) || num < 0) {
callback(new Error("鎶ュ簾鏁伴噺蹇呴』澶т簬绛変簬0"));
return;
}
@@ -484,22 +484,10 @@
if (isNaN(num)) {
return;
}
- // 濡傛灉灏忎簬1锛屾竻闄�
if (num < 0) {
reportForm.quantity = null;
return;
}
- // 濡傛灉鏄皬鏁板彇鏁存暟閮ㄥ垎
- /*if (!Number.isInteger(num)) {
- const intValue = Math.floor(num);
- // 濡傛灉鍙栨暣鍚庡皬浜�1锛屾竻闄�
- if (intValue < 0) {
- reportForm.quantity = null;
- return;
- }
- reportForm.quantity = intValue;
- return;
- }*/
reportForm.quantity = num;
};
@@ -510,21 +498,13 @@
return;
}
const num = Number(value);
- // 濡傛灉鏄疦aN锛屼繚鎸佸師鍊�
if (isNaN(num)) {
return;
}
- // 濡傛灉鏄礋鏁帮紝娓呴櫎杈撳叆
if (num < 0) {
reportForm.scrapQty = null;
return;
}
- // 濡傛灉鏄皬鏁帮紝鍙栨暣鏁伴儴鍒�
- if (!Number.isInteger(num)) {
- reportForm.scrapQty = Math.floor(num);
- return;
- }
- // 鏈夋晥鐨勯潪璐熸暣鏁帮紙鍖呮嫭0锛�
reportForm.scrapQty = num;
};
@@ -550,6 +530,12 @@
if (n <= 0) return 0;
if (n >= 100) return 100;
return Math.round(n);
+ };
+ const subtractQuantity = (minuend, subtrahend, precision = 4) => {
+ const factor = 10 ** precision;
+ const a = Math.round((Number(minuend) || 0) * factor);
+ const b = Math.round((Number(subtrahend) || 0) * factor);
+ return Math.max(0, (a - b) / factor);
};
const progressColor = percentage => {
const p = toProgressPercentage(percentage);
@@ -673,20 +659,18 @@
}
}
currentReportRowData.value = row;
- const planQuantity = Number(row.planQuantity || 0);
- const completeQuantity = Number(row.completeQuantity || 0);
- const remainingQuantity = Math.max(0, planQuantity - completeQuantity);
- reportForm.planQuantity = remainingQuantity;
+ reportForm.planQuantity = subtractQuantity(
+ row.planQuantity,
+ row.completeQuantity
+ );
reportForm.quantity =
row.quantity !== undefined && row.quantity !== null ? row.quantity : null;
reportForm.productProcessRouteItemId = row.productProcessRouteItemId;
reportForm.workOrderId = row.id;
reportForm.reportWork = row.reportWork;
reportForm.productMainId = row.productMainId;
- reportForm.scrapQty =
- row.scrapQty !== undefined && row.scrapQty !== null ? row.scrapQty : null;
- reportForm.productionOrderRoutingOperationId =
- row.productionOrderRoutingOperationId;
+ reportForm.scrapQty = 0;
+ reportForm.productionOrderRoutingOperationId = row.productionOrderRoutingOperationId;
reportForm.productionOrderId = row.productionOrderId;
if (row.type == 0) {
reportForm.workHour = row.workHour || 0;
@@ -796,6 +780,7 @@
productionOperationParamList: productionOperationParamList,
};
+ reportLoading.value = true;
addProductMain(submitParams)
.then(res => {
proxy.$modal.msgSuccess("鎶ュ伐鎴愬姛");
@@ -806,6 +791,9 @@
ElMessageBox.alert("鎶ュ伐澶辫触", "鎻愮ず", {
confirmButtonText: "纭畾",
});
+ })
+ .finally(() => {
+ reportLoading.value = false;
});
});
};
--
Gitblit v1.9.3