Browse Source

2025-12-24

pda其他入库提交时调用打印
master
fengyuan_yang 3 weeks ago
parent
commit
932e841b04
  1. 2
      package.json
  2. 9
      src/api/other-inbound/other-inbound.js
  3. 67
      src/views/modules/other-inout/otherInboundDetail.vue

2
package.json

@ -1,6 +1,6 @@
{
"name": "gaotao-fast-vue",
"version": "1.2.2",
"version": "1.2.3",
"description": "gaotao-fast-vue基于vue、element-ui构建开发,实现gaotao-fast后台管理前端功能,提供一套更优的前端解决方案。",
"author": "daxiong.yang <daxiong.yang@qq.com>",
"private": true,

9
src/api/other-inbound/other-inbound.js

@ -34,4 +34,11 @@ export const getMaterialList = data => createAPI(`otherInbound/getMaterialList`,
* 获取已扫描标签列表从ScannedRollTempTable缓存表
* @param {Object} data - 查询参数 {site, buNo, inboundNo, documentType}
*/
export const getScannedLabelList = data => createAPI(`otherInbound/getScannedLabelList`, 'post', data)
export const getScannedLabelList = data => createAPI(`otherInbound/getScannedLabelList`, 'post', data)
/**
* 获取用户默认打印机配置
* @param {Object} data - 查询参数 {site, labelNo}
* @returns {Object} {printerName, ipAddress, labelNo}
*/
export const getUserDefaultPrinter = data => createAPI(`otherInbound/getUserDefaultPrinter`, 'post', data)

67
src/views/modules/other-inout/otherInboundDetail.vue

@ -307,7 +307,7 @@
</template>
<script>
import { getOtherInboundDetails, getMaterialList, validateLabelWithOtherInbound, confirmOtherInbound, getScannedLabelList } from "@/api/other-inbound/other-inbound.js";
import { getOtherInboundDetails, getMaterialList, validateLabelWithOtherInbound, confirmOtherInbound, getScannedLabelList, getUserDefaultPrinter } from "@/api/other-inbound/other-inbound.js";
import { getInventoryStock } from "@/api/inbound.js";
import { getCurrentWarehouse } from '@/utils'
import moment from 'moment';
@ -614,28 +614,71 @@ export default {
}
},
/**
* 获取当前用户配置的默认打印机
* @param {String} labelNo - 标签模板编号A001/A002/A003
* @returns {Object} 打印机配置 {printerName, printerIp}
*/
async fetchUserDefaultPrinter(labelNo) {
try {
const params = {
userName: localStorage.getItem('userName'),
labelNo: labelNo || ''
};
const { data } = await getUserDefaultPrinter(params);
if (data && data.code === 0 && data.printerName) {
return {
printerName: data.printerName,
printerIp: data.printerIp,
labelNo: data.labelNo
};
}
return null;
} catch (error) {
console.error('获取用户打印机配置失败:', error);
return null;
}
},
/**
* 使用模板打印标签
* @param {Array} printList - 打印数据列表存储过程UspPartLabelTemplate返回
*/
async printLabelsWithTemplate(printList) {
try {
// 1.
// 1. LODOP
const LODOP = getLodop();
if (!LODOP) {
console.warn('无法连接到打印控件,跳过打印');
this.$message.warning('无法连接到打印控件,请确保已安装并启动打印服务');
return;
}
//
// 2.
const printerCount = LODOP.GET_PRINTER_COUNT();
if (printerCount === 0) {
console.warn('未检测到打印机,跳过打印');
this.$message.warning('未检测到打印机,请检查打印机连接');
return;
}
// 2.
this.executePrintWithTemplate(LODOP, printList);
// 3.
// 使 labelNo
const firstLabelNo = printList.length > 0 ? printList[0].labelNo : '';
const printerConfig = await this.fetchUserDefaultPrinter(firstLabelNo);
let printerName = null;
if (printerConfig && printerConfig.printerName) {
printerName = printerConfig.printerName;
console.log('使用用户配置的打印机:', printerName);
} else {
console.log('未找到用户打印机配置,使用默认打印机');
}
// 4.
this.executePrintWithTemplate(LODOP, printList, printerName);
this.$message.success('标签打印任务已发送!');
@ -649,10 +692,10 @@ export default {
* 执行模板打印
* @param {Object} LODOP - 打印控件对象
* @param {Array} printDataList - 打印数据列表
* @param {String} printerName - 打印机名称
* @param {String} printerName - 用户配置的打印机名称可选
*/
executePrintWithTemplate(LODOP, printDataList) {
console.log('开始打印,标签数量:', printDataList.length, '标签数据:', printDataList);
executePrintWithTemplate(LODOP, printDataList, printerName) {
console.log('开始打印,标签数量:', printDataList.length, '打印机:', printerName || '默认', '标签数据:', printDataList);
//
for (let i = 0; i < printDataList.length; i++) {
@ -664,6 +707,11 @@ export default {
//
LODOP.PRINT_INIT('其他入库标签打印_' + (i + 1));
//
if (printerName) {
LODOP.SET_PRINTER_INDEX(printerName);
}
//
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", true);
@ -678,9 +726,10 @@ export default {
}
//
//LODOP.PREVIEW();
LODOP.PRINT();
console.log(`${i + 1}张标签已发送打印, 标签条码: ${printData.rollNo}`);
console.log(`${i + 1}张标签已发送打印, 打印机: ${printerName || '默认'}, 标签条码: ${printData.rollNo}`);
}
},

Loading…
Cancel
Save