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

This commit is contained in:
Taric Xin
2022-03-09 10:34:37 +08:00
62 changed files with 834 additions and 396 deletions

View File

@ -12,6 +12,7 @@
"ng-high-memory": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng", "ng-high-memory": "node --max_old_space_size=8000 ./node_modules/@angular/cli/bin/ng",
"ng": "ng", "ng": "ng",
"start": "ng s -o --port 4202 --host 0.0.0.0", "start": "ng s -o --port 4202 --host 0.0.0.0",
"startIp": "ng serve -o --port 4202 --host 172.29.9.71 --open",
"hmr": "ng s -o --hmr", "hmr": "ng s -o --hmr",
"build": "npm run ng-high-memory build --", "build": "npm run ng-high-memory build --",
"build:dev": "npm run build -- -c dev", "build:dev": "npm run build -- -c dev",

View File

@ -35,7 +35,7 @@
.total-footer { .total-footer {
position : absolute; position : absolute;
bottom : 30px; bottom : 25px;
height : 32px; height : 32px;
margin : 16px 0; margin : 16px 0;
line-height: 32px; line-height: 32px;

View File

@ -154,7 +154,7 @@ export class ContractManagementTemplateFrameComponent implements OnInit {
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -154,7 +154,7 @@ export class ContractManagementTemplatePartnerComponent implements OnInit {
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -154,7 +154,7 @@ export class ContractManagementTemplateDetailComponent implements OnInit {
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -275,6 +275,7 @@ export class ReceivableOrderComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: 120, width: 120,
className: 'text-center',
buttons: [ buttons: [
{ {
text: '浏览', text: '浏览',

View File

@ -323,6 +323,7 @@ export class VoucherManagementComponent implements OnInit {
title: '操作', title: '操作',
width: '130px', width: '130px',
fixed: 'right', fixed: 'right',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '浏览', text: '浏览',

View File

@ -213,6 +213,7 @@ export class VoucherListComponent implements OnInit {
title: '操作', title: '操作',
width: '130px', width: '130px',
fixed: 'right', fixed: 'right',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '浏览', text: '浏览',

View File

@ -270,6 +270,7 @@ export class WithdrawalsRecordComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '110px', width: '110px',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '查看回单', text: '查看回单',

View File

@ -476,7 +476,7 @@ export class insuranceManagementListComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '110px', width: '110px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '查看保单', text: '查看保单',

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-24 16:58:02 * @Date : 2021-12-24 16:58:02
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-07 17:32:05 * @LastEditTime : 2022-03-08 14:55:27
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -86,7 +86,7 @@
<input <input
nz-input nz-input
[(ngModel)]="data1.detailedAddress" [(ngModel)]="data1.detailedAddress"
(click)="openMap('start', idx)" (click)="openMap('start', idx,data1.detailedAddress)"
formControlName="loadAddress{{ idx }}" formControlName="loadAddress{{ idx }}"
placeholder="请输入装货地" placeholder="请输入装货地"
readonly="true" readonly="true"
@ -139,7 +139,7 @@
<input <input
nz-input nz-input
[(ngModel)]="data2.detailedAddress" [(ngModel)]="data2.detailedAddress"
(click)="openMap('end', idx)" (click)="openMap('end', idx,data2.detailedAddress)"
formControlName="unloadAddress{{ idx }}" formControlName="unloadAddress{{ idx }}"
placeholder="请输入卸货地" placeholder="请输入卸货地"
name="unloadAddress{{ idx }}" name="unloadAddress{{ idx }}"
@ -338,27 +338,29 @@
</sv-container> </sv-container>
</nz-card> </nz-card>
<nz-card> <nz-card>
<div nz-row> <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-row>
<div nz-col [nzSpan]="12"> <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]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st> </st>
</div> </div>
<div nz-col [nzSpan]="12"> <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>
</div> </div>
</nz-card> </nz-card>
<ng-template #extraTemplate> <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="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label> <label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group> </nz-radio-group>
</ng-template> </ng-template>
</div> </div>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<app-imagelist [imgList]="imges"></app-imagelist> <app-imagelist [imgList]="imges"></app-imagelist>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-24 16:58:02 * @Date : 2021-12-24 16:58:02
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-07 17:32:05 * @LastEditTime : 2022-03-08 19:31:50
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -41,9 +41,7 @@ function getBase64(file: File): Promise<string | ArrayBuffer | null> {
export class OrderManagementBulkDetailChangeComponent implements OnInit { export class OrderManagementBulkDetailChangeComponent implements OnInit {
validateForm1: FormGroup; validateForm1: FormGroup;
id = this.route.snapshot.params.id; id = this.route.snapshot.params.id;
trajectory = 'car';
@ViewChild('distannce3', { static: false }) @ViewChild('distannce3', { static: false })
MapList: any[]=[];
i: any= {unLoadingPlaceList:[]}; i: any= {unLoadingPlaceList:[]};
totalDistance = 0.0; //总里程 totalDistance = 0.0; //总里程
totalTime = 0.0; //路程总时间 totalTime = 0.0; //路程总时间
@ -70,16 +68,38 @@ loadTime: any; // 货源单设置回显
schema4: SFSchema = {}; schema4: SFSchema = {};
isVisible = false; isVisible = false;
billExpenses: any[] = []; //运费信息表格信息 billExpenses: any[] = []; //运费信息表格信息
addressItems: any[] = []; //打点地址数据组
ui4!: SFUISchema; ui4!: SFUISchema;
formData: any; formData: any;
@ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sf', { static: false }) sf!: SFComponent;
schema: SFSchema = {}; schema: SFSchema = {};
ui: SFUISchema = {}; ui: SFUISchema = {};
logColumns: STColumn[] = [ logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' }, { title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' }, { title: '地点', index: 'cityName' },
]; ];
logColumns: STColumn[] = [
{ title: '款项', index: 'expenseCodeLabel' },
{ 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' }
}
}
];
trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
constructor( constructor(
private route: ActivatedRoute, private route: ActivatedRoute,
private router: Router, private router: Router,
@ -90,6 +110,7 @@ loadTime: any; // 货源单设置回显
public shipperservice: ShipperBaseService, public shipperservice: ShipperBaseService,
fb: FormBuilder, fb: FormBuilder,
private envSrv: EAEnvironmentService, private envSrv: EAEnvironmentService,
private ar: ActivatedRoute,
) { ) {
this.validateForm1 = fb.group({ this.validateForm1 = fb.group({
loadTime: [null, []], loadTime: [null, []],
@ -98,10 +119,10 @@ loadTime: any; // 货源单设置回显
} }
ngOnInit(): void { ngOnInit(): void {
this.initSF(); this.initData()
this.initSF3(); this.initSF3();
this.initSF4(); this.initSF4();
this.initData() this.getTrajectory()
} }
initSF() { initSF() {
this.schema = { this.schema = {
@ -109,6 +130,7 @@ loadTime: any; // 货源单设置回显
loadingLadingBillFilePath: { loadingLadingBillFilePath: {
type: 'string', type: 'string',
title: '装货凭证', title: '装货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -147,6 +169,7 @@ loadTime: any; // 货源单设置回显
loadingPeopleVehiclesGoodsFilePath: { loadingPeopleVehiclesGoodsFilePath: {
type: 'string', type: 'string',
title: '', title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -201,6 +224,7 @@ loadTime: any; // 货源单设置回显
unloadingLadingBillFilePath: { unloadingLadingBillFilePath: {
type: 'string', type: 'string',
title: '卸货凭证', title: '卸货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -239,6 +263,7 @@ loadTime: any; // 货源单设置回显
unloadingPeopleVehiclesGoodsFilePath: { unloadingPeopleVehiclesGoodsFilePath: {
type: 'string', type: 'string',
title: '', title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -310,6 +335,7 @@ loadTime: any; // 货源单设置回显
if (res) { if (res) {
this.i = res; this.i = res;
this.billExpenses = this.i?.billExpenseDetails?.filter((data: any) => data.expenseCode === 'TRA'); this.billExpenses = this.i?.billExpenseDetails?.filter((data: any) => data.expenseCode === 'TRA');
this.initSF();
// 对装货凭证进行初始化 // 对装货凭证进行初始化
let arr : any= [] let arr : any= []
res?.receiptFilePath.forEach((element: any, index: any) => { res?.receiptFilePath.forEach((element: any, index: any) => {
@ -447,6 +473,20 @@ loadTime: any; // 货源单设置回显
} }
// 保存修改 // 保存修改
save() { save() {
Object.keys(this.validateForm1.controls).forEach(key => {
this.validateForm1.controls[key].markAsDirty();
this.validateForm1.controls[key].updateValueAndValidity();
});
this.sf3.validator({ emitError: true });
this.sf4.validator({ emitError: true });
if (this.validateForm1.invalid || !this.sf3.valid || !this.sf4.valid ) {
this.service.msgSrv.warning('请完善必填项!');
return;
}
if ((this.sf4.value?.acceptWeight > this.i?.goodsInfoList?.[0]?.weight) || (this.sf4.value?.settlementWeight.settlementWeight > this.i?.goodsInfoList?.[0]?.weight) ) {
this.service.msgSrv.warning('装货重量/卸货重量不能大于货物重量!');
return;
}
let imgList : any= []; let imgList : any= [];
if(this.listImagUrls.length > 0) { if(this.listImagUrls.length > 0) {
this.listImagUrls?.forEach((res :any) => { this.listImagUrls?.forEach((res :any) => {
@ -495,6 +535,7 @@ loadTime: any; // 货源单设置回显
this.service.request(this.service.$api_set_modifyBulkOrder, params).subscribe((res: any) => { this.service.request(this.service.$api_set_modifyBulkOrder, params).subscribe((res: any) => {
if(res) { if(res) {
this.service.msgSrv.success('修改成功!'); this.service.msgSrv.success('修改成功!');
this.router.navigate(['/order-management/bulk/bulk-detail/', this.id]);
} else { } else {
this.service.msgSrv.error(res?.msg); this.service.msgSrv.error(res?.msg);
} }
@ -511,32 +552,36 @@ loadTime: any; // 货源单设置回显
// 打开地图 // 打开地图
// 打开地图 // 打开地图
// 打开地图 // 打开地图
openMap(type: string, index: number) { openMap(type: string, index: number, address: string) {
console.log(type);
console.log(index);
const modalRef = this.modalService.create({ const modalRef = this.modalService.create({
nzTitle: '', nzTitle: '',
nzComponentParams: { selectedAddress: address },
nzContent: AmapPoiPickerComponent, nzContent: AmapPoiPickerComponent,
nzWidth: 900, nzWidth: 900,
nzOnOk: item => { nzOnOk: item => {
const poi = item.poi; const poi = item.poi;
const locList = poi.location.toString().split(','); const locList = poi.pois;
switch (type) { switch (type) {
case 'start': case 'start':
this.startInfo[index].detailedAddress = poi.district + poi.name; this.startInfo[index].detailedAddress = poi.formattedAddress;
this.startInfo[index].longitude = locList[0]; this.startInfo[index].longitude = locList[0];
this.startInfo[index].latitude = locList[1]; this.startInfo[index].latitude = locList[1];
this.startInfo[index].province = poi.cityInfo.province; this.startInfo[index].province = poi.addressComponent.province;
this.startInfo[index].city = poi.cityInfo.city; this.startInfo[index].city = poi.addressComponent.city;
this.startInfo[index].area = poi.cityInfo.district; this.startInfo[index].area = poi.addressComponent.district;
this.startInfo[index].address = poi.name; this.startInfo[index].address = poi.formattedAddress;
break; break;
case 'end': case 'end':
this.endInfo[index].detailedAddress = poi.district + poi.name; this.endInfo[index].detailedAddress = poi.formattedAddress;
this.endInfo[index].longitude = locList[0]; this.endInfo[index].longitude = locList[0];
this.endInfo[index].latitude = locList[1]; this.endInfo[index].latitude = locList[1];
this.endInfo[index].province = poi.cityInfo.province; this.endInfo[index].province = poi.addressComponent.province;
this.endInfo[index].city = poi.cityInfo.city; this.endInfo[index].city = poi.addressComponent.city;
this.endInfo[index].area = poi.cityInfo.district; this.endInfo[index].area = poi.addressComponent.district;
this.endInfo[index].address = poi.name; this.endInfo[index].address = poi.formattedAddress;
break; break;
default: default:
break; break;
@ -877,30 +922,61 @@ goDistance(elf: NzCardComponent) {
}); });
} }
} }
// 获取轨迹
MapInit() { // 获取车辆轨迹
this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => { getTrajectory(){
if (res) { this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => {
const points = res.trackArray; if (res) {
let list :any[] = []; const points = res.trackArray;
points?.forEach((item: any) => { let list :any[] = [];
list.push({ points?.forEach((item: any) => {
name: item.hgt, list.push({
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))] name: item.hgt,
}); lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
});
});
this.mapList = list;
this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime);
}); });
this.MapList = list;
this.addressItems = res.parkArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime);
});
}
} }
}); }
} });
}
getLocalTime(time: any) {
return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss'); // 获取司机轨迹
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

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-06 20:20:26 * @Date : 2021-12-06 20:20:26
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-04 14:07:44 * @LastEditTime : 2022-03-08 14:53:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -204,16 +204,16 @@
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5> <nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row> <div nz-row>
<div nz-col [nzSpan]="12"> <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> </st>
</div> </div>
<div nz-col [nzSpan]="12"> <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>
</div> </div>
</nz-card> </nz-card>
<ng-template #extraTemplate> <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="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label> <label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group> </nz-radio-group>

View File

@ -33,12 +33,33 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
totalObj: any; totalObj: any;
attObj: any; attObj: any;
isVisible = false; isVisible = false;
logColumns: STColumn[] = [ logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' }, { title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' }, { title: '地点', index: 'cityName' },
]; ];
logColumns: STColumn[] = [
{ title: '款项', index: 'expenseCodeLabel' },
{ 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' }
}
}
];
trajectory = 'car'; trajectory = 'car';
addressItems: any[] = []; //打点地址数据组 mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
constructor( constructor(
private route: ActivatedRoute, private route: ActivatedRoute,
private msgSrv: NzMessageService, private msgSrv: NzMessageService,
@ -49,7 +70,7 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
this.initData(); this.initData();
this.MapInit(); this.getTrajectory();
} }
initData() { initData() {
@ -103,8 +124,9 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
}) })
}); });
} }
// 获取轨迹
MapInit() { // 获取车辆轨迹
getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => { this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => {
if (res) { if (res) {
const points = res.trackArray; const points = res.trackArray;
@ -115,8 +137,8 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))] lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
}); });
}); });
this.MapList = list; this.mapList = list;
this.addressItems = res.parkArray; this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){ if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => { this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime); item.vinOutTime = this.getLocalTime(item.vinOutTime);
@ -126,6 +148,36 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
}); });
} }
// 获取司机轨迹
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) { getLocalTime(time: any) {
return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss'); return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss');
} }

View File

@ -442,11 +442,22 @@ export class OrderManagementBulkComponent implements OnInit {
width: '180px', width: '180px',
index: 'unloadingAddressArr' index: 'unloadingAddressArr'
}, },
// {
// title: '货物信息',
// className: 'text-left',
// width: '250px',
// render: 'goodsName'
// },
{ {
title: '货物信息', title: '货物信息',
index: 'goodsName',
width: '180px',
className: 'text-left', className: 'text-left',
width: '250px', format: (item: any) =>
render: 'goodsName' `${item.goodsName}/
${item.goodsWeight || '0'}吨/
${item.goodsVolume || '0'}方/
${item.goodsNumber || '0'}`
}, },
{ {
title: '运费单价', title: '运费单价',
@ -456,15 +467,21 @@ export class OrderManagementBulkComponent implements OnInit {
}, },
{ {
title: '接单数量', title: '接单数量',
className: 'text-right', render: 'receveOrderCountInfo',
index: 'goodsNumber', width: '170px',
width: '180px' className: 'text-left',
format: (item: any) =>
`${item.acceptWeight || '0'}吨/
${item.acceptVolume || '0'}`
}, },
{ {
title: '结算量', title: '结算量',
className: 'text-right', index: '结算数量',
index: 'settlementWeight', width: '170px',
width: '150px' className: 'text-left',
format: (item: any) =>
`${item.settlementWeight || '0'}吨/
${item.settlementVolume || '0'}`
}, },
{ {
title: '承运司机', title: '承运司机',
@ -496,7 +513,7 @@ export class OrderManagementBulkComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '130px', width: '130px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '运费变更记录', text: '运费变更记录',
@ -573,7 +590,7 @@ export class OrderManagementBulkComponent implements OnInit {
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '查看', text: '查看',

View File

@ -177,7 +177,7 @@ export class OrderManagementComplaintComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '100px', width: '100px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
// { // {
// text: '处理', // text: '处理',

View File

@ -389,7 +389,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '140px', width: '140px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '查看申诉记录', text: '查看申诉记录',
@ -433,7 +433,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '查看', text: '查看',

View File

@ -331,7 +331,7 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '136px', width: '136px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '生成电子单据', text: '生成电子单据',

View File

@ -302,7 +302,7 @@ export class OrderManagementRiskComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '90px', width: '90px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '审核', text: '审核',

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-23 13:39:58 * @Date : 2021-12-23 13:39:58
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-07 17:29:44 * @LastEditTime : 2022-03-08 14:59:55
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail-change\\vehicle-detail-change.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail-change\\vehicle-detail-change.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -265,20 +265,20 @@
<sv label="是否回单"> <sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }} {{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv> </sv>
<sv label="回单类型"> <sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }} {{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv> </sv>
<sv label="联系人"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv> <sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区"> <sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }} {{ i?.supplementaryInformationVO?.area }}
</sv> </sv>
<sv label="详细地址"> <sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }} {{ i?.supplementaryInformationVO?.address }}
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="1" class="mt-md"> <sv-container col="1" class="mt-md">
<sv label="回单凭证"> <sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<nz-upload <nz-upload
class="avatar-uploader" class="avatar-uploader"
[nzAction]="service.$api_upload_url" [nzAction]="service.$api_upload_url"
@ -309,17 +309,23 @@
<nz-card> <nz-card>
<div nz-row> <div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%" #distannce5> <nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row> <div nz-row>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="12">
<!-- <st #st [data]="i?.auditRecordList" [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> --> </st>
</div> </div>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="12">
<amap-path-simplifier></amap-path-simplifier> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div> </div>
</div> </div>
</nz-card> </nz-card>
<ng-template #extraTemplate>
<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>
</ng-template>
</div> </div>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-23 13:39:58 * @Date : 2021-12-23 13:39:58
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-07 17:30:05 * @LastEditTime : 2022-03-08 16:12:17
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail-change\\vehicle-detail-change.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail-change\\vehicle-detail-change.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -21,6 +21,7 @@ import { NzModalService } from 'ng-zorro-antd/modal';
import { NzUploadChangeParam, NzUploadFile } from 'ng-zorro-antd/upload'; import { NzUploadChangeParam, NzUploadFile } from 'ng-zorro-antd/upload';
import { Observable, Observer } from 'rxjs'; import { Observable, Observer } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import format from 'date-fns/format';
import { OrderManagementService } from '../../services/order-management.service'; import { OrderManagementService } from '../../services/order-management.service';
function getBase64(file: File): Promise<string | ArrayBuffer | null> { function getBase64(file: File): Promise<string | ArrayBuffer | null> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -90,6 +91,13 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
} }
} }
]; ];
trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' },
];
constructor( constructor(
private route: ActivatedRoute, private route: ActivatedRoute,
private router: Router, private router: Router,
@ -98,6 +106,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
private modalService: NzModalService, private modalService: NzModalService,
private amapService: AmapService, private amapService: AmapService,
public shipperservice: ShipperBaseService, public shipperservice: ShipperBaseService,
private ar: ActivatedRoute,
fb: FormBuilder, fb: FormBuilder,
private envSrv: EAEnvironmentService private envSrv: EAEnvironmentService
) { ) {
@ -108,18 +117,19 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
console.log(this.id); this.initData();
this.initSF();
this.initSF3(); this.initSF3();
this.initSF4(); this.initSF4();
this.initData();
} }
initSF() { initSF() {
console.log(this.i);
console.log(this.i.billStatus == '4' || this.i.billStatus == '3');
this.schema = { this.schema = {
properties: { properties: {
loadingLadingBillFilePath: { loadingLadingBillFilePath: {
type: 'string', type: 'string',
title: '装货凭证', title: '装货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -158,6 +168,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
loadingPeopleVehiclesGoodsFilePath: { loadingPeopleVehiclesGoodsFilePath: {
type: 'string', type: 'string',
title: '', title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -212,6 +223,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
unloadingLadingBillFilePath: { unloadingLadingBillFilePath: {
type: 'string', type: 'string',
title: '卸货凭证', title: '卸货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -250,6 +262,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
unloadingPeopleVehiclesGoodsFilePath: { unloadingPeopleVehiclesGoodsFilePath: {
type: 'string', type: 'string',
title: '', title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: { ui: {
widget: 'upload', widget: 'upload',
action: apiConf.fileUpload, action: apiConf.fileUpload,
@ -330,6 +343,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
delete this.approvalLsit[key]; delete this.approvalLsit[key];
} }
}); });
this.initSF();
// 对装货凭证进行初始化 // 对装货凭证进行初始化
let arr: any = []; let arr: any = [];
res?.receiptFilePath.forEach((element: any, index: any) => { res?.receiptFilePath.forEach((element: any, index: any) => {
@ -545,6 +559,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
console.log(res); console.log(res);
if (res) { if (res) {
this.service.msgSrv.success('修改成功!'); this.service.msgSrv.success('修改成功!');
this.router.navigate(['/order-management/vehicle/vehicle-detail/', this.id], { relativeTo: this.ar });
} else { } else {
this.service.msgSrv.error(res?.msg); this.service.msgSrv.error(res?.msg);
} }
@ -757,7 +772,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
placeholder: '请输入' placeholder: '请输入'
} }
}, },
loadPlanTime: { loadTime: {
type: 'string', type: 'string',
title: '发车时间', title: '发车时间',
ui: { ui: {
@ -765,7 +780,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
placeholder: '请输入' placeholder: '请输入'
} }
}, },
unloadPlanTime: { unloadTime: {
type: 'string', type: 'string',
title: '到车时间', title: '到车时间',
ui: { ui: {
@ -914,4 +929,60 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
}); });
} }
} }
// 获取车辆轨迹
getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => {
if (res) {
const points = res.trackArray;
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.cityArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime);
});
}
}
});
}
// 获取司机轨迹
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

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-28 14:42:03 * @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-04 17:48:27 * @LastEditTime : 2022-03-08 13:31:04
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -173,19 +173,19 @@
<sv label="是否回单"> <sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }} {{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv> </sv>
<sv label="回单类型"> <sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }} {{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv> </sv>
<sv label="联系人"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv> <sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区"> <sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }} {{ i?.supplementaryInformationVO?.area }}
</sv> </sv>
<sv label="详细地址"> <sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }} {{ i?.supplementaryInformationVO?.address }}
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="1" class="mt-md"> <sv-container col="1" class="mt-md">
<sv label="回单凭证"> <sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist> <app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv> </sv>
<sv label="备注"> <sv label="备注">
@ -196,19 +196,19 @@
<nz-card> <nz-card>
<div nz-row> <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-row>
<div nz-col [nzSpan]="12"> <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> </st>
</div> </div>
<div nz-col [nzSpan]="12"> <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>
</div> </div>
</nz-card> </nz-card>
<ng-template #extraTemplate> <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="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label> <label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group> </nz-radio-group>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-28 14:42:03 * @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-02 16:19:31 * @LastEditTime : 2022-03-08 14:56:43
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -23,7 +23,9 @@ import { OrderManagementService } from '../../services/order-management.service'
}) })
export class OrderManagementVehicleDetailComponent implements OnInit { export class OrderManagementVehicleDetailComponent implements OnInit {
id = this.route.snapshot.params.id; id = this.route.snapshot.params.id;
MapList: any[]=[]; trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
i: any = { i: any = {
unLoadingPlaceList: [], unLoadingPlaceList: [],
billExpenseDetails: [], billExpenseDetails: [],
@ -36,13 +38,30 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
totalObj: any; totalObj: any;
approvalLsit: any; approvalLsit: any;
isVisible = false; isVisible = false;
logColumns: STColumn[] = [ logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' }, { title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' }, { title: '地点', index: 'cityName' },
]; ];
trajectory = 'car'; logColumns: STColumn[] = [
addressItems: any[] = []; //打点地址数据组 { title: '款项', index: 'expenseCodeLabel' },
{ 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( constructor(
private route: ActivatedRoute, private route: ActivatedRoute,
private msgSrv: NzMessageService, private msgSrv: NzMessageService,
@ -53,7 +72,7 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
this.initData(); this.initData();
this.MapInit() this.getTrajectory()
} }
initData() { initData() {
@ -108,8 +127,8 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
// elf['elementRef'].nativeElement.className = 'target-fix' // elf['elementRef'].nativeElement.className = 'target-fix'
} }
} }
// 获取轨迹 // 获取车辆轨迹
MapInit() { getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => { this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => {
if (res) { if (res) {
const points = res.trackArray; const points = res.trackArray;
@ -120,8 +139,8 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))] lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
}); });
}); });
this.MapList = list; this.mapList = list;
this.addressItems = res.parkArray; this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){ if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => { this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime); item.vinOutTime = this.getLocalTime(item.vinOutTime);
@ -131,6 +150,36 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
}); });
} }
// 获取司机轨迹
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) { getLocalTime(time: any) {
return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss'); return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss');
} }

