车辆对接

This commit is contained in:
wangshiming
2021-12-20 17:18:40 +08:00
parent f18f512aac
commit 0a31c9eb4e
33 changed files with 1275 additions and 768 deletions

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-15 14:25:34
* @LastEditTime: 2021-12-20 17:11:27
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -47,7 +47,7 @@
#st
[bordered]="true"
[scroll]="{ x: '2000px' }"
[data]="service.$api_get_bulkPage_list"
[data]="service.$api_get_listBulkPage"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
@ -55,9 +55,28 @@
[loadingDelay]="500"
[loading]="service.http.loading"
>
<ng-template st-row="goodsId" let-item let-index="index">
<a [routerLink]="'/order-management/bulk-detail/'+item.id">{{item.id}}</a>
</ng-template>
<ng-template st-row="billCode" let-item let-index="index">
<a [routerLink]="'/waybill-management/vehicle-detail/'+item.id">{{item.wayBillCode}}</a>
<div>
<span>{{item?.billStatusLabel}}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">
<div>{{item?.goodsName}}</div>
<div>
<span>{{item?.weight ? item?.weight + '吨/' : '' }}</span>
<span>{{item?.volume ? item?.volume + '方/' : '' }}</span>
<span>{{item?.goodsNumber ? item?.goodsNumber + '吨' : '' }}</span>
</div>
</ng-template>
<ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price }}
<span *ngIf="data.paymentStatus" style="color: #f59a63">{{ data.paymentStatus }}</span>
</p>
</div>
</ng-template>
<!-- <ng-template st-row="externalSn" let-item let-index="index">
<span class="mr-xs">{{111111}}</span>
<a (click)="editEnternalSn(item)">编辑</a>
@ -93,6 +112,14 @@
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500"
>
<ng-template st-row="externalSn" let-item let-index="index">
<div>
<span *ngIf="item?.externalSn == '1'">待确认</span>
<span *ngIf="item?.externalSn == '2'">已确认</span>
<span *ngIf="item?.externalSn == '3'">已撤销</span>
<span *ngIf="item?.externalSn == '4'">拒绝</span>
</div>
</ng-template>
</st>
</ng-container>
<ng-template #nzModalFooter>

View File

