Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop

This commit is contained in:
Taric Xin
2022-03-10 18:03:47 +08:00
17 changed files with 402 additions and 228 deletions

View File

@ -296,20 +296,20 @@
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="联系人"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证">
<sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<nz-upload
class="avatar-uploader"
[nzAction]="service.$api_upload_url"

View File

@ -182,19 +182,19 @@
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="联系人"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证">
<sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
<sv label="备注">

View File

@ -4,13 +4,19 @@
* @Author : Shiming
* @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming
* @LastEditTime : 2022-02-23 15:27:52
* @LastEditTime : 2022-03-10 11:13:18
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\complaint\\complaint.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<!-- 搜索表单 -->
<page-header-wrapper [title]="''">
<page-header-wrapper title="" [tab]="tpTab">
<ng-template #tpTab>
<nz-tabset [nzSelectedIndex]="selectedIndex" (nzSelectedIndexChange)="selectChange($event)">
<nz-tab *ngFor="let tab of mainTabs" [nzTitle]="tab.name" (nzSelect)="selectMainTab(tab)">
</nz-tab>
</nz-tabset>
</ng-template>
</page-header-wrapper>
<nz-card>
<div nz-row nzGutter="8">

View File

@ -23,24 +23,16 @@ export class OrderManagementComplaintComponent implements OnInit {
_$expand = false;
channelId: any;
resourceStatus: any;
selectedMainTabStatus = '1';
@ViewChild('st') private readonly st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('sfView', { static: false }) sfView!: SFComponent;
columns: STColumn[] = [];
datass: any = [
{
one: '1',
two: '1',
three: '1',
id: 1
},
{
one: '2',
two: '2',
three: '2',
id: 2
},
];
selectedIndex: number = 0;
mainTabs = [
{ name: '投诉', status: '1' },
{ name: '被投诉', status: '2' },
]
tabs = [ {
name: '全部',
type: 0,
@ -62,7 +54,11 @@ export class OrderManagementComplaintComponent implements OnInit {
public service: OrderManagementService,
private modal: NzModalService,
private router: Router
) { }
) { if (this.selectedIndex === 0) {
this.selectedMainTabStatus = '1';
} else if (this.selectedIndex === 1) {
this.selectedMainTabStatus = '2';
}}
/**
* 查询参数
@ -72,6 +68,9 @@ export class OrderManagementComplaintComponent implements OnInit {
if(this.resourceStatus) {
a.complaintStatus = this.resourceStatus
}
if(this.selectedMainTabStatus) {
a.complaintType = this.selectedMainTabStatus
}
const params: any = Object.assign({}, this.sf?.value || {});
delete params._$expand;
return {
@ -155,7 +154,14 @@ export class OrderManagementComplaintComponent implements OnInit {
className: 'text-center',
width: '120px',
index: 'complaintStatusLabel'
}, {
},
{
title: '处理人',
className: 'text-center',
width: '200px',
index:'handlePartyLabel'
},
{
title: '处理结果',
className: 'text-center',
width: '170px',
@ -240,6 +246,19 @@ export class OrderManagementComplaintComponent implements OnInit {
this.st.load();
}, 500);
}
/**
* 切换投诉与被投诉tab
*/
selectMainTab(e: any) {
console.log(this.selectedIndex);
this.selectedMainTabStatus = e?.status;
this.initST();
this.initSF();
setTimeout(() => {
this.st.load(1);
})
}
/**
* 导入货源
*/

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming
* @LastEditTime : 2022-03-09 13:38:21
* @LastEditTime : 2022-03-09 10:33:44
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -48,8 +48,8 @@
<sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv>
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
<sv label="货源编号">{{ i?.resourceCode }} </sv>
<sv label="运单号">{{ i?.wayBillCode }}</sv>
<sv label="承诺付款天数">{{ i?.paymentDays }}</sv>
<sv label="运单号">{{ i?.wayBillId }}</sv>
<sv label="承诺付款天数">{{ i?.goodsResource?.dispatchName }}</sv>
</div>
<nz-tabset style="margin-top: 15px">
@ -203,7 +203,7 @@
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList" [pois]="pois"></amap-path-simplifier>
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div>
</div>
</nz-card>

View File

@ -155,16 +155,16 @@
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptTypeLabel }}
</sv>
<sv label="联系人">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptUserName ? i?.supplementaryInformationVO?.receiptUserName + '/' : '' }} {{ i?.supplementaryInformationVO?.phon }}
</sv>
<sv label="所在地区">
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
<sv label="备注" >

