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 9a325e4a..cf8a24d4 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
@@ -335,22 +335,26 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
{
text: '通过',
click: _record => this.sign(_record),
- iif: item => item.auditStatus == '1'
+ iif: item => item.auditStatus == '1',
+ acl: { ability: ['ORDER-RECEIPTS-billAuditPassBatch'] },
},
{
text: '生成电子单据',
click: _record => this.generate(_record, 2),
- iif: item => item.auditStatus == '1'
+ iif: item => item.auditStatus == '1',
+ acl: { ability: ['ORDER-RECEIPTS-generate'] },
},
{
text: '查看凭证',
click: _record => this.generate(_record, 3),
- iif: item => item.auditStatus == '2'
+ iif: item => item.auditStatus == '2',
+ acl: { ability: ['ORDER-RECEIPTS-view'] },
},
{
text: '修改',
click: _record => this.modification(_record),
- iif: item => item.auditStatus == '1'
+ iif: item => item.auditStatus == '1' ,
+ acl: { ability: ['ORDER-RECEIPTS-updateBillExamine'] },
},
]
}
diff --git a/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.html b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.html
new file mode 100644
index 00000000..c17d2c12
--- /dev/null
+++ b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+

+
+
+
\ No newline at end of file
diff --git a/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.less b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.less
new file mode 100644
index 00000000..6dd216c6
--- /dev/null
+++ b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.less
@@ -0,0 +1,51 @@
+.sfBox{
+ position: relative;
+}
+.pr {
+ 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;
+ }
+
+ dd {
+ width: 190px;
+ margin-bottom: 0;
+ text-align: center;
+ }
+}
+.drivercard{
+ position: absolute;
+ top: 710px;
+ left: 330px;
+ border: solid 1px #ebf0fb;
+}
+.jopcard{
+ position: absolute;
+ top: 1115px;
+ left: 330px;
+ border: solid 1px #ebf0fb;
+}
+:host{
+ ::ng-deep {
+ .ant-input-borderless{
+ padding: 0;
+ padding-top: 4px;
+ color: black;
+ resize:none;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.spec.ts b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.spec.ts
new file mode 100644
index 00000000..7c61267f
--- /dev/null
+++ b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.spec.ts
@@ -0,0 +1,24 @@
+import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
+import { CarSettleAddDriverComponent } from './add-driver.component';
+
+describe('CarSettleAddDriverComponent', () => {
+ let component: CarSettleAddDriverComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [ CarSettleAddDriverComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(CarSettleAddDriverComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.ts b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.ts
new file mode 100644
index 00000000..6f596ca5
--- /dev/null
+++ b/src/app/routes/usercenter/components/driver/add-driver/add-driver.component.ts
@@ -0,0 +1,608 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { apiConf } from '@conf/api.conf';
+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 { NzModalRef } from 'ng-zorro-antd/modal';
+import { NzUploadFile } from 'ng-zorro-antd/upload';
+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',
+ styleUrls: ['./add-driver.component.less']
+})
+export class CarSettleAddDriverComponent implements OnInit {
+ @ViewChild('sf', { static: false }) sf!: SFComponent;
+ @ViewChild('sf1', { static: false }) sf1!: SFComponent;
+ @ViewChild('sf2', { static: false }) sf2!: SFComponent;
+ record: any = {};
+ i: any;
+ ui: SFUISchema = {};
+ schema: SFSchema = {};
+ schema1: SFSchema = {};
+ schema2: SFSchema = {};
+ showCardFlag = false;
+ showJopFlag = false;
+ detailData: any = {
+ identityInfoDTO: {},
+ userDriverLicenseDTO: {},
+ userPracticeSeniorityDTO: {}
+ };
+ companyData: any = {};
+ constructor(
+ private modal: NzModalRef,
+ public service: UsermanageService,
+ private envSrv: EAEnvironmentService,
+ private eaCacheSrv: EACacheService,
+ ) { }
+
+ ngOnInit(): void {
+ this.companyData = this.eaCacheSrv.get(cacheConf.env)
+ this.initSF()
+ }
+ initSF() {
+ this.schema = {
+ properties: {
+ titleA: {
+ title: '司机信息(必填)',
+ type: 'string',
+ ui: {
+ widget: 'text',
+ },
+ default: '照片上传后会自动识别文字并填充下列内容栏'
+ },
+ mobile: {
+ title: '手机号',
+ type: 'string',
+ format: 'mobile',
+ maxLength: 11,
+ ui: {
+ widget: '',
+ },
+ },
+ showName: {
+ title: '身份证照片',
+ type: 'string',
+ readOnly: true,
+ ui: {
+ widget: 'textarea',
+ borderless:true,
+ showRequired: true,
+ },
+ default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写',
+ },
+ tipsA: {
+ title: '',
+ type: 'string',
+ ui: {
+ widget: 'custom',
+ offsetControl: 6,
+ },
+ },
+ certificatePhotoFrontWatermark: {
+ 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格式,大小不超过2M',
+ data: {
+ appId: this.envSrv.env.appId,
+ },
+ name: 'multipartFile',
+ multiple: false,
+ listType: 'picture-card',
+ change: (args: any) => {
+ if (args.type === 'success') {
+ this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath
+ this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0);
+ }
+ },
+ beforeUpload: (file: any, _fileList: any) => {
+ 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();
+ });
+ },
+ previewFile: (file: NzUploadFile) => of(file.url),}
+ },
+ tipsB: {
+ title: '',
+ type: 'string',
+ ui: {
+ widget: 'custom',
+ offsetControl: 6,
+ },
+ },
+ certificatePhotoBackWatermark: {
+ 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格式,大小不超过2M',
+ data: {
+ 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.checkIdCard(args.file.response.data.fullFilePath, 'back', 0);
+ }
+ },
+ beforeUpload: (file: any, _fileList: any) => {
+ 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();
+ });
+ },
+ previewFile: (file: NzUploadFile) => of(file.url),}
+ },
+ name: {
+ title: '姓名',
+ type: 'string',
+ maxLength: 32,
+ ui: {
+ widget: '',
+ placeholder: '请输入姓名',
+ },
+ },
+ certificateNumber: {
+ title: '身份证号',
+ type: 'string',
+ format: 'id-card',
+ minLength: 1,
+ maxLength: 18,
+ ui: {
+ widget: '',
+ placeholder: '请输入法定代表人证件号',
+ errors: {
+ required: '请输入18位身份证号码',
+ },
+ },
+ },
+ bankCardNo: {
+ title: '银行卡号',
+ type: 'string',
+ maxLength: 18,
+ ui: {
+ widget: '',
+ placeholder: '请输入银行卡号',
+ // change: (val: any) =>{
+ // const value = val.replace(/\D/g,'')
+ // this.sf.setValue('/bankCardNo', value)
+ // },
+ },
+ default: ''
+ },
+ bankName: {
+ title: '开户行',
+ type: 'string',
+ ui: {
+ widget: '',
+ },
+ default: ''
+ },
+ },
+ required: [
+ 'certificatePhotoFrontWatermark',
+ 'certificatePhotoBackWatermark',
+ 'name',
+ 'certificateNumber',
+ 'bankCardNo'
+ ],
+ };
+ this.schema1 = {
+ properties: {
+ titleB: {
+ title: '驾驶证信息(必填)',
+ type: 'string',
+ ui: {
+ widget: 'text',
+ },
+ default: '照片上传后会自动识别文字并填充下列内容栏'
+ },
+ certificatePhotoWatermark: {
+ type: 'string',
+ title: '驾驶证照片',
+ ui: {
+ 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、PNG格式,文件小于5M。照片信息缺失、拼凑、过度PS、模糊不清,都不会通过审核。',
+ data: {
+ 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.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0);
+ } else {
+ this.detailData.userDriverLicenseDTO.certificatePhoto = ''
+ }
+ },
+ beforeUpload: (file: any, _fileList: any) => {
+ return new Observable((observer: Observer) => {
+ const isLt4M = file.size / 1024 / 1024 < 4;
+ if (!isLt4M) {
+ this.service.msgSrv.warning('图片大小超过4M!');
+ observer.complete();
+ return;
+ }
+ observer.next(isLt4M);
+ observer.complete();
+ });
+ },
+ previewFile: (file: NzUploadFile) => of(file.url),}
+ },
+ licenseNo: {
+ title: '驾驶证号',
+ type: 'string',
+ ui: {
+ // widget: 'text',
+ placeholder: '请输入',
+ },
+ // default: this.ar.snapshot.queryParams.licenseNo
+ },
+ driverModel: {
+ title: '准驾车型',
+ type: 'string',
+ ui: {
+ widget: 'select',
+ mode: 'multiple',
+ containsAllLabel: false,
+ placeholder: '请选择准驾车型',
+ asyncData: () =>
+ this.service.request(this.service.$api_getDictValue, { dictKey: 'driverModel' }).pipe(
+ map((data) => {
+ return data.map((m: any) => {
+ return { label: m.label, value: m.label };
+ });
+ }),
+ ),
+ },
+ },
+ 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: 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 < 2;
+ if (!isLt2M) {
+ this.service.msgSrv.warning('图片大小超过2M!');
+ observer.complete();
+ return;
+ }
+ observer.next(isLt2M);
+ observer.complete();
+ });
+ },
+ previewFile: (file: NzUploadFile) => of(file.url),}
+ },
+ 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,
+ },
+ $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 },
+ },
+ };
+ }
+ getProvinceData() {
+ return this.service.request(this.service.$api_getRegionByCode, { regionCode: '' }).pipe(
+ map(res => {
+ const result: any = []
+ if (res) {
+ res.map((m: any) => {
+ const item = { label: m.name, value: m.regionCode }
+ result.push(item)
+ });
+ }
+ return result
+ })
+ );
+ }
+ checkIdCard(imgurl: any, side: any, type: any) {
+ // 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
+ const params = {
+ idCardUrl: imgurl,
+ side,
+ };
+ this.service.request(this.service.$api_checkIdCard, params).subscribe((res) => {
+ if (res) {
+ if (type === 0) {
+ // 法定代表人身份证
+ if (side === 'front') {
+ // 正面
+ this.sf.setValue('/name', res.name);
+ this.sf.setValue('/certificateNumber', res.number);
+ }
+ }
+ }
+ });
+ }
+ checkQualificationCertificate(imgurl: any) {
+ // 识别从业资格证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
+ const params = {
+ qualificationCertificateUrl: imgurl,
+ };
+ this.service.request(this.service.$api_recognizeQualificationCertificate, params).subscribe((res) => {
+ if (res) {
+ this.sf.setValue('/licenseNo', res.continuingEducationInfo);
+ //this.sf.setValue('/validStartTime', res.continuingEducationInfo);
+ }
+ });
+ }
+
+ checkDriverCard(imgurl: any, side: any, type: any) {
+ // 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
+ const params = {
+ driverLicenseUrl: imgurl,
+ side,
+ };
+ 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('/validStartTime', res.validFrom);
+ this.sf1.setValue('/validEndTime', res.validTo);
+ this.sf1.setValue('/signingOrganization', res.issuingAuthority);
+ }
+ }
+ }
+ });
+ }
+ close(): void {
+ this.modal.destroy();
+ }
+ showExample(){
+ this.showCardFlag = !this.showCardFlag
+ }
+ showJopExample(){
+ this.showJopFlag = !this.showJopFlag
+ }
+ submitForm(){
+ const params:any = {
+ source: 2,
+ mobile: this.sf.value.mobile,
+ bankCardNo: this.sf.value.bankCardNo,
+ bankName: this.sf.value.bankName,
+ identityInfoDTO:{
+ ...this.sf.value,
+ certificatePhotoFront: this.detailData.certificatePhotoFront,
+ certificatePhotoBack: this.detailData.certificatePhotoBack,
+ },
+ userDriverLicenseDTO: {
+ ...this.sf1.value,
+ certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto,
+ },
+ userPracticeSeniorityDTO: {
+ ...this.sf2.value,
+ certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto,
+ },
+ };
+ 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.userDriverLicenseDTO.titleB;
+ delete params.userPracticeSeniorityDTO.titleC;
+ delete params.userDriverLicenseDTO.tipsA;
+ delete params.userPracticeSeniorityDTO.tipsC;
+ if(JSON.stringify(params.userPracticeSeniorityDTO) === '{}') {
+ params.userPracticeSeniorityDTO = null
+ }
+ this.service.request(this.service.$api_enterpriseVehicleSave, params).subscribe(res => {
+ if(res){
+ this.service.msgSrv.success('添加成功')
+ this.modal.close(true)
+ }
+ })
+ }
+}
diff --git a/src/app/routes/usercenter/components/driver/driver.component.html b/src/app/routes/usercenter/components/driver/driver.component.html
index b78deb09..4be50dc6 100644
--- a/src/app/routes/usercenter/components/driver/driver.component.html
+++ b/src/app/routes/usercenter/components/driver/driver.component.html
@@ -29,7 +29,7 @@
-
+
@@ -55,4 +55,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/usercenter/components/driver/driver.component.ts b/src/app/routes/usercenter/components/driver/driver.component.ts
index 9484e0ae..24e16b52 100644
--- a/src/app/routes/usercenter/components/driver/driver.component.ts
+++ b/src/app/routes/usercenter/components/driver/driver.component.ts
@@ -2,10 +2,12 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
+import { ModalHelper } from '@delon/theme';
import { DynamicSettingModalComponent } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component';
import { UsermanageService } from '../../services/usercenter.service';
+import { CarSettleAddDriverComponent } from './add-driver/add-driver.component';
@Component({
selector: 'app-usercenter-components-driver',
styleUrls: ['./driver.component.less'],
@@ -24,7 +26,7 @@ export class UserCenterComponentsDriverComponent implements OnInit {
promotersTelephone = '';
resourceStatus: any = 10;
- constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute) {}
+ constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute,private modalHelper: ModalHelper) {}
/**
* 查询参数
@@ -245,7 +247,12 @@ export class UserCenterComponentsDriverComponent implements OnInit {
}
};
}
-
+ add() {
+ this.modalHelper.create(CarSettleAddDriverComponent, { size: 900 }).subscribe((res) => {
+ // this.initData()
+ console.log(res)
+ });
+ }
private initST(): STColumn[] {
return [
{ title: '司机姓名', className: 'text-center', index: 'name' , width: 150},
diff --git a/src/app/routes/usercenter/services/usercenter.service.ts b/src/app/routes/usercenter/services/usercenter.service.ts
index 1aaefde0..71fe2111 100644
--- a/src/app/routes/usercenter/services/usercenter.service.ts
+++ b/src/app/routes/usercenter/services/usercenter.service.ts
@@ -110,8 +110,19 @@ export class UsermanageService extends ShipperBaseService {
// 获取个人刷脸结果
$api_getFaceFlowQuery = '/api/mdc/pbc/factorsVerify/getFaceFlowQuery';
+ ///////////////////
+ // 识别身份证
+ $api_checkIdCard = '/api/mdc/pbc/hwc/ocr/recognizeIdCard';
+ // 从业资格证
+ $api_recognizeQualificationCertificate = '/api/mdc/pbc/hwc/ocr/recognizeQualificationCertificate';
+ // 驾驶证识别
+ $api_recognizeDriverLicense = `/api/mdc/pbc/hwc/ocr/recognizeDriverLicense`;
+ // 根据地区code查询列表
+ $api_getRegionByCode = '/api/mdc/pbc/region/getRegionByCode';
+ // 新增熟车
+ $api_enterpriseVehicleSave = `/api/mdc/cuc/enterpriseVehicle/save`;
constructor(public injector: Injector, private nzModalService: NzModalService, public eaCacheSrv: EACacheService) {
- super(injector,eaCacheSrv);
+ super(injector, eaCacheSrv);
}
showImg(url: any) {
diff --git a/src/app/routes/usercenter/usercenter.module.ts b/src/app/routes/usercenter/usercenter.module.ts
index 6df953ea..dd8d6579 100644
--- a/src/app/routes/usercenter/usercenter.module.ts
+++ b/src/app/routes/usercenter/usercenter.module.ts
@@ -22,6 +22,7 @@ import { FreightComponentsUserComponent } from './components/freight/user/user.c
import { UsercenterRoutingModule } from './usercenter-routing.module';
import { AuditAdminComponent } from './components/freight/enterprise-audit/audit-admin/audit-admin.component';
import { CaptainDetailComponent } from './components/driver/captain/captain-detail/captain-detail.component';
+import { CarSettleAddDriverComponent } from './components/driver/add-driver/add-driver.component';
const COMPONENTS = [
FreightComponentsListComponent,
@@ -36,7 +37,8 @@ const COMPONENTS = [
UserCenterComponentsDriverDetailComponent,
UserCenterComponentsDriverCaptainComponent,
CaptainDetailComponent,
- AuditAdminComponent
+ AuditAdminComponent,
+ CarSettleAddDriverComponent
];
@NgModule({
diff --git a/src/app/routes/vehicle/components/list/list.component.ts b/src/app/routes/vehicle/components/list/list.component.ts
index 5eddbf2e..9f72aa9f 100644
--- a/src/app/routes/vehicle/components/list/list.component.ts
+++ b/src/app/routes/vehicle/components/list/list.component.ts
@@ -212,6 +212,9 @@ export class VehicleComponentsListComponent implements OnInit {
false: { text: '空闲', color: 'default' }
}
},
+ { title: '道运证', width: '150px', className: 'text-center', index: 'roadTransportNo' },
+ { title: '审核人', width: '150px', className: 'text-center', index: 'approvalUserName' },
+
{
title: '行驶证到期状态',
width: '180px',
diff --git a/src/assets/images/drivercard.png b/src/assets/images/drivercard.png
new file mode 100644
index 00000000..c87c0dfc
Binary files /dev/null and b/src/assets/images/drivercard.png differ
diff --git a/src/assets/images/driverfront.png b/src/assets/images/driverfront.png
new file mode 100644
index 00000000..96d378d6
Binary files /dev/null and b/src/assets/images/driverfront.png differ
diff --git a/src/assets/images/eg01.png b/src/assets/images/eg01.png
new file mode 100644
index 00000000..366bda19
Binary files /dev/null and b/src/assets/images/eg01.png differ
diff --git a/src/assets/images/eg02.png b/src/assets/images/eg02.png
new file mode 100644
index 00000000..b9da9074
Binary files /dev/null and b/src/assets/images/eg02.png differ
diff --git a/src/assets/images/jopcard.png b/src/assets/images/jopcard.png
new file mode 100644
index 00000000..3b88e129
Binary files /dev/null and b/src/assets/images/jopcard.png differ