@ -10,6 +10,7 @@ import { ConfirReceiptComponent } from '../../modal/bulk/confir-receipt/confir-r
import { SureDepartComponent } from '../../modal/bulk/sure-depart/sure-depart.component';
import { SureArriveComponent } from '../../modal/bulk/sure-arrive/sure-arrive.component';
import { of } from 'rxjs';
import { ShipperBaseService } from '@shared';
@Component({
@ -82,7 +83,7 @@ export class OrderManagementBulkComponent implements OnInit {
count: 0,
},
];
constructor(public service: OrderManagementService, private modal: NzModalService) { }
constructor(public service: OrderManagementService, private modal: NzModalService,public service2: ShipperBaseService) { }
/**
* 查询参数
@ -112,37 +113,37 @@ export class OrderManagementBulkComponent implements OnInit {
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
no: {
billCode: {
type: 'string',
title: '订单号',
title: '订单号'
},
no2: {
resourceCode: {
type: 'string',
title: '货源编号'
},
no1: {
shipperAppUserId: {
type: 'string',
title: '货主'
},
no3: {
loadingPlace: {
type: 'string',
title: '装货地',
ui: {
visibleIf: {
_$expand: (value: boolean) => value,
},
_$expand: (value: boolean) => value
}
}
},
no4: {
dischargePlace: {
type: 'string',
title: '卸货地',
ui: {
visibleIf: {
_$expand: (value: boolean) => value,
},
_$expand: (value: boolean) => value
}
}
},
brandId: {
driverId: {
title: '承运司机',
type: 'string',
ui: {
@ -153,29 +154,45 @@ export class OrderManagementBulkComponent implements OnInit {
onSearch: (q: any) => {
if (!!q) {
return this.service
.request(this.service.$api_get_getDriverInfo, { keyword: q,
model: 1, type: 1 })
.pipe(map((res) => (res as any[]).map((i) => ({ label: i.name, value: i.id } as SFSchemaEnum))))
.request(this.service.$api_get_getDriverInfo, { keyword: q, model: 1, type: 1 })
.pipe(map(res => (res as any[]).map(i => ({ label: i.name, value: i.id } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
}
},
visibleIf: {
expand: (value: boolean) => value,
},
} as SFSelectWidgetSchema,
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema
},
no9: {
type: 'string',
carNo: {
title: '车牌号',
type: 'string',
ui: {
widget: 'select',
serverSearch: true,
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
onSearch: (q: any) => {
if (!!q) {
return this.service
.request(this.service.$api_get_getCarLicenseListByCarNo, {
carNo: q
})
.pipe(map((res: any[]) => (res as any[]).map((i) => ({ label: i.carNo, value: i.carNo } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
}
},
visibleIf: {
_$expand: (value: boolean) => value,
},
}
},
payeeId: {
} as SFSelectWidgetSchema,
},
payeeId: {
title: '车队长',
type: 'string',
ui: {
@ -195,22 +212,17 @@ export class OrderManagementBulkComponent implements OnInit {
}
},
visibleIf: {
expand: (value: boolean) => value,
_$expand: (value: boolean) => value,
},
} as SFSelectWidgetSchema,
},
sex: {
paymentstatus: {
title: '支付状态',
type: 'string',
default: 0,
enum: [
{ label: '未知', value: 0 },
{ label: '男', value: 1 },
{ label: '女', value: 2 },
{ label: '保密', value: 3 },
],
ui: {
widget: 'select',
widget: 'dict-select',
params: { dictKey: 'payment:status' },
containAllLable:true,
visibleIf: {
_$expand: (value: boolean) => value,
},
@ -224,24 +236,28 @@ export class OrderManagementBulkComponent implements OnInit {
mode: 'range',
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema
},
appId: {
isRiskSheet: {
type: 'string',
title: '是否风险单',
default: '0',
enum: [
{ label: '全部', value: '0' },
{ label: '是', value: '1' },
{ label: '否', value: '2' }
],
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
_$expand: (value: boolean) => value,
},
allowClear: true,
asyncData: () => this.getCatalogueMember(),
},
},
appId2: {
enterpriseInfoName: {
type: 'string',
title: '网络货运人',
ui: {
@ -251,23 +267,10 @@ export class OrderManagementBulkComponent implements OnInit {
_$expand: (value: boolean) => value,
},
allowClear: true,
asyncData: () => this.getCatalogueMember(),
asyncData: () => this.service2.getNetworkFreightForwarder(),
},
},
appId3: {
type: 'string',
title: '结算依据',
ui: {
widget: 'dict-select',
params: { dictKey: 'goodresource:settlement:type' },
containAllLable:true,
placeholder: '请选择',
visibleIf: {
_$expand: (value: boolean) => value,
},
},
},
appId4: {
goodsName: {
type: 'string',
title: '货物名称',
ui: {
@ -294,7 +297,7 @@ export class OrderManagementBulkComponent implements OnInit {
} as SFSelectWidgetSchema,
},
},
type: 'object',
type: 'object'
};
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
}
@ -351,71 +354,70 @@ export class OrderManagementBulkComponent implements OnInit {
title: '订单号',
width: '100px',
className: 'text-center',
render: 'goodsId'
render: 'billCode'
},
{
title: '运费明细',
width: '100px',
index: 'externalSn',
className: 'text-center',
render: 'mybidDetailInfo',
},
{ title: '网络货运人', index: 'externalSn', width: '120px', className: 'text-center' },
{ title: '托运人', index: 'externalSn', width: '120px', className: 'text-center' },
{ title: '关联运单号', index: 'externalSn', width: '120px', className: 'text-center' },
{ title: '货源编号', index: 'externalSn', width: '120px', className: 'text-center' },
{ title: '装货地', index: 'linkUrl', width: '120px', className: 'text-center' },
{ title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
{ title: '托运人', index: 'enterpriseProjectName', width: '120px', className: 'text-center' },
{ title: '关联运单号', index: 'wayBillCode', width: '120px', className: 'text-center' },
{ title: '货源编号', index: 'resourceCode', width: '120px', className: 'text-center' },
{ title: '装货地', index: 'loadingAddressArr', width: '120px', className: 'text-center' },
{
title: '卸货地',
className: 'text-center',
width: '120px',
index: 'unloadingAddressArr'
},
{
title: '货物信息',
className: 'text-center',
width: '120px',
},
{
render: 'goodsName'
}, {
title: '运费单价',
className: 'text-center',
width: '120px',
index: 'freightPrice'
},
{
title: '接单数量',
className: 'text-center',
width: '120px',
index: 'goodsNumber',
width: '100px',
},
{
title: '结算重量',
className: 'text-center',
width: '120px',
},
{
title: '接单重量',
className: 'text-center',
width: '120px',
index: 'settlementWeight',
width: '100px',
},
{
title: '承运司机',
className: 'text-center',
width: '120px',
render: 'feiong'
index: 'driverName',
width: '100px',
},
{
title: '收款人',
className: 'text-center',
width: '120px',
index: 'payeeName',
width: '100px',
},
{
title: '装卸货时间',
width: '170px',
className: 'text-center',
width: '120px',
render: 'enStatusStr27878'
render: 'loadingTime'
},
{
title: '创建时间',
className: 'text-center',
width: '120px',
index: 'createTime',
},
{
title: '操作',
@ -472,7 +474,7 @@ export class OrderManagementBulkComponent implements OnInit {
className: 'text-center',
index: 'three',
},
{ title: '状态', index: 'externalSn', className: 'text-center' },
{ title: '状态', render: 'externalSn', className: 'text-center' },
{
title: '操作',
fixed: 'right',
@ -485,6 +487,7 @@ export class OrderManagementBulkComponent implements OnInit {
{
text: '撤销',
click: (_record) => this.audit(_record),
iif: item => item.externalSn === '1' || item.externalSn === 1,
},
],
},
@ -635,7 +638,8 @@ export class OrderManagementBulkComponent implements OnInit {
nzWidth: '50%',
nzContent: SureDepartComponent,
nzComponentParams: {
i: item
i: item,
Status: 1
},
nzFooter: null
});

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-20 09:56:30
* @LastEditTime: 2021-12-20 17:07:17
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -47,30 +47,62 @@
#st
[bordered]="true"
[scroll]="{ x: '2000px' }"
[data]="service.$api_get_getWholeBillDetail"
[data]="service.$api_get_listWholePage"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500"
[loading]="service.http.loading"
>
<ng-template st-row="billCode" let-item let-index="index">
<a [routerLink]="'/waybill-management/vehicle-detail/'+item.id">{{item.wayBillCode}}</a>
<div>
<span *ngIf="item?.wayBillStatus == 1">待接单</span>
<span *ngIf="item?.wayBillStatus == 2">待发车</span>
<span *ngIf="item?.wayBillStatus == 3">运输中</span>
<span *ngIf="item?.wayBillStatus == 4">待签收</span>
<span *ngIf="item?.wayBillStatus == 5">已完成</span>
<span *ngIf="item?.wayBillStatus == 6">已取消</span>
<span>{{item?.billStatusLabel}}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">
<div>{{item?.goodsName}}</div>
<div>
<span>{{item?.weight ? item?.weight + '吨/' : '' }}</span>
<span>{{item?.volume ? item?.volume + '方/' : '' }}</span>
<span>{{item?.goodsNumber ? item?.goodsNumber + '吨' : '' }}</span>
</div>
</ng-template>
<!-- 运费明细 -->
<!-- <ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngFor="let i of item?.mybidDetailInfo">
<div></div>
</div>
</ng-template> -->
<ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price }}
<span *ngIf="data.paymentStatus" style="color: #f59a63">{{ data.paymentStatus }}</span>
</p>
</div>
</ng-template>
<ng-template st-row="billExpenseDetailVOList" let-item let-index="index">
<div *ngFor="let i of item?.billExpenseDetailVOList; let ii = index">
<span >{{i?.costName}}{{i?.price}}</span>
</div>
</ng-template>
<ng-template st-row="driverName" let-item let-index="index">
<div>
{{item?.driverName}}
</div>
<div>
{{item?.driverPhone}}
</div>
</ng-template>
<ng-template st-row="payeeName" let-item let-index="index">
<div>
{{item?.payeeName}}
</div>
<div>
{{item?.payeePhone}}
</div>
</ng-template>
<ng-template st-row="loadingTime" let-item let-index="index">
<div *ngIf="item?.loadingTime">装 | {{item?.loadingTime}}</div>
<div *ngIf="item?.unloadingTime">卸 | {{item?.unloadingTime}}</div>
@ -102,21 +134,23 @@
</nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="浮动费用" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('0')">
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('0')">
<ng-container *nzModalContent>
<st
#stFloat
multiSort
size="small"
[bordered]="true"
[data]="service.$api_get_getWholeBillDetail"
[data]="service.$api_get_listChangeApply"
[columns]="columnsFloat"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }"
[res]="{ reName: { list: 'data', total: 'data.total' } }"
[loadingDelay]="500"
>
<ng-template st-row="order" let-item let-index="index">
{{ index + 1 }}
</ng-template>
</st>
</ng-container>
<ng-template #nzModalFooter>
@ -133,11 +167,10 @@
multiSort
size="small"
[bordered]="true"
[data]="datass"
[data]="service.$api_get_getChangeRecordWholeDetail"
[columns]="columnsFloatView"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }"
[res]="{ reName: { list: 'data', total: 'data.total' } }"
[loadingDelay]="500"
>
</st>

View File

@ -26,6 +26,8 @@ export class OrderManagementVehicleComponent implements OnInit {
isVisibleView = false;
isVisibleEvaluate = false;
isVisible = false;
changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录
changeViewId: any; // 查看运费变更记录id - 用于查看
_$expand = false;
@ViewChild('st') private readonly st!: STComponent;
@ViewChild('stFloat') private readonly stFloat!: STComponent;
@ -90,6 +92,16 @@ export class OrderManagementVehicleComponent implements OnInit {
...this.sf?.value,
};
}
get changeParams() {
return {
id: this.changeId
};
}
get changeViewParams() {
return {
id: this.changeViewId
};
}
get selectedRows() {
return this.st?.list.filter((item) => item.checked) || [];
}
@ -314,33 +326,34 @@ export class OrderManagementVehicleComponent implements OnInit {
title: '运费明细',
width: '100px',
className: 'text-center',
render: 'billExpenseDetailVOList',
render: 'mybidDetailInfo',
},
{ title: '网络货运人', index: 'enterpriseInfoId', width: '120px', className: 'text-center' },
{ title: '货主', index: 'shipperAppUserId', width: '120px', className: 'text-center' },
{ title: '关联运单号', index: 'linkUrl', width: '120px', className: 'text-center' },
{ title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
{ title: '货主', index: 'shipperAppUserName', width: '120px', className: 'text-center' },
{ title: '关联运单号', index: 'wayBillCode', width: '120px', className: 'text-center' },
{ title: '货源编号', index: 'resourceCode', width: '120px', className: 'text-center' },
{ title: '装货地', index: 'loadingPlace', width: '120px', className: 'text-center' },
{ title: '装货地', index: 'loadingAddressArr', width: '120px', className: 'text-center' },
{
title: '卸货地',
className: 'text-center',
width: '120px',
index: 'dischargePlace'
index: 'unloadingAddressArr'
},
{
title: '货物信息',
className: 'text-center',
width: '120px',
render: 'goodsName'
}, {
title: '承运司机',
className: 'text-center',
width: '120px',
index: 'driverId'
render: 'driverName'
},
{
title: '收款人',
className: 'text-center',
index: 'payeeId',
render: 'payeeName',
width: '100px',
},
{
@ -366,7 +379,7 @@ export class OrderManagementVehicleComponent implements OnInit {
},
{
text: '运费变更记录',
click: (_record) => this.OpenPrice(),
click: (_record) => this.OpenPrice(_record),
},
{
text: '变更运费',
@ -397,19 +410,19 @@ export class OrderManagementVehicleComponent implements OnInit {
{
title: '序号',
className: 'text-center',
index: 'one',
render: 'order'
},
{
title: '操作时间',
className: 'text-center',
index: 'two',
index: 'applyTime'
},
{
title: '操作人',
className: 'text-center',
index: 'three',
index: 'applyUserName'
},
{ title: '状态', index: 'externalSn', className: 'text-center' },
{ title: '状态', index: 'handleStatus', className: 'text-center' },
{
title: '操作',
fixed: 'right',
@ -419,9 +432,13 @@ export class OrderManagementVehicleComponent implements OnInit {
text: '查看',
click: (_record) => this.FloatView(_record),
},
// {
// text: '查看协议',
// click: (_record, _modal, _instance) => this.view(_record)
// },
{
text: '撤销',
click: (_record) => this.audit(_record),
click: (_record) => this.revoke(_record),
},
],
},
@ -520,7 +537,9 @@ export class OrderManagementVehicleComponent implements OnInit {
handleOK() {
}
OpenPrice() {
OpenPrice(value: any) {
console.log(value)
this.changeId = value.id;
this.isVisible = true
}
/**
@ -528,6 +547,8 @@ export class OrderManagementVehicleComponent implements OnInit {
*/
FloatView(item: any) {
console.log(item)
console.log()
this.changeViewId = item.id;
this.isVisibleView = true
}
/**
@ -573,7 +594,8 @@ export class OrderManagementVehicleComponent implements OnInit {
nzWidth: '50%',
nzContent: VehicleSureDepartComponent,
nzComponentParams: {
i: item
i: item,
Status: 2
},
nzFooter: null
});
@ -590,4 +612,19 @@ export class OrderManagementVehicleComponent implements OnInit {
nzFooter: null
});
}
revoke(item: any) {
this.modal.confirm({
nzTitle: '是否确定立即撤销费用变更!</i>',
nzOnOk: () =>
this.service.request(this.service.$api_get_revokeChangeRecord, { id: item.id}).subscribe((res) => {
console.log(res)
if(res) {
this.service.msgSrv.success('撤销成功!')
this.stFloat.reload()
} else {
this.service.msgSrv.error(res.msg)
}
})
});
}
}