|
@@ -0,0 +1,216 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <div class="rvsreport-all">
|
|
|
+ <div class="rvsreport-haed">
|
|
|
+ <el-date-picker
|
|
|
+ @change="datechange"
|
|
|
+ style="width:350px"
|
|
|
+ v-model="value2"
|
|
|
+ type="daterange"
|
|
|
+ align="left"
|
|
|
+ unlink-panels
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :picker-options="pickerOptions">
|
|
|
+ </el-date-picker>
|
|
|
+ <el-button @click="Skeclick" type="primary">生 成</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="hjbox">
|
|
|
+ 应收合计:{{total_fr}} 已收合计:{{total_pr}} 余款合计:{{total_balance}}
|
|
|
+ </div>
|
|
|
+ <div class="rvsreport-table">
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%">
|
|
|
+ <el-table-column
|
|
|
+ prop="no"
|
|
|
+ label="序号"
|
|
|
+ width="50">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="clientUnit"
|
|
|
+ label="单位"
|
|
|
+ width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="teamName"
|
|
|
+ label="团组名称"
|
|
|
+ width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="visitDate"
|
|
|
+ label="出访时间"
|
|
|
+ width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="frPrice"
|
|
|
+ label="应收"
|
|
|
+ width="180">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.frPrice+' RMB'}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="prPrice"
|
|
|
+ label="已收"
|
|
|
+ width="180">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.prPrice+' RMB'}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="balPrice"
|
|
|
+ label="余款"
|
|
|
+ width="180">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.balPrice+' RMB'}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="prClient"
|
|
|
+ label="收款单位"
|
|
|
+ width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="schedule"
|
|
|
+ label="收款进度">
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ pickerOptions: {
|
|
|
+ shortcuts: [{
|
|
|
+ text: '最近一周',
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ text: '最近一个月',
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ text: '最近三个月',
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ value2: '',
|
|
|
+ tableData: [],
|
|
|
+ total_balance:'0.00',
|
|
|
+ total_fr:'0.00',
|
|
|
+ total_pr:'0.00',
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ datechange(){
|
|
|
+ console.log(this.getdate(this.value2[0]))
|
|
|
+ console.log(this.getdate(this.value2[1]))
|
|
|
+ this.PostSyntheticalReceivableByDateRange(this.getdate(this.value2[0]),this.getdate(this.value2[1]),1)
|
|
|
+ },
|
|
|
+ getdate(val){
|
|
|
+ var date=new Date(val);
|
|
|
+ var y=date.getFullYear();
|
|
|
+ var m=date.getMonth()+1<10?'0'+(date.getMonth()+1):date.getMonth()+1;
|
|
|
+ var d=date.getDate()<10?'0'+date.getDate():date.getDate();
|
|
|
+ return y+'-'+m+'-'+d
|
|
|
+ },
|
|
|
+ //生成
|
|
|
+ Skeclick(){
|
|
|
+ var beginDt=this.getdate(this.value2[0]);
|
|
|
+ var endDt=this.getdate(this.value2[1]);
|
|
|
+ var requestType=2;
|
|
|
+
|
|
|
+ if(beginDt=='NaN-NaN-NaN'||endDt=='NaN-NaN-NaN'){
|
|
|
+ this.$message.error('请选择时间段');
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var url = "/api/Financial/PostSyntheticalReceivableByDateRange"
|
|
|
+ var that = this
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + that.token
|
|
|
+ },
|
|
|
+ data:{
|
|
|
+ portType: 1,
|
|
|
+ beginDt: beginDt,
|
|
|
+ endDt: endDt,
|
|
|
+ requestType: requestType,
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ console.log(res)
|
|
|
+ if(res.data.code==200){
|
|
|
+ window.open(res.data.data.url)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ PostSyntheticalReceivableByDateRange(beginDt,endDt,requestType){
|
|
|
+ var url = "/api/Financial/PostSyntheticalReceivableByDateRange"
|
|
|
+ var that = this
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + this.token
|
|
|
+ },
|
|
|
+ data:{
|
|
|
+ portType: 1,
|
|
|
+ beginDt: beginDt,
|
|
|
+ endDt: endDt,
|
|
|
+ requestType: requestType,
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ console.log(res)
|
|
|
+ if(res.data.code==200){
|
|
|
+ that.tableData=res.data.data.dataList;
|
|
|
+ that.total_fr=res.data.data.total_fr;
|
|
|
+ that.total_pr=res.data.data.total_pr;
|
|
|
+ that.total_balance=res.data.data.total_balance;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style>
|
|
|
+.rvsreport-all{
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 10px;
|
|
|
+ box-shadow: 0 0 5px #0005;
|
|
|
+ border-radius: 10px;
|
|
|
+ height: 100%;
|
|
|
+ min-height: 830px;
|
|
|
+}
|
|
|
+.rvsreport-haed{
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 20px;
|
|
|
+}
|
|
|
+.hjbox{
|
|
|
+ font-size: 14px;
|
|
|
+ color: #909399;
|
|
|
+ font-weight:600 ;
|
|
|
+ margin-bottom: 5px;
|
|
|
+}
|
|
|
+</style>
|