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 | 132 ++++++++++++++++++++++++++++++++++++++-----
1 files changed, 116 insertions(+), 16 deletions(-)
diff --git a/src/views/fileManagement/return/index.vue b/src/views/fileManagement/return/index.vue
index 80724ea..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"
@@ -81,10 +84,6 @@
@selection-change="handleSelectionChange"
@pagination="handlePagination"
/>
-
- <div v-if="returnList.length === 0" class="empty-data">
- 鏆傛棤鏁版嵁
- </div>
</div>
<!-- 褰掕繕鏂板/缂栬緫瀵硅瘽妗� -->
@@ -104,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">
@@ -186,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();
@@ -197,6 +213,8 @@
const returnList = ref([]);
const selectedRows = ref([]);
const documentList = ref([]); // 鏂囨。鍒楄〃
+const borrowInfoList = ref([]); // 鍊熼槄淇℃伅鍒楄〃
+const scanContent = ref(); // 鎵爜鍐呭
// 鍒嗛〉鐩稿叧
const pagination = reactive({
@@ -372,7 +390,9 @@
const openReturnDia = (type, data) => {
returnOperationType.value = type;
returnDia.value = true;
-
+ scanContent.value = ''; // 娓呯┖鎵爜鍐呭
+ borrowInfoList.value = []; // 娓呯┖鍊熼槄淇℃伅鍒楄〃
+
if (type === "edit") {
// 缂栬緫妯″紡锛屽姞杞界幇鏈夋暟鎹�
Object.assign(returnForm, data);
@@ -396,6 +416,8 @@
const closeReturnDia = () => {
proxy.$refs.returnFormRef.resetFields();
returnDia.value = false;
+ scanContent.value = ''; // 娓呯┖鎵爜鍐呭
+ borrowInfoList.value = []; // 娓呯┖鍊熼槄淇℃伅鍒楄〃
};
// 鎻愪氦褰掕繕琛ㄥ崟
@@ -510,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;
@@ -521,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 {
// 娓呯┖鐩稿叧瀛楁
@@ -538,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