From 0a6a18524ea5c03ea03898ebd1945bc81153db45 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 03 十一月 2025 15:15:25 +0800
Subject: [PATCH] 设备管理-添加导出功能
---
 src/views/equipmentManagement/upkeep/index.vue               |   22 ++++++++++
 src/views/equipmentManagement/repair/index.vue               |   22 ++++++++++
 src/views/equipmentManagement/inspectionManagement/index.vue |   28 +++++++++++++
 3 files changed, 69 insertions(+), 3 deletions(-)
diff --git a/src/views/equipmentManagement/inspectionManagement/index.vue b/src/views/equipmentManagement/inspectionManagement/index.vue
index 74886b2..3e4e31e 100644
--- a/src/views/equipmentManagement/inspectionManagement/index.vue
+++ b/src/views/equipmentManagement/inspectionManagement/index.vue
@@ -26,7 +26,10 @@
         <el-space v-if="activeRadio !== 'task'">
           <el-button type="primary" :icon="Plus" @click="handleAdd(undefined)">鏂板缓</el-button>
           <el-button type="danger" :icon="Delete" @click="handleDelete">鍒犻櫎</el-button>
-          <!-- <el-button type="info" plain :icon="Download">瀵煎嚭</el-button> -->
+          <el-button @click="handleOut">瀵煎嚭</el-button>
+        </el-space>
+        <el-space v-else>
+          <el-button @click="handleOut">瀵煎嚭</el-button>
         </el-space>
       </div>
       <div>
@@ -77,6 +80,7 @@
 <script setup>
 import { Delete, Plus } from "@element-plus/icons-vue";
 import { onMounted, ref, reactive, getCurrentInstance, nextTick } from "vue";
+import { ElMessageBox } from "element-plus";
 
 // 缁勪欢寮曞叆
 import Pagination from "@/components/Pagination/index.vue";
@@ -310,6 +314,28 @@
 const handleSelectionChange = (selection) => {
   selectedRows.value = selection;
 };
+
+// 瀵煎嚭
+const handleOut = () => {
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      // 鏍规嵁褰撳墠閫変腑鐨勬爣绛鹃〉璋冪敤涓嶅悓鐨勫鍑烘帴鍙�
+      if (activeRadio.value === "taskManage") {
+        // 瀹氭椂浠诲姟绠$悊
+        proxy.download("/timingTask/export", {}, "瀹氭椂浠诲姟绠$悊.xlsx");
+      } else if (activeRadio.value === "task") {
+        // 瀹氭椂浠诲姟璁板綍
+        proxy.download("/inspectionTask/export", {}, "瀹氭椂浠诲姟璁板綍.xlsx");
+      }
+    })
+    .catch(() => {
+      proxy.$modal.msg("宸插彇娑�");
+    });
+};
 </script>
 
 <style scoped>
diff --git a/src/views/equipmentManagement/repair/index.vue b/src/views/equipmentManagement/repair/index.vue
index fb6c8b0..1a2ff1e 100644
--- a/src/views/equipmentManagement/repair/index.vue
+++ b/src/views/equipmentManagement/repair/index.vue
@@ -79,6 +79,9 @@
           <el-button type="success" icon="Van" @click="addRepair">
             鏂板鎶ヤ慨
           </el-button>
+          <el-button @click="handleOut">
+            瀵煎嚭
+          </el-button>
           <el-button
             type="danger"
             icon="Delete"
@@ -134,7 +137,7 @@
 <script setup>
 import { usePaginationApi } from "@/hooks/usePaginationApi";
 import { getRepairPage, delRepair } from "@/api/equipmentManagement/repair";
-import { onMounted } from "vue";
+import { onMounted, getCurrentInstance } from "vue";
 import RepairModal from "./Modal/RepairModal.vue";
 import { ElMessageBox, ElMessage } from "element-plus";
 import dayjs from "dayjs";
@@ -143,6 +146,8 @@
 defineOptions({
   name: "璁惧鎶ヤ慨",
 });
+
+const { proxy } = getCurrentInstance();
 
 // 妯℃�佹瀹炰緥
 const repairModalRef = ref();
@@ -289,6 +294,21 @@
   });
 };
 
+// 瀵煎嚭
+const handleOut = () => {
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      proxy.download("/device/repair/export", {}, "璁惧鎶ヤ慨.xlsx");
+    })
+    .catch(() => {
+      ElMessage.info("宸插彇娑�");
+    });
+};
+
 onMounted(() => {
   getTableData();
 });
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 72da8bc..5612bb6 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -59,6 +59,9 @@
           <el-button type="success" icon="Van" @click="addPlan">
             鏂板璁″垝
           </el-button>
+          <el-button @click="handleOut">
+            瀵煎嚭
+          </el-button>
           <el-button
             type="danger"
             icon="Delete"
@@ -122,7 +125,7 @@
 <script setup>
 import { usePaginationApi } from "@/hooks/usePaginationApi";
 import { getUpkeepPage, delUpkeep } from "@/api/equipmentManagement/upkeep";
-import { onMounted } from "vue";
+import { onMounted, getCurrentInstance } from "vue";
 import PlanModal from "./Modal/PlanModal.vue";
 import MaintenanceModal from "./Modal/MaintenanceModal.vue";
 import dayjs from "dayjs";
@@ -131,6 +134,8 @@
 defineOptions({
   name: "璁惧淇濆吇",
 });
+
+const { proxy } = getCurrentInstance();
 
 // 璁″垝寮圭獥鎺у埗鍣�
 const planModalRef = ref();
@@ -276,6 +281,21 @@
   });
 };
 
+// 瀵煎嚭
+const handleOut = () => {
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      proxy.download("/device/maintenance/export", {}, "璁惧淇濆吇.xlsx");
+    })
+    .catch(() => {
+      ElMessage.info("宸插彇娑�");
+    });
+};
+
 onMounted(() => {
   getTableData();
 });
--
Gitblit v1.9.3