From f3f9531d797c3331ca366e0b7a5d9c6e93c10a8c Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 27 三月 2026 11:17:06 +0800
Subject: [PATCH] fix(产品结构): 修复单位产出数量精度并优化显示逻辑
---
src/views/productionManagement/productStructure/StructureEdit.vue | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/views/productionManagement/productStructure/StructureEdit.vue b/src/views/productionManagement/productStructure/StructureEdit.vue
index 4d07f5d..68d49fc 100644
--- a/src/views/productionManagement/productStructure/StructureEdit.vue
+++ b/src/views/productionManagement/productStructure/StructureEdit.vue
@@ -84,13 +84,15 @@
<el-form-item :prop="`dataList.${$index}.unitQuantity`"
:rules="[{ required: true, message: '璇疯緭鍏ュ崟浣嶄骇鍑烘墍闇�鏁伴噺', trigger: ['blur','change'] }]"
style="margin: 0">
- <el-input-number v-model="row.unitQuantity"
+ <el-input-number v-if="dataValue.isEdit"
+ v-model="row.unitQuantity"
:min="0"
- :precision="2"
+ :precision="3"
:step="1"
controls-position="right"
style="width: 100%"
:disabled="!dataValue.isEdit" />
+ <span v-else>{{ formatDecimalValue(row.unitQuantity) }}</span>
</el-form-item>
</template>
</el-table-column>
@@ -244,9 +246,25 @@
dataValue.showProductDialog = true;
};
+ const formatDecimalValue = (
+ value: number | string | null | undefined
+ ) => {
+ const numericValue = Number(value);
+ if (Number.isNaN(numericValue)) {
+ return value;
+ }
+ return Number(numericValue.toFixed(3));
+ };
+
+ const normalizeProductStructureList = (list: any[] = []) =>
+ list.map((item: any) => ({
+ ...item,
+ unitQuantity: formatDecimalValue(item.unitQuantity ?? 0),
+ }));
+
const fetchData = async () => {
const { data } = await queryList(props.record.id);
- dataValue.dataList = data;
+ dataValue.dataList = normalizeProductStructureList(data) as typeof dataValue.dataList;
};
const fetchProcessOptions = async () => {
@@ -272,8 +290,8 @@
if (valid) {
add({
parentId: props.record.id,
- productStructureList: dataValue.dataList || [],
- }).then(res => {
+ productStructureList: normalizeProductStructureList(dataValue.dataList as any[]),
+ }).then(() => {
ElMessage.success("淇濆瓨鎴愬姛");
visible.value = false;
dataValue.loading = false;
@@ -308,4 +326,4 @@
fetchData();
fetchProcessOptions();
});
-</script>
\ No newline at end of file
+</script>
--
Gitblit v1.9.3