|
|
@@ -85,6 +85,7 @@
|
|
|
<td style="padding: 5px; width: 8%"> 颜色 </td>
|
|
|
<td style="padding: 5px; width: 8%"> 生产批号 </td>
|
|
|
<td style="padding: 5px; width: 10%"> 裁线米段 </td>
|
|
|
+ <td style="padding: 5px; width: 8%"> 盘具 </td>
|
|
|
<td style="padding: 5px; width: 12%"> 仓库 </td>
|
|
|
</tr>
|
|
|
|
|
|
@@ -98,6 +99,7 @@
|
|
|
<td style="padding: 5px"> {{ item.colorKey }}</td>
|
|
|
<td style="padding: 5px"> {{ item.batchNo }}</td>
|
|
|
<td style="padding: 5px"> {{ item.cuttingLength }}</td>
|
|
|
+ <td style="padding: 5px"> {{ item.reelSpecification }}</td>
|
|
|
<td style="padding: 5px"> {{ item.warehouseName }}</td>
|
|
|
</tr>
|
|
|
<tr align="center">
|
|
|
@@ -109,6 +111,7 @@
|
|
|
<td style="padding: 5px"> </td>
|
|
|
<td style="padding: 5px"> </td>
|
|
|
<td style="padding: 5px"> </td>
|
|
|
+ <td style="padding: 5px"> </td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
@@ -177,6 +180,7 @@
|
|
|
import { mapGetters } from 'vuex';
|
|
|
import { saveAs } from 'file-saver';
|
|
|
import dictMixins from '@/mixins/dictMixins';
|
|
|
+ import { getInfoBySourceBizNoAll } from '@/api/wms';
|
|
|
export default {
|
|
|
mixins: [dictMixins],
|
|
|
name: 'print',
|
|
|
@@ -215,18 +219,37 @@
|
|
|
methods: {
|
|
|
async open(ids) {
|
|
|
const list = await getSendSaleOrderCordDetailByIds(ids);
|
|
|
- // 处理每条数据:合并 productList 和 replaceList,设置 deliveryTypeName
|
|
|
- this.formData = list.map((rowItem) => {
|
|
|
+ // 处理每条发货单:查询出库单信息并匹配盘具字段
|
|
|
+ this.formData = await Promise.all(list.map(async (rowItem) => {
|
|
|
+ // 根据发货单编码查询出库单信息
|
|
|
+ const outboundList = await getInfoBySourceBizNoAll(rowItem.docNo);
|
|
|
+ const outboundDetailList = outboundList?.[0]?.outInDetailList || [];
|
|
|
+ // 构建出库单明细查找表:key = categoryCode + batchNo
|
|
|
+ const outboundMap = {};
|
|
|
+ outboundDetailList.forEach(detail => {
|
|
|
+ const key = `${detail.categoryId}_${detail.categoryCode}_${detail.batchNo}`;
|
|
|
+ outboundMap[key] = detail;
|
|
|
+ });
|
|
|
+ // 合并 productList 和 replaceList
|
|
|
const productList = [
|
|
|
...(rowItem.productList || []).filter(item => item.isReplace != 1),
|
|
|
...(rowItem.replaceList || [])
|
|
|
];
|
|
|
+ // 将出库单的 reelSpecification 匹配到 productList 中
|
|
|
+ const enrichedProductList = productList.map(item => {
|
|
|
+ const key = `${item.productId}_${item.productCode}_${item.batchNo}`;
|
|
|
+ const outboundDetail = outboundMap[key] || {};
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ reelSpecification: outboundDetail.reelSpecification || ''
|
|
|
+ };
|
|
|
+ });
|
|
|
return {
|
|
|
...rowItem,
|
|
|
- productList,
|
|
|
+ productList: enrichedProductList,
|
|
|
deliveryTypeName: this.getDictValue('送货方式', rowItem.deliveryTypeId)
|
|
|
};
|
|
|
- });
|
|
|
+ }));
|
|
|
this.QRvisible = true;
|
|
|
},
|
|
|
close() {
|
|
|
@@ -284,8 +307,8 @@
|
|
|
|
|
|
const title = `${this.groupName || ''}出库单`;
|
|
|
|
|
|
- const colWidths = [45, 190, 55, 70, 70, 80, 80, 100];
|
|
|
- const totalCols = 8;
|
|
|
+ const colWidths = [45, 150, 55, 70, 60, 70, 70, 70, 100];
|
|
|
+ const totalCols = 9;
|
|
|
const colGroup = colWidths.map(w => `<col width="${w}" style="width:${w}pt;" />`).join('');
|
|
|
|
|
|
// 遍历多个单据生成多个表格
|
|
|
@@ -307,6 +330,7 @@
|
|
|
<td align="center" valign="middle" style="${td}">${item.colorKey || ''}</td>
|
|
|
<td align="center" valign="middle" style="${td}">${item.batchNo || ''}</td>
|
|
|
<td align="center" valign="middle" style="${td}">${item.cuttingLength || ''}</td>
|
|
|
+ <td align="center" valign="middle" style="${td}">${item.reelSpecification || ''}</td>
|
|
|
<td align="center" valign="middle" style="${td}">${item.warehouseName || ''}</td>
|
|
|
</tr>`
|
|
|
).join('');
|
|
|
@@ -320,12 +344,12 @@
|
|
|
</tr>
|
|
|
<tr height="26" style="height:26pt;">
|
|
|
<td colspan="3" align="left" valign="middle" style="${labelLeft}">客户:${rowItem.contactName || ''}</td>
|
|
|
- <td colspan="2" align="left" valign="middle" style="${labelLeft}">单据编码:${rowItem.docNo || ''}</td>
|
|
|
+ <td colspan="3" align="left" valign="middle" style="${labelLeft}">单据编码:${rowItem.docNo || ''}</td>
|
|
|
<td colspan="3" align="left" valign="middle" style="${labelLeft}">单据日期:${rowItem.createTime ? rowItem.createTime.split(' ')[0] : ''}</td>
|
|
|
</tr>
|
|
|
<tr height="26" style="height:26pt;">
|
|
|
<td colspan="4" align="left" valign="middle" style="${labelLeft}">收货人联系方式:${rowItem.linkName || ''} ${rowItem.linkPhone || ''}</td>
|
|
|
- <td colspan="4" align="left" valign="middle" style="${labelLeft}">送货地址:${rowItem.receiveAddress || ''}</td>
|
|
|
+ <td colspan="5" align="left" valign="middle" style="${labelLeft}">送货地址:${rowItem.receiveAddress || ''}</td>
|
|
|
</tr>
|
|
|
<tr height="28" style="height:28pt;">
|
|
|
<td align="center" valign="middle" style="${th}">序号</td>
|
|
|
@@ -335,6 +359,7 @@
|
|
|
<td align="center" valign="middle" style="${th}">颜色</td>
|
|
|
<td align="center" valign="middle" style="${th}">生产批号</td>
|
|
|
<td align="center" valign="middle" style="${th}">裁线米段</td>
|
|
|
+ <td align="center" valign="middle" style="${th}">盘具</td>
|
|
|
<td align="center" valign="middle" style="${th}">仓库</td>
|
|
|
</tr>
|
|
|
${rows}
|
|
|
@@ -347,21 +372,22 @@
|
|
|
<td align="center" valign="middle" style="${td}"></td>
|
|
|
<td align="center" valign="middle" style="${td}"></td>
|
|
|
<td align="center" valign="middle" style="${td}"></td>
|
|
|
+ <td align="center" valign="middle" style="${td}"></td>
|
|
|
</tr>
|
|
|
<tr height="28" style="height:28pt;">
|
|
|
<td colspan="2" align="left" valign="middle" style="${labelLeft}">制单人:${rowItem.makerName || ''}</td>
|
|
|
<td colspan="2" align="left" valign="middle" style="${labelLeft}">核对人:</td>
|
|
|
<td colspan="2" align="left" valign="middle" style="${labelLeft}">仓库:</td>
|
|
|
- <td colspan="2" align="left" valign="middle" style="${labelLeft}">审核:${rowItem.reviewerName || ''}</td>
|
|
|
+ <td colspan="3" align="left" valign="middle" style="${labelLeft}">审核:${rowItem.reviewerName || ''}</td>
|
|
|
</tr>
|
|
|
<tr height="28" style="height:28pt;">
|
|
|
<td colspan="2" align="left" valign="middle" style="${labelLeft}">司机:</td>
|
|
|
<td colspan="2" align="left" valign="middle" style="${labelLeft}">是否回单:${receiptLabel}</td>
|
|
|
<td colspan="2" align="left" valign="middle" style="${labelLeft}">运费:${deliveryTypeName}</td>
|
|
|
- <td colspan="2" align="left" valign="middle" style="${labelLeft}"></td>
|
|
|
+ <td colspan="3" align="left" valign="middle" style="${labelLeft}"></td>
|
|
|
</tr>
|
|
|
<tr height="28" style="height:28pt;">
|
|
|
- <td colspan="8" align="left" valign="middle" style="${labelLeft}">备注:</td>
|
|
|
+ <td colspan="9" align="left" valign="middle" style="${labelLeft}">备注:</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
<br style="mso-special-character:line-break;page-break-before:always" />`;
|