diff --git a/src/app/routes/financial-management/components/payment-order/payment-order.component.html b/src/app/routes/financial-management/components/payment-order/payment-order.component.html index 6c42fe8d..09112197 100644 --- a/src/app/routes/financial-management/components/payment-order/payment-order.component.html +++ b/src/app/routes/financial-management/components/payment-order/payment-order.component.html @@ -8,7 +8,7 @@ [ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true" [button]="'none'"> -
+
diff --git a/src/app/routes/order-management/components/complaint-detail/complaint-detail.component.ts b/src/app/routes/order-management/components/complaint-detail/complaint-detail.component.ts index 7851a2a6..1c0a7051 100644 --- a/src/app/routes/order-management/components/complaint-detail/complaint-detail.component.ts +++ b/src/app/routes/order-management/components/complaint-detail/complaint-detail.component.ts @@ -172,6 +172,10 @@ export class OrderManagementComplaintDetailComponent implements OnInit { 查看评价: 3 */ handleCancel(type: string) { + if(!this.sfView.valid) { + this.service.msgSrv.error('请填写处理结果!') + return + } const paramsa = { ...this.sfView.value, handleStatus: 0, @@ -193,6 +197,10 @@ export class OrderManagementComplaintDetailComponent implements OnInit { this.isVisibleRE = false } handleCancel2() { + if(!this.sfView.valid) { + this.service.msgSrv.error('请填写处理结果!') + return + } const paramsa = { id: this.channelId } @@ -212,6 +220,10 @@ export class OrderManagementComplaintDetailComponent implements OnInit { * 审核通过按钮 */ handleOK() { + if(!this.sfView.valid) { + this.service.msgSrv.error('请填写处理结果!') + return + } const paramsa = { ...this.sfView.value, handleStatus: 1, diff --git a/src/app/routes/order-management/components/complaint/complaint.component.ts b/src/app/routes/order-management/components/complaint/complaint.component.ts index e308c49c..f0df957e 100644 --- a/src/app/routes/order-management/components/complaint/complaint.component.ts +++ b/src/app/routes/order-management/components/complaint/complaint.component.ts @@ -71,15 +71,13 @@ export class OrderManagementComplaintComponent implements OnInit { if(this.selectedMainTabStatus) { a.complaintType = this.selectedMainTabStatus } + console.log( this.sf?.value); + const params: any = Object.assign({}, this.sf?.value || {}); delete params._$expand; return { ...a, ...params, - complainantTime: { - start: this.sf?.value?.complainantTime?.[0] || '', - end: this.sf?.value?.complainantTime?.[1] || '' - } }; } get selectedRows() { @@ -110,19 +108,12 @@ export class OrderManagementComplaintComponent implements OnInit { widget: 'dict-select', params: { dictKey: 'complaint:cause' }, containsAllLabel: true, - visibleIf: { - _$expand: (value: boolean) => value - } } as SFSelectWidgetSchema }, complainantTime: { - title: '投诉时间', type: 'string', - ui: { - widget: 'date', - mode: 'range', - format: 'yyyy-MM-dd', - } as SFDateWidgetSchema, + title: '投诉时间', + ui: { widget: 'sl-from-to', type: 'date', format: 'yyyy-MM-dd' } as SFDateWidgetSchema, }, }, }; @@ -255,7 +246,6 @@ export class OrderManagementComplaintComponent implements OnInit { */ resetSF(): void { this.sf.reset(); - this._$expand = false; } selectChange(e: number) { this.resourceStatus = e; diff --git a/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.html b/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.html index 55175204..34bd3f40 100644 --- a/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.html +++ b/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-12 10:52:50 * @LastEditors : Shiming - * @LastEditTime : 2022-03-23 13:34:31 + * @LastEditTime : 2022-03-24 09:48:40 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\compliance-audit\\compliance-audit.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -87,13 +87,14 @@
{{ item?.payeeName }}/{{ item?.payeePhone }}
-
{{ item.billCode }}
-
- {{ item?.resourceTypeLabel }}{{ item?.serviceTypeLabel }} -
+ {{ item.billCode }} + {{ item.billCode }}
{{ item?.billStatusLabel }}
+
+ {{item?.billTypeLabel}}{{item?.serviceTypeLabel}} +
{{ item?.goodsName }}
diff --git a/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.ts b/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.ts index 0cee8081..f4477ef8 100644 --- a/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.ts +++ b/src/app/routes/order-management/components/compliance-audit/compliance-audit.component.ts @@ -331,6 +331,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit { { title: '所属项目', index: 'enterpriseProjectName', width: '220px', className: 'text-left' }, { title: '关联运单号', index: 'wayBillCode', width: '220px', className: 'text-left' }, { title: '货源编号', index: 'resourceCode', width: '180px', className: 'text-left' }, + { title: '服务类型', index: 'serviceTypeLabel', width: '180px', className: 'text-left' }, { title: '装货地', index: 'loadingAddressArr', width: '180px', className: 'text-left' }, { title: '卸货地', @@ -374,13 +375,13 @@ export class OrderManagementComplianceAuditComponent implements OnInit { title: '审核人', width: '180px', className: 'text-left', - index: 'loadingLadingBillFilePath' + index: 'complianceName' }, { title: '审核时间', width: '180px', className: 'text-left', - index: 'loadingLadingBillFilePath' + index: 'complianceTime' }, { title: '状态', diff --git a/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.html b/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.html index 130bfeff..ff01551d 100644 --- a/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.html +++ b/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-12 10:52:50 * @LastEditors : Shiming - * @LastEditTime : 2022-03-23 20:36:40 + * @LastEditTime : 2022-03-24 09:30:32 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -98,7 +98,9 @@
{{ item?.payeeName }}/{{ item?.payeePhone }}
-
{{ item.billCode }}
+ + {{ item.billCode }} + {{ item.billCode }}
{{item?.billStatusLabel}}
diff --git a/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts b/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts index 8158747b..d198a894 100644 --- a/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts +++ b/src/app/routes/order-management/components/receipts-audit/receipts-audit.component.ts @@ -149,6 +149,13 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { placeholder: '最多100个单号,空号隔开' } }, + wayBillCode: { + type: 'string', + title: '运单号', + ui: { + placeholder: '最多100个运单,空号隔开' + } + }, resourceCode: { type: 'string', title: '货源编号' @@ -162,6 +169,9 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { searchDebounceTime: 300, searchLoadingText: '搜索中...', allowClear: true, + visibleIf: { + _$expand: (value: boolean) => value + }, onSearch: (q: any) => { let str =q.replace(/^\s+|\s+$/g,""); if (str) { @@ -272,19 +282,38 @@ export class OrderManagementReceiptsAuditComponent implements OnInit { } } as SFSelectWidgetSchema }, - settlementBasis: { - title: '装卸凭证', + billStatus: { + title: '运输状态', type: 'string', + default: '', ui: { widget: 'dict-select', + params: { dictKey: 'bill:status' }, containsAllLabel: true, - params: { dictKey: 'goodresource:settlement:type' }, - containAllLable: true, visibleIf: { _$expand: (value: boolean) => value } } as SFSelectWidgetSchema - } + }, + loadingDocuments: { + type: 'string', + title: '装卸货凭证', + enum:[ + {label: '全部',value: ''}, + {label: '无装卸货凭证',value: '1'}, + {label: '装卸货凭证齐全',value: '2'}, + {label: '只有装货凭证',value: '3'}, + {label: '只有卸货凭证',value: '4'}, + ], + ui: { + widget: 'select', + placeholder: '请选择', + allowClear: true, + visibleIf: { + _$expand: (value: boolean) => value + }, + } + }, }, type: 'object' }; diff --git a/src/app/routes/order-management/components/risk-detail/risk-detail.component.html b/src/app/routes/order-management/components/risk-detail/risk-detail.component.html index 5240118d..bfceb298 100644 --- a/src/app/routes/order-management/components/risk-detail/risk-detail.component.html +++ b/src/app/routes/order-management/components/risk-detail/risk-detail.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-16 10:19:08 * @LastEditors : Shiming - * @LastEditTime : 2022-03-23 19:12:19 + * @LastEditTime : 2022-03-24 14:12:14 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk-detail\\risk-detail.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -21,7 +21,7 @@ {{i?.representationsStatusLabel}} - {{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhone ?i?.driverPhone + '/': '' }} {{i?.carId}} + {{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhone ?i?.driverPhone + '/': '' }} {{i?.carNo}} {{i?.carCaptainName ? i?.carCaptainName+ '/' : ''}}{{i?.carCaptainPhone}} {{i?.loadTime}} {{i?.unloadTime}} diff --git a/src/app/routes/order-management/components/risk/risk.component.html b/src/app/routes/order-management/components/risk/risk.component.html index a08cc584..b211966d 100644 --- a/src/app/routes/order-management/components/risk/risk.component.html +++ b/src/app/routes/order-management/components/risk/risk.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2022-01-12 10:52:50 * @LastEditors : Shiming - * @LastEditTime : 2022-03-23 19:45:45 + * @LastEditTime : 2022-03-24 19:53:19 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk\\risk.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -65,7 +65,13 @@ [loading]="false" > - {{ item?.billCode }} + {{ item.billCode }} +
+ {{ item?.representationsStatusLabel }} +
+
+ {{item?.billTypeLabel}}{{item?.billTypeLabel === item?.serviceTypeLabel ? '' : item?.serviceTypeLabel}} +

创建时间:{{ item?.createTime }}

diff --git a/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts b/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts index 78c7517e..845db74c 100644 --- a/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts +++ b/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-30 14:45:39 * @LastEditors : Shiming - * @LastEditTime : 2022-01-18 17:23:11 + * @LastEditTime : 2022-03-24 10:28:48 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -96,7 +96,7 @@ export class VehicleModifyCaptainComponent implements OnInit { console.log(this.bankData); const params = { billIds: this.data?.ids, - carCaptainId: value.id, + carCaptainId: value.appUserId, bankData: this.bankData }; this.service.request(this.service.$api_get_updateCarCaptainBatch, params).subscribe((res: any) => { diff --git a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html index b4a58ddb..04a93740 100644 --- a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html +++ b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-15 13:17:42 * @LastEditors : Shiming - * @LastEditTime : 2022-02-24 10:47:39 + * @LastEditTime : 2022-03-24 19:17:58 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -20,7 +20,7 @@

-  确认已阅读并知晓 《变更协议》 +  确认已阅读并知晓 《变更协议》

diff --git a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts index 82cd03ef..347247e1 100644 --- a/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts +++ b/src/app/routes/order-management/modal/vehicle/update-freight/update-freight.component.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-15 13:17:42 * @LastEditors : Shiming - * @LastEditTime : 2022-02-23 14:25:45 + * @LastEditTime : 2022-03-24 19:17:10 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -30,12 +30,16 @@ export class VehicleUpdateFreightComponent implements OnInit { @Input() data: any; + dataJSON: any; + calculateSub!: Subscription; constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public service: OrderManagementService) {} ngOnInit(): void { console.log(this.data) + this.dataJSON = JSON.stringify(this.data) + console.log(this.dataJSON) this.initSF(this.data); } initSF(data: any) { diff --git a/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html b/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html index 47e81e17..b232905e 100644 --- a/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html +++ b/src/app/routes/partner/account-management/components/account-detail/account-detail.component.html @@ -11,13 +11,13 @@ {{headerTotalInfo?.ltdName}} - {{headerTotalInfo?.allAmount |currency}} + {{headerTotalInfo?.allAmount |currency}} - {{headerTotalInfo?.incomeAmount |currency}} + {{headerTotalInfo?.incomeAmount |currency}} - {{headerTotalInfo?.payAmount |currency}} + {{headerTotalInfo?.payAmount |currency}} diff --git a/src/app/routes/partner/account-management/components/list/list.component.ts b/src/app/routes/partner/account-management/components/list/list.component.ts index 1a12dd8c..3d98844e 100644 --- a/src/app/routes/partner/account-management/components/list/list.component.ts +++ b/src/app/routes/partner/account-management/components/list/list.component.ts @@ -59,7 +59,7 @@ export class PartnerAccountManagementListComponent implements OnInit { */ initST() { this.columns = [ - { title: '合伙人名称', index: 'userName', className: 'text-center', width: 250 }, + { title: '合伙人名称', index: 'name', className: 'text-center', width: 250 }, { title: '手机号', index: 'phone', className: 'text-center', width: 200 }, { title: '账户总额(元)', index: 'allBalance', className: 'text-right', sort: true, width: 150, type: 'currency', diff --git a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html index 0dc738c1..218de752 100644 --- a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html +++ b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.html @@ -8,23 +8,27 @@ - {{summaryObj?.company}} + {{summaryObj?.taxno}} - {{summaryObj?.totalRebate |currency}} + {{(summaryObj?.totalRebate?summaryObj?.totalRebate: 0 )|currency :' + '}} - {{summaryObj?.totalRebate |currency}} + {{(summaryObj?.recordedAmount?summaryObj?.recordedAmount:0 + )|currency:' '}} - {{summaryObj?.taxPersonalSum |currency}} + {{(summaryObj?.taxPersonalSum?summaryObj?.taxPersonalSum:0 + )|currency:' '}} - {{summaryObj?.waitRecordedAmount |currency}} + {{(summaryObj?.waitRecordedAmount?summaryObj?.waitRecordedAmount:0) + |currency:' '}} - {{summaryObj?.name}} + {{summaryObj?.ltdName}} @@ -43,11 +47,11 @@
@@ -55,8 +59,8 @@
- {{detailRecord?.ltdName}} - {{detailRecord?.totalRebate |currency: ' '}} + {{detailRecord?.ltdName}} + {{detailRecord?.totalRebate |currency: ' '}}
diff --git a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts index f6bc1b47..e7420c8c 100644 --- a/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts +++ b/src/app/routes/partner/account-management/components/recorded-detail/recorded-detail.component.ts @@ -19,6 +19,12 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { taxno: '' }; + footerSummary = { + total: 0, + income: 0, + spending: 0 + } + detailRecord: any = {}; url = `/user`; @@ -56,8 +62,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { initSF() { this.schema = { properties: { - - abnormalCause: { + ltdName: { title: '网络货运人', type: 'string', ui: { @@ -78,7 +83,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { { title: '网络货运人', index: 'ltdName', className: 'text-center', width: 200 }, { title: '银行类型', render: 'bankTypeLabel', className: 'text-center', width: 150 }, { title: '虚拟账户', render: 'fictitiousAccount', className: 'text-center', width: 200 }, - { title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 120, type: 'currency' }, + { title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 180, type: 'currency' }, { title: '已入账金额(元)', index: 'recordedAmount', className: 'text-center', width: 180, type: 'currency' }, { title: '代缴个税(元)', index: 'taxPersonalSum', className: 'text-center', width: 180, type: 'currency' }, { title: '待入账金额(元)', index: 'waitRecordedAmount', className: 'text-right', width: 180, type: 'currency' }, @@ -146,7 +151,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { * @param record 当前行 */ viewBookedRecord(record: any) { - window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}&userId=${record?.userId}&userIdLabel=${record?.banktypeLabel}`); + window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}`); } /** @@ -157,6 +162,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { this.billDetailColumns = []; this.showBillDetail = true; this.initBillDetailST(); + this.detailRecord = record; this.getBillDetail(record?.ltdId); } @@ -170,6 +176,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit { handleCancel() { this.showBillDetail = false; + this.detailRecord = {}; } goBack() { diff --git a/src/app/routes/partner/recorded/components/record/record.component.ts b/src/app/routes/partner/recorded/components/record/record.component.ts index d4e0d8de..b6ac77e3 100644 --- a/src/app/routes/partner/recorded/components/record/record.component.ts +++ b/src/app/routes/partner/recorded/components/record/record.component.ts @@ -43,8 +43,6 @@ export class PartnerRecordedRecordComponent implements OnInit { constructor(public service: RecordedService, private nzModalService: NzModalService, private router: Router, public ar: ActivatedRoute, public shipperSrv: ShipperBaseService) { - - this.accountName = this.ar.snapshot.queryParams?.userIdLabel || ''; this.ltdId = this.ar.snapshot.queryParams?.ltdId || ''; } diff --git a/src/app/routes/passport/components/order-agreement/order-agreement.component.ts b/src/app/routes/passport/components/order-agreement/order-agreement.component.ts index 713b32cf..96ac222d 100644 --- a/src/app/routes/passport/components/order-agreement/order-agreement.component.ts +++ b/src/app/routes/passport/components/order-agreement/order-agreement.component.ts @@ -1,3 +1,13 @@ +/* + * @Description : + * @Version : 1.0 + * @Author : Shiming + * @Date : 2022-03-14 14:17:38 + * @LastEditors : Shiming + * @LastEditTime : 2022-03-24 19:19:17 + * @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.ts + * Copyright (C) 2022 huzhenhong. All rights reserved. + */ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Params } from '@angular/router'; import { PassportService } from '../../services/passport.service'; @@ -10,16 +20,31 @@ import { PassportService } from '../../services/passport.service'; export class OrderAgreementComponent implements OnInit { agreementContent: any; type = 2; + data : any; constructor(private ar: ActivatedRoute, private service: PassportService) { ar.queryParams.subscribe((params: Params) => { - this.type = params.type || 2; + console.log(params); + + this.type = params?.type || 2; + this.data = JSON.parse(params?.data) || {}; }); } ngOnInit() { - this.service.request(this.service.$api_get_agreement, { type: this.type }).subscribe(res => { - if (res) { - this.agreementContent = res; - } - }); + console.log(this.type); + if(this.type == 3) { + console.log(this.data); + + this.service.request(this.service.$api_get_getSupplementaryAgreement, { billId: this.data?.billId, billCode: this.data?.billCode }).subscribe(res => { + if (res) { + this.agreementContent = res; + } + }); + } else { + this.service.request(this.service.$api_get_agreement, { type: this.type }).subscribe(res => { + if (res) { + this.agreementContent = res; + } + }); + } } } diff --git a/src/app/routes/passport/services/passport.service.ts b/src/app/routes/passport/services/passport.service.ts index bcd3f5c1..bb23b727 100644 --- a/src/app/routes/passport/services/passport.service.ts +++ b/src/app/routes/passport/services/passport.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-27 21:08:36 * @LastEditors : Shiming - * @LastEditTime : 2022-01-18 17:24:52 + * @LastEditTime : 2022-03-24 09:59:50 * @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\services\\passport.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -17,6 +17,8 @@ import { BaseService } from 'src/app/shared/services/core/base.service'; export class PassportService extends BaseService { // 登录协议,服务订购协议 public $api_get_agreement = `/api/mdc/pbc/agreementInfo/getAgreementInfoByType?_allow_anonymous=true`; + // 查看补充协议 + public $api_get_getSupplementaryAgreement = `/api/sdc/billOperate/getSupplementaryAgreement?_allow_anonymous=true`; // 未登录账号发送验证码 public $getAccountSMVerificationCode = `/api/mdc/cuc/userBasicInfo/forgetPassword/getAccountSMVerificationCode?_allow_anonymous=true`; constructor(public injector: Injector) { diff --git a/src/app/routes/supply-management/components/add-driver/add-driver.component.html b/src/app/routes/supply-management/components/add-driver/add-driver.component.html index 9483e3f5..e7df0e64 100644 --- a/src/app/routes/supply-management/components/add-driver/add-driver.component.html +++ b/src/app/routes/supply-management/components/add-driver/add-driver.component.html @@ -2,55 +2,61 @@ * @Description : * @Version : 1.0 * @Author : Shiming - * @Date : 2021-12-21 10:58:48 + * @Date : 2022-03-14 14:17:38 * @LastEditors : Shiming - * @LastEditTime : 2022-01-18 17:26:52 + * @LastEditTime : 2022-03-24 19:31:03 * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\add-driver\\add-driver.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> - +
- -
-
-
正面照
-
示例
-
-
-
-
- -
-
-
背面照
-
示例
-
-
-
-
+ +
+
+
正面照
+
示例
+
+
+
+
+ +
+
+
背面照
+
示例
+
+
+
+
+
+ + + + + + + + + - - - - + 查看示例 +
+ +
+
+
+ 查看示例 +
+ +
+
-->
+ + \ No newline at end of file diff --git a/src/app/routes/supply-management/components/add-driver/add-driver.component.less b/src/app/routes/supply-management/components/add-driver/add-driver.component.less index 54338ad9..af8ad338 100644 --- a/src/app/routes/supply-management/components/add-driver/add-driver.component.less +++ b/src/app/routes/supply-management/components/add-driver/add-driver.component.less @@ -1,25 +1,57 @@ +.sfBox{ + position: relative; +} .pr { - position: relative; + position: relative; +} + +.pa { + position: absolute; + top: 35px; + left: 150px; + img{border: solid 1px #ebf0fb;} +} + +.tips { + display: flex; + margin-bottom: 0; + color: #333; + + dt { + width: 150px; } - .pa { - position: absolute; - top: 35px; - left: 150px; - } - - .tips { - display: flex; + dd { + width: 190px; margin-bottom: 0; - color: #333; - - dt { - width: 150px; + text-align: center; + } +} +.drivercard{ + position: absolute; + top: 620px; + left: 330px; + border: solid 1px #ebf0fb; +} +.jopcard{ + position: absolute; + top: 1034px; + left: 330px; + border: solid 1px #ebf0fb; +} +:host{ + ::ng-deep { + .ant-input-borderless{ + padding: 0; + padding-top: 4px; + color: black; + resize:none; } - - dd { - width: 190px; - margin-bottom: 0; - text-align: center; + .setCustom .ant-form-item-control{ + margin-left: -100px !important + } + .borderImg{ + border: solid 1px #ebf0fb; } } +} \ No newline at end of file diff --git a/src/app/routes/supply-management/components/add-driver/add-driver.component.ts b/src/app/routes/supply-management/components/add-driver/add-driver.component.ts index 76165473..95552850 100644 --- a/src/app/routes/supply-management/components/add-driver/add-driver.component.ts +++ b/src/app/routes/supply-management/components/add-driver/add-driver.component.ts @@ -4,11 +4,12 @@ import { cacheConf } from '@conf/cache.conf'; import { SFComponent, SFUISchema, SFSchema, SFUploadWidgetSchema, SFDateWidgetSchema } from '@delon/form'; import { _HttpClient } from '@delon/theme'; import { EACacheService, EAEnvironmentService } from '@shared'; +import { AnyRecord } from 'dns'; import { NzModalRef } from 'ng-zorro-antd/modal'; -import { Observable, Observer } from 'rxjs'; +import { NzUploadFile } from 'ng-zorro-antd/upload'; +import { Observable, Observer, of } from 'rxjs'; import { map } from 'rxjs/operators'; import { SupplyManagementService } from '../../services/supply-management.service'; - @Component({ selector: 'app-car-add-driver', templateUrl: './add-driver.component.html', @@ -21,6 +22,8 @@ export class CarAddDriverComponent implements OnInit { record: any = {}; i: any; ui: SFUISchema = {}; + ui2: SFUISchema = {}; + ui3: SFUISchema = {}; schema: SFSchema = {}; schema1: SFSchema = {}; schema2: SFSchema = {}; @@ -32,17 +35,18 @@ export class CarAddDriverComponent implements OnInit { userPracticeSeniorityDTO: {} }; companyData: any = {}; - mobile = ''; + mobile = '' + checked = false constructor( private modal: NzModalRef, public service: SupplyManagementService, private envSrv: EAEnvironmentService, - private eaCacheSrv: EACacheService - ) {} + private eaCacheSrv: EACacheService, + ) { } ngOnInit(): void { - this.companyData = this.eaCacheSrv.get(cacheConf.env); - this.initSF(); + this.companyData = this.eaCacheSrv.get(cacheConf.env) + this.initSF() } initSF() { this.schema = { @@ -51,36 +55,37 @@ export class CarAddDriverComponent implements OnInit { title: '司机信息(必填)', type: 'string', ui: { - widget: 'text' + widget: 'text', }, default: '照片上传后会自动识别文字并填充下列内容栏' }, mobile: { title: '手机号', type: 'string', - format: 'email', maxLength: 11, ui: { - widget: 'text' + widget: '', }, default: this.mobile }, showName: { title: '身份证照片', type: 'string', + readOnly: true, ui: { - widget: 'text', - showRequired: true + widget: 'textarea', + borderless:true, + showRequired: true, }, - default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写' + default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写', }, tipsA: { title: '', type: 'string', ui: { widget: 'custom', - offsetControl: 6 - } + offsetControl: 6, + }, }, certificatePhotoFrontWatermark: { type: 'string', @@ -88,7 +93,7 @@ export class CarAddDriverComponent implements OnInit { ui: { offsetControl: 6, action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -96,18 +101,20 @@ export class CarAddDriverComponent implements OnInit { widget: 'upload', descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', - change: args => { + change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath; + this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0); + } else { + this.detailData.certificatePhotoFront = '' } }, - beforeUpload: (file: any, _fileList) => { + beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { @@ -118,16 +125,17 @@ export class CarAddDriverComponent implements OnInit { observer.next(isLt2M); observer.complete(); }); - } - } as SFUploadWidgetSchema + }, + previewFile: (file: NzUploadFile) => of(file.url), + }, }, tipsB: { title: '', type: 'string', ui: { widget: 'custom', - offsetControl: 6 - } + offsetControl: 6, + }, }, certificatePhotoBackWatermark: { type: 'string', @@ -135,7 +143,7 @@ export class CarAddDriverComponent implements OnInit { ui: { offsetControl: 6, action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -143,18 +151,20 @@ export class CarAddDriverComponent implements OnInit { widget: 'upload', descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', - change: args => { + change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath; + this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0); + } else { + this.detailData.certificatePhotoBack = '' } }, - beforeUpload: (file: any, _fileList) => { + beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { @@ -165,8 +175,8 @@ export class CarAddDriverComponent implements OnInit { observer.next(isLt2M); observer.complete(); }); - } - } as SFUploadWidgetSchema + }, + previewFile: (file: NzUploadFile) => of(file.url),} }, name: { title: '姓名', @@ -174,8 +184,8 @@ export class CarAddDriverComponent implements OnInit { maxLength: 32, ui: { widget: '', - placeholder: '请输入姓名' - } + placeholder: '请输入姓名', + }, }, certificateNumber: { title: '身份证号', @@ -187,12 +197,17 @@ export class CarAddDriverComponent implements OnInit { widget: '', placeholder: '请输入法定代表人证件号', errors: { - required: '请输入18位身份证号码' - } - } - } + required: '请输入18位身份证号码', + }, + }, + }, }, - required: ['certificatePhotoFrontWatermark', 'certificatePhotoBackWatermark', 'name', 'certificateNumber'] + required: [ + 'certificatePhotoFrontWatermark', + 'certificatePhotoBackWatermark', + 'name', + 'certificateNumber' + ], }; this.schema1 = { properties: { @@ -200,7 +215,7 @@ export class CarAddDriverComponent implements OnInit { title: '驾驶证信息(必填)', type: 'string', ui: { - widget: 'text' + widget: 'text', }, default: '照片上传后会自动识别文字并填充下列内容栏' }, @@ -209,7 +224,7 @@ export class CarAddDriverComponent implements OnInit { title: '驾驶证照片', ui: { action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -217,169 +232,80 @@ export class CarAddDriverComponent implements OnInit { widget: 'upload', descriptionI18n: '请上传驾驶证照片,支持JPG、PNG格式,文件小于5M。照片信息缺失、拼凑、过度PS、模糊不清,都不会通过审核。', data: { - appId: this.envSrv.env.appId + appId: this.envSrv.env.appId, }, name: 'multipartFile', multiple: false, listType: 'picture-card', - change: args => { + change: (args: any) => { if (args.type === 'success') { - this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath; + this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath this.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0); + } else { + this.detailData.userDriverLicenseDTO.certificatePhoto = '' } }, - beforeUpload: (file: any, _fileList) => { + beforeUpload: (file: any, _fileList: any) => { return new Observable((observer: Observer) => { - const isLt4M = file.size / 1024 / 1024 < 4; + const isLt4M = file.size / 1024 / 1024 < 5; if (!isLt4M) { - this.service.msgSrv.warning('图片大小超过4M!'); + this.service.msgSrv.warning('图片大小超过5M!'); observer.complete(); return; } observer.next(isLt4M); observer.complete(); }); - } - } as SFUploadWidgetSchema + }, + previewFile: (file: NzUploadFile) => of(file.url),} + }, + roadImg: { + title: '', + type: 'boolean', + // enum: [{ label: '长期', value: true }], + ui: { + widget: 'custom', + } }, licenseNo: { title: '驾驶证号', type: 'string', ui: { - // widget: 'text', - placeholder: '请输入' - } + // widget: 'text', + placeholder: '请输入', + }, // default: this.ar.snapshot.queryParams.licenseNo }, driverModel: { title: '准驾车型', type: 'string', - enum: [ - { label: 'A1', value: 0 }, - { label: 'B1', value: 1 } - ], - ui: { - // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } - }, - validStartTime: { - title: '法人证件有效开始日期', - type: 'string', - ui: { - widget: 'date', - format: 'yyyy-MM-dd', - placeholder: '请选择', - errors: { - required: '请选择起始日期' - }, - change: i => {} - } as SFDateWidgetSchema - }, - validEndTime: { - title: '法人证件有效开始日期', - type: 'string', - ui: { - widget: 'date', - format: 'yyyy-MM-dd', - placeholder: '请选择', - errors: { - required: '请选择起始日期' - }, - change: i => {} - } as SFDateWidgetSchema - }, - signingOrganization: { - title: '签发机关', - type: 'string', - maxLength: 30, - ui: { - // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } - } - }, - required: ['certificatePhotoWatermark', 'licenseNo', 'driverModel', 'validStartTime', 'validEndTime'] - }; - this.schema2 = { - properties: { - titleC: { - title: '从业资格证(选填)', - type: 'string', - ui: { - widget: 'text' - }, - default: '照片上传后会自动识别文字并填充下列内容栏' - }, - certificatePhotoWatermark: { - type: 'string', - title: '', - ui: { - offsetControl: 6, - action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', - limit: 1, - limitFileCount: 1, - resReName: 'data.fullFileWatermarkPath', - urlReName: 'data.fullFileWatermarkPath', - widget: 'upload', - descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', - data: { - appId: this.envSrv.env.appId - }, - name: 'multipartFile', - multiple: false, - listType: 'picture-card', - change: args => { - if (args.type === 'success') { - this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath; - //this.checkIdCard(args.file.response.data.fullFile, 0, 0); - } - }, - beforeUpload: (file: any, _fileList) => { - return new Observable((observer: Observer) => { - const isLt2M = file.size / 1024 / 1024 < 2; - if (!isLt2M) { - this.service.msgSrv.warning('图片大小超过2M!'); - observer.complete(); - return; - } - observer.next(isLt2M); - observer.complete(); - }); - } - } as SFUploadWidgetSchema - }, - licenseNo: { - title: '从业资格证号', - type: 'string', - maxLength: 30, - ui: { - // widget: this.detailData.commitFlag !== 0 ? 'text' : '', - placeholder: '请输入' - } - }, - regionCode: { - title: '签发省份', - type: 'string', ui: { widget: 'select', - placeholder: '请选择', - asyncData: () => this.getProvinceData() - } as SFDateWidgetSchema + mode: 'multiple', + containsAllLabel: false, + placeholder: '请选择准驾车型', + asyncData: () => + this.service.request(this.service.$api_getDictValue, { dictKey: 'driverModel' }).pipe( + map((data: any) => { + return data.map((m: any) => { + return { label: m.label, value: m.label }; + }); + }), + ), + }, }, validStartTime: { - title: '发证日期', + title: '有效期起', type: 'string', ui: { widget: 'date', format: 'yyyy-MM-dd', placeholder: '请选择', errors: { - required: '请选择起始日期' + required: '请选择起始日期', }, - change: i => {} - } as SFDateWidgetSchema + change: (i) => { }, + } as SFDateWidgetSchema, }, validEndTime: { title: '有效期止', @@ -389,67 +315,210 @@ export class CarAddDriverComponent implements OnInit { format: 'yyyy-MM-dd', placeholder: '请选择', errors: { - required: '请选择起始日期' + required: '请选择终止日期', }, - change: i => {} - } as SFDateWidgetSchema - } + change: (i) => { }, + } as SFDateWidgetSchema, + }, + signingOrganization: { + title: '签发机关', + type: 'string', + maxLength: 30, + ui: { + // widget: this.detailData.commitFlag !== 0 ? 'text' : '', + placeholder: '请输入', + }, + }, }, - required: [] + required: [ + 'certificatePhotoWatermark', + 'licenseNo', + 'driverModel', + 'validStartTime', + 'validEndTime', + ], + }; + this.schema2 = { + properties: { + titleC: { + title: '从业资格证(选填)', + type: 'string', + ui: { + widget: 'text', + }, + default: '照片上传后会自动识别文字并填充下列内容栏', + }, + certificatePhotoWatermark: { + type: 'string', + title: '', + ui: { + offsetControl: 6, + action: apiConf.fileUpload, + accept: 'image/png,image/jpeg,image/jpg,image/gif', + limit: 1, + limitFileCount: 1, + resReName: 'data.fullFileWatermarkPath', + urlReName: 'data.fullFileWatermarkPath', + widget: 'upload', + descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M', + data: { + appId: this.envSrv.env.appId, + }, + name: 'multipartFile', + multiple: false, + listType: 'picture-card', + change: (args: any) => { + if (args.type === 'success') { + this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath + this.checkQualificationCertificate(args.file.response.data.fullFilePath); + } else{ + this.detailData.userPracticeSeniorityDTO.certificatePhoto = '' + } + }, + beforeUpload: (file: any, _fileList: any) => { + return new Observable((observer: Observer) => { + const isLt2M = file.size / 1024 / 1024 < 5; + if (!isLt2M) { + this.service.msgSrv.warning('图片大小超过5M!'); + observer.complete(); + return; + } + observer.next(isLt2M); + observer.complete(); + }); + }, + previewFile: (file: NzUploadFile) => of(file.url),} + }, + agreeImg: { + title: '', + type: 'boolean', + // enum: [{ label: '长期', value: true }], + ui: { + widget: 'custom', + } + }, + licenseNo: { + title: '从业资格证号', + type: 'string', + maxLength: 30, + ui: { + // widget: this.detailData.commitFlag !== 0 ? 'text' : '', + placeholder: '请输入', + }, + }, + regionCode: { + title: '签发省份', + type: 'string', + ui: { + widget: 'select', + placeholder: '请选择', + asyncData: () => this.getProvinceData(), + } as SFDateWidgetSchema, + }, + validStartTime: { + title: '发证日期', + type: 'string', + ui: { + widget: 'date', + format: 'yyyy-MM-dd', + placeholder: '请选择', + errors: { + required: '请选择起始日期', + }, + change: (i) => { }, + } as SFDateWidgetSchema, + }, + validEndTime: { + title: '有效期止', + type: 'string', + ui: { + widget: 'date', + format: 'yyyy-MM-dd', + placeholder: '请选择', + errors: { + required: '请选择终止日期', + }, + change: (i) => { }, + } as SFDateWidgetSchema, + }, + }, + required: [ + + ], }; this.ui = { '*': { spanLabelFixed: 180, grid: { span: 24 }, - width: 700 + width: 700, }, - $title1: { - spanLabelFixed: 0 - }, - $title2: { - spanLabelFixed: 0 - }, - $title3: { - spanLabelFixed: 0 - }, - $title4: { - spanLabelFixed: 0 - }, - $enterpriseRegistrationTime: { - width: 680 - }, - $operatingEndTime: { - grid: { span: 9 } - }, - $dateType: { - grid: { span: 4 } - }, - $validEndTime: { - grid: { span: 9 } - }, - $dateType01: { - grid: { span: 4 } - }, - $registrationCapital: { - grid: { span: 12 } - }, - $unit: { - spanLabelFixed: 20, - grid: { span: 3 } - } }; + this.ui2 = { + '*': { + spanLabelFixed: 180, + grid: { span: 18 }, + width: 600, + }, + $titleB:{ + grid: { span: 24 }, + }, + $certificatePhotoWatermark: { + grid: { span: 12 }, + }, + $roadImg: { + grid: { span: 4 }, + class: 'setCustom' + }, + }; + this.ui3 = { + '*': { + spanLabelFixed: 180, + grid: { span: 18 }, + width: 600, + }, + $titleC:{ + grid: { span: 24 }, + }, + $certificatePhotoWatermark: { + grid: { span: 12 }, + }, + $agreeImg: { + grid: { span: 4 }, + class: 'setCustom' + }, + }; + } + checkQualificationCertificate(imgurl: any) { + // 识别从业资格证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证 + const params = { + qualificationCertificateUrl: imgurl, + }; + this.service.request(this.service.$api_recognizeQualificationCertificate, params).subscribe((res: any) => { + if (res) { + this.sf2.setValue('/licenseNo', res.certificateNumber); + this.sf2.setValue('/regionCode', res.addressRegionCodes[0]); + res.qualificationCategoryList.forEach((item: any) => { + console.log(item.category.indexOf('道路货物运输驾驶员') !== -1) + if (item.category.indexOf('道路货物运输驾驶员') !== -1) { + this.sf2.setValue('/validStartTime', item.initialIssueDate.split(' ')[0]); + this.sf2.setValue('/validEndTime', item.expiryDate.split(' ')[0]); + } + }) + + } + }); } getProvinceData() { return this.service.request(this.service.$api_getRegionByCode, { regionCode: '' }).pipe( map((res: any) => { - const result: any = []; + const result: any = [] if (res) { res.map((m: any) => { - const item = { label: m.name, value: m.regionCode }; - result.push(item); + const item = { label: m.name, value: m.regionCode } + result.push(item) }); } - return result; + return result }) ); } @@ -457,9 +526,9 @@ export class CarAddDriverComponent implements OnInit { // 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证 const params = { idCardUrl: imgurl, - side + side, }; - this.service.request(this.service.$api_checkIdCard, params).subscribe((res: any) => { + this.service.request(this.service.$api_checkIdCard, params).subscribe((res: any)=> { if (res) { if (type === 0) { // 法定代表人身份证 @@ -476,7 +545,7 @@ export class CarAddDriverComponent implements OnInit { // 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证 const params = { driverLicenseUrl: imgurl, - side + side, }; this.service.request(this.service.$api_recognizeDriverLicense, params).subscribe((res: any) => { if (res) { @@ -485,7 +554,7 @@ export class CarAddDriverComponent implements OnInit { if (side === 'front') { // 正面 this.sf1.setValue('/licenseNo', res.number); - this.sf1.setValue('/driverModel', res.number); + this.sf1.setValue('/driverModel', [(res.classType).toUpperCase()]); this.sf1.setValue('/validStartTime', res.validFrom); this.sf1.setValue('/validEndTime', res.validTo); this.sf1.setValue('/signingOrganization', res.issuingAuthority); @@ -497,59 +566,51 @@ export class CarAddDriverComponent implements OnInit { close(): void { this.modal.destroy(); } - showExample() { - this.showCardFlag = !this.showCardFlag; + showExample(){ + this.showCardFlag = !this.showCardFlag } - showJopExample() { - this.showJopFlag = !this.showJopFlag; + showJopExample(){ + this.showJopFlag = !this.showJopFlag } - submitForm() { - const params: any = { - enterpriseId: this.companyData.enterpriseId, - enterpriseProjectId: this.companyData.projectId, + submitForm(){ + const params:any = { source: 1, - mobile: this.mobile, - identityInfoDTO: { + mobile: this.sf.value.mobile, + identityInfoDTO:{ ...this.sf.value, certificatePhotoFront: this.detailData.certificatePhotoFront, - certificatePhotoBack: this.detailData.certificatePhotoBack + certificatePhotoBack: this.detailData.certificatePhotoBack, }, userDriverLicenseDTO: { ...this.sf1.value, - certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto + certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto, }, userPracticeSeniorityDTO: { ...this.sf2.value, - certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto - } + certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto, + }, }; - Object.assign(params, { - identityInfoDTO: { - certificatePhotoFrontWatermark: this.sf?.value.certificatePhotoFrontWatermark, - certificatePhotoBackWatermark: this.sf?.value.certificatePhotoBackWatermark - }, - userDriverLicenseDTO: { - certificatePhotoWatermark: this.sf?.value.certificatePhotoWatermark - }, - userPracticeSeniorityDTO: { - certificatePhotoWatermark: this.sf?.value.certificatePhotoWatermark - } - }); - // params.identityInfoDTO.certificatePhotoFrontWatermark = this.sf?.value.certificatePhotoFrontWatermark; - // params.identityInfoDTO.certificatePhotoBackWatermark = this.sf?.value.certificatePhotoBackWatermark; - // params.userDriverLicenseDTO.certificatePhotoWatermark = this.sf1?.value.certificatePhotoWatermark; - // params.userPracticeSeniorityDTO.certificatePhotoWatermark = this.sf2?.value.certificatePhotoWatermark; + if(params.userPracticeSeniorityDTO.certificatePhoto === '' || params.userPracticeSeniorityDTO.certificatePhotoWatermark === '') { + delete params.userPracticeSeniorityDTO.certificatePhotoWatermark + delete params.userPracticeSeniorityDTO.certificatePhoto + } + params.userDriverLicenseDTO.driverModel = params.userDriverLicenseDTO.driverModel.join(',') + delete params.identityInfoDTO.showName; delete params.identityInfoDTO.titleA; - delete params.identityInfoDTO.titleB; - delete params.identityInfoDTO.titleC; + delete params.userDriverLicenseDTO.titleB; + delete params.userPracticeSeniorityDTO.titleC; delete params.userDriverLicenseDTO.tipsA; delete params.userPracticeSeniorityDTO.tipsC; - delete params.showName; + if(JSON.stringify(params.userPracticeSeniorityDTO) === '{}') { + params.userPracticeSeniorityDTO = null + } + this.checked = true this.service.request(this.service.$api_enterpriseVehicleSave, params).subscribe((res: any) => { - if (res) { - this.service.msgSrv.success('添加成功'); - this.modal.close(true); + this.checked = false + if(res){ + this.service.msgSrv.success('添加成功') + this.modal.close(true) } - }); + }) } } diff --git a/src/app/routes/supply-management/components/vehicle/vehicle.component.ts b/src/app/routes/supply-management/components/vehicle/vehicle.component.ts index 7b9fd221..5c214c6f 100644 --- a/src/app/routes/supply-management/components/vehicle/vehicle.component.ts +++ b/src/app/routes/supply-management/components/vehicle/vehicle.component.ts @@ -147,11 +147,54 @@ export class SupplyManagementVehicleComponent implements OnInit { this.st.load(1); }, 500); } - /** * 导入货源 */ - importGoodsSource() { } + importGoodsSource() { + const modalRef = this.modal.create({ + nzTitle: '货源导入', + nzWidth: 600, + nzContent: SupplyManagementImportSupplyComponent, + nzComponentParams: { + // i: item + }, + nzFooter: null + }); + modalRef.afterClose.subscribe(result => { + if (result) { + const tipsModal = this.modal.create({ + nzTitle: '上传提示', + nzWidth: 600, + nzContent: `
文件上传完成!成功${result?.successNumber}条,失败${result?.failNumber}条!
`, + nzFooter: [ + { + label: '取 消', + type: 'default', + onClick: () => { + tipsModal.destroy(); + } + }, + { + label: '下载失败数据', + type: 'primary', + onClick: () => { + if(!result?.failNumber) { + this.service.msgSrv.error('没有失败数据!'); + return; + } + this.service.request(this.service.$api_getFailUploadGoodsOperateResource, result.ids).subscribe((res: any) => { + if(res) { + console.log(res); + } + }) + console.log(111); + } + }, + ] + }) + } + }); + } /** * 修改运费 diff --git a/src/app/routes/supply-management/services/supply-management.service.ts b/src/app/routes/supply-management/services/supply-management.service.ts index 1a69f9cd..1d30559b 100644 --- a/src/app/routes/supply-management/services/supply-management.service.ts +++ b/src/app/routes/supply-management/services/supply-management.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-03 11:10:14 * @LastEditors : Shiming - * @LastEditTime : 2022-03-07 13:54:46 + * @LastEditTime : 2022-03-24 19:35:52 * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\services\\supply-management.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -119,6 +119,8 @@ export class SupplyManagementService extends BaseService { public $api_getContractContent = '/api/sdc/contractTemplate/getContractContent'; // 获取运价 public $api_getFreight = '/api/mdc/cuc/freightConfig/getFreight'; + // 从业资格证 + $api_recognizeQualificationCertificate = '/api/mdc/pbc/hwc/ocr/recognizeQualificationCertificate'; /** * 获取车型、车长字典数据 * @returns diff --git a/src/app/routes/sys-setting/components/network-freight/network-freight.component.html b/src/app/routes/sys-setting/components/network-freight/network-freight.component.html index 278aea3f..dc1c1f86 100644 --- a/src/app/routes/sys-setting/components/network-freight/network-freight.component.html +++ b/src/app/routes/sys-setting/components/network-freight/network-freight.component.html @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-24 15:54:08 * @LastEditors : Shiming - * @LastEditTime : 2022-02-17 19:58:06 + * @LastEditTime : 2022-03-24 11:10:44 * @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\network-freight.component.html * Copyright (C) 2022 huzhenhong. All rights reserved. --> @@ -96,7 +96,7 @@ - + @@ -117,9 +117,11 @@
- + + +
diff --git a/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts b/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts index c9a89f61..5456947b 100644 --- a/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts +++ b/src/app/routes/sys-setting/components/network-freight/network-freight.component.ts @@ -1,10 +1,11 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { STComponent, STColumn, STChange } from '@delon/abc/st'; -import { SFCascaderWidgetSchema, SFComponent, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; +import { SFCascaderWidgetSchema, SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { DynamicSettingModalComponent, SinglepageSettingModalComponent } from '@shared'; import { NzModalService } from 'ng-zorro-antd/modal'; -import { takeLast } from 'rxjs/operators'; +import { of } from 'rxjs'; +import { map, takeLast } from 'rxjs/operators'; import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component'; import { SystemService } from '../../services/system.service'; @@ -20,26 +21,33 @@ export class NetworkFreightComponent implements OnInit { @ViewChild('sfFre', { static: false }) sfFre!: SFComponent; @ViewChild('sfTicket', { static: false }) sfTicket!: SFComponent; @ViewChild('sfTax', { static: false }) sfTax!: SFComponent; + @ViewChild('sfNC', { static: false }) sfNC!: SFComponent; ui: SFUISchema = {}; ui2: SFUISchema = {}; ui3: SFUISchema = {}; ui4: SFUISchema = {}; + ui5: SFUISchema = {}; schema: SFSchema = {}; addSchema: SFSchema = {}; ticketSchema: SFSchema = {}; TaxSchema: SFSchema = {}; - _$expand = false; - taxStatus = false; + NCSchema: SFSchema = {}; + _$expand :boolean= false; + taxStatus :boolean= false; + TicketStatus :boolean= true; + NCStatus :boolean = false; formData: any; ticketId: any; ticketItem: any; formDataTicket: any; + formDataNC: any; formDataTax: any; + NCID: string = ''; isVisible = false; isVisibleTicket = false; edit = false; editId = false; - tabs: any[] = [{ name: '开票设置' }, { name: '税务设置' }]; + tabs: any[] = [{ name: '开票设置' }, { name: '税务设置' }, { name: 'NC设置' }]; columns: STColumn[] = [ { @@ -350,6 +358,42 @@ export class NetworkFreightComponent implements OnInit { }; this.ui4 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } }; } + initSFNC() { + this.NCSchema = { + properties: { + crmCustomerId: { + type: 'string', + title: 'CRM客户编码', + ui: { + widget: 'select', + serverSearch: true, + searchDebounceTime: 300, + searchLoadingText: '搜索中...', + visibleIf: { + _$expand: (value: boolean) => value + }, + allowClear: true, + onSearch: (q: any) => { + let str = q.replace(/^\s+|\s+$/g, ''); + if (str) { + console.log(str); + + return this.service + .request(this.service.$api_get_crmCustomer_page, { customerName: str }) + .pipe(map((res: any) => (res.records as any[]).map(i => ({ label: i.customerName, value: i.id } as SFSchemaEnum)))) + .toPromise(); + } else { + return of([]); + } + } + } as SFSelectWidgetSchema + }, + }, + required: ['crmCustomerId'] + }; + this.ui5 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } }; + + } initSFFre() { this.addSchema = { properties: { @@ -397,36 +441,62 @@ export class NetworkFreightComponent implements OnInit { // 财务设置 ticket(value: any) { this.formDataTicket = []; + this.formDataNC = []; this.formDataTax = []; this.ticketItem = value; + this.taxStatus = false + this.TicketStatus = true + this.NCStatus = false this.initSFTax(); + this.initSFNC(); this.initSFTicket(); - this.service.request(this.service.$api_getTicketByNetworkTransporterId, { id: value.id }).subscribe((res: any) => { + this.NCID = value.id; + if(this.TicketStatus) { + console.log('9999999'); + + this.service.request(this.service.$api_getTicketByNetworkTransporterId, { id: value.id }).subscribe((res: any) => { + console.log(res); + if (res) { + let List = { + ...res + }; + delete List.senderRegionCode; + (List.senderRegionCode = this.getProvinceData(res?.senderRegionCode)), (this.formDataTicket = List); + this.ticketId = res.id; + } + }); + } + if(this.NCStatus) { + this.getNcSetData() + } + this.isVisibleTicket = true; + } + getNcSetData() { + const List: any = []; + console.log(99999); + this.service.request(this.service.$api_get_crmCustomer, { id: this.ticketItem.crmCustomerId }).subscribe((res: any) => { console.log(res); if (res) { - let List = { - ...res - }; - delete List.senderRegionCode; - (List.senderRegionCode = this.getProvinceData(res?.senderRegionCode)), (this.formDataTicket = List); - this.ticketId = res.id; + List.push({ label: res.customerName, value: res.id }); + console.log(List); + + this.sfNC.getProperty('/crmCustomerId')!.schema.enum = List; + this.sfNC.getProperty('/crmCustomerId')!.widget.reset(List); + this.sfNC.setValue('/crmCustomerId', res?.id); } }); - this.isVisibleTicket = true; } getProvinceData(value: any) { this.service.http.post(this.service.$api_getRegionDetailByCode, { regionCode: value }).subscribe(res => { - console.log(res.data); - console.log(this.formDataTicket); let enterpriseAddressCode: any = []; let regioin = res?.data?.regionFullCodes.split(','); - console.log(regioin); regioin?.forEach((element: any) => { enterpriseAddressCode.push(Number(element)); }); - console.log(enterpriseAddressCode); - this.sfTicket.setValue('/senderRegionCode', enterpriseAddressCode); - return enterpriseAddressCode; + if(this.TicketStatus) { + this.sfTicket.setValue('/senderRegionCode', enterpriseAddressCode); + return enterpriseAddressCode; + } }); } deleteAction(item?: any) { @@ -517,27 +587,56 @@ export class NetworkFreightComponent implements OnInit { this.isVisibleTicket = false; } handleOKTicket() { - console.log(this.sfTicket.valid); - console.log(this.sfTicket.value); - if (!this.sfTicket.valid) { - this.service.msgSrv.warning('请正确填写完整!'); - return; - } - const params = { - ...this.sfTicket.value - }; - if (this.ticketId) { - params.id = this.ticketId; - } - params.senderRegionCode = this.sfTicket.value.senderRegionCode[2]; - console.log(params); - this.service.request(this.service.$api_networkTransporterTicket_save, params).subscribe((res: any) => { - if (res) { - this.service.msgSrv.success('保存成功!'); - this.isVisibleTicket = false; - this.st.reload(1); + console.log( this.taxStatus, this.TicketStatus,this.NCStatus); + if(this.TicketStatus) { + console.log(this.sfTicket); + console.log(this.sfTicket.value); + + if (!this.sfTicket.valid) { + this.service.msgSrv.warning('请正确填写完整!'); + return; } - }); + const params = { + ...this.sfTicket.value + }; + if (this.ticketId) { + params.id = this.ticketId; + } + params.senderRegionCode = this.sfTicket.value.senderRegionCode[2]; + console.log(params); + this.service.request(this.service.$api_networkTransporterTicket_save, params).subscribe((res: any) => { + if (res) { + this.service.msgSrv.success('保存成功!'); + this.isVisibleTicket = false; + this.st.reload(1); + } + }); + } else if(this.NCStatus){ + console.log(this.sfNC); + console.log(this.formDataNC); + console.log(this.sfNC?.value); + + if (!this.sfNC.valid) { + this.service.msgSrv.warning('请正确填写完整!'); + return; + } + const params = { + ...this.sfNC.value + }; + if (this.NCID) { + params.id = this.NCID; + } + console.log(params); + this.service.request(this.service.$api_setCrmCustomer, params).subscribe((res: any) => { + if (res) { + this.service.msgSrv.success('保存成功!'); + this.isVisibleTicket = false; + this.st.reload(1); + } + }); + // api_setCrmCustomer + } + } handleOK() { @@ -571,10 +670,18 @@ export class NetworkFreightComponent implements OnInit { return this.service.request(this.service.$api_get_region_by_code, { regionCode }); } changeType(value: any) { - console.log(value); if (value.name === '税务设置') { this.taxStatus = true; - } else { + this.TicketStatus = false; + this.NCStatus = false; + } else if (value.name === '开票设置'){ + this.TicketStatus = true; + this.NCStatus = false; + this.taxStatus = false; + } else if (value.name === 'NC设置'){ + this.getNcSetData() + this.NCStatus = true; + this.TicketStatus = false; this.taxStatus = false; } } diff --git a/src/app/routes/sys-setting/services/system.service.ts b/src/app/routes/sys-setting/services/system.service.ts index ce4b3cfe..0a698775 100644 --- a/src/app/routes/sys-setting/services/system.service.ts +++ b/src/app/routes/sys-setting/services/system.service.ts @@ -173,6 +173,8 @@ export class SystemService extends BaseService { $api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard'; // 获取字典 $api_getDictValue = '/api/mdc/pbc/dictItems/getDictValue'; + // 设置crm客户 + $api_setCrmCustomer = '/api/mdc/cuc/networkTransporter/setCrmCustomer'; // 获取一、二、三级地区详情 $api_getRegionToThree = '/api/mdc/pbc/region/getRegionToThree'; $api_getRoleTemplateInfo: string = ''; diff --git a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html index 19420a9d..c2b8daca 100644 --- a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html +++ b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.html @@ -45,12 +45,11 @@ - + {{ item.vatinvcode }}
- +
@@ -58,6 +57,28 @@
+ +

公司名: {{openInfo?.artoname}}

+

税号: {{openInfo?.artotaxno}}

+

注册地址: {{openInfo?.artoadd}}

+

注册电话: {{openInfo?.artotel}}

+

开户行: {{openInfo?.artobank}}

+
+ + {{openInfo?.vatname}} + + + {{openInfo?.vatremarks}} + + + {{openInfo?.otherremarks}} + + + {{openInfo?.isdetail?'需要':'不需要'}} + + + {{openInfo?.vatnotax | currency}} + @@ -65,6 +86,9 @@ + + +
\ No newline at end of file diff --git a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts index 7bd939b9..e2e9009e 100644 --- a/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts +++ b/src/app/routes/ticket-management/components/cancellation-invoice/cancellation-invoice.component.ts @@ -29,10 +29,10 @@ export class CancellationInvoiceComponent implements OnInit { selectedRows: any[] = []; totalCallNo = 0; - openInfo: any = { invoicedate: null, invoiceno: null }; - constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) { } + openInfo: any = { invoicedate: null, invoiceno: null, invoiceno2: null }; + constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} - ngOnInit(): void { } + ngOnInit(): void {} beforeReq = (requestOptions: STRequestOptions) => { if (this.sf) { @@ -78,34 +78,41 @@ export class CancellationInvoiceComponent implements OnInit { * @param item */ requestedAction(item: any) { - this.openInfo = { invoicedate: null, invoiceno: null }; - const modal = this.nzModalService.create({ - nzTitle: '发票确认', - nzContent: this.requestedModal, - nzOnOk: () => { - if (!this.openInfo?.invoicedate || !this.openInfo?.invoiceno) { - this.service.msgSrv.warning('请填开票信息'); - return false; - } - const params = { - invoiceno: this.openInfo.invoiceno, - invoicedate: dateTimePickerUtil.format(this.openInfo.invoicedate) - }; - this.service - .request(this.service.$api_apply_fico_invoic, { - id: item.id, - vatinvcode: item.vatinvcode, - ...params - }) - .subscribe(res => { - if (res) { - this.service.msgSrv.success('开票成功'); - this.st.load(1); - modal.destroy(); + this.openInfo = { invoicedate: null, invoiceno: null, invoiceno2: null }; + this.service.request(this.service.$api_get_apply_fico_info, { id: item.vatappHId }).subscribe(info => { + if (info) { + console.log(info); + Object.assign(this.openInfo, { ...info }); + const modal = this.nzModalService.create({ + nzTitle: '发票确认', + nzContent: this.requestedModal, + nzOnOk: () => { + if (!this.openInfo?.invoicedate || !this.openInfo?.invoiceno) { + this.service.msgSrv.warning('请填开票信息'); + return false; } - }); + const params = { + invoiceno: this.openInfo.invoiceno, + invoicedate: dateTimePickerUtil.format(this.openInfo.invoicedate), + invoiceno2: this.openInfo.invoiceno2 + }; + this.service + .request(this.service.$api_apply_fico_invoic, { + id: item.id, + vatinvcode: item.vatinvcode, + ...params + }) + .subscribe(res => { + if (res) { + this.service.msgSrv.success('开票成功'); + this.st.load(1); + modal.destroy(); + } + }); - return false; + return false; + } + }); } }); } @@ -154,7 +161,7 @@ export class CancellationInvoiceComponent implements OnInit { this.nzModalService.warning({ nzTitle: '确定将所选待确认开票申请撤回?', nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果', - nzOnOk: () => { } + nzOnOk: () => {} }); } @@ -170,7 +177,7 @@ export class CancellationInvoiceComponent implements OnInit { this.nzModalService.warning({ nzTitle: '确定将所选待确认开票申请撤回?', nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果', - nzOnOk: () => { } + nzOnOk: () => {} }); } @@ -369,22 +376,22 @@ export class CancellationInvoiceComponent implements OnInit { buttons: [ { type: 'divider' }, { - text: '查看明细', + text: '查看明细
', click: item => this.router.navigate(['ticket/cancellation-invoice/detail/' + item.id], { queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId } }) }, { - text: '手工开票', + text: '手工开票
', iif: item => item.sts != '3', click: item => this.requestedAction(item) }, { - text: '推送开票', + text: '推送开票
', iif: item => item.sts === '1', click: item => this.pushInvoiceAction(item) - }, + } // { // text: '作废发票', // iif: item => item.sts === '3', diff --git a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html index 091af5f8..3790504f 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html +++ b/src/app/routes/ticket-management/components/invoice-requested/invoice-requested.component.html @@ -45,7 +45,7 @@ {{ totalCallNo }} 清空 - + diff --git a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html index acde105a..9fa49838 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html +++ b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.html @@ -32,5 +32,5 @@ diff --git a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts index 802103d3..ed1d8ae9 100644 --- a/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts +++ b/src/app/routes/ticket-management/components/invoice-requested/requested-invoice-modal/requested-invoice-modal.component.ts @@ -7,6 +7,7 @@ * @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\requested-invoice-modal\\requested-invoice-modal.component.ts */ import { Component, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; @@ -23,7 +24,7 @@ export class RequestedInvoiceModalComponent { columns: STColumn[] = this.initST(); id: any; selectedRows: any[] = []; - constructor(public service: TicketService, private nzModalService: NzModalService, private modal: NzModalRef) {} + constructor(public service: TicketService, private nzModalService: NzModalService, private modal: NzModalRef, private router: Router) {} beforeReq = (requestOptions: STRequestOptions) => { Object.assign(requestOptions.body, { vatappHId: this.id }); @@ -127,8 +128,17 @@ export class RequestedInvoiceModalComponent { }; this.service.request(this.service.$api_get_applyFicoVatinv, params).subscribe((res: any) => { if (res) { - this.service.msgSrv.success('开票成功'); - this.modal.destroy(true); + this.nzModalService.confirm({ + nzTitle: '是否进入销票处理页面完成开票', + nzOnOk: () => { + this.service.msgSrv.success('开票成功'); + this.modal.destroy(true); + this.router.navigate(['/ticket/cancellation-invoice']); + }, + nzOnCancel: () => { + this.modal.destroy(true); + } + }); } }); } diff --git a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html index 48255eee..5da0014c 100644 --- a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html +++ b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.html @@ -59,4 +59,17 @@ 已签收

+ + + +
+
+ + + + + + +
+
\ No newline at end of file diff --git a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts index 0662aa43..5144df47 100644 --- a/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts +++ b/src/app/routes/ticket-management/components/invoiced-list/invoiced-list.component.ts @@ -30,6 +30,10 @@ export class InvoicedListComponent implements OnInit { mailNo: '', routes: [] }; + + @ViewChild('requestedModal', { static: false }) + requestedModal!: any; + openInfo: any = { expresscompany: null, expressno: null }; constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} ngOnInit(): void {} @@ -77,6 +81,42 @@ export class InvoicedListComponent implements OnInit { }); } + /** + * 填写物流/修改物流 + * @param item + */ + requestedAction(item: any) { + this.openInfo = { expresscompany: item.expresscompany || null, expressno: item.expressno || null }; + const modal = this.nzModalService.create({ + nzTitle: item.expresscompany ? '修改物流' : '填写物流', + nzContent: this.requestedModal, + nzOnOk: () => { + if (!this.openInfo?.expresscompany || !this.openInfo?.expressno) { + this.service.msgSrv.warning('请填快递信息'); + return false; + } + const params = { + expresscompany: this.openInfo.expresscompany, + expressno: this.openInfo.expressno + }; + this.service + .request(this.service.$api_update_Express, { + id: item.id, + ...params + }) + .subscribe(res => { + if (res) { + this.service.msgSrv.success(item.expresscompany ? '修改成功' : '填写成功'); + this.st.load(1); + modal.destroy(); + } + }); + + return false; + } + }); + } + invoiceHongChong() { if (this.selectedRows?.length <= 0) { this.service.msgSrv.warning('请选择发票'); @@ -137,6 +177,13 @@ export class InvoicedListComponent implements OnInit { autocomplete: 'off' } }, + invoiceno2: { + type: 'string', + title: '发票代码', + ui: { + autocomplete: 'off' + } + }, vatappHCode: { type: 'string', title: '申请编号', @@ -151,7 +198,10 @@ export class InvoicedListComponent implements OnInit { widget: 'sl-from-to-search', format: 'yyyy-MM-dd', placeholder: '请选择', - nzShowTime: true + nzShowTime: true, + visibleIf: { + expand: (value: boolean) => value + } } as SFDateWidgetSchema }, artoname: { @@ -196,6 +246,7 @@ export class InvoicedListComponent implements OnInit { return [ { title: '', index: 'key', type: 'checkbox' }, { title: '发票号码', index: 'invoiceno', width: 150 }, + { title: '发票代码', index: 'invoiceno2', width: 150 }, { title: '申请编号', index: 'vatappHCode', @@ -255,7 +306,7 @@ export class InvoicedListComponent implements OnInit { className: 'text-center', width: 120, buttons: [ - {type:'divider'}, + { type: 'divider' }, { text: '查看明细
', click: item => @@ -272,6 +323,16 @@ export class InvoicedListComponent implements OnInit { text: '查看物流
', click: item => this.showlogosticsLogs(item), iif: item => item.expresscompany + }, + { + text: '填写物流
', + click: item => this.requestedAction(item), + iif: item => !item.expresscompany + }, + { + text: '修改物流
', + click: item => this.requestedAction(item), + iif: item => item.expresscompany } ] } diff --git a/src/app/routes/ticket-management/services/ticket.service.ts b/src/app/routes/ticket-management/services/ticket.service.ts index d2d66aa4..a235412f 100644 --- a/src/app/routes/ticket-management/services/ticket.service.ts +++ b/src/app/routes/ticket-management/services/ticket.service.ts @@ -32,6 +32,8 @@ export class TicketService extends ShipperBaseService { $api_ficoVatinv_Detail = '/api/fcc/ficoVatinvL/getDetailByVatinvHId'; // 运营端订单明细开票处理 $api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo'; + // 手工开票获取开票申请信息展示 + $api_get_apply_fico_info = '/api/fcc/ficoVatappH/get'; // 运营端手工开票/确认/E税云开票成功后的回调 $api_apply_fico_invoic = '/api/fcc/ficoVatinvH/operateAffirmVatinv'; // 运营端推送开票-E税云开票 @@ -53,6 +55,9 @@ export class TicketService extends ShipperBaseService { // 已开发票查询 $api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page'; + // 更新快递信息 + $api_update_Express= '/api/fcc/ficoVatinvH/updateExpress'; + // 发票作废 $api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel'; // 获取销项发票抬头 diff --git a/src/app/routes/usercenter/components/driver/captain/add/add.component.html b/src/app/routes/usercenter/components/driver/captain/add/add.component.html index 1e60ca0b..fdc58217 100644 --- a/src/app/routes/usercenter/components/driver/captain/add/add.component.html +++ b/src/app/routes/usercenter/components/driver/captain/add/add.component.html @@ -1,7 +1,17 @@ + -
+
@@ -24,7 +34,6 @@
diff --git a/src/app/routes/usercenter/components/driver/captain/add/add.component.less b/src/app/routes/usercenter/components/driver/captain/add/add.component.less index bfa10586..fd19d3c9 100644 --- a/src/app/routes/usercenter/components/driver/captain/add/add.component.less +++ b/src/app/routes/usercenter/components/driver/captain/add/add.component.less @@ -1,36 +1,41 @@ .pr { - position: relative; + position: relative; +} + +.pa { + position: absolute; + top: 35px; + left: 150px; + img{border: solid 1px #ebf0fb;} +} + +.tips { + display: flex; + margin-bottom: 0; + color: #333; + + dt { + width: 150px; } - - .pa { - position: absolute; - top: 35px; - left: 150px; - img{border: solid 1px #ebf0fb;} - } - - .tips { - display: flex; + + dd { + width: 190px; margin-bottom: 0; - color: #333; - - dt { - width: 150px; - } - - dd { - width: 190px; - margin-bottom: 0; - text-align: center; - } + text-align: center; } - :host{ - ::ng-deep { - .ant-input-borderless{ - padding: 0; - padding-top: 4px; - color: black; - resize:none; +} +:host{ + ::ng-deep { + .ant-input-borderless{ + padding: 0; + padding-top: 4px; + color: black; + resize:none; + } + .hideBtn .ant-upload-list-item-actions button{ + &:last-child{ + display: none; } } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/src/app/routes/usercenter/components/driver/captain/add/add.component.ts b/src/app/routes/usercenter/components/driver/captain/add/add.component.ts index 45f387a7..8a477dc9 100644 --- a/src/app/routes/usercenter/components/driver/captain/add/add.component.ts +++ b/src/app/routes/usercenter/components/driver/captain/add/add.component.ts @@ -90,12 +90,13 @@ export class CtcCaptatinAddComponent implements OnInit { widget: this.i.id ? 'text' : '', placeholder: '请输入手机号', blur: () => { - if(this.sf?.value?.mobile) { + if(!this.sf.value.mobile) { + return + } this.service.request(this.service.$api_getByMobile, { mobile: this.sf.value.mobile }).subscribe(res => { if (res.certificateNumber) { this.readFlag = true this.detailData = { - ...res, mobile: this.sf.value.mobile, bankName: this.sf.value.bankName, bankCardNo: this.sf.value.bankCardNo, @@ -109,28 +110,41 @@ export class CtcCaptatinAddComponent implements OnInit { url: res.certificatePhotoFrontWatermark, response: res.certificatePhotoFrontWatermark, }], - certificatePhotoBackWatermark: [ - { - uid: -1, - name: 'LOGO', - status: 'done', - url: res.certificatePhotoBackWatermark, - response: res.certificatePhotoBackWatermark, - }], - name: res.name, - certificateNumber: res.certificateNumber, - certificatePhotoFront: res.certificatePhotoFront, - certificatePhotoBack: res.certificatePhotoBack, + certificatePhotoBackWatermark: [ + { + uid: -1, + name: 'LOGO', + status: 'done', + url: res.certificatePhotoBackWatermark, + response: res.certificatePhotoBackWatermark, + }], + name: res.name, + certificateNumber: res.certificateNumber, + certificatePhotoFront: res.certificatePhotoFront, + certificatePhotoBack: res.certificatePhotoBack, } } this.initSF() } else { this.readFlag = false - this.detailData = {} + this.detailData = { + mobile: this.sf.value.mobile, + bankName: this.sf.value.bankName, + bankCardNo: this.sf.value.bankCardNo, + remark: this.sf.value.remark, + identityInfoDTO: { + certificatePhotoFrontWatermark: '', + certificatePhotoBackWatermark: '', + name: '', + certificateNumber: '', + certificatePhotoFront: '', + certificatePhotoBack: '', + } + } + this.initSF() } }) - } - } + } }, default: this.detailData.mobile }, @@ -138,7 +152,7 @@ export class CtcCaptatinAddComponent implements OnInit { title: '姓名', type: 'string', ui: { - widget: this.i.id ? 'text' : '', + widget: this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20) ? 'text' : '', placeholder: '请输入姓名', }, readOnly: this.readFlag, @@ -147,12 +161,11 @@ export class CtcCaptatinAddComponent implements OnInit { bankCardNo: { title: '银行卡号', type: 'string', - maxLength: 20, ui: { - widget: this.i.id ? 'text' : '', + widget: '', placeholder: '请输入银行卡号', - change: (val: any) =>{ - const value = val.replace(/\D/g,'') + change: (val: any) => { + const value = val.replace(/\D/g, '') this.sf.setValue('/bankCardNo', value) }, errors: { @@ -164,9 +177,8 @@ export class CtcCaptatinAddComponent implements OnInit { bankName: { title: '开户行', type: 'string', - maxLength: 35, ui: { - widget: this.i.id ? 'text' : '', + widget: '', placeholder: '请输入开户行', }, default: this.detailData.bankName @@ -178,7 +190,7 @@ export class CtcCaptatinAddComponent implements OnInit { ui: { widget: 'textarea', showRequired: true, - borderless:true, + borderless: true, }, default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写', }, @@ -193,11 +205,11 @@ export class CtcCaptatinAddComponent implements OnInit { certificatePhotoFrontWatermark: { type: 'string', title: '', - readOnly: this.i.id || this.readFlag, + readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag, ui: { offsetControl: 6, action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -212,10 +224,10 @@ export class CtcCaptatinAddComponent implements OnInit { listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath + this.detailData.identityInfoDTO.certificatePhotoFront = args.file.response.data.fullFilePath this.checkIdCard(args.file.response.data.fullFilePath, 'front'); } else { - this.detailData.certificatePhotoFront = '' + this.detailData.identityInfoDTO.certificatePhotoFront = '' } }, beforeUpload: (file: any, _fileList: any) => { @@ -230,6 +242,7 @@ export class CtcCaptatinAddComponent implements OnInit { observer.complete(); }); }, + previewFile: (file: any) => { } }, default: this.detailData.identityInfoDTO.certificatePhotoFrontWatermark }, @@ -244,11 +257,11 @@ export class CtcCaptatinAddComponent implements OnInit { certificatePhotoBackWatermark: { type: 'string', title: '', - readOnly: this.i.id || this.readFlag, + readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag, ui: { offsetControl: 6, action: apiConf.fileUpload, - fileType: 'image/png,image/jpeg,image/jpg,image/gif', + accept: 'image/png,image/jpeg,image/jpg,image/gif', limit: 1, limitFileCount: 1, resReName: 'data.fullFileWatermarkPath', @@ -263,9 +276,9 @@ export class CtcCaptatinAddComponent implements OnInit { listType: 'picture-card', change: (args: any) => { if (args.type === 'success') { - this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath + this.detailData.identityInfoDTO.certificatePhotoBack = args.file.response.data.fullFilePath } else { - this.detailData.certificatePhotoBack = '' + this.detailData.identityInfoDTO.certificatePhotoBack = '' } }, beforeUpload: (file: any, _fileList: any) => { @@ -280,15 +293,16 @@ export class CtcCaptatinAddComponent implements OnInit { observer.complete(); }); }, + previewFile: (file: any) => { } }, default: this.detailData.identityInfoDTO.certificatePhotoBackWatermark }, certificateNumber: { title: '身份证号', type: 'string', - readOnly: this.readFlag, + readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag, ui: { - widget: this.i.id ? 'text' : '', + widget: this.i.id && (this.i.driverLicenseStatus !== 10 && this.i.driverLicenseStatus !== 20) ? 'text' : '', placeholder: '请输入身份证号', }, default: this.detailData.identityInfoDTO.certificateNumber @@ -298,7 +312,7 @@ export class CtcCaptatinAddComponent implements OnInit { type: 'string', maxLength: 100, ui: { - widget: this.i.id ? 'text' : 'textarea', + widget: 'textarea', placeholder: '请输入备注', autosize: { minRows: 2, maxRows: 6 }, }, diff --git a/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html b/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html index 13df6295..0b6288ab 100644 --- a/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html +++ b/src/app/routes/waybill-management/components/abnormal-appear/abnormal-appear.component.html @@ -1,7 +1,7 @@