Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -0,0 +1,2 @@
|
|||||||
|
<g2-custom delay="100" (render)="render($event)"></g2-custom>
|
||||||
|
|
||||||
@ -0,0 +1,91 @@
|
|||||||
|
import { Component, ElementRef, Input, NgZone, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';
|
||||||
|
import { G2MiniAreaClickItem } from '@delon/chart/mini-area';
|
||||||
|
|
||||||
|
// import DataSet from '@antv/data-set';
|
||||||
|
const DataSet = require('@antv/data-set');
|
||||||
|
import { Chart } from '@antv/g2';
|
||||||
|
import { DataService } from 'src/app/routes/datatable/services/data.service';
|
||||||
|
@Component({
|
||||||
|
selector: 'app-compliance-curve',
|
||||||
|
templateUrl: './curve.component.html',
|
||||||
|
styleUrls: ['./curve.component.less']
|
||||||
|
})
|
||||||
|
export class ComplianceCurveComponent implements OnInit,OnChanges {
|
||||||
|
el: any;
|
||||||
|
@Input() chartData: any;
|
||||||
|
chart: any;
|
||||||
|
constructor(private service: DataService, private ngZone: NgZone) {
|
||||||
|
|
||||||
|
}
|
||||||
|
ngOnChanges(changes: SimpleChanges): void {
|
||||||
|
if (this.chartData) {
|
||||||
|
// setTimeout(()=>{
|
||||||
|
// this.chart.render(true)
|
||||||
|
// }, 1000)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
|
||||||
|
}
|
||||||
|
reRender() {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.chart.data(this.chartData);
|
||||||
|
this.chart.render();
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
render(el: ElementRef<HTMLDivElement>): void {
|
||||||
|
this.el = el.nativeElement
|
||||||
|
setTimeout(() => {
|
||||||
|
console.log(this.chartData)
|
||||||
|
this.ngZone.runOutsideAngular(() => this.init(this.el));
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
|
||||||
|
private init(el: HTMLElement): void {
|
||||||
|
this.chart = new Chart({
|
||||||
|
container: el,
|
||||||
|
autoFit: true,
|
||||||
|
height: 500,
|
||||||
|
});
|
||||||
|
|
||||||
|
this.chart.data(this.chartData);
|
||||||
|
this.chart.scale({
|
||||||
|
time: {
|
||||||
|
range: [0, 1],
|
||||||
|
},
|
||||||
|
number: {
|
||||||
|
min: 0,
|
||||||
|
nice: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
this.chart.tooltip({
|
||||||
|
showCrosshairs: true,
|
||||||
|
shared: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
this.chart.axis('proportion', {
|
||||||
|
label: {
|
||||||
|
formatter: (val: any) => {
|
||||||
|
return val*100+ ' %';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
this.chart
|
||||||
|
.line()
|
||||||
|
.position('situationDate*proportion')
|
||||||
|
.color('type')
|
||||||
|
.tooltip('proportion*type', function(name: any, value: any) {
|
||||||
|
return {
|
||||||
|
name: name*100+'%',
|
||||||
|
value: value
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
this.chart.render();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -24,37 +24,37 @@
|
|||||||
|
|
||||||
<div nz-row [nzGutter]="16">
|
<div nz-row [nzGutter]="16">
|
||||||
<div nz-col class="gutter-row" [nzSpan]="6">
|
<div nz-col class="gutter-row" [nzSpan]="6">
|
||||||
<g2-card [title]="'订单合格率'" [bordered]="true" [total]="'95.00%'" [footer]="footer1" contentHeight="46">
|
<g2-card [title]="'订单合格率'" [bordered]="true" [total]="cardData1?.proportion" [footer]="footer1" contentHeight="46">
|
||||||
<ng-template #footer1>
|
<ng-template #footer1>
|
||||||
<div class="card-f">
|
<div class="card-f">
|
||||||
<span class="card-f-l">合格:12423</span> <span>不合格:12423</span>
|
<span class="card-f-l">合格:{{cardData1?.leftQuantity}}</span> <span>不合格:{{cardData1?.rightQuantity}}</span>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</g2-card>
|
</g2-card>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col class="gutter-row" [nzSpan]="6">
|
<div nz-col class="gutter-row" [nzSpan]="6">
|
||||||
<g2-card [title]="'货源单占比'" [bordered]="true" [total]="'94.00%'" [footer]="footer2" contentHeight="46">
|
<g2-card [title]="'货源单占比'" [bordered]="true" [total]="cardData2?.proportion" [footer]="footer2" contentHeight="46">
|
||||||
<ng-template #footer2>
|
<ng-template #footer2>
|
||||||
<div class="card-f">
|
<div class="card-f">
|
||||||
<span class="card-f-l">货源单:12423</span> <span>合同单:12423</span>
|
<span class="card-f-l">货源单:{{cardData2?.leftQuantity}}</span> <span>合同单:{{cardData2?.rightQuantity}}</span>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</g2-card>
|
</g2-card>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col class="gutter-row" [nzSpan]="6">
|
<div nz-col class="gutter-row" [nzSpan]="6">
|
||||||
<g2-card [title]="'运费直付占比'" [bordered]="true" [total]="'95.10%'" [footer]="footer3" contentHeight="46">
|
<g2-card [title]="'运费直付占比'" [bordered]="true" [total]="cardData3?.proportion" [footer]="footer3" contentHeight="46">
|
||||||
<ng-template #footer3>
|
<ng-template #footer3>
|
||||||
<div class="card-f">
|
<div class="card-f">
|
||||||
<span class="card-f-l">司机:12423</span> <span>车队长:12423</span>
|
<span class="card-f-l">司机:{{cardData3?.leftQuantity}}</span> <span>车队长:{{cardData3?.rightQuantity}}</span>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</g2-card>
|
</g2-card>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col class="gutter-row" [nzSpan]="6">
|
<div nz-col class="gutter-row" [nzSpan]="6">
|
||||||
<g2-card [title]="'付款及时率'" [bordered]="true" [total]="'90.00%'" [footer]="footer4" contentHeight="46">
|
<g2-card [title]="'付款及时率'" [bordered]="true" [total]="cardData4?.proportion" [footer]="footer4" contentHeight="46">
|
||||||
<ng-template #footer4>
|
<ng-template #footer4>
|
||||||
<div class="card-f">
|
<div class="card-f">
|
||||||
<span class="card-f-l">准时:12423</span> <span>逾期:12423</span>
|
<span class="card-f-l">准时:{{cardData4?.leftQuantity}}</span> <span>逾期:{{cardData4?.rightQuantity}}</span>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</g2-card>
|
</g2-card>
|
||||||
@ -62,5 +62,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nz-card nzTitle="平台合规情况监控报表">
|
<nz-card nzTitle="平台合规情况监控报表">
|
||||||
<g2-custom delay="100" (render)="render($event)"></g2-custom>
|
<app-compliance-curve #curve [chartData]="chartData"></app-compliance-curve>
|
||||||
|
<!-- <g2-custom delay="100" (render)="render($event)"></g2-custom> -->
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|||||||
@ -5,6 +5,9 @@ import { format } from 'date-fns';
|
|||||||
import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
||||||
import { G2TimelineData, G2TimelineMap } from '@delon/chart/timeline';
|
import { G2TimelineData, G2TimelineMap } from '@delon/chart/timeline';
|
||||||
import { Chart } from '@antv/g2';
|
import { Chart } from '@antv/g2';
|
||||||
|
import { DataService } from '../../../services/data.service';
|
||||||
|
import { ComplianceCurveComponent } from './curve/curve.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-datatable-compliance-index',
|
selector: 'app-datatable-compliance-index',
|
||||||
templateUrl: './index.component.html',
|
templateUrl: './index.component.html',
|
||||||
@ -12,51 +15,107 @@ import { Chart } from '@antv/g2';
|
|||||||
providers: [DatePipe]
|
providers: [DatePipe]
|
||||||
})
|
})
|
||||||
export class DatatableComplianceIndexComponent implements OnInit {
|
export class DatatableComplianceIndexComponent implements OnInit {
|
||||||
|
@ViewChild('curve') private readonly curve!: ComplianceCurveComponent;
|
||||||
@ViewChild('sf', { static: false })
|
@ViewChild('sf', { static: false })
|
||||||
|
|
||||||
sf!: SFComponent;
|
sf!: SFComponent;
|
||||||
ui!: SFUISchema;
|
ui!: SFUISchema;
|
||||||
schema: SFSchema = {};
|
schema: SFSchema = {};
|
||||||
|
|
||||||
mode = 'year';
|
mode = 'year';
|
||||||
date: any = null;
|
date: any = null;
|
||||||
dateFormat = 'yyyy-MM-dd';
|
dateFormat = 'yyyy';
|
||||||
time: any = ['2022-01-01 00:00:00']
|
time: any = '2022'
|
||||||
constructor(private http: _HttpClient, private modal: ModalHelper, private ngZone: NgZone, private datePipe: DatePipe) {}
|
chartData: any = {}
|
||||||
|
|
||||||
|
cardData1:any;
|
||||||
|
cardData2:any;
|
||||||
|
cardData3:any;
|
||||||
|
cardData4:any;
|
||||||
|
|
||||||
|
constructor(private http: _HttpClient, private modal: ModalHelper, private ngZone: NgZone,public service: DataService, private datePipe: DatePipe) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.initSF();
|
this.initSF();
|
||||||
|
this.initdData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initdData(){
|
||||||
|
const params ={
|
||||||
|
...this.sf?.value,
|
||||||
|
timeType:this.mode ==='month'?'M':'Y',
|
||||||
|
time:this.time
|
||||||
|
}
|
||||||
|
this.service.request(this.service.$api_getBillRateQualified, params).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.cardData1 = res;
|
||||||
|
this.cardData1.proportion = this.cardData1.proportion*100 +'%'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.service.request(this.service.$api_getBillRateProportion, params).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.cardData2 = res;
|
||||||
|
this.cardData2.proportion = this.cardData2.proportion*100 +'%'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.service.request(this.service.$api_getBillRateDirectPayment, params).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.cardData3 = res;
|
||||||
|
this.cardData3.proportion = this.cardData3.proportion*100 +'%'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.service.request(this.service.$api_getBillTimelyPayment, params).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.cardData4 = res;
|
||||||
|
this.cardData4.proportion = this.cardData4.proportion*100 +'%'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.service.request(this.service.$api_listMonitorSituation, params).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.chartData = res
|
||||||
|
this.curve.reRender();
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
changeData(){
|
changeData(){
|
||||||
if(this.mode === 'year') {
|
if(this.mode === 'year') {
|
||||||
this.dateFormat = 'yyyy'
|
this.dateFormat = 'yyyy'
|
||||||
} else if(this.mode === 'month') {
|
} else if(this.mode === 'month') {
|
||||||
this.dateFormat = 'yyyy-MM'
|
this.dateFormat = 'yyyy-MM'
|
||||||
} else {
|
}
|
||||||
this.dateFormat = 'yyyy-MM-dd'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onChange(result: any) {
|
onChange(result: any) {
|
||||||
if(this.mode === 'year') {
|
if(this.mode === 'year') {
|
||||||
this.time = [this.datePipe.transform(this.date, 'yyyy') + '-01-01 00:00:00']
|
this.time = this.datePipe.transform(this.date, 'yyyy')
|
||||||
} else if(this.mode === 'month') {
|
} else if(this.mode === 'month') {
|
||||||
this.time = [this.datePipe.transform(this.date, 'yyyy-MM') + '-01 00:00:00']
|
this.time = this.datePipe.transform(this.date, 'yyyy-MM')
|
||||||
}
|
}
|
||||||
|
this.initdData();
|
||||||
}
|
}
|
||||||
|
|
||||||
initSF() {
|
initSF() {
|
||||||
this.schema = {
|
this.schema = {
|
||||||
properties: {
|
properties: {
|
||||||
name: {
|
enterpriseInfoId: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '',
|
title: '',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'select',
|
widget: 'select',
|
||||||
placeholder: '网络货运人'
|
placeholder: '网络货运人',
|
||||||
|
asyncData: () => this.service.getNetworkFreightForwarder({}),
|
||||||
|
change:()=>{
|
||||||
|
this.initdData();
|
||||||
|
},
|
||||||
|
allowClear: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
name2: {
|
enterpriseProjectId: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '',
|
title: '',
|
||||||
ui: {
|
ui: {
|
||||||
@ -64,11 +123,12 @@ export class DatatableComplianceIndexComponent implements OnInit {
|
|||||||
placeholder: '部门'
|
placeholder: '部门'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
name3: {
|
salesmanId: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '',
|
title: '',
|
||||||
ui: {
|
ui: {
|
||||||
placeholder: '业务员'
|
placeholder: '业务员',
|
||||||
|
enter: () => this.initdData(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,6 +141,9 @@ export class DatatableComplianceIndexComponent implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
render(el: ElementRef<HTMLDivElement>) {
|
render(el: ElementRef<HTMLDivElement>) {
|
||||||
this.ngZone.runOutsideAngular(() => this.init(el.nativeElement));
|
this.ngZone.runOutsideAngular(() => this.init(el.nativeElement));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,16 +66,22 @@ export class FinanceTableCurveComponent implements OnInit,OnChanges {
|
|||||||
this.chart.axis('number', {
|
this.chart.axis('number', {
|
||||||
label: {
|
label: {
|
||||||
formatter: (val: any) => {
|
formatter: (val: any) => {
|
||||||
return val;
|
return val*100+ ' %';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
this.chart
|
this.chart
|
||||||
.line()
|
.line()
|
||||||
.position('time*number')
|
.position('time*number')
|
||||||
.color('name')
|
.color('name')
|
||||||
|
.tooltip('name*number', (name:any, value:any) => {
|
||||||
|
return {
|
||||||
|
name: name,
|
||||||
|
value: value*100 + '%'
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
this.chart.render();
|
this.chart.render();
|
||||||
|
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
<nz-card nzTitle="运营报表" [nzExtra]="extraTemplate01">
|
<nz-card nzTitle="运营报表" [nzExtra]="extraTemplate01">
|
||||||
<ng-template #extraTemplate01>
|
<ng-template #extraTemplate01>
|
||||||
<div class="chooseBox">
|
<div class="chooseBox">
|
||||||
<nz-select [(ngModel)]="enterpriseInfoId" style="width: 200px" (ngModelChange)="changeCurve()">
|
<nz-select [(ngModel)]="enterpriseInfoId" style="width: 200px" (ngModelChange)="initPillarData()">
|
||||||
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of interManlist"></nz-option>
|
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of interManlist"></nz-option>
|
||||||
</nz-select>
|
</nz-select>
|
||||||
<div class="timeBox">
|
<div class="timeBox">
|
||||||
@ -66,10 +66,10 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
<div nz-row [nzGutter]="64">
|
<div nz-row [nzGutter]="64">
|
||||||
<div nz-col class="gutter-row" [nzSpan]="12">
|
<div nz-col class="gutter-row" [nzSpan]="12">
|
||||||
<app-operation-curve #curve [chartData]="chartData.lineChart"></app-operation-curve>
|
<app-financetable-curve #curve [chartData]="chartData.lineChart"></app-financetable-curve>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col class="gutter-row" [nzSpan]="12">
|
<div nz-col class="gutter-row" [nzSpan]="12">
|
||||||
<app-operation-pillar #pillar [chartData]="chartData.histogram"></app-operation-pillar>
|
<app-financetable-pillar #pillar [chartData]="chartData.histogram"></app-financetable-pillar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
@ -6,6 +6,8 @@ import { DataService } from '../../services/data.service';
|
|||||||
import { differenceInCalendarDays } from 'date-fns';
|
import { differenceInCalendarDays } from 'date-fns';
|
||||||
import { OperationCurveComponent } from '../operationtable/curve/curve.component';
|
import { OperationCurveComponent } from '../operationtable/curve/curve.component';
|
||||||
import { OperationPillarComponent } from '../operationtable/pillar/pillar.component';
|
import { OperationPillarComponent } from '../operationtable/pillar/pillar.component';
|
||||||
|
import { FinanceTableCurveComponent } from './curve/curve.component';
|
||||||
|
import { FinancetablePillarComponent } from './pillar/pillar.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-datatable-financetable',
|
selector: 'app-datatable-financetable',
|
||||||
@ -14,8 +16,8 @@ import { OperationPillarComponent } from '../operationtable/pillar/pillar.compon
|
|||||||
providers: [DatePipe]
|
providers: [DatePipe]
|
||||||
})
|
})
|
||||||
export class DatatableFinancetableComponent implements OnInit {
|
export class DatatableFinancetableComponent implements OnInit {
|
||||||
@ViewChild('curve') private readonly curve!: OperationCurveComponent;
|
@ViewChild('curve') private readonly curve!: FinanceTableCurveComponent;
|
||||||
@ViewChild('pillar') private readonly pillar!: OperationPillarComponent;
|
@ViewChild('pillar') private readonly pillar!: FinancetablePillarComponent;
|
||||||
@ViewChild('st') private readonly st!: STComponent;
|
@ViewChild('st') private readonly st!: STComponent;
|
||||||
type = 1;
|
type = 1;
|
||||||
mode = 'year';
|
mode = 'year';
|
||||||
@ -85,7 +87,7 @@ export class DatatableFinancetableComponent implements OnInit {
|
|||||||
enterpriseInfoId: this.enterpriseInfoId
|
enterpriseInfoId: this.enterpriseInfoId
|
||||||
};
|
};
|
||||||
this.flag = true
|
this.flag = true
|
||||||
this.service.request(this.service.$api_operationalReportHistogram, params).subscribe(res => {
|
this.service.request(this.service.$api_financialReportHistogram, params).subscribe(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
this.chartData = res
|
this.chartData = res
|
||||||
if(this.flag) {
|
if(this.flag) {
|
||||||
@ -148,6 +150,7 @@ export class DatatableFinancetableComponent implements OnInit {
|
|||||||
} else if(this.mode === 'month') {
|
} else if(this.mode === 'month') {
|
||||||
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy-MM') + '-01 00:00:00']
|
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy-MM') + '-01 00:00:00']
|
||||||
}
|
}
|
||||||
|
this.initPillarData();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import { OperationPillarComponent } from './components/operationtable/pillar/pil
|
|||||||
import { OperationCurveComponent } from './components/operationtable/curve/curve.component';
|
import { OperationCurveComponent } from './components/operationtable/curve/curve.component';
|
||||||
import { FinanceTableCurveComponent } from './components/financetable/curve/curve.component';
|
import { FinanceTableCurveComponent } from './components/financetable/curve/curve.component';
|
||||||
import { FinancetablePillarComponent } from './components/financetable/pillar/pillar.component';
|
import { FinancetablePillarComponent } from './components/financetable/pillar/pillar.component';
|
||||||
|
import { ComplianceCurveComponent } from './components/compliance/index/curve/curve.component';
|
||||||
|
|
||||||
const COMPONENTS: Type<void>[] = [
|
const COMPONENTS: Type<void>[] = [
|
||||||
DatatableDataindexComponent,
|
DatatableDataindexComponent,
|
||||||
@ -56,7 +57,8 @@ const COMPONENTS: Type<void>[] = [
|
|||||||
OperationCurveComponent,
|
OperationCurveComponent,
|
||||||
DatatableReportingFundInfoComponent,
|
DatatableReportingFundInfoComponent,
|
||||||
FinanceTableCurveComponent,
|
FinanceTableCurveComponent,
|
||||||
FinancetablePillarComponent
|
FinancetablePillarComponent,
|
||||||
|
ComplianceCurveComponent
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
<nz-spin [nzSpinning]="service.http.loading"></nz-spin>
|
<div>
|
||||||
<st #st [scroll]="{x:'1000px'}" [data]="service.$api_get_fund_valid_result" [columns]="columns"
|
<nz-spin [nzSpinning]="service.http.loading"></nz-spin>
|
||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
<st #st [scroll]="{x:'1000px',y:'600px'}" [data]="service.$api_get_fund_valid_result" [columns]="columns"
|
||||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [page]="{ show: false}" [loading]="false"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams,process: beforeReq }"
|
||||||
[bordered]="true">
|
[res]="{ reName: { list: 'data' } }" [page]="{ show: false,showSize:false}" [loading]="false" [bordered]="true">
|
||||||
<ng-template st-row="freightDetails" let-item>
|
<ng-template st-row="freightDetails" let-item>
|
||||||
<div *ngFor="let item of item.freightDetails">
|
<div *ngFor="let item of item.freightDetails">
|
||||||
<div>{{item.expenseName}}:{{item.price | currency}} </div>
|
<div>{{item.expenseName}}:{{item.price | currency}} </div>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</st>
|
</st>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button nz-button type="submit" nzType="primary" (click)="close()">确定</button>
|
<button nz-button type="submit" nzType="primary" (click)="close()">确定</button>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { STColumn, STComponent } from '@delon/abc/st';
|
import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
|
||||||
import { SFSchema } from '@delon/form';
|
import { SFSchema } from '@delon/form';
|
||||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||||
import { NzModalRef } from 'ng-zorro-antd/modal';
|
import { NzModalRef } from 'ng-zorro-antd/modal';
|
||||||
@ -21,6 +21,14 @@ export class DatatableReportingFundInfoComponent implements OnInit {
|
|||||||
get reqParams() {
|
get reqParams() {
|
||||||
return { capitalCode: this?.record?.orderCode };
|
return { capitalCode: this?.record?.orderCode };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
beforeReq(requestOptions: STRequestOptions) {
|
||||||
|
delete requestOptions?.body?.pageSize;
|
||||||
|
delete requestOptions?.body?.pageIndex;
|
||||||
|
return requestOptions;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
constructor(public service: ReportingService, private modalRef: NzModalRef, public router: Router) {
|
constructor(public service: ReportingService, private modalRef: NzModalRef, public router: Router) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -34,22 +42,22 @@ export class DatatableReportingFundInfoComponent implements OnInit {
|
|||||||
*/
|
*/
|
||||||
initST() {
|
initST() {
|
||||||
this.columns = [
|
this.columns = [
|
||||||
{ title: '序号', type: 'no', className: 'text-center', width: '60px', },
|
{ title: '序号', type: 'no', className: 'text-center', width: '10%', },
|
||||||
{ title: '监管平台字段', index: 'thirdPartyFieldName', className: 'text-center', width: '120px', },
|
{ title: '监管平台字段', index: 'thirdPartyFieldName', className: 'text-center', width: '15%', },
|
||||||
{ title: '系统字段', index: 'checkFieldName', className: 'text-center', width: '100px', },
|
{ title: '系统字段', index: 'checkFieldName', className: 'text-center', width: '15%', },
|
||||||
{ title: '归属模块', index: 'orderStatus', className: 'text-center', width: '120px', },
|
{ title: '归属模块', index: 'orderStatus', className: 'text-center', width: '15%', },
|
||||||
{
|
{
|
||||||
title: '是否必填',
|
title: '是否必填',
|
||||||
index: 'orderStatus',
|
index: 'orderStatus',
|
||||||
className: 'text-center',
|
className: 'text-center',
|
||||||
width: '100px',
|
width: '10%',
|
||||||
type: 'enum',
|
type: 'enum',
|
||||||
enum: {
|
enum: {
|
||||||
'0': '非必填',
|
'0': '非必填',
|
||||||
'1': '必填',
|
'1': '必填',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ title: '上传值', index: 'fieldValue', className: 'text-center', width: '150px', },
|
{ title: '上传值', index: 'fieldValue', className: 'text-center', width: '15%', },
|
||||||
{
|
{
|
||||||
title: '本地校验',
|
title: '本地校验',
|
||||||
index: 'checkStatus',
|
index: 'checkStatus',
|
||||||
@ -60,9 +68,9 @@ export class DatatableReportingFundInfoComponent implements OnInit {
|
|||||||
'1': '通过',
|
'1': '通过',
|
||||||
'2': '不通过'
|
'2': '不通过'
|
||||||
},
|
},
|
||||||
width: '100px',
|
width: '10%',
|
||||||
},
|
},
|
||||||
{ title: '错误内容', index: 'remark', className: 'text-center', width: '150px', },
|
{ title: '错误内容', index: 'remark', className: 'text-center', width: '20%', },
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,8 +34,8 @@
|
|||||||
<span [ngClass]="{'text-red-dark':item?.uploadStatus === '4'}">{{item?.billStatusLabel}}</span>
|
<span [ngClass]="{'text-red-dark':item?.uploadStatus === '4'}">{{item?.billStatusLabel}}</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="verifyStatus" let-item>
|
<ng-template st-row="verifyStatus" let-item>
|
||||||
<a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a>
|
<a (click)="viewResult(item)" *ngIf="item?.verifyStatus === '1'">1111{{item?.verifyStatusLabel}}</a>
|
||||||
<span *ngIf="item?.billStatus !== '2'">{{item?.billStatusLabel}}</span>
|
<span *ngIf="item?.verifyStatus !== '1'">{{item?.verifyStatusLabel}}</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="orderCode" let-item>
|
<ng-template st-row="orderCode" let-item>
|
||||||
<span class="text-blue-dark">{{item?.orderCode}}</span>
|
<span class="text-blue-dark">{{item?.orderCode}}</span>
|
||||||
@ -43,11 +43,6 @@
|
|||||||
<ng-template st-row="wayBillCode" let-item>
|
<ng-template st-row="wayBillCode" let-item>
|
||||||
<span class="text-blue-dark">{{item?.wayBillCode}}</span>
|
<span class="text-blue-dark">{{item?.wayBillCode}}</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
<ng-template st-row="localValid" let-item let-index="index">
|
|
||||||
<a (click)="viewResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a>
|
|
||||||
<span *ngIf="item?.billStatus !== '2'">{{item?.billStatusLabel}}</span>
|
|
||||||
</ng-template>
|
|
||||||
<ng-template st-row="tolalAmount" let-item let-index="index">
|
<ng-template st-row="tolalAmount" let-item let-index="index">
|
||||||
<div class="text-right">{{item?.tolalAmount | currency }}</div>
|
<div class="text-right">{{item?.tolalAmount | currency }}</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -175,7 +175,9 @@ export class DatatableFundReportingComponent implements OnInit {
|
|||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
widget: 'select',
|
widget: 'select',
|
||||||
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false),
|
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false),
|
||||||
|
visibleIf: {
|
||||||
|
_$expand: (value: boolean) => value,
|
||||||
|
},
|
||||||
allowClear: true
|
allowClear: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -363,6 +365,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
|||||||
const modalRef = this.modal.create({
|
const modalRef = this.modal.create({
|
||||||
nzTitle: '校验结果',
|
nzTitle: '校验结果',
|
||||||
nzWidth: 1200,
|
nzWidth: 1200,
|
||||||
|
|
||||||
nzContent: DatatableReportingFundInfoComponent,
|
nzContent: DatatableReportingFundInfoComponent,
|
||||||
nzComponentParams: {
|
nzComponentParams: {
|
||||||
record
|
record
|
||||||
@ -377,7 +380,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
|||||||
* 查看监管审核结果
|
* 查看监管审核结果
|
||||||
*/
|
*/
|
||||||
viewAuditResult(record: any) {
|
viewAuditResult(record: any) {
|
||||||
if (record?.billStatus !== '2') {
|
if (record?.verifyStatus !== '1') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.openWainingModal('监管审核结果', record?.result)
|
this.openWainingModal('监管审核结果', record?.result)
|
||||||
|
|||||||
@ -29,18 +29,40 @@
|
|||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||||
[page]="{ show: true, showSize: true, pageSizes: [10,20, 50, 100] }" [loading]="service.http.loading">
|
[page]="{ show: true, showSize: true, pageSizes: [10,20, 50, 100] }" [loading]="service.http.loading">
|
||||||
<ng-template st-row="orderStatus" let-item let-index="index">
|
<ng-template st-row="orderCheckStatus" let-item let-index="index">
|
||||||
<a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a>
|
<a (click)="viewAuditResult(item)"
|
||||||
<span *ngIf="item?.billStatus !== '2'">{{item?.billStatusLabel}}</span>
|
*ngIf="item?.orderCheckStatus === '2'">{{filterStatus(item?.orderCheckStatus)}}</a>
|
||||||
|
<span *ngIf="item?.orderCheckStatus !== '2'">{{filterStatus(item?.orderCheckStatus)}}</span>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template st-row="driverCheckStatus" let-item let-index="index">
|
||||||
|
<a (click)="viewAuditResult(item)"
|
||||||
|
*ngIf="item?.driverCheckStatus === '2'">{{filterStatus(item?.driverCheckStatus)}}</a>
|
||||||
|
<span *ngIf="item?.driverCheckStatus !== '2'">{{filterStatus(item?.driverCheckStatus)}}</span>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template st-row="orderCheckStatus" let-item let-index="index">
|
||||||
|
<a (click)="viewAuditResult(item)"
|
||||||
|
*ngIf="item?.orderCheckStatus === '2'">{{filterStatus(item?.orderCheckStatus)}}</a>
|
||||||
|
<span *ngIf="item?.orderCheckStatus !== '2'">{{filterStatus(item?.orderCheckStatus)}}</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
<ng-template st-row="localValid" let-item let-index="index">
|
<ng-template st-row="checkStatus" let-item let-index="index">
|
||||||
<a (click)="viewResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a>
|
<a (click)="viewResult(item)" *ngIf="item?.billStatus === '2'">{{filterStatus(item?.checkStatus)}}</a>
|
||||||
<span *ngIf="item?.billStatus !== '2'">{{item?.billStatusLabel}}</span>
|
<span *ngIf="item?.billStatus !== '2'">{{filterStatus(item?.checkStatus)}}</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="amount" let-item let-index="index">
|
<ng-template st-row="billCode" let-item>
|
||||||
<div class="text-right">{{item?.amount | currency :' '}}</div>
|
<span class="text-red-dark">{{item?.billCode}}</span>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template st-row="wayBillCode" let-item>
|
||||||
|
<span class="text-red-dark">{{item?.wayBillCode}}</span>
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<ng-template st-row="freightAmount" let-item let-index="index">
|
||||||
|
<div class="text-right">{{item?.freightAmount | currency :' '}}</div>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template st-row="goodsInfoList" let-item let-index="index">
|
||||||
|
<div *ngFor="let _item of item?.goodsInfoList">
|
||||||
|
{{_item?.goodsTypeName}}/{{_item?.goodsName}}/{{_item?.weight}}吨/{{_item?.volume}}m³
|
||||||
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
<ng-template st-row="car" let-item let-index="index">
|
<ng-template st-row="car" let-item let-index="index">
|
||||||
|
|||||||
@ -95,7 +95,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
properties: {
|
properties: {
|
||||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||||
billCode: { title: '订单号', type: 'string', ui: { placeholder: '请输入' } },
|
billCode: { title: '订单号', type: 'string', ui: { placeholder: '请输入' } },
|
||||||
resourceCode: {
|
wayBillCode: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '运单号',
|
title: '运单号',
|
||||||
ui: {
|
ui: {
|
||||||
@ -113,7 +113,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
allowClear: true
|
allowClear: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
externalResourceCode: {
|
shipperName: {
|
||||||
title: '货主',
|
title: '货主',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
@ -143,33 +143,40 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
serviceType: {
|
putStatus: {
|
||||||
title: '上传状态',
|
title: '上传状态',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
|
enum: [
|
||||||
|
{ label: '待上传', value: 0 },
|
||||||
|
{ label: '已上传', value: 1 },
|
||||||
|
{ label: '异常', value: 2 }
|
||||||
|
],
|
||||||
|
|
||||||
ui: {
|
ui: {
|
||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
widget: 'dict-select',
|
widget: 'select',
|
||||||
params: { dictKey: 'service:type' },
|
|
||||||
containsAllLabel: true,
|
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
_$expand: (value: boolean) => value,
|
_$expand: (value: boolean) => value,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
serviceType1: {
|
checkStatus: {
|
||||||
title: '本地校验',
|
title: '本地校验',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
|
enum: [
|
||||||
|
{ label: '校验中', value: 0 },
|
||||||
|
{ label: '通过', value: 1 },
|
||||||
|
{ label: '不通过', value: 2 }
|
||||||
|
],
|
||||||
ui: {
|
ui: {
|
||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
widget: 'dict-select',
|
widget: 'select',
|
||||||
params: { dictKey: 'service:type' },
|
|
||||||
containsAllLabel: true,
|
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
_$expand: (value: boolean) => value,
|
_$expand: (value: boolean) => value,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
createTime: {
|
putTime: {
|
||||||
title: '上传时间',
|
title: '上传时间',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
@ -181,7 +188,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
} as SFDateWidgetSchema,
|
} as SFDateWidgetSchema,
|
||||||
},
|
},
|
||||||
createTime1: {
|
orderReceivingTime: {
|
||||||
title: '运单生成时间',
|
title: '运单生成时间',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
@ -193,7 +200,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
} as SFDateWidgetSchema,
|
} as SFDateWidgetSchema,
|
||||||
},
|
},
|
||||||
createTime2: {
|
dispatchedDate: {
|
||||||
title: '发货时间',
|
title: '发货时间',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
@ -205,7 +212,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
} as SFDateWidgetSchema,
|
} as SFDateWidgetSchema,
|
||||||
},
|
},
|
||||||
createTime3: {
|
receivingDate: {
|
||||||
title: '收货时间',
|
title: '收货时间',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
@ -218,7 +225,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
} as SFDateWidgetSchema,
|
} as SFDateWidgetSchema,
|
||||||
},
|
},
|
||||||
|
|
||||||
loadingPlace: {
|
trajectoryDataAppStatus: {
|
||||||
title: '车辆轨迹',
|
title: '车辆轨迹',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
enum: [
|
enum: [
|
||||||
@ -234,7 +241,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
loadingPlace1: {
|
trajectoryDataStatus: {
|
||||||
title: '司机轨迹',
|
title: '司机轨迹',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
enum: [
|
enum: [
|
||||||
@ -264,48 +271,65 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
initST() {
|
initST() {
|
||||||
this.columns = [
|
this.columns = [
|
||||||
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
|
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
|
||||||
{ title: '订单状态', render: 'orderStatus', className: 'text-center', width: '120px', },
|
{ title: '订单状态', render: 'orderCheckStatus', className: 'text-center', width: '120px', },
|
||||||
{ title: '司机状态', render: 'driverStatus', className: 'text-center', width: '120px', },
|
{ title: '司机状态', render: 'driverCheckStatus', className: 'text-center', width: '120px', },
|
||||||
|
|
||||||
{ title: '车辆状态', render: 'carStatus', className: 'text-center', width: '120px', },
|
{ title: '车辆状态', render: 'carStatus', className: 'text-center', width: '120px', },
|
||||||
{ title: '本地校验', render: 'localValid', className: 'text-center', width: '120px', },
|
|
||||||
|
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px', },
|
||||||
{
|
{
|
||||||
title: '订单号',
|
title: '订单号',
|
||||||
render: 'billComplianceVOS',
|
render: 'billCode',
|
||||||
className: 'text-center',
|
className: 'text-center',
|
||||||
width: '150px',
|
width: '150px',
|
||||||
},
|
},
|
||||||
{ title: '运单号', render: 'freightDetails', className: 'text-center', width: '150px', },
|
{ title: '运单号', render: 'wayBillCode', className: 'text-center', width: '150px', },
|
||||||
|
|
||||||
{
|
{
|
||||||
title: '网络货运人',
|
title: '网络货运人',
|
||||||
render: 'serviceType',
|
index: 'enterpriseInfoName',
|
||||||
className: 'text-center',
|
className: 'text-center',
|
||||||
width: '180px',
|
width: '180px',
|
||||||
},
|
},
|
||||||
{ title: '统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' },
|
|
||||||
{ title: '业务类型', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '120px' },
|
{ title: '统一社会信用代码', index: 'unifiedSocialCreditCode', render: 'loadingPlace', className: 'text-center', width: '200px' },
|
||||||
{ title: '运单生成时间', render: 'goodsInfoVOList', className: 'text-center', width: '180px' },
|
{ title: '运单生成时间', index: 'wayBillCreateTime', className: 'text-center', width: '180px' },
|
||||||
{ title: '发货时间', render: 'driver2', className: 'text-center', width: '180px' },
|
{ title: '发货时间', index: 'dispatchedDate', className: 'text-center', width: '180px' },
|
||||||
{ title: '收货时间', render: 'payeeName', className: 'text-center', width: '180px' },
|
{ title: '收货时间', index: 'receivingDate', className: 'text-center', width: '180px' },
|
||||||
{ title: '托运人名称', render: 'transportInfo', className: 'text-center', width: '250px' },
|
{ title: '托运人名称', index: 'shipperName', className: 'text-center', width: '250px' },
|
||||||
{ title: '托运人统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' },
|
{ title: '托运人统一社会信用代码', index: 'shipperCreditCode', render: 'loadingPlace', className: 'text-center', width: '200px' },
|
||||||
{ title: '装货地址', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '200px' },
|
{ title: '装货地址', index: 'loadingAddress', render: 'dischargePlace', className: 'text-center', width: '200px' },
|
||||||
{ title: '收货方名称', render: 'driver1', className: 'text-center', width: '150px' },
|
{ title: '收货方名称', index: 'receivingName', className: 'text-center', width: '150px' },
|
||||||
{ title: '收货地址', render: 'payeeName', className: 'text-center', width: '150px' },
|
{ title: '收货地址', index: 'consigneeAddress', className: 'text-center', width: '150px' },
|
||||||
{ title: '运费金额', render: 'amount', className: 'text-center', width: '250px' },
|
{ title: '运费金额', render: 'freightAmount', className: 'text-center', width: '250px' },
|
||||||
{ title: '车牌号', render: 'payeeName', className: 'text-center', width: '150px' },
|
{ title: '车牌号', index: 'carNo', className: 'text-center', width: '150px' },
|
||||||
{ title: '车牌颜色', render: 'transportInfo', className: 'text-center', width: '250px' },
|
{
|
||||||
{ title: '司机姓名', render: 'payeeName', className: 'text-center', width: '150px' },
|
title: '车牌颜色',
|
||||||
{ title: '司机手机号码', render: 'transportInfo', className: 'text-center', width: '200px' },
|
index: 'carNoColor',
|
||||||
{ title: '司机身份证号', render: 'payeeName', className: 'text-center', width: '150px' },
|
className: 'text-center',
|
||||||
{ title: '货物信息', render: 'transportInfo', className: 'text-center', width: '180px' },
|
width: '250px',
|
||||||
{ title: '实际承运人名称', render: 'payeeName', className: 'text-center', width: '150px' },
|
type: 'enum',
|
||||||
{ title: '实际承运人证件号码', render: 'transportInfo', className: 'text-center', width: '200px' },
|
enum: {
|
||||||
|
"4": "绿色",
|
||||||
|
"3": "黄绿色",
|
||||||
|
"2": "黄色",
|
||||||
|
"1": "蓝色"
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
{ title: '司机姓名', index: 'driverName', className: 'text-center', width: '150px' },
|
||||||
|
{ title: '司机手机号码', index: 'driverPhone', className: 'text-center', width: '200px' },
|
||||||
|
{ title: '司机身份证号', index: 'driverIdentityNo', className: 'text-center', width: '150px' },
|
||||||
|
{ title: '货物信息', render: 'goodsInfoList', className: 'text-center', width: '180px' },
|
||||||
|
{ title: '实际承运人名称', index: 'carrierName', className: 'text-center', width: '150px' },
|
||||||
|
{ title: '实际承运人证件号码', index: 'carrierIdentityNo', className: 'text-center', width: '200px' },
|
||||||
|
|
||||||
{ title: '实际承运人道路运输许可证号', render: 'payeeName', className: 'text-center', width: '150px' },
|
{ title: '实际承运人道路运输许可证号', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||||
|
|
||||||
{ title: '车辆轨迹', render: 'car', className: 'text-center', width: '250px' },
|
{ title: '车辆轨迹', render: 'car', className: 'text-center', width: '250px' },
|
||||||
{ title: '司机轨迹', render: 'driver', className: 'text-center', width: '150px' },
|
{ title: '司机轨迹', render: 'driver', className: 'text-center', width: '150px' },
|
||||||
{ title: '上传次数', render: 'transportInfo', className: 'text-center', width: '150px' },
|
{ title: '上传次数', index: 'putNumber', className: 'text-center', width: '150px' },
|
||||||
{ title: '上传时间', render: 'transportInfo', className: 'text-center', width: '180px' },
|
{ title: '上传时间', index: 'recentlyPutTime', className: 'text-center', width: '180px' },
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -455,5 +479,18 @@ export class DatatableOrderReportingComponent implements OnInit {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
filterStatus(status: string) {
|
||||||
|
switch (status) {
|
||||||
|
case '0':
|
||||||
|
return '校验中';
|
||||||
|
case '1':
|
||||||
|
return '通过';
|
||||||
|
case '2':
|
||||||
|
return '不通过';
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
</nz-tabset>
|
</nz-tabset>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 90%;">
|
<div style="width: 90%;">
|
||||||
<st #st [scroll]="{x:'1000px'}" [data]="service.$api_get_order_reporting_page" [columns]="columns"
|
<st #st [scroll]="{x:'1000px',y:'600px'}" [data]="service.$api_get_order_reporting_page" [columns]="columns"
|
||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [page]="{ show: false}" [loading]="false"
|
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [page]="{ show: false}" [loading]="false"
|
||||||
[bordered]="true">
|
[bordered]="true">
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { BaseService } from '@shared';
|
|||||||
})
|
})
|
||||||
export class ReportingService extends BaseService {
|
export class ReportingService extends BaseService {
|
||||||
|
|
||||||
$api_get_order_reporting_page = `/api/sdc/billOperate/listWholePage`; // 订单上报列表
|
$api_get_order_reporting_page = `/api/sdc/regulation/list/page`; // 订单上报列表
|
||||||
$api_recall_reporting = ``; // 撤回
|
$api_recall_reporting = ``; // 撤回
|
||||||
$api_async_export_order_reporting_list = ``; // 导出订单上报
|
$api_async_export_order_reporting_list = ``; // 导出订单上报
|
||||||
$api_get_upload_setting = ``; // 修改上传设置
|
$api_get_upload_setting = ``; // 修改上传设置
|
||||||
@ -16,6 +16,8 @@ export class ReportingService extends BaseService {
|
|||||||
$api_fund_reporting_upload = `/api/fcc/fundUploadHead/uploadFundNumber`; // 资金批量上传
|
$api_fund_reporting_upload = `/api/fcc/fundUploadHead/uploadFundNumber`; // 资金批量上传
|
||||||
$api_fund_reporting_recall = `/api/fcc/fundUploadHead/recallUploadFundNumber`; //资金批量撤回
|
$api_fund_reporting_recall = `/api/fcc/fundUploadHead/recallUploadFundNumber`; //资金批量撤回
|
||||||
$api_get_fund_valid_result = `/api/fcc/capitalFieldCheck/getCapitalFieldCheckList`; // 查询资金校验表
|
$api_get_fund_valid_result = `/api/fcc/capitalFieldCheck/getCapitalFieldCheckList`; // 查询资金校验表
|
||||||
|
|
||||||
|
|
||||||
constructor(public injector: Injector) {
|
constructor(public injector: Injector) {
|
||||||
super(injector);
|
super(injector);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,8 +42,20 @@ export class DataService extends BaseService {
|
|||||||
|
|
||||||
// 查询货主报表
|
// 查询货主报表
|
||||||
$api_listShipperReportPage = `/api/sdc/report/listShipperReportPage`;
|
$api_listShipperReportPage = `/api/sdc/report/listShipperReportPage`;
|
||||||
// 查询货主报表
|
// 财务报表柱状图
|
||||||
$api_financialReportHistogram = `/api/sdc/report/financialReportHistogram`;
|
$api_financialReportHistogram = `/api/sdc/report/financialReportHistogram`;
|
||||||
|
// 合规监控报表-运费直付占比
|
||||||
|
$api_getBillRateDirectPayment = `/api/sdc/reportComplianceMonitor/getBillRateDirectPayment`;
|
||||||
|
// 合规监控报表-货源单占比
|
||||||
|
$api_getBillRateProportion = `/api/sdc/reportComplianceMonitor/getBillRateProportion`;
|
||||||
|
// 合规监控报表-订单合格率
|
||||||
|
$api_getBillRateQualified = `/api/sdc/reportComplianceMonitor/getBillRateQualified`;
|
||||||
|
// 合规监控报表-付款及时率
|
||||||
|
$api_getBillTimelyPayment = `/api/sdc/reportComplianceMonitor/getBillTimelyPayment`;
|
||||||
|
// 合规监控报表-监控报表(折线图)
|
||||||
|
$api_listMonitorSituation = `/api/sdc/reportComplianceMonitor/listMonitorSituation`;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
constructor(public injector: Injector) {
|
constructor(public injector: Injector) {
|
||||||
super(injector);
|
super(injector);
|
||||||
|
|||||||
@ -397,25 +397,25 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
|||||||
{
|
{
|
||||||
text: '生成电子单据',
|
text: '生成电子单据',
|
||||||
click: _record => this.generate(_record, 2),
|
click: _record => this.generate(_record, 2),
|
||||||
iif: item => !item?.loadingLadingBillFilePath,
|
iif: item => !item?.loadingElectronicsLadingBillFilePath,
|
||||||
acl: { ability: ['ORDER-RECEIPTS-electronicBillingOne'] },
|
acl: { ability: ['ORDER-RECEIPTS-electronicBillingOne'] },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '通过',
|
text: '通过',
|
||||||
click: _record => this.sign(_record),
|
click: _record => this.sign(_record),
|
||||||
iif: item => !item?.loadingLadingBillFilePath,
|
iif: item => !item?.loadingElectronicsLadingBillFilePath,
|
||||||
acl: { ability: ['ORDER-RECEIPTS-billAuditPassBatch'] },
|
acl: { ability: ['ORDER-RECEIPTS-billAuditPassBatch'] },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '修改',
|
text: '修改',
|
||||||
click: _record => this.modification(_record),
|
click: _record => this.modification(_record),
|
||||||
iif: item => !item?.loadingLadingBillFilePath,
|
iif: item => !item?.loadingElectronicsLadingBillFilePath,
|
||||||
acl: { ability: ['ORDER-RECEIPTS-updateBillExamine'] },
|
acl: { ability: ['ORDER-RECEIPTS-updateBillExamine'] },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '查看凭证',
|
text: '查看凭证',
|
||||||
click: _record => this.generate(_record, 3),
|
click: _record => this.generate(_record, 3),
|
||||||
iif: item => item?.loadingLadingBillFilePath,
|
iif: item => item?.loadingElectronicsLadingBillFilePath,
|
||||||
acl: { ability: ['ORDER-RECEIPTS-view'] },
|
acl: { ability: ['ORDER-RECEIPTS-view'] },
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
|
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
|
||||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="search()" acl [acl-ability]="['ORDER-RISK-search']">查询</button>
|
<button nz-button nzType="primary" [nzLoading]="false" (click)="search()" acl [acl-ability]="['ORDER-RISK-search']">查询</button>
|
||||||
<button nz-button nzType="primary" [disabled]="false">导出</button>
|
<button nz-button nzType="primary" [disabled]="false" (click)="exprot()">导出</button>
|
||||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||||
<button nz-button nzType="link" (click)="expandToggle()">
|
<button nz-button nzType="link" (click)="expandToggle()">
|
||||||
{{ !_$expand ? '展开' : '收起' }}
|
{{ !_$expand ? '展开' : '收起' }}
|
||||||
|
|||||||
@ -532,4 +532,12 @@ export class OrderManagementRiskComponent implements OnInit {
|
|||||||
viewEvaluate(item: any) {
|
viewEvaluate(item: any) {
|
||||||
this.router.navigate(['/order-management/risk-detail', item.id]);
|
this.router.navigate(['/order-management/risk-detail', item.id]);
|
||||||
}
|
}
|
||||||
|
// 导出
|
||||||
|
exprot() {
|
||||||
|
this.service.request(this.service.$api_get_asyncExportRiskBillList, this.reqParams).subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
this.service.msgSrv.success('导出成功,请去下载中心下载!');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -505,14 +505,14 @@ export class orderManagementVoucherViewComponent implements OnInit {
|
|||||||
openlaod(value: any) {
|
openlaod(value: any) {
|
||||||
if(value === 1) {
|
if(value === 1) {
|
||||||
const a = document.createElement('a');
|
const a = document.createElement('a');
|
||||||
a.href = this.datas?.loadingLadingBillFilePath;
|
a.href = this.datas?.loadingElectronicsLadingBillFilePath;
|
||||||
document.body.appendChild(a);
|
document.body.appendChild(a);
|
||||||
console.log(document.body.contains(a))
|
console.log(document.body.contains(a))
|
||||||
a.click(); //点击下载
|
a.click(); //点击下载
|
||||||
document.body.removeChild(a); //下载完成移除元素
|
document.body.removeChild(a); //下载完成移除元素
|
||||||
} else {
|
} else {
|
||||||
const a = document.createElement('a');
|
const a = document.createElement('a');
|
||||||
a.href = this.datas?.loadingPeopleVehiclesGoodsFilePath;
|
a.href = this.datas?.unloadingElectronicsLadingBillFilePath;
|
||||||
document.body.appendChild(a);
|
document.body.appendChild(a);
|
||||||
console.log(document.body.contains(a))
|
console.log(document.body.contains(a))
|
||||||
a.click(); //点击下载
|
a.click(); //点击下载
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-03 15:31:52
|
* @Date : 2021-12-03 15:31:52
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-30 16:08:50
|
* @LastEditTime : 2022-04-02 13:10:13
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -191,6 +191,8 @@ export class OrderManagementService extends ShipperBaseService {
|
|||||||
$api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`;
|
$api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`;
|
||||||
// 异步导出运营后台整车订单列表
|
// 异步导出运营后台整车订单列表
|
||||||
$api_get_asyncExportWholeList = `/api/sdc/billOperate/asyncExportWholeList`;
|
$api_get_asyncExportWholeList = `/api/sdc/billOperate/asyncExportWholeList`;
|
||||||
|
// 异步导出风险单导出
|
||||||
|
$api_get_asyncExportRiskBillList = `/api/sdc/billRiskOperate/asyncExportRiskBillList`;
|
||||||
/**
|
/**
|
||||||
* 根据企业ID,获取企业历史网络货运人
|
* 根据企业ID,获取企业历史网络货运人
|
||||||
* @returns
|
* @returns
|
||||||
|
|||||||
Reference in New Issue
Block a user