From a686251b73f616532d6a9518faad49c7693a6e1c Mon Sep 17 00:00:00 2001
From: lishenao <3065849776@qq.com>
Date: 星期二, 01 七月 2025 14:31:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 src/views/equipmentManagement/upkeep/Modal/PlanModal.vue |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/Modal/PlanModal.vue b/src/views/equipmentManagement/upkeep/Modal/PlanModal.vue
new file mode 100644
index 0000000..239025a
--- /dev/null
+++ b/src/views/equipmentManagement/upkeep/Modal/PlanModal.vue
@@ -0,0 +1,76 @@
+<template>
+  <el-dialog
+    v-model="visible"
+    :title="modalOptions.title"
+    width="30%"
+    @close="close"
+  >
+    <PlanForm ref="planFormRef"></PlanForm>
+    <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 PlanForm from "../Form/PlanForm";
+import {
+  addUpkeep,
+  editUpkeep,
+  getUpkeepById,
+} from "@/api/equipmentManagement/upkeep";
+import { ElMessage } from "element-plus";
+
+defineOptions({
+  name: "璁惧淇濆吇鏂板璁″垝",
+});
+
+const emits = defineEmits(["ok"]);
+const planFormRef = ref();
+const {
+  id,
+  visible,
+  loading,
+  openModal,
+  modalOptions,
+  handleConfirm,
+  closeModal,
+} = useModal({ title: "璁惧淇濆吇璁″垝" });
+
+const openEdit = async (id) => {
+  const { data } = await getUpkeepById(id);
+  openModal(id);
+  await nextTick();
+  await planFormRef.value.setForm(data);
+};
+
+const sendForm = async () => {
+  loading.value = true;
+  const form = await planFormRef.value.getForm();
+  const { code } = id.value
+    ? await editUpkeep({ id: unref(id), ...form })
+    : await addUpkeep(form);
+  if (code == 200) {
+    ElMessage.success(`${id ? "缂栬緫" : "鏂板"}璁″垝鎴愬姛`);
+    closeModal();
+    emits("ok");
+  }
+  loading.value = false;
+};
+
+const close = () => {
+  planFormRef.value.resetForm();
+  closeModal();
+};
+
+defineExpose({
+  openModal,
+  openEdit,
+});
+</script>
+
+<style lang="scss" scoped></style>

--
Gitblit v1.9.3