import { Component, OnInit, ViewChild } from '@angular/core'; import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form'; import { NzModalService } from 'ng-zorro-antd/modal'; import { TicketService } from '../../services/ticket.service'; @Component({ selector: 'app-express-info', templateUrl: './express-info.component.html', styleUrls: ['../../../commom/less/box.less'] }) export class ExpressInfoComponent implements OnInit { @ViewChild('st', { static: true }) st!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; url = `/api/fcc/ficoExpressH/getListPage`; searchSchema: SFSchema = { properties: { expressCode: { title: '快递单号', type: 'string', ui: { placeholder: '请输入' } }, createTime: { title: '创建时间', type: 'string', ui: { widget: 'sl-from-to-search', format: 'yyyy-MM-dd' } as SFDateWidgetSchema } } }; columns: STColumn[] = [ { title: '', index: 'key', type: 'checkbox', width: 50 }, { title: '快递单号', index: 'expressCode', width: 150 }, { title: '快递公司', index: 'expresscompany', width: 120 }, { title: '快递费用', index: 'description', width: 120 }, { title: '发票数量', index: 'quantity', width: 120 }, { title: '寄件人姓名', index: 'sname', width: 150 }, { title: '寄件人电话', index: 'stel', width: 150 }, { title: '寄件人地址', index: 'saddress', width: 150, format: item => `${item.sprovince}${item.scity}${item.scounty || ''}${item.saddress}` }, { title: '收件人姓名', index: 'rname', width: 150 }, { title: '收件人电话', index: 'rtel', width: 150 }, { title: '收件人地址', index: 'raddress', width: 150, format: item => `${item.rprovince}${item.rcity}${item.rcounty || ''}${item.raddress}` }, { title: '下单时间', index: 'createTime', type: 'date', width: 180 } ]; selectedRows: any[] = []; reqParams = { pageIndex: 1, pageSize: 10 }; constructor(public service: TicketService, private nzModalService: NzModalService) {} ngOnInit(): void {} beforeReq = (requestOptions: STRequestOptions) => { if (this.sf) { Object.assign(requestOptions.body, { ...this.sf.value, createtime: { start: this.sf.value.createtime?.[0] || null, end: this.sf.value.createtime?.[1] || null } }); } return requestOptions; }; stChange(e: STChange): void { switch (e.type) { case 'checkbox': this.selectedRows = e.checkbox!; break; case 'filter': this.st.load(); break; } } printOrder() { if (this.selectedRows?.length <= 0) { this.service.msgSrv.warning('请选择快递单'); return; } this.nzModalService.warning({ nzTitle: '确认打印面单所选快递单?', nzClosable: false, nzCancelText: '取消', nzOnOk: () => { this.service .request( this.service.$api_get_print_pdf, this.selectedRows.map(item => item.expressCode) ) .subscribe(res => { if (res) { this.service.reviewPDF(res.pdfUrl); } else { this.service.msgSrv.warning('下载失败'); } }); } }); } /** * 重置表单 */ resetSF() { this.sf.reset(); } }