buhuazhen
2026-03-27 f3f9531d797c3331ca366e0b7a5d9c6e93c10a8c
src/views/productionManagement/productStructure/Detail/index.vue
@@ -101,13 +101,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>
@@ -232,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;
  }
};
@@ -268,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',
            })
@@ -316,4 +334,4 @@
  fetchData();
  fetchProcessOptions();
});
</script>
</script>