|
|
@ -113,8 +113,8 @@ |
|
|
<el-tabs style="font-size: 12px;min-height: 200px" class="customer-tab" v-model="activeName" type="border-card" @tab-click="tabClick" > |
|
|
<el-tabs style="font-size: 12px;min-height: 200px" class="customer-tab" v-model="activeName" type="border-card" @tab-click="tabClick" > |
|
|
<el-tab-pane :label="currentRow.cmcInvoice+'明细'" name="detail"> |
|
|
<el-tab-pane :label="currentRow.cmcInvoice+'明细'" name="detail"> |
|
|
<el-table |
|
|
<el-table |
|
|
:height="height" |
|
|
|
|
|
:data="dataList2" |
|
|
|
|
|
|
|
|
:height="height" ref="cloDetailTable" |
|
|
|
|
|
:data="dataList2" show-summary :summary-method="getDetailSummaries" |
|
|
border :cell-style="cellStyleDetail" |
|
|
border :cell-style="cellStyleDetail" |
|
|
style="width: 100%;"> |
|
|
style="width: 100%;"> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
@ -1864,7 +1864,7 @@ |
|
|
// 获取PN数据缺失的具体字段提示信息 |
|
|
// 获取PN数据缺失的具体字段提示信息 |
|
|
getPnIncompleteTooltip(row) { |
|
|
getPnIncompleteTooltip(row) { |
|
|
const missingFields = []; |
|
|
const missingFields = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 检查每个字段是否缺失 |
|
|
// 检查每个字段是否缺失 |
|
|
if (!(row.rollqty !== null && row.rollqty !== undefined && row.rollqty !== '')) { |
|
|
if (!(row.rollqty !== null && row.rollqty !== undefined && row.rollqty !== '')) { |
|
|
missingFields.push('每卷数量'); |
|
|
missingFields.push('每卷数量'); |
|
|
@ -2670,7 +2670,37 @@ |
|
|
this.$nextTick(() => this.$refs.detailTable.doLayout());// 强制刷新布局, 否则会被表格覆盖 |
|
|
this.$nextTick(() => this.$refs.detailTable.doLayout());// 强制刷新布局, 否则会被表格覆盖 |
|
|
return sums; |
|
|
return sums; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
getDetailSummaries(param) { |
|
|
|
|
|
const { columns } = param; |
|
|
|
|
|
const sums = []; |
|
|
|
|
|
columns.forEach((column, index) => { |
|
|
|
|
|
if (index === 0) { |
|
|
|
|
|
sums[index] = '合计'; |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
let sumDataList = this.dataList2.filter(item => item.qty>0); |
|
|
|
|
|
const values = sumDataList.map(item => Number(item[column.property])); |
|
|
|
|
|
if (!values.every(value => isNaN(value))) { |
|
|
|
|
|
switch(column.property) { |
|
|
|
|
|
case 'qty': |
|
|
|
|
|
sums[index] = `${values.reduce((a, b) => a + b, 0)}`; |
|
|
|
|
|
break; |
|
|
|
|
|
case 'ttlAmount': |
|
|
|
|
|
sums[index] = `${values.reduce((a, b) => a + b, 0).toFixed(2)}`; |
|
|
|
|
|
break; |
|
|
|
|
|
case 'sumPrice': |
|
|
|
|
|
sums[index] = `${values.reduce((a, b) => a + b, 0).toFixed(2)}`; |
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
sums[index] = ''; |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
sums[index] = ''; |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
this.$nextTick(() => this.$refs.cloDetailTable.doLayout());// 强制刷新布局, 否则会被表格覆盖 |
|
|
|
|
|
return sums; |
|
|
|
|
|
}, |
|
|
/** |
|
|
/** |
|
|
* 保存选中行到本地存储 |
|
|
* 保存选中行到本地存储 |
|
|
* 使用页面路径和用户名作为存储键的一部分,确保不同页面和用户的选择互不影响 |
|
|
* 使用页面路径和用户名作为存储键的一部分,确保不同页面和用户的选择互不影响 |
|
|
|