From f6427b5dea54bbb8761fade351e9f86404b2fb61 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期一, 30 三月 2026 10:22:59 +0800
Subject: [PATCH] fix: 规格型号搜索

---
 src/pages/qualityManagement/nonconformingManagement/form.vue |   61 ++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 5 deletions(-)

diff --git a/src/pages/qualityManagement/nonconformingManagement/form.vue b/src/pages/qualityManagement/nonconformingManagement/form.vue
index 7acb67d..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,16 +367,57 @@
   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,
     productName: d.productName,
-    productModelId: d.productModelId,
+    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,
@@ -387,7 +429,9 @@
 
 const validate = () => {
   if (!form.productId) return toast('璇烽�夋嫨浜у搧鍚嶇О'), false
-  if (!form.productModelId) return toast('璇烽�夋嫨瑙勬牸鍨嬪彿'), false
+  // 瀵归綈 PC 绔細缂栬緫鎬佸厑璁镐粎鍥炴樉鍨嬪彿鏂囨湰锛堝巻鍙叉暟鎹彲鑳界己灏� productModelId锛�
+  if (!isEdit.value && !form.productModelId) return toast('璇烽�夋嫨瑙勬牸鍨嬪彿'), false
+  if (isEdit.value && !form.productModelId && !form.model) return toast('璇烽�夋嫨瑙勬牸鍨嬪彿'), false
   if (!form.batchNo) return toast('璇疯緭鍏ユ壒鍙�'), false
   if (form.checkType === undefined || form.checkType === '') return toast('璇烽�夋嫨妫�楠岀被鍨�'), false
   if (!form.checkName) return toast('璇烽�夋嫨妫�楠屽憳'), false
@@ -421,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