材料站出库--二维码下载与生成

This commit is contained in:
hayu 2025-11-01 14:36:28 +08:00
parent fc65fc81c2
commit 626ddc27a5
1 changed files with 49 additions and 10 deletions

View File

@ -172,6 +172,9 @@
<el-col :span="1.5" v-if="maForm.pickType == 0">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleSave(0)"> </el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-download" size="mini" @click="downloadQrCodes()">二维码下载</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="equipmentList">
@ -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