From 9aae2af6f3937a7d99ec619b51f457002cef969f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 03 十一月 2025 14:29:37 +0800
Subject: [PATCH] 档案管理-添加导出功能

---
 src/views/fileManagement/return/index.vue |  128 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 116 insertions(+), 12 deletions(-)

diff --git a/src/views/fileManagement/return/index.vue b/src/views/fileManagement/return/index.vue
index a95c8af..34e733f 100644
--- a/src/views/fileManagement/return/index.vue
+++ b/src/views/fileManagement/return/index.vue
@@ -52,6 +52,9 @@
             <el-icon><Plus /></el-icon>
             鏂板褰掕繕
           </el-button>
+          <el-button @click="handleOut">
+            瀵煎嚭
+          </el-button>
           <el-button
             type="danger"
             @click="handleBatchDelete"
@@ -100,14 +103,31 @@
                  <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="鏂囨。锛�" prop="borrowId">
-               <el-select v-model="returnForm.borrowId" placeholder="璇烽�夋嫨鏂囨。" style="width: 100%" @change="handleDocumentChange">
+               <!-- <el-select v-model="returnForm.borrowId" placeholder="璇烽�夋嫨鏂囨。" style="flex: 1;" @change="handleDocumentChange">
                  <el-option 
                    v-for="item in documentList" 
                    :key="item.id" 
                    :label="item.docName || item.name" 
                    :value="item.id"
                  />
-               </el-select>
+               </el-select> -->
+               <div style="display: flex; gap: 10px;">
+                <el-select v-model="returnForm.borrowId" placeholder="璇烽�夋嫨鏂囨。" style="width: 120px;" @change="handleDocumentChange">
+                  <el-option 
+                    v-for="item in documentList" 
+                    :key="item.id" 
+                    :label="item.docName || item.name" 
+                    :value="item.id"
+                  />
+                </el-select>
+                <el-input
+                  v-model="scanContent"
+                  placeholder="鎵爜杈撳叆"
+                  style="flex: 1;"
+                  @input="handleScanContent"
+                  clearable
+                />
+              </div>
              </el-form-item>
            </el-col>
            <el-col :span="12">
@@ -182,7 +202,7 @@
 import { ElMessageBox, ElMessage } from "element-plus";
 import { Search, Refresh, Plus, Delete } from '@element-plus/icons-vue';
 import PIMTable from '@/components/PIMTable/PIMTable.vue';
-import { getReturnListPage, returnDocument, deleteReturn, getDocumentList, updateBorrow, reventUpdate } from '@/api/fileManagement/return';
+import { getReturnListPage, returnDocument, deleteReturn, getDocumentList, updateBorrow, reventUpdate,getBorrowListByDocumentationId } from '@/api/fileManagement/return';
 
 const { proxy } = getCurrentInstance();
 
@@ -193,6 +213,8 @@
 const returnList = ref([]);
 const selectedRows = ref([]);
 const documentList = ref([]); // 鏂囨。鍒楄〃
+const borrowInfoList = ref([]); // 鍊熼槄淇℃伅鍒楄〃
+const scanContent = ref(); // 鎵爜鍐呭
 
 // 鍒嗛〉鐩稿叧
 const pagination = reactive({
@@ -368,7 +390,9 @@
 const openReturnDia = (type, data) => {
   returnOperationType.value = type;
   returnDia.value = true;
-  
+  scanContent.value = ''; // 娓呯┖鎵爜鍐呭
+  borrowInfoList.value = []; // 娓呯┖鍊熼槄淇℃伅鍒楄〃
+
   if (type === "edit") {
     // 缂栬緫妯″紡锛屽姞杞界幇鏈夋暟鎹�
     Object.assign(returnForm, data);
@@ -392,6 +416,8 @@
 const closeReturnDia = () => {
   proxy.$refs.returnFormRef.resetFields();
   returnDia.value = false;
+  scanContent.value = ''; // 娓呯┖鎵爜鍐呭
+  borrowInfoList.value = []; // 娓呯┖鍊熼槄淇℃伅鍒楄〃
 };
 
 // 鎻愪氦褰掕繕琛ㄥ崟
@@ -506,6 +532,21 @@
   });
 };
 
+// 瀵煎嚭
+const handleOut = () => {
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      proxy.download("/documentationBorrowManagement/exportrevent", {}, "褰掕繕鐧昏.xlsx");
+    })
+    .catch(() => {
+      ElMessage.info("宸插彇娑�");
+    });
+};
+
 // 閫夋嫨鍙樺寲浜嬩欢
 const handleSelectionChange = (selection) => {
   selectedRows.value = selection;
@@ -517,16 +558,62 @@
   pagination.pageSize = size;
   loadReturnList();
 };
