From 2fc58fbb10745abd97168b8da21d4142e11d7f2e Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期四, 18 十二月 2025 13:36:43 +0800
Subject: [PATCH] 新增设备维修保养过程描述,上传对应附件

---
 src/views/equipmentManagement/upkeep/index.vue |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 7183964..00312b7 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"
@@ -104,6 +107,14 @@
             缂栬緫
           </el-button>
           <el-button
+              type="primary"
+              text
+              icon="editPen"
+              @click="showImage(row)"
+          >
+            闄勪欢
+          </el-button>
+          <el-button
             type="danger"
             text
             icon="delete"
@@ -116,21 +127,25 @@
     </div>
     <PlanModal ref="planModalRef" @ok="getTableData" />
     <MaintenanceModal ref="maintainModalRef" @ok="getTableData" />
+    <ImagePreviewDialog v-model:model-value="showImages" :images="imageUrls" />
   </div>
 </template>
 
 <script setup>
 import { usePaginationApi } from "@/hooks/usePaginationApi";
-import { getUpkeepPage, delUpkeep } from "@/api/equipmentManagement/upkeep";
-import { onMounted } from "vue";
+import {getUpkeepPage, delUpkeep, getUpkeepById} from "@/api/equipmentManagement/upkeep";
+import { onMounted, getCurrentInstance } from "vue";
 import PlanModal from "./Modal/PlanModal.vue";
 import MaintenanceModal from "./Modal/MaintenanceModal.vue";
+import ImagePreviewDialog from "@/components/ImagePreview/ImagePreviewDialog.vue";
 import dayjs from "dayjs";
 import { ElMessageBox, ElMessage } from "element-plus";
 
 defineOptions({
   name: "璁惧淇濆吇",
 });
+
+const { proxy } = getCurrentInstance();
 
 // 璁″垝寮圭獥鎺у埗鍣�
 const planModalRef = ref();
@@ -139,6 +154,9 @@
 
 // 琛ㄦ牸澶氶�夋閫変腑椤�
 const multipleList = ref([]);
+
+const showImages = ref(false)
+const imageUrls = ref([])
 
 // 澶氶�夊悗鍋氫粈涔�
 const handleSelectionChange = (selectionList) => {
@@ -154,7 +172,12 @@
   getTableData,
   resetFilters,
   onCurrentChange,
-} = usePaginationApi(getUpkeepPage, {}, [
+} = usePaginationApi(getUpkeepPage, {
+  deviceName: undefined,
+  maintenancePlanTime: undefined,
+  maintenanceActuallyTime: undefined,
+  maintenanceActuallyName: undefined,
+}, [
   {
     label: "璁惧鍚嶇О",
     align: "center",
@@ -176,13 +199,13 @@
     align: "center",
     prop: "createUserName",
   },
-  {
-    label: "褰曞叆鏃ユ湡",
-    align: "center",
-    prop: "createTime",
-    formatData: (cell) => dayjs(cell).format("YYYY-MM-DD HH:mm:ss"),
-    width: 200,
-  },
+  // {
+  //   label: "褰曞叆鏃ユ湡",
+  //   align: "center",
+  //   prop: "createTime",
+  //   formatData: (cell) => dayjs(cell).format("YYYY-MM-DD HH:mm:ss"),
+  //   width: 200,
+  // },
   {
     label: "瀹為檯淇濆吇浜�",
     align: "center",
@@ -215,7 +238,7 @@
     dataType: "slot",
     slot: "operation",
     align: "center",
-    width: "200px",
+    width: "300px",
   },
 ]);
 // type == 1瀹為檯淇濆吇鏃堕棿 2璁″垝淇濆吇鏃堕棿
@@ -250,9 +273,10 @@
   planModalRef.value.openEdit(id);
 };
 
-const changePage = ({ page }) => {
-  pagination.currentPage = page;
-  onCurrentChange(page);
+const changePage = ({ page, limit }) => {
+	pagination.currentPage = page;
+	pagination.pageSize = limit;
+	onCurrentChange(page);
 };
 
 // 鍗曡鍒犻櫎
@@ -270,6 +294,27 @@
   });
 };
 
+// 瀵煎嚭
+const handleOut = () => {
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      proxy.download("/device/maintenance/export", {}, "璁惧淇濆吇.xlsx");
+    })
+    .catch(() => {
+      ElMessage.info("宸插彇娑�");
+    });
+};
+
+const showImage = async (row) => {
+  const {data} = await getUpkeepById(row.id)
+  imageUrls.value = data?.files.map((item) => item.url)
+  showImages.value = true
+}
+
 onMounted(() => {
   getTableData();
 });

--
Gitblit v1.9.3