From ee56d420df75e3284a1fe4756363fa3c924b9190 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 03 十一月 2025 15:34:52 +0800
Subject: [PATCH] 能耗管理-添加导出功能

---
 src/views/fileManagement/borrow/index.vue |   95 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 79 insertions(+), 16 deletions(-)

diff --git a/src/views/fileManagement/borrow/index.vue b/src/views/fileManagement/borrow/index.vue
index 9a9ee81..705a0f8 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" }],
@@ -233,13 +249,8 @@
 const tableColumns = ref([
   { 
     label: '鏂囨。鍚嶇О', 
-    prop: 'documentationId',
+    prop: 'docName',
     width: '200',
-    formatData: (params) => {
-      if (!params) return '-';
-      const doc = documentList.value.find(item => item.id === params);
-      return doc ? (doc.docName || doc.name) : params;
-    }
   },
   { label: '鍊熼槄浜�', prop: 'borrower' },
   { label: '鍊熼槄鐩殑', prop: 'borrowPurpose' },
@@ -300,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 = [];
@@ -373,11 +385,46 @@
   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 = (type, data) => {
+const openBorrowDia = async (type, data) => {
+  // 鍏堝埛鏂版枃妗e垪琛�
+  await loadDocumentList();
+  
   borrowOperationType.value = type;
   borrowDia.value = true;
-  
+  scanContent.value = ''; // 娓呯┖鎵爜鍐呭
+
   if (type === "edit") {
     // 缂栬緫妯″紡锛屽姞杞界幇鏈夋暟鎹�
     Object.assign(borrowForm, data);
@@ -397,6 +444,7 @@
 const closeBorrowDia = () => {
   proxy.$refs.borrowFormRef.resetFields();
   borrowDia.value = false;
+  scanContent.value = ''; // 娓呯┖鎵爜鍐呭
 };
 
 // 鎻愪氦鍊熼槄琛ㄥ崟
@@ -512,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