材料站出库--二维码下载与生成
This commit is contained in:
parent
fc65fc81c2
commit
626ddc27a5
|
|
@ -172,6 +172,9 @@
|
||||||
<el-col :span="1.5" v-if="maForm.pickType == 0">
|
<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-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleSave(0)">暂 存</el-button>
|
||||||
</el-col>
|
</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-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="equipmentList">
|
<el-table v-loading="loading" :data="equipmentList">
|
||||||
|
|
@ -252,6 +255,7 @@ import {
|
||||||
import Treeselect from '@riophae/vue-treeselect'
|
import Treeselect from '@riophae/vue-treeselect'
|
||||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
import OutCodeDlg from './OutCodeDlg.vue'
|
import OutCodeDlg from './OutCodeDlg.vue'
|
||||||
|
import {downloadQrCodesApi} from "@/api/code/code";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
dicts: ['purchase_task_status'],
|
dicts: ['purchase_task_status'],
|
||||||
|
|
@ -454,6 +458,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
downloadQrCodesApi,
|
||||||
// 单号查询
|
// 单号查询
|
||||||
async handleQuery() {
|
async handleQuery() {
|
||||||
if (!this.code || String(this.code).trim() === '') {
|
if (!this.code || String(this.code).trim() === '') {
|
||||||
|
|
@ -463,11 +468,8 @@ export default {
|
||||||
|
|
||||||
const loading = this.$loading({ text: '加载中...' })
|
const loading = this.$loading({ text: '加载中...' })
|
||||||
try {
|
try {
|
||||||
// 调后台接口按单号查询,注意替换 api 名称为你真实的接口函数
|
|
||||||
// 假设 API 返回结构类似:{ code: 200, data: { leaseApplyInfo: {...}, leaseApplyDetailsList: [...] } }
|
|
||||||
// 示例用 getLeaseDataByCode,若你的接口名不同请替换
|
|
||||||
const params = { code: this.code }
|
const params = { code: this.code }
|
||||||
const res = await getLeaseDataByCode(params) // <-- 若你的 API 名称不是这个,请替换
|
const res = await getLeaseDataByCode(params)
|
||||||
// 处理接口返回
|
// 处理接口返回
|
||||||
if (!res || (!res.data && res.code !== 200)) {
|
if (!res || (!res.data && res.code !== 200)) {
|
||||||
this.$message.error(res.msg || '未查询到该单号信息')
|
this.$message.error(res.msg || '未查询到该单号信息')
|
||||||
|
|
@ -483,12 +485,6 @@ export default {
|
||||||
return
|
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))
|
const isProIdValid = this.projectList.some(item => String(item.proId) == String(leaseApplyInfo.proId))
|
||||||
|
|
||||||
if (!isProIdValid) {
|
if (!isProIdValid) {
|
||||||
|
|
@ -1034,6 +1030,49 @@ export default {
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.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) {
|
handleOutCode(row) {
|
||||||
this.rowData = row
|
this.rowData = row
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue