Browse Source

完善客户账单汇总

master
yunuo970428 6 months ago
parent
commit
a7a393da52
  1. 28
      anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentConfirmation.js
  2. 386
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/customerBillingSummary.vue

28
anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentConfirmation.js

@ -100,7 +100,7 @@ export function recallConfirm(data) {
})
}
// 客户账单汇总
// 客户账单汇总 -- 一级列表
export function customerBillListPage(data) {
return request({
url: '/fin/finuncollectedreceivablesdetailed/customerBillListPage',
@ -112,6 +112,24 @@ export function customerBillListPage(data) {
})
}
// 客户账单汇总 -- 二级列表
export function customerBillDetailsList(data) {
return request({
url: '/fin/finuncollectedreceivablesdetailed/customerBillDetailsList',
method: 'post',
params: data
})
}
// 客户账单汇总 -- 三级列表
export function customerBillThreeDetails(data) {
return request({
url: '/fin/finuncollectedreceivablesdetailed/customerBillThreeDetails',
method: 'post',
params: data
})
}
// 客户账单明细
export function customerBillDetailedListPage(data) {
return request({
@ -124,14 +142,6 @@ export function customerBillDetailedListPage(data) {
})
}
// 数据字典
export function dataDictionary(data) {
return request({
url: '/portal/v1/dictcommons/typeValues',
method: 'get',
params: data
})
}
// 上传文件
export function upload(data) {
return request({

386
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/customerBillingSummary.vue

@ -1,160 +1,186 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>客户账单汇总</div>
<div>
<el-button type="info" size="small">导表</el-button>
<el-button type="info" size="small">关闭</el-button>
</div>
</div>
<div class="webcon">
<div v-show="viewState == 1">
<button-bar view-title="客户账单汇总" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-row>
<el-form-item label="客户名称:">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable class="addinputw"/>
</el-form-item>
<el-form-item label="合同编号:">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable class="addinputw"/>
</el-form-item>
<el-form-item label="款项类型:">
<el-select v-model="listQuery.params.paymentTypeKey" placeholder="请选择" filterable clearable>
<el-option v-for="item in paymentType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="生成时间:">
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.createStartTime" clearable style="width: 160px" type="date" placeholder="开始日期"/>
<div class="line"></div>
<el-date-picker value-format="yyyy-MM-dd" v-model="listQuery.params.createEndTime" clearable style="width: 160px" type="date" placeholder="结束日期"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="款项名称:">
<el-input v-model="listQuery.params.receivablesName" placeholder="" clearable class="addinputw"/>
</el-form-item>
<el-form-item label="款项状态:">
<el-select v-model="listQuery.params.subscriptionState" placeholder="请选择" filterable clearable>
<el-option v-for="item in subscriptionState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-row>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handReset">重置</el-button>
</div>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
</el-form-item>
<el-form-item label="合同编号">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable />
</el-form-item>
<el-form-item label="未收金额">
<div style="display: flex;flex-direction: row;justify-content: flex-start;align-items: center">
<el-input v-model="listQuery.params.noSubscriptionMoneyStart" placeholder="" clearable />
<span style="padding: 0 8px"></span>
<el-input v-model="listQuery.params.noSubscriptionMoneyEnd" placeholder="" clearable />
</div>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handReset">重置</el-button>
</div>
</div>
</div>
<div>
<div class="listtop">
<div class="tit">应收款项列表</div>
<div class="tit">客户账单汇总列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%">
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="客户名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="款项类型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.paymentTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="款项名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivablesName }}</span>
</template>
</el-table-column>
<el-table-column label="款项状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionState }}</span>
</template>
</el-table-column>
<el-table-column label="应收金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.currentReceivableMoney }}</span>
</template>
</el-table-column>
<el-table-column label="实收金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionMoney }}</span>
</template>
</el-table-column>
<el-table-column label="未收金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.noSubscriptionMoney }}</span>
</template>
</el-table-column>
<el-table-column label="生成时间" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="最新处理时间" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.auditDate }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
<el-button type="primary" size="small" @click="handleLook(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" />
<el-table-column prop="contractNo" label="合同编号" align="center" />
<el-table-column prop="reveivableMoney" label="应收金额" align="center" />
<el-table-column prop="subscriptionMoney" label="实收金额" align="center" />
<el-table-column prop="noSubscriptionMoney" label="未收金额" align="center" />
</el-table>
</div>
<div class="pages">
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
</div>
<el-dialog :visible.sync="outerVisible" width="60%">
<div>
<el-table :key="outerKey" :data="outerList" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="lookInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="customerName" label="客户名称" align="center" width="100" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="180" />
<el-table-column prop="vinNo" label="车架号" align="center" width="120" />
<el-table-column prop="receivablesName" label="款项名称" align="center" width="100" />
<el-table-column prop="kxState" label="应收款状态" align="center" width="120" />
<el-table-column prop="reveivableMoney" label="应收金额" align="center" width="100" />
<el-table-column prop="subscriptionMoney" label="实收金额" align="center" width="100" />
<el-table-column prop="noSubscriptionMoney" label="未收金额" align="center" width="100" />
<el-table-column prop="createTime" label="生成时间" align="center" width="170" />
</el-table>
</div>
<el-dialog :visible.sync="innerVisible" width="50%" append-to-body>
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="8">
<div class="span-sty">客户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">合同编号</div>
<el-form-item><span class="addinputInfo">{{ formobj.contractNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">车架号</div>
<el-form-item><span class="addinputInfo">{{ formobj.vinNo }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">款项名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.receivablesName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">应收金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.reveivableMoney }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">实收金额</div>
<el-form-item><span class="addinputInfo">{{ formobj.subscriptionMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-table :key="innerKey" :data="formobj.list" :index="index" border style="width: 100%">
<el-table-column width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="collectionDate" label="收款日期" align="center" />
<el-table-column prop="collectionMoney" label="收款金额" align="center" />
<el-table-column prop="payType" label="付款方式" align="center" />
<el-table-column prop="billNo" label="单据编号" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="lookDetails(scope.row)">{{ scope.row.billNo }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</el-dialog>
</el-dialog>
<!---->
<acknowledgementReceiptInfo v-show="viewState == 2" ref="divSKD" @doback="resetState" />
<!-- 查看款项结转详情 -->
<moneycarriedforwardInfo v-show="viewState == 3" ref="divKXJZ" @doback="resetState" />
</div>
</template>
<script>
import { customerBillListPage, dataDictionary } from '@/api/anruifinmanagement/paymentConfirmation.js'
import { customerBillListPage, exportExcel, customerBillDetailsList, customerBillThreeDetails } from '@/api/anruifinmanagement/paymentConfirmation.js'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import acknowledgementReceiptInfo from './acknowledgementReceiptInfo'
import moneycarriedforwardInfo from '@/views/moneycarriedforward/moneycarriedforwardInfo'
export default {
name: 'kehuzhangdanhuizong',
components: {
Pagination,
pageye,
ButtonBar,
acknowledgementReceiptInfo,
moneycarriedforwardInfo
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
list: [],
paymentType_list: [],
subscriptionState_list: [
{
dictKey: 1,
dictValue: '未认款'
},
outerVisible: false,
outerKey: 1,
outerList: [],
formobj: {
customerName: '',
contractNo: '',
vinNo: '',
receivablesName: '',
reveivableMoney: '',
subscriptionMoney: '',
list: []
},
index: 0,
innerVisible: false,
innerKey: 2,
viewState: 1,
btndisabled: false,
btnList: [
{
dictKey: 2,
dictValue: '部分认款'
type: 'success',
size: 'small',
icon: 'export',
btnKey: 'doExport',
btnLabel: '导出'
},
{
dictKey: 3,
dictValue: '已认款'
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
list: [],
listLoading: false,
listQuery: {
current: 1,
@ -162,12 +188,11 @@ export default {
params: {
customerName: '',
contractNo: '',
paymentTypeKey: '',
receivablesName: '',
createStartTime: '',
createEndTime: '',
subscriptionState: '',
createBySid: window.sessionStorage.getItem('staffSid')
userSid: '',
orgPath: '',
menuUrl: '',
noSubscriptionMoneyStart: '',
noSubscriptionMoneyEnd: ''
},
total: 0
}
@ -175,16 +200,11 @@ export default {
},
created() {
this.getList()
this.DataDictionary()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
DataDictionary() {
dataDictionary({ type: 'spaymentType' }).then((res) => {
if (res.code === '200') {
this.paymentType_list = res.data
}
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
@ -194,6 +214,19 @@ export default {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'doExport':
this.doExport()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// ------------------
//
indexMethod(index) {
@ -204,17 +237,23 @@ export default {
//
getList() {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.menuUrl = this.$route.path
customerBillListPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.code === '200') {
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
} else {
this.listQuery.total = 0
this.list = []
}
})
},
//
handleFilter() {
console.log(this.listQuery, 999)
this.listQuery.current = 1
this.getList()
},
handReset() {
@ -224,36 +263,87 @@ export default {
params: {
customerName: '',
contractNo: '',
paymentTypeKey: '',
receivablesName: '',
createStartTime: '',
createEndTime: '',
subscriptionState: '',
createBySid: window.sessionStorage.getItem('staffSid')
userSid: '',
orgPath: '',
menuUrl: '',
noSubscriptionMoneyStart: '',
noSubscriptionMoneyEnd: ''
},
total: 0
}
this.getList()
},
handleLook(row) {
customerBillDetailsList({ contractNo: row.contractNo }).then((res) => {
if (res.success) {
this.outerVisible = true
this.outerList = res.data
}
})
},
lookInfo(row) {
customerBillThreeDetails({ receivablesSid: row.receivablesSid }).then((resp) => {
if (resp.success) {
this.innerVisible = true
this.formobj = resp.data
}
})
},
lookDetails(row) {
if (row.payType === '结转') {
this.viewState = 3
this.$refs['divKXJZ'].showInfo({ sid: row.sid })
} else {
this.viewState = 2
this.$refs['divSKD'].showInfo({ sid: row.sid })
}
this.outerVisible = false
this.innerVisible = false
},
doExport() {
this.$message({ showClose: true, type: 'warning', message: '导出功能完善中' })
// const loading = this.$loading({
// lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
// })
// exportExcel(this.listQuery.params).then((resp) => {
// loading.close()
// const blob = new Blob([resp], {
// type: 'application/vnd.ms-excel'
// })
// const fileName = '' + '.xls'
// const elink = document.createElement('a')
// elink.download = fileName
// elink.style.display = 'nonde'
// elink.href = URL.createObjectURL(blob)
// document.body.appendChild(elink)
// elink.click()
// URL.revokeObjectURL(elink.href)
// document.body.removeChild(elink)
// }).catch(() => {
// loading.close()
// })
},
resetState() {
this.viewState = 1
this.outerVisible = true
this.innerVisible = true
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.listtop {
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.tit {
margin-bottom: -10px;
}
.pagination {
margin-bottom: -10px;
.span-sty {
width: 120px !important;
}
.line {
display: inline-block;
margin: 0px 15px;
.addinputInfo {
margin-left: 110px !important;
}
</style>

Loading…
Cancel
Save