yaowanxin
2025-09-26 1021003321fe54f3f45d77457db86105d206551a
src/views/fileManagement/return/index.vue
@@ -100,7 +100,16 @@
                 <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" 
@@ -108,6 +117,14 @@
                   :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">
@@ -182,7 +199,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();
@@ -193,6 +210,8 @@
const returnList = ref([]);
const selectedRows = ref([]);
const documentList = ref([]); // 文档列表
const borrowInfoList = ref([]); // 借阅信息列表
const scanContent = ref(''); // 扫码内容
// 分页相关
const pagination = reactive({
@@ -368,6 +387,8 @@
const openReturnDia = (type, data) => {
  returnOperationType.value = type;
  returnDia.value = true;
  scanContent.value = ''; // 清空扫码内容
  borrowInfoList.value = []; // 清空借阅信息列表
  
  if (type === "edit") {
    // 编辑模式,加载现有数据
@@ -392,6 +413,8 @@
const closeReturnDia = () => {
  proxy.$refs.returnFormRef.resetFields();
  returnDia.value = false;
  scanContent.value = ''; // 清空扫码内容
  borrowInfoList.value = []; // 清空借阅信息列表
};
// 提交归还表单
@@ -517,16 +540,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) {
    // 根据选择的文档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 {
    // 清空相关字段
@@ -534,6 +603,23 @@
    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(() => {