From 7bbab0e74d1d0208fa24ec67e3201427078980cd Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期日, 04 一月 2026 17:01:59 +0800
Subject: [PATCH] 器具校准,校准记录
---
src/views/maintenance/Modal/PlanModal.vue | 76 ++++++++++++++++++++++++++++++++++++++
1 files changed, 76 insertions(+), 0 deletions(-)
diff --git a/src/views/maintenance/Modal/PlanModal.vue b/src/views/maintenance/Modal/PlanModal.vue
new file mode 100644
index 0000000..07d7e8a
--- /dev/null
+++ b/src/views/maintenance/Modal/PlanModal.vue
@@ -0,0 +1,76 @@
+<template>
+ <el-dialog
+ v-model="visible"
+ :title="modalOptions.title"
+ width="30%"
+ @close="close"
+ >
+ <PlanForm ref="planFormRef" :id="id"></PlanForm>
+ <template #footer>
+ <el-button type="primary" @click="sendForm" :loading="loading">
+ {{ modalOptions.confirmText }}
+ </el-button>
+ <el-button @click="closeModal">{{ modalOptions.cancelText }}</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