View File

@ -648,6 +648,10 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
this.service.msgSrv.warning('请完善必填项!');
return;
}
if (this.totalDistance <= 0) {
this.service.msgSrv.warning('起终点相同,请重新选择装卸货地址!');
return;
}
// 校验各个输入限定值
if (
this.sf4.value?.weight > this.limitValues?.maxWeight ||

View File

@ -580,6 +580,10 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
this.service.msgSrv.warning('请完善必填项!');
return;
}
if (this.totalDistance <= 0) {
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}车】`);

View File

@ -41,7 +41,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
maxPiece: 99999,
maxDays: 999,
intervalDays: 999,
maxTimes: 999
maxTimes: 5
};
sf1data: any; // 货源单设置回显
sf3data: any; // 货源单设置回显
@ -147,6 +147,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
title: '货主',
type: 'string',
maxLength: 30,
readOnly: this.PageStatus == '整车修改' ? true : false,
ui: {
widget: 'select',
// serverSearch: true,
@ -177,6 +178,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
enterpriseProjectId: {
type: 'string',
title: '项目',
readOnly: this.PageStatus == '整车修改' ? true : false,
ui: {
widget: 'select',
placeholder: '请选择'
@ -214,7 +216,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
ui: {
placeholder: '请输入'
}
},
}
// dispatchId: {
// type: 'string',
// title: '调度员',
@ -249,7 +251,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
},
$enterpriseProjectId: {
grid: { span: 12 }
},
}
};
}
initSF3() {
@ -347,7 +349,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
title: '',
ui: {
widget: 'custom',
placeholder: '请输入',
placeholder: '请输入'
}
},
number: {
@ -355,7 +357,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
title: '',
ui: {
widget: 'custom',
placeholder: '请输入',
placeholder: '请输入'
}
},
carModel: {
@ -429,7 +431,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
}
}
}
},
}
},
required: ['weight', 'carModel', 'carLength']
};
@ -454,7 +456,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
map((res: any) => {
return [...res];
})
)
);
},
change: (tag: any, org: any) => {
if (tag === '3') {
@ -519,9 +521,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
widget: 'custom',
visibleIf: { insuranceType: (value: string) => value === '1' }
}
},
}
},
required: ['insurancePremium']
};
@ -746,7 +746,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
});
}
addStartInfo() {
if (this.startInfo.length < 5) {
if (this.startInfo.length < this.limitValues.maxTimes) {
const controlId = this.startInfo.length;
this.startInfo.push({
detailedAddress: '',
@ -800,7 +800,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.validateForm1.removeControl(`loadPhone${index}`);
}
addEndInfo() {
if (this.endInfo.length < 5) {
if (this.endInfo.length < this.limitValues.maxTimes) {
const controlId = this.endInfo.length;
this.endInfo.push({
detailedAddress: '',
@ -864,7 +864,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
nzComponentParams: {
status: 'new',
url: this.service.$api_save_assign_whole,
params: item,
params: item
},
nzFooter: null
});
@ -895,10 +895,22 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.sf5.validator({ emitError: true });
this.sf6.validator({ emitError: true });
this.sf7.validator({ emitError: true });
if (this.validateForm1.invalid || !this.sf3.valid || !this.sf1.valid || !this.sf4.valid || !this.sf5.valid || !this.sf6.valid || !this.sf7.valid) {
if (
this.validateForm1.invalid ||
!this.sf3.valid ||
!this.sf1.valid ||
!this.sf4.valid ||
!this.sf5.valid ||
!this.sf6.valid ||
!this.sf7.valid
) {
this.service.msgSrv.warning('请完善必填项!');
return;
}
if (this.totalDistance <= 0) {
this.service.msgSrv.warning('起终点相同,请重新选择装卸货地址!');
return;
}
if (this.validateForm1.value.loadingTime < new Date()) {
this.service.msgSrv.warning('装货时间必须大于当前时间!');
return;
@ -979,7 +991,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
{ expenseCode: 'BACK', expenseName: '回单付', price: this.sf7.value.receiptPay || 0, id: this.sf7data?.receiptPayId || '' }
];
// 从“再下一单”过来将所有的子参数内的id都删除
if ((this.PageStatus === '整车下一单')) {
if (this.PageStatus === '整车下一单') {
LoadingList.forEach((ele: any) => {
delete ele.id;
});
@ -1004,7 +1016,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
estimatedKilometers: this.totalDistance,
estimatedTravelTime: this.totalTime,
insurancePackagedGoods: this.sf4.value.insurancePackagedGoods,
goodsValue:this.sf4.value.goodsValue,
goodsValue: this.sf4.value.goodsValue
};
const modalRef = this.modalService.create({
nzTitle: '运输协议',
@ -1136,7 +1148,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
enterpriseInfoId: res?.enterpriseInfoId,
dispatchPhone: res?.dispatchPhone,
dispatchName: res?.dispatchName,
externalResourceCode: res?.externalResourceCode,
externalResourceCode: res?.externalResourceCode
};
if (this.PageStatus === '整车修改') {
this.sf1data.id = res?.id;
@ -1248,7 +1260,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
carModel: res?.goodsInfoVOList[0]?.carModel?.split(',') || [],
carLength: res?.goodsInfoVOList[0]?.carLength?.split(',') || [],
goodsValue: res?.goodsValue || '',
insurancePackagedGoods: res?.insurancePackagedGoods || '',
insurancePackagedGoods: res?.insurancePackagedGoods || ''
};
if (this.PageStatus === '整车修改') {
this.sf4data.id = res?.goodsInfoVOList[0]?.id;
@ -1257,7 +1269,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.sf5data = {
insuranceType: res?.insuranceType || '',
insurancePremium: res?.insurancePremium || '',
insuranceRate: res?.insuranceRate || '',
insuranceRate: res?.insuranceRate || ''
};
this.sf6data = {
stateReceipt: res?.stateReceipt,
@ -1384,7 +1396,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
}
// 计算保价费金额
getInsurersPrice(insuranceType = this.sf5.value.insuranceType) {
console.log(this.totalDistance)
console.log(this.totalDistance);
if (insuranceType !== '3' && this.sf4.value?.goodsValue >= 50000 && this.totalDistance > 0) {
const params = {
insuranceType,

View File

@ -109,7 +109,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
maxPiece: 99999,
maxDays: 999,
intervalDays: 999,
maxTimes: 999
maxTimes: 5
};
formatterRmb = (value: number): string => {
@ -211,7 +211,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
ui: {
placeholder: '请输入'
}
},
}
},
required: ['shipperAppUserId', 'enterpriseProjectId', 'enterpriseInfoName']
};
@ -329,7 +329,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
title: '',
ui: {
widget: 'custom',
placeholder: '请输入',
placeholder: '请输入'
}
},
number: {
@ -337,7 +337,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
title: '',
ui: {
widget: 'custom',
placeholder: '请输入',
placeholder: '请输入'
}
},
carModel: {
@ -411,7 +411,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
}
}
}
},
}
},
required: ['weight', 'carModel', 'carLength']
};
@ -436,14 +436,14 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
map((res: any) => {
return [...res];
})
)
);
},
change: (tag: any, org: any) => {
if (tag === '3') {
this.sf5.setValue('/insurancePremium', null);
this.sf5.setValue('/insuranceRate', null);
} else {
console.log(tag)
console.log(tag);
this.getInsurersPrice(tag);
}
}
@ -502,9 +502,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
widget: 'custom',
visibleIf: { insuranceType: (value: string) => value === '1' }
}
},
}
},
required: ['insurancePremium']
};
@ -528,7 +526,6 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
};
}
initSF6() {
this.schema6 = {
properties: {
@ -767,7 +764,10 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
}
// 添加 删除发货卸货地址
addStartInfo() {
if (this.startInfo.length < 5) {
console.log(this.startInfo.length);
console.log(this.limitValues.maxTimes);
if (this.startInfo.length < this.limitValues.maxTimes) {
const controlId = this.startInfo.length;
this.startInfo.push({
detailedAddress: '',
@ -782,11 +782,11 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
});
this.validateForm1.addControl(`loadAddress${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`loadName${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, [Validators.required, Validators.pattern('^[0-9]*$')]));
}
}
// 添加 删除发货卸货地址
subStartInfo(_event: any, index: number) {
subStartInfo(event: any, index: number) {
this.startInfo.splice(index, 1);
this.validateForm1.removeControl(`loadAddress${index}`);
this.validateForm1.removeControl(`loadName${index}`);
@ -794,7 +794,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
}
// 添加 删除发货卸货地址
addEndInfo() {
if (this.addEndInfo.length < 5) {
if (this.endInfo.length < this.limitValues.maxTimes) {
const controlId = this.endInfo.length;
this.endInfo.push({
detailedAddress: '',
@ -809,11 +809,14 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
});
this.validateForm1.addControl(`unloadAddress${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`unloadName${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(`unloadPhone${controlId}`, new FormControl(null, Validators.required));
this.validateForm1.addControl(
`unloadPhone${controlId}`,
new FormControl(null, [Validators.required, Validators.pattern('^[0-9]*$')])
);
}
}
// 添加 删除发货卸货地址
subEndInfo(_event: any, index: number) {
subEndInfo(event: any, index: number) {
this.endInfo.splice(index, 1);
this.validateForm1.removeControl(`unloadAddress${index}`);
this.validateForm1.removeControl(`unloadName${index}`);
@ -851,12 +854,24 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.sf5.validator({ emitError: true });
this.sf6.validator({ emitError: true });
this.sf7.validator({ emitError: true });
console.log(!this.sf1.valid)
console.log(this.sf1.value)
if (this.validateForm1.invalid || !this.sf3.valid || !this.sf1.valid || !this.sf4.valid || !this.sf5.valid || !this.sf6.valid || !this.sf7.valid) {
console.log(!this.sf1.valid);
console.log(this.sf1.value);
if (
this.validateForm1.invalid ||
!this.sf3.valid ||
!this.sf1.valid ||
!this.sf4.valid ||
!this.sf5.valid ||
!this.sf6.valid ||
!this.sf7.valid
) {
this.service.msgSrv.warning('请完善必填项!');
return;
}
if (this.totalDistance <= 0) {
this.service.msgSrv.warning('起终点相同,请重新选择装卸货地址!');
return;
}
if (this.validateForm1.value.loadingTime < new Date()) {
this.service.msgSrv.warning('装货时间必须大于当前时间!');
return;
@ -950,7 +965,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
estimatedKilometers: this.totalDistance,
estimatedTravelTime: this.totalTime,
insurancePackagedGoods: this.sf4.value.insurancePackagedGoods,
goodsValue:this.sf4.value.goodsValue,
goodsValue: this.sf4.value.goodsValue
};
console.log(params);
const modalRef = this.modalService.create({
@ -962,7 +977,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
});
modalRef.afterClose.subscribe(result => {
if (result) {
this.submit(submitType, params, );
this.submit(submitType, params);
}
});
}
@ -1175,8 +1190,8 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
}
// 计算保价费金额
getInsurersPrice(insuranceType = this.sf5.value?.insuranceType) {
console.log(insuranceType)
console.log(this.totalDistance)
console.log(insuranceType);
console.log(this.totalDistance);
if (insuranceType !== '3' && this.sf4.value?.goodsValue >= 50000 && this.totalDistance > 0) {
const params = {
insuranceType,

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-24 20:19:51
* @LastEditors : Shiming
* @LastEditTime : 2022-03-08 14:05:09
* @LastEditTime : 2022-03-10 10:27:21
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\tran-agreement\\tran-agreement.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -66,23 +66,23 @@ export class TranAgreementComponent {
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
shipperName:this?.shipperName || '', //托运人
carrierName:this.object?.enterpriseInfoName || '', //承运人
consignorInfo: `${this.object?.unLoadingPlaceDTOList[0].appUserName} ${this.object?.unLoadingPlaceDTOList[0].contractTelephone}`, // 发货信息
consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址
consignorInfo: `${this.object?.unLoadingPlaceDTOList[0]?.appUserName || ''} ${this.object?.unLoadingPlaceDTOList[0]?.contractTelephone || ''}`, // 发货信息
consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress || '', // 发货地址
consignorDate: this.object?.loadingTime || '', // 发货时间
consigneeInfo: `${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].appUserName} ${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].contractTelephone}`, // 收货信息
consigneeDate: this.object?.unloadingTime || '', // 收货时间
consigneeAddress: this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].detailedAddress || '', // 收货地址
goodsName:this.object?.goodsInfoDTOList[0].goodsName || '', // 货物名称
shippingType:'整车运输',
consignmentVolume:`${this.object?.goodsInfoDTOList[0].weight}吨/${this.object?.goodsInfoDTOList[0].volume}方/${this.object?.goodsInfoDTOList[0].number}`, //托运量
consignmentVolume:`${this.object?.goodsInfoDTOList[0]?.weight || '-'}吨/${this.object?.goodsInfoDTOList[0]?.volume || '-'}方/${this.object?.goodsInfoDTOList[0]?.number || '-'}`, //托运量
transporterInfo:'', //运输方信息
freightAmount:this.object?.total || '', // 订单运费金额(元)
pre:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'PRE')[0].price, //预付
rece:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'RECE')[0].price,// 到付
back:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'BACK')[0].price,// 回单付
pre:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'PRE')[0].price || '', //预付
rece:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'RECE')[0].price || '',// 到付
back:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'BACK')[0].price || '', // 回单付
lunarKnot:0,
total:this.object?.subtotal || '', // 合计(元)
paymentTime:`到货后${this.object?.paymentDays}`, // 承诺支付运费时间
paymentTime:`到货后${this.object?.paymentDays || ''}`, // 承诺支付运费时间
year:new Date().getFullYear() || '', // 签约年份
month:new Date().getMonth()+1 || '', // 签约月份
day:new Date().getDate() || '', // 签约日期
@ -100,15 +100,15 @@ export class TranAgreementComponent {
carrierName:this.object?.enterpriseInfoName || '', //承运人
shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
consignorInfo: `${this.object.unLoadingPlaceDTOList[0].appUserName} ${this.object.unLoadingPlaceDTOList[0].contractTelephone}`, // 发货信息
consignorInfo: `${this.object.unLoadingPlaceDTOList[0]?.appUserName || ''} ${this.object.unLoadingPlaceDTOList[0]?.contractTelephone || ''}`, // 发货信息
consignorAddress: this.object.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址
consignorDate: '', // 发货时间
consigneeInfo: `${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1].appUserName} ${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1].contractTelephone}`, // 收货信息
consigneeInfo: `${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.appUserName || ''} ${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.contractTelephone || ''}`, // 收货信息
consigneeDate: '', // 收货时间
consigneeAddress: this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1].detailedAddress, // 收货地址
consigneeAddress: this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.detailedAddress || '', // 收货地址
goodsName:this.object.goodsInfoDTOList[0]?.goodsName || '', // 货物名称
shippingType:'大宗运输',
consignmentVolume:`${this.object.goodsInfoDTOList[0].weight}吨/${this.object.goodsInfoDTOList[0].volume}方/${this.object.goodsInfoDTOList[0].number}`, //托运量
consignmentVolume:`${this.object?.goodsInfoDTOList?.[0]?.weight|| '-'}吨/${this.object?.goodsInfoDTOList?.[0]?.volume || '-'}方/${this.object.goodsInfoDTOList?.[0]?.number || '-'}`, //托运量
transporterInfo:'', //运输方信息
freightAmount:'', // 订单运费金额(元)
pre:'', //预付
@ -116,7 +116,7 @@ export class TranAgreementComponent {
back:'',// 回单付
lunarKnot:'',
total:'', // 合计(元)
paymentTime:`到货后${this.object.paymentDays}`, // 承诺支付运费时间
paymentTime:`到货后${this.object?.paymentDays || ''}`, // 承诺支付运费时间
year:new Date().getFullYear() || '', // 签约年份
month:new Date().getMonth()+1 || '', // 签约月份
day:new Date().getDate() || '', // 签约日期

View File

@ -199,13 +199,15 @@
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="所在地区">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName || '-' }} / {{ i?.supplementaryInformationVO?.phon || '-' }}
</sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
<sv label="备注">

View File

@ -183,12 +183,12 @@ export class SupplyManagementVehicleComponent implements OnInit {
if (res) {
console.log(res);
}
})
});
console.log(111);
}
},
}
]
})
});
}
});
}
@ -576,7 +576,7 @@ export class SupplyManagementVehicleComponent implements OnInit {
title: '创建时间',
width: '200px',
index: 'createTime',
className: 'text-left',
className: 'text-left'
},
{
title: '审核状态',
@ -606,7 +606,7 @@ export class SupplyManagementVehicleComponent implements OnInit {
{
text: '修改货源',
click: _record => this.amend(_record),
iif: item => item.resourceStatus === '1' ,
iif: item => item.resourceStatus === '1' && item.insurancePayment !== 'Y',
acl: { ability: ['SUPPLY-INDEX-vehicleModificationSupply'] }
},
// {
@ -640,8 +640,8 @@ export class SupplyManagementVehicleComponent implements OnInit {
exportFire() {
this.service.request(this.service.$api_asyncExportWholeList, this.reqParams).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('导出成功,请去下载中心下载!')
this.service.msgSrv.success('导出成功,请去下载中心下载!');
}
})
});
}
}

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-12-03 15:31:52
* @LastEditTime : 2022-02-28 11:50:00
* @LastEditTime : 2022-03-10 15:58:18
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\bulk-detail\\bulk-detail.component.html
@ -183,22 +183,22 @@
<sv label="是否回单">
{{i?.receiptType == 1 ?'是':'否'}}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.receiptType == 1">
{{i?.receiptTypeLabel}}
</sv>
<sv label="联系人">
<sv label="联系人" *ngIf="i?.receiptType == 1">
{{i?.receiptUser}} / {{i?.receiptUserPhone}}
</sv>
<sv label="所在地区">
<sv label="所在地区" *ngIf="i?.receiptType == 1">
{{i?.receiptPlace}}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.receiptType == 1">
{{i?.receiptAddress}}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证">
<sv label="回单凭证" *ngIf="i?.receiptType == 1">
<app-imagelist [imgList]="[i?.receiptFilePath]"></app-imagelist>
</sv>
<sv label="备注">
@ -209,19 +209,19 @@
<nz-card>
<div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%" id="distannce5" [nzExtra]="extraTemplate" #distannce5>
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row>
<div nz-col [nzSpan]="12">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="MapList"></amap-path-simplifier>
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div>
</div>
</nz-card>
<ng-template #extraTemplate>
<nz-radio-group [(ngModel)]="trajectory">
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)">
<label nz-radio-button nzValue="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group>

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-03 15:31:52
* @LastEditTime : 2022-03-02 16:24:32
* @LastEditTime : 2022-03-10 16:00:17
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\bulk-detail\\bulk-detail.component.ts
@ -30,14 +30,35 @@ export class WaybillManagementBulkeDetailComponent implements OnInit {
attObj: any;
isVisible = false;
MapList: any[]=[];
trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
imges: any;
unLoadingPlaceVOList: any = [];
logColumns: STColumn[] = [
logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' },
];
trajectory = 'car';
addressItems: any[] = []; //打点地址数据组
logColumns: STColumn[] = [
{ title: '款项', index: 'costCodeLabel' },
{ title: '小计(元)', render: 'price' },
{ title: '运输费(元)', render: 'price' },
{ title: '附加费(元)', render: 'surcharge' },
{ title: '支付时间', index: 'paymentTime' },
{
title: '支付状态',
className: 'text-center',
index: 'paymentStatus',
type: 'badge',
width: '120px',
badge: {
'1': { text: '待申请', color: 'warning' },
'2': { text: '已支付', color: 'success' },
'3': { text: '已拒绝', color: 'warning' },
'4': { text: '申请中', color: 'warning' }
}
}
];
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
@ -50,7 +71,7 @@ export class WaybillManagementBulkeDetailComponent implements OnInit {
ngOnInit(): void {
this.initData()
this.MapInit()
this.getDriverTrajectory()
}
initData() {
const params = {
@ -137,8 +158,8 @@ sureArrive(item: any) {
this.initData()
});
}
// 获取轨迹
MapInit() {
// 获取车辆轨迹
getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => {
if (res) {
const points = res.trackArray;
@ -149,8 +170,8 @@ sureArrive(item: any) {
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
});
});
this.MapList = list;
this.addressItems = res.parkArray;
this.mapList = list;
this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime);
@ -160,6 +181,36 @@ sureArrive(item: any) {
});
}
// 获取司机轨迹
getDriverTrajectory(){
this.service.request(this.service.$api_get_getAppDriverPosition, { id: this.id }).subscribe(res => {
if (res) {
const points = res.tracks;
let list :any[] = [];
points?.forEach((item: any) => {
list.push({
name: item.hgt,
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
});
});
this.mapList = list;
this.addressItems = [...res.enclosureDataAppTrack];
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.gtm);
item.cityName = item.appAdress;
});
}
}
});
}
trajectoryChange(event:any){
if(event ==='car'){
this.getTrajectory()
}else if(event ==='driver'){
this.getDriverTrajectory();
}
}
getLocalTime(time: any) {
return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss');
}

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-12-03 15:31:52
* @LastEditTime : 2022-03-09 13:40:42
* @LastEditTime : 2022-03-10 16:02:51
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html
@ -132,7 +132,7 @@
</div>
</nz-card>
<nz-card [nzTitle]="'运费信息' +'到货后'+i?.paymentDays+'天内支付运费'" #distannce3>
<st #st [data]="i?.billExpenseDetailVOList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<!-- <st #st [data]="i?.billExpenseDetailVOList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<ng-template st-row="price" let-item let-index="index">
{{ item.price | currency}}
</ng-template>
@ -143,7 +143,20 @@
<div>
总计:<span style="color: #da001b; font-size: 18px">{{ i?.freight | currency: '¥' }}</span>
</div>
<div>收款人:{{ i?.payee?.name }}/{{ i?.payee?.phone }}/{{ i?.payee?.idNo }}</div>
<div>收款人:{{ i?.payee?.name }}/{{ i?.payee?.phone }}/{{ i?.payee?.idNo }}</div> -->
<st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<ng-template st-row="price" let-item let-index="index">
{{ item.price | currency }}
</ng-template>
<ng-template st-row="surcharge" let-item let-index="index">
{{ item.surcharge | currency }}
</ng-template>
</st>
<div>
总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight | currency }}
附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2)}}%
</div>
<div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
</nz-card>
<nz-card nzTitle="附件信息" #distannce4>
@ -170,22 +183,22 @@
<sv label="是否回单">
{{i?.receiptType == 1 ?'是':'否'}}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.receiptType == 1">
{{i?.receiptTypeLabel}}
</sv>
<sv label="联系人">
<sv label="联系人" *ngIf="i?.receiptType == 1">
{{i?.receiptUser}}{{ i?.receiptUserPhone ? ' /' + i?.receiptUserPhone : ''}}
</sv>
<sv label="所在地区">
<sv label="所在地区" *ngIf="i?.receiptType == 1">
{{i?.receiptPlace}}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.receiptType == 1">
{{i?.receiptAddress}}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证">
<sv label="回单凭证" *ngIf="i?.receiptType == 1">
<app-imagelist [imgList]="[i?.receiptFilePath]"></app-imagelist>
</sv>
<sv label="备注">
@ -193,21 +206,22 @@
</sv>
</sv-container>
</nz-card>
<nz-card>
<div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%" id="distannce5" [nzExtra]="extraTemplate" #distannce5>
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row>
<div nz-col [nzSpan]="12">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="MapList"></amap-path-simplifier>
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div>
</div>
</nz-card>
<ng-template #extraTemplate>
<nz-radio-group [(ngModel)]="trajectory">
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)">
<label nz-radio-button nzValue="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group>

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-03 15:31:52
* @LastEditTime : 2022-03-02 16:26:15
* @LastEditTime : 2022-03-10 16:10:51
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.ts
@ -26,18 +26,32 @@ export class WaybillManagementVehicleDetailComponent implements OnInit {
id = this.route.snapshot.params.id;
MapList: any[]=[];
trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
i: any;
totalObj: any;
attObj: any;
isVisible = false;
imges: any;
unLoadingPlaceVOList: any = [];
logColumns: STColumn[] = [
logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' },
{ title: '地点', index: 'cityName' }
];
billExpenses: any[] = []; //运费信息表格信息
logColumns: STColumn[] = [
{ title: '款项', index: 'costCodeLabel' },
{ title: '小计(元)', render: 'price' },
{ title: '运输费(元)', render: 'price' },
{ title: '附加费(元)', render: 'surcharge' },
{ title: '支付时间', index: 'paymentTime' },
{
title: '支付状态',
className: 'text-center',
index: 'paymentStatusLabel',
}
];
trajectory = 'car';
addressItems: any[] = []; //打点地址数据组
constructor(
private route: ActivatedRoute,
@ -50,7 +64,7 @@ export class WaybillManagementVehicleDetailComponent implements OnInit {
ngOnInit(): void {
this.initData()
this.MapInit()
this.getTrajectory()
}
initData() {
const params = {
@ -62,8 +76,10 @@ export class WaybillManagementVehicleDetailComponent implements OnInit {
this.unLoadingPlaceVOList.push(...res.dischargePlace)
console.log(this.unLoadingPlaceVOList)
this.i = res;
this.attObj = this.i?.billExpenseDetailVOList?.filter((data: any) => data.expenseCode === 'ATT')[0];
this.totalObj = this.i?.billExpenseDetailVOList?.filter((data: any) => data.expenseCode === 'TOTAL')[0];
this.billExpenses = this.i?.billExpenseDetailVOList?.filter(
(data: any) => data.costCode === 'PRE' || data.costCode === 'RECE' || data.costCode === 'BACK'
);
this.i.scheduleVOList = this.i?.scheduleVOList?.filter((data: any) => data.displayStatus !== 'HIDE');
})
}
@ -130,8 +146,9 @@ goDistance(elf: NzCardComponent) {
});
}
// 获取轨迹
MapInit() {
// 获取车辆轨迹
getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => {
if (res) {
const points = res.trackArray;
@ -142,8 +159,8 @@ goDistance(elf: NzCardComponent) {
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
});
});
this.MapList = list;
this.addressItems = res.parkArray;
this.mapList = list;
this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime);
@ -153,6 +170,36 @@ goDistance(elf: NzCardComponent) {
});
}
// 获取司机轨迹
getDriverTrajectory(){
this.service.request(this.service.$api_get_getAppDriverPosition, { id: this.id }).subscribe(res => {
if (res) {
const points = res.tracks;
let list :any[] = [];
points?.forEach((item: any) => {
list.push({
name: item.hgt,
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
});
});
this.mapList = list;
this.addressItems = [...res.enclosureDataAppTrack];
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.gtm);
item.cityName = item.appAdress;
});
}
}
});
}
trajectoryChange(event:any){
if(event ==='car'){
this.getTrajectory()
}else if(event ==='driver'){
this.getDriverTrajectory();
}
}
getLocalTime(time: any) {
return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss');
}