From ce4001e0b03190966aee20eb7653aa0727e3db67 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 20 八月 2026 14:48:36 +0800
Subject: [PATCH] feat(upkeep): 支持设备保养计划批量新增功能

---
 src/views/equipmentManagement/upkeep/Form/PlanModal.vue |   51 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 42 insertions(+), 9 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
index 1203619..27faf30 100644
--- a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -10,7 +10,8 @@
     <el-form :model="form" label-width="100px">
       <el-form-item label="璁惧鍚嶇О">
         <el-select
-          v-model="form.deviceLedgerId"
+          v-model="form.deviceIds"
+          multiple
           @change="setDeviceModel"
           placeholder="璇烽�夋嫨璁惧"
           filterable
@@ -83,6 +84,7 @@
 import FormDialog from "@/components/Dialog/FormDialog.vue";
 import {
   addUpkeep,
+  batchAddUpkeep,
   editUpkeep,
   getUpkeepById,
 } from "@/api/equipmentManagement/upkeep";
@@ -110,17 +112,20 @@
 };
 
 const { form, resetForm } = useFormData({
-  deviceLedgerId: undefined, // 璁惧Id
+  deviceIds: [], // 璁惧Id鍒楄〃锛堟壒閲忓閫夛級
   deviceName: undefined, // 璁惧鍚嶇О
   deviceModel: undefined, // 瑙勬牸鍨嬪彿
   maintenancePlanTime: undefined, // 璁″垝淇濆吇鏃ユ湡
   createUser: undefined, // 褰曞叆浜�
+  maintenanceItem: undefined, // 淇濆吇椤圭洰
   status: 0, //淇濅慨鐘舵��
 });
 
-const setDeviceModel = (deviceId) => {
-  const option = deviceOptions.value.find((item) => item.id === deviceId);
-  form.deviceModel = option.deviceModel;
+const setDeviceModel = () => {
+  const selected = deviceOptions.value.filter((item) =>
+    form.deviceIds.includes(item.id)
+  );
+  form.deviceModel = selected.map((item) => item.deviceModel).join('銆�');
 };
 
 /**
@@ -128,7 +133,7 @@
  * @param data 璁惧淇℃伅
  */
 const setForm = (data) => {
-  form.deviceLedgerId = data.deviceLedgerId;
+  form.deviceIds = [data.deviceLedgerId];
   form.deviceName = data.deviceName;
   form.deviceModel = data.deviceModel;
   form.createUser = Number(data.createUser);
@@ -136,6 +141,7 @@
   form.maintenancePlanTime = dayjs(data.maintenancePlanTime).format(
     "YYYY-MM-DD HH:mm:ss"
   );
+  form.maintenanceItem = data.maintenanceItem;
 };
 
 // 鐢ㄦ埛鍒楄〃
@@ -159,9 +165,36 @@
 const sendForm = async () => {
   loading.value = true;
   try {
-    const { code } = id.value
-      ? await editUpkeep({ id: unref(id), ...form })
-      : await addUpkeep(form);
+    const common = {
+      maintenancePlanTime: form.maintenancePlanTime,
+      createUser: form.createUser,
+      maintenanceItem: form.maintenanceItem,
+    };
+    let code;
+    if (id.value) {
+      // 缂栬緫璁″垝锛堝崟璁惧锛�
+      const res = await editUpkeep({
+        id: unref(id),
+        deviceLedgerId: form.deviceIds[0],
+        ...common,
+        status: form.status,
+      });
+      code = res.code;
+    } else if (form.deviceIds.length > 1) {
+      // 鎵归噺鏂板锛氬鍙拌澶囧叡鐢ㄤ繚鍏婚」鐩�
+      const res = await batchAddUpkeep({
+        deviceIds: form.deviceIds,
+        ...common,
+      });
+      code = res.code;
+    } else {
+      // 鍗曡澶囨柊澧�
+      const res = await addUpkeep({
+        deviceLedgerId: form.deviceIds[0],
+        ...common,
+      });
+      code = res.code;
+    }
     if (code == 200) {
       ElMessage.success(`${id.value ? "缂栬緫" : "鏂板"}璁″垝鎴愬姛`);
       visible.value = false;

--
Gitblit v1.9.3