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/ledger/Form.vue |   62 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue
index 4b11d59..a2911f2 100644
--- a/src/views/equipmentManagement/ledger/Form.vue
+++ b/src/views/equipmentManagement/ledger/Form.vue
@@ -38,6 +38,24 @@
         </el-form-item>
       </el-col>
       <el-col :span="12">
+        <el-form-item label="宸ュ簭" prop="productProcessId">
+          <el-select
+            v-model="form.productProcessId"
+            placeholder="璇烽�夋嫨宸ュ簭"
+            clearable
+            filterable
+            style="width: 100%"
+          >
+            <el-option
+              v-for="item in processOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
         <el-form-item label="渚涘簲鍟�" prop="supplierName">
           <el-input v-model="form.supplierName" placeholder="璇疯緭鍏ヤ緵搴斿晢" />
         </el-form-item>
@@ -170,13 +188,14 @@
 import useFormData from "@/hooks/useFormData";
 // import useUserStore from "@/store/modules/user";
 import { getLedgerById } from "@/api/equipmentManagement/ledger";
+import { processList } from "@/api/productionManagement/productionProcess";
 import dayjs from "dayjs";
 import {
   calculateTaxIncludeTotalPrice,
   calculateTaxExclusiveTotalPrice,
 } from "@/utils/summarizeTable";
 import { ElMessage } from "element-plus";
-import {ref} from "vue";
+import { ref, onMounted } from "vue";
 
 defineOptions({
   name: "璁惧鍙拌处琛ㄥ崟",
@@ -191,10 +210,12 @@
   '杩愯緭璁惧',
   '鍏朵粬璁惧'
 ]);
+const processOptions = ref([]);
 const formRules = {
 	deviceName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
 	deviceModel: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
 	type: [{ 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: "璇疯緭鍏�" }],
@@ -220,6 +241,7 @@
   deviceModel: undefined, // 瑙勬牸鍨嬪彿
   deviceBrand: undefined, // 璁惧鍝佺墝
   type: undefined, // 璁惧绫诲瀷
+  productProcessId: undefined, // 宸ュ簭ID
   supplierName: undefined, // 渚涘簲鍟�
   storageLocation: undefined, // 瀛樻斁浣嶇疆
   isDepr: 2, // 鏄惁鍚敤鎶樻棫 1-鏄� 2-鍚�
@@ -245,6 +267,13 @@
     form.deviceModel = data.deviceModel;
     form.deviceBrand = data.deviceBrand;
     form.type = data.type;
+    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;
@@ -262,6 +291,33 @@
     } else {
       form.planRuntimeTime = undefined;
     }
+  }
+};
+
+const ensureProcessOptionExists = (id, name) => {
+  if (!id) return;
+  if (!processOptions.value.some(item => item.value === id)) {
+    processOptions.value.push({
+      value: id,
+      label: name || `${id}`,
+    });
+  }
+};
+
+const getProcessOptions = async () => {
+  try {
+    const { code, data } = await processList({});
+    if (code === 200 && Array.isArray(data)) {
+      processOptions.value = data
+        .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 = [];
   }
 };
 
@@ -300,6 +356,10 @@
   clearValidate();
 };
 
+onMounted(() => {
+  getProcessOptions();
+});
+
 defineExpose({
   form,
   loadForm,

--
Gitblit v1.9.3