From b9e53d7500e3497f8659fc373e6c707071b6dfb7 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 27 二月 2026 13:57:56 +0800
Subject: [PATCH] 金鹰黄金 1.设备报修和保养添加审批流程 2.设备保养流程添加定任务管理
---
src/views/equipmentManagement/repair/Modal/MaintainModal.vue | 99 ++++++++++++++++++++++++++-----------------------
1 files changed, 53 insertions(+), 46 deletions(-)
diff --git a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
index 169075b..7058a5a 100644
--- a/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
+++ b/src/views/equipmentManagement/repair/Modal/MaintainModal.vue
@@ -1,5 +1,12 @@
<template>
- <el-dialog v-model="visible" :title="modalOptions.title" direction="ltr" @close="handleDialogClose">
+ <FormDialog
+ v-model="visible"
+ :title="'璁惧缁翠慨'"
+ width="500px"
+ @confirm="sendForm"
+ @cancel="handleCancel"
+ @close="handleClose"
+ >
<el-form :model="form" :rules="rules" label-width="110px" ref="formRef">
<el-form-item label="缁翠慨浜�" prop="maintenanceName">
<el-input v-model="form.maintenanceName" placeholder="璇疯緭鍏ョ淮淇汉" />
@@ -7,9 +14,9 @@
<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="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"
@@ -22,22 +29,16 @@
/>
</el-form-item>
</el-form>
- <template #footer>
- <el-button type="primary" @click="sendForm" :loading="loading">
- {{ modalOptions.confirmText }}
- </el-button>
- <el-button @click="handleDialogClose">{{ modalOptions.cancelText }}</el-button>
- </template>
- </el-dialog>
+ </FormDialog>
</template>
<script setup>
-import { ref, nextTick } from "vue";
-import { useModal } from "@/hooks/useModal";
+import FormDialog from "@/components/Dialog/FormDialog.vue";
+import { addMaintain } from "@/api/equipmentManagement/repair";
import useFormData from "@/hooks/useFormData";
import useUserStore from "@/store/modules/user";
import dayjs from "dayjs";
-import { addMaintain } from "@/api/equipmentManagement/repair";
+import { ElMessage } from "element-plus";
defineOptions({
name: "缁翠慨妯℃�佹",
@@ -45,23 +46,19 @@
const emits = defineEmits(["ok"]);
-const {
- id,
- visible,
- loading,
- openModal,
- modalOptions,
- handleConfirm,
- closeModal,
-} = useModal({ title: "璁惧缁翠慨" });
+// 淇濆瓨鎶ヤ慨璁板綍鐨刬d
+const repairId = ref();
+const visible = ref(false);
+const loading = ref(false);
+const formRef = ref();
const userStore = useUserStore();
-const formRef = ref();
const { form, resetForm } = useFormData({
maintenanceName: undefined, // 缁翠慨鍚嶇О
maintenanceResult: undefined, // 缁翠慨缁撴灉
maintenanceTime: undefined, // 缁翠慨鏃ユ湡
- repairPrice: undefined, // 鏈缁翠慨閲戦
+ repairPrice: undefined, // 缁翠慨閲戦
+ status: 0,
});
const rules = {
@@ -74,36 +71,46 @@
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");
+ data.maintenanceTime
+ ? dayjs(data.maintenanceTime).format("YYYY-MM-DD HH:mm:ss")
+ : dayjs().format("YYYY-MM-DD HH:mm:ss");
+ form.status = 2; // 缁翠慨鍚庡浐瀹氳繘鍏ュ緟瀹℃牳锛堜笉鍦ㄧ晫闈㈠睍绀猴級
};
const sendForm = async () => {
- await formRef.value.validate(async (valid) => {
- if (!valid) return;
- const { code } = await addMaintain({ id: id.value, ...form });
- if (code == 200) {
- emits("ok");
- resetForm();
- closeModal();
- }
- });
+ await formRef.value.validate(async (valid) => {
+ if (!valid) return;
+ loading.value = true;
+ try {
+ const { code } = await addMaintain({ id: repairId.value, ...form });
+ if (code == 200) {
+ ElMessage.success("缁翠慨鎴愬姛");
+ emits("ok");
+ resetForm();
+ visible.value = false;
+ }
+ } finally {
+ loading.value = false;
+ }
+ })
+};
+
+const handleCancel = () => {
+ resetForm();
+ visible.value = false;
+};
+
+const handleClose = () => {
+ resetForm();
+ visible.value = false;
};
const open = async (id, row) => {
- openModal(id);
+ repairId.value = id; // 淇濆瓨鎶ヤ慨璁板綍鐨刬d
+ visible.value = true;
await nextTick();
setForm(row);
-};
-
-const handleDialogClose = () => {
- resetForm();
- nextTick(() => {
- formRef.value?.clearValidate?.();
- });
- closeModal();
};
defineExpose({
--
Gitblit v1.9.3