import { Component, OnInit, ViewChild } from '@angular/core'; import { Router } from '@angular/router'; 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({ selector: 'app-platform-account', templateUrl: './platform-account.component.html', styleUrls: ['../../../commom/less/box.less'] }) export class PlatformAccountComponent implements OnInit { @ViewChild('st', { static: true }) st!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; searchSchema: SFSchema = this.initSF(); columns: STColumn[] = this.initST(); info: any = {}; static: any = {}; constructor(public service: FreightAccountService, private router: Router, private nzModalService: NzModalService) {} ngOnInit(): void { this.loadInfo(); } beforeReq = (requestOptions: STRequestOptions) => { if (this.sf) { Object.assign(requestOptions.body, { ...this.sf.value }); } this.loadStatistics(requestOptions.body); return requestOptions; }; loadInfo() { const params = {}; if (this.sf) { Object.assign(params, { ...this.sf.value }); } this.service.request(this.service.$api_get_platform_account_header, params).subscribe(res => { if (res) { this.info = res; } }); } loadStatistics(params: any) { this.service.request(this.service.$api_get_platform_account_statistics, params).subscribe(res => { if (res) { this.static = res; } }); } /** * 重置表单 */ resetSF() { this.sf.reset(); } private initSF(): SFSchema { return { properties: { ltdId: { type: 'string', title: '网络货运人', ui: { widget: 'select', placeholder: '请选择', allowClear: true, asyncData: () => this.service.getNetworkFreightForwarder() } }, bankType: { type: 'string', title: '银行类型', enum: [ { label: '全部', value: null }, { label: '平安银行', value: '1' }, { label: '浦发银行', value: '2' } ], ui: { widget: 'select', placeholder: '请选择' }, default: null }, virtualAccount: { type: 'string', title: '虚拟账户', ui: { placeholder: '请输入' } } } }; } private initST(): STColumn[] { return [ { title: '网络货运人', index: 'ltdName', width: 180 }, { title: '银行类型', index: 'bankTypeLabel', width: 120 }, { title: '虚拟账户', index: 'virtualAccount', width: 160 }, { title: '平台账户可用余额', index: 'availableBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.availableBalance }) } }, { title: '平台账户冻结余额', index: 'freezeBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.freezeBalance }) } }, { title: '货主账户可用余额', index: 'shipperAvailableBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.shipperAvailableBalance }) } }, { title: '货主账户冻结余额', index: 'shipperFreezeBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.shipperFreezeBalance }) } }, { title: '司机账户可用余额', index: 'driverAvailableBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.driverAvailableBalance }) } }, { title: '司机账户冻结余额', index: 'driverFreezeBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.driverFreezeBalance }) } }, { title: '累计充值金额', index: 'rechargeBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.rechargeBalance }) } }, { title: '货主累计提现金额', index: 'shipperWithdrawBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.shipperWithdrawBalance }) } }, { title: '司机累计提现金额', index: 'driverWithdrawBalance', width: 180, type: 'widget', className: 'text-right', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.driverWithdrawBalance }) } }, { title: '操作', width: 100, className: 'text-center', fixed: 'right', buttons: [ { text: '查看明细', click: item => this.router.navigate(['/financial-management/platform-account/detail/' + item.id], { queryParams: { ltdId: item.ltdId, bankType: item.bankType, ltdName: `${item.ltdName}(${item.bankTypeLabel})` } }) } ] } ]; } exportList() { this.service.exportStart( { ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportPlatformAccountBalanceByOperator,); } }