This commit is contained in:
linfso 2025-06-18 18:21:43 +08:00
parent acda1e88f6
commit d1f206894f
3 changed files with 40 additions and 152 deletions

View File

@ -1,138 +1,5 @@
<template>
<XdPageContainer >
<div slot="pageContent">
<xd-table
height="calc(100vh - 20rem)"
ref="refTable"
v-loading="loading"
border
size="mini"
storageName="PayBackStatList_main_2505_05"
:data="emisStatList"
:showSearch.sync="showSearch"
:queryParams="queryParams"
:total="total"
@queryTable="getList"
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
@row-dblclick="onDblClick"
show-summary
:summary-method="getSummaries"
highlight-current-row
>
<div slot="toolbar">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="handleShowCanlender"
>收款日历</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExportDtl"
>导出收款明细</el-button>
</el-col> -->
</el-row>
</div>
<!-- 客户名称 寄件公司 账单名称 账单月份 账期 支付方式 开票状态 收款状态 账单金额 账期内收款金额 超期收款金额(70%) 逾期已收金额(60天) 未收款金额 销售联系人 回款联系人 -->
<el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('账单名称')" align="left" prop="settleBillName" width="200" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('账单月份')" align="center" prop="billMonth" width="80" />
<el-table-column :label="$t('账期(天)')" align="center" prop="creditPeriod" min-width="100" />
<el-table-column :label="$t('出账时间')" align="center" prop="createTime" min-width="170" />
<el-table-column :label="$t('最后回款日')" align="center" prop="paymentDueDate" min-width="170" >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.paymentDueDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('支付方式')" align="center" prop="settleType" width="100" >
<template slot-scope="scope">
<el-tag v-if="scope.row.settleType=='1'" type="error">现金</el-tag>
<el-tag v-if="scope.row.settleType=='2'" type="success">月结</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('账单金额')" align="center" prop="recMoney" width="150" />
<el-table-column :label="$t('总票数')" align="center" prop="sendPieceSum" width="80" />
<el-table-column :label="$t('账期内收款金额(100%)')" align="center" prop="recdMoneyIn" width="180" >
<template slot-scope="scope">
<div class="link-type" @click="handleShowBillList(scope.row,1)">{{ scope.row.recdMoneyIn }}</div>
</template>
</el-table-column>
<el-table-column :label="$t('超期收款金额(70%)')" align="center" prop="recdPayMoney60D" width="150" >
<template slot-scope="scope">
<div class="link-type" @click="handleShowBillList(scope.row,2)">{{ scope.row.recdPayMoney60D }}</div>
</template>
</el-table-column>
<el-table-column :label="$t('逾期已收金额(60天)')" align="center" prop="recdPayMoneyGreat60D" width="150" >
<template slot-scope="scope">
<div class="link-type" @click="handleShowBillList(scope.row,3)">{{ scope.row.recdPayMoneyGreat60D }}</div>
</template>
</el-table-column>
<el-table-column :label="$t('未收款金额')" align="center" prop="noRecMoney" width="150" >
<template slot-scope="scope">
<div class="link-type" @click="handleShowNoPayBillList(scope.row,4)">{{ scope.row.noRecMoney }}</div>
</template>
</el-table-column>
<el-table-column :label="$t('理赔金额')" align="center" prop="satisfyMoney" width="100" />
<el-table-column :label="$t('折让金额')" align="center" prop="allowanceMoney" width="100" />
<el-table-column :label="$t('抵扣金额')" align="center" prop="deductionMoney" width="100" />
<el-table-column :label="$t('其它金额')" align="center" prop="otherMoney" width="100" />
<el-table-column :label="$t('收款状态')" align="center" prop="paymentStatus" width="100" >
<template slot-scope="scope">
<el-tag v-if="scope.row.paymentStatus=='0'" type="error">未收款</el-tag>
<el-tag v-if="scope.row.paymentStatus=='1'" type="success">已收款</el-tag>
<el-tag v-if="scope.row.paymentStatus=='2'" type="warning">部分收款</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('月结客户')" align="center" prop="custName" min-width="150" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span type="normal">{{ scope.row.custName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('寄件人')" align="left" prop="customerName" width="200" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('账单编号')" align="center" prop="settleBillNo" width="170" :show-overflow-tooltip="true"/>
<el-table-column :label="$t('开票状态')" align="center" prop="openBillStatus" width="100" >
<template slot-scope="scope">
<el-tag v-if="scope.row.openBillStatus=='0'" type="error">未开票</el-tag>
<el-tag v-if="scope.row.openBillStatus=='1'" type="success">已开票</el-tag>
<el-tag v-if="scope.row.openBillStatus=='2'" type="warning">部分开票</el-tag>
<el-tag v-if="scope.row.openBillStatus=='3'" type="warning">不开票</el-tag>
<el-tag v-if="scope.row.openBillStatus=='4'" type="success">已完成</el-tag>
</template>
</el-table-column>
<el-table-column :label="$t('回款联系人')" align="center" prop="payee" width="100" />
<el-table-column :label="$t('销售联系人')" align="center" prop="salesmen" width="100" />
</xd-table>
</div>
</XdPageContainer>
</template>

