From 25372b64f4ac756bd44cc730af87b1c46e6b9f77 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 18 五月 2026 14:18:57 +0800
Subject: [PATCH] fix: 维修人改为可输入和下拉
---
src/views/equipmentManagement/repair/Modal/MaintainModal.vue | 41 +++++++++++++++++++++++++++++++++++++----
1 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
index ed09da9..6908865 100644
--- a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
+++ b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
@@ -10,10 +10,19 @@
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="90px">
<el-form-item label="缁翠慨浜�" prop="maintenanceName">
- <el-input v-model="form.maintenanceName" disabled placeholder="鎶ヤ慨鏃舵寚瀹氱殑缁翠慨浜�" />
+ <el-input
+ v-model="form.maintenanceName"
+ :placeholder="isEditableMaintenanceName ? '璇疯緭鍏ョ淮淇汉濮撳悕' : '鎶ヤ慨鏃舵寚瀹氱殑缁翠慨浜�'"
+ :disabled="!isEditableMaintenanceName"
+ />
</el-form-item>
<el-form-item label="缁翠慨缁撴灉" prop="maintenanceResult">
- <el-input v-model="form.maintenanceResult" placeholder="璇疯緭鍏ョ淮淇粨鏋�" />
+ <el-input
+ v-model="form.maintenanceResult"
+ type="textarea"
+ :autosize="{ minRows: 2, maxRows: 6 }"
+ placeholder="璇疯緭鍏ョ淮淇粨鏋�"
+ />
</el-form-item>
<el-form-item label="缁翠慨鐘舵��" prop="status">
<el-select v-model="form.status" style="width: 100%">
@@ -57,11 +66,13 @@
</template>
<script setup>
+import { computed } from "vue";
import FormDialog from "@/components/Dialog/FormDialog.vue";
import { addMaintain, uploadRepairFile } from "@/api/equipmentManagement/repair";
import { REPAIR_FILE_TYPE_MAINTAIN } from "@/api/equipmentManagement/repairFileType.js";
import useFormData from "@/hooks/useFormData";
import useUserStore from "@/store/modules/user";
+import { userListNoPage } from "@/api/system/user.js";
import dayjs from "dayjs";
import { ElMessage } from "element-plus";
import { UploadFilled } from "@element-plus/icons-vue";
@@ -80,6 +91,23 @@
const ATTACH_MAX_MB = 50;
const userStore = useUserStore();
+const systemUserNames = ref([]);
+
+const isSystemUser = (name) => {
+ return systemUserNames.value.includes(name);
+};
+
+// 缁翠慨浜烘槸鍚﹀彲缂栬緫锛氬閮ㄤ汉鍛樻椂鍙互缂栬緫淇敼
+const isEditableMaintenanceName = computed(() => {
+ const name = form.maintenanceName;
+ if (!name) return false;
+ return !isSystemUser(name);
+});
+
+const loadSystemUsers = async () => {
+ const res = await userListNoPage();
+ systemUserNames.value = (res?.data || []).map((u) => u.nickName);
+};
const rules = {
maintenanceName: [{ required: true, message: "璇烽�夋嫨缁翠慨浜�", trigger: "change" }],
@@ -141,7 +169,9 @@
const sendForm = async () => {
const valid = await formRef.value?.validate().catch(() => false);
if (!valid) return;
- if (form.maintenanceName !== userStore.nickName) {
+ const maintenanceName = form.maintenanceName;
+ // 濡傛灉缁翠慨浜烘槸绯荤粺鐢ㄦ埛涓旈潪褰撳墠鐢ㄦ埛锛岀姝㈡彁浜�
+ if (isSystemUser(maintenanceName) && maintenanceName !== userStore.nickName) {
ElMessage.warning("浠呮寚瀹氱殑缁翠慨浜哄彲杩涜缁翠慨");
return;
}
@@ -183,8 +213,11 @@
clearAttachmentQueue();
visible.value = true;
await nextTick();
+ await loadSystemUsers();
setForm(row);
- if (row?.maintenanceName && row.maintenanceName !== userStore.nickName) {
+ const maintenanceName = row?.maintenanceName;
+ // 濡傛灉缁翠慨浜烘槸绯荤粺鐢ㄦ埛涓旈潪褰撳墠鐢ㄦ埛锛岀姝㈡搷浣�
+ if (isSystemUser(maintenanceName) && maintenanceName !== userStore.nickName) {
ElMessage.warning("浠呮寚瀹氱殑缁翠慨浜哄彲杩涜缁翠慨");
visible.value = false;
}
--
Gitblit v1.9.3