|
|
|
// 打印功能数据整合
|
|
|
|
import { Enum } from "@/utils/index"
|
|
|
|
import store from '@/store/index'
|
|
|
|
/**/
|
|
|
|
// 打印【箱标签-单个】 (xiangbq.rdlx)
|
|
|
|
// 使用位置:补打标签 (RepairLabels.vue)
|
|
|
|
/**
|
|
|
|
* @param {*} propsData 必填 详情数据 示例:this.propsData
|
|
|
|
* @param {*} options 自定义特殊配置值 示例:{'number':'poNumber'} (number值将传为poNumber)
|
|
|
|
* @param {*} name reportName
|
|
|
|
* @param {*} url dataUrl
|
|
|
|
* @returns
|
|
|
|
*/
|
|
|
|
export function initPrintPackingCodeData(propsData,options,name,url){
|
|
|
|
if(!propsData || propsData.details.length <= 0)return {}
|
|
|
|
let _printData = {
|
|
|
|
"boxlabel":[]
|
|
|
|
}
|
|
|
|
let _options = options ? options : {}
|
|
|
|
propsData.details.forEach((item,key) => {
|
|
|
|
_printData["boxlabel"].push({
|
|
|
|
"title":propsData[_options.title] || propsData.title || "FATY 物品发运单",//title
|
|
|
|
"contacts": propsData[_options.contacts] || propsData.contacts,//客户名称
|
|
|
|
"customerAddressCode":propsData[_options.customerAddressCode] || propsData.customerAddressCode,//客户地址
|
|
|
|
"supplierCode": propsData[_options.supplierCode] || propsData.supplierCode,//供应商代码
|
|
|
|
"supplierName": propsData[_options.supplierName] || propsData.supplierName,//供应商名称
|
|
|
|
"remark": propsData[_options.remark] || propsData.remark,//备注
|
|
|
|
"planArriveDate":propsData[_options.planArriveDate] || propsData.planArriveDate,//要求到货时间
|
|
|
|
"poNumber": propsData[_options.poNumber] || propsData.poNumber,//订单号?
|
|
|
|
"asnNumber": propsData[_options.asnNumber] || propsData.asnNumber,//发货单号?
|
|
|
|
"details": [
|
|
|
|
{
|
|
|
|
"supplierItemName": item[_options.supplierItemName] || item.supplierItemName,//零件名(供应商零件名)
|
|
|
|
"supplierItemCode": item[_options.supplierItemCode] || item.supplierItemCode,//零件号(供应商零件号)
|
|
|
|
"specifications": item[_options.specifications] || item.specifications,//规格
|
|
|
|
"produceDate": item[_options.produceDate] || item.produceDate,//生产时间
|
|
|
|
"lot": item[_options.lot] || item.lot,//生产批次
|
|
|
|
"locationErpCode": item[_options.locationErpCode] || item.locationErpCode,//储位
|
|
|
|
"itemName": item[_options.itemName] || item.itemName,//物品名称
|
|
|
|
"itemCode": item[_options.itemCode] || item.itemCode,//物品代码(ERP号)
|
|
|
|
"stdPackQty": item[_options.stdPackQty] || item.stdPackQty,//整包数量
|
|
|
|
"qty": item[_options.qty] || item.qty,//要货数量
|
|
|
|
"packingCode": item[_options.packingCode] || item.packingCode,//条形码
|
|
|
|
"printIndex":item[_options.printIndex] || Number(key)+1,//打印序列
|
|
|
|
}
|
|
|
|
],
|
|
|
|
// "asnNumber": propsData[_options.number] || propsData.number,
|
|
|
|
// "supplierCode": propsData[_options.supplierCode] || propsData.supplierCode,
|
|
|
|
// "supplierName": propsData[_options.supplierName] || propsData.supplierName,
|
|
|
|
// "timeWindow": propsData[_options.timeWindow] || propsData.timeWindow,
|
|
|
|
// "arriveTime": item[_options.arriveDate] || item.arriveDate,
|
|
|
|
// "details": [
|
|
|
|
// {
|
|
|
|
// "poNumber": item[_options.poNumber] || item.poNumber,
|
|
|
|
// "poLine":item[_options.poLine] || item.poLine,
|
|
|
|
// "qty": {
|
|
|
|
// "uom":item[_options.uom] || item.uom,//必填
|
|
|
|
// "qty": item[_options.qty] || item.qty,//必填
|
|
|
|
// },
|
|
|
|
// "packingCode": item[_options.packingCode] || item.packingCode,
|
|
|
|
// "containerCode": item[_options.containerCode] || item.containerCode,
|
|
|
|
// "lot": item[_options.lot] || item.lot,//必填
|
|
|
|
// "batch": {
|
|
|
|
// "supplierBatch": item[_options.supplierBatch] || item.supplierBatch,
|
|
|
|
// "produceDate": item[_options.produceDate] || item.produceDate,
|
|
|
|
// "expireDate": item[_options.expireDate] || item.expireDate,
|
|
|
|
// },
|
|
|
|
// "itemCode": item[_options.itemCode] || item.itemCode,//必填
|
|
|
|
// "item": {
|
|
|
|
// "id": item[_options.itemId] || item.itemId,
|
|
|
|
// "name": item[_options.itemName] || item.itemName,
|
|
|
|
// "desc1": item[_options.itemDesc1] || item.itemDesc1,
|
|
|
|
// "desc2": item[_options.itemDesc2] || item.itemDesc2,
|
|
|
|
// },
|
|
|
|
// "Elevel": null
|
|
|
|
// }
|
|
|
|
// ]
|
|
|
|
})
|
|
|
|
});
|
|
|
|
// let paramName = ''
|
|
|
|
// if (name) {
|
|
|
|
// paramName = localStorage.getItem('print') + '/' + name
|
|
|
|
// } else {
|
|
|
|
// paramName = localStorage.getItem('print') + '/' + 'xiangbq.rdlx'
|
|
|
|
// }
|
|
|
|
let data = {
|
|
|
|
reportName: name || 'xiangbq.rdlx',
|
|
|
|
dataUrl: url || 'ccc',
|
|
|
|
jsonData: JSON.stringify(_printData)
|
|
|
|
};
|
|
|
|
return data
|
|
|
|
}
|
|
|
|
|
|
|
|
// 打印【箱标签-单页4个】 (xiangbq_many.rdlx)
|
|
|
|
// 使用位置:半成品上架标签 (PartiallyPreparedProducts.vue) | 生产退库标签 (productionReturnLabel.vue)
|
|
|
|
// | 创建标签 (RecycledMaterialsLabel.vue) | 到货请求详情 (PurchaseReceiptRequest.vue)
|
|
|
|
/**
|
|
|
|
* @param {*} propsData 必填 详情数据 示例:this.propsData
|
|
|
|
* @param {*} options 自定义特殊配置值 示例:{'number':'poNumber'} (number值将传为poNumber)
|
|
|
|
* @param {*} name reportName
|
|
|
|
* @param {*} url dataUrl
|
|
|
|
* @returns
|
|
|
|
*/
|
|
|
|
export function initPrintPackingCodeManyData(propsData,options,name,url){
|
|
|
|
if(!propsData || propsData.details.length <= 0)return {}
|
|
|
|
let _printData = {
|
|
|
|
"boxlabel":[]
|
|
|
|
}
|
|
|
|
let _options = options ? options : {}
|
|
|
|
// 按4个分组数据
|
|
|
|
let newList = []
|
|
|
|
let chunk = 4;
|
|
|
|
propsData.details.forEach((item,key)=>{
|
|
|
|
item.printIndex = Number(key + 1)
|
|
|
|
})
|
|
|
|
for(var i = 0; i < propsData.details.length ;i+=chunk) {
|
|
|
|
newList.push(propsData.details.slice(i,i + chunk))
|
|
|
|
}
|
|
|
|
let _index = null
|
|
|
|
newList.forEach((item,key)=>{
|
|
|
|
let _label = {}
|
|
|
|
item.forEach((item2,key2)=>{
|
|
|
|
if(key2 == 0){
|
|
|
|
if(!_index){
|
|
|
|
_index = '0'
|
|
|
|
}else{
|
|
|
|
_index = Number(_index) + 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let _title = propsData ? "FATY 物品发运单" : ""
|
|
|
|
_label['title'+Number(key2 + 1)]=propsData[_options.title] || propsData.title || _title,//title
|
|
|
|
_label['contacts'+Number(key2 + 1)]= propsData[_options.contacts] || propsData.contacts,//客户名称
|
|
|
|
_label['customerAddressCode'+Number(key2 + 1)]=propsData[_options.customerAddressCode] || propsData.customerAddressCode,//客户地址
|
|
|
|
_label['supplierCode'+Number(key2 + 1)]= propsData[_options.supplierCode] || propsData.supplierCode,//供应商代码
|
|
|
|
_label['supplierSimpleName'+Number(key2 + 1)]= propsData[_options.supplierSimpleName] || propsData.supplierSimpleName,//供应商名称(简称)
|
|
|
|
_label['remark'+Number(key2 + 1)]= propsData[_options.remark] || propsData.remark,//备注
|
|
|
|
_label['planArriveDate'+Number(key2 + 1)]=propsData[_options.planArriveDate] || propsData.planArriveDate,//要求到货时间
|
|
|
|
_label['poNumber'+Number(key2 + 1)]= propsData[_options.poNumber] || propsData.poNumber,//订单号?
|
|
|
|
_label['asnNumber'+Number(key2 + 1)]= propsData[_options.asnNumber] || propsData.asnNumber,//发货单号?
|
|
|
|
|
|
|
|
_label['supplierItemName'+Number(key2 + 1)] = item[_options.supplierItemName] || item2.supplierItemName;//零件名(供应商零件名)
|
|
|
|
_label['supplierItemCode'+Number(key2 + 1)] = item[_options.supplierItemCode] || item2.supplierItemCode;//零件号(供应商零件号)
|
|
|
|
_label['specifications'+Number(key2 + 1)] = item[_options.specifications] || item2.specifications;//规格
|
|
|
|
_label['produceDate'+Number(key2 + 1)] = item[_options.produceDate] || item2.produceDate;//生产时间
|
|
|
|
_label['lot'+Number(key2 + 1)] = item[_options.lot] || item2.lot;//生产批次
|
|
|
|
_label['locationErpCode'+Number(key2 + 1)] = item[_options.locationErpCode] || item2.locationErpCode;//储位
|
|
|
|
_label['itemCode'+Number(key2 + 1)] = item[_options.itemCode] || item2.itemCode;//物品代码(ERP号)
|
|
|
|
_label['stdPackQty'+Number(key2 + 1)] = item[_options.stdPackQty] || item2.stdPackQty;//整包数量
|
|
|
|
_label['qty'+Number(key2 + 1)] = item[_options.qty] || item2.qty;//要货数量
|
|
|
|
_label['packingCode'+Number(key2 + 1)] = item[_options.packingCode] || item2.packingCode;//条形码
|
|
|
|
_label['printIndex'+Number(key2 + 1)] = item[_options.printIndex] || item2.printIndex;//序号
|
|
|
|
|
|
|
|
_printData.boxlabel[_index] = _label
|
|
|
|
})
|
|
|
|
})
|
|
|
|
// let paramName = ''
|
|
|
|
// if (name) {
|
|
|
|
// paramName = localStorage.getItem('print') + '/' + name
|
|
|
|
// } else {
|
|
|
|
// paramName = localStorage.getItem('print') + '/' + 'xiangbq_many.rdlx'
|
|
|
|
// }
|
|
|
|
let data = {
|
|
|
|
reportName: name || 'xiangbq_many.rdlx',
|
|
|
|
dataUrl: url || 'ccc',
|
|
|
|
jsonData: JSON.stringify(_printData)
|
|
|
|
};
|
|
|
|
return data
|
|
|
|
}
|
|
|
|
|
|
|
|
// 字典转义
|
|
|
|
const printEnumOption = {
|
|
|
|
UnqualifiedReason:{reportStr:'reasonStr',staName:'UnqualifiedReason',value:'reason'},
|
|
|
|
PurReturnReason:{reportStr:'reasonStr',staName:'PurReturnReason',value:'reason'},
|
|
|
|
Reason:{reportStr:'reasonStr',staName:'Reason',value:'reasonCode'},
|
|
|
|
AdjustmentReason:{reportStr:'reasonStr',staName:'AdjustmentReason',value:'reasonCode'},
|
|
|
|
}
|
|
|
|
|
|
|
|
/**/
|
|
|
|
// 打印【全部数据】
|
|
|
|
/**
|
|
|
|
* @param {*} propsData 必填 详情数据 示例:this.propsData
|
|
|
|
* @param {*} name 必填 reportName
|
|
|
|
* @param {*} enumOption 选填 转义状态 如果是字符串直接走[printEnumOption]格式,
|
|
|
|
* 如果自定义格式:{reportStr:'报表中用到的值',staName:'localStorage中的名称',value:'要转义的detail中的值',label:"可不填,默认label"}
|
|
|
|
* @param {*} options 选填 自定义特殊配置值 示例:{'number':'poNumber'} (number值将传为poNumber)
|
|
|
|
* @param {*} url 选填 dataUrl
|
|
|
|
* @returns
|
|
|
|
*/
|
|
|
|
//
|
|
|
|
export function initPrintAllData(propsData,name,enumOption,options,url){
|
|
|
|
if(!propsData || propsData.details.length <= 0)return {}
|
|
|
|
let _printData = {details:[]}
|
|
|
|
let _outData = {}
|
|
|
|
for(var key in propsData){
|
|
|
|
if(key != 'details')_outData[key] = propsData[key]
|
|
|
|
if(options){
|
|
|
|
for(var op in options){
|
|
|
|
if(op != 'details')_outData[op] = propsData[options[op]]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_outData.title = propsData.title || ''
|
|
|
|
propsData.details.forEach((item,key) => {
|
|
|
|
// 序号
|
|
|
|
item.xh = Number(key) + 1;
|
|
|
|
// 转义字典
|
|
|
|
if(enumOption){
|
|
|
|
let _enumOption = (typeof enumOption == 'string') ? printEnumOption[enumOption] : enumOption
|
|
|
|
item[_enumOption.reportStr] = Enum(store.getters.dictionaries[_enumOption.staName], item[_enumOption.value] , _enumOption.label || 'label')
|
|
|
|
}
|
|
|
|
// 特殊配置
|
|
|
|
if(options && options.details){
|
|
|
|
for(var op in options.details){
|
|
|
|
item[op] = item[options.details[op]]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let _item = Object.assign({},item, _outData);
|
|
|
|
_printData.details.push(_item)
|
|
|
|
});
|
|
|
|
let data = {
|
|
|
|
reportName: name,
|
|
|
|
dataUrl: url || 'ccc',
|
|
|
|
jsonData: JSON.stringify(_printData)
|
|
|
|
};
|
|
|
|
return data
|
|
|
|
}
|
|
|
|
|
|
|
|
// 当前模板数据
|
|
|
|
/**todo:储位,预计量,字段确定 */
|
|
|
|
// cgshd.rdlx 使用参数
|
|
|
|
// 使用位置:采购收货记录 (PurchaseReceiptNote-msQuery.vue)
|
|
|
|
// 发货单号:asnNumber; 制表日:creationTime; 供应商:supplierCode; 供应商简称:supplierShortName
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 箱码:packingCode; 单位:uom; 数量:qty; 状态:statusStr; 不合格原因:reasonStr;
|
|
|
|
|
|
|
|
// thd.rdlx 使用参数
|
|
|
|
// 使用位置:上架前退货记录 (beforeGroundingReturnNote.vue) | 上架后退货记录 (purchaseReturn => returnNote.vue)
|
|
|
|
// 退货单号:number; 发货单号:asnNumber; 制表日:creationTime; 供应商:supplierCode; 供应商简称:supplierShortName
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 箱码:packingCode; 单位:uom; 数量:qty; 退货原因:reasonStr;
|
|
|
|
|
|
|
|
// lineSideWarehouse.rdlx 使用参数
|
|
|
|
// 使用位置:线边仓调拨记录 (lineSideWarehouseAllocationNote.vue)
|
|
|
|
// 调拨单号:number; 参考单据:requestNumber; 制表日:creationTime; 调拨部门:deptCode; 部门名称:deptName
|
|
|
|
// 物品代码:itemCode; 单位:uom; 预计调拨量:preQty; 调入储位:toLocationCode; 实际调拨量:qty; 调出储位:fromLocationCode;
|
|
|
|
|
|
|
|
// fscll.rdlx | fsctl.rdlx 使用参数
|
|
|
|
// 使用位置:非生产领料申请 (lineSideWarehouseAllocationNote.vue - fscll.rdlx)
|
|
|
|
// 使用位置:非生产退料申请 (materialReturnRequest.vue - fsctl.rdlx)
|
|
|
|
// 单号:number; 制表日:creationTime; 部门代码:deptCode; 部门名称:deptName
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 预计量:preQty; 实际量:qty; 单位:uom; 储位:locationCode;
|
|
|
|
// 项目分类代码:projCapacityCode; 项目分类名称:projCapacityName; 专案代码:caseCode; 专案名称:caseName; 说明:remark
|
|
|
|
|
|
|
|
// cwdbd.rdlx 使用参数
|
|
|
|
// 使用位置:储位调拨记录 (interStorageAllocationNote.vue)
|
|
|
|
// 调拨单号:number; 制表日:creationTime; 调拨日期:activeDate
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 单位:uom; 调出储位:fromLocationCode; 调入储位:toLocationCode; 调拨量:qty;
|
|
|
|
|
|
|
|
// khcwdbd.rdlx 使用参数
|
|
|
|
// 使用位置:客户储位调拨记录 (customerStorageAllocationNote.vue)
|
|
|
|
// 调拨单号:number; 制表日:creationTime; 使用者:worker; 部门代码:deptCode; 客户储位:toLocationCode
|
|
|
|
// 序号:xh; 物品代码:itemCode; 物品名称:itemName; 预计调拨量:preQty; 实际调拨量:qty; 调出储位:fromLocationCode;
|
|
|
|
|
|
|
|
// xbcbfd.rdlx 使用参数
|
|
|
|
// 使用位置:线边仓报废记录 (lineSideWarehouseScrappingNote.vue)
|
|
|
|
// 报废单号:number; 制表日:creationTime;
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 储位:fromLocationCode; 数量:qty; 原因说明:reasonStr; 参考单据:scrapRequestNumber;
|
|
|
|
|
|
|
|
// tzd.rdlx 使用参数
|
|
|
|
// 使用位置:线边仓调整记录 (lineSideWarehouseAdjustmentSheetNote.vue)
|
|
|
|
// 单号:number; 制表日:creationTime;
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 储位:locationCode; 数量:adjustQty; 原因说明:reasonStr; 参考单据:requestNumber;
|
|
|
|
|
|
|
|
// xbcll.rdlx 使用参数
|
|
|
|
// 使用位置:自动发料任务 (automaticCallJob-msQuery.vue) | 自动发料记录 (automaticCallNote.vue)
|
|
|
|
// 使用位置:人工发料任务 (IssueJob.vue) | 人工发料记录 (IssueNote.vue)
|
|
|
|
// 单号:number; 制表日:creationTime; 部门名称:deptName;
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 物品描述:itemDesc1; 零件号:itemCode; 来源库位:fromLocationCode;
|
|
|
|
// 实际数量:qty; 单位:uom; 批次:fromLot; 调入储位:toLocationErpCode; 调出储位:fromLocationErpCode;
|
|
|
|
|
|
|
|
// xbctl.rdlx 使用参数 xbctl.rdlx报表 和 xbcll.rdlx报表 目前字段相同,除了领/退字段
|
|
|
|
// 使用位置:生产退库记录 (productionReturn => returnNote.vue)
|
|
|
|
|
|
|
|
// zjfl.rdlx 使用参数
|
|
|
|
// 使用位置:直接发料记录 (directIssueNote.vue)
|
|
|
|
// 单号:number; 制表日:creationTime; 部门名称:deptName;
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 物品描述:itemDesc1; 零件号:itemCode; 来源库位:fromLocationCode;
|
|
|
|
// 实际数量:qty; 单位:uom; 批次:fromLot; 调入储位:toLocationErpCode; 调出储位:fromLocationErpCode;
|
|
|
|
|
|
|
|
// hslrkd.rdlx 使用参数
|
|
|
|
// 使用位置:回收料收货记录 (materialsReceipt.vue)
|
|
|
|
// 入库单号:number; 制表日:creationTime; 入库日期:activeDate; 部门代码:deptCode; 部门名称:deptName;
|
|
|
|
// 物品代码:itemCode; 物品名称:itemName; 物品描述1:itemDesc1; 物品描述2:itemDesc2; 数量:qty; 储位:locationErpCode;
|
|
|
|
|
|
|
|
// chdmxb.rdlx 使用参数
|
|
|
|
// 使用位置:原料直发记录 (materialDirectSendNote.vue)
|
|
|
|
// 出货单号:number; 出货日期:deliverTime; 制表日:creationTime; 客户名称:customerCode; 客户地址:customerAddressCode;
|
|
|
|
// 序号:xh, 物品代码:itemCode; 物品名称:itemName; 单位:uom; 箱标签:packingCode, 出货数量:qty; 正厂编号:itemDesc2;
|
|
|
|
|
|
|
|
// ysd.rdlx 使用参数
|
|
|
|
// 使用位置:采购上架记录 (PutawayNote.vue)
|
|
|
|
// 供应商代码:supplierCode; 供应商名称:supplierSimpleName; 制表日:creationTime; 采购单:poNumber; 收货单号:receiptNumber; 验收口:dockCode; 请购部门:deptName;
|
|
|
|
// 物品代码:itemCode; 验收备注:remark; 厂商料品单号:supplierItemCode; 物品名称:itemName; 收料量:qty; 验收日期:arriveDate; 单位:uom; 储位:toLocationErpCode;
|