From b4660addf0c30b6d07ec826f0802d50998367db8 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 24 三月 2026 16:12:04 +0800
Subject: [PATCH] fix:首页质量统计数据优化
---
src/views/inventoryManagement/stockManagement/Subtract.vue | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/src/views/inventoryManagement/stockManagement/Subtract.vue b/src/views/inventoryManagement/stockManagement/Subtract.vue
index d23c974..f709c2d 100644
--- a/src/views/inventoryManagement/stockManagement/Subtract.vue
+++ b/src/views/inventoryManagement/stockManagement/Subtract.vue
@@ -40,6 +40,7 @@
<el-form-item
label="杞︾墝鍙�"
prop="licensePlateNo"
+ :rules="[{ required: true, message: '璇疯緭鍏ヨ溅鐗屽彿', trigger: ['blur','change'] }]"
>
<el-input v-model="formState.licensePlateNo" />
</el-form-item>
@@ -47,6 +48,7 @@
<el-form-item
label="姣涢噸(鍚�)"
prop="grossWeight"
+ :rules="[{ required: true, message: '璇疯緭鍏ユ瘺閲�', trigger: ['blur','change'] }]"
>
<el-input-number
v-model="formState.grossWeight"
@@ -60,6 +62,7 @@
<el-form-item
label="鐨噸(鍚�)"
prop="tareWeight"
+ :rules="[{ required: true, message: '璇疯緭鍏ョ毊閲�', trigger: ['blur','change'] }]"
>
<el-input-number
v-model="formState.tareWeight"
@@ -73,6 +76,7 @@
<el-form-item
label="鍑�閲�(鍚�)"
prop="netWeight"
+ :rules="[{ required: true, message: '鍑�閲嶇敱姣涢噸鍜岀毊閲嶈嚜鍔ㄨ绠�', trigger: ['blur','change'] }]"
>
<el-input-number
v-model="formState.netWeight"
@@ -86,6 +90,7 @@
<el-form-item
label="杩囩鏃ユ湡"
prop="weighingDate"
+ :rules="[{ required: true, message: '璇烽�夋嫨杩囩鏃ユ湡', trigger: 'change' }]"
>
<el-date-picker
style="width: 100%"
@@ -101,6 +106,7 @@
<el-form-item
label="杩囩鍛�"
prop="weighingOperator"
+ :rules="[{ required: true, message: '璇疯緭鍏ヨ繃纾呭憳', trigger: ['blur','change'] }]"
>
<el-input v-model="formState.weighingOperator" />
</el-form-item>
@@ -158,11 +164,18 @@
return props.record.parentName === '鍘熸潗鏂�';
})
+const ledgerNetWeight = computed(() => {
+ const n = Number(props.record?.netWeight ?? 0);
+ return Number.isFinite(n) ? n : 0;
+});
+
const initFormData = () => {
if (props.record) {
formState.value = {
...props.record,
}
+ // 鍒濆鍖栨椂涔熻Е鍙戜竴娆″噣閲嶈绠楋紝閬垮厤鎺ュ彛鍥炲~鍚庡噣閲嶄负绌�
+ computeNetWeight()
}
}
@@ -221,7 +234,20 @@
if (grossWeight != null && tareWeight != null) {
const net = Number(grossWeight) - Number(tareWeight);
const safeNet = Number(net.toFixed(2));
- formState.value.netWeight = safeNet > 0 ? safeNet : 0;
+ const computedNet = safeNet > 0 ? safeNet : 0;
+ const maxNet = ledgerNetWeight.value;
+ if (Number.isFinite(maxNet) && maxNet > 0 && computedNet > maxNet) {
+ const cappedNet = Number(maxNet.toFixed(2));
+ formState.value.netWeight = cappedNet;
+ // 鍚屾姣涢噸锛屼繚鎸侊細鍑�閲� = 姣涢噸 - 鐨噸
+ const tare = Number(tareWeight);
+ if (Number.isFinite(tare)) {
+ formState.value.grossWeight = Number((tare + cappedNet).toFixed(2));
+ }
+ proxy?.$modal?.msgWarning?.(`棰嗙敤鍑�閲嶄笉鑳借秴杩囧彴璐﹀噣閲嶏紙${maxNet.toFixed(2)} 鍚級`);
+ return;
+ }
+ formState.value.netWeight = computedNet;
} else {
formState.value.netWeight = undefined;
}
@@ -255,6 +281,12 @@
proxy.$modal.msgError("璇烽�夋嫨瑙勬牸");
return;
}
+ const maxNet = ledgerNetWeight.value;
+ const usedNet = Number(formState.value.netWeight ?? 0);
+ if (Number.isFinite(maxNet) && maxNet > 0 && Number.isFinite(usedNet) && usedNet > maxNet) {
+ proxy.$modal.msgError(`棰嗙敤鍑�閲嶄笉鑳借秴杩囧彴璐﹀噣閲嶏紙${maxNet.toFixed(2)} 鍚級`);
+ return;
+ }
if (props.type === 'qualified') {
subtractStockInventory(formState.value).then(res => {
// 鍏抽棴妯℃�佹
--
Gitblit v1.9.3