View File

@ -171,6 +171,7 @@ export default {
selectionIndexList: [],
feeItemMap:new Map(),
feeItemCurrencyMap:new Map(),
// 动态费用列表
dynamicCol:[],
@ -264,7 +265,6 @@ export default {
// const header = this.getHeaderRow(worksheet) // 标题
const results = XLSX.utils.sheet_to_json(worksheet)
// console.log(results);
// 标题头
that.dynamicCol=[];
@ -283,8 +283,6 @@ export default {
let item=that.dict.type.emis_cost_fee_type[i];
that.feeItemMap[""+item.label+""]=item.value;
}
// console.log("===>feeItemMap=>",that.feeItemMap);
// console.log("===>dynamicCol=>",that.dynamicCol);
that.batchImportData(results);
@ -330,25 +328,25 @@ export default {
errorInfo:'',
}
// console.log("===kkkk=>item=>",item)
let feeItemList=[];
let feeItemPrice=new Map();
let feeItemCurrencyMap=new Map();
let errorInfo='';
let batchNo=null;
// 费用处理
for (const key in element) {
if (element.hasOwnProperty(key)) {
// console.log(`${key}: ${element[key]}`);
this.$set(orderData,key,element[key]) ;
// 解析费用数据
if(key!='运输单号'&&key!='供应商名称'&&key!='账期'&&key!='备注'){
// 获取费用编码
// 单价特殊处理
// 单价和币种特殊处理
let indexPos=key.indexOf("单价");
let indexPosCurrency = key.indexOf("币种");
if(indexPos !== -1 ){
let feeTypeStr=key.substring(0,indexPos);
console.log("===feeTypeStr=>",feeTypeStr)
if(!(feeTypeStr in that.feeItemMap) ){
orderData.uploadStatus=-1;
errorInfo=errorInfo+''+key+',';
@ -359,6 +357,17 @@ export default {
}
}
else if(indexPosCurrency !== -1 ){
let feeTypeStr=key.substring(0,indexPosCurrency);
if(!(feeTypeStr in that.feeItemMap) ){
orderData.uploadStatus=-1;
errorInfo=errorInfo+''+key+',';
continue
}else{
let feeTypeCode=that.feeItemMap[feeTypeStr]
feeItemCurrencyMap[feeTypeCode]=element[key];
}
}
else{
if(!(key in that.feeItemMap) ){
orderData.uploadStatus=-1;
@ -382,13 +391,32 @@ export default {
orderData.errorInfo="费用类型:["+errorInfo+"]未配置";
}
else{
console.log("===feeItemPrice=>",feeItemPrice)
// 循环处理费用单价
let costFee=Number(0);
let usdCostFee=Number(0);
// 循环处理费用单价和币种
for(let i=0;i<feeItemList.length;i++){
let item=feeItemList[i];
let price=feeItemPrice[item.feeType];
this.$set(item,"price",price) ;
let currency='CNY';
if(item.feeType in feeItemCurrencyMap){
currency=feeItemCurrencyMap[item.feeType];
}
this.$set(item,"currency",currency) ;
if(currency == "CNY"){
costFee=costFee+Number(item.fee);
}
else if(currency == "USD"){
usdCostFee=usdCostFee+Number(item.fee);
}
}
this.$set(orderData,"costFee",costFee) ;
this.$set(orderData,"usdCostFee",usdCostFee) ;
this.$set(orderData,"feeItemList",feeItemList) ;
}
@ -434,8 +462,6 @@ export default {
orderData.errorInfo='获取批次异常';
}
}
// console.log("===orderData=>",orderData)
this.tmpDataList.push(orderData);
}
@ -505,12 +531,8 @@ export default {
try{
let batchNo=null;
console.log("===>orderItem===>",orderItem);
// 获取批次信息
let batchItem=orderItem['batchItem'];
console.log("===>batchItem===>",batchItem);
if(batchItem!=null){
@ -533,6 +555,9 @@ export default {
submitOrderForm.totalWeight=batchItem.totalWeight;
submitOrderForm.totalVolume=batchItem.totalVolume;
this.$set(submitOrderForm,"costFee",orderItem.costFee) ;
this.$set(submitOrderForm,"usdCostFee",orderItem.usdCostFee) ;
// 费用类型
this.$set(submitOrderForm,"feeItemList",orderItem.feeItemList) ;
// 获取批次关联运单号
@ -549,9 +574,6 @@ export default {
}
}
this.$set(submitOrderForm,"billRelList",billRelList)
console.log("===>submitOrderForm===>",submitOrderForm);
let res=await draftSubmitTmsCostFee(submitOrderForm)
let rstData=res.data;
if(rstData.result=='success'){
@ -571,7 +593,6 @@ export default {
}
}catch(e){
console.log("===>e===>",e,e.message);
orderItem.uploadStatus=-1;
orderItem.errorInfo=''+e.message;
continue;