From 45f0869f1fe486b1e1fa4ff6e702cf0d1a8c66e4 Mon Sep 17 00:00:00 2001 From: Taric Xin Date: Thu, 13 Jan 2022 16:24:58 +0800 Subject: [PATCH] edit --- .../express-info/express-info.component.html | 16 ++- .../express-info/express-info.component.ts | 107 +++++++++++------- .../print-order-modal.component.ts | 26 +---- .../services/ticket.service.ts | 22 ++++ 4 files changed, 101 insertions(+), 70 deletions(-) diff --git a/src/app/routes/ticket-management/components/express-info/express-info.component.html b/src/app/routes/ticket-management/components/express-info/express-info.component.html index 7ff92d54..b4f699ef 100644 --- a/src/app/routes/ticket-management/components/express-info/express-info.component.html +++ b/src/app/routes/ticket-management/components/express-info/express-info.component.html @@ -1,13 +1,13 @@ - +
-
- +
-
+
@@ -16,13 +16,11 @@ -
-
- -
+
+
diff --git a/src/app/routes/ticket-management/components/express-info/express-info.component.ts b/src/app/routes/ticket-management/components/express-info/express-info.component.ts index d52afa84..dff493e4 100644 --- a/src/app/routes/ticket-management/components/express-info/express-info.component.ts +++ b/src/app/routes/ticket-management/components/express-info/express-info.component.ts @@ -1,13 +1,13 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { STComponent, STColumn, STChange } from '@delon/abc/st'; -import { SFComponent, SFSchema } from '@delon/form'; +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: ['./express-info.component.less'] + styleUrls: ['../../../commom/less/box.less'] }) export class ExpressInfoComponent implements OnInit { @ViewChild('st', { static: true }) @@ -15,54 +15,55 @@ export class ExpressInfoComponent implements OnInit { @ViewChild('sf', { static: false }) sf!: SFComponent; - url = `/rule?_allow_anonymous=true`; + url = `/api/fcc/ficoExpressH/getListPage`; searchSchema: SFSchema = { properties: { - receiveName: { - title: '配置类型', + expressCode: { + title: '快递单号', type: 'string', ui: { - widget: 'select', - placeholder: '请选择', - // asyncData: () => { - // return this.service.request(this.service.$api_getAppRoleList).pipe( - // map((res: any) => { - // this.roleList = res; - // return res.map((item: any) => { - // return { label: item.roleName, value: item.id }; - // }); - // }), - // ); - // }, - change: (i: any) => { - this.sf.value.receiveName = i; - this.sf?.setValue('/receiveName', i); - } + placeholder: '请输入' } + }, + createTime: { + title: '创建时间', + type: 'string', + ui: { + widget: 'sl-from-to-search', + format: 'yyyy-MM-dd' + } as SFDateWidgetSchema } } }; columns: STColumn[] = [ - { title: '配置类型', index: 'no' }, - { title: '配置项', index: 'description' }, + { 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: '启用状态', - className: 'text-center', - index: 'status', - type: 'badge', - badge: { - 0: { text: '启用', color: 'success' }, - 2: { text: '停用', color: 'error' }, - 3: { text: '停用', color: 'error' }, - 1: { text: '停用', color: 'error' } - } + 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: 'updatedAt', - type: 'date' + title: '下单时间', + index: 'createTime', + type: 'date', + width: 180 } ]; @@ -74,6 +75,19 @@ export class ExpressInfoComponent implements OnInit { 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': @@ -86,11 +100,28 @@ export class ExpressInfoComponent implements OnInit { } printOrder() { + if (this.selectedRows?.length <= 0) { + this.service.msgSrv.warning('请选择快递单'); + return; + } this.nzModalService.warning({ nzTitle: '确认打印面单所选快递单?', nzClosable: false, nzCancelText: '取消', - nzOnOk: () => {} + 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('下载失败'); + } + }); + } }); } /** diff --git a/src/app/routes/ticket-management/components/invoice-requested/print-order-modal/print-order-modal.component.ts b/src/app/routes/ticket-management/components/invoice-requested/print-order-modal/print-order-modal.component.ts index 5fe2cddd..49e4d2a7 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/print-order-modal/print-order-modal.component.ts +++ b/src/app/routes/ticket-management/components/invoice-requested/print-order-modal/print-order-modal.component.ts @@ -64,7 +64,7 @@ export class PrintOrderModalComponent implements OnInit { delete this.data.scontactInfo.id; this.service.request(this.service.$api_get_order_summary, params).subscribe(res => { if (res?.length > 0) { - this.reviewPDF(res); + this.service.reviewPDF(res); } else { this.service.msgSrv.warning('请到快递信息页面打印'); this.modal.destroy(true); @@ -78,7 +78,7 @@ export class PrintOrderModalComponent implements OnInit { if (res?.pdfUrl) { this.service.msgSrv.success('操作成功'); this.modal.destroy(true); - this.reviewPDF(res.pdfUrl); + this.service.reviewPDF(res.pdfUrl); } else { this.service.msgSrv.warning('下载失败'); this.modal.destroy(true); @@ -86,27 +86,7 @@ export class PrintOrderModalComponent implements OnInit { }); } - reviewPDF(url: string) { - if (!url) { - return; - } - const uA = window.navigator.userAgent; // 判断浏览器内核 - const isIE = - /msie\s|trident\/|edge\//i.test(uA) && - !!('uniqueID' in document || 'documentMode' in document || 'ActiveXObject' in window || 'MSInputMethodContext' in window); - const objectUrl = url; - const a = document.createElement('a'); - document.body.appendChild(a); - a.href = objectUrl; - a.download = '面单.pdf'; - if (isIE) { - // 兼容IE11无法触发下载的问题 - (navigator as any).msSaveBlob(url, a.download); - } else { - a.click(); - } - a.remove(); - } + close() { this.modal.destroy(); diff --git a/src/app/routes/ticket-management/services/ticket.service.ts b/src/app/routes/ticket-management/services/ticket.service.ts index d18747bd..c0ac6ea9 100644 --- a/src/app/routes/ticket-management/services/ticket.service.ts +++ b/src/app/routes/ticket-management/services/ticket.service.ts @@ -91,4 +91,26 @@ export class TicketService extends ShipperBaseService { constructor(public injector: Injector, public eaCacheSrv: EACacheService) { super(injector, eaCacheSrv); } + + reviewPDF(url: string) { + if (!url) { + return; + } + const uA = window.navigator.userAgent; // 判断浏览器内核 + const isIE = + /msie\s|trident\/|edge\//i.test(uA) && + !!('uniqueID' in document || 'documentMode' in document || 'ActiveXObject' in window || 'MSInputMethodContext' in window); + const objectUrl = url; + const a = document.createElement('a'); + document.body.appendChild(a); + a.href = objectUrl; + a.download = '面单.pdf'; + if (isIE) { + // 兼容IE11无法触发下载的问题 + (navigator as any).msSaveBlob(url, a.download); + } else { + a.click(); + } + a.remove(); + } }