View File

@ -435,7 +435,7 @@ resourceStatus: any;
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '130px', width: '130px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
@ -519,7 +519,7 @@ resourceStatus: any;
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '查看', text: '查看',

View File

@ -4,20 +4,26 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-29 14:51:07 * @Date : 2021-12-29 14:51:07
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-10 10:19:34 * @LastEditTime : 2022-03-08 13:21:35
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-rate\\modify-rate.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-rate\\modify-rate.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<nz-alert nzType="info" [nzMessage]="'已选择'+ data?.ids?.length + '条订单'" nzShowIcon></nz-alert> <nz-alert nzType="info" [nzMessage]="'已选择'+ data?.ids?.length + '条订单'" nzShowIcon></nz-alert>
<sf style="margin-top: 15px" #sf mode="edit" [schema]="schema" [ui]="ui" button="none"></sf> <sf style="margin-top: 15px" #sf mode="edit" [schema]="schema" [ui]="ui" button="none"></sf>
<st #st [data]="service.$api_getChangeRecordWholeDetail" [columns]="columns" <st #st [data]="service.$api_searchAdditionalRateBatch" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams}" [req]="{ method: 'POST',params: reqParams}"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data' } }"
[page]="{}" [page]="{show: false,showSize: false,front: false}"
> >
<ng-template st-row="operator" let-item> <ng-template st-row="oldAdditionalRate" let-item>
{{item?.operator}}/{{item.telephone}} {{ item?.oldAdditionalRate? (item?.oldAdditionalRate * 100).toFixed(2) + '%' : ''}}
</ng-template>
<ng-template st-row="oldSurcharge" let-item>
{{ item?.oldSurcharge | currency}}
</ng-template>
<ng-template st-row="newSurcharge" let-item>
{{ item?.newSurcharge | currency}}
</ng-template> </ng-template>
</st> </st>
<div class="modal-footer"> <div class="modal-footer">

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-29 14:51:07 * @Date : 2021-12-29 14:51:07
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-04 14:45:58 * @LastEditTime : 2022-03-08 13:21:59
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-rate\\modify-rate.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-rate\\modify-rate.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -26,9 +26,10 @@ export class VehicleModifyRateComponent implements OnInit {
schema: SFSchema = {}; schema: SFSchema = {};
ui: SFUISchema = {}; ui: SFUISchema = {};
columns: STColumn[] = [ columns: STColumn[] = [
{ title: '内容', index: 'operationContent' }, { title: '订单号', index: 'billCode' },
{ title: '操作人', index: 'operator' }, { title: '原附加费率', render: 'oldAdditionalRate' },
{ title: '操作时间', index: 'operatorTimestamp' }, { title: '原附加费', render: 'oldSurcharge' },
{ title: '新附加费', render: 'newSurcharge' },
]; ];
aggreechecked = false; aggreechecked = false;
@ -40,11 +41,15 @@ export class VehicleModifyRateComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
console.log(this.data); console.log(this.data);
this.initSF(); this.initSF();
console.log(this.data?.ids)
} }
get reqParams() { get reqParams() {
return { return {
// operateObject: this.i?.resourceCode, // operateObject: this.i?.resourceCode,
// operateType: 4, // operateType: 4,
ids: this.data?.ids,
additionalRate: this.sf?.value?.additionalRate || 0
}; };
} }
initSF() { initSF() {

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-02-22 13:53:29 * @Date : 2022-02-22 13:53:29
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-02 16:18:46 * @LastEditTime : 2022-03-08 15:01:14
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -12,7 +12,7 @@
<nz-card nzTitle="轨迹信息" [nzExtra]="extraTemplate" > <nz-card nzTitle="轨迹信息" [nzExtra]="extraTemplate" >
<div style="display: flex; flex: 1;"> <div style="display: flex; flex: 1;">
<div style=" flex: 1;"> <div style=" flex: 1;">
<st #st [scroll]="{y: '500px'}" [data]="addressItems" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"> <st #st [scroll]="{y: '500px'}" [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }">
</st> </st>
</div> </div>
<div style="flex: 1;" > <div style="flex: 1;" >
@ -21,7 +21,7 @@
</div> </div>
</nz-card> </nz-card>
<ng-template #extraTemplate> <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="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label> <label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group> </nz-radio-group>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-02-22 13:53:29 * @Date : 2022-02-22 13:53:29
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-02 16:02:51 * @LastEditTime : 2022-03-08 16:11:58
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -35,8 +35,9 @@ export class OneCarOrderViewtrackComponent implements OnInit {
i: any; // 单行数据 i: any; // 单行数据
MapList:any[] = []; //地图点位数据组 MapList:any[] = []; //地图点位数据组
trajectory = 'car'; trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems: any[] = []; //打点地址数据组 addressItems: any[] = []; //打点地址数据组
logColumns: STColumn[] = [ logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' }, { title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' }, { title: '地点', index: 'cityName' },
]; ];
@ -49,12 +50,15 @@ export class OneCarOrderViewtrackComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
console.log(this.i); console.log(this.i);
this.MapInit(); this.getTrajectory();
} }
// 获取轨迹 close(value: boolean): void {
MapInit() { this.modalRef.close(false);
this.service.request(this.service.$api_get_getTrajectory, { id: this.i.id }).subscribe(res => { }
// 获取车辆轨迹
getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.i?.id }).subscribe(res => {
if (res) { if (res) {
const points = res.trackArray; const points = res.trackArray;
let list :any[] = []; let list :any[] = [];
@ -64,8 +68,7 @@ export class OneCarOrderViewtrackComponent implements OnInit {
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))] lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
}); });
}); });
this.MapList = list; this.mapList = list;
// this.addressItems = res.parkArray;
this.addressItems = res.cityArray; this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){ if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => { this.addressItems.forEach(item => {
@ -75,10 +78,38 @@ export class OneCarOrderViewtrackComponent implements OnInit {
} }
}); });
} }
close(value: boolean): void {
this.modalRef.close(false); // 获取司机轨迹
} getDriverTrajectory(){
getLocalTime(time: any) { this.service.request(this.service.$api_get_getAppDriverPosition, { id: this.i?.id }).subscribe(res => {
return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss'); 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

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-03 15:31:52 * @Date : 2021-12-03 15:31:52
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-01 19:21:53 * @LastEditTime : 2022-03-08 09:27:47
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -120,46 +120,43 @@ export class OrderManagementService extends ShipperBaseService {
// 获取货主企业列表 // 获取货主企业列表
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
// 查询系统配置项 // 查询系统配置项
public $api_get_config_item_page = '/api/mdc/pbc/sysConfigItem/list/page'; public $api_get_config_item_page = '/api/mdc/pbc/sysConfigItem/list/page';
// 查询单据审核 // 查询单据审核
public $api_get_billExamine_page = '/api/sdc/billExamine/listPage'; public $api_get_billExamine_page = '/api/sdc/billExamine/listPage';
// 单据审核查看凭证 // 单据审核查看凭证
public $api_get_getCredentials = '/api/sdc/billExamine/getCredentials'; public $api_get_getCredentials = '/api/sdc/billExamine/getCredentials';
// 单据审核 // 单据审核
public $api_get_billAudit = '/api/sdc/billExamine/billAudit'; public $api_get_billAudit = '/api/sdc/billExamine/billAudit';
// 统计单据审核状态数量 // 统计单据审核状态数量
public $api_get_getAuditStatistical = '/api/sdc/billExamine/getAuditStatistical'; public $api_get_getAuditStatistical = '/api/sdc/billExamine/getAuditStatistical';
// 修改单据审核 // 修改单据审核
public $api_get_updateBillExamine = '/api/sdc/billExamine/updateBillExamine'; public $api_get_updateBillExamine = '/api/sdc/billExamine/updateBillExamine';
// 单据审核通过 // 单据审核通过
public $api_get_billAuditPass = '/api/sdc/billExamine/billAuditPassBatch'; public $api_get_billAuditPass = '/api/sdc/billExamine/billAuditPassBatch';
// 查询规则抽查列表
// 查询规则抽查列表
public $api_get_listCompliancePage = '/api/sdc/BillComplianceSpotCheck/list/Page'; public $api_get_listCompliancePage = '/api/sdc/BillComplianceSpotCheck/list/Page';
// 规则抽查审批 // 规则抽查审批
public $api_get_updateBillByCompliance = '/api/sdc/billOperate/updateBillByCompliance'; public $api_get_updateBillByCompliance = '/api/sdc/billOperate/updateBillByCompliance';
// 获取规则抽查分类统计 // 获取规则抽查分类统计
public $api_get_getComplianceStatisticalStatus = '/api/sdc/billOperate/getComplianceStatisticalStatus'; public $api_get_getComplianceStatisticalStatus = '/api/sdc/billOperate/getComplianceStatisticalStatus';
// 货主端-货主查看评价(评价司机的) // 货主端-货主查看评价(评价司机的)
public $api_getBillEvaluateByShipper = '/api/sdc/billEvaluate/getBillEvaluateByShipper'; public $api_getBillEvaluateByShipper = '/api/sdc/billEvaluate/getBillEvaluateByShipper';
// 货主端-货主查看评价(司机评价货主的) // 货主端-货主查看评价(司机评价货主的)
public $api_getBillEvaluateDriverByShipper = '/api/sdc/billEvaluate/getBillEvaluateDriverByShipper'; public $api_getBillEvaluateDriverByShipper = '/api/sdc/billEvaluate/getBillEvaluateDriverByShipper';
// 获取订单退款申请表
// 获取订单退款申请表
public $api_billRefundApplication_get = '/api/fcc/billRefundApplication/get'; public $api_billRefundApplication_get = '/api/fcc/billRefundApplication/get';
// 同意退款 // 同意退款
public $api_billRefundApplication_agreeRefund = '/api/fcc/billRefundApplication/agreeRefund'; public $api_billRefundApplication_agreeRefund = '/api/fcc/billRefundApplication/agreeRefund';
// 保存订单退款申请表 // 保存订单退款申请表
public $api_billRefundApplication_save = '/api/fcc/billRefundApplication/save'; public $api_billRefundApplication_save = '/api/fcc/billRefundApplication/save';
// 批量修改费率-实时查看附加费
public $api_searchAdditionalRateBatch = '/api/sdc/billOperate/searchAdditionalRateBatch';
getDictByKey(dictKey: string) { getDictByKey(dictKey: string) {
const params = { dictKey: dictKey }; const params = { dictKey: dictKey };
@ -169,6 +166,8 @@ export class OrderManagementService extends ShipperBaseService {
$api_getDictValue = `/api/mdc/pbc/dictItems/getDictValue`; $api_getDictValue = `/api/mdc/pbc/dictItems/getDictValue`;
// 获取轨迹 // 获取轨迹
$api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`; $api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`;
// 获取订单司机轨迹
$api_get_getAppDriverPosition = `/api/sdc/billShipper/getAppDriverPosition`;
/** /**
* 根据企业ID获取企业历史网络货运人 * 根据企业ID获取企业历史网络货运人
* @returns * @returns
@ -190,22 +189,22 @@ export class OrderManagementService extends ShipperBaseService {
}) })
); );
} }
/** /**
* 获取车型、车长字典数据 * 获取车型、车长字典数据
* @returns * @returns
*/ */
getDictOptions(params = {}) { getDictOptions(params = {}) {
return this.request(this.$api_getDictValue, params).pipe( return this.request(this.$api_getDictValue, params).pipe(
map((res: any) => { map((res: any) => {
if (!res) { if (!res) {
return []; return [];
} }
const obj = []; const obj = [];
obj.push({ label: '不限', value: '999' }); obj.push({ label: '不限', value: '999' });
return [...obj, ...res]; return [...obj, ...res];
}) })
); );
} }
constructor(public injector: Injector, public eaCacheSrv: EACacheService) { constructor(public injector: Injector, public eaCacheSrv: EACacheService) {
super(injector, eaCacheSrv); super(injector, eaCacheSrv);
} }

View File

@ -112,7 +112,17 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit {
console.log(this.params) console.log(this.params)
} }
dataProcess(data: STData[]): STData[] { dataProcess = (data: STData[], rawData: any): STData[] => {
if (rawData.status === 505016) {
this.modalSrv.confirm({
nzTitle: '系统提示',
nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>',
nzOkText: '确定',
nzCancelText: '取消',
nzOnOk: () => console.log('OK')
});
return [];
}
return data.map((i, index) => { return data.map((i, index) => {
i.carId = ''; i.carId = '';
i.disabled = (i?.certificationStatus === 1 && i.driverStatus === 1); i.disabled = (i?.certificationStatus === 1 && i.driverStatus === 1);

View File

@ -116,10 +116,11 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
ui: { ui: {
widget: 'select', widget: 'select',
serverSearch: true, serverSearch: true,
allowClear: true,
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
onSearch: (q: any) => { onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, ''); let str = q?.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -130,7 +131,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
} }
}, },
change: (q: any, qs: any) => { change: (q: any, qs: any) => {
let str = q.replace(/^\s+|\s+$/g, ''); let str = q?.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
this.getRegionCode(str); this.getRegionCode(str);
this.shipperName = qs?.label; this.shipperName = qs?.label;
@ -649,17 +650,17 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
} }
// 校验各个输入限定值 // 校验各个输入限定值
if ( if (
this.sf4.value.weight > this.limitValues.maxWeight || this.sf4.value?.weight > this.limitValues?.maxWeight ||
this.sf4.value.volume > this.limitValues.maxVolume || this.sf4.value?.volume > this.limitValues?.maxVolume ||
this.sf4.value.number > this.limitValues.maxTrainNumber this.sf4.value?.number > this.limitValues?.maxTrainNumber
) { ) {
this.service.msgSrv.error( this.service.msgSrv.error(
`当前货物核载信息已超出限定值【${this.limitValues.maxWeight}吨、${this.limitValues.maxVolume}方、${this.limitValues.maxTrainNumber}车】` `当前货物核载信息已超出限定值【${this.limitValues?.maxWeight}吨、${this.limitValues?.maxVolume}方、${this.limitValues?.maxTrainNumber}车】`
); );
return; return;
} }
if (this.sf4.value.freightPrice > this.limitValues.maxFreight) { if (this.sf4.value?.freightPrice > this.limitValues?.maxFreight) {
this.service.msgSrv.error(`当前运费单价已超出限定值【${this.limitValues.maxFreight}元】`); this.service.msgSrv.error(`当前运费单价已超出限定值【${this.limitValues.maxFreight}元】`);
return; return;
} }
@ -682,8 +683,8 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
{ {
...this.sf4.value, ...this.sf4.value,
...this.sf3.value, ...this.sf3.value,
carModel: this.sf4.value.carModel.join(','), carModel: this.sf4.value?.carModel.join(','),
carLength: this.sf4.value.carLength.join(',') carLength: this.sf4.value?.carLength.join(',')
} }
]; ];
// 从“再下一单”过来将所有的子参数内的id都删除 // 从“再下一单”过来将所有的子参数内的id都删除

View File

@ -130,7 +130,7 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,""); let str =q?.replace(/^\s+|\s+$/g,"");
if (str) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -141,7 +141,7 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
} }
}, },
change: (q: any, qs: any) => { change: (q: any, qs: any) => {
let str =q.replace(/^\s+|\s+$/g,""); let str =q?.replace(/^\s+|\s+$/g,"");
if (str) { if (str) {
this.getRegionCode(str); this.getRegionCode(str);
this.shipperName = qs?.label; this.shipperName = qs?.label;

View File

@ -323,7 +323,7 @@ export class SupplyManagementBulkComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '110px', width: '110px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '货源审核', text: '货源审核',

View File

@ -1,17 +1,15 @@
import { ChangeDetectorRef, Component, Input, OnInit, ViewChild } from '@angular/core'; import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st'; import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme'; import { ModalHelper } from '@delon/theme';
import { EAEnvironmentService, processSingleSort } from '@shared'; import { EAEnvironmentService } from '@shared';
import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer'; import { NzDrawerService } from 'ng-zorro-antd/drawer';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { SupplyManagementAddDriversComponent } from 'src/app/routes/supply-management/components/add-drivers/add-drivers.component'; import { SupplyManagementAddDriversComponent } from 'src/app/routes/supply-management/components/add-drivers/add-drivers.component';
import { SupplyManagementService } from '../../services/supply-management.service'; import { SupplyManagementService } from '../../services/supply-management.service';
import { CarAddmodalComponent } from '../addmodal/addmodal.component'; import { CarAddmodalComponent } from '../addmodal/addmodal.component';
import { PublishchooseFamifiarAddComponent } from './add/add.component';
import { PublishchooseFamifiarSetCaptainComponent } from './set-captain/set-captain.component';
@Component({ @Component({
selector: 'app-publish-goods-choose-famifiar', selector: 'app-publish-goods-choose-famifiar',
@ -37,7 +35,7 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
submitUrl = ''; submitUrl = '';
@Input() @Input()
submitParams:any; submitParams: any;
constructor( constructor(
private modal: NzModalRef, private modal: NzModalRef,
@ -241,7 +239,17 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
} }
// 熟车请求数据处理 // 熟车请求数据处理
reqProcess(data: STData[]): STData[] { reqProcess = (data: STData[], rawData: any): STData[] => {
if (rawData.status === 505016) {
this.modalService.confirm({
nzTitle: '系统提示',
nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>',
nzOkText: '确定',
nzCancelText: '取消',
nzOnOk: () => console.log('OK')
});
return [];
}
return data.map((i, index) => { return data.map((i, index) => {
const defaultCart = i.userCarLicenseDesensitizationVOList.find((cart: any) => cart.isDefault); const defaultCart = i.userCarLicenseDesensitizationVOList.find((cart: any) => cart.isDefault);
return { ...i, default: defaultCart || '' }; return { ...i, default: defaultCart || '' };
@ -271,52 +279,52 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
} }
carChange(event: any, item: STData) { carChange(event: any, item: STData) {
} }
/** /**
* 验证车辆的状态 * 验证车辆的状态
*/ */
verifyVechicleStatus(_record: STData) { verifyVechicleStatus(_record: STData) {
const { carId, appUserId: driverId, captainAppUserId: carCaptainId } = _record; const { carId, appUserId: driverId, captainAppUserId: carCaptainId } = _record;
const carInfo: any = { carId, driverId, carCaptainId }; const carInfo: any = { carId, driverId, carCaptainId };
const goodsInfoList = this.submitParams?.goodsInfoList; const goodsInfoList = this.submitParams?.goodsInfoList;
this.service.request(this.service.$api_verify_vehicle_status, { ...carInfo, goodsInfoList }).subscribe((res: any) => { this.service.request(this.service.$api_verify_vehicle_status, { ...carInfo, goodsInfoList }).subscribe((res: any) => {
if (res) { if (res) {
const { title, alert, subContent, content } = res; const { title, alert, subContent, content } = res;
switch (alert) { switch (alert) {
case 'Error': case 'Error':
this.error(title, content, subContent); this.error(title, content, subContent);
break; break;
case 'Warn': case 'Warn':
this.showConfirm(_record, title, content, subContent); this.showConfirm(_record, title, content, subContent);
break; break;
case 'Success': case 'Success':
this.choose(_record); this.choose(_record);
break; break;
}
} }
}); }
});
}
}
error(title: string, content: string, subContent: string): void {
this.modalService.error({ error(title: string, content: string, subContent: string): void {
nzTitle: title, this.modalService.error({
nzContent: `<span class="text-error-dark">${content ? content : ''}</span><span class="text-grey-dark">${subContent ? subContent : ''}</span>`, nzTitle: title,
nzOkText: '知道了' nzContent: `<span class="text-error-dark">${content ? content : ''}</span><span class="text-grey-dark">${subContent ? subContent : ''}</span>`,
}); nzOkText: '知道了'
} });
}
showConfirm(_record: STData, title: string, content: string, subContent: string): void {
this.modalService.confirm({ showConfirm(_record: STData, title: string, content: string, subContent: string): void {
nzTitle: title, this.modalService.confirm({
nzContent: `<span class="text-error-dark">${content ? content : ''}</span><span class="text-grey-dark">${subContent ? subContent : ''}</span>`, nzTitle: title,
nzOkText: '继续', nzContent: `<span class="text-error-dark">${content ? content : ''}</span><span class="text-grey-dark">${subContent ? subContent : ''}</span>`,
nzCancelText: '取消', nzOkText: '继续',
nzOnOk: () => { nzCancelText: '取消',
this.choose(_record); nzOnOk: () => {
} this.choose(_record);
}); }
} });
}
} }

View File

@ -150,10 +150,11 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
ui: { ui: {
widget: 'select', widget: 'select',
// serverSearch: true, // serverSearch: true,
allowClear: true,
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
onSearch: (q: any) => { onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, ''); let str = q?.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -164,7 +165,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
} }
}, },
change: (q: any, qs: any) => { change: (q: any, qs: any) => {
let str = q.replace(/^\s+|\s+$/g, ''); let str = q?.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
this.getRegionCode(str); this.getRegionCode(str);
this.shipperName = qs?.label; this.shipperName = qs?.label;
@ -407,7 +408,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
params: { dictKey: 'insure:packaged:goods' }, params: { dictKey: 'insure:packaged:goods' },
containsAllLabel: false, containsAllLabel: false,
validator: val => { validator: val => {
if (this.sf5.value.insuranceType !=='3' && this.isEmpty(val)) { if (this.sf5?.value?.insuranceType && this.sf5?.value?.insuranceType !=='3' && this.isEmpty(val)) {
return [{ keyword: 'required', message: '必填项' }]; return [{ keyword: 'required', message: '必填项' }];
} else { } else {
return []; return [];
@ -421,7 +422,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
ui: { ui: {
widget: 'custom', widget: 'custom',
validator: val => { validator: val => {
if (this.sf5.value.insuranceType !=='3' && this.isEmpty(val)) { if (this.sf5?.value?.insuranceType && this.sf5?.value?.insuranceType !=='3' && this.isEmpty(val)) {
return [{ keyword: 'required', message: '必填项' }]; return [{ keyword: 'required', message: '必填项' }];
} else { } else {
return []; return [];
@ -768,20 +769,20 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
// 货物核载信息最大值 // 货物核载信息最大值
// 货物运输费(小计)最大值 // 货物运输费(小计)最大值
const getlimitvaluesParms = [ const getlimitvaluesParms = [
this.service.limitKeys.weight, this.service?.limitKeys?.weight,
this.service.limitKeys.volume, this.service?.limitKeys?.volume,
this.service.limitKeys.piece, this.service?.limitKeys?.piece,
this.service.limitKeys.maxDays, this.service?.limitKeys?.maxDays,
this.service.limitKeys.intervalDays, this.service?.limitKeys?.intervalDays,
this.service.limitKeys.maxTimes this.service?.limitKeys?.maxTimes
]; ];
this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe(res => { this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe(res => {
const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys.weight)[0].itemValue; const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys?.weight)[0].itemValue;
const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys.volume)[0].itemValue; const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys?.volume)[0].itemValue;
const maxPiece = res.filter((item: any) => item.itemKey === this.service.limitKeys.piece)[0].itemValue; const maxPiece = res.filter((item: any) => item.itemKey === this.service.limitKeys?.piece)[0].itemValue;
const maxDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxDays)[0].itemValue; const maxDays = res.filter((item: any) => item.itemKey === this.service.limitKeys?.maxDays)[0].itemValue;
const intervalDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.intervalDays)[0].itemValue; const intervalDays = res.filter((item: any) => item.itemKey === this.service.limitKeys?.intervalDays)[0].itemValue;
const maxTimes = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxTimes)[0].itemValue; const maxTimes = res.filter((item: any) => item.itemKey === this.service.limitKeys?.maxTimes)[0].itemValue;
this.limitValues = { this.limitValues = {
maxWeight: Number(maxWeight), maxWeight: Number(maxWeight),
maxVolume: Number(maxVolume), maxVolume: Number(maxVolume),
@ -894,7 +895,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.sf5.validator({ emitError: true }); this.sf5.validator({ emitError: true });
this.sf6.validator({ emitError: true }); this.sf6.validator({ emitError: true });
this.sf7.validator({ emitError: true }); this.sf7.validator({ emitError: true });
if (this.validateForm1.invalid || !this.sf3.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('请完善必填项!'); this.service.msgSrv.warning('请完善必填项!');
return; return;
} }
@ -912,16 +913,16 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
} }
const num = (Number(this.validateForm1.value.unloadingTime) - Number(this.validateForm1.value.loadingTime)) / (24 * 60 * 60 * 1000); const num = (Number(this.validateForm1.value.unloadingTime) - Number(this.validateForm1.value.loadingTime)) / (24 * 60 * 60 * 1000);
if (num > this.limitValues.maxDays) { if (num > this.limitValues.maxDays) {
this.service.msgSrv.error(`当前计划装卸货时间间隔已超出限定值【${this.limitValues.maxDays}天】`); this.service.msgSrv.error(`当前计划装卸货时间间隔已超出限定值【${this.limitValues?.maxDays}天】`);
return; return;
} }
if ( if (
this.sf4.value.weight > this.limitValues.maxWeight || this.sf4.value?.weight > this.limitValues?.maxWeight ||
this.sf4.value.volume > this.limitValues.maxVolume || this.sf4.value?.volume > this.limitValues?.maxVolume ||
this.sf4.value.number > this.limitValues.maxPiece this.sf4.value?.number > this.limitValues?.maxPiece
) { ) {
this.service.msgSrv.error( this.service.msgSrv.error(
`当前货物核载信息已超出限定值【${this.limitValues.maxWeight}吨、${this.limitValues.maxVolume}方、${this.limitValues.maxPiece}件】` `当前货物核载信息已超出限定值【${this.limitValues?.maxWeight}吨、${this.limitValues?.maxVolume}方、${this.limitValues?.maxPiece}件】`
); );
return; return;
} }
@ -1235,8 +1236,8 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
} }
this.validateForm1.patchValue( this.validateForm1.patchValue(
{ {
loadingTime: new Date(Date.parse(res.loadingTime.replace(/-/g, '/'))), loadingTime: new Date(Date.parse(res?.loadingTime.replace(/-/g, '/'))),
unloadingTime: new Date(Date.parse(res.unloadingTime.replace(/-/g, '/'))) unloadingTime: new Date(Date.parse(res?.unloadingTime.replace(/-/g, '/')))
}, },
{ onlySelf: true } { onlySelf: true }
); );
@ -1383,7 +1384,8 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
} }
// 计算保价费金额 // 计算保价费金额
getInsurersPrice(insuranceType = this.sf5.value.insuranceType) { getInsurersPrice(insuranceType = this.sf5.value.insuranceType) {
if ( this.sf5.value.insuranceType !=='3' && this.sf4.value.goodsValue >= 50000 && this.totalDistance > 0 ) { console.log(this.totalDistance)
if ( insuranceType !=='3' && this.sf4.value?.goodsValue >= 50000 && this.totalDistance > 0 ) {
const params = { const params = {
insuranceType, insuranceType,
goodsValue: this.sf4.value.goodsValue, goodsValue: this.sf4.value.goodsValue,

View File

@ -142,12 +142,12 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
maxLength: 30, maxLength: 30,
ui: { ui: {
widget: 'select', widget: 'select',
serverSearch: true, allowClear: true,
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q === ' '); console.log(q === ' ');
let str = q.replace(/^\s+|\s+$/g, ''); let str = q?.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -158,7 +158,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
} }
}, },
change: (q: any, qs: any) => { change: (q: any, qs: any) => {
let str = q.replace(/^\s+|\s+$/g, ''); let str = q?.replace(/^\s+|\s+$/g, '');
if (str) { if (str) {
this.getRegionCode(str); this.getRegionCode(str);
this.shipperName = qs?.label; this.shipperName = qs?.label;
@ -390,7 +390,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
params: { dictKey: 'insure:packaged:goods' }, params: { dictKey: 'insure:packaged:goods' },
containsAllLabel: false, containsAllLabel: false,
validator: val => { validator: val => {
if (this.sf5.value.insuranceType !=='3' && this.isEmpty(val)) { if (this.sf5?.value?.insuranceType && this.sf5?.value?.insuranceType !=='3' && this.isEmpty(val)) {
return [{ keyword: 'required', message: '必填项' }]; return [{ keyword: 'required', message: '必填项' }];
} else { } else {
return []; return [];
@ -404,7 +404,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
ui: { ui: {
widget: 'custom', widget: 'custom',
validator: val => { validator: val => {
if (this.sf5.value.insuranceType !=='3' && this.isEmpty(val)) { if (this.sf5?.value?.insuranceType && this.sf5?.value?.insuranceType !=='3' && this.isEmpty(val)) {
return [{ keyword: 'required', message: '必填项' }]; return [{ keyword: 'required', message: '必填项' }];
} else { } else {
return []; return [];
@ -443,6 +443,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.sf5.setValue('/insurancePremium', null); this.sf5.setValue('/insurancePremium', null);
this.sf5.setValue('/insuranceRate', null); this.sf5.setValue('/insuranceRate', null);
}else { }else {
console.log(tag)
this.getInsurersPrice(tag); this.getInsurersPrice(tag);
} }
} }
@ -662,20 +663,20 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
// 货物核载信息最大值 // 货物核载信息最大值
// 货物运输费(小计)最大值 // 货物运输费(小计)最大值
const getlimitvaluesParms = [ const getlimitvaluesParms = [
this.service.limitKeys.weight, this.service.limitKeys?.weight,
this.service.limitKeys.volume, this.service.limitKeys?.volume,
this.service.limitKeys.piece, this.service.limitKeys?.piece,
this.service.limitKeys.maxDays, this.service.limitKeys?.maxDays,
this.service.limitKeys.intervalDays, this.service.limitKeys?.intervalDays,
this.service.limitKeys.maxTimes this.service.limitKeys?.maxTimes
]; ];
this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe(res => { this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe(res => {
const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys.weight)[0].itemValue; const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys?.weight)[0].itemValue;
const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys.volume)[0].itemValue; const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys?.volume)[0].itemValue;
const maxPiece = res.filter((item: any) => item.itemKey === this.service.limitKeys.piece)[0].itemValue; const maxPiece = res.filter((item: any) => item.itemKey === this.service.limitKeys?.piece)[0].itemValue;
const maxDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxDays)[0].itemValue; const maxDays = res.filter((item: any) => item.itemKey === this.service.limitKeys?.maxDays)[0].itemValue;
const intervalDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.intervalDays)[0].itemValue; const intervalDays = res.filter((item: any) => item.itemKey === this.service?.limitKeys?.intervalDays)[0].itemValue;
const maxTimes = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxTimes)[0].itemValue; const maxTimes = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxTimes)[0]?.itemValue;
this.limitValues = { this.limitValues = {
maxWeight: Number(maxWeight), maxWeight: Number(maxWeight),
maxVolume: Number(maxVolume), maxVolume: Number(maxVolume),
@ -844,12 +845,15 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.validateForm1.controls[key].markAsDirty(); this.validateForm1.controls[key].markAsDirty();
this.validateForm1.controls[key].updateValueAndValidity(); this.validateForm1.controls[key].updateValueAndValidity();
}); });
this.sf1.validator({ emitError: true });
this.sf3.validator({ emitError: true }); this.sf3.validator({ emitError: true });
this.sf4.validator({ emitError: true }); this.sf4.validator({ emitError: true });
this.sf5.validator({ emitError: true }); this.sf5.validator({ emitError: true });
this.sf6.validator({ emitError: true }); this.sf6.validator({ emitError: true });
this.sf7.validator({ emitError: true }); this.sf7.validator({ emitError: true });
if (this.validateForm1.invalid || !this.sf3.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('请完善必填项!'); this.service.msgSrv.warning('请完善必填项!');
return; return;
} }
@ -871,22 +875,22 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
return; return;
} }
if ( if (
this.sf4.value.weight > this.limitValues.maxWeight || this.sf4.value?.weight > this.limitValues?.maxWeight ||
this.sf4.value.volume > this.limitValues.maxVolume || this.sf4.value?.volume > this.limitValues?.maxVolume ||
this.sf4.value.number > this.limitValues.maxPiece this.sf4.value?.number > this.limitValues?.maxPiece
) { ) {
this.service.msgSrv.error( this.service.msgSrv.error(
`当前货物核载信息已超出限定值【${this.limitValues.maxWeight}吨、${this.limitValues.maxVolume}方、${this.limitValues.maxPiece}件】` `当前货物核载信息已超出限定值【${this.limitValues?.maxWeight}吨、${this.limitValues?.maxVolume}方、${this.limitValues?.maxPiece}件】`
); );
return; return;
} }
const getFreightParms = { carLengthKeys: this.sf4.value.carLength, km: this.totalDistance }; const getFreightParms = { carLengthKeys: this.sf4.value.carLength, km: this.totalDistance };
this.service.request(this.service.$api_getFreight, getFreightParms).subscribe(res => { this.service.request(this.service.$api_getFreight, getFreightParms).subscribe(res => {
if (this.sf7.value.subtotal > res.maxPrice) { if (this.sf7.value?.subtotal > res?.maxPrice) {
this.service.msgSrv.error(`运费过高,请调整录入`); this.service.msgSrv.error(`运费过高,请调整录入`);
return; return;
} else if (this.sf7.value.subtotal > res.ewPrice) { } else if (this.sf7.value?.subtotal > res?.ewPrice) {
this.modalService.confirm({ this.modalService.confirm({
nzTitle: '', nzTitle: '',
nzContent: `您的录入的运费过高,可能会影响支付,请仔细确认`, nzContent: `您的录入的运费过高,可能会影响支付,请仔细确认`,
@ -1007,11 +1011,12 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
default: default:
break; break;
} }
// 计算里程,时间
if (this.startInfo[0]?.area && this.endInfo[0]?.area) { if (this.startInfo[0]?.detailedAddress && this.endInfo[0]?.detailedAddress) {
this.amapService.drivingCompute([...this.startInfo], [...this.endInfo]).subscribe(res => { this.amapService.drivingCompute([...this.startInfo], [...this.endInfo]).subscribe(res => {
this.totalDistance = res.distance; this.totalDistance = res.distance;
this.totalTime = res.time; this.totalTime = res.time;
this.getInsurersPrice(); // 计算保费金额
}); });
} }
} }
@ -1077,6 +1082,14 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
default: default:
break; break;
} }
// 计算里程,时间
if (this.startInfo[0]?.detailedAddress && this.endInfo[0]?.detailedAddress) {
this.amapService.drivingCompute([...this.startInfo], [...this.endInfo]).subscribe(res => {
this.totalDistance = res.distance;
this.totalTime = res.time;
this.getInsurersPrice(); //计算保费金额
});
}
} }
}); });
} }
@ -1110,8 +1123,8 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
if (res) { if (res) {
this.sf3.getProperty('/goodsNameId')!.schema.enum = res; this.sf3.getProperty('/goodsNameId')!.schema.enum = res;
this.sf3.getProperty('/goodsNameId')!.widget.reset(res); this.sf3.getProperty('/goodsNameId')!.widget.reset(res);
if (this.sf3data.goodsNameId) { if (this.sf3data?.goodsNameId) {
this.sf3.setValue('/goodsNameId', this.sf3data.goodsNameId); this.sf3.setValue('/goodsNameId', this.sf3data?.goodsNameId);
} }
} else { } else {
this.service.msgSrv.error(res.msg); this.service.msgSrv.error(res.msg);
@ -1161,8 +1174,10 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
} }
} }
// 计算保价费金额 // 计算保价费金额
getInsurersPrice(insuranceType = this.sf5.value.insuranceType) { getInsurersPrice(insuranceType = this.sf5.value?.insuranceType) {
if ( this.sf5.value.insuranceType !=='3' && this.sf4.value.goodsValue >= 50000 && this.totalDistance > 0 ) { console.log(insuranceType)
console.log(this.totalDistance)
if ( insuranceType !=='3' && this.sf4.value?.goodsValue >= 50000 && this.totalDistance > 0 ) {
const params = { const params = {
insuranceType, insuranceType,
goodsValue: this.sf4.value.goodsValue, goodsValue: this.sf4.value.goodsValue,

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-02-24 20:19:51 * @Date : 2022-02-24 20:19:51
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-04 16:46:31 * @LastEditTime : 2022-03-08 14:05:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\tran-agreement\\tran-agreement.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\tran-agreement\\tran-agreement.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -62,30 +62,30 @@ export class TranAgreementComponent {
templateType: 'MX', templateType: 'MX',
parametersDTO: { parametersDTO: {
contractCode:'', contractCode:'',
shipperLegalPersonName:this.enterpriseInfo.legalPersonName, //托运法定代表人 shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName, //承运法定代表人 carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
shipperName:this?.shipperName, //托运人 shipperName:this?.shipperName || '', //托运人
carrierName:this.object?.enterpriseInfoName, //承运人 carrierName:this.object?.enterpriseInfoName || '', //承运人
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, // 发货地址 consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址
consignorDate: this.object?.loadingTime, // 发货时间 consignorDate: this.object?.loadingTime || '', // 发货时间
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: this.object?.unloadingTime, // 收货时间 consigneeDate: this.object?.unloadingTime || '', // 收货时间
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, // 货物名称 goodsName:this.object?.goodsInfoDTOList[0].goodsName || '', // 货物名称
shippingType:'整车运输', 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:'', //运输方信息 transporterInfo:'', //运输方信息
freightAmount:this.object?.total, // 订单运费金额(元) freightAmount:this.object?.total || '', // 订单运费金额(元)
pre:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'PRE')[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,// 到付 rece:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'RECE')[0].price,// 到付
back:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'BACK')[0].price,// 回单付 back:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'BACK')[0].price,// 回单付
lunarKnot:0, lunarKnot:0,
total:this.object?.subtotal, // 合计(元) total:this.object?.subtotal || '', // 合计(元)
paymentTime:`到货后${this.object?.paymentDays}`, // 承诺支付运费时间 paymentTime:`到货后${this.object?.paymentDays}`, // 承诺支付运费时间
year:new Date().getFullYear(), // 签约年份 year:new Date().getFullYear() || '', // 签约年份
month:new Date().getMonth()+1, // 签约月份 month:new Date().getMonth()+1 || '', // 签约月份
day:new Date().getDate(), // 签约日期 day:new Date().getDate() || '', // 签约日期
} }
} }
} else if(this.type ==='bulk'){ } else if(this.type ==='bulk'){
@ -96,17 +96,17 @@ export class TranAgreementComponent {
templateType: 'MX', templateType: 'MX',
parametersDTO: { parametersDTO: {
contractCode:'', contractCode:'',
shipperName:this?.shipperName, //托运人 shipperName:this?.shipperName || '', //托运人
carrierName:this.object?.enterpriseInfoName, //承运人 carrierName:this.object?.enterpriseInfoName || '', //承运人
shipperLegalPersonName:this.enterpriseInfo.legalPersonName, //托运法定代表人 shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName, //承运法定代表人 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, // 发货地址 consignorAddress: this.object.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址
consignorDate: '', // 发货时间 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: '', // 收货时间 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, // 货物名称 goodsName:this.object.goodsInfoDTOList[0]?.goodsName || '', // 货物名称
shippingType:'大宗运输', 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:'', //运输方信息 transporterInfo:'', //运输方信息
@ -117,9 +117,9 @@ export class TranAgreementComponent {
lunarKnot:'', lunarKnot:'',
total:'', // 合计(元) total:'', // 合计(元)
paymentTime:`到货后${this.object.paymentDays}`, // 承诺支付运费时间 paymentTime:`到货后${this.object.paymentDays}`, // 承诺支付运费时间
year:new Date().getFullYear(), // 签约年份 year:new Date().getFullYear() || '', // 签约年份
month:new Date().getMonth()+1, // 签约月份 month:new Date().getMonth()+1 || '', // 签约月份
day:new Date().getDate(), // 签约日期 day:new Date().getDate() || '', // 签约日期
}, },
} }
} }

View File

@ -156,13 +156,15 @@
<nz-card nzTitle="服务信息"> <nz-card nzTitle="服务信息">
<sv-container> <sv-container>
<sv label="增值服务套餐"> <sv label="服务包">
{{ i?.insuranceTypeLabel }} {{ i?.insuranceTypeLabel}}
</sv> </sv>
<sv label="货物价值" *ngIf="i?.insuranceType !== '3'"> <sv label="货物价值">
{{ i?.goodsValue | currency }} {{i?.goodsValue !==null?(i?.goodsValue|currency)+'元':'-'}}
</sv>
<sv label="保价费金额">
{{i?.insurancePremium!==null?(i?.insurancePremium |currency)+'元':'-'}}
</sv> </sv>
<sv label="保价费金额" *ngIf="i?.insuranceType !== '3'"> {{ i?.insurancePremium | currency }} 元 </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>
<nz-card [nzTitle]="'运费信息到货后' + i?.paymentDays + '天内支付运费'"> <nz-card [nzTitle]="'运费信息到货后' + i?.paymentDays + '天内支付运费'">

View File

@ -606,7 +606,7 @@ export class SupplyManagementVehicleComponent implements OnInit {
{ {
text: '修改货源', text: '修改货源',
click: _record => this.amend(_record), click: _record => this.amend(_record),
iif: item => item.resourceStatus === '1', iif: item => item.resourceStatus === '1' ,
acl: { ability: ['SUPPLY-INDEX-vehicleModificationSupply'] } acl: { ability: ['SUPPLY-INDEX-vehicleModificationSupply'] }
}, },
// { // {

View File

@ -35,6 +35,7 @@ export class AnnouncementMessageComponent implements OnInit {
{ title: '公告内容', index: 'announcementContent' }, { title: '公告内容', index: 'announcementContent' },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -77,6 +77,7 @@ export class AuditReasonConfigComponent implements OnInit {
}, },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -67,6 +67,7 @@ export class BasicConfigComponent implements OnInit {
}, },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -35,6 +35,7 @@ export class BtnManagementComponent implements OnInit {
{ title: '按钮编码', index: 'code' }, { title: '按钮编码', index: 'code' },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -98,6 +98,7 @@ export class CartConfigComponent implements OnInit {
}, },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -36,6 +36,7 @@ export class CloseAccountComponent implements OnInit {
{ title: '客户编码', index: 'crmCustomerCode' }, { title: '客户编码', index: 'crmCustomerCode' },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -31,6 +31,7 @@ export class CrmManagementComponent implements OnInit {
{ title: '客户编码', index: 'customerCode' }, { title: '客户编码', index: 'customerCode' },
{ {
title: '操作', title: '操作',
className: 'text-left',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -24,6 +24,7 @@ export class GoodsNameConfigComponent implements OnInit {
{ title: '更新时间', index: 'modifyTime' }, { title: '更新时间', index: 'modifyTime' },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -35,6 +35,7 @@ export class InsuranceSetComponent implements OnInit {
{ title: '公告内容', index: 'announcementContent' }, { title: '公告内容', index: 'announcementContent' },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -107,7 +107,7 @@ export class NetworkFreightComponent implements OnInit {
title: '操作', title: '操作',
width: '110px', width: '110px',
fixed: 'right', fixed: 'right',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '基础设置', text: '基础设置',
@ -125,10 +125,13 @@ export class NetworkFreightComponent implements OnInit {
text: '应用设置', text: '应用设置',
click: item => this.settingApp(item) click: item => this.settingApp(item)
}, },
{ {
text: '系统配置', text: '系统配置',
click: item => this.settingAction(item) click: item => this.settingAction(item)
} },
{ type: 'divider' },
// { // {
// text: '合同设置', // text: '合同设置',
// click: item => this.roleAction(item, 2) // click: item => this.roleAction(item, 2)
@ -327,7 +330,7 @@ export class NetworkFreightComponent implements OnInit {
] ]
}; };
this.ui3 = { this.ui3 = {
'*': { spanLabelFixed: 120, grid: { span: 24 } }, '*': { spanLabelFixed: 150, grid: { span: 24 } },
'$taxClassificationVersion': { spanLabelFixed: 150, grid: { span: 24 } }, '$taxClassificationVersion': { spanLabelFixed: 150, grid: { span: 24 } },
}; };
} }

View File

@ -28,20 +28,20 @@ export class RoleManagementComponent implements OnInit {
}; };
columns: STColumn[] = [ columns: STColumn[] = [
{ title: '角色名称', index: 'roleName' }, { title: '角色名称', className: 'text-center', index: 'roleName' },
{ title: '角色描述', index: 'roleDescription' }, { title: '角色描述', className: 'text-center', index: 'roleDescription' },
{ title: '企业数量', index: 'userNumber', iif: _ => this.type === 'freight' }, { title: '企业数量', className: 'text-center', index: 'userNumber', iif: _ => this.type === 'freight' },
{ title: '创建人手机号', index: 'telephone' }, { title: '创建人手机号', className: 'text-center', index: 'telephone' },
{ {
title: '创建时间', title: '创建时间',
width: 170, width: 170,
index: 'createTime', index: 'createTime',
type: 'date', type: 'date',
className: 'text-left', className: 'text-center'
sort: true
}, },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -16,7 +16,7 @@
<nz-card class="content-box"> <nz-card class="content-box">
<div class="d-flex justify-content-between mb-sm"> <div class="d-flex justify-content-between mb-sm">
<label style="font-size: 18px;">员工列表</label> <label style="font-size: 18px;"></label>
<div> <div>
<button nz-button nzType="primary" (click)="staffAction()" acl [acl-ability]="['SYSTEM-STAFF-add']">添加员工</button> <button nz-button nzType="primary" (click)="staffAction()" acl [acl-ability]="['SYSTEM-STAFF-add']">添加员工</button>
<button nz-button acl [acl-ability]="['SYSTEM-STAFF-export']">导出</button> <button nz-button acl [acl-ability]="['SYSTEM-STAFF-export']">导出</button>

View File

@ -29,13 +29,14 @@ export class StaffManagementComponent implements OnInit {
}; };
columns: STColumn[] = [ columns: STColumn[] = [
{ title: '', index: 'key', type: 'checkbox' }, { title: '', index: 'key', className: 'text-center', type: 'checkbox' },
{ title: '员工姓名', index: 'name' }, { title: '员工姓名', className: 'text-center', index: 'name' },
{ title: '手机号码', index: 'telephone' }, { title: '手机号码', className: 'text-center', index: 'telephone' },
{ title: '角色', index: 'roleName' }, { title: '角色',className: 'text-center', index: 'roleName' },
{ {
title: '最后登录时间', title: '最后登录时间',
index: 'lastLoginDate', index: 'lastLoginDate',
className: 'text-center',
type: 'date', type: 'date',
format: item => `${item.lastLoginDate || '-'}` format: item => `${item.lastLoginDate || '-'}`
}, },
@ -51,6 +52,7 @@ export class StaffManagementComponent implements OnInit {
}, },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '编辑', text: '编辑',

View File

@ -365,6 +365,7 @@ export class CancellationInvoiceComponent implements OnInit {
title: '操作', title: '操作',
width: '120px', width: '120px',
fixed: 'right', fixed: 'right',
className: 'text-center',
buttons: [ buttons: [
{ type: 'divider' }, { type: 'divider' },
{ {

View File

@ -284,6 +284,7 @@ export class ETCBlacklistComponent implements OnInit {
}, },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '删除', text: '删除',

View File

@ -174,6 +174,7 @@ export class ETCInvoicedListComponent implements OnInit {
{ title: '申请时间', index: 'orderReceivingTime', type: 'date' }, { title: '申请时间', index: 'orderReceivingTime', type: 'date' },
{ {
title: '操作', title: '操作',
className: 'text-center',
buttons: [ buttons: [
{ {
text: '交易明细', text: '交易明细',

View File

@ -19,6 +19,11 @@
<div class="mt-md mb-sm"> <div class="mt-md mb-sm">
<button nz-button nzType="primary" (click)="printOrder()">打印面单</button> <button nz-button nzType="primary" (click)="printOrder()">打印面单</button>
</div> </div>
<<<<<<< HEAD
<st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="service.http.loading" [page]="{}"
(change)="stChange($event)" [scroll]="{ x: '1200px' }" ></st>
=======
<st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="service.http.loading" [page]="{}" [scroll]="{x:'1200px'}" <st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="service.http.loading" [page]="{}" [scroll]="{x:'1200px'}"
(change)="stChange($event)"></st> (change)="stChange($event)"></st>
>>>>>>> 9894aafcc1c3326f1d6dcb9a0c3eb42079a623a9
</nz-card> </nz-card>

View File

@ -407,6 +407,7 @@ export class InvoiceRequestedComponent implements OnInit {
title: '操作', title: '操作',
width: 125, width: 125,
fixed: 'right', fixed: 'right',
className: 'text-center',
buttons: [ buttons: [
{ type: 'divider' }, { type: 'divider' },
{ {

View File

@ -209,7 +209,7 @@
<div nz-row> <div nz-row>
<div nz-col [nzSpan]="12"> <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]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st> </st>
</div> </div>
<div nz-col [nzSpan]="12"> <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>

View File

@ -259,11 +259,22 @@ tabs = {
width: '220px', width: '220px',
index: 'dischargePlace' index: 'dischargePlace'
}, },
{ // {
// title: '货物信息',
// className: 'text-left',
// width: '250px',
// render: 'goodsInfos'
// },
{
title: '货物信息', title: '货物信息',
index: 'goodsInfos',
width: '180px',
className: 'text-left', className: 'text-left',
width: '250px', format: (item: any) =>
render: 'goodsInfos' `${item.goodsName}/
${item.goodsWeight || '0'}吨/
${item.goodsVolume || '0'}方/
${item.goodsNumber || '0'}`
}, },
{ {
title: '运费单价', title: '运费单价',
@ -273,16 +284,21 @@ tabs = {
}, },
{ {
title: '接单数量', title: '接单数量',
render: 'receveOrderCountInfo',
width: '170px',
className: 'text-left', className: 'text-left',
width: '200px', format: (item: any) =>
index: 'orderReceivingQuantity' `${item.acceptWeight || '0'}吨/
${item.acceptVolume || '0'}`
}, },
{ {
title: '结算量', title: '结算量',
index: '结算数量',
width: '170px',
className: 'text-left', className: 'text-left',
width: '200px', format: (item: any) =>
index: 'settlementWeight' `${item.settlementWeight || '0'}吨/
${item.settlementVolume || '0'}`
}, },
{ {
title: '承运司机', title: '承运司机',
@ -312,7 +328,7 @@ tabs = {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '110px', width: '110px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '确认发车', text: '确认发车',

View File

@ -336,7 +336,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
width: '110px', width: '110px',
className: 'text-left', className: 'text-center',
buttons: [ buttons: [
{ {
text: '确认发车', text: '确认发车',

View File

@ -2,7 +2,7 @@ import { WaybillManagementBulkComponent } from './../components/bulk/bulk.compon
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-07 14:52:29 * @Date: 2021-12-07 14:52:29
* @LastEditTime : 2022-03-02 16:22:23 * @LastEditTime : 2022-03-08 14:51:11
* @LastEditors : Shiming * @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\services\\waybill-management.service.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\services\\waybill-management.service.ts
@ -15,50 +15,51 @@ import { BaseService } from 'src/app/shared/services';
}) })
export class WaybillManagementServe extends BaseService { export class WaybillManagementServe extends BaseService {
$api_get_enterprise_project = `/api/mdc/cuc/enterpriseProject/getEnterpriseProjectList `; // 所属项目列表 $api_get_enterprise_project = `/api/mdc/cuc/enterpriseProject/getEnterpriseProjectList `; // 所属项目列表
// 据 手机号/姓名 查询 车队长/司机 // 据 手机号/姓名 查询 车队长/司机
$api_get_getDriverInfo = `/api/mdc/cuc/user/getDriverInfo`; $api_get_getDriverInfo = `/api/mdc/cuc/user/getDriverInfo`;
// 查询整车运单-运营后台 // 查询整车运单-运营后台
$api_get_wholePage = `/api/sdc/wayBillOperate/listWholePage`; $api_get_wholePage = `/api/sdc/wayBillOperate/listWholePage`;
// 查询整车运单详情-运营后台 // 查询整车运单详情-运营后台
$api_get_getWholeDetail = `/api/sdc/wayBillOperate/getWholeDetail`; $api_get_getWholeDetail = `/api/sdc/wayBillOperate/getWholeDetail`;
// 查询大宗运单-运营后台 // 查询大宗运单-运营后台
$api_get_Bulkpage = `/api/sdc/wayBillOperate/listBulkPage`; $api_get_Bulkpage = `/api/sdc/wayBillOperate/listBulkPage`;
// 查询大宗运单详情-运营后台 // 查询大宗运单详情-运营后台
$api_get_getBulkDetail = `/api/sdc/wayBillOperate/getBulkDetail`; $api_get_getBulkDetail = `/api/sdc/wayBillOperate/getBulkDetail`;
// 整车运单分类统计 // 整车运单分类统计
$api_get_getWholeStatistics = `/api/sdc/wayBillOperate/getWholeStatistics`; $api_get_getWholeStatistics = `/api/sdc/wayBillOperate/getWholeStatistics`;
// 大宗运单分类统计 // 大宗运单分类统计
$api_get_getBulkStatistics = `/api/sdc/wayBillOperate/getBulkStatistics`; $api_get_getBulkStatistics = `/api/sdc/wayBillOperate/getBulkStatistics`;
// 根据车牌号查询车辆信息 // 根据车牌号查询车辆信息
$api_get_getCarLicenseListByCarNo= `/api/mdc/cuc/carLicense/findCarLicenseByCarNo`; $api_get_getCarLicenseListByCarNo = `/api/mdc/cuc/carLicense/findCarLicenseByCarNo`;
// 大宗确认发车 // 大宗确认发车
$api_get_insertBulkStartCarInfo= `/api/sdc/wayBillOperate/insertBulkStartCarInfo`; $api_get_insertBulkStartCarInfo = `/api/sdc/wayBillOperate/insertBulkStartCarInfo`;
// 整车确认发车 // 整车确认发车
$api_get_insertWholeStartCarInfo= `/api/sdc/wayBillOperate/insertWholeStartCarInfo`; $api_get_insertWholeStartCarInfo = `/api/sdc/wayBillOperate/insertWholeStartCarInfo`;
// 整车确认到车 // 整车确认到车
$api_get_insertWholeUnloadCarInfo = `/api/sdc/wayBillOperate/insertWholeUnloadCarInfo`; $api_get_insertWholeUnloadCarInfo = `/api/sdc/wayBillOperate/insertWholeUnloadCarInfo`;
// 大宗确认到车 // 大宗确认到车
$api_get_insertBulkUnloadCarInfo = `/api/sdc/wayBillOperate/insertBulkUnloadCarInfo`; $api_get_insertBulkUnloadCarInfo = `/api/sdc/wayBillOperate/insertBulkUnloadCarInfo`;
// 确认到车界面信息(两个只能看的图片) // 确认到车界面信息(两个只能看的图片)
$api_get_getUnloadCarInfo = `/api/sdc/wayBillOperate/getUnloadCarInfo`; $api_get_getUnloadCarInfo = `/api/sdc/wayBillOperate/getUnloadCarInfo`;
// 查询CRM客户信息表
// 查询CRM客户信息表
$api_get_crmCustomer_page = '/api/mdc/cuc/crmCustomer/list/page'; $api_get_crmCustomer_page = '/api/mdc/cuc/crmCustomer/list/page';
// 查询运营端未回复异常上报 // 查询运营端未回复异常上报
$api_get_listOperatePage = '/api/sdc/exceptionReport/listOperateUnReplyPage'; $api_get_listOperatePage = '/api/sdc/exceptionReport/listOperateUnReplyPage';
// 查询运营端已回复异常上报 // 查询运营端已回复异常上报
$api_get_listOperateReplyPage = '/api/sdc/exceptionReport/listOperateReplyPage'; $api_get_listOperateReplyPage = '/api/sdc/exceptionReport/listOperateReplyPage';
// 获取轨迹 // 获取轨迹
$api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`; $api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`;
// 获取货主企业列表 // 获取订单司机轨迹
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; $api_get_getAppDriverPosition = `/api/sdc/billShipper/getAppDriverPosition`;
// 获取货主企业列表
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
constructor(public injector: Injector) { constructor(public injector: Injector) {
super(injector) super(injector);
} }
} }

View File

@ -11,15 +11,56 @@
.alain-pro__page-header-content{ .alain-pro__page-header-content{
margin: 8px 8px 0px !important; margin: 8px 8px 0px !important;
} }
.ant-card-body{
padding: 6px !important;
}
.ant-card { .ant-card {
margin-bottom: 8px !important; margin-bottom: 8px !important;
} }
.ant-table tfoot>tr>td, .ant-table tfoot>tr>th, .ant-table-tbody>tr>td, .ant-table-thead>tr>th{ .ant-table tfoot>tr>td, .ant-table tfoot>tr>th, .ant-table-tbody>tr>td, .ant-table-thead>tr>th{
padding: 6px 4px !important; padding: 6px 10px;
} }
.alain-pro__page-header-wrapper{ .alain-pro__page-header-wrapper{
margin: 0 !important margin: 0 !important
} }
.alain-pro__menu-icon{
font-size: 14px !important;
margin: 3px 5px 0 0 ;
}
.sf__compact .ant-form-item {
margin-top: 4px !important;
margin-bottom: 4px !important;
}
.body-box{
max-width: 760px !important;
.box-content{
height: 77% !important;
}
}
.login-logo{
width:250px !important;
height: 100% !important;
}
.ant-tabs-tab-btn{
font-size: 18px !important;
}
.login-box-content{
max-width: 300px !important;
padding: 58px 0 38px !important;
height: 100% !important;
}
.total-footer {
bottom: 10px !important;
}
.ant-layout-header{
height: 44px;
padding: 0 25px;
line-height: 44px;
img{
width: 22px
}
.title{
font-size: 14px;
}
}
.ant-tabs-tab-btn{
font-size: 14px !important;
}