Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
		| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-04-06 10:57:56 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-04-11 11:17:19 | ||||
|  * @LastEditTime : 2022-04-11 14:23:35 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\abnormal-gold\\abnormal-gold.component.html | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
| --> | ||||
|  | ||||
| @ -191,6 +191,6 @@ export class AbnormalGoldComponent implements OnInit { | ||||
|   } | ||||
|       // 导出 | ||||
|       exprot() { | ||||
|         this.service.exportStart({ ...this.beforeReq, pageSize: -1 }, this.service.$api_get_exportAbnormalAmountPage); | ||||
|         this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAbnormalAmountPage); | ||||
|       } | ||||
| } | ||||
|  | ||||
| @ -195,8 +195,8 @@ export class CostManagementComponent implements OnInit { | ||||
|               let str = q.replace(/^\s+|\s+$/g, ''); | ||||
|               if (str) { | ||||
|                 return this.service | ||||
|                   .request(this.service.$api_enterpriceList, { enterpriseName: str }) | ||||
|                   .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) | ||||
|                   .request(this.service.$api_crm_enterpriceList, { enterpriseName: str }) | ||||
|                   .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.enterpriseId } as SFSchemaEnum)))) | ||||
|                   .toPromise(); | ||||
|               } else { | ||||
|                 return of([]); | ||||
| @ -220,8 +220,8 @@ export class CostManagementComponent implements OnInit { | ||||
|               let str = q.replace(/^\s+|\s+$/g, ''); | ||||
|               if (str) { | ||||
|                 return this.service | ||||
|                   .request(this.service.$api_enterpriceList, { enterpriseName: str }) | ||||
|                   .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) | ||||
|                   .request(this.service.$api_crm_enterpriceList, { enterpriseName: str }) | ||||
|                   .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.crmUserId } as SFSchemaEnum)))) | ||||
|                   .toPromise(); | ||||
|               } else { | ||||
|                 return of([]); | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
|             class="text-right"> | ||||
|             <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> | ||||
|             <button nz-button (click)="resetSF()">重置</button> | ||||
|             <button nz-button> 导出</button> | ||||
|             <button nz-button (click)="exprot()"> 导出</button> | ||||
|             <button nz-button nzType="link" (click)="expandToggle()"> | ||||
|                 {{ !_$expand ? '展开' : '收起' }} | ||||
|                 <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> | ||||
|  | ||||
| @ -151,8 +151,8 @@ export class PaymentRecordComponent implements OnInit { | ||||
|           title: '车队长收款', | ||||
|           enum: [ | ||||
|             { label: '全部', value: '' }, | ||||
|             { label: '否', value: 0 }, | ||||
|             { label: '是', value: 1 } | ||||
|             { label: '否', value: '0' }, | ||||
|             { label: '是', value: '1' } | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
| @ -299,4 +299,8 @@ export class PaymentRecordComponent implements OnInit { | ||||
|       } | ||||
|     ]; | ||||
|   } | ||||
|   // 导出 | ||||
|   exprot() { | ||||
|     this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_asyncExportBillPaymentApplicationList); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -49,8 +49,7 @@ | ||||
|                 [ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true" | ||||
|                 [button]="'none'"></sf> | ||||
|         </div> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand" | ||||
|             class="text-right"> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> | ||||
|             <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> | ||||
|             <button nz-button (click)="resetSF()">重置</button> | ||||
|             <button nz-button (click)="exportList()"> 导出</button> | ||||
|  | ||||
| @ -66,7 +66,7 @@ export class PlatformAccountDetailComponent implements OnInit { | ||||
|   stChange(e: STChange): void {} | ||||
|  | ||||
|   exportList() { | ||||
|     this.service.exportStart( { ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAccountBalanceByPage,); | ||||
|     this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAccountBalanceByPage); | ||||
|   } | ||||
|  | ||||
|   goBack() { | ||||
| @ -153,6 +153,16 @@ export class PlatformAccountDetailComponent implements OnInit { | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
|         roleName: { | ||||
|           type: 'string', | ||||
|           title: '账户名称', | ||||
|           ui: { | ||||
|             placeholder: '请输入', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         incomeType: { | ||||
|           type: 'string', | ||||
|           title: '收支类型', | ||||
| @ -201,7 +211,7 @@ export class PlatformAccountDetailComponent implements OnInit { | ||||
|       { title: '订单号', index: 'orderSn', width: 170 }, | ||||
|       { title: '运单号', index: 'businessNumber', width: 190 }, | ||||
|       { title: '账户类型', index: 'accountTypeLabel', className: 'text-center', width: 130 }, | ||||
|       { title: '账户名称', index: 'payName', className: 'text-center', width: 150 }, | ||||
|       { title: '账户名称', index: 'roleName', className: 'text-center', width: 150 }, | ||||
|       { title: '所属项目', index: 'projectName', className: 'text-center', width: 150 }, | ||||
|       { title: '收支类型', index: 'incomeTypeLabel', className: 'text-center', width: 130 }, | ||||
|       { | ||||
|  | ||||
| @ -41,16 +41,16 @@ export class ReceivableOrderComponent implements OnInit { | ||||
|       if (this.sf.value?.createTime) { | ||||
|         Object.assign(requestOptions.body, { | ||||
|           createTime: { | ||||
|             start: this.sf.value.createTime?.[0] || null, | ||||
|             end: this.sf.value.createTime?.[1] || null | ||||
|             start: this.sf.value.createTime?.[0] || '', | ||||
|             end: this.sf.value.createTime?.[1] || '' | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|       if (this.sf.value?.ahxdate) { | ||||
|         Object.assign(requestOptions.body, { | ||||
|           ahxdate: { | ||||
|             start: this.sf.value.ahxdate?.[0] || null, | ||||
|             end: this.sf.value.ahxdate?.[1] || null | ||||
|             start: this.sf.value.ahxdate?.[0] || '', | ||||
|             end: this.sf.value.ahxdate?.[1] || '' | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
| @ -98,7 +98,7 @@ export class ReceivableOrderComponent implements OnInit { | ||||
|             placeholder: '请输入' | ||||
|           } | ||||
|         }, | ||||
|         ltdid: { | ||||
|         ltdId: { | ||||
|           type: 'string', | ||||
|           title: '网络货运人', | ||||
|           ui: { | ||||
|  | ||||
| @ -29,6 +29,14 @@ export class RechargeRecordComponent implements OnInit { | ||||
|   beforeReq = (requestOptions: STRequestOptions) => { | ||||
|     if (this.sf) { | ||||
|       Object.assign(requestOptions.body, { ...this.sf.value }); | ||||
|       if (this.sf.value.createTime) { | ||||
|         Object.assign(requestOptions.body, { | ||||
|           createTime: { | ||||
|             start: this.sf.value.createTime?.[0] || '', | ||||
|             end: this.sf.value.createTime?.[1] || '' | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|     } | ||||
|     return requestOptions; | ||||
|   }; | ||||
| @ -79,7 +87,7 @@ export class RechargeRecordComponent implements OnInit { | ||||
|   } | ||||
|  | ||||
|   exportList() { | ||||
|     this.service.exportStart( { ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportPageByOperator,); | ||||
|     this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportPageByOperator); | ||||
|   } | ||||
|  | ||||
|   private initSF(): SFSchema { | ||||
| @ -117,9 +125,10 @@ export class RechargeRecordComponent implements OnInit { | ||||
|           title: '充值时间', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
|             widget: 'date', | ||||
|             mode: 'range', | ||||
|             format: 'yyyy-MM-dd' | ||||
|             widget: 'sl-from-to-search', | ||||
|             format: 'yyyy-MM-dd', | ||||
|             placeholder: '请选择', | ||||
|             nzShowTime: true | ||||
|           } as SFDateWidgetSchema | ||||
|         }, | ||||
|         roleName: { | ||||
|  | ||||
| @ -12,7 +12,7 @@ | ||||
|             class="text-right"> | ||||
|             <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> | ||||
|             <button nz-button (click)="resetSF()">重置</button> | ||||
|             <button nz-button> 导出</button> | ||||
|             <button nz-button (click)="exprot()"> 导出</button> | ||||
|             <button nz-button nzType="link" (click)="expandToggle()"> | ||||
|                 {{ !_$expand ? '展开' : '收起' }} | ||||
|                 <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> | ||||
|  | ||||
| @ -27,8 +27,7 @@ export class RefundRecordComponent implements OnInit { | ||||
|  | ||||
|   constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) {} | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|   } | ||||
|   ngOnInit(): void {} | ||||
|  | ||||
|   beforeReq = (requestOptions: STRequestOptions) => { | ||||
|     Object.assign(requestOptions.body, { refundStatus: this.refundStatus || null }); | ||||
| @ -287,4 +286,8 @@ export class RefundRecordComponent implements OnInit { | ||||
|       } | ||||
|     ]; | ||||
|   } | ||||
|   // 导出 | ||||
|   exprot() { | ||||
|     this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_asyncExportBillRefundApplicationList); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -111,7 +111,7 @@ export class VoucherManagementComponent implements OnInit { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             allowClear: true, | ||||
|             asyncData: () => this.service.getNetworkFreightForwarder() | ||||
|             asyncData: () => this.service.getCloseAccount() | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
|  | ||||
| @ -29,8 +29,7 @@ | ||||
|                 [ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24,gutter:15 } }}" [compact]="true" | ||||
|                 [button]="'none'"></sf> | ||||
|         </div> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand" | ||||
|             class="text-right"> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> | ||||
|             <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> | ||||
|             <button nz-button (click)="resetSF()">重置</button> | ||||
|             <button nz-button> 导出</button> | ||||
|  | ||||
| @ -177,15 +177,15 @@ export class WithdrawalsRecordComponent { | ||||
|             placeholder: '请输入' | ||||
|           } | ||||
|         }, | ||||
|         refundStatus: { | ||||
|           type: 'string', | ||||
|           title: '提现状态', | ||||
|           ui: { | ||||
|             widget: 'dict-select', | ||||
|             params: { dictKey: 'refund:apply:status' }, | ||||
|             placeholder: '请选择' | ||||
|           } | ||||
|         }, | ||||
|         // refundStatus: { | ||||
|         //   type: 'string', | ||||
|         //   title: '提现状态', | ||||
|         //   ui: { | ||||
|         //     widget: 'dict-select', | ||||
|         //     params: { dictKey: 'refund:apply:status' }, | ||||
|         //     placeholder: '请选择' | ||||
|         //   } | ||||
|         // }, | ||||
|         createTime: { | ||||
|           title: '提现时间', | ||||
|           type: 'string', | ||||
| @ -201,9 +201,6 @@ export class WithdrawalsRecordComponent { | ||||
|           title: '账户名称', | ||||
|           ui: { | ||||
|             placeholder: '请输入', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         accountType: { | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-01-18 15:57:44 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-04-11 11:15:57 | ||||
|  * @LastEditTime : 2022-04-11 14:26:38 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\financial-management\\services\\freight-account.service.ts | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -158,8 +158,12 @@ export class FreightAccountService extends ShipperBaseService { | ||||
|  | ||||
|   // 查询异常入金充值信息 | ||||
|   $api_get_getAbnormalAmountPage = '/api/fcc/rechargeInfo/list/getAbnormalAmountPage'; | ||||
|   // 查询异常入金充值信息 | ||||
|   // 异步导出运营后台异常入金列表 | ||||
|   $api_get_exportAbnormalAmountPage = '/api/fcc/rechargeInfo/exportAbnormalAmountPage'; | ||||
|   // 异步导出运营后台退款记录列表 | ||||
|   $api_get_asyncExportBillRefundApplicationList = '/api/fcc/billRefundApplication/asyncExportBillRefundApplicationList'; | ||||
|   // 异步导出运营后台支付记录列表 | ||||
|   $api_get_asyncExportBillPaymentApplicationList = '/api/fcc/billPaymentApplicationOBC/asyncExportBillPaymentApplicationList'; | ||||
|  | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector); | ||||
| @ -193,6 +197,8 @@ export class FreightAccountService extends ShipperBaseService { | ||||
|   } | ||||
|   // 获取货主企业列表 | ||||
|   public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; | ||||
|   // 获取企业CRM信息 | ||||
|   public $api_crm_enterpriceList = '/api/mdc/cuc/enterprise/getCrmSelectList'; | ||||
|   reviewPDF(url: string) { | ||||
|     if (!url) { | ||||
|       return; | ||||
|  | ||||
| @ -498,9 +498,11 @@ export class insuranceManagementListComponent implements OnInit { | ||||
|   } | ||||
|   showImg(_record: any) { | ||||
|     // var newUrl=_record.policyUrl.replace('http','https') | ||||
|     // console.log(newUrl); | ||||
|      | ||||
|     // window.open(newUrl,'_self'); | ||||
|     window.location.href = `${_record.policyUrl}`; | ||||
|     // this.service.downloadFile(`${_record.policyUrl}`) | ||||
|    | ||||
|     this.service.downloadFile(`${_record.policyUrl}`) | ||||
|     // const params = { | ||||
|     //   imgList: [_record.policyUrl], | ||||
|     //   index: 0 | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2021-12-03 15:31:52 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-02-28 17:11:54 | ||||
|  * @LastEditTime : 2022-04-11 15:13:24 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\insurance-management\\services\\insurance-management.service.ts | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -32,6 +32,30 @@ export class InsuranceManagementService extends ShipperBaseService { | ||||
|   //  保险费列表数据导出接口 | ||||
|   $api_get_asyncExport = `/api/sdc/premiumInfo/asyncExport`; | ||||
|  | ||||
|   public 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); | ||||
|     console.log('5555'); | ||||
|      | ||||
|     a.href = objectUrl; | ||||
|     a.download = '保单.pdf'; | ||||
|     if (isIE) { | ||||
|       // 兼容IE11无法触发下载的问题 | ||||
|       (navigator as any).msSaveBlob(url, a.download); | ||||
|     } else { | ||||
|       a.click(); | ||||
|     } | ||||
|     a.remove(); | ||||
|   } | ||||
|  | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector); | ||||
|   } | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-01-12 10:52:50 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-04-11 11:28:18 | ||||
|  * @LastEditTime : 2022-04-11 14:33:19 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\complaint\\complaint.component.html | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
| --> | ||||
| @ -27,7 +27,7 @@ | ||||
|       <div nz-col [nzSpan]="24" style="display: flex; justify-content: flex-end;"> | ||||
|         <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" | ||||
|           (click)="st?.load(1)"  acl  [acl-ability]="['ORDER-COMPLAINT-search']">查询</button> | ||||
|         <button nz-button nzType="primary" acl  [acl-ability]="['ORDER-COMPLAINT-export']" | ||||
|         <button nz-button nzType="primary" acl  [acl-ability]="['ORDER-COMPLAINT-export']" (click)="exprot()" | ||||
|          >导出</button> | ||||
|         <button nz-button (click)="resetSF()">重置</button> | ||||
|       </div> | ||||
|  | ||||
| @ -7,7 +7,6 @@ import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { map } from 'rxjs/operators'; | ||||
| import { OrderManagementService } from '../../services/order-management.service'; | ||||
|  | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-supply-management-complaint', | ||||
|   templateUrl: './complaint.component.html', | ||||
| @ -32,30 +31,27 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|   isLoading: boolean = false; | ||||
|   mainTabs = [ | ||||
|     { name: '司机投诉', status: '2' }, | ||||
|     { name: '货主投诉', status: '1' }, | ||||
|   ] | ||||
|   tabs = [  { | ||||
|     name: '全部', | ||||
|     type: 0, | ||||
|   }, | ||||
|   { | ||||
|     name: '待处理', | ||||
|     type: 1, | ||||
|   }, | ||||
|   { | ||||
|     name: '已处理', | ||||
|     type: 2, | ||||
|   }, | ||||
|   { | ||||
|     name: '已撤销', | ||||
|     type: 3, | ||||
|   } | ||||
|     { name: '货主投诉', status: '1' } | ||||
|   ]; | ||||
|   constructor( | ||||
|     public service: OrderManagementService, | ||||
|     private modal: NzModalService, | ||||
|     private router: Router | ||||
|      ) {    | ||||
|   tabs = [ | ||||
|     { | ||||
|       name: '全部', | ||||
|       type: 0 | ||||
|     }, | ||||
|     { | ||||
|       name: '待处理', | ||||
|       type: 1 | ||||
|     }, | ||||
|     { | ||||
|       name: '已处理', | ||||
|       type: 2 | ||||
|     }, | ||||
|     { | ||||
|       name: '已撤销', | ||||
|       type: 3 | ||||
|     } | ||||
|   ]; | ||||
|   constructor(public service: OrderManagementService, private modal: NzModalService, private router: Router) { | ||||
|     //    console.log(this.selectedIndex); | ||||
|     //   if (this.selectedIndex === 0) { | ||||
|     //   this.selectedMainTabStatus = '2'; | ||||
| @ -65,25 +61,25 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|  * 查询参数 | ||||
|  */ | ||||
|    * 查询参数 | ||||
|    */ | ||||
|   get reqParams() { | ||||
|     const a: any = {}; | ||||
|     if(this.resourceStatus) { | ||||
|       a.complaintStatus = this.resourceStatus  | ||||
|     if (this.resourceStatus) { | ||||
|       a.complaintStatus = this.resourceStatus; | ||||
|     } | ||||
|     if(this.selectedMainTabStatus) { | ||||
|       a.complainantParty = this.selectedMainTabStatus | ||||
|     if (this.selectedMainTabStatus) { | ||||
|       a.complainantParty = this.selectedMainTabStatus; | ||||
|     } | ||||
|     const params: any = Object.assign({}, this.sf?.value || {}); | ||||
|     delete params._$expand; | ||||
|     return { | ||||
|       ...a, | ||||
|       ...params, | ||||
|       ...params | ||||
|     }; | ||||
|   } | ||||
|   get selectedRows() { | ||||
|     return this.st?.list.filter((item) => item.checked) || []; | ||||
|     return this.st?.list.filter(item => item.checked) || []; | ||||
|   } | ||||
|   ngOnInit(): void { | ||||
|     this.initSF(); | ||||
| @ -91,17 +87,15 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|     this.initSTAudit(); | ||||
|   } | ||||
|  | ||||
|  | ||||
|  | ||||
|   /** | ||||
|  * 初始化查询表单 | ||||
|  */ | ||||
|    * 初始化查询表单 | ||||
|    */ | ||||
|   initSF() { | ||||
|     this.schema = { | ||||
|       properties: { | ||||
|         complaintCode: { | ||||
|           type: 'string', | ||||
|           title: '投诉单号', | ||||
|           title: '投诉单号' | ||||
|         }, | ||||
|         complaintCause: { | ||||
|           title: '投诉原因', | ||||
| @ -109,22 +103,23 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|           ui: { | ||||
|             widget: 'dict-select', | ||||
|             params: { dictKey: 'drvcomplaint:cause' }, | ||||
|             containsAllLabel: true, | ||||
|             containsAllLabel: true | ||||
|           } as SFSelectWidgetSchema | ||||
|         }, | ||||
|         complainantTime: { | ||||
|           type: 'string', | ||||
|            | ||||
|  | ||||
|           title: '投诉时间', | ||||
|           ui: { | ||||
|             widget: 'sl-from-to', type: 'date', format: 'yyyy-MM-dd' } as SFDateWidgetSchema, | ||||
|         }, | ||||
|       }, | ||||
|             widget: 'sl-from-to', | ||||
|             type: 'date', | ||||
|             format: 'yyyy-MM-dd' | ||||
|           } as SFDateWidgetSchema | ||||
|         } | ||||
|       } | ||||
|     }; | ||||
|     this.ui =  | ||||
|     { | ||||
|      '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 8 } }, | ||||
|     | ||||
|     this.ui = { | ||||
|       '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 8 } } | ||||
|     }; | ||||
|   } | ||||
|  | ||||
| @ -150,7 +145,7 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|         title: '投诉时间', | ||||
|         width: '170px', | ||||
|         index: 'complainantTime', | ||||
|         className: 'text-center', | ||||
|         className: 'text-center' | ||||
|       }, | ||||
|       { title: '托运方', index: 'shipperAppUserName', width: '200px', className: 'text-center' }, | ||||
|       { title: '司机', index: 'driverName', width: '120px', className: 'text-center' }, | ||||
| @ -160,8 +155,20 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|       //   width: '170px', | ||||
|       //   render: 'complaintCauseLabel' | ||||
|       // }, | ||||
|       { title: '投诉原因',iif: value => this.selectedMainTabStatus == '1', index: 'shpComplaintCauseLabel', className: 'text-center',width: '170px', }, | ||||
|       { title: '投诉原因',iif: value => this.selectedMainTabStatus == '2', index: 'drvComplaintCauseLabel', className: 'text-center',width: '170px', }, | ||||
|       { | ||||
|         title: '投诉原因', | ||||
|         iif: value => this.selectedMainTabStatus == '1', | ||||
|         index: 'shpComplaintCauseLabel', | ||||
|         className: 'text-center', | ||||
|         width: '170px' | ||||
|       }, | ||||
|       { | ||||
|         title: '投诉原因', | ||||
|         iif: value => this.selectedMainTabStatus == '2', | ||||
|         index: 'drvComplaintCauseLabel', | ||||
|         className: 'text-center', | ||||
|         width: '170px' | ||||
|       }, | ||||
|       { | ||||
|         title: '投诉状态', | ||||
|         className: 'text-center', | ||||
| @ -172,19 +179,19 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|         title: '处理人', | ||||
|         className: 'text-center', | ||||
|         width: '200px', | ||||
|         index:'handlePartyLabel' | ||||
|         index: 'handlePartyLabel' | ||||
|       }, | ||||
|       { | ||||
|         title: '处理时间', | ||||
|         className: 'text-center', | ||||
|         width: '200px', | ||||
|         index:'handleTime' | ||||
|         index: 'handleTime' | ||||
|       }, | ||||
|       { | ||||
|         title: '处理结果', | ||||
|         className: 'text-center', | ||||
|         width: '170px', | ||||
|         index:'handleResult' | ||||
|         index: 'handleResult' | ||||
|       }, | ||||
|       { | ||||
|         title: '投诉方', | ||||
| @ -211,11 +218,11 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|           // }, | ||||
|           { | ||||
|             text: '查看', | ||||
|             click: (_record) => this.view(_record), | ||||
|             acl: { ability: ['ORDER-COMPLAINT-view'] }, | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
|             click: _record => this.view(_record), | ||||
|             acl: { ability: ['ORDER-COMPLAINT-view'] } | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|     ]; | ||||
|   } | ||||
|   initSTAudit() { | ||||
| @ -229,8 +236,8 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|             placeholder: '最多不超过50字', | ||||
|             widget: 'textarea', | ||||
|             autosize: { minRows: 3, maxRows: 6 } | ||||
|           }, | ||||
|         }, | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       required: ['handleResult'] | ||||
|     }; | ||||
| @ -243,20 +250,19 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|     return Object.keys(this.schema?.properties || {}).length; | ||||
|   } | ||||
|   /** | ||||
|   * 伸缩查询条件 | ||||
|   */ | ||||
|    * 伸缩查询条件 | ||||
|    */ | ||||
|   expandToggle(): void { | ||||
|     this._$expand = !this._$expand; | ||||
|     this.sf?.setValue('/_$expand', this._$expand); | ||||
|   } | ||||
|   tabChange(item: any) { | ||||
|   } | ||||
|   tabChange(item: any) {} | ||||
|   /** | ||||
|    * 重置表单 | ||||
|    */ | ||||
|   resetSF(): void { | ||||
|     this.sf.reset(); | ||||
|     this.isLoading = true | ||||
|     this.isLoading = true; | ||||
|   } | ||||
|   selectChange(e: number) { | ||||
|     this.resourceStatus = e; | ||||
| @ -265,29 +271,26 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|       this.st.load(); | ||||
|     }, 500); | ||||
|   } | ||||
|     /** | ||||
|   /** | ||||
|    * 切换投诉与被投诉tab | ||||
|    */ | ||||
|      selectMainTab(e: any) { | ||||
|       this.selectedMainTabStatus = e?.status; | ||||
|       this.resourceStatus = ''; | ||||
|       this.initST(); | ||||
|       this.initSF(); | ||||
|       setTimeout(() => { | ||||
|         this.st.load(1); | ||||
|       }) | ||||
|     } | ||||
|    | ||||
|   selectMainTab(e: any) { | ||||
|     this.selectedMainTabStatus = e?.status; | ||||
|     this.resourceStatus = ''; | ||||
|     this.initST(); | ||||
|     this.initSF(); | ||||
|     setTimeout(() => { | ||||
|       this.st.load(1); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * 导入货源 | ||||
|    */ | ||||
|   importGoodsSource() { | ||||
|   importGoodsSource() {} | ||||
|   audit(item: any) {} | ||||
|  | ||||
|   } | ||||
|   audit(item: any) { | ||||
|   } | ||||
|  | ||||
|  /* | ||||
|   /* | ||||
|   * 审核关闭弹窗 | ||||
|   view: 1 | ||||
|   浮动费用: 0 | ||||
| @ -298,60 +301,60 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|       ...this.sfView.value, | ||||
|       handleStatus: 0, | ||||
|       id: this.channelId | ||||
|     } | ||||
|     this.service.request(this.service.$api_get_dealWithComplaint, paramsa).subscribe((res: any) =>{ | ||||
|       if(res) { | ||||
|         this.service.msgSrv.success('已拒绝!') | ||||
|         this.isVisibleRE = false | ||||
|         this.st.reload(1) | ||||
|       } else{ | ||||
|         this.service.msgSrv.error(res?.msg) | ||||
|     }; | ||||
|     this.service.request(this.service.$api_get_dealWithComplaint, paramsa).subscribe((res: any) => { | ||||
|       if (res) { | ||||
|         this.service.msgSrv.success('已拒绝!'); | ||||
|         this.isVisibleRE = false; | ||||
|         this.st.reload(1); | ||||
|       } else { | ||||
|         this.service.msgSrv.error(res?.msg); | ||||
|       } | ||||
|     }) | ||||
|     this.isVisibleRE = false | ||||
|     }); | ||||
|     this.isVisibleRE = false; | ||||
|   } | ||||
|   Cancel() { | ||||
|     this.isVisibleRE = false | ||||
|     this.isVisibleRE = false; | ||||
|   } | ||||
|   handleCancel2() { | ||||
|     const paramsa = { | ||||
|       id: this.channelId | ||||
|     } | ||||
|     this.service.request(this.service.$api_get_canelComplaint, paramsa).subscribe((res: any) =>{ | ||||
|       if(res) { | ||||
|         this.service.msgSrv.success('已拒绝!') | ||||
|         this.isVisibleRE = false | ||||
|         this.st.reload(1) | ||||
|       } else{ | ||||
|         this.service.msgSrv.error(res?.msg) | ||||
|     }; | ||||
|     this.service.request(this.service.$api_get_canelComplaint, paramsa).subscribe((res: any) => { | ||||
|       if (res) { | ||||
|         this.service.msgSrv.success('已拒绝!'); | ||||
|         this.isVisibleRE = false; | ||||
|         this.st.reload(1); | ||||
|       } else { | ||||
|         this.service.msgSrv.error(res?.msg); | ||||
|       } | ||||
|     }) | ||||
|     this.isVisibleRE = false | ||||
|     }); | ||||
|     this.isVisibleRE = false; | ||||
|   } | ||||
|     /** | ||||
|   * 审核通过按钮 | ||||
|   */ | ||||
|   /** | ||||
|    * 审核通过按钮 | ||||
|    */ | ||||
|   handleOK() { | ||||
|     const paramsa = { | ||||
|       ...this.sfView.value, | ||||
|       handleStatus: 1, | ||||
|       id: this.channelId | ||||
|     } | ||||
|     this.service.request(this.service.$api_get_dealWithComplaint, paramsa).subscribe((res: any) =>{ | ||||
|       if(res) { | ||||
|         this.service.msgSrv.success('已通过!') | ||||
|         this.isVisibleRE = false | ||||
|         this.st.reload(1) | ||||
|       } else{ | ||||
|         this.service.msgSrv.error(res?.msg) | ||||
|     }; | ||||
|     this.service.request(this.service.$api_get_dealWithComplaint, paramsa).subscribe((res: any) => { | ||||
|       if (res) { | ||||
|         this.service.msgSrv.success('已通过!'); | ||||
|         this.isVisibleRE = false; | ||||
|         this.st.reload(1); | ||||
|       } else { | ||||
|         this.service.msgSrv.error(res?.msg); | ||||
|       } | ||||
|     }) | ||||
|     }); | ||||
|   } | ||||
|    /** | ||||
|   *查看评价 | ||||
|   */ | ||||
|   /** | ||||
|    *查看评价 | ||||
|    */ | ||||
|   viewEvaluate(item: any) { | ||||
|     this.isVisibleRE = true | ||||
|     this.isVisibleRE = true; | ||||
|     this.channelId = item.id; | ||||
|   } | ||||
|   view(value: any) { | ||||
| @ -359,6 +362,10 @@ export class OrderManagementComplaintComponent implements OnInit { | ||||
|       queryParams: { | ||||
|         detail: JSON.stringify(value) | ||||
|       } | ||||
|     }) | ||||
|     }); | ||||
|   } | ||||
|   // 导出 | ||||
|   exprot() { | ||||
|     this.service.exportStart({ ...this.reqParams, pageSize: -1 }, this.service.$api_asyncExportComplaintListDrv); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2021-12-03 15:31:52 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-04-09 16:16:09 | ||||
|  * @LastEditTime : 2022-04-11 14:35:08 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -202,6 +202,8 @@ export class OrderManagementService extends ShipperBaseService { | ||||
|   $api_get_asyncExportExamineBillList= `/api/sdc/billExamine/asyncExportExamineBillList`; | ||||
|   //  异步导出单据审核导出 | ||||
|   $api_abnormalWarning_asyncExport= `/api/sdc/abnormalWarning/asyncExport`; | ||||
|   //  异步导出投诉管理导出 | ||||
|   $api_asyncExportComplaintListDrv= `/api/sdc/complaint/operate/asyncExportComplaintListDrv`; | ||||
|   /** | ||||
|    * 根据企业ID,获取企业历史网络货运人 | ||||
|    * @returns | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-02-17 15:01:33 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-02-22 11:17:30 | ||||
|  * @LastEditTime : 2022-04-11 14:50:05 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\new\\new.component.html | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
| --> | ||||
| @ -17,7 +17,7 @@ | ||||
|           <dt>正面照</dt> | ||||
|           <dd>示例</dd> | ||||
|         </dl> | ||||
|         <div class="pa2"> <app-imagelist [imgList]="['./assets/images/company.png']"></app-imagelist></div> | ||||
|         <div class="pa2"> <app-imagelist style="height: 102px;" [imgList]="['./assets/images/company.png']"></app-imagelist></div> | ||||
|       </div> | ||||
|     </ng-template> | ||||
|     <ng-template sf-template="title1" let-me let-ui="ui" let-schema="schema"> | ||||
|  | ||||
| @ -8,6 +8,7 @@ import { | ||||
|   SFComponent, | ||||
|   SFDateWidgetSchema, | ||||
|   SFSchema, | ||||
|   SFStringWidgetSchema, | ||||
|   SFTextareaWidgetSchema, | ||||
|   SFUISchema, | ||||
|   SFUploadWidgetSchema | ||||
| @ -620,10 +621,12 @@ export class NetworkFreightNewComponent implements OnInit { | ||||
|         costRate: { | ||||
|           title: '成本费率', | ||||
|           type: 'string', | ||||
|           addOnAfter: '%', | ||||
|           ui: { | ||||
|           addOnAfter: '%', | ||||
|             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||
|             placeholder: '请输入成本费率' | ||||
|           } | ||||
|            }  | ||||
|         } | ||||
|       }, | ||||
|       required: ['website', 'costRate'] | ||||
|  | ||||
| @ -115,15 +115,17 @@ export class ETCInvoicedListComponent implements OnInit { | ||||
|         shipperId: { | ||||
|           type: 'string', | ||||
|           title: '托运人', | ||||
|           enum: [{ label: '全部', value: '' }], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             serverSearch: true, | ||||
|             searchDebounceTime: 300, | ||||
|             searchLoadingText: '搜索中...', | ||||
|             allowClear: true, | ||||
|             onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }), | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           }, | ||||
|           default: '' | ||||
|           } | ||||
|         }, | ||||
|         enterpriseInfoId: { | ||||
|           type: 'string', | ||||
| @ -147,8 +149,14 @@ export class ETCInvoicedListComponent implements OnInit { | ||||
|     return [ | ||||
|       { title: '运单号', index: 'wayBillCode' }, | ||||
|       { title: '订单号', index: 'billCode' }, | ||||
|       { title: '开票状态', index: 'invoicingStatus', type: 'enum', enum: { '0': '待开票', '1': '开票中', '2': '已开票', '3': '开票失败' } ,width: 120,}, | ||||
|       { title: '订单类型', index: 'billTypeLabel', width: 120,}, | ||||
|       { | ||||
|         title: '开票状态', | ||||
|         index: 'invoicingStatus', | ||||
|         type: 'enum', | ||||
|         enum: { '0': '待开票', '1': '开票中', '2': '已开票', '3': '开票失败' }, | ||||
|         width: 120 | ||||
|       }, | ||||
|       { title: '订单类型', index: 'billTypeLabel', width: 120 }, | ||||
|       { title: '装货地', index: 'loadingPlace' }, | ||||
|       { title: '卸货地', index: 'dischargePlace' }, | ||||
|       { title: '司机信息', render: 'call1No' }, | ||||
| @ -184,8 +192,8 @@ export class ETCInvoicedListComponent implements OnInit { | ||||
|       } | ||||
|     ]; | ||||
|   } | ||||
|      // 导出 | ||||
|      exprot() { | ||||
|       this.service.exportStart({...this.sf?.value, pageSize: -1}, this.service.$api_get_asyncExportEtcApplyRecordList); | ||||
|     } | ||||
|   // 导出 | ||||
|   exprot() { | ||||
|     this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_asyncExportEtcApplyRecordList); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -4,18 +4,17 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-04-06 10:57:56 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-04-11 14:00:47 | ||||
|  * @LastEditTime : 2022-04-11 14:10:13 | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-requested\\etc-invoiced-requested.component.html | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
| --> | ||||
| <page-header-wrapper [title]="'申请记录'"> | ||||
| </page-header-wrapper> | ||||
| <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> | ||||
| <nz-card class="search-box" nzBordered> | ||||
|     <div nz-row nzGutter="8"> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> | ||||
|             <sf #sf [schema]="searchSchema" | ||||
|                 [ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true" | ||||
|                 [ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true" | ||||
|                 [button]="'none'"></sf> | ||||
|         </div> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand" | ||||
|  | ||||
| @ -182,14 +182,17 @@ export class ETCInvoicedRequestedComponent implements OnInit { | ||||
|         shipperId: { | ||||
|           type: 'string', | ||||
|           title: '托运人', | ||||
|           enum: [{ label: '全部', value: '全部' }], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             serverSearch: true, | ||||
|             searchDebounceTime: 300, | ||||
|             searchLoadingText: '搜索中...', | ||||
|             allowClear: true, | ||||
|             onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }), | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|           }, | ||||
|         }, | ||||
|         ltdId: { | ||||
|           type: 'string', | ||||
| @ -213,22 +216,22 @@ export class ETCInvoicedRequestedComponent implements OnInit { | ||||
|     return [ | ||||
|       { title: '', index: 'key', type: 'checkbox', width: '60px' }, | ||||
|       { title: '运单号', index: 'wayBillCode', width: '170px' }, | ||||
|       { title: '订单号', index: 'billCode' , width: '170px' }, | ||||
|       { title: '订单类型', index: 'billTypeLabel' , width: '140px' }, | ||||
|       { title: '装货地', index: 'loadingPlace' , width: '220px' }, | ||||
|       { title: '卸货地', index: 'dischargePlace', width: '220px'  }, | ||||
|       { title: '司机信息', render: 'call1No', width: '140px'  }, | ||||
|       { title: '车辆信息', render: 'call1N2o' , width: '200px' }, | ||||
|       { title: '托运人', index: 'shipperAppUserName' , width: '140px' }, | ||||
|       { title: '网络货运人', index: 'enterpriseInfoName', width: '220px'  }, | ||||
|       { title: '接单时间', index: 'orderReceivingTime', type: 'date', width: '150px'  }, | ||||
|       { title: '装货时间', index: 'shipperAppUserName', type: 'date', width: '150px'  }, | ||||
|       { title: '卸货时间', index: 'unloadingTime', type: 'date', width: '150px'  }, | ||||
|       { title: '签收时间', index: 'submissionTime', type: 'date', width: '150px'  } | ||||
|       { title: '订单号', index: 'billCode', width: '170px' }, | ||||
|       { title: '订单类型', index: 'billTypeLabel', width: '140px' }, | ||||
|       { title: '装货地', index: 'loadingPlace', width: '220px' }, | ||||
|       { title: '卸货地', index: 'dischargePlace', width: '220px' }, | ||||
|       { title: '司机信息', render: 'call1No', width: '140px' }, | ||||
|       { title: '车辆信息', render: 'call1N2o', width: '200px' }, | ||||
|       { title: '托运人', index: 'shipperAppUserName', width: '140px' }, | ||||
|       { title: '网络货运人', index: 'enterpriseInfoName', width: '220px' }, | ||||
|       { title: '接单时间', index: 'orderReceivingTime', type: 'date', width: '150px' }, | ||||
|       { title: '装货时间', index: 'loadingTime', type: 'date', width: '150px' }, | ||||
|       { title: '卸货时间', index: 'unloadingTime', type: 'date', width: '150px' }, | ||||
|       { title: '签收时间', index: 'submissionTime', type: 'date', width: '150px' } | ||||
|     ]; | ||||
|   } | ||||
|     // 导出 | ||||
|     exprot() { | ||||
|       this.service.exportStart({...this.sf?.value, pageSize: -1}, this.service.$api_get_asyncExportEtcApplyList); | ||||
|     } | ||||
|   // 导出 | ||||
|   exprot() { | ||||
|     this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_asyncExportEtcApplyList); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-29 13:12:35 | ||||
|  * @LastEditTime : 2022-04-09 17:08:15 | ||||
|  * @LastEditTime : 2022-04-11 14:11:21 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\ticket-management\\services\\ticket.service.ts | ||||
| @ -145,7 +145,7 @@ export class TicketService extends ShipperBaseService { | ||||
|     super(injector); | ||||
|   } | ||||
|  | ||||
|   reviewPDF(url: string) { | ||||
|   public reviewPDF(url: string) { | ||||
|     if (!url) { | ||||
|       return; | ||||
|     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user