Files
bbq/src/app/routes/ticket-management/components/etc-invoiced-logs/etc-invoiced-logs.component.ts
wangshiming af9f6b1400 fix bug
2022-04-24 10:27:44 +08:00

220 lines
6.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 { TicketService } from '../../services/ticket.service';
@Component({
selector: 'app-etc-invoiced-logs',
templateUrl: './etc-invoiced-logs.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
})
export class ETCInvoicedLogsComponent implements OnInit {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
_$expand = false;
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
ngOnInit(): void {}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
Object.assign(requestOptions.body, {
...this.sf.value,
exTime: {
start: this.sf.value.exTime?.[0] || '',
end: this.sf.value.exTime?.[1] || ''
},
invoiceMakeTime: {
start: this.sf.value.invoiceMakeTime?.[0] || '',
end: this.sf.value.invoiceMakeTime?.[1] || ''
}
});
}
return requestOptions;
};
routeTo(item: any) {
return;
this.router.navigate(['/ticket/invoice-requested-detail/1']);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
exportList() {
const params = { listSource: 1, pageSize: -1 };
if (this.sf) {
Object.assign(params, {
...this.sf.value
});
}
this.service.downloadFile(this.service.$api_export_invoice_logs_page, params);
}
private initSF(): SFSchema {
return {
properties: {
expand: {
type: 'boolean',
ui: {
hidden: true
}
},
invoiceNum: {
type: 'string',
title: '发票号码',
ui: {
placeholder: '请输入',
autocomplete: 'off'
}
},
billCode: {
type: 'string',
title: '订单号',
ui: {
placeholder: '请输入'
}
},
waybillCode: {
type: 'string',
title: '运单号',
ui: {
placeholder: '请输入'
}
},
carNo: {
type: 'string',
title: '车牌号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
}
},
exTime: {
title: '交易时间',
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema
},
invoiceMakeTime: {
title: '开票日期',
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
} as SFDateWidgetSchema
},
sellerName: {
type: 'string',
title: '销售方',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
}
},
ltdId: {
type: 'string',
title: '网络货运人',
ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder()
},
default: ''
}
}
};
}
private initST(): STColumn[] {
return [
{ title: '发票号码', index: 'invoiceNum', width: 100, type: 'link', click: item => this.routeTo(item) },
{ title: '发票代码', index: 'invoiceCode', width: 130 },
{ title: '订单号', index: 'billCode', width: 180 },
{ title: '运单号', index: 'waybillCode', width: 180 },
{ title: '入站口', index: 'enStationName', width: 100 },
{ title: '出站口', index: 'exStationName', width: 100 },
{ title: '司机', render: 'call3No', width: 140 },
{ title: '车牌号', index: 'carNo', width: 100 },
// { title: '里程km', index: 'mileage', width: 120 },
{ title: '交易id', index: 'tradeId', width: 200 },
{
title: '交易金额(元)',
index: 'fee',
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.fee }) }
},
{ title: '税率', index: 'taxRate', width: 90, format: item => `${item.taxRate ? ((item.taxRate as number) * 100).toFixed(2) : 0}%` },
{
title: '金额(元)',
index: 'invoiceAmount',
width: 120,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.invoiceAmount }) }
},
{
title: '税额(元)',
index: 'totalTaxAmount',
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.totalTaxAmount }) }
},
{
title: '价税合计(元)',
index: 'totalAmount',
width: 150,
type: 'widget',
className: 'text-right font-weight-bold',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.totalAmount }) }
},
{ title: '进站时间', index: 'trafficStartTime', type: 'date', width: 150 },
{ title: '出站时间', index: 'trafficEndTime', type: 'date', width: 150 },
{ title: '交易时间', index: 'exTime', type: 'date', width: 150 },
{ title: '开票日期', index: 'invoiceMakeTime', type: 'date', width: 150 },
{ title: '销售方', index: 'sellerName', width: 150 },
{ title: '网络货运人', index: 'enterpriseInfoName', width: 220 }
];
}
}