From e5aced11100ffd999b67dd0292cd5e9a662029d6 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期四, 30 四月 2026 13:17:21 +0800
Subject: [PATCH] 更新工序相关逻辑,改用部件类型字典 `product_process_type`,并调整界面显示和数据格式化以兼容新字段名

---
 src/views/qualityManagement/processInspection/components/formDia.vue |   46 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue
index 1b943e2..27e3d8a 100644
--- a/src/views/qualityManagement/processInspection/components/formDia.vue
+++ b/src/views/qualityManagement/processInspection/components/formDia.vue
@@ -9,8 +9,10 @@
       <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
         <el-row :gutter="30">
           <el-col :span="12">
-            <el-form-item label="宸ュ簭锛�" prop="process">
-              <el-input v-model="form.process" placeholder="璇疯緭鍏ュ伐搴�" clearable />
+            <el-form-item label="閮ㄤ欢绫诲瀷锛�" prop="process">
+              <el-select v-model="form.process" placeholder="璇烽�夋嫨閮ㄤ欢绫诲瀷" clearable :disabled="processQuantityDisabled" style="width: 100%">
+                <el-option v-for="item in processList" :key="item.id" :label="item.name" :value="item.id"/>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -65,7 +67,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2"/>
+              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2" :disabled="processQuantityDisabled"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -130,7 +132,7 @@
 </template>
 
 <script setup>
-import {ref, reactive, toRefs, getCurrentInstance, nextTick} from "vue";
+import {ref, reactive, toRefs, computed, getCurrentInstance, nextTick} from "vue";
 import {getOptions} from "@/api/procurementManagement/procurementLedger.js";
 import {modelList, productTreeList} from "@/api/basicData/product.js";
 import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js";
@@ -138,7 +140,10 @@
 import {userListNoPage} from "@/api/system/user.js";
 import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
 const { proxy } = getCurrentInstance()
+const { product_process_type } = proxy.useDict('product_process_type')
 const emit = defineEmits(['close'])
+
+
 
 const dialogFormVisible = ref(false);
 const operationType = ref('')
@@ -159,7 +164,7 @@
   },
   rules: {
     checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
-    process: [{ required: true, message: "璇疯緭鍏ュ伐搴�", trigger: "blur" }],
+    process: [{ required: true, message: "璇烽�夋嫨宸ュ簭", trigger: "change" }],
     checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     productModelId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
@@ -172,6 +177,19 @@
 });
 const userList = ref([]);
 const { form, rules } = toRefs(data);
+// 缂栬緫鏃讹細productMainId 鎴� purchaseLedgerId 浠讳竴鏈夊�煎垯宸ュ簭銆佹暟閲忕疆鐏�
+const processQuantityDisabled = computed(() => {
+  const v = form.value || {};
+  return !!(v.productMainId != null || v.purchaseLedgerId != null);
+});
+// 宸ュ簭/閮ㄤ欢涓嬫媺锛氭潵婧愪簬瀛楀吀 `product_process_type`
+// 瀛楀吀杩斿洖缁撴瀯锛歿 label, value }锛岃繖閲岀粺涓�鎴� { id, name }
+const processList = computed(() => {
+  return (product_process_type?.value || []).map(item => ({
+    id: item.value,
+    name: item.label
+  }))
+})
 const supplierList = ref([]);
 const productOptions = ref([]);
 const tableColumn = ref([
@@ -210,6 +228,7 @@
 	getOptions().then((res) => {
 		supplierList.value = res.data;
 	});
+	// 宸ュ簭/閮ㄤ欢涓嬫媺鐢卞瓧鍏� product_process_type 鑷姩鎻愪緵锛屾棤闇�鍐嶈姹傛帴鍙�
 	let userLists = await userListNoPage();
 	userList.value = userLists.data;
 	// 鍏堥噸缃〃鍗曟暟鎹紙淇濇寔瀛楁瀹屾暣锛岄伩鍏嶅脊绐楅娆℃覆鏌撴椂瑙﹀彂蹇呭~绾㈡鈥滈棯涓�涓嬧�濓級
@@ -257,6 +276,9 @@
 			let params = {
 				productId: currentProductId.value,
 				inspectType: 1,
+				// 瀛楀吀 product_process_type 鐨� value 浣滀负 processType 浼犲叆
+				processType: form.value.process || '',
+				// 鍏煎鏃у瓧娈碉紙濡傚悗绔粛浣跨敤 process锛�
 				process: form.value.process || ''
 			}
 			qualityInspectDetailByProductId(params).then(res => {
@@ -357,7 +379,7 @@
   proxy.$refs.formRef.validate(valid => {
     if (valid) {
       form.value.inspectType = 1
-			const processName = form.value.process || '';
+			const processType = form.value.process || '';
 			if (operationType.value === "add") {
 				tableData.value.forEach((item) => {
 					delete item.id
@@ -365,7 +387,10 @@
 			}
 			const data = {
 				...form.value, 
-				process: processName, // 淇濈暀 process 瀛楁浠ュ吋瀹瑰悗绔�
+				// processType锛氬瓧鍏� product_process_type 鐨� value
+				processType: processType,
+				// 鍏煎鏃у瓧娈碉紙濡傚悗绔粛浣跨敤 process锛�
+				process: processType,
 				qualityInspectParams: tableData.value
 			}
       if (operationType.value === "add") {
@@ -388,11 +413,14 @@
 		tableData.value = [];
 		return;
 	}
-	const processName = form.value.process || '';
+	const processType = form.value.process || '';
 	let params = {
 		productId: currentProductId.value,
 		inspectType: 1,
-		process: processName
+		// 瀛楀吀 product_process_type 鐨� value 浣滀负 processType 浼犲叆
+		processType: processType,
+		// 鍏煎鏃у瓧娈碉紙濡傚悗绔粛浣跨敤 process锛�
+		process: processType
 	}
 	qualityInspectDetailByProductId(params).then(res => {
 		// 淇濆瓨涓嬫媺妗嗛�夐」鏁版嵁

--
Gitblit v1.9.3