gaoluyang
2 天以前 9aae2af6f3937a7d99ec619b51f457002cef969f
src/views/fileManagement/borrow/index.vue
@@ -44,6 +44,9 @@
            <el-icon><Plus /></el-icon>
            新增借阅
          </el-button>
          <el-button @click="handleOut">
            导出
          </el-button>
          <el-button
            type="danger"
            @click="handleBatchDelete"
@@ -90,10 +93,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 +100,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 +204,7 @@
const borrowList = ref([]);
const selectedRows = ref([]);
const documentList = ref([]); // 文档列表,用于借阅书籍选择
const scanContent = ref() // 扫码内容
// 分页相关
const pagination = reactive({
  currentPage: 1,
@@ -221,7 +237,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" }],
@@ -295,6 +311,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 = [];
@@ -368,6 +385,37 @@
  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 = async (type, data) => {
  // 先刷新文档列表
@@ -375,7 +423,8 @@
  
  borrowOperationType.value = type;
  borrowDia.value = true;
  scanContent.value = ''; // 清空扫码内容
  if (type === "edit") {
    // 编辑模式,加载现有数据
    Object.assign(borrowForm, data);
@@ -395,6 +444,7 @@
const closeBorrowDia = () => {
  proxy.$refs.borrowFormRef.resetFields();
  borrowDia.value = false;
  scanContent.value = ''; // 清空扫码内容
};
// 提交借阅表单
@@ -510,6 +560,21 @@
  });
};
// 导出
const handleOut = () => {
  ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
    confirmButtonText: "确认",
    cancelButtonText: "取消",
    type: "warning",
  })
    .then(() => {
      proxy.download("/documentationBorrowManagement/export", {}, "借阅管理.xlsx");
    })
    .catch(() => {
      ElMessage.info("已取消");
    });
};
// 选择变化事件
const handleSelectionChange = (selection) => {
  selectedRows.value = selection;