From 5e3624b0f7d95aee0dbf3e8c5797b5205c41bc21 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 19 十一月 2025 11:40:56 +0800
Subject: [PATCH] 1.金鹰黄金-汇总页面可以看到每个设备的每个月的金额,也可以选择看每年的金额

---
 src/views/equipmentManagement/repair/Modal/MaintainModal.vue |   86 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 71 insertions(+), 15 deletions(-)

diff --git a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
index 309be0e..169075b 100644
--- a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
+++ b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
@@ -1,25 +1,48 @@
 <template>
-  <el-dialog 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 type="primary" @click="sendForm" :loading="loading">
 				{{ modalOptions.confirmText }}
 			</el-button>
-      <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button>
+      <el-button @click="handleDialogClose">{{ modalOptions.cancelText }}</el-button>
     </template>
   </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