From b88332e0a2686e68023e26438af97f79247b1ddd Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 16 五月 2026 14:14:53 +0800
Subject: [PATCH] feat: 设备保养修改,新增保养人、详情

---
 src/views/equipmentManagement/upkeep/Form/formDia.vue |   80 +++++++++++++++++++++++++++++-----------
 1 files changed, 58 insertions(+), 22 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 3ce522b..4c07007 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -35,8 +35,17 @@
 			<el-row>
 				<el-col :span="12">
 					<el-form-item label="褰曞叆浜�" prop="inspector">
+						<el-input
+							:model-value="registrantDisplayName"
+							disabled
+							placeholder="褰撳墠鐧诲綍鐢ㄦ埛"
+						/>
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="淇濆吇浜�" prop="maintenancePerson">
 						<el-select
-							v-model="form.inspector"
+							v-model="form.maintenancePerson"
 							filterable
 							default-first-option
 							:reserve-keyword="false"
@@ -47,11 +56,13 @@
 								v-for="item in userList"
 								:label="item.nickName"
 								:value="item.userId"
-								:key="item.userId"
+								:key="'mp-' + item.userId"
 							/>
 						</el-select>
 					</el-form-item>
 				</el-col>
+			</el-row>
+			<el-row>
 				<el-col :span="12">
 					<el-form-item label="鐧昏鏃堕棿" prop="registrationDate">
 						<el-date-picker
@@ -123,7 +134,19 @@
 				</el-col>
 			</el-row>
 			<el-row>
-				<el-col :span="12">
+				<el-col :span="24">
+					<el-form-item label="淇濆吇椤圭洰" prop="maintenanceItems">
+						<el-input
+							v-model="form.maintenanceItems"
+							type="textarea"
+							:rows="3"
+							placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�"
+						/>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span="24">
 					<el-form-item label="澶囨敞" prop="remarks">
 						<el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" type="textarea" />
 					</el-form-item>
@@ -135,7 +158,7 @@
 
 <script setup>
 import FormDialog from "@/components/Dialog/FormDialog.vue";
-import { reactive, ref, getCurrentInstance, toRefs } from "vue";
+import { reactive, ref, computed, getCurrentInstance, toRefs } from "vue";
 import {userListNoPageByTenantId} from "@/api/system/user.js";
 import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
 import { deviceMaintenanceTaskAdd, deviceMaintenanceTaskEdit } from "@/api/equipmentManagement/upkeep";
@@ -152,8 +175,10 @@
 	form: {
 		taskId: undefined,
 		taskName: undefined,
-		// 褰曞叆浜猴細鍗曢�変竴涓敤鎴� id
+		// 褰曞叆浜恒�佷繚鍏讳汉锛氱敤鎴� id
 		inspector: undefined,
+		maintenancePerson: undefined,
+		maintenanceItems: '',
 		remarks: '',
 		frequencyType: '',
 		frequencyDetail: '',
@@ -165,6 +190,8 @@
 	rules: {
 		taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
 		inspector: [{ required: true, message: "璇烽�夋嫨褰曞叆浜�", trigger: "blur" },],
+		maintenancePerson: [{ required: true, message: "璇烽�夋嫨淇濆吇浜�", trigger: "change" }],
+		maintenanceItems: [{ required: true, message: "璇疯緭鍏ヤ繚鍏婚」鐩�", trigger: "blur" }],
 		registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }],
 		frequencyDetail: [{
 			validator: (rule, value, callback) => {
@@ -192,6 +219,16 @@
 })
 const { form, rules } = toRefs(data)
 const userList = ref([])
+
+const registrantDisplayName = computed(
+	() => userStore.nickName || userStore.name || "褰撳墠鐧诲綍鐢ㄦ埛"
+)
+
+const syncRegistrantFromLogin = () => {
+	if (userStore.id != null && userStore.id !== "") {
+		form.value.inspector = userStore.id
+	}
+}
 
 const loadDeviceName = async () => {
 	const { data } = await getDeviceLedger();
@@ -226,21 +263,17 @@
 	
 	if (type === 'edit' && row) {
 		form.value = { ...row }
-		// 缂栬緫鏃剁敤鎺ュ彛杩斿洖鐨� registrantId 鍥炴樉褰曞叆浜�
-		if (row.registrantId) {
-			form.value.inspector = row.registrantId
+		if (row.maintenancePersonId) {
+			form.value.maintenancePerson = row.maintenancePersonId
 		}
-
-		// 濡傛灉鏈夎澶嘔D锛岃嚜鍔ㄨ缃澶囦俊鎭�
 		if (form.value.taskId) {
 			setDeviceModel(form.value.taskId);
 		}
 	} else if (type === 'add') {
-		// 鏂板鏃惰缃櫥璁版棩鏈熶负褰撳ぉ
 		form.value.registrationDate = getCurrentDate();
-		// 鏂板鏃惰缃綍鍏ヤ汉涓哄綋鍓嶇櫥褰曡处鎴�
-		form.value.inspector = userStore.id;
+		form.value.maintenancePerson = userStore.id;
 	}
+	syncRegistrantFromLogin()
 }
 
 // 鍏抽棴瀵硅瘽妗�
@@ -260,7 +293,8 @@
 		taskId: undefined,
 		taskName: undefined,
 		inspector: undefined,
-		inspector: undefined,
+		maintenancePerson: undefined,
+		maintenanceItems: '',
 		remarks: '',
 		frequencyType: '',
 		frequencyDetail: '',
@@ -273,19 +307,21 @@
 
 // 鎻愪氦琛ㄥ崟
 const submitForm = () => {
+	syncRegistrantFromLogin()
 	proxy.$refs["formRef"].validate(async valid => {
 		if (valid) {
 			try {
 				const payload = { ...form.value }
-				// 涓嶅啀鍚戝悗绔紶淇濆吇浜哄瓧娈碉紝浠呬娇鐢ㄦ帴鍙h姹傜殑 registrant / registrantId
-				// 鏍规嵁閫夋嫨鐨�"褰曞叆浜�"璁剧疆 registrant / registrantId
-				if (payload.inspector) {
-					const selectedUser = userList.value.find(
-						(u) => String(u.userId) === String(payload.inspector)
+				payload.registrantId = userStore.id
+				payload.registrant = userStore.nickName || userStore.name
+				const maintenancePersonUserId = form.value.maintenancePerson
+				if (maintenancePersonUserId) {
+					const maintainer = userList.value.find(
+						(u) => String(u.userId) === String(maintenancePersonUserId)
 					)
-					if (selectedUser) {
-						payload.registrantId = selectedUser.userId
-						payload.registrant = selectedUser.nickName
+					if (maintainer) {
+						payload.maintenancePersonId = maintainer.userId
+						payload.maintenancePerson = maintainer.nickName
 					}
 				}
 				delete payload.inspector

--
Gitblit v1.9.3