From 790aada08682e9fe23aa4f51716cc50915f27552 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期一, 18 五月 2026 17:40:05 +0800
Subject: [PATCH] 计划保养日期必填

---
 src/views/equipmentManagement/upkeep/Form/PlanModal.vue |   34 +++++++++++++++++++++++++++-------
 1 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
index 2df504e..ae32aef 100644
--- a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -2,12 +2,12 @@
   <FormDialog
     v-model="visible"
     :title="id ? '缂栬緫璁惧淇濆吇璁″垝' : '鏂板璁惧淇濆吇璁″垝'"
-    width="640px"
+    width="680px"
     @confirm="sendForm"
     @cancel="handleCancel"
     @close="handleClose"
   >
-    <el-form :model="form" label-width="100px">
+    <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
       <el-form-item label="璁惧鍚嶇О">
         <el-select
           v-model="form.deviceLedgerId"
@@ -39,14 +39,13 @@
           placeholder="褰撳墠鐧诲綍鐢ㄦ埛"
         />
       </el-form-item>
-      <el-form-item label="淇濆吇浜�">
+      <el-form-item label="淇濆吇浜�" prop="maintenancePerson">
         <el-select
           v-model="form.maintenancePerson"
           filterable
           default-first-option
           :reserve-keyword="false"
           placeholder="璇烽�夋嫨淇濆吇浜�"
-          clearable
           style="width: 100%"
         >
           <el-option
@@ -57,12 +56,20 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="淇濆吇椤圭洰">
+      <el-form-item label="淇濆吇閮ㄤ綅" prop="maintenanceLocation">
         <el-input
           v-model="form.maintenanceLocation"
           type="textarea"
           :rows="3"
-          placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�"
+          placeholder="璇疯緭鍏ヤ繚鍏婚儴浣�"
+        />
+      </el-form-item>
+      <el-form-item label="淇濆吇鍐呭" prop="maintenanceItems">
+        <el-input
+          v-model="form.maintenanceItems"
+          type="textarea"
+          :rows="3"
+          placeholder="璇疯緭鍏ヤ繚鍏诲唴瀹�"
         />
       </el-form-item>
       <el-form-item v-if="id" label="淇濅慨鐘舵��">
@@ -72,7 +79,7 @@
           <el-option label="澶辫触" :value="2"></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="璁″垝淇濆吇鏃ユ湡">
+      <el-form-item label="璁″垝淇濆吇鏃ユ湡" prop="maintenancePlanTime">
         <el-date-picker
           style="width: 100%"
           v-model="form.maintenancePlanTime"
@@ -138,6 +145,15 @@
   () => userStore.nickName || userStore.name || "褰撳墠鐧诲綍鐢ㄦ埛"
 );
 
+const formRef = ref();
+
+const rules = {
+  maintenancePerson: [{ required: true, message: "璇烽�夋嫨淇濆吇浜�", trigger: "change" }],
+  maintenanceLocation: [{ required: true, message: "璇疯緭鍏ヤ繚鍏婚儴浣�", trigger: "blur" }],
+  maintenanceItems: [{ required: true, message: "璇疯緭鍏ヤ繚鍏诲唴瀹�", trigger: "blur" }],
+  maintenancePlanTime: [{ required: true, message: "璇烽�夋嫨璁″垝淇濆吇鏃ユ湡", trigger: "change" }],
+};
+
 const syncCreateUserFromLogin = () => {
   if (userStore.id != null && userStore.id !== "") {
     form.createUser = userStore.id;
@@ -166,6 +182,7 @@
   deviceName: undefined,
   deviceModel: undefined,
   maintenanceLocation: undefined,
+  maintenanceItems: undefined,
   maintenancePlanTime: undefined,
   maintenancePerson: undefined,
   createUser: undefined,
@@ -292,6 +309,7 @@
   form.deviceName = data.deviceName;
   form.deviceModel = data.deviceModel;
   form.maintenanceLocation = data.maintenanceLocation;
+  form.maintenanceItems = data.maintenanceItems;
   form.status = data.status;
   syncCreateUserFromLogin();
   if (data.maintenancePersonId) {
@@ -344,6 +362,8 @@
 
 const sendForm = async () => {
   syncCreateUserFromLogin();
+  const valid = await formRef.value?.validate().catch(() => false);
+  if (!valid) return;
   loading.value = true;
   try {
     const payload = buildSubmitPayload();

--
Gitblit v1.9.3