From 727e9cb845a70cb99ded092f262e0d4712eaa33b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 30 三月 2026 13:49:00 +0800
Subject: [PATCH] 酒泉 1.设备功能迁移
---
src/views/equipmentManagement/upkeep/Form/ApproveModal.vue | 144 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 144 insertions(+), 0 deletions(-)
diff --git a/src/views/equipmentManagement/upkeep/Form/ApproveModal.vue b/src/views/equipmentManagement/upkeep/Form/ApproveModal.vue
new file mode 100644
index 0000000..c7a9329
--- /dev/null
+++ b/src/views/equipmentManagement/upkeep/Form/ApproveModal.vue
@@ -0,0 +1,144 @@
+<template>
+ <FormDialog
+ v-model="visible"
+ title="瀹氭椂浠诲姟瀹℃壒"
+ width="800px"
+ @confirm="handleSubmit"
+ @cancel="handleClose"
+ @close="handleClose"
+ >
+ <el-descriptions :column="2" border>
+ <el-descriptions-item label="浠诲姟鍚嶇О">
+ {{ detail.taskName || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="瑙勬牸鍨嬪彿">
+ {{ detail.deviceModel || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="棰戞">
+ {{ frequencyText(detail.frequencyType) }}
+ </el-descriptions-item>
+ <el-descriptions-item label="寮�濮嬫棩鏈熶笌鏃堕棿">
+ {{ detail.frequencyDetail || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鐧昏浜�">
+ {{ detail.registrant || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鐧昏鏃ユ湡">
+ {{ detail.registrationDate || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="褰撳墠鐘舵��">
+ {{ statusText(detail.status) }}
+ </el-descriptions-item>
+ <el-descriptions-item label="澶囨敞" :span="2">
+ {{ detail.remarks || "-" }}
+ </el-descriptions-item>
+ </el-descriptions>
+ <div style="margin-top: 16px">
+ <el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
+ <el-form-item label="瀹℃壒缁撴灉" prop="decision">
+ <el-radio-group v-model="form.decision">
+ <el-radio label="瀹℃牳閫氳繃">瀹℃牳閫氳繃</el-radio>
+ <el-radio label="瀹℃牳涓嶉�氳繃">瀹℃牳涓嶉�氳繃</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鐩戠潱浜�" prop="supervisoryName">
+ <el-input v-model="form.supervisoryName" placeholder="璇疯緭鍏ョ洃鐫d汉" clearable style="width: 100%" />
+ </el-form-item>
+ </el-form>
+ </div>
+ </FormDialog>
+</template>
+
+<script setup>
+import { nextTick, ref } from "vue";
+import { ElMessage, ElMessageBox } from "element-plus";
+import FormDialog from "@/components/Dialog/FormDialog.vue";
+import { deviceMaintenanceTaskEdit } from "@/api/equipmentManagement/upkeep";
+
+defineOptions({
+ name: "瀹氭椂浠诲姟瀹℃壒寮圭獥",
+});
+
+const emits = defineEmits(["ok"]);
+
+const visible = ref(false);
+const loading = ref(false);
+const detail = ref({});
+const formRef = ref();
+const form = ref({
+ decision: undefined, // 瀹℃牳閫氳繃 / 瀹℃牳涓嶉�氳繃
+ supervisoryName: undefined, // 鐩戠潱浜�
+});
+
+const rules = {
+ decision: [{ required: true, message: "璇烽�夋嫨瀹℃壒缁撴灉", trigger: "change" }],
+ supervisoryName: [{ required: true, message: "璇烽�夋嫨鐩戠潱浜�", trigger: "change" }],
+};
+
+const statusText = (status) => status || "-";
+
+const frequencyText = (type) => {
+ const map = {
+ DAILY: "姣忔棩",
+ WEEKLY: "姣忓懆",
+ MONTHLY: "姣忔湀",
+ QUARTERLY: "瀛e害",
+ };
+ return map[type] ?? "-";
+};
+
+const open = async (row) => {
+ detail.value = { ...(row || {}) };
+ visible.value = true;
+ await nextTick();
+ form.value.decision = undefined;
+ form.value.supervisoryName = undefined;
+};
+
+const handleClose = () => {
+ visible.value = false;
+ detail.value = {};
+ form.value.decision = undefined;
+ form.value.supervisoryName = undefined;
+};
+
+const updateStatus = async (status) => {
+ loading.value = true;
+ try {
+ const payload = { ...(detail.value || {}), status, supervisoryName: form.value.supervisoryName };
+ const { code } = await deviceMaintenanceTaskEdit(payload);
+ if (code === 200) {
+ ElMessage.success("瀹℃壒鎴愬姛");
+ emits("ok");
+ handleClose();
+ }
+ } finally {
+ loading.value = false;
+ }
+};
+
+const handleSubmit = async () => {
+ if (detail.value?.status === "瀹℃牳閫氳繃") {
+ ElMessage.warning("瀹℃牳閫氳繃鍚庝笉鍙啀娆″鎵�");
+ return;
+ }
+ await formRef.value?.validate(async (valid) => {
+ if (!valid) return;
+ const isApprove = form.value.decision === "瀹℃牳閫氳繃";
+ ElMessageBox.confirm(
+ `纭瀹℃壒${isApprove ? "閫氳繃" : "涓嶉�氳繃"}锛焋,
+ "鎻愮ず",
+ {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }
+ ).then(() => updateStatus(form.value.decision));
+ });
+};
+
+defineExpose({ open });
+</script>
+
+<style scoped></style>
+
--
Gitblit v1.9.3