This commit is contained in:
linfso 2024-07-08 17:37:19 +08:00
parent ef1a3ed9f8
commit c1220626ad
2 changed files with 315 additions and 261 deletions

View File

@ -9,6 +9,14 @@ export function listEmisSettleSubBill(query) {
})
}
export function getQueryStatInfoMap(query) {
return request({
url: '/emis/emisSettleSubBill/getQueryStatInfoMap',
method: 'get',
params: query
})
}
// 查询结算子账单详细
export function getEmisSettleSubBill(id) {
return request({

View File

@ -1,252 +1,60 @@
<template>
<div class="app-container">
<!-- <SearchForm :model="queryParams" ref="queryForm" size="mini" :maxShow="3" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-form-item label="" prop="billNo">
<el-input
v-model="queryParams.billNo"
:placeholder="$t('分账单号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="parentBillNo">
<el-input
v-model="queryParams.parentBillNo"
:placeholder="$t('父账单号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="settleBillNo">
<el-input
v-model="queryParams.settleBillNo"
:placeholder="$t('总结算账单号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="billCode">
<el-input
v-model="queryParams.billCode"
:placeholder="$t('运单号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="billDate">
<el-date-picker clearable
v-model="queryParams.billDate"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
:placeholder="$t('出账时间')">
</el-date-picker>
</el-form-item>
<el-form-item label="" prop="billFee">
<el-input
v-model="queryParams.billFee"
:placeholder="$t('账单费用')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="currency">
<el-input
v-model="queryParams.currency"
:placeholder="$t('费用币种')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="settleType">
<el-input
v-model="queryParams.settleType"
:placeholder="$t('结算账单类型')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="blSplit">
<el-input
v-model="queryParams.blSplit"
:placeholder="$t('是否已拆单')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="billMonth">
<el-input
v-model="queryParams.billMonth"
:placeholder="$t('账单月份')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="custNo">
<el-input
v-model="queryParams.custNo"
:placeholder="$t('月结编号')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="customerCode">
<el-input
v-model="queryParams.customerCode"
:placeholder="$t('客户编码')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="customerName">
<el-input
v-model="queryParams.customerName"
:placeholder="$t('客户名称')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="blConfirm">
<el-input
v-model="queryParams.blConfirm"
:placeholder="$t('财务确认状态')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="confirmDate">
<el-input
v-model="queryParams.confirmDate"
:placeholder="$t('财务确认日期')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="confirmSite">
<el-input
v-model="queryParams.confirmSite"
:placeholder="$t('财务确认站点')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="confirmManCode">
<el-input
v-model="queryParams.confirmManCode"
:placeholder="$t('财务确认人')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="blSiteConfirm">
<el-input
v-model="queryParams.blSiteConfirm"
:placeholder="$t('站点确认状态')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="confirmNote">
<el-input
v-model="queryParams.confirmNote"
:placeholder="$t('财务确认备注')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="siteConfirmDate">
<el-input
v-model="queryParams.siteConfirmDate"
:placeholder="$t('站点确认日期')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="siteConfirmManCode">
<el-input
v-model="queryParams.siteConfirmManCode"
:placeholder="$t('站点确认人')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="siteConfirmNote">
<el-input
v-model="queryParams.siteConfirmNote"
:placeholder="$t('网点确认备注')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="delFlag">
<el-input
v-model="queryParams.delFlag"
:placeholder="$t('删除标志(0代表存在')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</SearchForm> -->
<SearchForm slot="pageHeader" class="queryForm" :model="queryParams" ref="queryForm" size="mini" :maxShow="9" label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<!-- :span="6" -->
<el-col :span="9">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="24">
<el-form-item label="运单号" prop="billCode">
<SearchForm slot="pageHeader" :model="queryParams" ref="queryForm"
size="mini" :maxShow="12" label-width="100px"
v-show="showSearch"
@search="handleQuery"
@reset="resetQuery"
:isShowSearchBtn="true"
>
<el-form-item label="运单号" prop="billCode">
<XdTextareaInput
v-model="queryParams.billCode"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
:rows="4"
:rows="2"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="发货时间" prop="">
<elDateAdvPicker v-model="dateTimeRange" ></elDateAdvPicker>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="5">
<el-form-item label="寄件网点" prop="productType">
<EmisSiteSimplePicker1 v-model="queryParams.sendSiteCode" :disabled="$store.getters.ownerSiteCode!='88888'" ></EmisSiteSimplePicker1>
</el-form-item>
<el-form-item label="目的网点" prop="dispatchUnderlingSiteCode">
<EmisSiteSimplePicker2 v-model="queryParams.dispatchUnderlingSiteCode" ></EmisSiteSimplePicker2>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="月结客户" prop="custNo">
<el-form-item label="寄件网点" prop="waybillDetail.sendSiteCode">
<EmisSiteSimplePicker1 v-model="queryParams.params.sendSiteCode" :disabled="$store.getters.ownerSiteCode!='88888'" ></EmisSiteSimplePicker1>
</el-form-item>
<el-form-item label="目的网点" prop="dispatchUnderlingSiteCode">
<EmisSiteSimplePicker2 v-model="queryParams.params.dispatchUnderlingSiteCode" ></EmisSiteSimplePicker2>
</el-form-item>
<el-form-item v-if="settleType==2" label="月结客户" prop="custNo">
<EmisMonthpayAccountPicker v-model="queryParams.custNo" @onChange="handleQuery"></EmisMonthpayAccountPicker>
</el-form-item>
<el-form-item label="付款方式" prop="paymentType" >
<el-select clearable v-model="queryParams.paymentType" placeholder="请选择">
<el-select v-if="settleType==1" clearable v-model="queryParams.params.paymentType" placeholder="请选择">
<el-option
v-for="dict in dict.type.emis_payment_type.filter(item=>['1','3','6'].includes(item.value))"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
<el-select v-if="settleType==2" clearable v-model="queryParams.params.paymentType" placeholder="请选择">
<el-option
v-for="dict in dict.type.emis_payment_type"
v-for="dict in dict.type.emis_payment_type.filter(item=>['2','4','5'].includes(item.value))"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item :label="$t('回款联系人')" prop="payee">
<PayeePicker :placeholder="$t('回款联系人')" v-model="queryParams.payee" ></PayeePicker>
<PayeePicker :placeholder="$t('回款联系人')" v-model="queryParams.params.payee" ></PayeePicker>
</el-form-item>
<el-form-item :label="$t('销售联系人')" prop="salesmen">
<SalemanPicker :placeholder="$t('销售联系人')" v-model="queryParams.salesmen" ></SalemanPicker>
<SalemanPicker :placeholder="$t('销售联系人')" v-model="queryParams.params.salesmen" ></SalemanPicker>
</el-form-item>
<el-form-item label="寄件公司" prop="sendCompany">
<el-input
v-model="queryParams.sendCompany"
v-model="queryParams.params.sendCompany"
:placeholder="$t('寄件公司')"
clearable
@keyup.enter.native="handleQuery"
@ -255,24 +63,23 @@
<el-form-item label="收件公司" prop="receiveCompany">
<el-input
v-model="queryParams.receiveCompany"
v-model="queryParams.params.receiveCompany"
:placeholder="$t('收件公司')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
</el-row>
</SearchForm>
</SearchForm>
<el-tabs v-model="activeTab" class="center-tabs" @tab-click="handleClick">
<el-tab-pane label="全部" name="all" />
<el-tab-pane label="未确认" name="waitConfirm" />
<el-tab-pane label="已确认" name="hasConfirm" />
<el-tab-pane label="确认不出账" name="confirmNotBill" />
<el-tab-pane label="账单异常" name="billError" />
<el-tab-pane label="财务置账单异常" name="billError" />
<el-tab-pane label="业务置账单异常" name="siteBillError" />
</el-tabs>
@ -344,7 +151,7 @@
size="mini"
:disabled="multiple"
@click="handleCancelConfirmByCenter"
v-hasPermi="['emis:emisSettleSubBill:cancelConfirmBillByCente']"
v-hasPermi="['emis:emisSettleSubBill:cancelConfirmBillByCenter']"
>取消确认</el-button>
</el-col>
@ -372,7 +179,47 @@
</el-row>
</div>
<div slot="statInfo" style="font-size: 13px;">
总票数:<span class="statInfoValue">{{queryStatInfoMap?queryStatInfoMap.totalNum:0}}</span>,
总运费:<span class="statInfoValue">{{queryStatInfoMap?queryStatInfoMap.totalBillFee:0}}</span>
</div>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="expand">
<template slot-scope="scope">
<div style="padding: 8px 50px;background: white;">
<div style="display:inline-flex" >
<div style="font-weight:500">总费用:<span>{{scope.row.billFee}}</span></div>
<div>
<el-button
type="text"
size="mini"
style="padding: 2px 10px;font-size: 13px;border: 1px solid #e1e1e1;"
@click="handleShowTraceInfo(scope.row)"
>运单详情</el-button>
</div>
</div>
<div class="feeItem">
<ul class="th">
<li>费用名称</li>
<li>费用</li>
<!-- <li>币种</li> -->
<li>描述</li>
</ul>
<ul v-for="(item,index) in scope.row.feeitemList" :key="index">
<li style="background: #f4f4f4;font-weight: 600;">{{$t(item.feeName)}}</li>
<li>{{item.billFee}}</li>
<!-- <li>{{item.currency}}</li> -->
<li>{{item.remark}}</li>
</ul>
</div>
</div>
</template>
</el-table-column>
<el-table-column :label="$t('运单号')" align="center" prop="billCode" min-width="130" />
<el-table-column :label="$t('子账单号')" align="center" prop="billNo" min-width="130" />
@ -604,11 +451,13 @@
</XdTable>
<el-dialog :title="titleForm" :visible.sync="openForm" width="50%" :destroy-on-close="true" v-dialogDrag append-to-body>
<!-- <el-dialog :title="titleForm" :visible.sync="openForm" width="50%" :destroy-on-close="true" v-dialogDrag append-to-body>
<emisSettleSubBillForm :id="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></EmisSettleSubBillForm>
</el-dialog> -->
<el-dialog :title="openTraceInfoTitle" :visible.sync="openTraceInfo" width="80%" :close-on-click-modal="false" v-dialogDrag append-to-body>
<TraceWaybillDetailView :key="currentTraceBillCode" :scanBillCode="currentTraceBillCode" :billDetail="currentTraceBillItem"></TraceWaybillDetailView>
</el-dialog>
<!--
<el-dialog :title="titleView" :visible.sync="openView" width="60%" :close-on-click-modal="false" v-dialogDrag append-to-body>
<emisSettleSubBillView :id="id" ></EmisSettleSubBillView>
@ -620,7 +469,7 @@
<script>
import { listEmisSettleSubBill,
getEmisSettleSubBill,
getQueryStatInfoMap,
delEmisSettleSubBill,
confirmBillByCenter,
cancelConfirmBillByCenter,
@ -663,9 +512,11 @@ import EmisSiteSimplePicker2 from '@/views/emis/EmisBaseTools/EmisSiteSimplePick
import ProblemTypePicker from '@/views/emis/EmisBaseTools/ProblemTypePicker.vue';
import EmisMonthpayAccountPicker from '@/views/emis/EmisBaseTools/EmisMonthpayAccountPicker.vue';
import TraceWaybillDetailView from '@/views/emis/customerService/traceWaybillDetailView.vue';
export default {
name: "SubBillConfirmByMoneyList",
// name: "SubBillConfirmByMonthList",
components: {
elDateSimplePicker,emisSettleSubBillForm,
EmisMonthpayAccountPicker,
@ -683,6 +534,8 @@ export default {
EmisSiteSimplePicker2,
ProblemTypePicker,
TraceWaybillDetailView
},
dicts: ['emis_qujian_fangshi','emis_declare_mode','emis_customs_clear',
'emis_tab_packing_type','emis_tab_dispatch_mode','emis_payment_type',
@ -708,10 +561,19 @@ export default {
// 结算子账单表格数据
emisSettleSubBillList: [],
settleType:null,
queryStatInfoMap:null,
currentId:null,
openForm: false,
titleForm: "",
openTraceInfo:false,
openTraceInfoTitle:null,
currentTraceBillItem:null,
currentTraceBillCode:null,
// 时间搜索
// 弹出展示层
id:null,
@ -750,11 +612,154 @@ export default {
siteConfirmManCode: null,
siteConfirmNote: null,
delFlag: null,
params:{
customerCode: null,
customerName: null,
receiveCustomerCode: null,
receiveCustomerName: null,
thirdCustomerCode: null,
thirdCustomerName: null,
receiveName: null,
receiveCompany: null,
receiveMobile: null,
receiveTel: null,
receiveCountry: null,
receiveProvince: null,
receiveCity: null,
receiveCounty: null,
receiveTown: null,
receiveAddress: null,
receivePostcode: null,
receivePcd: null,
sendName: null,
sendCompany: null,
sendMobile: null,
sendTel: null,
sendCountry: null,
sendProvince: null,
sendCity: null,
sendCounty: null,
sendTown: null,
sendAddress: null,
sendPostcode: null,
sendPcd: null,
paymentType: null,
calcFeeType: null,
custNo: null,
transLineType: null,
productType: null,
timeType: null,
meterType: null,
customsClear: null,
customsEclaration: null,
estimateDate: null,
packType: null,
dispatchMethod: null,
pickupMethod: null,
pickStartDate: null,
pickFinishDate: null,
pickFailReason: null,
intoWarehouseCode: null,
intoWarehouseName: null,
intoWarehouseAddress: null,
intoWarehouseContact: null,
intoWarehousePhone: null,
intoWarehouseBillCode: null,
warehouseInNo: null,
customerDeliveryBeginTime: null,
customerDeliveryEndTime: null,
goodsType: null,
goodsInfo: null,
goodsPics: null,
blPrepareInFreight: null,
prepareInEstFee: null,
prepareInRealFee: null,
prepareInExpress: null,
prepareInBillCode: null,
prepareInRemark: null,
prepareInSupplier: null,
totalWeight: null,
totalVolume: null,
parcelQty: null,
billWeight: null,
volumeWeight: null,
currency: null,
settlementWeight: null,
feeWeight: null,
freight: null,
blOverLong: null,
blBill: null,
blOverWeight: null,
overWeightNumber: null,
feeRemark: null,
thirdCode: null,
realValue: null,
blInsure: null,
insureValue: null,
insureValueCurrency: null,
insureFeeCurrency: null,
insureFee: null,
insureRemark: null,
insureSiteCode: null,
insureDate: null,
blPrint: null,
printManCode: null,
printSite: null,
printDate: null,
printCount: null,
blDispFd: null,
transferCode: null,
transferBillcode: null,
dispFdDate: null,
dispFdReason: null,
currentSiteCode: null,
lastSiteCode: null,
registerSiteCode: null,
registerDate: null,
registerManCode: null,
takePieceEmployeeCode: null,
sendSiteCode: null,
sendDate: null,
dispatchManCode: null,
dispatchDate: null,
dispatchSiteCode: null,
produceBillDate: null,
produceBillSiteCode: null,
produceBillManCode: null,
destinationCode: null,
destinationProvince: null,
destinationCity: null,
destinationCounty: null,
dispatchUnderlingSiteCode: null,
destinationCenterCode: null,
marketManCode: null,
payee: null,
salesmen: null,
operateEmployeeCode: null,
blIsQuestion: null,
problemType: null,
problemCause: null,
problemDelayDays: null,
blMessage: null,
blAcceptMessage: null,
blGenSubbill: null,
signMan: null,
signManCode: null,
signSiteCode: null,
signDate: null,
billPicSendRmk: null,
billPicDispatchRmk: null,
timezoneOffset: null,
delFlag: null,
remark: null,
blSign:null,
}
},
};
},
created() {
this.queryParams.blConfirm='0';
this.settleType=this.$route.query.settleType;
this.getList();
},
@ -776,41 +781,60 @@ export default {
else if (tab.name == 'billError') {
this.queryParams.blConfirm='3';
}
else if (tab.name == 'siteBillError') {
this.queryParams.blSiteConfirm='3';
}
this.getList();
},
//标红table指定行
// <span v-if="scope.row.blConfirm=='0'" >未确认</span>
// <el-tag v-if="scope.row.blConfirm=='1'" type="success">已确认</el-tag>
// <el-tag v-if="scope.row.blConfirm=='2'" type="error">确认不出账</el-tag>
// <el-tag v-if="scope.row.blConfirm=='3'" type="error">账单异常</el-tag>
tableRowClassName({row, rowIndex}) {
if (row.blConfirm=='0') {
return {"color": "blue !important"}
}
else if (row.blConfirm=='1') {
return {};
}
else if (row.blConfirm=='2') {
return {"color": "red !important"}
}
else if (row.blConfirm=='3') {
return {"color": "red !important"}
}
tableRowClassName({row, rowIndex}) {
// if (row.blConfirm=='0') {
// return {"color": "black !important"}
// }
// else if (row.blConfirm=='1') {
// return {};
// }
// else if (row.blConfirm=='2') {
// return {"color": "black !important"}
// }
// else if (row.blConfirm=='3') {
// return {"color": "black !important"}
// }
return '';
},
},
/** 查询结算子账单列表 */
initQueryParams(){
this.queryParams.settleType=this.settleType;
this.queryParams=this.addDateRange(this.queryParams, this.dateTimeRange,"sendDate")
},
getList() {
this.loading = true;
this.queryParams.settleType='1';
this.queryParams=this.addDateRange(this.queryParams, this.dateTimeRange,"sendDate")
this.initQueryParams();
listEmisSettleSubBill(this.queryParams).then(response => {
this.emisSettleSubBillList = response.rows;
this.total = response.total;
this.loading = false;
});
// 查询统计
getQueryStatInfoMap(this.queryParams).then(response => {
this.queryStatInfoMap = response.data;
});
},
handleShowTraceInfo(row){
this.openTraceInfoTitle="运单详情【"+row.billCode+"】";
this.currentTraceBillCode=row.billCode;
this.currentTraceBillItem=row.waybillDetail;
this.openTraceInfo=true;
},
handleSplit(){
@ -966,14 +990,36 @@ export default {
};
</script>
<style scoped>
.el-divider{
margin-top: 0px;
background: 0 0;
border-top: 1px solid #E6EBF5;
<style lang="scss" scoped>
.feeItem{
border: 1px solid #d4d4d4;
ul{
list-style: none;
padding: 0px;
margin: 0px;
width: 590px;
height: 32px;
line-height: 32px;
border: 1px solid #ffffff;
border-top: 0px;
font-size: 12px;
}
.el-divider__text {
color: #0955ee;
cursor: pointer;
ul li{
display:block; width:33%; float:left;text-indent:2em
}
.th{
background:#F1FADE; font-weight:bold; border-top:1px
}
}
.statInfoValue{
color: red;
font-size: 13px;
font-weight: 500;
}
</style>