-
+// 澶勭悊鎵爜鍐呭
+const handleScanContent = async (value) => {
+  if (!value) return;
+  
+  try {
+    // 璋冪敤API鏍规嵁涔︾睄ID鑾峰彇鍊熼槄淇℃伅
+    const res = await getBorrowListByDocumentationId(value);
+    
+    if (res.code === 200 && res.data && res.data.length > 0) {
+      // 淇濆瓨鑾峰彇鍒扮殑鍊熼槄淇℃伅鍒楄〃
+      borrowInfoList.value = res.data;
+      
+      // 濡傛灉鍙湁涓�鏉¤褰曪紝鐩存帴閫夋嫨
+      if (res.data.length === 1) {
+        const borrowInfo = res.data[0];
+        returnForm.borrowId = borrowInfo.id;
+        returnForm.borrower = borrowInfo.borrower || borrowInfo.borrowerName || '';
+        returnForm.dueReturnDate = borrowInfo.dueReturnDate || borrowInfo.expectedReturnDate || '';
+        ElMessage.success(`宸查�夋嫨: ${borrowInfo.docName || borrowInfo.name}`);
+      } else {
+        // 濡傛灉鏈夊鏉¤褰曪紝鏄剧ず閫夋嫨鎻愮ず
+        ElMessage.success(`鎵惧埌 ${res.data.length} 鏉$浉鍏冲�熼槄璁板綍锛岃浠庝笅鎷夊垪琛ㄤ腑閫夋嫨`);
+        // 閲嶆柊鍔犺浇鏂囨。鍒楄〃锛屽寘鍚渶鏂扮殑鍊熼槄淇℃伅
+        await loadDocumentList();
+      }
+    } else {
+      // 鏈壘鍒板尮閰嶇殑鍊熼槄璁板綍
+      ElMessage.warning('鏈壘鍒板搴旂殑鍊熼槄璁板綍锛岃妫�鏌ユ壂鐮佸唴瀹规垨鎵嬪姩閫夋嫨');
+    }
+  } catch (error) {
+    ElMessage.error('鎵爜澶勭悊澶辫触锛岃閲嶈瘯');
+    console.error('鎵爜澶勭悊閿欒:', error);
+  }
+};
 // 澶勭悊鏂囨。閫夋嫨鍙樺寲
-const handleDocumentChange = (documentId) => {
-  if (documentId) {
-    // 鏍规嵁閫夋嫨鐨勬枃妗D锛屼粠鏂囨。鍒楄〃涓煡鎵惧搴旂殑鏂囨。淇℃伅
-    const selectedDoc = documentList.value.find(doc => doc.id === documentId);
-    if (selectedDoc) {
+// 澶勭悊鏂囨。閫夋嫨鍙樺寲
+const handleDocumentChange = (borrowId) => {
+  // 褰撲笅鎷夋閫夋嫨鏃讹紝娓呯┖鎵爜杈撳叆妗�
+  scanContent.value = '';
+  
+  if (borrowId) {
+    // 浼樺厛浠庡�熼槄淇℃伅鍒楄〃涓煡鎵�
+    let selectedInfo;
+    if (borrowInfoList.value.length > 0) {
+      selectedInfo = borrowInfoList.value.find(info => info.id === borrowId);
+    }
+    
+    // 濡傛灉鍊熼槄淇℃伅鍒楄〃涓病鏈夋壘鍒帮紝浠庢枃妗e垪琛ㄤ腑鏌ユ壘
+    if (!selectedInfo) {
+      selectedInfo = documentList.value.find(doc => doc.id === borrowId);
+    }
+    
+    if (selectedInfo) {
       // 鑷姩濉厖鍊熼槄浜哄拰搴斿綊杩樻棩鏈�
-      returnForm.borrower = selectedDoc.borrower || selectedDoc.borrowerName || '';
-      returnForm.dueReturnDate = selectedDoc.dueReturnDate || selectedDoc.expectedReturnDate || '';
+      returnForm.borrower = selectedInfo.borrower || selectedInfo.borrowerName || '';
+      returnForm.dueReturnDate = selectedInfo.dueReturnDate || selectedInfo.expectedReturnDate || '';
     }
   } else {
     // 娓呯┖鐩稿叧瀛楁
@@ -534,6 +621,23 @@
     returnForm.dueReturnDate = '';
   }
 };
+// const handleDocumentChange = (documentId) => {
+//   // 褰撲笅鎷夋閫夋嫨鏃讹紝娓呯┖鎵爜杈撳叆妗�
+//   scanContent.value = '';
+//   if (documentId) {
+//     // 鏍规嵁閫夋嫨鐨勬枃妗D锛屼粠鏂囨。鍒楄〃涓煡鎵惧搴旂殑鏂囨。淇℃伅
+//     const selectedDoc = documentList.value.find(doc => doc.id === documentId);
+//     if (selectedDoc) {
+//       // 鑷姩濉厖鍊熼槄浜哄拰搴斿綊杩樻棩鏈�
+//       returnForm.borrower = selectedDoc.borrower || selectedDoc.borrowerName || '';
+//       returnForm.dueReturnDate = selectedDoc.dueReturnDate || selectedDoc.expectedReturnDate || '';
+//     }
+//   } else {
+//     // 娓呯┖鐩稿叧瀛楁
+//     returnForm.borrower = '';
+//     returnForm.dueReturnDate = '';
+//   }
+// };
 
 // 鐢熷懡鍛ㄦ湡
 onMounted(() => {

--
Gitblit v1.9.3