材料站出库--二维码下载与生成
This commit is contained in:
parent
fc65fc81c2
commit
626ddc27a5
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue