From f36f2f20bfb06dc3ca1b69c8a6d260d09d7d70ba Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期五, 27 六月 2025 17:29:13 +0800
Subject: [PATCH] feat: 新增设备报修模块。

---
 src/views/equipmentManagement/repair/Modal/RepairModal.vue |   70 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/src/views/equipmentManagement/repair/Modal/RepairModal.vue b/src/views/equipmentManagement/repair/Modal/RepairModal.vue
new file mode 100644
index 0000000..586960d
--- /dev/null
+++ b/src/views/equipmentManagement/repair/Modal/RepairModal.vue
@@ -0,0 +1,70 @@
+<template>
+  <el-dialog v-model="visible" :title="modalOptions.title" @close="close">
+    <RepairForm ref="repairFormRef" />
+    <template #footer>
+      <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button>
+      <el-button type="primary" @click="sendForm" :loading="loading">
+        {{ modalOptions.confirmText }}
+      </el-button>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+import { useModal } from "@/hooks/useModal";
+import RepairForm from "../Form/RepairForm.vue";
+import {
+  addRepair,
+  editRepair,
+  getRepairById,
+} from "@/api/equipmentManagement/repair";
+import { ElMessage } from "element-plus";
+
+defineOptions({
+  name: "璁惧鎶ヤ慨寮圭獥",
+});
+
+const emits = defineEmits(["ok"]);
+
+const repairFormRef = ref();
+const {
+  id,
+  visible,
+  loading,
+  openModal,
+  modalOptions,
+  handleConfirm,
+  closeModal,
+} = useModal({ title: "璁惧鎶ヤ慨" });
+
+const sendForm = async () => {
+  loading.value = true;
+  const form = await repairFormRef.value.getForm();
+  const { code } = id.value
+    ? await editRepair({ id: unref(id), ...form })
+    : await addRepair(form);
+  if (code == 200) {
+    ElMessage.success(`${id ? "缂栬緫" : "鏂板"}鎶ヤ慨鎴愬姛`);
+    closeModal();
+    emits("ok");
+  }
+  loading.value = false;
+};
+
+const openEdit = async (id) => {
+  const { data } = await getRepairById(id);
+  openModal(id);
+  await nextTick();
+  await repairFormRef.value.setForm(data);
+};
+
+const close = () => {
+  repairFormRef.value.resetForm();
+  closeModal();
+};
+
+defineExpose({
+  openModal,
+  openEdit,
+});
+</script>

--
Gitblit v1.9.3