From 50f0b958546caee7f929b28c1f5ad0daa2637751 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 25 三月 2026 09:01:14 +0800
Subject: [PATCH] fix: 优化质量管理

---
 src/pages/qualityManagement/nonconformingManagement/form.vue |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/src/pages/qualityManagement/nonconformingManagement/form.vue b/src/pages/qualityManagement/nonconformingManagement/form.vue
index a28ae54..f13702b 100644
--- a/src/pages/qualityManagement/nonconformingManagement/form.vue
+++ b/src/pages/qualityManagement/nonconformingManagement/form.vue
@@ -189,6 +189,7 @@
 const pageType = ref('add') // add | edit
 const id = ref('')
 const submitting = ref(false)
+const editFallback = ref({})
 
 const isEdit = computed(() => pageType.value === 'edit')
 const pageTitle = computed(() => (isEdit.value ? '缂栬緫涓嶅悎鏍肩鐞�' : '鏂板涓嶅悎鏍肩鐞�'))
@@ -366,6 +367,46 @@
   if (!id.value) return
   const res = await getQualityUnqualifiedInfo(id.value)
   const d = res?.data || {}
+  const rawCheckType =
+    d.checkType ??
+    d.inspectType ??
+    d.check_type ??
+    d.inspect_type ??
+    d.checkTypeLabel ??
+    d.inspectTypeLabel
+  let normalizedCheckType = undefined
+  if (!(rawCheckType === undefined || rawCheckType === null || rawCheckType === '')) {
+    const rawText = String(rawCheckType).trim()
+    if (rawText === '鍏ュ巶妫�') normalizedCheckType = 0
+    else if (rawText === '杞﹂棿妫�') normalizedCheckType = 1
+    else if (rawText === '鍑哄巶妫�') normalizedCheckType = 2
+    else {
+      const n = Number(rawText)
+      normalizedCheckType = Number.isNaN(n) ? undefined : n
+    }
+  }
+  const normalizedBatchNo =
+    d.batchNo ??
+    d.batchNO ??
+    d.batchNum ??
+    d.batchNumber ??
+    d.batch ??
+    d.inboundBatches ??
+    d.lotNo ??
+    d.lotNumber ??
+    editFallback.value?.batchNo ??
+    ''
+  const fallbackCheckTypeRaw = editFallback.value?.checkType
+  if (normalizedCheckType === undefined && !(fallbackCheckTypeRaw === undefined || fallbackCheckTypeRaw === null || fallbackCheckTypeRaw === '')) {
+    const fallbackText = String(fallbackCheckTypeRaw).trim()
+    if (fallbackText === '鍏ュ巶妫�') normalizedCheckType = 0
+    else if (fallbackText === '杞﹂棿妫�') normalizedCheckType = 1
+    else if (fallbackText === '鍑哄巶妫�') normalizedCheckType = 2
+    else {
+      const n = Number(fallbackText)
+      normalizedCheckType = Number.isNaN(n) ? undefined : n
+    }
+  }
   Object.assign(form, {
     id: d.id,
     productId: d.productId,
@@ -373,9 +414,10 @@
     productModelId: d.productModelId ?? d.modelId ?? d.productModeId ?? '',
     model: d.model,
     unit: d.unit,
-    batchNo: d.batchNo,
-    // 鍏煎鍚庣杩斿洖瀛楁锛氫紭鍏� checkType锛屽叾娆� inspectType
-    checkType: d.checkType ?? d.inspectType,
+    // 鍏煎鍚庣杩斿洖瀛楁锛歜atchNo/batchNum/lotNo 绛�
+    batchNo: normalizedBatchNo,
+    // 鍏煎鍚庣杩斿洖瀛楁锛歝heckType/inspectType 绛夛紝缁熶竴涓� number
+    checkType: normalizedCheckType,
     checkName: d.checkName,
     checkTime: d.checkTime,
     defectivePhenomena: d.defectivePhenomena,
@@ -423,6 +465,13 @@
 onLoad(async (options) => {
   pageType.value = options?.type || 'add'
   id.value = options?.id || ''
+  if (options?.fallback) {
+    try {
+      editFallback.value = JSON.parse(decodeURIComponent(options.fallback))
+    } catch (e) {
+      editFallback.value = {}
+    }
+  }
   form.dealResult = getScrapDealResultValue()
   await loadUsers()
   if (isEdit.value) {

--
Gitblit v1.9.3