318 lines
10 KiB
TypeScript
318 lines
10 KiB
TypeScript
|
||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||
import {
|
||
SFComponent,
|
||
SFCustomWidgetSchema,
|
||
SFDateWidgetSchema,
|
||
SFNumberWidgetSchema,
|
||
SFRadioWidgetSchema,
|
||
SFSchema,
|
||
SFSelectWidgetSchema,
|
||
SFTextareaWidgetSchema,
|
||
SFUISchema,
|
||
SFUploadWidgetSchema
|
||
} from '@delon/form';
|
||
import { apiConf } from '@conf/api.conf';
|
||
import { _HttpClient } from '@delon/theme';
|
||
import { NzMessageService } from 'ng-zorro-antd/message';
|
||
import { NzModalRef } from 'ng-zorro-antd/modal';
|
||
import { Observable, Observer } from 'rxjs';
|
||
import { WaybillManagementServe } from 'src/app/routes/waybill-management/services/waybill-management.service';
|
||
import { EAEnvironmentService, EADateUtil } from '@shared';
|
||
import { DatePipe } from '@angular/common';
|
||
|
||
@Component({
|
||
selector: 'app-order-management-vehicle-sure-depart',
|
||
templateUrl: './sure-depart.component.html',
|
||
styleUrls: ['./sure-depart.component.less'],
|
||
providers: [DatePipe]
|
||
})
|
||
export class VehicleSureDepartComponent implements OnInit {
|
||
record: any = {};
|
||
i: any;
|
||
Status: any;
|
||
data: any ={
|
||
weight: '',
|
||
volume: ''
|
||
};
|
||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||
schema: SFSchema = {};
|
||
ui: SFUISchema = {};
|
||
constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public http: _HttpClient, public service: WaybillManagementServe, private envSrv: EAEnvironmentService,private datePipe: DatePipe) {}
|
||
|
||
ngOnInit(): void {
|
||
this.initSF();
|
||
console.log(this.i)
|
||
this.data.weight = this.i?.weight
|
||
this.i.time = this.i.loadingTime;
|
||
}
|
||
initSF() {
|
||
if(this.Status === 1) {
|
||
this.schema = {
|
||
properties: {
|
||
time: {
|
||
type: 'string',
|
||
title: '装货时间',
|
||
format: 'date-time',
|
||
},
|
||
no4: {
|
||
type: 'string',
|
||
title: '',
|
||
ui: {
|
||
widget: 'text',
|
||
},
|
||
default: '单张大小不超过5M,支持.jpg、.jpeg和 .png格式',
|
||
},
|
||
imgUrl1: {
|
||
type: 'string',
|
||
title: '装货凭证',
|
||
ui: {
|
||
widget: 'upload',
|
||
action: apiConf.fileUpload,
|
||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||
limit: 1,
|
||
limitFileCount: 1,
|
||
resReName: 'data.fullFileWatermarkPath',
|
||
urlReName: 'data.fullFileWatermarkPath',
|
||
descriptionI18n: '提货单',
|
||
data: {
|
||
appId: this.envSrv.env.appId,
|
||
},
|
||
name: 'multipartFile',
|
||
beforeUpload: (file: any, fileList: any) => {
|
||
return new Observable((observer: Observer<boolean>) => {
|
||
const isLt1M = file.size / 1024 / 1024 < 5;
|
||
const fileType = 'image/png,image/jpeg';
|
||
if (fileType.indexOf(file.type) === -1) {
|
||
this.service.msgSrv.warning('图片格式不正确!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
if (!isLt1M) {
|
||
this.service.msgSrv.warning('图片大小超过5M!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
observer.next(isLt1M);
|
||
observer.complete();
|
||
});
|
||
},
|
||
multiple: false,
|
||
listType: 'picture-card',
|
||
showRequired: true,
|
||
} as SFUploadWidgetSchema,
|
||
},
|
||
imgUrl2: {
|
||
type: 'string',
|
||
title: '',
|
||
ui: {
|
||
widget: 'upload',
|
||
action: apiConf.fileUpload,
|
||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||
limit: 1,
|
||
limitFileCount: 1,
|
||
resReName: 'data.fullFileWatermarkPath',
|
||
urlReName: 'data.fullFileWatermarkPath',
|
||
descriptionI18n: '人车货照片',
|
||
data: {
|
||
appId: this.envSrv.env.appId,
|
||
},
|
||
name: 'multipartFile',
|
||
beforeUpload: (file: any, fileList: any) => {
|
||
return new Observable((observer: Observer<boolean>) => {
|
||
const isLt1M = file.size / 1024 / 1024 < 5;
|
||
const fileType = 'image/png,image/jpeg';
|
||
if (fileType.indexOf(file.type) === -1) {
|
||
this.service.msgSrv.warning('图片格式不正确!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
if (!isLt1M) {
|
||
this.service.msgSrv.warning('图片大小超过5M!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
observer.next(isLt1M);
|
||
observer.complete();
|
||
});
|
||
},
|
||
multiple: false,
|
||
listType: 'picture-card',
|
||
showRequired: true,
|
||
} as SFUploadWidgetSchema,
|
||
}
|
||
},
|
||
required: ['reason']
|
||
};
|
||
} else {
|
||
this.schema = {
|
||
properties: {
|
||
time: {
|
||
type: 'string',
|
||
title: '装货时间',
|
||
format: 'date-time',
|
||
},
|
||
weight: {
|
||
type: 'string',
|
||
title: '装货重量',
|
||
ui: {
|
||
widget: 'custom',
|
||
}
|
||
},
|
||
volume: {
|
||
type: 'string',
|
||
title: '装货体积',
|
||
ui: {
|
||
widget: 'custom',
|
||
}
|
||
},
|
||
no4: {
|
||
type: 'string',
|
||
title: '',
|
||
ui: {
|
||
widget: 'text',
|
||
},
|
||
default: '单张大小不超过5M,支持.jpg、.jpeg和 .png格式',
|
||
},
|
||
imgUrl1: {
|
||
type: 'string',
|
||
title: '装货凭证',
|
||
ui: {
|
||
widget: 'upload',
|
||
action: apiConf.fileUpload,
|
||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||
limit: 1,
|
||
limitFileCount: 1,
|
||
resReName: 'data.fullFileWatermarkPath',
|
||
urlReName: 'data.fullFileWatermarkPath',
|
||
descriptionI18n: '提货单',
|
||
data: {
|
||
appId: this.envSrv.env.appId,
|
||
},
|
||
name: 'multipartFile',
|
||
beforeUpload: (file: any, fileList: any) => {
|
||
return new Observable((observer: Observer<boolean>) => {
|
||
const isLt1M = file.size / 1024 / 1024 < 5;
|
||
const fileType = 'image/png,image/jpeg';
|
||
if (fileType.indexOf(file.type) === -1) {
|
||
this.service.msgSrv.warning('图片格式不正确!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
if (!isLt1M) {
|
||
this.service.msgSrv.warning('图片大小超过5M!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
observer.next(isLt1M);
|
||
observer.complete();
|
||
});
|
||
},
|
||
multiple: false,
|
||
listType: 'picture-card',
|
||
showRequired: true,
|
||
} as SFUploadWidgetSchema,
|
||
},
|
||
imgUrl2: {
|
||
type: 'string',
|
||
title: '',
|
||
ui: {
|
||
widget: 'upload',
|
||
action: apiConf.fileUpload,
|
||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||
limit: 1,
|
||
limitFileCount: 1,
|
||
resReName: 'data.fullFileWatermarkPath',
|
||
urlReName: 'data.fullFileWatermarkPath',
|
||
descriptionI18n: '人车货照片',
|
||
data: {
|
||
appId: this.envSrv.env.appId,
|
||
},
|
||
name: 'multipartFile',
|
||
beforeUpload: (file: any, fileList: any) => {
|
||
return new Observable((observer: Observer<boolean>) => {
|
||
const isLt1M = file.size / 1024 / 1024 < 5;
|
||
const fileType = 'image/png,image/jpeg';
|
||
if (fileType.indexOf(file.type) === -1) {
|
||
this.service.msgSrv.warning('图片格式不正确!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
if (!isLt1M) {
|
||
this.service.msgSrv.warning('图片大小超过5M!');
|
||
observer.complete();
|
||
return;
|
||
}
|
||
observer.next(isLt1M);
|
||
observer.complete();
|
||
});
|
||
},
|
||
multiple: false,
|
||
listType: 'picture-card',
|
||
showRequired: true,
|
||
} as SFUploadWidgetSchema,
|
||
}
|
||
},
|
||
required: ['time', 'weight']
|
||
};
|
||
}
|
||
|
||
this.ui = {
|
||
'*': {
|
||
spanLabelFixed: 100,
|
||
grid: { span: 20 }
|
||
},
|
||
$imgUrl1: { grid: { span: 12} },
|
||
$imgUrl2: { grid: { span: 12} },
|
||
};
|
||
}
|
||
save(value: any): void {
|
||
if(this.Status === 1) {
|
||
if(!value.time) {
|
||
this.service.msgSrv.warning('必填项为空!')
|
||
return;
|
||
}
|
||
const params = {
|
||
id: this.i.id,
|
||
imgUrl1: value.imgUrl1.data.fullFilePath,
|
||
imgUrl2: value.imgUrl2.data.fullFilePath,
|
||
time: value.time,
|
||
}
|
||
params.time = this.datePipe.transform(value.time, 'yyyy-MM-dd HH:mm:ss ')
|
||
this.service.request(this.service.$api_get_insertWholeStartCarInfo, params).subscribe((res) => {
|
||
if(res) {
|
||
this.service.msgSrv.success('确认发车成功!')
|
||
this.modal.destroy(true);
|
||
}
|
||
})
|
||
} else {
|
||
if(!value.time || !this.data.weight) {
|
||
this.service.msgSrv.warning('必填项为空!')
|
||
return;
|
||
}
|
||
console.log(value)
|
||
const params = {
|
||
id: this.i.id,
|
||
imgUrl1: value.imgUrl1.data.fullFilePath,
|
||
imgUrl2: value.imgUrl2.data.fullFilePath,
|
||
time: value.time,
|
||
volume: this.data.volume,
|
||
weight: this.data.weight
|
||
}
|
||
params.time = this.datePipe.transform(value.time, 'yyyy-MM-dd HH:mm:ss ')
|
||
this.service.request(this.service.$api_get_insertBulkStartCarInfo, params).subscribe((res) => {
|
||
if(res) {
|
||
this.service.msgSrv.success('确认发车成功!')
|
||
this.modal.destroy(true);
|
||
}
|
||
})
|
||
}
|
||
|
||
}
|
||
|
||
close(): void {
|
||
this.modal.destroy(true);
|
||
}
|
||
|
||
}
|