|
|
@@ -7,7 +7,6 @@
|
|
|
@close="close"
|
|
|
>
|
|
|
<div id="printSectionHt">
|
|
|
- <!-- 24cm*14cm -->
|
|
|
<div
|
|
|
v-for="(rowItem, idx) in formData"
|
|
|
:key="rowItem.id || idx"
|
|
|
@@ -15,6 +14,7 @@
|
|
|
font-family: SimSun, serif;
|
|
|
padding: 20px;
|
|
|
width: 24cm;
|
|
|
+ min-height: 14cm;
|
|
|
margin: 0 auto;
|
|
|
box-sizing: border-box;
|
|
|
page-break-after: always;
|
|
|
@@ -25,17 +25,17 @@
|
|
|
<h2 style="margin: 0; font-size: 24px; font-weight: bold;">{{ groupName }}入库单</h2>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 供应商信息 -->
|
|
|
+ <!-- 供应商/客户信息 -->
|
|
|
<div style="margin-bottom: 20px; width: 100%;">
|
|
|
<div style="width: 100%; display: flex;">
|
|
|
<div style="width: 40%;">
|
|
|
- <strong>供应商名称:</strong>{{ rowItem.extraInfo?.supplierName || '' }}
|
|
|
+ 供应商名称:{{ rowItem.extInfo?.supplierName || '' }}
|
|
|
</div>
|
|
|
<div style="width: 30%;">
|
|
|
- <strong>日期:</strong>{{ rowItem.storageTime || '' }}
|
|
|
+ 日期:{{ rowItem.storageTime || '' }}
|
|
|
</div>
|
|
|
<div style="width: 30%;">
|
|
|
- <strong>编号:</strong>{{ rowItem.bizNo || '' }}
|
|
|
+ 编号:{{ rowItem.bizNo || '' }}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -54,7 +54,7 @@
|
|
|
<tr>
|
|
|
<th style="border: 1px solid #000; padding: 4px; text-align: center; width: 5%;">编号</th>
|
|
|
<th style="border: 1px solid #000; padding: 4px; text-align: center; width: 25%;">型号规格</th>
|
|
|
- <th style="border: 1px solid #000; padding: 4px; text-align: center; width: 15%;">客户</th>
|
|
|
+ <th v-if="rowItem.bizType == 6" style="border: 1px solid #000; padding: 4px; text-align: center; width: 15%;">客户</th>
|
|
|
<th style="border: 1px solid #000; padding: 4px; text-align: center; width: 10%;">颜色</th>
|
|
|
<th style="border: 1px solid #000; padding: 4px; text-align: center; width: 10%;">单位</th>
|
|
|
<th style="border: 1px solid #000; padding: 4px; text-align: center; width: 10%;">入库数量</th>
|
|
|
@@ -65,7 +65,7 @@
|
|
|
<tr v-for="(row, index) in rowItem.outInDetailList" :key="index">
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;">{{ index + 1 }}</td>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;">{{row.categoryModel || '' }}{{ row.categoryModel && row?.specification ? '/' : '' }}{{ row?.specification || '' }}</td>
|
|
|
- <td style="border: 1px solid #000; padding: 4px; text-align: center;">{{ row?.clientName || '' }}</td>
|
|
|
+ <td v-if="rowItem.bizType == 6" style="border: 1px solid #000; padding: 4px; text-align: center;">{{ row?.clientName || '' }}</td>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;">{{ row?.colorKey || '' }}</td>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;">{{ row?.measureUnit || '' }}</td>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;">{{ row?.measureQuantity || '' }}</td>
|
|
|
@@ -75,6 +75,7 @@
|
|
|
<!-- 合计行 -->
|
|
|
<tr>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;" colspan="2">合计:</td>
|
|
|
+ <td v-if="rowItem.bizType == 6" style="border: 1px solid #000; padding: 4px; text-align: center;"></td>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;"></td>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;"></td>
|
|
|
<td style="border: 1px solid #000; padding: 4px; text-align: center;">{{ getTotalAmount(rowItem) }}</td>
|
|
|
@@ -125,8 +126,7 @@
|
|
|
return {
|
|
|
QRvisible: false,
|
|
|
formData: [],
|
|
|
- warehouseMap: {},
|
|
|
- supplierMap: {}
|
|
|
+ warehouseMap: {}
|
|
|
};
|
|
|
},
|
|
|
|
|
|
@@ -145,27 +145,22 @@
|
|
|
async init(ids, rows) {
|
|
|
console.log('ids~~', ids, rows);
|
|
|
// 批量获取每个入库单的详情
|
|
|
- // const promises = ids.map((id) => storageApi.getInboundDetailsByIds({ids: [id]}));
|
|
|
- // const results = await Promise.all(promises);
|
|
|
- const res = await storageApi.getInboundDetailsByIds(ids)
|
|
|
+ const res = await storageApi.getInboundDetailsByIds(ids);
|
|
|
this.formData = res;
|
|
|
|
|
|
// 构建仓库映射
|
|
|
this.warehouseMap = {};
|
|
|
- this.supplierMap = {};
|
|
|
rows.forEach((row) => {
|
|
|
this.warehouseMap[row.id] = row.warehouseName || '';
|
|
|
- this.supplierMap[row.id] = row.supplierName || '';
|
|
|
});
|
|
|
|
|
|
- console.log('formData', this.formData, this.warehouseMap, this.supplierMap);
|
|
|
+ console.log('formData', this.formData, this.warehouseMap);
|
|
|
this.QRvisible = true;
|
|
|
},
|
|
|
|
|
|
close() {
|
|
|
this.formData = [];
|
|
|
this.warehouseMap = {};
|
|
|
- this.supplierMap = {};
|
|
|
this.QRvisible = false;
|
|
|
},
|
|
|
|
|
|
@@ -201,18 +196,27 @@
|
|
|
const labelLeft = `${border}padding:4px;mso-number-format:"\\@";vertical-align:middle;text-align:left;mso-horizontal-align:left;font-family:'宋体';font-size:11pt;`;
|
|
|
|
|
|
const title = `${this.groupName || ''}入库单`;
|
|
|
- const colWidths = [55, 250, 90, 70, 90, 100];
|
|
|
- const colGroup = colWidths
|
|
|
- .map((w) => `<col width="${w}" style="width:${w}pt;" />`)
|
|
|
- .join('');
|
|
|
|
|
|
// 遍历多个单据生成多个表格
|
|
|
let tables = '';
|
|
|
- this.formData.forEach((rowItem, wi) => {
|
|
|
+ this.formData.forEach((rowItem) => {
|
|
|
const list = rowItem.outInDetailList || [];
|
|
|
const totalAmount = this.getTotalAmount(rowItem);
|
|
|
const warehouseName = this.warehouseMap[rowItem.id] || '';
|
|
|
- const supplierName = this.supplierMap[rowItem.id] || '';
|
|
|
+ const isBizType6 = rowItem.bizType == 6;
|
|
|
+ const supplierValue = rowItem.extInfo?.supplierName || '';
|
|
|
+
|
|
|
+ const totalCols = isBizType6 ? 7 : 6;
|
|
|
+ const colWidths = isBizType6
|
|
|
+ ? [55, 250, 120, 90, 70, 90, 100]
|
|
|
+ : [55, 250, 90, 70, 90, 100];
|
|
|
+ const colGroup = colWidths
|
|
|
+ .map((w) => `<col width="${w}" style="width:${w}pt;" />`)
|
|
|
+ .join('');
|
|
|
+
|
|
|
+ const customerTh = isBizType6
|
|
|
+ ? `<td align="center" valign="middle" style="${th}">客户</td>`
|
|
|
+ : '';
|
|
|
|
|
|
const rows = list
|
|
|
.map(
|
|
|
@@ -220,6 +224,7 @@
|
|
|
<tr height="24" style="height:24pt;">
|
|
|
<td align="center" valign="middle" style="${td}">${index + 1}</td>
|
|
|
<td align="center" valign="middle" style="${td}">${item.categoryModel || ''}${item.categoryModel && item.specification ? '/' : ''}${item.specification || ''}</td>
|
|
|
+ ${isBizType6 ? `<td align="center" valign="middle" style="${td}">${item.clientName || ''}</td>` : ''}
|
|
|
<td align="center" valign="middle" style="${td}">${item.colorKey || ''}</td>
|
|
|
<td align="center" valign="middle" style="${td}">${item.measureUnit || ''}</td>
|
|
|
<td align="center" valign="middle" style="${td}">${item.measureQuantity || ''}</td>
|
|
|
@@ -228,22 +233,27 @@
|
|
|
)
|
|
|
.join('');
|
|
|
|
|
|
+ const customerEmpty = isBizType6
|
|
|
+ ? '<td align="center" valign="middle" style="${td}"></td>'
|
|
|
+ : '';
|
|
|
+
|
|
|
tables += `
|
|
|
<table border="1" cellspacing="0" cellpadding="0" align="center"
|
|
|
style="border-collapse:collapse;border:1px solid #000;mso-border-alt:solid #000 0.5pt;font-family:'宋体';font-size:11pt;text-align:center;">
|
|
|
<colgroup>${colGroup}</colgroup>
|
|
|
<tr height="40" style="height:40pt;">
|
|
|
- <td colspan="6" align="center" valign="middle" style="${border}padding:6px;text-align:center;font-family:'宋体';font-size:22pt;font-weight:bold;">${title}</td>
|
|
|
+ <td colspan="${totalCols}" align="center" valign="middle" style="${border}padding:6px;text-align:center;font-family:'宋体';font-size:22pt;font-weight:bold;">${title}</td>
|
|
|
</tr>
|
|
|
<tr height="26" style="height:26pt;">
|
|
|
- <td colspan="3" align="left" valign="middle" style="${labelLeft}">供应商名称:${rowItem.extraInfo?.supplierName || ''}</td>
|
|
|
+ <td colspan="${isBizType6 ? 3 : 3}" align="left" valign="middle" style="${labelLeft}">供应商名称:${supplierValue}</td>
|
|
|
<td align="left" valign="middle" style="${labelLeft}">日期:${rowItem.storageTime || ''}</td>
|
|
|
- <td colspan="2" align="left" valign="middle" style="${labelLeft}">编号:${rowItem.bizNo || ''}</td>
|
|
|
+ <td colspan="${isBizType6 ? 3 : 2}" align="left" valign="middle" style="${labelLeft}">编号:${rowItem.bizNo || ''}</td>
|
|
|
</tr>
|
|
|
|
|
|
<tr height="28" style="height:28pt;">
|
|
|
<td align="center" valign="middle" style="${th}">编号</td>
|
|
|
<td align="center" valign="middle" style="${th}">型号规格</td>
|
|
|
+ ${customerTh}
|
|
|
<td align="center" valign="middle" style="${th}">颜色</td>
|
|
|
<td align="center" valign="middle" style="${th}">单位</td>
|
|
|
<td align="center" valign="middle" style="${th}">入库数量</td>
|
|
|
@@ -252,6 +262,7 @@
|
|
|
${rows}
|
|
|
<tr height="26" style="height:26pt;">
|
|
|
<td colspan="2" align="center" valign="middle" style="${td};font-weight:bold;">合计:</td>
|
|
|
+ ${customerEmpty}
|
|
|
<td align="center" valign="middle" style="${td}"></td>
|
|
|
<td align="center" valign="middle" style="${td}"></td>
|
|
|
<td align="center" valign="middle" style="${td};font-weight:bold;">${totalAmount}</td>
|
|
|
@@ -261,7 +272,7 @@
|
|
|
<td align="left" valign="middle" style="${labelLeft}">主管:${rowItem.verifyName || ''}</td>
|
|
|
<td align="left" valign="middle" style="${labelLeft}">仓库:${warehouseName}</td>
|
|
|
<td align="left" valign="middle" style="${labelLeft}">记账:${rowItem.extInfo?.createUserName || ''}</td>
|
|
|
- <td colspan="3" align="left" valign="middle" style="${labelLeft}">经手人:${rowItem.fromUser || ''}</td>
|
|
|
+ <td colspan="${isBizType6 ? 4 : 3}" align="left" valign="middle" style="${labelLeft}">经手人:${rowItem.fromUser || ''}</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
<br style="mso-special-character:line-break;page-break-before:always" />`;
|
|
|
@@ -289,7 +300,7 @@
|
|
|
</head>
|
|
|
<body>${tables}</body></html>`;
|
|
|
|
|
|
- const blob = new Blob(['' + html], {
|
|
|
+ const blob = new Blob(['\uFEFF' + html], {
|
|
|
type: 'application/vnd.ms-excel;charset=utf-8'
|
|
|
});
|
|
|
const firstBizNo = this.formData[0]?.bizNo || '';
|