From 376cab4afba8fd1b8be67cae067ed917462c2e16 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 18 十二月 2025 09:05:12 +0800
Subject: [PATCH] 添加设备报修和保养附件管理功能,维修保养过程描述

---
 src/views/equipmentManagement/repair/index.vue |   99 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 87 insertions(+), 12 deletions(-)

diff --git a/src/views/equipmentManagement/repair/index.vue b/src/views/equipmentManagement/repair/index.vue
index 03bef84..bff058a 100644
--- a/src/views/equipmentManagement/repair/index.vue
+++ b/src/views/equipmentManagement/repair/index.vue
@@ -7,7 +7,6 @@
             style="width: 240px"
             placeholder="璇疯緭鍏ヨ澶囧悕绉�"
             clearable
-            :prefix-icon="Search"
             @change="getTableData"
         />
       </el-form-item>
@@ -17,7 +16,6 @@
             style="width: 240px"
             placeholder="璇烽�夋嫨瑙勬牸鍨嬪彿"
             clearable
-            :prefix-icon="Search"
             @change="getTableData"
         />
       </el-form-item>
@@ -27,7 +25,6 @@
             style="width: 240px"
             placeholder="璇疯緭鍏ユ晠闅滅幇璞�"
             clearable
-            :prefix-icon="Search"
             @change="getTableData"
         />
       </el-form-item>
@@ -37,8 +34,25 @@
             style="width: 240px"
             placeholder="璇疯緭鍏ョ淮淇汉"
             clearable
-            :prefix-icon="Search"
             @change="getTableData"
+        />
+      </el-form-item>
+      <el-form-item label="鎶ヤ慨鏃ユ湡">
+        <el-date-picker
+            v-model="filters.repairTimeStr"
+            type="date"
+            placeholder="璇烽�夋嫨鎶ヤ慨鏃ユ湡"
+            size="default"
+            @change="(date) => handleDateChange(date,2)"
+        />
+      </el-form-item>
+      <el-form-item label="缁翠慨鏃ユ湡">
+        <el-date-picker
+            v-model="filters.maintenanceTimeStr"
+            type="date"
+            placeholder="璇烽�夋嫨缁翠慨鏃ユ湡"
+            size="default"
+            @change="(date) => handleDateChange(date,1)"
         />
       </el-form-item>
       <el-form-item>
@@ -60,6 +74,9 @@
           </el-button>
           <el-button type="success" icon="Van" @click="addRepair">
             鏂板鎶ヤ慨
+          </el-button>
+          <el-button @click="handleOut">
+            瀵煎嚭
           </el-button>
           <el-button
             type="danger"
@@ -98,6 +115,14 @@
             缂栬緫
           </el-button>
           <el-button
+              type="primary"
+              text
+              icon="folder"
+              @click="openFilesForm(row)"
+          >
+            闄勪欢
+          </el-button>
+          <el-button
             type="danger"
             text
             icon="delete"
@@ -110,26 +135,29 @@
     </div>
     <RepairModal ref="repairModalRef" @ok="getTableData" />
     <MaintainModal ref="maintainModalRef" @ok="getTableData" />
+    <files-dia ref="filesDia"></files-dia>
   </div>
 </template>
 
 <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";
 import MaintainModal from "./Modal/MaintainModal.vue";
-
+import FilesDia from "./filesDia.vue";
 defineOptions({
   name: "璁惧鎶ヤ慨",
 });
 
+const { proxy } = getCurrentInstance();
+
 // 妯℃�佹瀹炰緥
 const repairModalRef = ref();
 const maintainModalRef = ref();
-
+const filesDia = ref()
 // 琛ㄦ牸澶氶�夋閫変腑椤�
 const multipleList = ref([]);
 
@@ -145,7 +173,12 @@
 } = usePaginationApi(
   getRepairPage,
   {
-    searchText: undefined,
+    deviceName: undefined,
+    deviceModel: undefined,
+    remark: undefined,
+    maintenanceName: undefined,
+    repairTimeStr: undefined,
+    maintenanceTimeStr: undefined,
   },
   [
     {
@@ -173,6 +206,11 @@
       label: "鏁呴殰鐜拌薄",
       align: "center",
       prop: "remark",
+    },
+    {
+      label: "淇濆吇杩涘害鎻忚堪",
+      align: "center",
+      prop: "maintenanceProcessDesc",
     },
     {
       label: "缁翠慨浜�",
@@ -208,6 +246,22 @@
   ]
 );
 
+// type === 1 缁翠慨 2鎶ヤ慨闂�
+const handleDateChange = (value,type) => {
+  filters.maintenanceTimeStr = null
+  filters.c = null
+  if(type === 1){
+    if (value) {
+      filters.maintenanceTimeStr = dayjs(value).format("YYYY-MM-DD");
+    }
+  }else{
+    if (value) {
+      filters.repairTimeStr = dayjs(value).format("YYYY-MM-DD");
+    }
+  }
+  getTableData();
+};
+
 // 澶氶�夊悗鍋氫粈涔�
 const handleSelectionChange = (selectionList) => {
   multipleList.value = selectionList;
@@ -222,16 +276,22 @@
 const editRepair = (id) => {
   repairModalRef.value.openEdit(id);
 };
-
+// 鎵撳紑闄勪欢寮规
+const openFilesForm = (row) => {
+  nextTick(() => {
+    filesDia.value?.openDialog( row,'璁惧鎶ヤ慨')
+  })
+};
 // 鏂板缁翠慨
 const addMaintain = () => {
   const row = multipleList.value[0];
   maintainModalRef.value.open(row.id, row);
 };
 
-const changePage = ({ page }) => {
-  pagination.currentPage = page;
-  onCurrentChange(page);
+const changePage = ({ page, limit }) => {
+	pagination.currentPage = page;
+	pagination.pageSize = limit;
+	onCurrentChange(page);
 };
 
 // 鍗曡鍒犻櫎
@@ -249,6 +309,21 @@
   });
 };
 
+// 瀵煎嚭
+const handleOut = () => {
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      proxy.download("/device/repair/export", {}, "璁惧鎶ヤ慨.xlsx");
+    })
+    .catch(() => {
+      ElMessage.info("宸插彇娑�");
+    });
+};
+
 onMounted(() => {
   getTableData();
 });

--
Gitblit v1.9.3