From a30370cd7080d432462ab5aa5986ac10dadf852f Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期一, 18 五月 2026 16:29:36 +0800
Subject: [PATCH] 增加项目部件

---
 src/views/equipmentManagement/upkeep/index.vue                  |   16 +++++++++++++++-
 src/views/equipmentManagement/upkeep/Form/UpkeepDetailModal.vue |    7 +++++--
 src/views/equipmentManagement/upkeep/Form/PlanModal.vue         |   22 +++++++++++++++++++---
 src/views/equipmentManagement/upkeep/Form/formDia.vue           |   15 +++++++++++++++
 4 files changed, 54 insertions(+), 6 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
index 0ba259d..5f3b50c 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" :rules="rules" label-width="100px">
+    <el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
       <el-form-item label="璁惧鍚嶇О">
         <el-select
           v-model="form.deviceLedgerId"
@@ -56,9 +56,17 @@
           />
         </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="璇疯緭鍏ヤ繚鍏婚儴浣�"
+        />
+      </el-form-item>
+      <el-form-item label="淇濆吇椤圭洰" prop="maintenanceItems">
+        <el-input
+          v-model="form.maintenanceItems"
           type="textarea"
           :rows="3"
           placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�"
@@ -137,8 +145,12 @@
   () => 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" }],
 };
 
 const syncCreateUserFromLogin = () => {
@@ -169,6 +181,7 @@
   deviceName: undefined,
   deviceModel: undefined,
   maintenanceLocation: undefined,
+  maintenanceItems: undefined,
   maintenancePlanTime: undefined,
   maintenancePerson: undefined,
   createUser: undefined,
@@ -295,6 +308,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) {
@@ -347,6 +361,8 @@
 
 const sendForm = async () => {
   syncCreateUserFromLogin();
+  const valid = await formRef.value?.validate().catch(() => false);
+  if (!valid) return;
   loading.value = true;
   try {
     const payload = buildSubmitPayload();
diff --git a/src/views/equipmentManagement/upkeep/Form/UpkeepDetailModal.vue b/src/views/equipmentManagement/upkeep/Form/UpkeepDetailModal.vue
index 972cb34..73a6659 100644
--- a/src/views/equipmentManagement/upkeep/Form/UpkeepDetailModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/UpkeepDetailModal.vue
@@ -2,7 +2,7 @@
   <el-dialog
     v-model="visible"
     title="淇濆吇璁″垝璇︽儏"
-    width="820px"
+    width="960px"
     destroy-on-close
     @closed="onClosed"
   >
@@ -11,9 +11,12 @@
         <el-descriptions :column="2" border size="small">
           <el-descriptions-item label="璁惧鍚嶇О">{{ detail.deviceName || "鈥�" }}</el-descriptions-item>
           <el-descriptions-item label="瑙勬牸鍨嬪彿">{{ detail.deviceModel || "鈥�" }}</el-descriptions-item>
-          <el-descriptions-item label="淇濆吇椤圭洰" :span="2">
+          <el-descriptions-item label="淇濆吇閮ㄤ綅" :span="2">
             <div class="multiline">{{ detail.maintenanceLocation || "鈥�" }}</div>
           </el-descriptions-item>
+          <el-descriptions-item label="淇濆吇椤圭洰" :span="2">
+            <div class="multiline">{{ detail.maintenanceItems || "鈥�" }}</div>
+          </el-descriptions-item>
           <el-descriptions-item label="淇濆吇浜�">{{ detail.maintenancePerson || "鈥�" }}</el-descriptions-item>
           <el-descriptions-item label="璁″垝淇濆吇鏃ユ湡">{{ fmtDate(detail.maintenancePlanTime) }}</el-descriptions-item>
           <el-descriptions-item label="褰曞叆浜�">{{ detail.createUserName || "鈥�" }}</el-descriptions-item>
diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index a33a695..2eda377 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -146,6 +146,18 @@
 			</el-row>
 			<el-row>
 				<el-col :span="24">
+					<el-form-item label="淇濆吇閮ㄤ綅" prop="maintenanceLocation">
+						<el-input
+							v-model="form.maintenanceLocation"
+							type="textarea"
+							:rows="3"
+							placeholder="璇疯緭鍏ヤ繚鍏婚儴浣�"
+						/>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="24">
 					<el-form-item label="淇濆吇椤圭洰" prop="maintenanceItems">
 						<el-input
 							v-model="form.maintenanceItems"
@@ -189,6 +201,7 @@
 		// 褰曞叆浜恒�佷繚鍏讳汉锛氱敤鎴� id
 		inspector: undefined,
 		maintenancePerson: undefined,
+		maintenanceLocation: '',
 		maintenanceItems: '',
 		remarks: '',
 		frequencyType: '',
@@ -203,6 +216,7 @@
 		taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
 		inspector: [{ required: true, message: "璇烽�夋嫨褰曞叆浜�", trigger: "blur" },],
 		maintenancePerson: [{ required: true, message: "璇烽�夋嫨淇濆吇浜�", trigger: "change" }],
+		maintenanceLocation: [{ required: true, message: "璇疯緭鍏ヤ繚鍏婚儴浣�", trigger: "blur" }],
 		maintenanceItems: [{ required: true, message: "璇疯緭鍏ヤ繚鍏婚」鐩�", trigger: "blur" }],
 		registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }],
 		frequencyDetail: [{
@@ -306,6 +320,7 @@
 		taskName: undefined,
 		inspector: undefined,
 		maintenancePerson: undefined,
+		maintenanceLocation: '',
 		maintenanceItems: '',
 		remarks: '',
 		frequencyType: '',
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index c8364de..2990d26 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -369,6 +369,12 @@
 	{ prop: "registrant", label: "鐧昏浜�", minWidth: 100 },
 	{ prop: "maintenancePerson", label: "淇濆吇浜�", minWidth: 100 },
 	{
+		prop: "maintenanceLocation",
+		label: "淇濆吇閮ㄤ綅",
+		minWidth: 150,
+		showOverflowTooltip: true,
+	},
+	{
 		prop: "maintenanceItems",
 		label: "淇濆吇椤圭洰",
 		minWidth: 180,
@@ -406,9 +412,17 @@
 		prop: "deviceModel",
 	},
 	{
-		label: "淇濆吇椤圭洰",
+		label: "淇濆吇閮ㄤ綅",
 		align: "center",
 		prop: "maintenanceLocation",
+		minWidth: 150,
+		showOverflowTooltip: true,
+	},
+	{
+		label: "淇濆吇椤圭洰",
+		align: "center",
+		prop: "maintenanceItems",
+		minWidth: 150,
 		showOverflowTooltip: true,
 	},
 	{

--
Gitblit v1.9.3