diff --git a/src/views/materialsStation/toolsLease/outBound/component/addToolsApply.vue b/src/views/materialsStation/toolsLease/outBound/component/addToolsApply.vue index 90b6d921..33899605 100644 --- a/src/views/materialsStation/toolsLease/outBound/component/addToolsApply.vue +++ b/src/views/materialsStation/toolsLease/outBound/component/addToolsApply.vue @@ -172,6 +172,9 @@ 暂 存 + + 二维码下载 + @@ -252,6 +255,7 @@ import { import Treeselect from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import OutCodeDlg from './OutCodeDlg.vue' +import {downloadQrCodesApi} from "@/api/code/code"; export default { dicts: ['purchase_task_status'], @@ -454,6 +458,7 @@ export default { } }, methods: { + downloadQrCodesApi, // 单号查询 async handleQuery() { if (!this.code || String(this.code).trim() === '') { @@ -463,11 +468,8 @@ export default { const loading = this.$loading({ text: '加载中...' }) try { - // 调后台接口按单号查询,注意替换 api 名称为你真实的接口函数 - // 假设 API 返回结构类似:{ code: 200, data: { leaseApplyInfo: {...}, leaseApplyDetailsList: [...] } } - // 示例用 getLeaseDataByCode,若你的接口名不同请替换 const params = { code: this.code } - const res = await getLeaseDataByCode(params) // <-- 若你的 API 名称不是这个,请替换 + const res = await getLeaseDataByCode(params) // 处理接口返回 if (!res || (!res.data && res.code !== 200)) { this.$message.error(res.msg || '未查询到该单号信息') @@ -483,12 +485,6 @@ export default { return } - // // 若用户已在下拉选中一个工程,需要校验是否一致(若不一致则提示该领料单号不属于负责的工程并终止) - // if (this.maForm.proId && String(this.maForm.proId) !== String(leaseApplyInfo.proId)) { - // this.$message.warning('该领料单号不属于当前负责的工程') - // return - // } - const isProIdValid = this.projectList.some(item => String(item.proId) == String(leaseApplyInfo.proId)) if (!isProIdValid) { @@ -1034,6 +1030,49 @@ export default { }) .catch(() => {}) }, + // 二维码下载 + async downloadQrCodes() { + try { + // 1. 获取所有“编码管理”的数据行 + const codeManagedRows = this.equipmentList.filter(row => row.manageType == '0') + + if (codeManagedRows.length === 0) { + this.$message.warning('当前列表中没有编码管理的数据') + return + } + + // 2. 汇总所有的 maCodeList + const maCodeList = [] + codeManagedRows.forEach(row => { + if (Array.isArray(row.maCodeList) && row.maCodeList.length > 0) { + row.maCodeList.forEach(codeItem => { + maCodeList.push({ + ...codeItem, + typeName: row.typeName, + model: row.model, + }) + }) + } + }) + + if (maCodeList.length === 0) { + this.$message.warning('没有可下载的二维码数据(未选择编码或编码为空)') + return + } + console.log("编码列表",maCodeList) + const payload = { + maCodeList: maCodeList, + } + this.downloadZip( + '/material/material_lease_apply_info/downloadQrCode', + JSON.stringify(payload), + `QrCode_${new Date().toISOString().slice(0, 10)}.zip` + ) + } catch (err) { + console.error('downloadQrCodes error:', err) + this.$message.error('二维码下载失败,请稍后重试') + } + }, // 打开出库编码弹窗 handleOutCode(row) { this.rowData = row