gaoluyang
2025-09-26 febbfe17f1ae201e62b9f23c7f29671251348e38
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,
@@ -221,7 +234,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 +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' },
@@ -300,6 +308,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 +382,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) {
      // 找到匹配的文档,设置表单值
      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) => {
  // 先刷新文档列表
  await loadDocumentList();
  borrowOperationType.value = type;
  borrowDia.value = true;
  scanContent.value = ''; // 清空扫码内容
  if (type === "edit") {
    // 编辑模式,加载现有数据
    Object.assign(borrowForm, data);
@@ -397,6 +441,7 @@
const closeBorrowDia = () => {
  proxy.$refs.borrowFormRef.resetFields();
  borrowDia.value = false;
  scanContent.value = ''; // 清空扫码内容
};
// 提交借阅表单