diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..28a51d58 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "compile-hero.disable-compile-files-on-did-save-code": false +} \ No newline at end of file diff --git a/proxy.conf.js b/proxy.conf.js index cb9ce42c..a4074f73 100644 --- a/proxy.conf.js +++ b/proxy.conf.js @@ -20,7 +20,7 @@ module.exports = { // } '//api': { target: { - host: 'tms-api-test.eascs.com', + host: 'tms-api-dev.eascs.com', protocol: 'https:', port: 443 }, diff --git a/src/app/global-config.module.ts b/src/app/global-config.module.ts index 2d6bb8cd..af9999b1 100644 --- a/src/app/global-config.module.ts +++ b/src/app/global-config.module.ts @@ -17,7 +17,7 @@ const alainConfig: AlainConfig = { page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000], toTop: false }, modal: { size: 'lg' } }, - sf: { button: { search: '查询' }, ui: { placeholder: '请输入' } }, + sf: { button: { search: '查询' } }, pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true }, auth: { login_url: '/passport/login' }, acl: { guard_url: '/exception/403' }, diff --git a/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.html b/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.html index 2ed7ccb3..234c748e 100644 --- a/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.html +++ b/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.html @@ -32,7 +32,7 @@
- +
@@ -43,9 +43,9 @@
环比(%)
- + - +
@@ -53,7 +53,6 @@
- \ No newline at end of file diff --git a/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.ts b/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.ts index af0711a4..2a15b70e 100644 --- a/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.ts +++ b/src/app/routes/datatable/components/busitable/busiindex/busiindex.component.ts @@ -4,7 +4,8 @@ import { DatePipe, _HttpClient } from '@delon/theme'; import { differenceInCalendarDays } from 'date-fns'; import { DataService } from '../../../services/data.service'; import { Chart } from '@antv/g2'; -import { BusitableCurveComponent } from './curve2/curve.component'; +import { BusitablePillarComponent } from './pillar/pillar.component'; +import { BusitableCurveComponent } from './curve/curve.component'; @Component({ selector: 'app-datatable-busiindex', @@ -16,6 +17,7 @@ import { BusitableCurveComponent } from './curve2/curve.component'; export class DatatableBusiindexComponent implements OnInit { @ViewChild('st') private readonly st!: STComponent; @ViewChild('curve') private readonly curve!: BusitableCurveComponent; + @ViewChild('pillar') private readonly pillar!: BusitablePillarComponent; type = 1; mode = 'year'; date: any = null; @@ -26,9 +28,8 @@ export class DatatableBusiindexComponent implements OnInit { timeNext: any = ['2022-01-01 00:00:00'] dateFormat = 'yyyy-MM-dd'; today = new Date(); - chainRatio: any = [] chartData: any = {} - el: any; + flag = false; columns: STColumn[] = [ { title: '运营主体', index: 'networkTransporterName', className: 'text-center' }, @@ -80,12 +81,11 @@ export class DatatableBusiindexComponent implements OnInit { }; this.service.request(this.service.$api_performanceReportHistogram, params).subscribe(res => { if (res) { - this.chainRatio = res.chainRatio this.chartData = res - setTimeout(() => { - this.ngZone.runOutsideAngular(() => this.init(this.el)); - }, 1000); - + if(this.flag) { + this.pillar.reRender() + this.curve.reRender() + } } }) } @@ -124,6 +124,8 @@ export class DatatableBusiindexComponent implements OnInit { } else if(this.mode === 'month') { this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy-MM') + '-01 00:00:00'] } + this.flag = true + this.initData() } disabledDate = (current: Date): boolean => // Can not select days before today and today @@ -131,38 +133,4 @@ export class DatatableBusiindexComponent implements OnInit { exportFun(){ } - - render(el: ElementRef): void { - this.el = el.nativeElement - - } - - private init(el: HTMLElement): void { - const chart = new Chart({ - container: el, - autoFit: true, - height: 500, - }); - - chart.data(this.chainRatio); - chart.scale({ - year: { - range: [0, 1], - }, - value: { - min: 0, - nice: true, - }, - }); - - chart.tooltip({ - showCrosshairs: true, // 展示 Tooltip 辅助线 - shared: true, - }); - - chart.line().position('time*value').label('value'); - chart.point().position('time*value'); - - chart.render(); - } } diff --git a/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.html b/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.html index 0640a4d4..315c4e18 100644 --- a/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.html +++ b/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.ts b/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.ts index c1a6e85e..70fd0aad 100644 --- a/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.ts +++ b/src/app/routes/datatable/components/busitable/busiindex/curve/curve.component.ts @@ -1,6 +1,4 @@ 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'; import { Chart } from '@antv/g2'; import { DataService } from 'src/app/routes/datatable/services/data.service'; @Component({ @@ -9,43 +7,44 @@ import { DataService } from 'src/app/routes/datatable/services/data.service'; styleUrls: ['./curve.component.less'] }) export class BusitableCurveComponent implements OnInit, OnChanges { - @Input() chartData: any; 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 { } - - ngOnChanges(changes: SimpleChanges): void { - if (this.chartData) { - setTimeout(() => { - this.ngZone.runOutsideAngular(() => this.init(this.el)); - }, 2000) - - } + reRender() { + setTimeout(() => { + this.chart.data(this.chartData); + this.chart.render(); + }, 500) } - - - handleClick(data: G2MiniAreaClickItem): void { - this.service.msgSrv.info(`${data.item.x} - ${data.item.y}`); - } - render(el: ElementRef): void { this.el = el.nativeElement - // this.ngZone.runOutsideAngular(() => this.init(this.el)); + this.ngZone.runOutsideAngular(() => this.init(this.el)); } + private init(el: HTMLElement): void { - const chart = new Chart({ + this.chart = new Chart({ container: el, autoFit: true, height: 500, }); - chart.data(this.chartData); - chart.scale({ + this.chart.data(this.chartData); + this.chart.scale({ year: { range: [0, 1], }, @@ -55,15 +54,15 @@ export class BusitableCurveComponent implements OnInit, OnChanges { }, }); - chart.tooltip({ + this.chart.tooltip({ showCrosshairs: true, // 展示 Tooltip 辅助线 shared: true, }); - chart.line().position('time*value').label('value'); - chart.point().position('time*value'); + this.chart.line().position('time*value').label('value'); + this.chart.point().position('time*value'); - chart.render(); + this.chart.render(); } } \ No newline at end of file diff --git a/src/app/routes/datatable/components/busitable/busiindex/curve2/curve.component.ts b/src/app/routes/datatable/components/busitable/busiindex/curve2/curve.component.ts deleted file mode 100644 index a02dff78..00000000 --- a/src/app/routes/datatable/components/busitable/busiindex/curve2/curve.component.ts +++ /dev/null @@ -1,92 +0,0 @@ -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'; -import { Chart } from '@antv/g2'; -import { DataService } from 'src/app/routes/datatable/services/data.service'; -@Component({ - selector: 'app-busitable-curve', - templateUrl: './curve.component.html', - styleUrls: ['./curve.component.less'] -}) -export class BusitableCurveComponent implements OnInit, OnChanges { - @Input() chartData: any ; - el: any; - constructor(private service: DataService, private ngZone: NgZone) { - - } - ngOnChanges(changes: SimpleChanges): void { - if(this.chartData){ - setTimeout(()=>{ - this.ngZone.runOutsideAngular(() => this.init(this.el)); - }, 3000) - - } - } - - ngOnInit(): void { - this.initData() - } - initData(){ - this.service.request(this.service.$api_operationalReportWaybillStatusDistribution).subscribe(res => { - if (res) { - this.chartData = res - this.ngZone.runOutsideAngular(() => this.init(this.el)); - } - }) - } - render(el: ElementRef): void { - this.el = el.nativeElement - } - private init(el: HTMLElement): void { - const ds = new DataSet(); - const dv = ds.createView().source(this.chartData); - dv.transform({ - type: 'map', - callback: row => { - row.year = parseInt(row.year, 10); - return row; - } - }).transform({ - type: 'regression', - method: 'polynomial', - fields: ['year', 'value'], - bandwidth: 0.1, - as: ['Year', 'Value'] - }); - - const chart = new Chart({ - container: el, - autoFit: true, - height: 500, - padding: [20, 40], - }); - - const view1 = chart.createView(); - view1.data(this.chartData); - view1.scale('price', { - nice: true, - }); - view1.tooltip({ - showMarkers: false, - shared: true, - }); - - view1 - .interval() - .position('month*price') - .color('name') - .adjust([ - { - type: 'dodge', - marginRatio: 0, - }, - ]); - - - // chart.interaction('active-region'); - chart.render(); - - } -} - - diff --git a/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.html b/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.html index 0640a4d4..315c4e18 100644 --- a/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.html +++ b/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.ts b/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.ts index f7460ec9..ad1cef14 100644 --- a/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.ts +++ b/src/app/routes/datatable/components/busitable/busiindex/pillar/pillar.component.ts @@ -7,48 +7,50 @@ import { DataService } from 'src/app/routes/datatable/services/data.service'; styleUrls: ['./pillar.component.less'] }) export class BusitablePillarComponent implements OnInit, OnChanges { - el: any; - @Input() chartData: any ; + @Input() chartData: any; + chart: any; constructor(private service: DataService, private ngZone: NgZone) { } ngOnChanges(changes: SimpleChanges): void { - if(this.chartData){ - setTimeout(()=>{ - this.ngZone.runOutsideAngular(() => this.init(this.el)); - }, 1000) - + if (this.chartData) { + // setTimeout(()=>{ + // this.chart.render(true) + // }, 1000) + } } ngOnInit(): void { - + + } + reRender() { + setTimeout(() => { + this.chart.data(this.chartData); + this.chart.render(); + }, 500) } render(el: ElementRef): void { this.el = el.nativeElement + this.ngZone.runOutsideAngular(() => this.init(this.el)); } - private init(el: HTMLElement): void { - const chart = new Chart({ + this.chart = new Chart({ container: el, autoFit: true, height: 500, }); - - chart.data(this.chartData); - chart.tooltip({ + this.chart.data(this.chartData); + + this.chart.tooltip({ showMarkers: false, }); - chart.interval().position('time*number'); - - chart.interaction('element-active'); - - chart.render(); - + this.chart.interval().position('time*number'); + this.chart.render(); } } \ No newline at end of file diff --git a/src/app/routes/datatable/components/busitable/mantable/mantable.component.html b/src/app/routes/datatable/components/busitable/mantable/mantable.component.html index 835e4a2e..88d2016b 100644 --- a/src/app/routes/datatable/components/busitable/mantable/mantable.component.html +++ b/src/app/routes/datatable/components/busitable/mantable/mantable.component.html @@ -38,5 +38,4 @@ - \ No newline at end of file diff --git a/src/app/routes/datatable/components/customtable/customindex/customindex.component.html b/src/app/routes/datatable/components/customtable/customindex/customindex.component.html index d70ba207..1b5b0a1f 100644 --- a/src/app/routes/datatable/components/customtable/customindex/customindex.component.html +++ b/src/app/routes/datatable/components/customtable/customindex/customindex.component.html @@ -55,5 +55,4 @@ - \ No newline at end of file diff --git a/src/app/routes/datatable/components/customtable/customindex/customindex.component.ts b/src/app/routes/datatable/components/customtable/customindex/customindex.component.ts index c2acb2b1..d8b85955 100644 --- a/src/app/routes/datatable/components/customtable/customindex/customindex.component.ts +++ b/src/app/routes/datatable/components/customtable/customindex/customindex.component.ts @@ -23,6 +23,7 @@ export class DatatableCustomindexComponent implements OnInit { dateNext: any = null; modeNext = 'year'; timeNext: any = ['2022-01-01 00:00:00'] + columns: STColumn[] = [ { title: '用户类型', index: 'networkTransporterName', className: 'text-center' }, diff --git a/src/app/routes/datatable/components/customtable/driver/driver.component.ts b/src/app/routes/datatable/components/customtable/driver/driver.component.ts index b69286d8..6932fd0b 100644 --- a/src/app/routes/datatable/components/customtable/driver/driver.component.ts +++ b/src/app/routes/datatable/components/customtable/driver/driver.component.ts @@ -52,7 +52,8 @@ export class DatatableDriverComponent implements OnInit { } let params: any = { time: this.time, - type: this.type + type: this.type, + ...this.sf?.value }; delete params._$expand; diff --git a/src/app/routes/datatable/components/customtable/owner/owner.component.html b/src/app/routes/datatable/components/customtable/owner/owner.component.html index 71e913ac..35c64a0e 100644 --- a/src/app/routes/datatable/components/customtable/owner/owner.component.html +++ b/src/app/routes/datatable/components/customtable/owner/owner.component.html @@ -38,7 +38,7 @@ - diff --git a/src/app/routes/datatable/components/customtable/owner/owner.component.ts b/src/app/routes/datatable/components/customtable/owner/owner.component.ts index 40bb4492..a7d178f8 100644 --- a/src/app/routes/datatable/components/customtable/owner/owner.component.ts +++ b/src/app/routes/datatable/components/customtable/owner/owner.component.ts @@ -26,23 +26,33 @@ export class DatatableOwnerComponent implements OnInit { schema: SFSchema = {}; columns: STColumn[] = [ - { title: '货主名称', index: 'networkTransporterName', className: 'text-center' }, - { title: '注册时间', index: 'zsl', className: 'text-center' }, - { title: '客户类型', index: 'yingsje', className: 'text-center' }, - { title: '业务员', index: 'cys', className: 'text-center' }, - { title: '合伙人', index: 'yingfyf', className: 'text-center' }, - { title: '客户状态', index: 'yl', className: 'text-center' }, - { title: '订单数', index: 'djd', className: 'text-center' }, - { title: '订单金额', index: 'ysz', className: 'text-center' }, - { title: '应收订单数', index: 'yswc', className: 'text-center' }, - { title: '应收金额', index: 'yisje', className: 'text-center' }, + { title: '货主名称', index: 'enterpriseName', className: 'text-center' }, + { title: '注册时间', index: 'registerTime', className: 'text-center' }, + { title: '客户类型', index: 'customerType', className: 'text-center', type: 'enum', enum: { + 1: '平台客户', + 2: '直客', + 3: '渠道客户' + } + }, + { title: '业务员', index: 'salesmanName', className: 'text-center' }, + { title: '合伙人', index: 'partnerName', className: 'text-center' }, + { title: '客户状态', index: 'customerStatus', className: 'text-center', type: 'enum', enum: { + 1: '未激活', + 2: '沉默', + 3: '流失', + 4: '活跃' + } }, + { title: '订单数', index: 'zsl', className: 'text-center' }, + { title: '订单金额', index: 'ddje', className: 'text-center' }, + { title: '应收订单数', index: 'ysdds', className: 'text-center' }, + { title: '应收金额', index: 'yingsje', className: 'text-center' }, { title: '待开票订单数', index: 'yifyf', className: 'text-center' }, - { title: '待开票金额', index: 'yifyf', className: 'text-center' }, - { title: '已收金额', render: 'yifyf', className: 'text-center' }, - { title: '附加费金额', index: 'yifyf', className: 'text-center' }, - { title: '已收附加费', index: 'yifyf', className: 'text-center' }, - { title: '附加费率', index: 'yifyf', className: 'text-center' }, - { title: '已开票金额', index: 'yifyf', className: 'text-center' } + { title: '待开票金额', index: 'dkpdds', className: 'text-center' }, + { title: '已收金额', render: 'yisje', className: 'text-center' }, + { title: '应收附加费', index: 'yingsfjf', className: 'text-center' }, + { title: '已收附加费', index: 'yisfjf', className: 'text-center' }, + { title: '附加费率', index: 'fjfl', className: 'text-center' }, + { title: '已开票金额', index: 'ykpje', className: 'text-center' } ]; /** * 查询参数 @@ -59,7 +69,8 @@ export class DatatableOwnerComponent implements OnInit { } let params: any = { time: this.time, - type: this.type + type: this.type, + ...this.sf?.value }; delete params._$expand; @@ -76,28 +87,41 @@ export class DatatableOwnerComponent implements OnInit { this.schema = { properties: { _$expand: { type: 'boolean', ui: { hidden: true } }, - billCode: { + enterpriseName: { type: 'string', title: '货主名称', ui: { placeholder: '请输入', } }, - resourceCode: { + customerType: { type: 'string', title: '客户类型', ui: { + widget: 'select', placeholder: '请选择', - } + }, + enum: [ + {label: '直客', value: 2}, + {label: '渠道客户', value: 3}, + {label: '平台客户', value: 1}, + ] }, - loadingPlace: { + customerStatus: { type: 'string', title: '客户状态', ui: { + widget: 'select', placeholder: '请选择', - } + }, + enum: [ + {label: '未激活', value: 1}, + {label: '沉默', value: 2}, + {label: '流失', value: 3}, + {label: '活跃', value: 4}, + ] }, - createTime: { + registerTime: { title: '注册时间', type: 'string', ui: { diff --git a/src/app/routes/datatable/components/operationtable/curve/curve.component.spec.ts b/src/app/routes/datatable/components/operationtable/curve/curve.component.spec.ts deleted file mode 100644 index cd009e56..00000000 --- a/src/app/routes/datatable/components/operationtable/curve/curve.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { DatatableDataindexComponent } from './dataindex.component'; - -describe('DatatableDataindexComponent', () => { - let component: DatatableDataindexComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ DatatableDataindexComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(DatatableDataindexComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/routes/datatable/components/operationtable/curve/curve.component.ts b/src/app/routes/datatable/components/operationtable/curve/curve.component.ts index 8f76f6cd..44a3a28e 100644 --- a/src/app/routes/datatable/components/operationtable/curve/curve.component.ts +++ b/src/app/routes/datatable/components/operationtable/curve/curve.component.ts @@ -1,131 +1,81 @@ -import { Component, ElementRef, NgZone, OnInit, ViewChild } from '@angular/core'; -import { G2MiniAreaClickItem } from '@delon/chart/mini-area'; -import { DataService } from '../../../services/data.service'; -import DataSet from '@antv/data-set'; +import { Component, ElementRef, Input, NgZone, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core'; import { Chart } from '@antv/g2'; +import { DataService } from 'src/app/routes/datatable/services/data.service'; @Component({ - selector: 'app-datatable-curve', + selector: 'app-operation-curve', templateUrl: './curve.component.html', styleUrls: ['./curve.component.less'] }) -export class OperationtableCurveComponent implements OnInit { - +export class OperationCurveComponent 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 { } - - - - - handleClick(data: G2MiniAreaClickItem): void { - this.service.msgSrv.info(`${data.item.x} - ${data.item.y}`); + reRender() { + setTimeout(() => { + this.chart.data(this.chartData); + this.chart.render(); + }, 1000) } - render(el: ElementRef): void { - this.ngZone.runOutsideAngular(() => this.init(el.nativeElement)); + this.el = el.nativeElement + setTimeout(() => { + this.ngZone.runOutsideAngular(() => this.init(this.el)); + }, 1000) } - private init(el: HTMLElement): void { - const data = [ - { name: '订单数', month: '01', count: 150, }, - { name: '订单数', month: '02', count: 288 }, - { name: '订单数', month: '03', count: 393 }, - { name: '订单数', month: '04', count: 814 }, - { name: '订单数', month: '05', count: 47 }, - { name: '承运数', month: '05', count: 124 }, - { name: '订单数', month: '06', count: 203 }, - { name: '承运数', month: '06', count: 203 }, - { name: '订单数', month: '07', count: 24 }, - { name: '订单数', month: '08', count: 356 }, - { name: '承运数', month: '09', count: 124 }, - { name: '承运数', month: '10', count: 232 }, - { name: '承运数', month: '11', count: 345 }, - { name: '承运数', month: '12', count: 997 } - ]; - const dataPillar = [ - { name: '应收金额(元)', month: '01', price: 18.9, }, - { name: '应收金额(元)', month: '02', price: 28.8 }, - { name: '应收金额(元)', month: '03', price: 39.3 }, - { name: '应收金额(元)', month: '04', price: 81.4 }, - { name: '应收金额(元)', month: '05', price: 47 }, - { name: '应付金额(元)', month: '05', price: 12.4 }, - { name: '应收金额(元)', month: '06', price: 20.3 }, - { name: '应付金额(元)', month: '06', price: 20.3 }, - { name: '应收金额(元)', month: '07', price: 24 }, - { name: '应收金额(元)', month: '08', price: 35.6 }, - { name: '应付金额(元)', month: '09', price: 12.4 }, - { name: '应付金额(元)', month: '10', price: 23.2 }, - { name: '应付金额(元)', month: '11', price: 34.5 }, - { name: '应付金额(元)', month: '12', price: 99.7 } - ]; - const ds = new DataSet(); - const dv = ds.createView().source(data); - dv.transform({ - type: 'map', - callback: row => { - row.year = parseInt(row.year, 10); - return row; - } - }).transform({ - type: 'regression', - method: 'polynomial', - fields: ['year', 'value'], - bandwidth: 0.1, - as: ['Year', 'Value'] - }); - const chart = new Chart({ + private init(el: HTMLElement): void { + this.chart = new Chart({ container: el, autoFit: true, height: 500, - padding: [20, 40], }); - const view1 = chart.createView(); - view1.data(dataPillar); - view1.scale('price', { - nice: true, + this.chart.data(this.chartData); + this.chart.scale({ + time: { + range: [0, 1], + }, + number: { + nice: true, + }, }); - view1.tooltip({ - showMarkers: false, + + this.chart.tooltip({ + showCrosshairs: true, shared: true, }); - - view1 - .interval() - .position('month*price') - .color('name') - .adjust([ - { - type: 'dodge', - marginRatio: 0, + + this.chart.axis('number', { + label: { + formatter: (val: any) => { + return val; }, - ]); - - const view2 = chart.createView(); - // view2.axis('count', { - // label: { - // formatter: (val) => { - // return val + ' °C'; - // }, - // }, - // }); - view2.data(data); - view2 + }, + }); + + this.chart .line() - .position('month*count') + .position('time*number') .color('name') - - - - - // chart.interaction('active-region'); - chart.render(); - + + + this.chart.render(); + } -} - +} \ No newline at end of file diff --git a/src/app/routes/datatable/components/operationtable/operationtable.component.html b/src/app/routes/datatable/components/operationtable/operationtable.component.html index bfd7283d..eb11b8ba 100644 --- a/src/app/routes/datatable/components/operationtable/operationtable.component.html +++ b/src/app/routes/datatable/components/operationtable/operationtable.component.html @@ -28,7 +28,7 @@
- +
@@ -42,11 +42,22 @@
- +
+
+ + + + +
+
+ + +
+
- - - - - - \ No newline at end of file + + diff --git a/src/app/routes/datatable/components/operationtable/operationtable.component.ts b/src/app/routes/datatable/components/operationtable/operationtable.component.ts index 51a2f215..e94ec542 100644 --- a/src/app/routes/datatable/components/operationtable/operationtable.component.ts +++ b/src/app/routes/datatable/components/operationtable/operationtable.component.ts @@ -3,6 +3,8 @@ import { STColumn, STComponent } from '@delon/abc/st'; import { DatePipe, _HttpClient } from '@delon/theme'; import { DataService } from '../../services/data.service'; import { differenceInCalendarDays } from 'date-fns'; +import { OperationCurveComponent } from './curve/curve.component'; +import { OperationPillarComponent } from './pillar/pillar.component'; @Component({ selector: 'app-datatable-operationtable', @@ -12,6 +14,8 @@ import { differenceInCalendarDays } from 'date-fns'; }) export class DatatableOperationtableComponent implements OnInit { + @ViewChild('curve') private readonly curve!: OperationCurveComponent; + @ViewChild('pillar') private readonly pillar!: OperationPillarComponent; @ViewChild('st') private readonly st!: STComponent; type = 1; mode = 'year'; @@ -24,8 +28,10 @@ export class DatatableOperationtableComponent implements OnInit { timeNext: any = ['2022-01-01 00:00:00'] today = new Date(); enterpriseInfoId = '' - enterpriseInfoIdPie = '' + interManlist: any = [] + chartData: any = {} + flag = false; columns: STColumn[] = [ { title: '运营主体', index: 'networkTransporterName', className: 'text-center' }, { title: '订单数', index: 'zsl', className: 'text-center' }, @@ -64,12 +70,36 @@ export class DatatableOperationtableComponent implements OnInit { constructor(public service: DataService, private datePipe: DatePipe) { } ngOnInit(): void { this.initData() + this.initPillarData() + } + initPillarData(){ + let type = 1 + if(this.mode === 'year') { + type = 1 + } else if(this.mode === 'month') { + type = 2 + } + const params: any = { + time: this.timeNext, + type, + enterpriseInfoId: this.enterpriseInfoId + }; + this.flag = true + this.service.request(this.service.$api_operationalReportHistogram, params).subscribe(res => { + if (res) { + this.chartData = res + if(this.flag) { + this.pillar.reRender() + this.curve.reRender() + } + } + }) } initData() { + this.service.getNetworkFreightForwarder().subscribe(res => { this.interManlist = res this.enterpriseInfoId = res[0].value - this.enterpriseInfoIdPie = res[0].value }) } diff --git a/src/app/routes/datatable/components/operationtable/pie/pie.component.html b/src/app/routes/datatable/components/operationtable/pie/pie.component.html index f36f8f9d..c7a478c5 100644 --- a/src/app/routes/datatable/components/operationtable/pie/pie.component.html +++ b/src/app/routes/datatable/components/operationtable/pie/pie.component.html @@ -1,3 +1,6 @@ -
+ + + + -
\ No newline at end of file + \ No newline at end of file diff --git a/src/app/routes/datatable/components/operationtable/pie/pie.component.less b/src/app/routes/datatable/components/operationtable/pie/pie.component.less index a69b0822..567be99f 100644 --- a/src/app/routes/datatable/components/operationtable/pie/pie.component.less +++ b/src/app/routes/datatable/components/operationtable/pie/pie.component.less @@ -1,5 +1,5 @@ .box{ width: 50%; - overflow: hidden; margin:0 auto; + overflow: hidden; } \ No newline at end of file diff --git a/src/app/routes/datatable/components/operationtable/pie/pie.component.ts b/src/app/routes/datatable/components/operationtable/pie/pie.component.ts index 594ed06d..fa58fbd1 100644 --- a/src/app/routes/datatable/components/operationtable/pie/pie.component.ts +++ b/src/app/routes/datatable/components/operationtable/pie/pie.component.ts @@ -13,21 +13,30 @@ export class OperationtablePieComponent implements OnInit { @ViewChild('pie', { static: false }) pie!: G2PieComponent; chartData: any = []; el: any; + enterpriseInfoIdPie = '' + interManlist: any = [] constructor(private service: DataService, private ngZone: NgZone) { } ngOnInit(): void { this.initData() + this.initManData() } initData(){ - this.service.request(this.service.$api_operationalReportWaybillStatusDistribution).subscribe(res => { + this.service.request(this.service.$api_operationalReportWaybillStatusDistribution, {id: this.enterpriseInfoIdPie}).subscribe(res => { if (res) { this.chartData = res this.ngZone.runOutsideAngular(() => this.init(this.el)); } }) } + initManData() { + this.service.getNetworkFreightForwarder().subscribe(res => { + this.interManlist = res + this.enterpriseInfoIdPie = res[0].value + }) + } render(el: ElementRef): void { this.el = el.nativeElement } diff --git a/src/app/routes/datatable/components/busitable/busiindex/curve2/curve.component.html b/src/app/routes/datatable/components/operationtable/pillar/pillar.component.html similarity index 100% rename from src/app/routes/datatable/components/busitable/busiindex/curve2/curve.component.html rename to src/app/routes/datatable/components/operationtable/pillar/pillar.component.html diff --git a/src/app/routes/datatable/components/busitable/busiindex/curve2/curve.component.less b/src/app/routes/datatable/components/operationtable/pillar/pillar.component.less similarity index 100% rename from src/app/routes/datatable/components/busitable/busiindex/curve2/curve.component.less rename to src/app/routes/datatable/components/operationtable/pillar/pillar.component.less diff --git a/src/app/routes/datatable/components/operationtable/pillar/pillar.component.ts b/src/app/routes/datatable/components/operationtable/pillar/pillar.component.ts new file mode 100644 index 00000000..54a3b4d4 --- /dev/null +++ b/src/app/routes/datatable/components/operationtable/pillar/pillar.component.ts @@ -0,0 +1,75 @@ +import { Component, ElementRef, Input, NgZone, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core'; +import { Chart } from '@antv/g2'; +import { DataService } from 'src/app/routes/datatable/services/data.service'; +@Component({ + selector: 'app-operation-pillar', + templateUrl: './pillar.component.html', + styleUrls: ['./pillar.component.less'] +}) +export class OperationPillarComponent 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); + console.log(this.chartData) + this.chart.render(); + }, 1000) + } + render(el: ElementRef): void { + this.el = el.nativeElement + setTimeout(() => { + 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('number', { + nice: true, + }); + this.chart.tooltip({ + showMarkers: false, + shared: true, + }); + + this.chart + .interval() + .position('time*number') + .color('name') + .adjust([ + { + type: 'dodge', + marginRatio: 0, + }, + ]); + + this.chart.interaction('active-region'); + + this.chart.render(); + } + +} \ No newline at end of file diff --git a/src/app/routes/datatable/datatable.module.ts b/src/app/routes/datatable/datatable.module.ts index 4e36ad35..2929d78c 100644 --- a/src/app/routes/datatable/datatable.module.ts +++ b/src/app/routes/datatable/datatable.module.ts @@ -8,7 +8,6 @@ import { DatatableOperationtableComponent } from './components/operationtable/op import { OperationtablePieComponent } from './components/operationtable/pie/pie.component'; import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component'; import { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; -import { OperationtableCurveComponent } from './components/operationtable/curve/curve.component'; import { DatatableComplianceIndexComponent } from './components/compliance/index/index.component'; import { DatatableFinancetableComponent } from './components/financetable/financetable.component'; import { DatatableInvoicetableComponent } from './components/invoicetable/invoicetable.component'; @@ -23,7 +22,9 @@ import { DatatableBusiindexComponent } from './components/busitable/busiindex/bu import { DatatableMantableComponent } from './components/busitable/mantable/mantable.component'; import { BusitablePillarComponent } from './components/busitable/busiindex/pillar/pillar.component'; import { DatatableReportingFundInfoComponent } from './reporting/components/fund-info/fund-info.component'; -import { BusitableCurveComponent } from './components/busitable/busiindex/curve2/curve.component'; +import { BusitableCurveComponent } from './components/busitable/busiindex/curve/curve.component'; +import { OperationPillarComponent } from './components/operationtable/pillar/pillar.component'; +import { OperationCurveComponent } from './components/operationtable/curve/curve.component'; import { FinanceTableCurveComponent } from './components/financetable/curve/curve.component'; const COMPONENTS: Type[] = [ @@ -34,7 +35,6 @@ const COMPONENTS: Type[] = [ DatatableOperationtableComponent, OperationtablePieComponent, DatatableOrderReportingComponent, - OperationtableCurveComponent, DatatableComplianceIndexComponent, DatatableFinancetableComponent, DatatableInvoicetableComponent, @@ -49,7 +49,10 @@ const COMPONENTS: Type[] = [ DatatableMantableComponent, BusitablePillarComponent, DatatableFundReportingComponent, + DatatableReportingFundInfoComponent, BusitableCurveComponent, + OperationPillarComponent, + OperationCurveComponent, DatatableReportingFundInfoComponent, FinanceTableCurveComponent ] diff --git a/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.html b/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.html index ab8abf9d..ec41a240 100644 --- a/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.html +++ b/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.html @@ -1,5 +1,5 @@ - diff --git a/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.ts b/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.ts index ee1f57f6..74fedc47 100644 --- a/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.ts +++ b/src/app/routes/datatable/reporting/components/fund-info/fund-info.component.ts @@ -19,7 +19,7 @@ export class DatatableReportingFundInfoComponent implements OnInit { get reqParams() { - return {}; + return { capitalCode: this?.record?.orderCode }; } constructor(public service: ReportingService, private modalRef: NzModalRef, public router: Router) { @@ -35,13 +35,34 @@ export class DatatableReportingFundInfoComponent implements OnInit { initST() { this.columns = [ { title: '序号', type: 'no', className: 'text-center', width: '60px', }, - { title: '监管平台字段', index: 'orderStatus', className: 'text-center', width: '120px', }, - { title: '系统字段', index: 'orderStatus', className: 'text-center', width: '100px', }, + { title: '监管平台字段', index: 'thirdPartyFieldName', className: 'text-center', width: '120px', }, + { title: '系统字段', index: 'checkFieldName', className: 'text-center', width: '100px', }, { title: '归属模块', index: 'orderStatus', className: 'text-center', width: '120px', }, - { title: '是否必填', index: 'orderStatus', className: 'text-center', width: '100px', }, - { title: '上传值', index: 'orderStatus', className: 'text-center', width: '150px', }, - { title: '本地校验', index: 'orderStatus', className: 'text-center', width: '100px', }, - { title: '错误内容', index: 'orderStatus', className: 'text-center', width: '150px', }, + { + title: '是否必填', + index: 'orderStatus', + className: 'text-center', + width: '100px', + type: 'enum', + enum: { + '0': '非必填', + '1': '必填', + }, + }, + { title: '上传值', index: 'fieldValue', className: 'text-center', width: '150px', }, + { + title: '本地校验', + index: 'checkStatus', + className: 'text-center', + type: 'enum', + enum: { + '0': '校验中', + '1': '通过', + '2': '不通过' + }, + width: '100px', + }, + { title: '错误内容', index: 'remark', className: 'text-center', width: '150px', }, ] } @@ -71,4 +92,5 @@ export class DatatableReportingFundInfoComponent implements OnInit { } + } diff --git a/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.html b/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.html index 07ad3e63..ed76d2ea 100644 --- a/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.html +++ b/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.html @@ -28,7 +28,8 @@ + [page]="{ show: true, showSize: true, pageSizes: [1,10,20, 50, 100] }" [loading]="false" + (change)="changeSt($event)"> {{item?.billStatusLabel}} @@ -48,10 +49,10 @@ {{item?.billStatusLabel}} -
{{item?.tolalAmount | currency :' '}}
+
{{item?.tolalAmount | currency }}
-
{{item?.payAmount | currency :' '}}
+
{{item?.payAmount | currency }}
diff --git a/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.ts b/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.ts index 1d704f71..cc0563a2 100644 --- a/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.ts +++ b/src/app/routes/datatable/reporting/components/fund-reporting/fund-reporting.component.ts @@ -1,10 +1,11 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; -import { STColumn, STComponent, STData } from '@delon/abc/st'; +import { STChange, STColumn, STComponent, STData } from '@delon/abc/st'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; import { ShipperBaseService } from '@shared'; import { NzModalService } from 'ng-zorro-antd/modal'; import { ReportingService } from '../../services/reporting.service'; +import { DatatableReportingFundInfoComponent } from '../fund-info/fund-info.component'; import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component'; import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component'; @@ -30,6 +31,7 @@ export class DatatableFundReportingComponent implements OnInit { ]; selectedIndex = '1'; //选择的项目 serviceTel = ''; + selectedRows: any[] = []; constructor( public service: ReportingService, private router: Router, @@ -51,7 +53,7 @@ export class DatatableFundReportingComponent implements OnInit { */ get reqParams() { const params = Object.assign({}, this.sf?.value || {}, { - uploadStatus: this.selectedIndex, + uploadStatus: this.selectedIndex }); delete params._$expand; return { ...params }; @@ -60,9 +62,9 @@ export class DatatableFundReportingComponent implements OnInit { /** * 选中行 */ - get selectedRows() { - return this.st?.list.filter((item: any) => item.checked) || []; - } + // get selectedRows() { + // return this.st?.list.filter((item: any) => item.checked) || []; + // } /** * 伸缩查询条件 @@ -217,12 +219,12 @@ export class DatatableFundReportingComponent implements OnInit { { title: '', type: 'checkbox', className: 'text-center', width: '60px', }, { title: '上传状态', render: 'uploadStatus', className: 'text-center', width: '120px', }, { title: '本地校验', render: 'verifyStatus', className: 'text-center', width: '120px', }, - { title: '流水单号', index: 'serialNumberCode', className: 'text-center', width: '150px', }, + { title: '流水单号', index: 'serialNumberCode', className: 'text-center', width: '190px', }, { title: '订单号', render: 'orderCode', className: 'text-center', - width: '150px', + width: '180px', }, { title: '运单号', render: 'wayBillCode', className: 'text-center', width: '150px', }, { @@ -243,9 +245,9 @@ export class DatatableFundReportingComponent implements OnInit { { title: '收款银行', index: 'bankTypeLabel', className: 'text-center', width: '200px' }, - { title: '银行流水号', index: 'bankSerialNumber', className: 'text-center', width: '150px' }, + { title: '银行流水号', index: 'bankSerialNumber', className: 'text-center', width: '180px' }, { title: '实际支付金额', render: 'payAmount', className: 'text-center', width: '150px' }, - { title: '交易时间', index: 'transactionTime', className: 'text-center', width: '150px' }, + { title: '交易时间', index: 'transactionTime', className: 'text-center', width: '180px' }, { title: '上传次数', index: 'uploadFrequency', className: 'text-center', width: '120px' }, { title: '上传时间', index: 'uploadTime', className: 'text-center', width: '180px' }, ]; @@ -268,9 +270,11 @@ export class DatatableFundReportingComponent implements OnInit { nzOkText: '确定', nzCancelText: '取消', nzOnOk: () => { - this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { + const ids = this.selectedRows.map(i => i?.id); + this.service.request(this.service.$api_fund_reporting_recall, ids).subscribe((res: any) => { if (res) { this.service.msgSrv.success('撤销成功'); + this.search(); } }) @@ -326,7 +330,8 @@ export class DatatableFundReportingComponent implements OnInit { this.openWainingModal('请选择需要上传的数据'); return; } - this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { + const ids = this.selectedRows.map(i => i?.id); + this.service.request(this.service.$api_fund_reporting_upload, ids).subscribe((res: any) => { if (res) { this.service.msgSrv.success('上传成功'); this.search(); @@ -354,13 +359,13 @@ export class DatatableFundReportingComponent implements OnInit { /** * 查看校验结果 */ - viewResult(item: any) { + viewResult(record: any) { const modalRef = this.modal.create({ nzTitle: '校验结果', nzWidth: 1200, - nzContent: DatatableReportingVerifyResultComponent, + nzContent: DatatableReportingFundInfoComponent, nzComponentParams: { - record: item + record }, nzFooter: null }); @@ -380,6 +385,7 @@ export class DatatableFundReportingComponent implements OnInit { search() { + this.selectedRows = []; this.st.load(1); } @@ -398,5 +404,45 @@ export class DatatableFundReportingComponent implements OnInit { }) } + changeSt(e: STChange): void { + + if (e.type === 'checkbox') { + const checkRows = (e.checkbox as STData[]) || []; + //判断当前页是否有选中的行 + if (checkRows.length === 0) { + // 当前页没有存在已勾选的行,移除之前所记录的当前页的行 + const stList = this.st.list; + stList.forEach(item => { + this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id); + }) + } else { + //添加新增的行 + checkRows.forEach((item: any) => { + const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id); + if (newSelectedList.length === 0) { + this.selectedRows.push(item); + + } + }) + // 移除取消选中的行 + const stList = this.st.list; + stList.forEach(item => { + if (!item.checked) { + const index = this.selectedRows.findIndex(_item => item.id === _item.id); + if (index !== -1) this.selectedRows.splice(index, 1); + } + }) + } + } else if (e.type === 'loaded') { + // 页面加载时勾选 + (e?.loaded || []).forEach((r: any) => { + this.selectedRows.forEach((x) => { + if (x.id === r.id) { + r.checked = true; + } + }); + }); + } + } } diff --git a/src/app/routes/datatable/reporting/services/reporting.service.ts b/src/app/routes/datatable/reporting/services/reporting.service.ts index bc10de77..ff73672a 100644 --- a/src/app/routes/datatable/reporting/services/reporting.service.ts +++ b/src/app/routes/datatable/reporting/services/reporting.service.ts @@ -12,7 +12,10 @@ export class ReportingService extends BaseService { $api_get_upload_setting = ``; // 修改上传设置 $api_upload_setting_save = ``; // 修改上传设置 - $api_get_fund_reporting_page = `/api/fcc/fundUploadHead/list/page`; + $api_get_fund_reporting_page = `/api/fcc/fundUploadHead/list/page`; // 资金上报列表 + $api_fund_reporting_upload = `/api/fcc/fundUploadHead/uploadFundNumber`; // 资金批量上传 + $api_fund_reporting_recall = `/api/fcc/fundUploadHead/recallUploadFundNumber`; //资金批量撤回 + $api_get_fund_valid_result = `/api/fcc/capitalFieldCheck/getCapitalFieldCheckList`; // 查询资金校验表 constructor(public injector: Injector) { super(injector); } diff --git a/src/app/routes/datatable/services/data.service.ts b/src/app/routes/datatable/services/data.service.ts index 21e5e03b..5dd77204 100644 --- a/src/app/routes/datatable/services/data.service.ts +++ b/src/app/routes/datatable/services/data.service.ts @@ -27,6 +27,8 @@ export class DataService extends BaseService { $api_listPerformanceReportPage = `/api/sdc/report/listPerformanceReportPage`; // 运营报表运单状态分布 $api_operationalReportWaybillStatusDistribution = `/api/sdc/report/operationalReportWaybillStatusDistribution`; + // 运营报表柱状图 + $api_operationalReportHistogram = `/api/sdc/report/operationalReportHistogram`; // 获取网络货运人 $api_get_network_freight_forwarder_list = `/api/mdc/cuc/networkTransporter/findAll`; // 业绩报表柱状图 @@ -37,6 +39,10 @@ export class DataService extends BaseService { // 查询开票数据报表 $api_listFinancialReportPage = `/api/sdc/report/listFinancialReportPage`; + + // 查询货主报表 + $api_listShipperReportPage = `/api/sdc/report/listShipperReportPage`; + constructor(public injector: Injector) { super(injector); } @@ -45,7 +51,7 @@ export class DataService extends BaseService { * 获取网络货运人 * @returns */ - getNetworkFreightForwarder(params = {}, containerAll = false) { + getNetworkFreightForwarder(params = {}, containerAll = false) { return this.request(this.$api_get_network_freight_forwarder_list, params).pipe( map((res: any) => { if (!res) { @@ -66,7 +72,7 @@ export class DataService extends BaseService { ); } - getPerformanceReportHistogram(params = {}){ + getPerformanceReportHistogram(params = {}) { return this.request(this.$api_performanceReportHistogram, params) } } diff --git a/src/app/routes/financial-management/components/freight-account/freight-account-detail/freight-account-detail.component.ts b/src/app/routes/financial-management/components/freight-account/freight-account-detail/freight-account-detail.component.ts index d3d962dc..499dee65 100644 --- a/src/app/routes/financial-management/components/freight-account/freight-account-detail/freight-account-detail.component.ts +++ b/src/app/routes/financial-management/components/freight-account/freight-account-detail/freight-account-detail.component.ts @@ -134,7 +134,7 @@ export class FreightAccountDetailComponent implements OnInit { }, businessNumber: { type: 'string', - title: '关联单号', + title: '交易单号', ui: { placeholder: '请输入' } @@ -178,7 +178,7 @@ export class FreightAccountDetailComponent implements OnInit { default: '' }, projectId: { - title: '项目', + title: '所属项目', type: 'string', default: '', ui: { diff --git a/src/app/routes/financial-management/components/recharge-record/dist/recharge-record.component.js b/src/app/routes/financial-management/components/recharge-record/dist/recharge-record.component.js new file mode 100644 index 00000000..d6f8ba31 --- /dev/null +++ b/src/app/routes/financial-management/components/recharge-record/dist/recharge-record.component.js @@ -0,0 +1,252 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +exports.__esModule = true; +exports.RechargeRecordComponent = void 0; +var core_1 = require("@angular/core"); +var RechargeRecordComponent = /** @class */ (function () { + function RechargeRecordComponent(service, modal) { + var _this = this; + this.service = service; + this.modal = modal; + this.columns = this.initST(); + this.searchSchema = this.initSF(); + this.rechargeRemark = ''; + this._$expand = false; + this.beforeReq = function (requestOptions) { + if (_this.sf) { + Object.assign(requestOptions.body, __assign({}, _this.sf.value)); + } + return requestOptions; + }; + } + RechargeRecordComponent.prototype.ngOnInit = function () { }; + RechargeRecordComponent.prototype.addRemark = function (item) { + var _this = this; + this.rechargeRemark = item.rechargeRemark; + var modal = this.modal.create({ + nzTitle: this.rechargeRemark ? '修改备注' : '添加备注', + nzContent: this.remarkodal, + nzFooter: [ + { + type: 'primary', + label: '确认', + loading: function () { return _this.service.http.loading; }, + onClick: function () { + modal.destroy(); + } + } + ] + }); + }; + RechargeRecordComponent.prototype.goBack = function () { + history.go(-1); + }; + /** + * 重置表单 + */ + RechargeRecordComponent.prototype.resetSF = function () { + this.sf.reset(); + this._$expand = false; + }; + /** + * 伸缩查询条件 + */ + RechargeRecordComponent.prototype.expandToggle = function () { + var _a; + this._$expand = !this._$expand; + (_a = this.sf) === null || _a === void 0 ? void 0 : _a.setValue('/expand', this._$expand); + }; + RechargeRecordComponent.prototype.exportList = function () { + this.service.downloadFile(this.service.$mock_url, __assign(__assign({}, this.sf.value), { pageSize: -1 })); + }; + RechargeRecordComponent.prototype.initSF = function () { + var _this = this; + return { + properties: { + expand: { + type: 'boolean', + ui: { + hidden: true + } + }, + rechargeNo: { + type: 'string', + title: '充值单号', + ui: { + placeholder: '请输入' + } + }, + rechargeStatus: { + type: 'string', + title: '充值状态', + "enum": [ + { label: '全部', value: '' }, + { label: '充值中', value: '1' }, + { label: '充值失败', value: '2' }, + { label: '充值成功', value: '3' } + ], + ui: { + widget: 'select', + placeholder: '请选择' + }, + "default": '' + }, + createTime: { + title: '充值时间', + type: 'string', + ui: { + widget: 'date', + mode: 'range', + format: 'yyyy-MM-dd' + } + }, + roleName: { + type: 'string', + title: '账户名称', + ui: { + placeholder: '请输入', + autocomplete: 'off', + visibleIf: { + expand: function (value) { return value; } + } + } + }, + accountType: { + type: 'string', + title: '账户类型', + "enum": [ + { label: '全部', value: '' }, + { label: '货主账户', value: '1' }, + { label: '司机账户', value: '2' }, + { label: '营商商账户', value: '3' } + ], + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + expand: function (value) { return value; } + } + }, + "default": '' + }, + ltdId: { + type: 'string', + title: '网络货运人', + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + expand: function (value) { return value; } + }, + allowClear: true, + asyncData: function () { return _this.service.getNetworkFreightForwarder(); } + } + }, + bankType: { + type: 'string', + title: '银行类型', + "enum": [ + { label: '全部', value: '' }, + { label: '平安银行', value: '1' }, + { label: '浦发银行', value: '2' } + ], + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + expand: function (value) { return value; } + } + }, + "default": '' + } + } + }; + }; + RechargeRecordComponent.prototype.initST = function () { + var _this = this; + return [ + { title: '充值时间', index: 'createTime', type: 'date', width: 180 }, + { title: '充值单号', index: 'rechargeNo', width: 140 }, + { title: '网络货运人', index: 'ltdName', width: 160 }, + { title: '银行类型', index: 'bankTypeLabel', width: 100 }, + { title: '账户类型', index: 'accountTypeLabel', width: 100 }, + { title: '账户名称', index: 'roleName', width: 160 }, + { title: '虚拟账户', index: 'virtualAccount', width: 100 }, + { + title: '充值金额', + index: 'rechargeAmount', + width: 160, + type: 'widget', + className: 'text-right', + widget: { type: 'currency-chy', params: function (_a) { + var record = _a.record; + return ({ value: record.rechargeAmount }); + } } + }, + { title: '充值银行账户', render: 'transferBankAccount', width: 200 }, + { title: '充值方式', index: 'payChannelLabel', width: 100 }, + { title: '充值状态', index: 'rechargeStatusLabel', width: 100 }, + { title: '银行流水号', index: 'paySerialNumber', width: 120 }, + { + title: '操作', + width: 120, + fixed: 'right', + className: 'text-center', + buttons: [ + { type: 'divider' }, + { + text: '查看回单
', + click: function (item) { + return _this.service.getReceiptUrl(item.receiptUrl, { + bankType: item.bankType, + rmYll: item.roleId, + snglFlgCd: item.paySerialNumber2, + bussType: '06', + ltdId: item.ltdId, + accountType: item.accountType + }); + } + }, + { + text: '添加备注', + click: function (item) { return _this.addRemark(item); } + } + ] + } + ]; + }; + __decorate([ + core_1.ViewChild('st', { static: true }) + ], RechargeRecordComponent.prototype, "st"); + __decorate([ + core_1.ViewChild('sf', { static: false }) + ], RechargeRecordComponent.prototype, "sf"); + __decorate([ + core_1.ViewChild('remarkodal', { static: true }) + ], RechargeRecordComponent.prototype, "remarkodal"); + RechargeRecordComponent = __decorate([ + core_1.Component({ + selector: 'app-recharge-record', + templateUrl: './recharge-record.component.html', + styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] + }) + ], RechargeRecordComponent); + return RechargeRecordComponent; +}()); +exports.RechargeRecordComponent = RechargeRecordComponent; diff --git a/src/app/routes/financial-management/components/recharge-record/recharge-record.component.html b/src/app/routes/financial-management/components/recharge-record/recharge-record.component.html index 1c5242f6..bc3a4e92 100644 --- a/src/app/routes/financial-management/components/recharge-record/recharge-record.component.html +++ b/src/app/routes/financial-management/components/recharge-record/recharge-record.component.html @@ -19,7 +19,7 @@
{{ item.transferBankCardNumber }} - \ No newline at end of file + + + +
+
+ + + +
+
+
\ No newline at end of file diff --git a/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts b/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts index 85e4899b..bb067549 100644 --- a/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts +++ b/src/app/routes/financial-management/components/recharge-record/recharge-record.component.ts @@ -1,6 +1,7 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; +import { NzModalService } from 'ng-zorro-antd/modal'; import { FreightAccountService } from '../../services/freight-account.service'; @Component({ @@ -16,8 +17,12 @@ export class RechargeRecordComponent implements OnInit { columns: STColumn[] = this.initST(); searchSchema: SFSchema = this.initSF(); + @ViewChild('remarkodal', { static: true }) + remarkodal!: any; + rechargeRemark = ''; + _$expand = false; - constructor(public service: FreightAccountService) {} + constructor(public service: FreightAccountService, private modal: NzModalService) {} ngOnInit(): void {} @@ -28,6 +33,24 @@ export class RechargeRecordComponent implements OnInit { return requestOptions; }; + addRemark(item: any) { + this.rechargeRemark = item.rechargeRemark; + const modal = this.modal.create({ + nzTitle: this.rechargeRemark ? '修改备注' : '添加备注', + nzContent: this.remarkodal, + nzFooter: [ + { + type: 'primary', + label: '确认', + loading: () => this.service.http.loading, + onClick: () => { + modal.destroy(); + } + } + ] + }); + } + goBack() { history.go(-1); } @@ -110,7 +133,7 @@ export class RechargeRecordComponent implements OnInit { { label: '全部', value: '' }, { label: '货主账户', value: '1' }, { label: '司机账户', value: '2' }, - { label: '营商账户', value: '3' } + { label: '营商商账户', value: '3' } ], ui: { widget: 'select', @@ -178,12 +201,13 @@ export class RechargeRecordComponent implements OnInit { { title: '银行流水号', index: 'paySerialNumber', width: 120 }, { title: '操作', - width: 100, + width: 120, fixed: 'right', className: 'text-center', buttons: [ + { type: 'divider' }, { - text: '查看回单', + text: '查看回单
', click: item => this.service.getReceiptUrl(item.receiptUrl, { bankType: item.bankType, @@ -193,6 +217,10 @@ export class RechargeRecordComponent implements OnInit { ltdId: item.ltdId, accountType: item.accountType }) + }, + { + text: '添加备注', + click: item => this.addRemark(item) } ] } diff --git a/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts b/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts index 98465648..3222c24f 100644 --- a/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts +++ b/src/app/routes/financial-management/components/transaction-flow/transaction-flow.component.ts @@ -138,9 +138,9 @@ export class TransactionFlowComponent { title: '账户类型', enum: [ { label: '全部', value: '' }, - { label: '货主端', value: '1' }, - { label: '司机端', value: '2' }, - { label: '司机端', value: '3' } + { label: '货主账户', value: '1' }, + { label: '司机账户', value: '2' }, + { label: '运营商账户', value: '3' } ], ui: { widget: 'select', diff --git a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.html b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.html index cb3d2371..82e76a15 100644 --- a/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.html +++ b/src/app/routes/financial-management/components/withdrawals-record/withdrawals-record.component.html @@ -59,7 +59,7 @@ {{ selectedRows.length }} 条数据   累计提现 {{ totalCallNo }} - 清空 + 清空
diff --git a/src/app/routes/partner/partner-list/components/index/partner-list.component.ts b/src/app/routes/partner/partner-list/components/index/partner-list.component.ts index d970bbd7..938c8be6 100644 --- a/src/app/routes/partner/partner-list/components/index/partner-list.component.ts +++ b/src/app/routes/partner/partner-list/components/index/partner-list.component.ts @@ -1,8 +1,9 @@ import { Component, ViewChild } from '@angular/core'; import { Router } from '@angular/router'; import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; -import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; +import { SFComponent, SFSchema, SFDateWidgetSchema, SFAutoCompleteWidgetSchema, SFSelectWidgetSchema } from '@delon/form'; import { NzModalService } from 'ng-zorro-antd/modal'; +import { of } from 'rxjs'; import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-management/components/input-invoice/add-collection-invoice-modal/add-collection-invoice-modal.component'; import { PartnerListService } from '../../services/partner-list.service'; @@ -241,11 +242,22 @@ export class PartnerListComponent { type: 'string', title: '渠道销售', ui: { - placeholder: '请输入姓名或者手机号', + widget: 'select', + searchDebounceTime: 300, + searchLoadingText: '搜索中...', + allowClear: true, visibleIf: { expand: (value: boolean) => value + }, + onSearch: (q: any) => { + let str = q.replace(/^\s+|\s+$/g, ''); + if (str) { + return this.service.getChannel({ enterpriseName: str }).toPromise(); + } else { + return of([]); + } } - } + } as SFSelectWidgetSchema }, partnerType: { type: 'string', @@ -367,13 +379,12 @@ export class PartnerListComponent { return [ { title: '合伙人名称', - index: 'enterpriseName', - width: 180, - format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '') + index: 'contactName', + width: 180 }, { title: '付款编码', index: 'payCode', width: 160 }, { title: '邀请码', index: 'invitationCode', className: 'text-center', width: 130 }, - { title: '企业管理员', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') }, + { title: '企业管理员', index: 'adminName', width: 150 }, { title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 }, { title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } }, { title: '注册渠道', index: 'source', type: 'enum', enum: { 1: '合伙人注册', 2: '平台添加' }, width: 130 }, diff --git a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html index 04fdad70..bee8f2fc 100644 --- a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html +++ b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html @@ -34,7 +34,7 @@ 已选择 {{ selectedRows.length }} 张发票   发票金额总计 {{totalCallNo }} - 清空 + 清空