From 1021003321fe54f3f45d77457db86105d206551a Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期五, 26 九月 2025 14:04:34 +0800
Subject: [PATCH] 档案管理-书籍二维码生成,借阅-归还扫瞄

---
 src/views/fileManagement/borrow/index.vue |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 58 insertions(+), 15 deletions(-)

diff --git a/src/views/fileManagement/borrow/index.vue b/src/views/fileManagement/borrow/index.vue
index 9a9ee81..531feb6 100644
--- a/src/views/fileManagement/borrow/index.vue
+++ b/src/views/fileManagement/borrow/index.vue
@@ -90,10 +90,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 +97,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 +201,7 @@
 const borrowList = ref([]);
 const selectedRows = ref([]);
 const documentList = ref([]); // 鏂囨。鍒楄〃锛岀敤浜庡�熼槄涔︾睄閫夋嫨
-
+const scanContent = ref('') // 鎵爜鍐呭
 // 鍒嗛〉鐩稿叧
 const pagination = reactive({
   currentPage: 1,
@@ -233,13 +246,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' },
@@ -373,11 +381,45 @@
   ElMessage.success("鏌ヨ鏉′欢宸查噸缃�");
 };
 
+// 澶勭悊涓嬫媺閫夋嫨鍙樺寲
+const handleSelectChange = (value) => {
+  // 褰撲笅鎷夋閫夋嫨鏃讹紝娓呯┖鎵爜杈撳叆妗�
+  scanContent.value = '';
+};
+
+// 澶勭悊鎵爜鍐呭
+const handleScanContent = async (value) => {
+if (!value) return;
+  
+  try {
+    // 鏌ユ壘鎵弿鍐呭瀵瑰簲鐨勬枃妗�
+    // 鍋囪浜岀淮鐮佸寘鍚殑鏄枃妗D鎴栨枃妗e悕绉�
+    const matchedDoc = documentList.value.find(item => 
+      item.documentationId === value 
+    );
+    
+    if (matchedDoc) {
+      // 鎵惧埌鍖归厤鐨勬枃妗o紝璁剧疆琛ㄥ崟鍊�
+      borrowForm.documentationId = matchedDoc.documentationId;
+      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 +439,7 @@
 const closeBorrowDia = () => {
   proxy.$refs.borrowFormRef.resetFields();
   borrowDia.value = false;
+  scanContent.value = ''; // 娓呯┖鎵爜鍐呭
 };
 
 // 鎻愪氦鍊熼槄琛ㄥ崟

--
Gitblit v1.9.3