From 1e91051ac727a6d6adcfb2be04ee385ca4846d98 Mon Sep 17 00:00:00 2001 From: xiangxy Date: Fri, 12 Dec 2025 15:49:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/General/warehouse-box.vue | 169 ++++++++++++++++++++++++++------ pages/Material/hw-out-store.vue | 94 ++++++++++++------ pages/Material/xlx-in-store.vue | 15 ++- utils/getData2.js | 10 +- 4 files changed, 221 insertions(+), 67 deletions(-) diff --git a/pages/General/warehouse-box.vue b/pages/General/warehouse-box.vue index db773bf..6363d81 100644 --- a/pages/General/warehouse-box.vue +++ b/pages/General/warehouse-box.vue @@ -118,6 +118,14 @@ + + + 机台编码 + + + + + @@ -125,6 +133,24 @@ + + + + 打印次数 + + + + + + + + + @@ -136,7 +162,7 @@ import {getDate} from '@/utils/utils.js' const currentDate = getDate({format: true}) // import {queryGroupQuality, queryNowVehicle} from '@/utils/mork2.js' - import {queryGroupQuality, queryNowVehicle, confirmBox, printDelete, queryPcsn} from '@/utils/getData2.js' + import {queryGroupQuality, queryNowVehicle, confirmBox, printDelete, queryPcsn, queryDevice} from '@/utils/getData2.js' export default { components: { NavBar, @@ -145,11 +171,15 @@ }, data() { return { + showCustomDialog: false, + printCount: 1, title: '', vehicleCode: '', date: currentDate, options1: [], index1: '', + options2: [], + index2: '', boxType: null, materialData: {}, suppData: {}, @@ -179,6 +209,7 @@ this.title = options.title this._queryGroupQuality() this._queryPcsn() + this._queryDevice() }, onShow () { if (this.$store.getters.publicObj !== '') { @@ -191,6 +222,12 @@ } }, methods: { + handlePrintConfirm() { + // 处理打印逻辑 + let data = Object.assign({}, this.materialData, this.suppData, {pcsn: this.pcsn, produce_time: this.date, bake_num: this.num}) + this.showCustomDialog = false + this.toPrint(data) + }, onInput(e) { // console.log('输入内容:', e.detail.value) }, @@ -253,6 +290,19 @@ this.options1 = [] } }, + /** 机台编码下拉框*/ + async _queryDevice () { + try { + let res = await queryDevice() + if (res && res.data) { + this.options2 = [...res.data] + } else { + this.options2 = [] + } + } catch (e) { + this.options2 = [] + } + }, toEmpty () { this.vehicleCode = '' this.date = currentDate @@ -271,7 +321,7 @@ return } try { - let res = await confirmBox(this.vehicleCode, this.materialData.material_id, this.materialData.material_code, this.materialData.material_name, this.suppData.supp_code, this.suppData.supp_name, this.pcsn, this.date, this.qty, this.index1, this.boxType, this.num) + let res = await confirmBox(this.vehicleCode, this.materialData.material_id, this.materialData.material_code, this.materialData.material_name, this.suppData.supp_code, this.suppData.supp_name, this.pcsn, this.date, this.qty, this.index1, this.boxType, this.num, this.index2) if (res) { uni.showToast({ title: res.message, @@ -302,8 +352,9 @@ this.disabled1 = false return } - let data = Object.assign({}, this.materialData, this.suppData, {pcsn: this.pcsn, produce_time: this.date, bake_num: this.num}) - this.toPrint(data) + this.showCustomDialog = true + // let data = Object.assign({}, this.materialData, this.suppData, {pcsn: this.pcsn, produce_time: this.date, bake_num: this.num}) + // this.toPrint(data) }, toPrint (data) { let iparr = this.$store.getters.printUrl.split(":") @@ -318,35 +369,38 @@ this.disabled1 = false return } - LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮 - LODOP.SET_LICENSES('浙江省烟草专卖局(公司)', 'C0C4A46A3A0D1F526D426018D9F11921', '', '') - // 更换为打印服务器ip 不需要加前缀 - LODOP.PRINT_INIT(null, printUrl); - // 打印机序号 规则为打印服务器打印机列表倒数从0开始 -1为默认打印机 - LODOP.SET_PRINTER_INDEX(-1); - // 设置打印纸大小 - LODOP.SET_PRINT_PAGESIZE(1, '80mm', '60mm', '') - LODOP.ADD_PRINT_RECT('1mm', '3mm', '74mm', '54mm', 0, 1) - LODOP.SET_PRINT_STYLE('FontSize', 8) - LODOP.SET_PRINT_STYLE('Bold', 1) - LODOP.ADD_PRINT_BARCODE('5mm', '7mm', '30mm', '30mm', 'QRCode', data.material_code + '##' + data.material_name + '##' + - data.material_spec + '##' + data.material_model + '##' + data.quality_time + '##' + data.produce_time + '##' + - data.supp_name + '##' + data.bake_num + '##' + data.supp_code + '##' + data.pcsn + '##' + data.execution_stand - ) - LODOP.ADD_PRINT_TEXT('5mm', '38mm', '60mm', '10mm', '物料编码:' + data.material_code) - LODOP.ADD_PRINT_TEXT('12mm', '38mm', '60mm', '10mm', '物料名称:' + data.material_name) - LODOP.ADD_PRINT_TEXT('19mm', '38mm', '60mm', '10mm', '规格:' + data.material_spec) - LODOP.ADD_PRINT_TEXT('26mm', '38mm', '60mm', '10mm', '型号:' + data.material_model) - LODOP.ADD_PRINT_TEXT('33mm', '38mm', '60mm', '10mm', '有效期(天):' + data.quality_time) - LODOP.ADD_PRINT_TEXT('40mm', '38mm', '60mm', '10mm', '生产日期:' + data.produce_time) - LODOP.ADD_PRINT_TEXT('47mm', '38mm', '60mm', '10mm', '供应商:' + data.supp_name) + // 按次打印 + for (let i = 0; i < this.printCount; i++) { + LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮 + LODOP.SET_LICENSES('浙江省烟草专卖局(公司)', 'C0C4A46A3A0D1F526D426018D9F11921', '', '') + // 更换为打印服务器ip 不需要加前缀 + LODOP.PRINT_INIT(null, printUrl); + // 打印机序号 规则为打印服务器打印机列表倒数从0开始 -1为默认打印机 + LODOP.SET_PRINTER_INDEX(-1); + // 设置打印纸大小 + LODOP.SET_PRINT_PAGESIZE(1, '80mm', '60mm', '') + LODOP.ADD_PRINT_RECT('1mm', '3mm', '74mm', '54mm', 0, 1) + LODOP.SET_PRINT_STYLE('FontSize', 8) + LODOP.SET_PRINT_STYLE('Bold', 1) + LODOP.ADD_PRINT_BARCODE('5mm', '7mm', '30mm', '30mm', 'QRCode', data.material_code + '##' + data.material_name + '##' + + data.material_spec + '##' + data.material_model + '##' + data.quality_time + '##' + data.produce_time + '##' + + data.supp_name + '##' + data.bake_num + '##' + data.supp_code + '##' + data.pcsn + '##' + data.execution_stand + ) + LODOP.ADD_PRINT_TEXT('5mm', '38mm', '60mm', '10mm', '物料编码:' + data.material_code) + LODOP.ADD_PRINT_TEXT('12mm', '38mm', '60mm', '10mm', '物料名称:' + data.material_name) + LODOP.ADD_PRINT_TEXT('19mm', '38mm', '60mm', '10mm', '规格:' + data.material_spec) + LODOP.ADD_PRINT_TEXT('26mm', '38mm', '60mm', '10mm', '型号:' + data.material_model) + LODOP.ADD_PRINT_TEXT('33mm', '38mm', '60mm', '10mm', '有效期(天):' + data.quality_time) + LODOP.ADD_PRINT_TEXT('40mm', '38mm', '60mm', '10mm', '生产日期:' + data.produce_time) + LODOP.ADD_PRINT_TEXT('47mm', '38mm', '60mm', '10mm', '供应商:' + data.supp_name) - LODOP.ADD_PRINT_TEXT('33mm', '7mm', '60mm', '10mm', '烘干次数:' + data.bake_num) - LODOP.ADD_PRINT_TEXT('40mm', '7mm', '60mm', '10mm', '批号:' + data.pcsn) - LODOP.ADD_PRINT_TEXT('47mm', '7mm', '60mm', '10mm', '执行标准:' + data.execution_stand) - LODOP.PRINT(); - // LODOP.PREVIEW() - // 调用删除 + LODOP.ADD_PRINT_TEXT('33mm', '7mm', '60mm', '10mm', '烘干次数:' + data.bake_num) + LODOP.ADD_PRINT_TEXT('40mm', '7mm', '60mm', '10mm', '批号:' + data.pcsn) + LODOP.ADD_PRINT_TEXT('47mm', '7mm', '60mm', '10mm', '执行标准:' + data.execution_stand) + LODOP.PRINT(); + // LODOP.PREVIEW() + } + // 烘干出库且需要删除的 调用删除接口 if (data.out_type === '1004' && data.is_need_delete === '1') { this.printDelete(data) } @@ -417,4 +471,55 @@ font-size: 24rpx; color: #666; } + +.custom-dialog-mask { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 999; +} + +.custom-dialog { + width: 600rpx; + background: #fff; + border-radius: 16rpx; + overflow: hidden; +} + +.dialog-title { + padding: 30rpx; + font-size: 32rpx; + text-align: center; + border-bottom: 1rpx solid #eee; +} + +.dialog-body { + padding: 40rpx; +} + +.dialog-input { + width: 100%; + height: 80rpx; + border: 1rpx solid #ddd; + border-radius: 8rpx; + padding: 0 20rpx; + text-align: center; +} + +.dialog-footer { + display: flex; + border-top: 1rpx solid #eee; +} + +.dialog-footer button { + flex: 1; + border-radius: 0; + margin: 0; +} diff --git a/pages/Material/hw-out-store.vue b/pages/Material/hw-out-store.vue index 55bf887..911f52b 100644 --- a/pages/Material/hw-out-store.vue +++ b/pages/Material/hw-out-store.vue @@ -82,6 +82,24 @@ + + + + 打印次数 + + + + + + + + + @@ -97,6 +115,8 @@ }, data() { return { + showCustomDialog: false, + printCount: 1, title: '', val1: '', val2: '', @@ -117,6 +137,12 @@ } }, methods: { + handlePrintConfirm() { + // 处理打印逻辑 + let data = Object.assign({}, this.materialData, this.suppData, {pcsn: this.pcsn, produce_time: this.date, bake_num: this.num}) + this.showCustomDialog = false + this.toPrint(data) + }, clearUp () { this.val1 = '' this.val2 = '' @@ -170,8 +196,13 @@ }, labelPrint () { this.disabled1 = true - let data = Object.assign({}, this.materialData, this.suppData, {pcsn: this.pcsn, produce_time: this.date, bake_num: this.num}) - this.toPrint(data) + if (!this.vehicleCode || JSON.stringify(this.materialData) === '{}' || JSON.stringify(this.suppData) === '{}') { + this.disabled1 = false + return + } + this.showCustomDialog = true + // let data = Object.assign({}, this.materialData, this.suppData, {pcsn: this.pcsn, produce_time: this.date, bake_num: this.num}) + // this.toPrint(data) }, toPrint (data) { let iparr = this.$store.getters.printUrl.split(":") @@ -186,35 +217,38 @@ this.disabled1 = false return } - LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮 - LODOP.SET_LICENSES('浙江省烟草专卖局(公司)', 'C0C4A46A3A0D1F526D426018D9F11921', '', '') - // 更换为打印服务器ip 不需要加前缀 - LODOP.PRINT_INIT(null, printUrl); - // 打印机序号 规则为打印服务器打印机列表倒数从0开始 -1为默认打印机 - LODOP.SET_PRINTER_INDEX(-1); - // 设置打印纸大小 - LODOP.SET_PRINT_PAGESIZE(1, '80mm', '60mm', '') - LODOP.ADD_PRINT_RECT('1mm', '3mm', '74mm', '54mm', 0, 1) - LODOP.SET_PRINT_STYLE('FontSize', 8) - LODOP.SET_PRINT_STYLE('Bold', 1) - LODOP.ADD_PRINT_BARCODE('5mm', '7mm', '30mm', '30mm', 'QRCode', data.material_code + '##' + data.material_name + '##' + - data.material_spec + '##' + data.material_model + '##' + data.quality_time + '##' + data.produce_time + '##' + - data.supp_name + '##' + data.bake_num + '##' + data.supp_code + '##' + data.pcsn + '##' + data.execution_stand - ) - LODOP.ADD_PRINT_TEXT('5mm', '38mm', '60mm', '10mm', '物料编码:' + data.material_code) - LODOP.ADD_PRINT_TEXT('12mm', '38mm', '60mm', '10mm', '物料名称:' + data.material_name) - LODOP.ADD_PRINT_TEXT('19mm', '38mm', '60mm', '10mm', '规格:' + data.material_spec) - LODOP.ADD_PRINT_TEXT('26mm', '38mm', '60mm', '10mm', '型号:' + data.material_model) - LODOP.ADD_PRINT_TEXT('33mm', '38mm', '60mm', '10mm', '有效期(天):' + data.quality_time) - LODOP.ADD_PRINT_TEXT('40mm', '38mm', '60mm', '10mm', '生产日期:' + data.produce_time) - LODOP.ADD_PRINT_TEXT('47mm', '38mm', '60mm', '10mm', '供应商:' + data.supp_name) + // 按次打印 + for (let i = 0; i < this.printCount; i++) { + LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮 + LODOP.SET_LICENSES('浙江省烟草专卖局(公司)', 'C0C4A46A3A0D1F526D426018D9F11921', '', '') + // 更换为打印服务器ip 不需要加前缀 + LODOP.PRINT_INIT(null, printUrl); + // 打印机序号 规则为打印服务器打印机列表倒数从0开始 -1为默认打印机 + LODOP.SET_PRINTER_INDEX(-1); + // 设置打印纸大小 + LODOP.SET_PRINT_PAGESIZE(1, '80mm', '60mm', '') + LODOP.ADD_PRINT_RECT('1mm', '3mm', '74mm', '54mm', 0, 1) + LODOP.SET_PRINT_STYLE('FontSize', 8) + LODOP.SET_PRINT_STYLE('Bold', 1) + LODOP.ADD_PRINT_BARCODE('5mm', '7mm', '30mm', '30mm', 'QRCode', data.material_code + '##' + data.material_name + '##' + + data.material_spec + '##' + data.material_model + '##' + data.quality_time + '##' + data.produce_time + '##' + + data.supp_name + '##' + data.bake_num + '##' + data.supp_code + '##' + data.pcsn + '##' + data.execution_stand + ) + LODOP.ADD_PRINT_TEXT('5mm', '38mm', '60mm', '10mm', '物料编码:' + data.material_code) + LODOP.ADD_PRINT_TEXT('12mm', '38mm', '60mm', '10mm', '物料名称:' + data.material_name) + LODOP.ADD_PRINT_TEXT('19mm', '38mm', '60mm', '10mm', '规格:' + data.material_spec) + LODOP.ADD_PRINT_TEXT('26mm', '38mm', '60mm', '10mm', '型号:' + data.material_model) + LODOP.ADD_PRINT_TEXT('33mm', '38mm', '60mm', '10mm', '有效期(天):' + data.quality_time) + LODOP.ADD_PRINT_TEXT('40mm', '38mm', '60mm', '10mm', '生产日期:' + data.produce_time) + LODOP.ADD_PRINT_TEXT('47mm', '38mm', '60mm', '10mm', '供应商:' + data.supp_name) - LODOP.ADD_PRINT_TEXT('33mm', '7mm', '60mm', '10mm', '烘干次数:' + data.bake_num) - LODOP.ADD_PRINT_TEXT('40mm', '7mm', '60mm', '10mm', '批号:' + data.pcsn) - LODOP.ADD_PRINT_TEXT('47mm', '7mm', '60mm', '10mm', '执行标准:' + data.execution_stand) - LODOP.PRINT(); - // LODOP.PREVIEW() - // 调用删除 + LODOP.ADD_PRINT_TEXT('33mm', '7mm', '60mm', '10mm', '烘干次数:' + data.bake_num) + LODOP.ADD_PRINT_TEXT('40mm', '7mm', '60mm', '10mm', '批号:' + data.pcsn) + LODOP.ADD_PRINT_TEXT('47mm', '7mm', '60mm', '10mm', '执行标准:' + data.execution_stand) + LODOP.PRINT(); + // LODOP.PREVIEW() + } + // 烘干出库且需要删除的 调用删除接口 if (data.out_type === '1004' && data.is_need_delete === '1') { this.printDelete(data) } diff --git a/pages/Material/xlx-in-store.vue b/pages/Material/xlx-in-store.vue index 5ccf5eb..761dfcd 100644 --- a/pages/Material/xlx-in-store.vue +++ b/pages/Material/xlx-in-store.vue @@ -39,6 +39,7 @@ 序号 + 载具号 物料编码 物料名称 批次 @@ -55,8 +56,9 @@ - + {{i+1}} + {{e.storagevehicle_code}} {{e.material_code}} {{e.material_name}} {{e.pcsn}} @@ -99,6 +101,8 @@ index: '', val1: '', val2: '', + pkId: '', + pkObj: {}, dataList: [], disabled: false }; @@ -108,11 +112,18 @@ this._queryInBillType() }, methods: { + toCheck (e) { + this.pkId = this.pkId === e.storagevehicle_code ? '' : e.storagevehicle_code + this.pkObj = this.pkId === e.storagevehicle_code ? e : {} + this.val1 = e.storagevehicle_code + this.searchList() + }, async _queryInBillType () { try { let res = await queryInBillType() if (res) { this.options = res.data + this.index = this.options[0].value } else { this.options = [] } @@ -141,8 +152,6 @@ }, clearUp () { this.val1 = '' - this.val2 = '' - this.index = '' this.dataList = [] this.disabled = false }, diff --git a/utils/getData2.js b/utils/getData2.js index 3f26687..836cb8e 100644 --- a/utils/getData2.js +++ b/utils/getData2.js @@ -69,7 +69,7 @@ export const queryNowVehicle = (code) => request({ }) // 确认组箱(入库组箱) -export const confirmBox = (scode, id, mcode, mname, spcode, spname, pcsn, time, qty, quality, type, num) => request({ +export const confirmBox = (scode, id, mcode, mname, spcode, spname, pcsn, time, qty, quality, type, num, dcode) => request({ url:'api/pdaInGroupBox/confirmBox', data: { storagevehicle_code:scode, @@ -83,7 +83,8 @@ export const confirmBox = (scode, id, mcode, mname, spcode, spname, pcsn, time, qty:qty, quality_type: quality, box_type: type, - bake_num: num + bake_num: num, + device_code: dcode } }) // 批次下拉框 @@ -91,6 +92,11 @@ export const queryPcsn = () => request({ url:'api/pdaInGroupBox/queryPcsn', data: {} }) +// 机台编码下拉框 +export const queryDevice = () => request({ + url:'api/pdaInGroupBox/queryDevice', + data: {} +}) // 确认组箱(组箱配送) export const deliveryBox = (code, id, bcode, info, qty, rows) => request({ url:'api/pdaInGroupBox/deliveryBox',