diff --git a/src/app/routes/vehicle/components/list/carauth/carauth.component.html b/src/app/routes/vehicle/components/list/carauth/carauth.component.html
new file mode 100644
index 00000000..150b90d0
--- /dev/null
+++ b/src/app/routes/vehicle/components/list/carauth/carauth.component.html
@@ -0,0 +1,43 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/vehicle/components/list/carauth/carauth.component.less b/src/app/routes/vehicle/components/list/carauth/carauth.component.less
new file mode 100644
index 00000000..e3f1fc3f
--- /dev/null
+++ b/src/app/routes/vehicle/components/list/carauth/carauth.component.less
@@ -0,0 +1,123 @@
+.sfBox {
+ position: relative;
+ .example {
+ position: absolute;
+ top: 215px;
+ right: 265px;
+ color: #1890ff;
+ cursor: pointer;
+ .popBox {
+ position: absolute;
+ top: -170px;
+ left: -125px;
+ width: 300px;
+ padding: 20px;
+ text-align: center;
+ background: #fff;
+ border: solid 1px #eee;
+ border-radius: 6px;
+ box-shadow: 0 1px 5px 1px #ececec;
+ &::before {
+ position: absolute;
+ bottom: -5px;
+ left: 50%;
+ width: 10px;
+ height: 10px;
+ margin-left: -5px;
+ background: #fff;
+ box-shadow: 0 1px 5px 1px #ececec;
+ transform: rotate(45deg);
+ content: '';
+ }
+ &::after {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ z-index: 10;
+ width: 100%;
+ height: 10px;
+ background: #fff;
+ content: '';
+ }
+ img {
+ max-width: 100%;
+ max-height: 200px;
+ }
+ }
+ }
+ .positionSet{
+ top: 356px;
+ right: 235px;
+ }
+ .positionSet01{
+ top: 500px;
+ right: 200px;
+ }
+ .positionSet02{
+ top: 664px;
+ right: 265px;
+ }
+ .positionSet03{
+ top: 808px;
+ right: 205px;
+
+ }
+}
+.exaA{
+ position: absolute;
+ top: 0;
+ left: 300px
+}
+.pr {
+ position: relative;
+}
+
+.pa {
+ position: absolute;
+ top: 35px;
+ left: 150px;
+}
+
+.tips {
+ display: flex;
+ margin-bottom: 0;
+ color: #333;
+
+ dt {
+ width: 150px;
+ }
+
+ dd {
+ width: 190px;
+ margin-bottom: 0;
+ text-align: center;
+ }
+}
+.drivercard{
+ position: absolute;
+ top: 0;
+ left: 330px;
+ border: solid 1px #ebf0fb;
+}
+.jopcard{
+ position: absolute;
+ top: 1356px;
+ left: 330px;
+ border: solid 1px #ebf0fb;
+}
+.agreement{
+ position: absolute;
+ top: 425px;
+ 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/vehicle/components/list/carauth/carauth.component.spec.ts b/src/app/routes/vehicle/components/list/carauth/carauth.component.spec.ts
new file mode 100644
index 00000000..3d248eed
--- /dev/null
+++ b/src/app/routes/vehicle/components/list/carauth/carauth.component.spec.ts
@@ -0,0 +1,24 @@
+import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
+import { CarSettleCarauthComponent } from './carauth.component';
+
+describe('CarSettleCarauthComponent', () => {
+ let component: CarSettleCarauthComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [ CarSettleCarauthComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(CarSettleCarauthComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/routes/vehicle/components/list/carauth/carauth.component.ts b/src/app/routes/vehicle/components/list/carauth/carauth.component.ts
new file mode 100644
index 00000000..29126791
--- /dev/null
+++ b/src/app/routes/vehicle/components/list/carauth/carauth.component.ts
@@ -0,0 +1,651 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { apiConf } from '@conf/api.conf';
+import { cacheConf } from '@conf/cache.conf';
+import { SFUISchema, SFSchema, SFUploadWidgetSchema, SFComponent, SFSelectWidgetSchema } 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 { VehicleService } from '../../../services/vehicle.service';
+
+@Component({
+ selector: 'app-car-carauth',
+ templateUrl: './carauth.component.html',
+ styleUrls: ['./carauth.component.less']
+})
+export class CarSettleCarauthComponent implements OnInit {
+ @ViewChild('sf', { static: false }) sf!: SFComponent;
+ record: any = {};
+ i: any;
+ ui: SFUISchema = {};
+ schema: SFSchema = {};
+ showCardFlag = false;
+ showJopFlag = false;
+ companyData: any = {};
+ detailData: any = {};
+ carNo = '';
+
+ constructor(
+ private modal: NzModalRef,
+ public service: VehicleService,
+ private envSrv: EAEnvironmentService,
+ private eaCacheSrv: EACacheService
+ ) {}
+
+ ngOnInit(): void {
+ console.log(this.i)
+ this.initData();
+ this.initSF();
+ }
+ initData() {
+ if (this.i?.id) {
+ this.companyData = this.eaCacheSrv.get(cacheConf.env);
+ const params = {
+ id: this.i?.id
+ };
+ this.service.request(this.service.$api_shipperCarGet, params).subscribe(res => {
+ this.detailData = res;
+ this.detailData.isSelf = res.isSelf ? 1 : 0;
+ this.detailData.isTrailer = res.isTrailer ? 1 : 0;
+ this.detailData.carFrontPhotoWatermark = [
+ {
+ uid: -1,
+ name: 'LOGO',
+ status: 'done',
+ url: this.detailData.carFrontPhotoWatermark,
+ response: this.detailData.carFrontPhotoWatermark
+ }
+ ];
+ this.detailData.carProtocalWatermark = [
+ {
+ uid: -1,
+ name: 'LOGO',
+ status: 'done',
+ url: this.detailData.carProtocalWatermark,
+ response: this.detailData.carProtocalWatermark
+ }
+ ];
+ this.detailData.certificatePhotoFrontWatermark = [
+ {
+ uid: -1,
+ name: 'LOGO',
+ status: 'done',
+ url: this.detailData.certificatePhotoFrontWatermark,
+ response: this.detailData.certificatePhotoFrontWatermark
+ }
+ ];
+ this.detailData.certificatePhotoBackWatermark = [
+ {
+ uid: -1,
+ name: 'LOGO',
+ status: 'done',
+ url: this.detailData.certificatePhotoBackWatermark,
+ response: this.detailData.certificatePhotoBackWatermark
+ }
+ ];
+ this.detailData.roadTransportPhotoWatermark = [
+ {
+ uid: -1,
+ name: 'LOGO',
+ status: 'done',
+ url: this.detailData.roadTransportPhotoWatermark,
+ response: this.detailData.roadTransportPhotoWatermark
+ }
+ ];
+ });
+ }
+ }
+ initSF() {
+ this.schema = {
+ properties: {
+ carFrontPhotoWatermark: {
+ 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。',
+ data: {
+ appId: this.envSrv.env.appId
+ },
+ name: 'multipartFile',
+ multiple: false,
+ listType: 'picture-card',
+ change: (args: any) => {
+ if (args.type === 'success') {
+ this.detailData.carFrontPhoto = args.file.response.data.fullFilePath;
+ }
+ },
+ 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)
+ }
+ },
+ carNo: {
+ title: '车牌号',
+ maxLength: 9,
+ type: 'string',
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ carNoColor: {
+ title: '车牌颜色',
+ type: 'string',
+ ui: {
+ widget: 'dict-select',
+ params: { dictKey: 'car:color' },
+ placeholder: '请选择车型',
+ containsAllLabel: false
+ } as SFSelectWidgetSchema
+ },
+ carModel: {
+ title: '车型',
+ type: 'string',
+ ui: {
+ widget: 'dict-select',
+ params: { dictKey: 'car:model' },
+ placeholder: '请选择车型',
+ containsAllLabel: false
+ } as SFSelectWidgetSchema
+ },
+ carLength: {
+ title: '车长',
+ type: 'string',
+ ui: {
+ widget: 'dict-select',
+ params: { dictKey: 'car:length' },
+ placeholder: '请选择车长',
+ containsAllLabel: false
+ } as SFSelectWidgetSchema
+ },
+ carLoad: {
+ title: '载重',
+ type: 'string',
+ maxLength: 6,
+ ui: {
+ placeholder: '请输入',
+ change: (val: any) => {
+ const value = val.replace(/\D/g, '');
+ this.sf.setValue('/carLoad', value);
+ }
+ }
+ },
+ isSelf: {
+ title: '是否挂靠',
+ type: 'string',
+ enum: [
+ { label: '否', value: 0 },
+ { label: '是', value: 1 }
+ ],
+ ui: {
+ widget: 'select',
+ placeholder: '请选择'
+ }
+ },
+ isTrailer: {
+ title: '是否为挂车',
+ type: 'string',
+ enum: [
+ { label: '否', value: 0 },
+ { label: '是', value: 1 }
+ ],
+ ui: {
+ widget: 'select',
+ placeholder: '请选择'
+ }
+ },
+ carProtocalWatermark: {
+ 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。',
+ 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;
+ }
+ },
+ 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)
+ }
+ },
+ titleA: {
+ title: '行驶证信息(必填)',
+ type: 'string',
+ ui: {
+ widget: 'text'
+ },
+ default: '照片上传后会自动识别文字并填充下列内容栏'
+ },
+ tipsA: {
+ title: '',
+ type: 'string',
+ ui: {
+ widget: 'custom',
+ offsetControl: 6
+ }
+ },
+ certificatePhotoFrontWatermark: {
+ 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.certificatePhotoFront = args.file.response.data.fullFilePath;
+ this.checkCarCard(args.file.response.data.fullFilePath, 'front');
+ } else {
+ this.detailData.certificatePhotoFront = '';
+ }
+ },
+ 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: {
+ 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。',
+ 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.checkCarCard(args.file.response.data.fullFilePath, 'back');
+ } else {
+ this.detailData.certificatePhotoBack = '';
+ }
+ },
+ 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)
+ }
+ },
+ driverLicenseRegisterTime: {
+ title: '行驶证注册日期',
+ type: 'string',
+ format: 'date',
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ driverLicenseGetTime: {
+ title: '行驶证发证日期',
+ type: 'string',
+ format: 'date',
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ driverLicenseEndTime: {
+ title: '行驶证到期日期',
+ type: 'string',
+ format: 'date',
+ maxLength: 30,
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ driverLicenseSigningOrg: {
+ title: '行驶证签发机关',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ carDistinguishCode: {
+ title: '车辆识别代码',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ useNature: {
+ title: '使用性质',
+ type: 'string',
+ maxLength: 30,
+ enum: [
+ { label: '非营运', value: 0 },
+ { label: '营运', value: 1 }
+ ],
+ ui: {
+ widget: 'select',
+ placeholder: '请选择'
+ }
+ },
+ curbWeight: {
+ title: '整备质量',
+ type: 'string',
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ carOwner: {
+ title: '所有人',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ titleB: {
+ title: '道运证(选填)',
+ type: 'string',
+ ui: {
+ widget: 'text'
+ },
+ default: '照片上传后会自动识别文字并填充下列内容栏'
+ },
+ roadTransportPhotoWatermark: {
+ 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。蓝牌绿牌车辆,可不用传道运证',
+ data: {
+ appId: this.envSrv.env.appId
+ },
+ name: 'multipartFile',
+ multiple: false,
+ listType: 'picture-card',
+ change: (args: any) => {
+ if (args.type === 'success') {
+ this.detailData.roadTransportPhoto = args.file.response.data.fullFilePath;
+ this.checkTransCard(args.file.response.data.fullFilePath);
+ } else {
+ this.detailData.roadTransportPhoto = '';
+ }
+ },
+ 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)
+ }
+ },
+ roadTransportNo: {
+ title: '道运证号码',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ // widget: this.detailData.commitFlag !== 0 ? 'text' : '',
+ placeholder: '请输入'
+ }
+ },
+ roadTransportLicenceNo: {
+ title: '经营许可证号',
+ type: 'string',
+ maxLength: 30,
+ ui: {
+ // widget: this.detailData.commitFlag !== 0 ? 'text' : '',
+ placeholder: '请输入'
+ }
+ },
+ roadTransportStartTime: {
+ title: '发证日期',
+ type: 'string',
+ format: 'date',
+ ui: {
+ placeholder: '请输入'
+ }
+ },
+ roadTransportEndTime: {
+ title: '有效期至',
+ type: 'string',
+ format: 'date',
+ ui: {
+ placeholder: '请输入'
+ }
+ }
+ },
+ required: [
+ 'carFrontPhotoWatermark',
+ 'carNo',
+ 'carNoColor',
+ 'carModel',
+ 'carLength',
+ 'carLoad',
+ 'isSelf',
+ 'isTrailer',
+ 'certificatePhotoFrontWatermark',
+ 'certificatePhotoBackWatermark',
+ 'driverLicenseRegisterTime',
+ 'driverLicenseGetTime',
+ 'driverLicenseEndTime',
+ 'driverLicenseSigningOrg',
+ 'carDistinguishCode',
+ 'useNature',
+ 'carOwner'
+ ]
+ };
+
+ this.ui = {
+ '*': {
+ spanLabelFixed: 180,
+ grid: { span: 18 },
+ width: 600
+ },
+ $title1: {
+ spanLabelFixed: 0
+ },
+ $title2: {
+ spanLabelFixed: 0
+ },
+ $title3: {
+ 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 }
+ }
+ };
+ }
+ // 道路运输证识别
+ checkTransCard(imgurl: any) {
+ const params = {
+ transportationLicenseUrl: imgurl
+ };
+ this.service.request(this.service.$api_recognizeTransportationLicense, params).subscribe(res => {
+ if (res) {
+ this.sf.setValue('/roadTransportNo', res.number);
+ this.sf.setValue('/roadTransportLicenceNo', res.businessCertificate);
+ this.sf.setValue('/roadTransportStartTime', res.issueDate);
+ if (this.carNo === '') {
+ this.carNo = res.number;
+ } else if (this.carNo && res.vehicleNumber.indexOf(this.carNo) === -1) {
+ this.service.msgSrv.warning('请上传同一认证车辆的相关证件');
+ }
+ }
+ });
+ }
+ // 行驶证识别
+ checkCarCard(imgurl: any, side: any) {
+ const params = {
+ vehicleLicenseUrl: imgurl,
+ side
+ };
+ this.service.request(this.service.$api_recognizeVehicleLicense, params).subscribe(res => {
+ if (res) {
+ if (side === 'front') {
+ // 正面
+ this.sf.setValue('/driverLicenseRegisterTime', res.registerDate);
+ this.sf.setValue('/carNo', res.number);
+ this.sf.setValue('/driverLicenseGetTime', res.issueDate);
+ this.sf.setValue('/driverLicenseSigningOrg', res.issuingAuthority);
+ this.sf.setValue('/carDistinguishCode', res.vin);
+ this.sf.setValue('/carOwner', res.name);
+ this.sf.setValue('/useNature', res.useCharacter === '非营运' ? 0 : 1);
+ } else {
+ this.sf.setValue('/curbWeight', res.unladenMass);
+ }
+ if (this.carNo === '') {
+ this.carNo = res.number;
+ } else if (this.carNo && this.carNo !== res.number) {
+ this.service.msgSrv.warning('请上传同一认证车辆的相关证件');
+ }
+ }
+ });
+ }
+
+ close(): void {
+ this.modal.destroy();
+ }
+ showExample() {
+ this.showCardFlag = !this.showCardFlag;
+ }
+ showJopExample() {
+ this.showJopFlag = !this.showJopFlag;
+ }
+ submitForm() {
+ const params: any = {
+ appUserId: this.i.appUserId,
+ ...this.sf.value
+ };
+ params.carFrontPhoto = this.detailData.carFrontPhoto;
+ params.carProtocal = this.detailData.carProtocal;
+ params.certificatePhotoFront = this.detailData.certificatePhotoFront;
+ params.certificatePhotoBack = this.detailData.certificatePhotoBack;
+ params.roadTransportPhoto = this.detailData.roadTransportPhoto;
+ params.carFrontPhotoWatermark = this.sf.value.carFrontPhotoWatermark.data.fullFilePath
+ params.carProtocalWatermark = this.sf.value.carProtocalWatermark.data.fullFilePath
+ params.certificatePhotoBackWatermark = this.sf.value.certificatePhotoBackWatermark.data.fullFilePath
+ params.certificatePhotoFrontWatermark = this.sf.value.certificatePhotoFrontWatermark.data.fullFilePath
+ params.roadTransportPhotoWatermark = this.sf.value.roadTransportPhotoWatermark.data.fullFilePath
+ delete params.titleA;
+ delete params.titleB;
+ this.service.request(this.service.$api_saveUpdateShipperCar, params).subscribe(res => {
+ if (res) {
+ this.service.msgSrv.success('添加成功');
+ this.modal.close(true);
+ }
+ });
+ }
+}
diff --git a/src/app/routes/vehicle/components/list/list.component.html b/src/app/routes/vehicle/components/list/list.component.html
index 618b5ffd..4179d935 100644
--- a/src/app/routes/vehicle/components/list/list.component.html
+++ b/src/app/routes/vehicle/components/list/list.component.html
@@ -37,8 +37,11 @@
-
-
+
+
+
+
{
+ this.st.load()
+ });
+ }
}
diff --git a/src/app/routes/vehicle/services/vehicle.service.ts b/src/app/routes/vehicle/services/vehicle.service.ts
index 938e65a6..f82bc175 100644
--- a/src/app/routes/vehicle/services/vehicle.service.ts
+++ b/src/app/routes/vehicle/services/vehicle.service.ts
@@ -13,7 +13,7 @@ import { BaseService } from 'src/app/shared/services/core/base.service';
import { EAFileUtil } from 'src/app/shared/utils/file.util';
@Injectable({
- providedIn: 'root',
+ providedIn: 'root'
})
export class VehicleService extends BaseService {
// 查询车辆认证表
@@ -35,28 +35,35 @@ export class VehicleService extends BaseService {
// 审核司机挂靠协议(审核列表)
$api_get_auditCarProtocal_audit = `/api/mdc/cuc/carLicenseAudit/operate/auditCarProtocal`;
-
// 更新司机车辆审核信息(审核列表)
$api_get_update_audit = `/api/mdc/cuc/carLicenseAudit/operate/update`;
// 更新司机车辆审核信息
- $api_get_update= `/api/mdc/cuc/carLicense/operate/update`;
+ $api_get_update = `/api/mdc/cuc/carLicense/operate/update`;
// 上传司机挂靠协议
- $api_get_upLoadCarProtocal= `/api/mdc/cuc/carLicenseAudit/operate/upLoadCarProtocal`;
+ $api_get_upLoadCarProtocal = `/api/mdc/cuc/carLicenseAudit/operate/upLoadCarProtocal`;
// 根据车牌号查询车辆信息(车辆认证表)
- $api_get_getCarLicenseListByCarNo= `/api/mdc/cuc/carLicense/findCarLicenseByCarNo`;
+ $api_get_getCarLicenseListByCarNo = `/api/mdc/cuc/carLicense/findCarLicenseByCarNo`;
// /api/mdc/cuc/carLicense/findCarLicenseByCarNo
// 根据车牌号查询车辆信息(车辆审核认证表)
- $api_get_getCarLicenseListByCarNo_audit= `/api/mdc/cuc/carLicenseAudit/operate/findCarLicenseAuditListByCarNo`;
+ $api_get_getCarLicenseListByCarNo_audit = `/api/mdc/cuc/carLicenseAudit/operate/findCarLicenseAuditListByCarNo`;
// 导出(车辆认证表)
- $api_carLicense_export= `/api/mdc/cuc/carLicense/operate/export`;
+ $api_carLicense_export = `/api/mdc/cuc/carLicense/operate/export`;
// 导出(车辆审核认证表)
- $api_carLicenseAudit_export= `/api/mdc/cuc/carLicenseAudit/operate/export`;
-
-
+ $api_carLicenseAudit_export = `/api/mdc/cuc/carLicenseAudit/operate/export`;
+ // 获取货主车辆信息
+ $api_shipperCarGet = '/api/mdc/shipperCar/get';
+ // 根据地区code查询列表
+ $api_getRegionByCode = '/api/mdc/pbc/region/getRegionByCode';
+ // 道路运输证识别
+ $api_recognizeTransportationLicense = '/api/mdc/pbc/hwc/ocr/recognizeTransportationLicense';
+ // 行驶证识别
+ $api_recognizeVehicleLicense = '/api/mdc/pbc/hwc/ocr/recognizeVehicleLicense';
+ // 保存货主车辆关联表
+ $api_saveUpdateShipperCar = '/api/mdc/shipperCar/saveUpdateShipperCar';
constructor(public injector: Injector) {
super(injector);
}
diff --git a/src/app/routes/vehicle/vehicle.module.ts b/src/app/routes/vehicle/vehicle.module.ts
index ce0609f6..72ab6e09 100644
--- a/src/app/routes/vehicle/vehicle.module.ts
+++ b/src/app/routes/vehicle/vehicle.module.ts
@@ -10,6 +10,7 @@ import { NgModule } from '@angular/core';
import { SharedModule } from '@shared';
import { VehicleComponentsAuditComponent } from './components/audit/audit.component';
import { VehicleComponentsAuditDetailComponent } from './components/audit/detail/detail.component';
+import { CarSettleCarauthComponent } from './components/list/carauth/carauth.component';
import { VehicleComponentsListDetailComponent } from './components/list/detail/detail.component';
import { VehicleComponentsListEditComponent } from './components/list/edit/edit.component';
import { VehicleImgViewComponent } from './components/list/img-view/img-view.component';
@@ -24,6 +25,7 @@ const COMPONENTS = [
VehicleImgViewComponent,
VehicleComponentsAuditComponent,
VehicleComponentsAuditDetailComponent,
+ CarSettleCarauthComponent
];
@NgModule({
diff --git a/src/assets/images/vehicle/agree.png b/src/assets/images/vehicle/agree.png
new file mode 100644
index 00000000..53ee1c1a
Binary files /dev/null and b/src/assets/images/vehicle/agree.png differ
diff --git a/src/assets/images/vehicle/agreement.png b/src/assets/images/vehicle/agreement.png
new file mode 100644
index 00000000..fbb98ea9
Binary files /dev/null and b/src/assets/images/vehicle/agreement.png differ
diff --git a/src/assets/images/vehicle/car.png b/src/assets/images/vehicle/car.png
new file mode 100644
index 00000000..036ac2b4
Binary files /dev/null and b/src/assets/images/vehicle/car.png differ
diff --git a/src/assets/images/vehicle/driverback.png b/src/assets/images/vehicle/driverback.png
new file mode 100644
index 00000000..8fea60cf
Binary files /dev/null and b/src/assets/images/vehicle/driverback.png differ
diff --git a/src/assets/images/vehicle/driverfront.png b/src/assets/images/vehicle/driverfront.png
new file mode 100644
index 00000000..96d378d6
Binary files /dev/null and b/src/assets/images/vehicle/driverfront.png differ
diff --git a/src/assets/images/vehicle/road.png b/src/assets/images/vehicle/road.png
new file mode 100644
index 00000000..290a1e26
Binary files /dev/null and b/src/assets/images/vehicle/road.png differ