This commit is contained in:
Taric Xin
2022-02-18 14:53:59 +08:00
parent a25687a5de
commit ff94f81ab8

View File

@ -10,7 +10,6 @@ import { Observable, Observer, of } from 'rxjs';
import { map } from 'rxjs/operators';
import { UsermanageService } from '../../../services/usercenter.service';
@Component({
selector: 'app-car-add-driver',
templateUrl: './add-driver.component.html',
@ -38,12 +37,12 @@ export class CarSettleAddDriverComponent implements OnInit {
private modal: NzModalRef,
public service: UsermanageService,
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 = {
@ -52,7 +51,7 @@ export class CarSettleAddDriverComponent implements OnInit {
title: '司机信息(必填)',
type: 'string',
ui: {
widget: 'text',
widget: 'text'
},
default: '照片上传后会自动识别文字并填充下列内容栏'
},
@ -62,8 +61,8 @@ export class CarSettleAddDriverComponent implements OnInit {
format: 'mobile',
maxLength: 11,
ui: {
widget: '',
},
widget: ''
}
},
showName: {
title: '身份证照片',
@ -71,18 +70,18 @@ export class CarSettleAddDriverComponent implements OnInit {
readOnly: true,
ui: {
widget: 'textarea',
borderless:true,
showRequired: true,
borderless: true,
showRequired: true
},
default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写',
default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写'
},
tipsA: {
title: '',
type: 'string',
ui: {
widget: 'custom',
offsetControl: 6,
},
offsetControl: 6
}
},
certificatePhotoFrontWatermark: {
type: 'string',
@ -98,15 +97,15 @@ export class CarSettleAddDriverComponent 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: any) => {
if (args.type === 'success') {
console.log(args.file.response.data.fullFilePath)
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath
console.log(args.file.response.data.fullFilePath);
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath;
this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0);
}
},
@ -121,8 +120,8 @@ export class CarSettleAddDriverComponent implements OnInit {
observer.next(isLt2M);
observer.complete();
});
},
// previewFile: (file: NzUploadFile) => of(file.url),
}
// previewFile: (file: NzUploadFile) => of(file.url),
}
},
tipsB: {
@ -130,8 +129,8 @@ export class CarSettleAddDriverComponent implements OnInit {
type: 'string',
ui: {
widget: 'custom',
offsetControl: 6,
},
offsetControl: 6
}
},
certificatePhotoBackWatermark: {
type: 'string',
@ -147,14 +146,14 @@ export class CarSettleAddDriverComponent 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: 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);
}
},
@ -169,8 +168,8 @@ export class CarSettleAddDriverComponent implements OnInit {
observer.next(isLt2M);
observer.complete();
});
},
// previewFile: (file: NzUploadFile) => of(file.url),
}
// previewFile: (file: NzUploadFile) => of(file.url),
}
},
name: {
@ -179,8 +178,8 @@ export class CarSettleAddDriverComponent implements OnInit {
maxLength: 32,
ui: {
widget: '',
placeholder: '请输入姓名',
},
placeholder: '请输入姓名'
}
},
certificateNumber: {
title: '身份证号',
@ -192,9 +191,9 @@ export class CarSettleAddDriverComponent implements OnInit {
widget: '',
placeholder: '请输入法定代表人证件号',
errors: {
required: '请输入18位身份证号码',
},
},
required: '请输入18位身份证号码'
}
}
},
bankCardNo: {
title: '银行卡号',
@ -202,7 +201,7 @@ export class CarSettleAddDriverComponent implements OnInit {
maxLength: 18,
ui: {
widget: '',
placeholder: '请输入银行卡号',
placeholder: '请输入银行卡号'
// change: (val: any) =>{
// const value = val.replace(/\D/g,'')
// this.sf.setValue('/bankCardNo', value)
@ -214,18 +213,12 @@ export class CarSettleAddDriverComponent implements OnInit {
title: '开户行',
type: 'string',
ui: {
widget: '',
widget: ''
},
default: ''
},
}
},
required: [
'certificatePhotoFrontWatermark',
'certificatePhotoBackWatermark',
'name',
'certificateNumber',
'bankCardNo'
],
required: ['certificatePhotoFrontWatermark', 'certificatePhotoBackWatermark', 'name', 'certificateNumber', 'bankCardNo']
};
this.schema1 = {
properties: {
@ -233,7 +226,7 @@ export class CarSettleAddDriverComponent implements OnInit {
title: '驾驶证信息(必填)',
type: 'string',
ui: {
widget: 'text',
widget: 'text'
},
default: '照片上传后会自动识别文字并填充下列内容栏'
},
@ -250,17 +243,17 @@ export class CarSettleAddDriverComponent 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: 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 = ''
this.detailData.userDriverLicenseDTO.certificatePhoto = '';
}
},
beforeUpload: (file: any, _fileList: any) => {
@ -274,17 +267,17 @@ export class CarSettleAddDriverComponent implements OnInit {
observer.next(isLt4M);
observer.complete();
});
},
// previewFile: (file: NzUploadFile) => of(file.url),
}
// previewFile: (file: NzUploadFile) => of(file.url),
}
},
licenseNo: {
title: '驾驶证号',
type: 'string',
ui: {
// widget: 'text',
placeholder: '请输入',
},
// widget: 'text',
placeholder: '请输入'
}
// default: this.ar.snapshot.queryParams.licenseNo
},
driverModel: {
@ -294,16 +287,16 @@ export class CarSettleAddDriverComponent implements OnInit {
widget: 'select',
mode: 'multiple',
containsAllLabel: false,
placeholder: '请选择准驾车型',
asyncData: () =>
placeholder: '请选择准驾车型',
asyncData: () =>
this.service.request(this.service.$api_getDictValue, { dictKey: 'driverModel' }).pipe(
map((data) => {
map(data => {
return data.map((m: any) => {
return { label: m.label, value: m.label };
});
}),
),
},
})
)
}
},
validStartTime: {
title: '有效期起',
@ -313,10 +306,10 @@ export class CarSettleAddDriverComponent implements OnInit {
format: 'yyyy-MM-dd',
placeholder: '请选择',
errors: {
required: '请选择起始日期',
required: '请选择起始日期'
},
change: (i) => { },
} as SFDateWidgetSchema,
change: i => {}
} as SFDateWidgetSchema
},
validEndTime: {
title: '有效期止',
@ -326,10 +319,10 @@ export class CarSettleAddDriverComponent implements OnInit {
format: 'yyyy-MM-dd',
placeholder: '请选择',
errors: {
required: '请选择终止日期',
required: '请选择终止日期'
},
change: (i) => { },
} as SFDateWidgetSchema,
change: i => {}
} as SFDateWidgetSchema
},
signingOrganization: {
title: '签发机关',
@ -337,17 +330,11 @@ export class CarSettleAddDriverComponent implements OnInit {
maxLength: 30,
ui: {
// widget: this.detailData.commitFlag !== 0 ? 'text' : '',
placeholder: '请输入',
},
},
placeholder: '请输入'
}
}
},
required: [
'certificatePhotoWatermark',
'licenseNo',
'driverModel',
'validStartTime',
'validEndTime',
],
required: ['certificatePhotoWatermark', 'licenseNo', 'driverModel', 'validStartTime', 'validEndTime']
};
this.schema2 = {
properties: {
@ -355,9 +342,9 @@ export class CarSettleAddDriverComponent implements OnInit {
title: '从业资格证(选填)',
type: 'string',
ui: {
widget: 'text',
widget: 'text'
},
default: '照片上传后会自动识别文字并填充下列内容栏',
default: '照片上传后会自动识别文字并填充下列内容栏'
},
certificatePhotoWatermark: {
type: 'string',
@ -368,22 +355,22 @@ export class CarSettleAddDriverComponent implements OnInit {
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
limit: 1,
limitFileCount: 1,
resReName: 'data.fullFileWatermarkPath',
urlReName: 'data.fullFileWatermarkPath',
resReName: 'data.fullFilePath',
urlReName: 'data.fullFilePath',
widget: 'upload',
descriptionI18n: '图片支持jpg、jpeg、png、gif格式大小不超过5M',
data: {
appId: this.envSrv.env.appId,
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.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath;
this.checkQualificationCertificate(args.file.response.data.fullFilePath);
} else {
this.detailData.userPracticeSeniorityDTO.certificatePhoto = ''
this.detailData.userPracticeSeniorityDTO.certificatePhoto = '';
}
},
beforeUpload: (file: any, _fileList: any) => {
@ -398,7 +385,7 @@ export class CarSettleAddDriverComponent implements OnInit {
observer.complete();
});
},
// previewFile: (file: NzUploadFile) => of(file.url),
previewFile: (file: NzUploadFile) => of()
}
},
licenseNo: {
@ -407,8 +394,8 @@ export class CarSettleAddDriverComponent implements OnInit {
maxLength: 30,
ui: {
// widget: this.detailData.commitFlag !== 0 ? 'text' : '',
placeholder: '请输入',
},
placeholder: '请输入'
}
},
regionCode: {
title: '签发省份',
@ -416,8 +403,8 @@ export class CarSettleAddDriverComponent implements OnInit {
ui: {
widget: 'select',
placeholder: '请选择',
asyncData: () => this.getProvinceData(),
} as SFDateWidgetSchema,
asyncData: () => this.getProvinceData()
} as SFDateWidgetSchema
},
validStartTime: {
title: '发证日期',
@ -427,10 +414,10 @@ export class CarSettleAddDriverComponent implements OnInit {
format: 'yyyy-MM-dd',
placeholder: '请选择',
errors: {
required: '请选择起始日期',
required: '请选择起始日期'
},
change: (i) => { },
} as SFDateWidgetSchema,
change: i => {}
} as SFDateWidgetSchema
},
validEndTime: {
title: '有效期止',
@ -440,69 +427,67 @@ export class CarSettleAddDriverComponent implements OnInit {
format: 'yyyy-MM-dd',
placeholder: '请选择',
errors: {
required: '请选择终止日期',
required: '请选择终止日期'
},
change: (i) => { },
} as SFDateWidgetSchema,
},
change: i => {}
} as SFDateWidgetSchema
}
},
required: [
],
required: []
};
this.ui = {
'*': {
spanLabelFixed: 180,
grid: { span: 24 },
width: 700,
width: 700
},
$title1: {
spanLabelFixed: 0,
spanLabelFixed: 0
},
$title2: {
spanLabelFixed: 0,
spanLabelFixed: 0
},
$title3: {
spanLabelFixed: 0,
spanLabelFixed: 0
},
$title4: {
spanLabelFixed: 0,
spanLabelFixed: 0
},
$enterpriseRegistrationTime: {
width: 680,
width: 680
},
$operatingEndTime: {
grid: { span: 9 },
grid: { span: 9 }
},
$dateType: {
grid: { span: 4 },
grid: { span: 4 }
},
$validEndTime: {
grid: { span: 9 },
grid: { span: 9 }
},
$dateType01: {
grid: { span: 4 },
grid: { span: 4 }
},
$registrationCapital: {
grid: { span: 12 },
grid: { span: 12 }
},
$unit: {
spanLabelFixed: 20,
grid: { span: 3 },
},
grid: { span: 3 }
}
};
}
getProvinceData() {
return this.service.request(this.service.$api_getRegionByCode, { regionCode: '' }).pipe(
map(res => {
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;
})
);
}
@ -510,9 +495,9 @@ export class CarSettleAddDriverComponent implements OnInit {
// 识别身份证 参数side0-正面、1-背面type0-申请人身份证1-法定代表人身份证
const params = {
idCardUrl: imgurl,
side,
side
};
this.service.request(this.service.$api_checkIdCard, params).subscribe((res) => {
this.service.request(this.service.$api_checkIdCard, params).subscribe(res => {
if (res) {
if (type === 0) {
// 法定代表人身份证
@ -528,11 +513,13 @@ export class CarSettleAddDriverComponent implements OnInit {
checkQualificationCertificate(imgurl: any) {
// 识别从业资格证 参数side0-正面、1-背面type0-申请人身份证1-法定代表人身份证
const params = {
qualificationCertificateUrl: imgurl,
qualificationCertificateUrl: imgurl
};
this.service.request(this.service.$api_recognizeQualificationCertificate, params).subscribe((res) => {
this.service.request(this.service.$api_recognizeQualificationCertificate, params).subscribe(res => {
console.log(res);
if (res) {
this.sf.setValue('/licenseNo', res.continuingEducationInfo);
this.sf2.setValue('/licenseNo', res.certificateNumber);
//this.sf.setValue('/validStartTime', res.continuingEducationInfo);
}
});
@ -542,16 +529,16 @@ export class CarSettleAddDriverComponent implements OnInit {
// 识别身份证 参数side0-正面、1-背面type0-申请人身份证1-法定代表人身份证
const params = {
driverLicenseUrl: imgurl,
side,
side
};
this.service.request(this.service.$api_recognizeDriverLicense, params).subscribe((res) => {
this.service.request(this.service.$api_recognizeDriverLicense, params).subscribe(res => {
if (res) {
if (type === 0) {
// 法定代表人身份证
if (side === 'front') {
// 正面
this.sf1.setValue('/licenseNo', res.number);
this.sf1.setValue('/driverModel', [(res.classType).toUpperCase()]);
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);
@ -563,58 +550,58 @@ export class CarSettleAddDriverComponent 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 items: any = this.sf.value
items.certificatePhotoFrontWatermark = this.sf.value?.certificatePhotoFrontWatermark.data.fullFilePath
items.certificatePhotoBackWatermark = this.sf.value?.certificatePhotoBackWatermark.data.fullFilePath
const items2: any = this.sf1.value
items2.certificatePhotoWatermark = this.sf1.value?.certificatePhotoWatermark.data.fullFilePath
const items3: any = this.sf2.value
items3.certificatePhotoWatermark = this.sf2.value?.certificatePhotoWatermark.data.fullFilePath
const params:any = {
submitForm() {
const items: any = this.sf.value;
items.certificatePhotoFrontWatermark = this.sf.value?.certificatePhotoFrontWatermark.data.fullFilePath;
items.certificatePhotoBackWatermark = this.sf.value?.certificatePhotoBackWatermark.data.fullFilePath;
const items2: any = this.sf1.value;
items2.certificatePhotoWatermark = this.sf1.value?.certificatePhotoWatermark.data.fullFilePath;
const items3: any = this.sf2.value;
items3.certificatePhotoWatermark = this.sf2.value?.certificatePhotoWatermark.data.fullFilePath;
const params: any = {
source: 2,
mobile: this.sf.value.mobile,
bankCardNo: this.sf.value.bankCardNo,
bankName: this.sf.value.bankName,
identityInfoDTO:{
identityInfoDTO: {
...items,
certificatePhotoFront: this.detailData.certificatePhotoFront,
certificatePhotoBack: this.detailData.certificatePhotoBack,
certificatePhotoBack: this.detailData.certificatePhotoBack
},
userDriverLicenseDTO: {
...items2,
certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto,
certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto
},
userPracticeSeniorityDTO: {
...items3,
certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto,
},
certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto
}
};
if(params.userPracticeSeniorityDTO.certificatePhoto === '' || params.userPracticeSeniorityDTO.certificatePhotoWatermark === '') {
delete params.userPracticeSeniorityDTO.certificatePhotoWatermark
delete params.userPracticeSeniorityDTO.certificatePhoto
if (params.userPracticeSeniorityDTO.certificatePhoto === '' || params.userPracticeSeniorityDTO.certificatePhotoWatermark === '') {
delete params.userPracticeSeniorityDTO.certificatePhotoWatermark;
delete params.userPracticeSeniorityDTO.certificatePhoto;
}
params.userDriverLicenseDTO.driverModel = params.userDriverLicenseDTO.driverModel.join(',')
params.userDriverLicenseDTO.driverModel = params.userDriverLicenseDTO.driverModel.join(',');
delete params.identityInfoDTO.showName;
delete params.identityInfoDTO.titleA;
delete params.userDriverLicenseDTO.titleB;
delete params.userPracticeSeniorityDTO.titleC;
delete params.userDriverLicenseDTO.tipsA;
delete params.userPracticeSeniorityDTO.tipsC;
if(JSON.stringify(params.userPracticeSeniorityDTO) === '{}') {
params.userPracticeSeniorityDTO = null
if (JSON.stringify(params.userPracticeSeniorityDTO) === '{}') {
params.userPracticeSeniorityDTO = null;
}
this.service.request(this.service.$api_driver_add, params).subscribe(res => {
if(res){
this.service.msgSrv.success('添加成功')
this.modal.close(true)
if (res) {
this.service.msgSrv.success('添加成功');
this.modal.close(true);
}
})
});
}
}