From e8b30f7b0156600f3e4703a9c4de793cdf7729c8 Mon Sep 17 00:00:00 2001
From: ZN <zhang_12370@163.com>
Date: 星期三, 01 四月 2026 14:06:12 +0800
Subject: [PATCH] fix: 修复采购发票台账、付款台账、不合格品管理和协同审批表单的问题

---
 src/views/productionManagement/productStructure/Detail/index.vue |   53 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/src/views/productionManagement/productStructure/Detail/index.vue b/src/views/productionManagement/productStructure/Detail/index.vue
index 20a472b..a3e6175 100644
--- a/src/views/productionManagement/productStructure/Detail/index.vue
+++ b/src/views/productionManagement/productStructure/Detail/index.vue
@@ -1,4 +1,4 @@
-<template>
+<template xmlns="">
   <div class="app-container">
     <PageHeader content="浜у搧缁撴瀯璇︽儏">
       <template #right-button>
@@ -77,19 +77,39 @@
                   </el-form-item>
                 </template>
               </el-table-column>
+              <el-table-column prop="materialType"
+                               label="鏉愭枡绫诲瀷">
+                <template #default="{ row, $index }">
+                  <el-form-item
+                                :prop="`dataList.${$index}.materialType`"
+                                :rules="[{ required: true, message: '璇烽�夋嫨鏉愭枡绫诲瀷', trigger: ['blur','change'] }]"
+                                style="margin: 0">
+                    <el-select v-model="row.materialType"
+                               placeholder="璇烽�夋嫨鏉愭枡绫诲瀷"
+                               clearable
+                               :disabled="!dataValue.isEdit"
+                               style="width: 100%">
+                      <el-option label="涓绘枡" value="0"/>
+                      <el-option label="杈呮枡" value="1"/>
+                    </el-select>
+                  </el-form-item>
+                </template>
+              </el-table-column>
               <el-table-column prop="unitQuantity"
                                label="鍗曚綅浜у嚭鎵�闇�鏁伴噺">
                 <template #default="{ row, $index }">
                   <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>
@@ -214,15 +234,31 @@
   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 () => {
   if (isOrderPage.value) {
     // 璁㈠崟鎯呭喌锛氫娇鐢ㄨ鍗曠殑浜у搧缁撴瀯鎺ュ彛
     const { data } = await listProcessBom({ orderId: routeOrderId.value });
-    dataValue.dataList = data || [];
+    dataValue.dataList = normalizeProductStructureList(data) as typeof dataValue.dataList;
   } else {
     // 闈炶鍗曟儏鍐碉細浣跨敤鍘熸潵鐨勬帴鍙�
     const { data } = await queryList(routeId.value);
-    dataValue.dataList = data || [];
+    dataValue.dataList = normalizeProductStructureList(data) as typeof dataValue.dataList;
   }
 };
 
@@ -250,8 +286,8 @@
         if (valid) {
           add({
             bomId: routeId.value,
-            productStructureList: dataValue.dataList || [],
-          }).then(res => {
+            productStructureList: normalizeProductStructureList(dataValue.dataList as any[]),
+          }).then(() => {
             router.push({
               path: '/productionManagement/productionManagement/productStructure/index',
             })
@@ -275,6 +311,7 @@
     unitQuantity: 0,
     demandedQuantity: 0,
     unit: "",
+    materialType: undefined,
   });
 };
 
@@ -297,4 +334,4 @@
   fetchData();
   fetchProcessOptions();
 });
-</script>
\ No newline at end of file
+</script>

--
Gitblit v1.9.3