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) => { 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) => { 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) => { 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) => { 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{ this.service.msgSrv.error(res.msg) } }) } 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); } else{ this.service.msgSrv.error(res.msg) } }) } } close(): void { this.modal.destroy(true); } }