This commit is contained in:
wangshiming
2022-03-03 14:27:42 +08:00
parent 9afb89b82b
commit 23b0512e9c
3 changed files with 123 additions and 98 deletions

View File

@ -46,13 +46,14 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
startInfo: any = [];
endInfo: any = [];
PageStatus = '';
shipperName = '';
limitValues = {
maxMonth: 99,
maxWeight: 99999,
maxVolume: 99999,
maxTrainNumber: 99999,
maxFreight: 9999999
}
};
constructor(
private http: _HttpClient,
fb: FormBuilder,
@ -118,7 +119,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,"");
let str = q.replace(/^\s+|\s+$/g, '');
if (str) {
return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -128,12 +129,13 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
return of([]);
}
},
change: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,"");
change: (q: any, qs: any) => {
let str = q.replace(/^\s+|\s+$/g, '');
if (str) {
this.getRegionCode(str);
this.getRegionCode(str);
this.shipperName = qs?.label;
}
},
}
} as SFSelectWidgetSchema
},
enterpriseProjectId: {
@ -158,7 +160,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
ui: {
placeholder: '请输入',
format: 'yyyy-MM-dd HH:mm:ss',
validator: (val) => {
validator: val => {
let d = new Date();
let year = d.getFullYear();
let month = d.getMonth();
@ -171,7 +173,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
return [{ keyword: 'validTime2', message: `有效期最长为${this.limitValues.maxMonth}个月` }];
}
return [];
},
}
}
},
dispatchPhone: {
@ -369,13 +371,13 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
ui: {
widget: 'select',
mode: 'multiple',
maxMultipleCount:3,
maxMultipleCount: 3,
placeholder: '请选择车型',
errors: { required: '请选择车型' },
asyncData: () => this.service.getDictOptions({ dictKey: 'car:model' }),
change:(tag:any , org:any)=>{
if(tag.includes("999")){
this.sf4.setValue('/carModel',["999"]);
change: (tag: any, org: any) => {
if (tag.includes('999')) {
this.sf4.setValue('/carModel', ['999']);
}
}
}
@ -386,17 +388,17 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
ui: {
widget: 'select',
mode: 'multiple',
maxMultipleCount:3,
maxMultipleCount: 3,
placeholder: '请选择车长',
errors: { required: '请选择车长' },
asyncData: () => this.service.getDictOptions({ dictKey: 'car:length' }),
change:(tag:any , org:any)=>{
if(tag.includes("999")){
this.sf4.setValue('/carModel',["999"]);
change: (tag: any, org: any) => {
if (tag.includes('999')) {
this.sf4.setValue('/carModel', ['999']);
}
}
}
},
}
},
required: ['weight', 'carModel', 'carLength', 'freightPrice', 'rule', 'settlementBasis']
};
@ -483,7 +485,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
visibleIf: {
receiptType: value => value === '2'
}
},
}
},
receiptUserPhone: {
type: 'string',
@ -493,7 +495,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
visibleIf: {
receiptType: value => value === '2'
}
},
}
},
receiptAddressArea: {
type: 'string',
@ -503,7 +505,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
visibleIf: {
receiptType: value => value === '2'
}
},
}
},
receiptAddress: {
type: 'string',
@ -513,7 +515,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
visibleIf: {
receiptType: value => value === '2'
}
},
}
},
paymentDays: {
type: 'string',
@ -535,7 +537,15 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
} as SFTextareaWidgetSchema
}
},
required: ['stateReceipt', 'receiptType', 'receiptUserName','receiptUserPhone','receiptAddressArea','receiptAddress','paymentDays']
required: [
'stateReceipt',
'receiptType',
'receiptUserName',
'receiptUserPhone',
'receiptAddressArea',
'receiptAddress',
'paymentDays'
]
};
this.ui7 = {
'*': {
@ -664,13 +674,19 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
this.sf1.validator({ emitError: true });
this.sf3.validator({ emitError: true });
this.sf4.validator({ emitError: true });
if (this.validateForm1.invalid || !this.sf1.valid || !this.sf3.valid || !this.sf4.valid ) {
if (this.validateForm1.invalid || !this.sf1.valid || !this.sf3.valid || !this.sf4.valid) {
this.service.msgSrv.warning('请完善必填项!');
return;
}
// 校验各个输入限定值
if (this.sf4.value.weight > this.limitValues.maxWeight || this.sf4.value.volume > this.limitValues.maxVolume || this.sf4.value.number > this.limitValues.maxTrainNumber) {
this.service.msgSrv.error(`当前货物核载信息已超出限定值【${this.limitValues.maxWeight}吨、${this.limitValues.maxVolume}方、${this.limitValues.maxTrainNumber}车】`);
if (
this.sf4.value.weight > this.limitValues.maxWeight ||
this.sf4.value.volume > this.limitValues.maxVolume ||
this.sf4.value.number > this.limitValues.maxTrainNumber
) {
this.service.msgSrv.error(
`当前货物核载信息已超出限定值【${this.limitValues.maxWeight}吨、${this.limitValues.maxVolume}方、${this.limitValues.maxTrainNumber}车】`
);
return;
}
@ -679,58 +695,67 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
return;
}
// //装卸货信息
const LoadingList = this.startInfo.concat(this.endInfo);
// 货物信息
const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999'];
}
if (this.sf4.value.carLength.includes('999')) {
this.sf4.value.carLength = ['999'];
}
const goodsInfoDTOList = [
{
...this.sf4.value,
...this.sf3.value,
carModel: this.sf4.value.carModel.join(','),
carLength: this.sf4.value.carLength.join(',')
}
];
// 从“再下一单”过来将所有的子参数内的id都删除
if ((this.PageStatus = '大宗下一单')) {
LoadingList.forEach((ele: any) => {
delete ele.id;
});
goodsInfoDTOList.forEach((ele: any) => {
delete ele.id;
});
}
const params: any = {
...this.sf1.value,
...this.sf7.value,
unLoadingPlaceDTOList: LoadingList,
goodsInfoDTOList: goodsInfoDTOList
};
params.freightPrice = this.totalFees;
const modalRef = this.modalService.create({
nzTitle: '运输协议',
nzContent: TranAgreementComponent,
nzWidth: 900,
nzFooter: null
nzFooter: null,
nzComponentParams: { object: params, shipperName: this.shipperName }
});
modalRef.afterClose.subscribe(result => {
if (result) {
this.submit(submitType);
this.submit(submitType, params);
}
});
}
// 确认提交
submit(submitType?: string): void {
// //装卸货信息
const LoadingList = this.startInfo.concat(this.endInfo);
// 货物信息
const sf3Values = { ...this.sf3.value };
if (sf3Values.goodsTypeName === '其它') {
sf3Values.goodsName = sf3Values.goodsName1;
delete sf3Values.goodsName1;
}
if (this.sf4.value.carModel.includes('999')) {
this.sf4.value.carModel = ['999']
}
if (this.sf4.value.carLength.includes('999')) {
this.sf4.value.carLength = ['999']
}
const params: any = {
...this.sf1.value,
...this.sf7.value,
unLoadingPlaceDTOList: [...this.startInfo, ...this.endInfo],
goodsInfoDTOList: [
{
...this.sf4.value,
...this.sf3.value,
carModel: this.sf4.value.carModel.join(','),
carLength: this.sf4.value.carLength.join(',')
}
]
};
params.freightPrice = this.totalFees;
submit(submitType?: string, params?: any): void {
if (submitType) {
if (submitType == 'assign') {
this.chooseFamifiar(params);
return;
}else if(submitType === 'qrcode'){
} else if (submitType === 'qrcode') {
this.service.request(this.service.$api_saveAnotherBulkOrderQRCode, params).subscribe(res => {
if (res) {
this.assignedQrcode( res, params )
this.assignedQrcode(res, params);
}
});
return;
@ -742,28 +767,28 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
this.requests(this.service.$api_set_saveAnotherBulkOrder, params, 2);
}
}
// 生成二维码
assignedQrcode(id:string,parms:any ) {
const item = {
id,
enterpriseInfoName: parms.enterpriseInfoName,
loadingAddressArr: this.startInfo.map((ele: any)=>ele.detailedAddress),
unloadingAddressArr: this.endInfo.map((ele: any)=>ele.detailedAddress),
deadlineTime: parms.deadlineTime,
}
const modalRef = this.modalService.create({
nzTitle: '二维码',
nzWidth: '468px',
nzContent: SupplyManagementQrcodePageComponent,
nzComponentParams: {
i: item,
},
nzFooter: null,
});
modalRef.afterClose.subscribe(() => {
this.router.navigate(['/supply-management/index'], { queryParams: { type: 'bulk' } });
});
}
// 生成二维码
assignedQrcode(id: string, parms: any) {
const item = {
id,
enterpriseInfoName: parms.enterpriseInfoName,
loadingAddressArr: this.startInfo.map((ele: any) => ele.detailedAddress),
unloadingAddressArr: this.endInfo.map((ele: any) => ele.detailedAddress),
deadlineTime: parms.deadlineTime
};
const modalRef = this.modalService.create({
nzTitle: '二维码',
nzWidth: '468px',
nzContent: SupplyManagementQrcodePageComponent,
nzComponentParams: {
i: item
},
nzFooter: null
});
modalRef.afterClose.subscribe(() => {
this.router.navigate(['/supply-management/index'], { queryParams: { type: 'bulk' } });
});
}
requests(url: any, params: any, change?: any) {
this.service.request(url, params).subscribe((res: any) => {
if (res) {
@ -875,6 +900,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
dataR(res: any) {
// 注:区分编辑和下一单 区别是初始化的时候加不加ID
if (res?.shipperAppUserName) {
this.shipperName = res?.shipperAppUserName;
const List: any = [];
this.service.request(this.service.$api_enterpriceList, { enterpriseName: res?.shipperAppUserName }).subscribe(rs => {
rs?.forEach((element: any) => {
@ -1057,8 +1083,8 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
}
});
}
// 装卸货地址互换
swapAddress(){
// 装卸货地址互换
swapAddress() {
let item = this.startInfo;
this.startInfo = this.endInfo;
this.endInfo = item;
@ -1084,9 +1110,9 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
this.service.limitKeys2.weight,
this.service.limitKeys2.volume,
this.service.limitKeys2.trainNumber,
this.service.limitKeys2.freight,
this.service.limitKeys2.freight
];
this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe((res) => {
this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe(res => {
const maxMonth = res.filter((item: any) => item.itemKey === this.service.limitKeys2.month)[0].itemValue;
const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys2.weight)[0].itemValue;
const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys2.volume)[0].itemValue;
@ -1098,7 +1124,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
maxVolume: Number(maxVolume),
maxTrainNumber: Number(maxTrainNumber),
maxFreight: Number(maxFreight)
}
})
};
});
}
}