| | |
| | | <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> --> |
| | | <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" |
| | |
| | | :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"> |
| | |
| | | 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(); |
| | | |
| | |
| | | const returnList = ref([]); |
| | | const selectedRows = ref([]); |
| | | const documentList = ref([]); // 文档列表 |
| | | const borrowInfoList = ref([]); // 借阅信息列表 |
| | | const scanContent = ref(''); // 扫码内容 |
| | | |
| | | // 分页相关 |
| | | const pagination = reactive({ |
| | |
| | | const openReturnDia = (type, data) => { |
| | | returnOperationType.value = type; |
| | | returnDia.value = true; |
| | | scanContent.value = ''; // 清空扫码内容 |
| | | borrowInfoList.value = []; // 清空借阅信息列表 |
| | | |
| | | if (type === "edit") { |
| | | // 编辑模式,加载现有数据 |
| | |
| | | const closeReturnDia = () => { |
| | | proxy.$refs.returnFormRef.resetFields(); |
| | | returnDia.value = false; |
| | | scanContent.value = ''; // 清空扫码内容 |
| | | borrowInfoList.value = []; // 清空借阅信息列表 |
| | | }; |
| | | |
| | | // 提交归还表单 |
| | |
| | | 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) { |
| | | // 根据选择的文档ID,从文档列表中查找对应的文档信息 |
| | | 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); |
| | | } |
| | | |
| | | // 如果借阅信息列表中没有找到,从文档列表中查找 |
| | | 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 { |
| | | // 清空相关字段 |
| | |
| | | returnForm.dueReturnDate = ''; |
| | | } |
| | | }; |
| | | // const handleDocumentChange = (documentId) => { |
| | | // // 当下拉框选择时,清空扫码输入框 |
| | | // scanContent.value = ''; |
| | | // if (documentId) { |
| | | // // 根据选择的文档ID,从文档列表中查找对应的文档信息 |
| | | // 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(() => { |