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 | 104 ++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 81 insertions(+), 23 deletions(-)
diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 66bf067..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,11 +190,45 @@
rules: {
taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
inspector: [{ required: true, message: "璇烽�夋嫨褰曞叆浜�", trigger: "blur" },],
- registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }]
+ maintenancePerson: [{ required: true, message: "璇烽�夋嫨淇濆吇浜�", trigger: "change" }],
+ maintenanceItems: [{ required: true, message: "璇疯緭鍏ヤ繚鍏婚」鐩�", trigger: "blur" }],
+ registrationDate: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }],
+ frequencyDetail: [{
+ validator: (rule, value, callback) => {
+ if (!form.value.frequencyType) {
+ callback();
+ return;
+ }
+ if (form.value.frequencyType === 'WEEKLY') {
+ if (!form.value.week || !form.value.time) {
+ callback(new Error("璇烽�夋嫨鏃ユ湡"));
+ return;
+ }
+ callback();
+ return;
+ }
+ if (!value) {
+ callback(new Error("璇烽�夋嫨鏃ユ湡"));
+ return;
+ }
+ callback();
+ },
+ trigger: "change"
+ }]
}
})
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();
@@ -204,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()
}
// 鍏抽棴瀵硅瘽妗�
@@ -238,7 +293,8 @@
taskId: undefined,
taskName: undefined,
inspector: undefined,
- inspector: undefined,
+ maintenancePerson: undefined,
+ maintenanceItems: '',
remarks: '',
frequencyType: '',
frequencyDetail: '',
@@ -251,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