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/borrow/index.vue |   83 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 74 insertions(+), 9 deletions(-)

diff --git a/src/views/fileManagement/borrow/index.vue b/src/views/fileManagement/borrow/index.vue
index 6875571..5407ec5 100644
--- a/src/views/fileManagement/borrow/index.vue
+++ b/src/views/fileManagement/borrow/index.vue
@@ -44,6 +44,9 @@
             <el-icon><Plus /></el-icon>
             鏂板鍊熼槄
           </el-button>
+          <el-button @click="handleOut">
+            瀵煎嚭
+          </el-button>
           <el-button
             type="danger"
             @click="handleBatchDelete"
@@ -90,10 +93,6 @@
         ref="borrowFormRef"
       >
         <el-row :gutter="20">
-          
-        </el-row>
-        
-                 <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="鍊熼槄浜猴細" prop="borrower">
                <el-input v-model="borrowForm.borrower" placeholder="璇疯緭鍏ュ�熼槄浜�" />
@@ -101,14 +100,31 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="鍊熼槄涔︾睄锛�" prop="documentationId">
-               <el-select v-model="borrowForm.documentationId" placeholder="璇烽�夋嫨鍊熼槄涔︾睄" style="width: 100%">
+               <!-- <el-select v-model="borrowForm.documentationId" placeholder="璇烽�夋嫨鍊熼槄涔︾睄" style="width: 100%" @change="handleScanContent">
                  <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="borrowForm.documentationId" placeholder="璇烽�夋嫨鍊熼槄涔︾睄" style="flex: 1;width: 100px;" @change="handleSelectChange">
+                  <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="width: 100px;"
+                  @input="handleScanContent"
+                  clearable
+                />
+              </div>
              </el-form-item>
            </el-col>
          </el-row>
@@ -188,7 +204,7 @@
 const borrowList = ref([]);
 const selectedRows = ref([]);
 const documentList = ref([]); // 鏂囨。鍒楄〃锛岀敤浜庡�熼槄涔︾睄閫夋嫨
-
+const scanContent = ref() // 鎵爜鍐呭
 // 鍒嗛〉鐩稿叧
 const pagination = reactive({
   currentPage: 1,
@@ -221,7 +237,7 @@
 
 // 琛ㄥ崟楠岃瘉瑙勫垯
 const borrowRules = reactive({
-  documentationId: [{ required: true, message: "璇烽�夋嫨鍊熼槄涔︾睄", trigger: "change" }],
+  
   borrower: [{ required: true, message: "璇疯緭鍏ュ�熼槄浜�", trigger: "blur" }],
   borrowPurpose: [{ required: true, message: "璇疯緭鍏ュ�熼槄鐩殑", trigger: "blur" }],
   borrowDate: [{ required: true, message: "璇烽�夋嫨鍊熼槄鏃ユ湡", trigger: "change" }],
@@ -295,6 +311,7 @@
     const res = await getDocumentList();
     if (res.code === 200) {
       documentList.value = res.data || [];
+      console.log("shuju",documentList.value)
     } else {
       ElMessage.error(res.msg || "鑾峰彇鏂囨。鍒楄〃澶辫触");
       documentList.value = [];
@@ -368,6 +385,37 @@
   ElMessage.success("鏌ヨ鏉′欢宸查噸缃�");
 };
 
+// 澶勭悊涓嬫媺閫夋嫨鍙樺寲
+const handleSelectChange = (value) => {
+  // 褰撲笅鎷夋閫夋嫨鏃讹紝娓呯┖鎵爜杈撳叆妗�
+  scanContent.value = '';
+};
+
+// 澶勭悊鎵爜鍐呭
+const handleScanContent = async (value) => {
+  if (!value) return;
+  try {
+    // 鏌ユ壘鎵弿鍐呭瀵瑰簲鐨勬枃妗�
+    const matchedDoc = documentList.value.find(item => 
+      item.id == value 
+    );
+    console.log("matchedDoc", matchedDoc);
+
+    
+    if (matchedDoc) {
+      
+      // 鎵惧埌鍖归厤鐨勬枃妗o紝璁剧疆琛ㄥ崟鍊�
+      borrowForm.documentationId = matchedDoc.id;
+      ElMessage.success(`宸查�夋嫨: ${matchedDoc.docName || matchedDoc.name}`);
+    } else {
+      // 鏈壘鍒板尮閰嶇殑鏂囨。锛屾彁绀虹敤鎴�
+      ElMessage.warning('鏈壘鍒板搴旂殑涔︾睄锛岃妫�鏌ユ壂鐮佸唴瀹规垨鎵嬪姩閫夋嫨');
+    }
+  } catch (error) {
+    ElMessage.error('鎵爜澶勭悊澶辫触锛岃閲嶈瘯');
+    console.error('鎵爜澶勭悊閿欒:', error);
+  }
+}
 // 鎵撳紑鍊熼槄寮规
 const openBorrowDia = async (type, data) => {
   // 鍏堝埛鏂版枃妗e垪琛�
@@ -375,7 +423,8 @@
   
   borrowOperationType.value = type;
   borrowDia.value = true;
-  
+  scanContent.value = ''; // 娓呯┖鎵爜鍐呭
+
   if (type === "edit") {
     // 缂栬緫妯″紡锛屽姞杞界幇鏈夋暟鎹�
     Object.assign(borrowForm, data);
@@ -395,6 +444,7 @@
 const closeBorrowDia = () => {
   proxy.$refs.borrowFormRef.resetFields();
   borrowDia.value = false;
+  scanContent.value = ''; // 娓呯┖鎵爜鍐呭
 };
 
 // 鎻愪氦鍊熼槄琛ㄥ崟
@@ -510,6 +560,21 @@
   });
 };
 
+// 瀵煎嚭
+const handleOut = () => {
+  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+    confirmButtonText: "纭",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
+    .then(() => {
+      proxy.download("/documentationBorrowManagement/export", {}, "鍊熼槄绠$悊.xlsx");
+    })
+    .catch(() => {
+      ElMessage.info("宸插彇娑�");
+    });
+};
+
 // 閫夋嫨鍙樺寲浜嬩欢
 const handleSelectionChange = (selection) => {
   selectedRows.value = selection;

--
Gitblit v1.9.3