From 4e920b761cb2b21eca614ed4c437e30f92655ebd Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 21 四月 2026 15:19:34 +0800
Subject: [PATCH] Merge branch 'dev_河南_鹤壁天沐玻璃厂' of http://114.132.189.42:9002/r/product-inventory-management into dev_河南_鹤壁天沐玻璃厂

---
 src/views/equipmentManagement/upkeep/index.vue        |    4 ++
 src/views/equipmentManagement/upkeep/Form/formDia.vue |   33 ++++++++++++++++
 src/views/equipmentManagement/ledger/index.vue        |    7 +++
 src/views/equipmentManagement/ledger/Form.vue         |   43 +++++++++++++--------
 4 files changed, 70 insertions(+), 17 deletions(-)

diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue
index dd008fd..a2911f2 100644
--- a/src/views/equipmentManagement/ledger/Form.vue
+++ b/src/views/equipmentManagement/ledger/Form.vue
@@ -38,9 +38,9 @@
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="宸ュ簭" prop="processName">
+        <el-form-item label="宸ュ簭" prop="productProcessId">
           <el-select
-            v-model="form.processName"
+            v-model="form.productProcessId"
             placeholder="璇烽�夋嫨宸ュ簭"
             clearable
             filterable
@@ -48,9 +48,9 @@
           >
             <el-option
               v-for="item in processOptions"
-              :key="item"
-              :label="item"
-              :value="item"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
             />
           </el-select>
         </el-form-item>
@@ -215,7 +215,7 @@
 	deviceName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
 	deviceModel: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
 	type: [{ required: true, trigger: "change", message: "璇烽�夋嫨鎴栬緭鍏ヨ澶囩被鍨�" }],
-	processName: [{ required: true, trigger: "change", message: "璇烽�夋嫨宸ュ簭" }],
+	productProcessId: [{ required: true, trigger: "change", message: "璇烽�夋嫨宸ュ簭" }],
 	supplierName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
 	unit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
 	number: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
@@ -241,7 +241,7 @@
   deviceModel: undefined, // 瑙勬牸鍨嬪彿
   deviceBrand: undefined, // 璁惧鍝佺墝
   type: undefined, // 璁惧绫诲瀷
-  processName: undefined, // 宸ュ簭
+  productProcessId: undefined, // 宸ュ簭ID
   supplierName: undefined, // 渚涘簲鍟�
   storageLocation: undefined, // 瀛樻斁浣嶇疆
   isDepr: 2, // 鏄惁鍚敤鎶樻棫 1-鏄� 2-鍚�
@@ -267,8 +267,13 @@
     form.deviceModel = data.deviceModel;
     form.deviceBrand = data.deviceBrand;
     form.type = data.type;
-    form.processName = data.processName || data.process;
-    ensureProcessOptionExists(form.processName);
+    const processName = data.productProcessName || data.processName || data.process;
+    form.productProcessId = data.productProcessId;
+    if (!form.productProcessId && processName) {
+      const matched = processOptions.value.find(item => item.label === processName);
+      form.productProcessId = matched?.value;
+    }
+    ensureProcessOptionExists(form.productProcessId, processName);
     form.supplierName = data.supplierName;
     form.storageLocation = data.storageLocation;
     form.isDepr = data.isDepr;
@@ -289,10 +294,13 @@
   }
 };
 
-const ensureProcessOptionExists = (value) => {
-  if (!value) return;
-  if (!processOptions.value.includes(value)) {
-    processOptions.value.push(value);
+const ensureProcessOptionExists = (id, name) => {
+  if (!id) return;
+  if (!processOptions.value.some(item => item.value === id)) {
+    processOptions.value.push({
+      value: id,
+      label: name || `${id}`,
+    });
   }
 };
 
@@ -301,9 +309,12 @@
     const { code, data } = await processList({});
     if (code === 200 && Array.isArray(data)) {
       processOptions.value = data
-        .map(item => item?.name)
-        .filter(Boolean);
-      ensureProcessOptionExists(form.processName);
+        .filter(item => item?.id !== undefined && item?.id !== null)
+        .map(item => ({
+          value: item.id,
+          label: item?.name || `${item.id}`,
+        }));
+      ensureProcessOptionExists(form.productProcessId);
     }
   } catch (error) {
     processOptions.value = [];
diff --git a/src/views/equipmentManagement/ledger/index.vue b/src/views/equipmentManagement/ledger/index.vue
index 62f0c6a..f142b68 100644
--- a/src/views/equipmentManagement/ledger/index.vue
+++ b/src/views/equipmentManagement/ledger/index.vue
@@ -138,6 +138,13 @@
       prop: "type",
     },
     {
+      label: "宸ュ簭",
+      prop: "productProcessName",
+      formatData: (v) => {
+        return v || "";
+      },
+    },
+    {
       label: "渚涘簲鍟�",
       prop: "supplierName",
     },
diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 66bf067..e4c6110 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -124,6 +124,13 @@
 			</el-row>
 			<el-row>
 				<el-col :span="12">
+					<el-form-item label="淇濆吇椤圭洰" prop="maintenanceLocation">
+						<el-input v-model="form.maintenanceLocation" placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�" />
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="12">
 					<el-form-item label="澶囨敞" prop="remarks">
 						<el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" type="textarea" />
 					</el-form-item>
@@ -154,6 +161,7 @@
 		taskName: undefined,
 		// 褰曞叆浜猴細鍗曢�変竴涓敤鎴� id
 		inspector: undefined,
+		maintenanceLocation: '',
 		remarks: '',
 		frequencyType: '',
 		frequencyDetail: '',
@@ -165,7 +173,29 @@
 	rules: {
 		taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
 		inspector: [{ required: true, message: "璇烽�夋嫨褰曞叆浜�", trigger: "blur" },],
-		registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }]
+		registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }],
+		frequencyDetail: [{
+			validator: (rule, value, callback) => {
+				if (!form.value.frequencyType) {
+					callback();
+					return;
+				}
+				if (form.value.frequencyType === 'WEEKLY') {
+					if (!form.value.week || !form.value.time) {
+						callback(new Error("璇烽�夋嫨鏃ユ湡"));
+						return;
+					}
+					callback();
+					return;
+				}
+				if (!value) {
+					callback(new Error("璇烽�夋嫨鏃ユ湡"));
+					return;
+				}
+				callback();
+			},
+			trigger: "change"
+		}]
 	}
 })
 const { form, rules } = toRefs(data)
@@ -239,6 +269,7 @@
 		taskName: undefined,
 		inspector: undefined,
 		inspector: undefined,
+		maintenanceLocation: '',
 		remarks: '',
 		frequencyType: '',
 		frequencyDetail: '',
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 543e37b..96a9395 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -305,6 +305,10 @@
 		prop: "deviceModel",
 	},
 	{
+		label: "淇濆吇椤圭洰",
+		prop: "maintenanceLocation",
+	},
+	{
 		prop: "frequencyType",
 		label: "棰戞",
 		minWidth: 150,

--
Gitblit v1.9.3