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/repair/Modal/ApproveModal.vue | 142 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 142 insertions(+), 0 deletions(-)
diff --git a/src/views/equipmentManagement/repair/Modal/ApproveModal.vue b/src/views/equipmentManagement/repair/Modal/ApproveModal.vue
new file mode 100644
index 0000000..74f3605
--- /dev/null
+++ b/src/views/equipmentManagement/repair/Modal/ApproveModal.vue
@@ -0,0 +1,142 @@
+<template>
+ <FormDialog
+ v-model="visible"
+ title="鎶ヤ慨瀹℃壒"
+ width="800px"
+ @confirm="handleSubmit"
+ @cancel="handleClose"
+ @close="handleClose"
+ >
+ <el-descriptions :column="2" border>
+ <el-descriptions-item label="璁惧鍚嶇О">
+ {{ detail.deviceName || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="瑙勬牸鍨嬪彿">
+ {{ detail.deviceModel || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鎶ヤ慨鏃ユ湡">
+ {{ detail.repairTime || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鎶ヤ慨浜�">
+ {{ detail.repairName || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="瀹℃壒浜�">
+ {{ detail.auditName || "-" }}
+ </el-descriptions-item>
+ <el-descriptions-item label="褰撳墠鐘舵��">
+ {{ statusText(detail.status) }}
+ </el-descriptions-item>
+ <el-descriptions-item label="鏁呴殰鐜拌薄" :span="2">
+ {{ detail.remark || "-" }}
+ </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 :value="0">閫氳繃</el-radio>
+ <el-radio :value="3">涓嶉�氳繃</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 { editRepair, getRepairById } from "@/api/equipmentManagement/repair";
+
+defineOptions({
+ name: "鎶ヤ慨瀹℃壒寮圭獥",
+});
+
+const emits = defineEmits(["ok"]);
+
+const visible = ref(false);
+const loading = ref(false);
+const id = ref();
+const detail = ref({});
+const formRef = ref();
+const form = ref({
+ decision: undefined, // 0 閫氳繃 3 涓嶉�氳繃
+ supervisoryName: undefined, // 鐩戠潱浜�
+});
+
+const rules = {
+ decision: [{ required: true, message: "璇烽�夋嫨瀹℃壒缁撴灉", trigger: "change" }],
+ supervisoryName: [{ required: true, message: "璇烽�夋嫨鐩戠潱浜�", trigger: "change" }],
+};
+
+const statusText = (status) => {
+ const map = {
+ 0: "寰呯淮淇�",
+ 1: "瀹岀粨",
+ 2: "寰呭鏍�",
+ 3: "瀹℃牳涓嶉�氳繃",
+ };
+ return map[status] ?? "-";
+};
+
+const loadDetail = async (repairId) => {
+ const { data } = await getRepairById(repairId);
+ detail.value = data ?? {};
+};
+
+const open = async (repairId) => {
+ id.value = repairId;
+ visible.value = true;
+ await nextTick();
+ await loadDetail(repairId);
+ form.value.decision = undefined;
+ form.value.supervisoryName = undefined;
+};
+
+const handleClose = () => {
+ visible.value = false;
+ id.value = undefined;
+ detail.value = {};
+ form.value.decision = undefined;
+ form.value.supervisoryName = undefined;
+};
+
+const updateStatus = async (status) => {
+ loading.value = true;
+ try {
+ const { code } = await editRepair({ id: id.value, status, supervisoryName: form.value.supervisoryName });
+ if (code === 200) {
+ ElMessage.success("瀹℃壒鎴愬姛");
+ emits("ok");
+ handleClose();
+ }
+ } finally {
+ loading.value = false;
+ }
+};
+
+const handleSubmit = async () => {
+ if (detail.value?.status !== 2) {
+ ElMessage.warning("浠呭緟瀹℃牳鐘舵�佸彲瀹℃壒");
+ return;
+ }
+ await formRef.value?.validate(async (valid) => {
+ if (!valid) return;
+ const isApprove = form.value.decision === 0;
+ ElMessageBox.confirm(`纭瀹℃壒${isApprove ? "閫氳繃" : "涓嶉�氳繃"}锛焋, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }).then(() => updateStatus(form.value.decision));
+ });
+};
+
+defineExpose({ open });
+</script>
+
+<style scoped></style>
+
--
Gitblit v1.9.3