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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-24 16:58:02
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -86,7 +86,7 @@
<input
nz-input
[(ngModel)]="data1.detailedAddress"
(click)="openMap('start', idx)"
(click)="openMap('start', idx,data1.detailedAddress)"
formControlName="loadAddress{{ idx }}"
placeholder="请输入装货地"
readonly="true"
@ -139,7 +139,7 @@
<input
nz-input
[(ngModel)]="data2.detailedAddress"
(click)="openMap('end', idx)"
(click)="openMap('end', idx,data2.detailedAddress)"
formControlName="unloadAddress{{ idx }}"
placeholder="请输入卸货地"
name="unloadAddress{{ idx }}"
@ -338,27 +338,29 @@
</sv-container>
</nz-card>
<nz-card>
<div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%" id="distannce5" [nzExtra]="extraTemplate" #distannce5>
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row>
<div nz-col [nzSpan]="12">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="MapList"></amap-path-simplifier>
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div>
</div>
</nz-card>
<ng-template #extraTemplate>
<nz-radio-group [(ngModel)]="trajectory">
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)">
<label nz-radio-button nzValue="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group>
</ng-template>
</div>
</nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent>
<app-imagelist [imgList]="imges"></app-imagelist>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-24 16:58:02
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -41,9 +41,7 @@ function getBase64(file: File): Promise<string | ArrayBuffer | null> {
export class OrderManagementBulkDetailChangeComponent implements OnInit {
validateForm1: FormGroup;
id = this.route.snapshot.params.id;
trajectory = 'car';
@ViewChild('distannce3', { static: false })
MapList: any[]=[];
i: any= {unLoadingPlaceList:[]};
totalDistance = 0.0; //总里程
totalTime = 0.0; //路程总时间
@ -70,16 +68,38 @@ loadTime: any; // 货源单设置回显
schema4: SFSchema = {};
isVisible = false;
billExpenses: any[] = []; //运费信息表格信息
addressItems: any[] = []; //打点地址数据组
ui4!: SFUISchema;
formData: any;
@ViewChild('sf', { static: false }) sf!: SFComponent;
schema: SFSchema = {};
ui: SFUISchema = {};
logColumns: STColumn[] = [
logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' },
{ 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(
private route: ActivatedRoute,
private router: Router,
@ -90,6 +110,7 @@ loadTime: any; // 货源单设置回显
public shipperservice: ShipperBaseService,
fb: FormBuilder,
private envSrv: EAEnvironmentService,
private ar: ActivatedRoute,
) {
this.validateForm1 = fb.group({
loadTime: [null, []],
@ -98,10 +119,10 @@ loadTime: any; // 货源单设置回显
}
ngOnInit(): void {
this.initSF();
this.initData()
this.initSF3();
this.initSF4();
this.initData()
this.getTrajectory()
}
initSF() {
this.schema = {
@ -109,6 +130,7 @@ loadTime: any; // 货源单设置回显
loadingLadingBillFilePath: {
type: 'string',
title: '装货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -147,6 +169,7 @@ loadTime: any; // 货源单设置回显
loadingPeopleVehiclesGoodsFilePath: {
type: 'string',
title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -201,6 +224,7 @@ loadTime: any; // 货源单设置回显
unloadingLadingBillFilePath: {
type: 'string',
title: '卸货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -239,6 +263,7 @@ loadTime: any; // 货源单设置回显
unloadingPeopleVehiclesGoodsFilePath: {
type: 'string',
title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -310,6 +335,7 @@ loadTime: any; // 货源单设置回显
if (res) {
this.i = res;
this.billExpenses = this.i?.billExpenseDetails?.filter((data: any) => data.expenseCode === 'TRA');
this.initSF();
// 对装货凭证进行初始化
let arr : any= []
res?.receiptFilePath.forEach((element: any, index: any) => {
@ -447,6 +473,20 @@ loadTime: any; // 货源单设置回显
}
// 保存修改
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= [];
if(this.listImagUrls.length > 0) {
this.listImagUrls?.forEach((res :any) => {
@ -495,6 +535,7 @@ loadTime: any; // 货源单设置回显
this.service.request(this.service.$api_set_modifyBulkOrder, params).subscribe((res: any) => {
if(res) {
this.service.msgSrv.success('修改成功!');
this.router.navigate(['/order-management/bulk/bulk-detail/', this.id]);
} else {
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({
nzTitle: '',
nzComponentParams: { selectedAddress: address },
nzContent: AmapPoiPickerComponent,
nzWidth: 900,
nzOnOk: item => {
const poi = item.poi;
const locList = poi.location.toString().split(',');
const locList = poi.pois;
switch (type) {
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].latitude = locList[1];
this.startInfo[index].province = poi.cityInfo.province;
this.startInfo[index].city = poi.cityInfo.city;
this.startInfo[index].area = poi.cityInfo.district;
this.startInfo[index].address = poi.name;
this.startInfo[index].province = poi.addressComponent.province;
this.startInfo[index].city = poi.addressComponent.city;
this.startInfo[index].area = poi.addressComponent.district;
this.startInfo[index].address = poi.formattedAddress;
break;
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].latitude = locList[1];
this.endInfo[index].province = poi.cityInfo.province;
this.endInfo[index].city = poi.cityInfo.city;
this.endInfo[index].area = poi.cityInfo.district;
this.endInfo[index].address = poi.name;
this.endInfo[index].province = poi.addressComponent.province;
this.endInfo[index].city = poi.addressComponent.city;
this.endInfo[index].area = poi.addressComponent.district;
this.endInfo[index].address = poi.formattedAddress;
break;
default:
break;
@ -877,30 +922,61 @@ goDistance(elf: NzCardComponent) {
});
}
}
// 获取轨迹
MapInit() {
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))]
});
// 获取车辆轨迹
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);
});
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
* @Date : 2021-12-06 20:20:26
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -204,16 +204,16 @@
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row>
<div nz-col [nzSpan]="12">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="MapList"></amap-path-simplifier>
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div>
</div>
</nz-card>
<ng-template #extraTemplate>
<nz-radio-group [(ngModel)]="trajectory">
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)">
<label nz-radio-button nzValue="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group>

View File

@ -33,12 +33,33 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
totalObj: any;
attObj: any;
isVisible = false;
logColumns: STColumn[] = [
logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' },
{ 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';
addressItems: any[] = []; //打点地址数据组
mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
@ -49,7 +70,7 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
ngOnInit(): void {
this.initData();
this.MapInit();
this.getTrajectory();
}
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 => {
if (res) {
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))]
});
});
this.MapList = list;
this.addressItems = res.parkArray;
this.mapList = list;
this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime);
@ -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) {
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',
index: 'unloadingAddressArr'
},
// {
// title: '货物信息',
// className: 'text-left',
// width: '250px',
// render: 'goodsName'
// },
{
title: '货物信息',
index: 'goodsName',
width: '180px',
className: 'text-left',
width: '250px',
render: 'goodsName'
format: (item: any) =>
`${item.goodsName}/
${item.goodsWeight || '0'}吨/
${item.goodsVolume || '0'}方/
${item.goodsNumber || '0'}`
},
{
title: '运费单价',
@ -456,15 +467,21 @@ export class OrderManagementBulkComponent implements OnInit {
},
{
title: '接单数量',
className: 'text-right',
index: 'goodsNumber',
width: '180px'
render: 'receveOrderCountInfo',
width: '170px',
className: 'text-left',
format: (item: any) =>
`${item.acceptWeight || '0'}吨/
${item.acceptVolume || '0'}`
},
{
title: '结算量',
className: 'text-right',
index: 'settlementWeight',
width: '150px'
title: '结算量',
index: '结算数量',
width: '170px',
className: 'text-left',
format: (item: any) =>
`${item.settlementWeight || '0'}吨/
${item.settlementVolume || '0'}`
},
{
title: '承运司机',
@ -496,7 +513,7 @@ export class OrderManagementBulkComponent implements OnInit {
title: '操作',
fixed: 'right',
width: '130px',
className: 'text-left',
className: 'text-center',
buttons: [
{
text: '运费变更记录',
@ -573,7 +590,7 @@ export class OrderManagementBulkComponent implements OnInit {
{
title: '操作',
fixed: 'right',
className: 'text-left',
className: 'text-center',
buttons: [
{
text: '查看',

View File

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

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-23 13:39:58
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -265,20 +265,20 @@
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="联系人"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证">
<sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<nz-upload
class="avatar-uploader"
[nzAction]="service.$api_upload_url"
@ -309,17 +309,23 @@
<nz-card>
<div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%" #distannce5>
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row>
<div nz-col [nzSpan]="12">
<!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st> -->
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier></amap-path-simplifier>
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div>
</div>
</nz-card>
<ng-template #extraTemplate>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)">
<label nz-radio-button nzValue="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group>
</ng-template>
</div>
</nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-23 13:39:58
* @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
* 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 { Observable, Observer } from 'rxjs';
import { map } from 'rxjs/operators';
import format from 'date-fns/format';
import { OrderManagementService } from '../../services/order-management.service';
function getBase64(file: File): Promise<string | ArrayBuffer | null> {
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(
private route: ActivatedRoute,
private router: Router,
@ -98,6 +106,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
private modalService: NzModalService,
private amapService: AmapService,
public shipperservice: ShipperBaseService,
private ar: ActivatedRoute,
fb: FormBuilder,
private envSrv: EAEnvironmentService
) {
@ -108,18 +117,19 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
}
ngOnInit(): void {
console.log(this.id);
this.initSF();
this.initData();
this.initSF3();
this.initSF4();
this.initData();
}
initSF() {
console.log(this.i);
console.log(this.i.billStatus == '4' || this.i.billStatus == '3');
this.schema = {
properties: {
loadingLadingBillFilePath: {
type: 'string',
title: '装货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -158,6 +168,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
loadingPeopleVehiclesGoodsFilePath: {
type: 'string',
title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -212,6 +223,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
unloadingLadingBillFilePath: {
type: 'string',
title: '卸货凭证',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -250,6 +262,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
unloadingPeopleVehiclesGoodsFilePath: {
type: 'string',
title: '',
readOnly: this.i.billStatus !== '4' || this.i.billStatus !== '3',
ui: {
widget: 'upload',
action: apiConf.fileUpload,
@ -330,6 +343,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
delete this.approvalLsit[key];
}
});
this.initSF();
// 对装货凭证进行初始化
let arr: any = [];
res?.receiptFilePath.forEach((element: any, index: any) => {
@ -545,6 +559,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
console.log(res);
if (res) {
this.service.msgSrv.success('修改成功!');
this.router.navigate(['/order-management/vehicle/vehicle-detail/', this.id], { relativeTo: this.ar });
} else {
this.service.msgSrv.error(res?.msg);
}
@ -757,7 +772,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
placeholder: '请输入'
}
},
loadPlanTime: {
loadTime: {
type: 'string',
title: '发车时间',
ui: {
@ -765,7 +780,7 @@ export class OrderManagementVehicleDetailChangeComponent implements OnInit {
placeholder: '请输入'
}
},
unloadPlanTime: {
unloadTime: {
type: 'string',
title: '到车时间',
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
* @Date : 2021-12-28 14:42:03
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -173,19 +173,19 @@
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv>
<sv label="回单类型">
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv>
<sv label="联系人"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区">
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }}
</sv>
<sv label="详细地址">
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证">
<sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
<sv label="备注">
@ -196,19 +196,19 @@
<nz-card>
<div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%" id="distannce5" [nzExtra]="extraTemplate" #distannce5>
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row>
<div nz-col [nzSpan]="12">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="MapList"></amap-path-simplifier>
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
</div>
</div>
</nz-card>
<ng-template #extraTemplate>
<nz-radio-group [(ngModel)]="trajectory">
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)">
<label nz-radio-button nzValue="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-28 14:42:03
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -23,7 +23,9 @@ import { OrderManagementService } from '../../services/order-management.service'
})
export class OrderManagementVehicleDetailComponent implements OnInit {
id = this.route.snapshot.params.id;
MapList: any[]=[];
trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems:any[] = []; //打点地址数据组
i: any = {
unLoadingPlaceList: [],
billExpenseDetails: [],
@ -36,13 +38,30 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
totalObj: any;
approvalLsit: any;
isVisible = false;
logColumns: STColumn[] = [
logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' },
];
trajectory = 'car';
addressItems: any[] = []; //打点地址数据组
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' }
}
}
];
constructor(
private route: ActivatedRoute,
private msgSrv: NzMessageService,
@ -53,7 +72,7 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
ngOnInit(): void {
this.initData();
this.MapInit()
this.getTrajectory()
}
initData() {
@ -108,8 +127,8 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
// elf['elementRef'].nativeElement.className = 'target-fix'
}
}
// 获取轨迹
MapInit() {
// 获取车辆轨迹
getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => {
if (res) {
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))]
});
});
this.MapList = list;
this.addressItems = res.parkArray;
this.mapList = list;
this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
item.vinOutTime = this.getLocalTime(item.vinOutTime);
@ -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) {
return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss');
}

View File

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

View File

@ -4,20 +4,26 @@
* @Author : Shiming
* @Date : 2021-12-29 14:51:07
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<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>
<st #st [data]="service.$api_getChangeRecordWholeDetail" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams}"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{}"
<st #st [data]="service.$api_searchAdditionalRateBatch" [columns]="columns"
[req]="{ method: 'POST',params: reqParams}"
[res]="{ reName: { list: 'data' } }"
[page]="{show: false,showSize: false,front: false}"
>
<ng-template st-row="operator" let-item>
{{item?.operator}}/{{item.telephone}}
<ng-template st-row="oldAdditionalRate" let-item>
{{ 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>
</st>
<div class="modal-footer">

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-29 14:51:07
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -26,9 +26,10 @@ export class VehicleModifyRateComponent implements OnInit {
schema: SFSchema = {};
ui: SFUISchema = {};
columns: STColumn[] = [
{ title: '内容', index: 'operationContent' },
{ title: '操作人', index: 'operator' },
{ title: '操作时间', index: 'operatorTimestamp' },
{ title: '订单号', index: 'billCode' },
{ title: '原附加费率', render: 'oldAdditionalRate' },
{ title: '原附加费', render: 'oldSurcharge' },
{ title: '新附加费', render: 'newSurcharge' },
];
aggreechecked = false;
@ -40,11 +41,15 @@ export class VehicleModifyRateComponent implements OnInit {
ngOnInit(): void {
console.log(this.data);
this.initSF();
console.log(this.data?.ids)
}
get reqParams() {
return {
// operateObject: this.i?.resourceCode,
// operateType: 4,
ids: this.data?.ids,
additionalRate: this.sf?.value?.additionalRate || 0
};
}
initSF() {

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-22 13:53:29
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -12,7 +12,7 @@
<nz-card nzTitle="轨迹信息" [nzExtra]="extraTemplate" >
<div style="display: flex; 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>
</div>
<div style="flex: 1;" >
@ -21,7 +21,7 @@
</div>
</nz-card>
<ng-template #extraTemplate>
<nz-radio-group [(ngModel)]="trajectory">
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)">
<label nz-radio-button nzValue="car">车辆轨迹</label>
<label nz-radio-button nzValue="driver">司机轨迹</label>
</nz-radio-group>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-22 13:53:29
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -35,8 +35,9 @@ export class OneCarOrderViewtrackComponent implements OnInit {
i: any; // 单行数据
MapList:any[] = []; //地图点位数据组
trajectory = 'car';
mapList:any[] = []; //地图点位数据组
addressItems: any[] = []; //打点地址数据组
logColumns: STColumn[] = [
logColumns2: STColumn[] = [
{ title: '时间', index: 'vinOutTime' },
{ title: '地点', index: 'cityName' },
];
@ -49,12 +50,15 @@ export class OneCarOrderViewtrackComponent implements OnInit {
ngOnInit(): void {
console.log(this.i);
this.MapInit();
this.getTrajectory();
}
// 获取轨迹
MapInit() {
this.service.request(this.service.$api_get_getTrajectory, { id: this.i.id }).subscribe(res => {
close(value: boolean): void {
this.modalRef.close(false);
}
// 获取车辆轨迹
getTrajectory(){
this.service.request(this.service.$api_get_getTrajectory, { id: this.i?.id }).subscribe(res => {
if (res) {
const points = res.trackArray;
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))]
});
});
this.MapList = list;
// this.addressItems = res.parkArray;
this.mapList = list;
this.addressItems = res.cityArray;
if(this.addressItems && this.addressItems.length > 0){
this.addressItems.forEach(item => {
@ -75,10 +78,38 @@ export class OneCarOrderViewtrackComponent implements OnInit {
}
});
}
close(value: boolean): void {
this.modalRef.close(false);
}
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.i?.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
* @Date : 2021-12-03 15:31:52
* @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
* 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_get_config_item_page = '/api/mdc/pbc/sysConfigItem/list/page';
// 查询单据审核
// 查询单据审核
public $api_get_billExamine_page = '/api/sdc/billExamine/listPage';
// 单据审核查看凭证
// 单据审核查看凭证
public $api_get_getCredentials = '/api/sdc/billExamine/getCredentials';
// 单据审核
// 单据审核
public $api_get_billAudit = '/api/sdc/billExamine/billAudit';
// 统计单据审核状态数量
// 统计单据审核状态数量
public $api_get_getAuditStatistical = '/api/sdc/billExamine/getAuditStatistical';
// 修改单据审核
// 修改单据审核
public $api_get_updateBillExamine = '/api/sdc/billExamine/updateBillExamine';
// 单据审核通过
// 单据审核通过
public $api_get_billAuditPass = '/api/sdc/billExamine/billAuditPassBatch';
// 查询规则抽查列表
// 查询规则抽查列表
public $api_get_listCompliancePage = '/api/sdc/BillComplianceSpotCheck/list/Page';
// 规则抽查审批
// 规则抽查审批
public $api_get_updateBillByCompliance = '/api/sdc/billOperate/updateBillByCompliance';
// 获取规则抽查分类统计
// 获取规则抽查分类统计
public $api_get_getComplianceStatisticalStatus = '/api/sdc/billOperate/getComplianceStatisticalStatus';
// 货主端-货主查看评价(评价司机的)
// 货主端-货主查看评价(评价司机的)
public $api_getBillEvaluateByShipper = '/api/sdc/billEvaluate/getBillEvaluateByShipper';
// 货主端-货主查看评价(司机评价货主的)
// 货主端-货主查看评价(司机评价货主的)
public $api_getBillEvaluateDriverByShipper = '/api/sdc/billEvaluate/getBillEvaluateDriverByShipper';
// 获取订单退款申请表
// 获取订单退款申请表
public $api_billRefundApplication_get = '/api/fcc/billRefundApplication/get';
// 同意退款
// 同意退款
public $api_billRefundApplication_agreeRefund = '/api/fcc/billRefundApplication/agreeRefund';
// 保存订单退款申请表
// 保存订单退款申请表
public $api_billRefundApplication_save = '/api/fcc/billRefundApplication/save';
// 批量修改费率-实时查看附加费
public $api_searchAdditionalRateBatch = '/api/sdc/billOperate/searchAdditionalRateBatch';
getDictByKey(dictKey: string) {
const params = { dictKey: dictKey };
@ -169,6 +166,8 @@ export class OrderManagementService extends ShipperBaseService {
$api_getDictValue = `/api/mdc/pbc/dictItems/getDictValue`;
// 获取轨迹
$api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`;
// 获取订单司机轨迹
$api_get_getAppDriverPosition = `/api/sdc/billShipper/getAppDriverPosition`;
/**
* 根据企业ID获取企业历史网络货运人
* @returns
@ -190,22 +189,22 @@ export class OrderManagementService extends ShipperBaseService {
})
);
}
/**
/**
* 获取车型、车长字典数据
* @returns
*/
getDictOptions(params = {}) {
return this.request(this.$api_getDictValue, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const obj = [];
obj.push({ label: '不限', value: '999' });
return [...obj, ...res];
})
);
}
getDictOptions(params = {}) {
return this.request(this.$api_getDictValue, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const obj = [];
obj.push({ label: '不限', value: '999' });
return [...obj, ...res];
})
);
}
constructor(public injector: Injector, public eaCacheSrv: EACacheService) {
super(injector, eaCacheSrv);
}

View File

@ -112,7 +112,17 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit {
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) => {
i.carId = '';
i.disabled = (i?.certificationStatus === 1 && i.driverStatus === 1);

View File

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

View File

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

View File

@ -323,7 +323,7 @@ export class SupplyManagementBulkComponent implements OnInit {
title: '操作',
fixed: 'right',
width: '110px',
className: 'text-left',
className: 'text-center',
buttons: [
{
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 { STChange, STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme';
import { EAEnvironmentService, processSingleSort } from '@shared';
import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer';
import { EAEnvironmentService } from '@shared';
import { NzDrawerService } from 'ng-zorro-antd/drawer';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { SupplyManagementAddDriversComponent } from 'src/app/routes/supply-management/components/add-drivers/add-drivers.component';
import { SupplyManagementService } from '../../services/supply-management.service';
import { CarAddmodalComponent } from '../addmodal/addmodal.component';
import { PublishchooseFamifiarAddComponent } from './add/add.component';
import { PublishchooseFamifiarSetCaptainComponent } from './set-captain/set-captain.component';
@Component({
selector: 'app-publish-goods-choose-famifiar',
@ -37,7 +35,7 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
submitUrl = '';
@Input()
submitParams:any;
submitParams: any;
constructor(
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) => {
const defaultCart = i.userCarLicenseDesensitizationVOList.find((cart: any) => cart.isDefault);
return { ...i, default: defaultCart || '' };
@ -271,52 +279,52 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
}
carChange(event: any, item: STData) {
}
/**
* 验证车辆的状态
*/
verifyVechicleStatus(_record: STData) {
const { carId, appUserId: driverId, captainAppUserId: carCaptainId } = _record;
const carInfo: any = { carId, driverId, carCaptainId };
const goodsInfoList = this.submitParams?.goodsInfoList;
this.service.request(this.service.$api_verify_vehicle_status, { ...carInfo, goodsInfoList }).subscribe((res: any) => {
if (res) {
const { title, alert, subContent, content } = res;
switch (alert) {
case 'Error':
this.error(title, content, subContent);
break;
case 'Warn':
this.showConfirm(_record, title, content, subContent);
break;
case 'Success':
this.choose(_record);
break;
}
/**
* 验证车辆的状态
*/
verifyVechicleStatus(_record: STData) {
const { carId, appUserId: driverId, captainAppUserId: carCaptainId } = _record;
const carInfo: any = { carId, driverId, carCaptainId };
const goodsInfoList = this.submitParams?.goodsInfoList;
this.service.request(this.service.$api_verify_vehicle_status, { ...carInfo, goodsInfoList }).subscribe((res: any) => {
if (res) {
const { title, alert, subContent, content } = res;
switch (alert) {
case 'Error':
this.error(title, content, subContent);
break;
case 'Warn':
this.showConfirm(_record, title, content, subContent);
break;
case 'Success':
this.choose(_record);
break;
}
});
}
error(title: string, content: string, subContent: string): void {
this.modalService.error({
nzTitle: title,
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({
nzTitle: title,
nzContent: `<span class="text-error-dark">${content ? content : ''}</span><span class="text-grey-dark">${subContent ? subContent : ''}</span>`,
nzOkText: '继续',
nzCancelText: '取消',
nzOnOk: () => {
this.choose(_record);
}
});
}
}
});
}
error(title: string, content: string, subContent: string): void {
this.modalService.error({
nzTitle: title,
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({
nzTitle: title,
nzContent: `<span class="text-error-dark">${content ? content : ''}</span><span class="text-grey-dark">${subContent ? subContent : ''}</span>`,
nzOkText: '继续',
nzCancelText: '取消',
nzOnOk: () => {
this.choose(_record);
}
});
}
}

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-24 20:19:51
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -62,30 +62,30 @@ export class TranAgreementComponent {
templateType: 'MX',
parametersDTO: {
contractCode:'',
shipperLegalPersonName:this.enterpriseInfo.legalPersonName, //托运法定代表人
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName, //承运法定代表人
shipperName:this?.shipperName, //托运人
carrierName:this.object?.enterpriseInfoName, //承运人
shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
shipperName:this?.shipperName || '', //托运人
carrierName:this.object?.enterpriseInfoName || '', //承运人
consignorInfo: `${this.object?.unLoadingPlaceDTOList[0].appUserName} ${this.object?.unLoadingPlaceDTOList[0].contractTelephone}`, // 发货信息
consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址
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}`, // 收货信息
consigneeDate: this.object?.unloadingTime, // 收货时间
consigneeAddress: this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].detailedAddress, // 收货地址
goodsName:this.object?.goodsInfoDTOList[0].goodsName, // 货物名称
consigneeDate: this.object?.unloadingTime || '', // 收货时间
consigneeAddress: this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].detailedAddress || '', // 收货地址
goodsName:this.object?.goodsInfoDTOList[0].goodsName || '', // 货物名称
shippingType:'整车运输',
consignmentVolume:`${this.object?.goodsInfoDTOList[0].weight}吨/${this.object?.goodsInfoDTOList[0].volume}方/${this.object?.goodsInfoDTOList[0].number}`, //托运量
transporterInfo:'', //运输方信息
freightAmount:this.object?.total, // 订单运费金额(元)
freightAmount:this.object?.total || '', // 订单运费金额(元)
pre:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'PRE')[0].price, //预付
rece:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'RECE')[0].price,// 到付
back:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'BACK')[0].price,// 回单付
lunarKnot:0,
total:this.object?.subtotal, // 合计(元)
total:this.object?.subtotal || '', // 合计(元)
paymentTime:`到货后${this.object?.paymentDays}`, // 承诺支付运费时间
year:new Date().getFullYear(), // 签约年份
month:new Date().getMonth()+1, // 签约月份
day:new Date().getDate(), // 签约日期
year:new Date().getFullYear() || '', // 签约年份
month:new Date().getMonth()+1 || '', // 签约月份
day:new Date().getDate() || '', // 签约日期
}
}
} else if(this.type ==='bulk'){
@ -96,17 +96,17 @@ export class TranAgreementComponent {
templateType: 'MX',
parametersDTO: {
contractCode:'',
shipperName:this?.shipperName, //托运人
carrierName:this.object?.enterpriseInfoName, //承运人
shipperLegalPersonName:this.enterpriseInfo.legalPersonName, //托运法定代表人
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName, //承运法定代表人
shipperName:this?.shipperName || '', //托运人
carrierName:this.object?.enterpriseInfoName || '', //承运人
shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
consignorInfo: `${this.object.unLoadingPlaceDTOList[0].appUserName} ${this.object.unLoadingPlaceDTOList[0].contractTelephone}`, // 发货信息
consignorAddress: this.object.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址
consignorDate: '', // 发货时间
consigneeInfo: `${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1].appUserName} ${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1].contractTelephone}`, // 收货信息
consigneeDate: '', // 收货时间
consigneeAddress: this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1].detailedAddress, // 收货地址
goodsName:this.object.goodsInfoDTOList[0].goodsName, // 货物名称
goodsName:this.object.goodsInfoDTOList[0]?.goodsName || '', // 货物名称
shippingType:'大宗运输',
consignmentVolume:`${this.object.goodsInfoDTOList[0].weight}吨/${this.object.goodsInfoDTOList[0].volume}方/${this.object.goodsInfoDTOList[0].number}`, //托运量
transporterInfo:'', //运输方信息
@ -117,9 +117,9 @@ export class TranAgreementComponent {
lunarKnot:'',
total:'', // 合计(元)
paymentTime:`到货后${this.object.paymentDays}`, // 承诺支付运费时间
year:new Date().getFullYear(), // 签约年份
month:new Date().getMonth()+1, // 签约月份
day:new Date().getDate(), // 签约日期
year:new Date().getFullYear() || '', // 签约年份
month:new Date().getMonth()+1 || '', // 签约月份
day:new Date().getDate() || '', // 签约日期
},
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -19,6 +19,11 @@
<div class="mt-md mb-sm">
<button nz-button nzType="primary" (click)="printOrder()">打印面单</button>
</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'}"
(change)="stChange($event)"></st>
>>>>>>> 9894aafcc1c3326f1d6dcb9a0c3eb42079a623a9
</nz-card>

View File

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

View File

@ -209,7 +209,7 @@
<div nz-row>
<div nz-col [nzSpan]="12">
<st [scroll]="{y: '500px'}" #st [data]="addressItems" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st>
</st>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="MapList"></amap-path-simplifier>

View File

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

View File

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

View File

@ -2,7 +2,7 @@ import { WaybillManagementBulkComponent } from './../components/bulk/bulk.compon
/*
* @Author: your name
* @Date: 2021-12-07 14:52:29
* @LastEditTime : 2022-03-02 16:22:23
* @LastEditTime : 2022-03-08 14:51:11
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\services\\waybill-management.service.ts
@ -15,50 +15,51 @@ import { BaseService } from 'src/app/shared/services';
})
export class WaybillManagementServe extends BaseService {
$api_get_enterprise_project = `/api/mdc/cuc/enterpriseProject/getEnterpriseProjectList `; // 所属项目列表
// 据 手机号/姓名 查询 车队长/司机
$api_get_getDriverInfo = `/api/mdc/cuc/user/getDriverInfo`;
// 查询整车运单-运营后台
$api_get_wholePage = `/api/sdc/wayBillOperate/listWholePage`;
// 查询整车运单详情-运营后台
$api_get_getWholeDetail = `/api/sdc/wayBillOperate/getWholeDetail`;
// 据 手机号/姓名 查询 车队长/司机
$api_get_getDriverInfo = `/api/mdc/cuc/user/getDriverInfo`;
// 查询整车运单-运营后台
$api_get_wholePage = `/api/sdc/wayBillOperate/listWholePage`;
// 查询整车运单详情-运营后台
$api_get_getWholeDetail = `/api/sdc/wayBillOperate/getWholeDetail`;
// 查询大宗运单-运营后台
$api_get_Bulkpage = `/api/sdc/wayBillOperate/listBulkPage`;
// 查询大宗运单详情-运营后台
$api_get_getBulkDetail = `/api/sdc/wayBillOperate/getBulkDetail`;
// 查询大宗运单-运营后台
$api_get_Bulkpage = `/api/sdc/wayBillOperate/listBulkPage`;
// 查询大宗运单详情-运营后台
$api_get_getBulkDetail = `/api/sdc/wayBillOperate/getBulkDetail`;
// 整车运单分类统计
$api_get_getWholeStatistics = `/api/sdc/wayBillOperate/getWholeStatistics`;
// 大宗运单分类统计
$api_get_getBulkStatistics = `/api/sdc/wayBillOperate/getBulkStatistics`;
// 整车运单分类统计
$api_get_getWholeStatistics = `/api/sdc/wayBillOperate/getWholeStatistics`;
// 大宗运单分类统计
$api_get_getBulkStatistics = `/api/sdc/wayBillOperate/getBulkStatistics`;
// 根据车牌号查询车辆信息
$api_get_getCarLicenseListByCarNo= `/api/mdc/cuc/carLicense/findCarLicenseByCarNo`;
// 大宗确认发车
$api_get_insertBulkStartCarInfo= `/api/sdc/wayBillOperate/insertBulkStartCarInfo`;
// 整车确认发车
$api_get_insertWholeStartCarInfo= `/api/sdc/wayBillOperate/insertWholeStartCarInfo`;
// 整车确认到车
// 根据车牌号查询车辆信息
$api_get_getCarLicenseListByCarNo = `/api/mdc/cuc/carLicense/findCarLicenseByCarNo`;
// 大宗确认发车
$api_get_insertBulkStartCarInfo = `/api/sdc/wayBillOperate/insertBulkStartCarInfo`;
// 整车确认发车
$api_get_insertWholeStartCarInfo = `/api/sdc/wayBillOperate/insertWholeStartCarInfo`;
// 整车确认到车
$api_get_insertWholeUnloadCarInfo = `/api/sdc/wayBillOperate/insertWholeUnloadCarInfo`;
// 大宗确认到车
// 大宗确认到车
$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_listOperatePage = '/api/sdc/exceptionReport/listOperateUnReplyPage';
// 查询运营端已回复异常上报
// 查询运营端已回复异常上报
$api_get_listOperateReplyPage = '/api/sdc/exceptionReport/listOperateReplyPage';
// 获取轨迹
$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) {
super(injector)
super(injector);
}
}

View File

@ -11,15 +11,56 @@
.alain-pro__page-header-content{
margin: 8px 8px 0px !important;
}
.ant-card-body{
padding: 6px !important;
}
.ant-card {
margin-bottom: 8px !important;
}
.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{
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;
}