From 4da40604690325917d208e386e3add022f181147 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期一, 08 十二月 2025 15:35:47 +0800
Subject: [PATCH] 修改设备管理选择设备时可搜索
---
src/views/equipmentManagement/repair/Modal/MaintainModal.vue | 94 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 75 insertions(+), 19 deletions(-)
diff --git a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
index 695773e..169075b 100644
--- a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
+++ b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
@@ -1,25 +1,48 @@
<template>
- <el-drawer v-model="visible" :title="modalOptions.title" direction="ltr">
- <MaintainForm ref="maintainFormRef" />
+ <el-dialog v-model="visible" :title="modalOptions.title" direction="ltr" @close="handleDialogClose">
+ <el-form :model="form" :rules="rules" label-width="110px" ref="formRef">
+ <el-form-item label="缁翠慨浜�" prop="maintenanceName">
+ <el-input v-model="form.maintenanceName" placeholder="璇疯緭鍏ョ淮淇汉" />
+ </el-form-item>
+ <el-form-item label="缁翠慨缁撴灉" prop="maintenanceResult">
+ <el-input v-model="form.maintenanceResult" placeholder="璇疯緭鍏ョ淮淇粨鏋�" />
+ </el-form-item>
+ <el-form-item label="鏈缁翠慨閲戦" prop="repairPrice">
+ <el-input-number v-model="form.repairPrice" :min="0" :precision="2" style="width: 100%" />
+ </el-form-item>
+ <el-form-item label="缁翠慨鏃ユ湡" prop="maintenanceTime">
+ <el-date-picker
+ v-model="form.maintenanceTime"
+ placeholder="璇烽�夋嫨缁翠慨鏃ユ湡"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ type="datetime"
+ clearable
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-form>
<template #footer>
- <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button>
- <el-button type="primary" @click="sendForm" :loading="loading">
- {{ modalOptions.confirmText }}
- </el-button>
+ <el-button type="primary" @click="sendForm" :loading="loading">
+ {{ modalOptions.confirmText }}
+ </el-button>
+ <el-button @click="handleDialogClose">{{ modalOptions.cancelText }}</el-button>
</template>
- </el-drawer>
+ </el-dialog>
</template>
<script setup>
+import { ref, nextTick } from "vue";
import { useModal } from "@/hooks/useModal";
-import MaintainForm from "../Form/MaintainForm.vue";
+import useFormData from "@/hooks/useFormData";
+import useUserStore from "@/store/modules/user";
+import dayjs from "dayjs";
import { addMaintain } from "@/api/equipmentManagement/repair";
defineOptions({
name: "缁翠慨妯℃�佹",
});
-const maintainFormRef = ref();
const emits = defineEmits(["ok"]);
const {
@@ -32,22 +55,55 @@
closeModal,
} = useModal({ title: "璁惧缁翠慨" });
+const userStore = useUserStore();
+const formRef = ref();
+const { form, resetForm } = useFormData({
+ maintenanceName: undefined, // 缁翠慨鍚嶇О
+ maintenanceResult: undefined, // 缁翠慨缁撴灉
+ maintenanceTime: undefined, // 缁翠慨鏃ユ湡
+ repairPrice: undefined, // 鏈缁翠慨閲戦
+});
+
+const rules = {
+ maintenanceName: [{ required: true, message: "璇疯緭鍏ョ淮淇汉", trigger: "blur" }],
+ maintenanceResult: [{ required: true, message: "璇疯緭鍏ョ淮淇粨鏋�", trigger: "blur" }],
+ repairPrice: [{ required: true, message: "璇疯緭鍏ユ湰娆$淮淇噾棰�", trigger: "change" }],
+ maintenanceTime: [{ required: true, message: "璇烽�夋嫨缁翠慨鏃ユ湡", trigger: "change" }],
+};
+
+const setForm = (data) => {
+ form.maintenanceName = data.maintenanceName ?? userStore.nickName;
+ form.maintenanceResult = data.maintenanceResult;
+ form.repairPrice = data.repairPrice;
+ form.maintenanceTime =
+ dayjs(data.maintenanceTime).format("YYYY-MM-DD HH:mm:ss") ??
+ dayjs().format("YYYY-MM-DD HH:mm:ss");
+};
+
const sendForm = async () => {
- loading.value = true;
- const form = await maintainFormRef.value.getForm();
- const { code } = await addMaintain({ id: id.value, ...form });
- if (code == 200) {
- emits("ok");
- maintainFormRef.value.resetForm();
- closeModal();
- }
- loading.value = false;
+ await formRef.value.validate(async (valid) => {
+ if (!valid) return;
+ const { code } = await addMaintain({ id: id.value, ...form });
+ if (code == 200) {
+ emits("ok");
+ resetForm();
+ closeModal();
+ }
+ });
};
const open = async (id, row) => {
openModal(id);
await nextTick();
- maintainFormRef.value.setForm(row);
+ setForm(row);
+};
+
+const handleDialogClose = () => {
+ resetForm();
+ nextTick(() => {
+ formRef.value?.clearValidate?.();
+ });
+ closeModal();
};
defineExpose({
--
Gitblit v1.9.3