Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -0,0 +1,57 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2022-01-05 11:01:55
|
||||
* @LastEditTime: 2022-01-05 13:47:31
|
||||
* @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\contract-management\components\contract-template-detail\contract-template-detail.component.html
|
||||
-->
|
||||
<!-- 页头 -->
|
||||
<page-header-wrapper [logo]="logo" [title]="textStatus" [content]="headerContent">
|
||||
<ng-template #logo>
|
||||
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
<ng-template #headerContent>
|
||||
<div nz-row style="display: flex; justify-content: end;">
|
||||
<div nz-col >
|
||||
<button nz-button nzSize="large" nzType="default" (click)="cancel()">取消</button>
|
||||
<button class="ml-lg" nz-button nzSize="large" nzType="primary" (click)="save()">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
|
||||
|
||||
<nz-card >
|
||||
<sf #sf [schema]="schema" [formData]="sfdata" [button]="'none'" [ui]="ui"></sf>
|
||||
</nz-card>
|
||||
|
||||
<nz-card>
|
||||
<div nz-col nzSpan="20" style="overflow: scroll">
|
||||
<nz-card class="card-height" *ngIf="isUpdate">
|
||||
<div class="mb-md">
|
||||
<div></div>
|
||||
</div>
|
||||
<div [innerHTML]="templateHTML | safehtml"></div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="card-height" *ngIf="!isUpdate">
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24">
|
||||
<input nz-input placeholder="请输入合同标题" [(ngModel)]="title" />
|
||||
</div>
|
||||
<div nz-col nzSpan="24" style="margin-top: 15px;">
|
||||
<sf #sf2 mode="edit" [schema]="schema2" [ui]="{ '*': { spanLabelFixed: 10, grid: { span: 24 }} }"
|
||||
button="none"> </sf>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nz-card>
|
||||
</div>
|
||||
</nz-card>
|
||||
<!-- <div class="mb-md save-btn">
|
||||
<button nz-button nzSize="large" nzType="default" (click)="cancel()">取消</button>
|
||||
<button class="ml-lg" nz-button nzSize="large" nzType="primary" (click)="save()">保存</button>
|
||||
</div> -->
|
||||
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-11-29 20:19:08
|
||||
* @LastEditTime: 2021-11-29 20:31:00
|
||||
* @LastEditors: your name
|
||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
* @FilePath: \tms-obc-web\src\app\routes\usercenter\components\freight\list\detail\detail.component.spec.ts
|
||||
*/
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { UserCenterComponentsDriverDetailComponent } from './contract-template-detail.component';
|
||||
|
||||
describe('UserCenterComponentsDriverDetailComponent', () => {
|
||||
let component: UserCenterComponentsDriverDetailComponent;
|
||||
let fixture: ComponentFixture<UserCenterComponentsDriverDetailComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [UserCenterComponentsDriverDetailComponent],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(UserCenterComponentsDriverDetailComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,135 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2022-01-05 11:01:55
|
||||
* @LastEditTime: 2022-01-05 13:51:44
|
||||
* @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\contract-management\components\contract-template-detail\contract-template-detail.component.ts
|
||||
*/
|
||||
import { DatePipe } from '@angular/common';
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { apiConf } from '@conf/api.conf';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFTagWidgetSchema, SFTextWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { NzMessageService } from 'ng-zorro-antd/message';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { ImageViewComponent } from 'src/app/shared/components/imagelist';
|
||||
import { ContractManagementService } from '../../services/contract-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-contract-management-template-detail-complaint',
|
||||
templateUrl: './contract-template-detail.component.html',
|
||||
styleUrls: ['./contract-template-detail.component.less'],
|
||||
providers: [DatePipe]
|
||||
})
|
||||
export class UserCenterComponentsDriverDetailComponent implements OnInit {
|
||||
|
||||
constructor(
|
||||
private nzModalService: NzModalService,
|
||||
public service: ContractManagementService,
|
||||
public route: ActivatedRoute,
|
||||
private datePipe: DatePipe
|
||||
) {}
|
||||
textStatus = '新建模板'
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
schema: SFSchema = {};
|
||||
@ViewChild('sf2', { static: false }) sf2!: SFComponent;
|
||||
schema2: SFSchema = {};
|
||||
ui!: SFUISchema;
|
||||
sfdata: any;
|
||||
title: any;
|
||||
templateHTML: any;
|
||||
isUpdate = false;
|
||||
ngOnInit() {
|
||||
this.initSF()
|
||||
this.initSF2()
|
||||
if(this.route.snapshot.queryParams.status == 3) {
|
||||
console.log('进来了吗')
|
||||
// 新建
|
||||
this.isUpdate = false;
|
||||
} else {
|
||||
// 编辑
|
||||
this.textStatus = '编辑模板';
|
||||
this.isUpdate =true;
|
||||
}
|
||||
|
||||
console.log(this.route.snapshot.params.id)
|
||||
console.log(this.route.snapshot.queryParams.status)
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1)
|
||||
}
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
phon: {
|
||||
type: 'string',
|
||||
title: '模版名称',
|
||||
},
|
||||
stateReceipt: {
|
||||
type: 'string',
|
||||
title: '是否回单',
|
||||
enum: [
|
||||
{ label: '需要', value: true },
|
||||
{ label: '不需要', value: false }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
errors: { required: '请选择' },
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
enterpriseProjectId: {
|
||||
type: 'string',
|
||||
title: '项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
stateReceipt: value => value === true
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
}
|
||||
};
|
||||
this.ui = {
|
||||
'*': {
|
||||
spanLabelFixed: 120,
|
||||
grid: { span: 8 }
|
||||
}
|
||||
};
|
||||
}
|
||||
initSF2(data?: any) {
|
||||
this.schema2 = {
|
||||
properties: {
|
||||
content: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'tinymce',
|
||||
loadingTip: 'loading...',
|
||||
config: {
|
||||
height: 650
|
||||
}
|
||||
},
|
||||
default: data?.agreementContent || ''
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
cancel() {
|
||||
|
||||
}
|
||||
|
||||
save () {
|
||||
console.log(this.sf.value);
|
||||
console.log(this.sfdata);
|
||||
console.log(this.sf2.value);
|
||||
console.log(this.title);
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 11:10:14
|
||||
* @LastEditTime: 2022-01-05 10:02:34
|
||||
* @LastEditTime: 2022-01-05 13:38:56
|
||||
* @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
|
||||
@ -38,6 +38,11 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card >
|
||||
<div class="NewBtn">
|
||||
<button nz-button nzType="primary"(click)="creatTemplate()">
|
||||
新建
|
||||
</button>
|
||||
</div>
|
||||
<div style="margin-top: 15px;">
|
||||
<st
|
||||
#st
|
||||
@ -51,47 +56,8 @@
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
<ng-template st-row="complaintCode" let-item let-index="index">
|
||||
<a [routerLink]="'/order-management/complaint-detail/'+item.id">{{item.complaintCode}}</a>
|
||||
<a (click)="view(item)">{{item.complaintCode}}</a>
|
||||
</ng-template>
|
||||
<ng-template st-row="complainant" let-item let-index="index">
|
||||
<div>
|
||||
{{item?.complainant?.name}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="complainant" let-item let-index="index">
|
||||
<div>
|
||||
{{item?.complainant?.name}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<!-- <ng-template st-row="externalSn" let-item let-index="index">
|
||||
<span class="mr-xs">{{111111}}</span>
|
||||
<a (click)="editEnternalSn(item)">编辑</a>
|
||||
</ng-template> -->
|
||||
<ng-template st-row="enStatusStr27878" let-item let-index="index">
|
||||
<div class="mr-xs" nzPopoverTitle="Title" nz-popover [nzPopoverContent]="contentTemplate">{{item.no}}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="feiong" let-item let-index="index">
|
||||
<div style="color: aqua;" >
|
||||
{{item.no}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #contentTemplate>
|
||||
<div>
|
||||
<p>预付:¥200.00</p>
|
||||
<p>到付:¥200.00</p>
|
||||
<p>油卡:¥200.00</p>
|
||||
<p>回单付:¥200.00</p>
|
||||
<p>小计:¥200.00</p>
|
||||
<p>附加费:¥200.00</p>
|
||||
</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</div>
|
||||
</nz-card>
|
||||
<ng-template #extraTemplate>
|
||||
<div>
|
||||
<button nz-button nzType="primary"(click)="creatTemplate()">
|
||||
新建
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@ -0,0 +1,4 @@
|
||||
.NewBtn{
|
||||
float: right;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
@ -124,11 +124,11 @@ export class OrderManagementTemplateComponent implements OnInit {
|
||||
buttons: [
|
||||
{
|
||||
text: '编辑',
|
||||
click: (_record) => this.view(_record),
|
||||
click: (_record) => this.edit(_record),
|
||||
},
|
||||
{
|
||||
text: '删除',
|
||||
click: (_record) => this.view(_record),
|
||||
click: (_record) => this.delete(_record),
|
||||
},
|
||||
],
|
||||
},
|
||||
@ -203,10 +203,40 @@ export class OrderManagementTemplateComponent implements OnInit {
|
||||
viewEvaluate(item: any) {
|
||||
this.channelId = item.id;
|
||||
}
|
||||
view(value: any) {
|
||||
this.router.navigate(['/order-management/complaint-detail/' + value.id])
|
||||
edit(value: any) {
|
||||
this.router.navigate(['/contract-management/template/detail/' + value.id],{
|
||||
queryParams: {
|
||||
status: 2
|
||||
}
|
||||
})
|
||||
}
|
||||
creatTemplate() {
|
||||
|
||||
this.router.navigate(['/contract-management/template/detail/' + 0], {
|
||||
queryParams: {
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1)
|
||||
}
|
||||
view(value: any) {
|
||||
this.router.navigate(['/contract-management/template/detail/' + value.id],{
|
||||
queryParams: {
|
||||
status: 3
|
||||
}
|
||||
})
|
||||
}
|
||||
delete(value: any) {
|
||||
this.modal.confirm({
|
||||
nzTitle: '<i>删除确认</i>',
|
||||
nzOnOk: () =>
|
||||
// this.service.delMany(ids).subscribe(res => {
|
||||
// if (res === true) {
|
||||
// this.service.msgSrv.success('删除成功!');
|
||||
// }
|
||||
// })
|
||||
console.log(value)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-07 15:57:49
|
||||
* @LastEditTime: 2022-01-05 09:50:37
|
||||
* @LastEditTime: 2022-01-05 11:05:16
|
||||
* @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\contract-management\contract-management-routing.module.ts
|
||||
@ -9,12 +9,15 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { RouterModule, Routes } from '@angular/router';
|
||||
import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component';
|
||||
import { UserCenterComponentsDriverDetailComponent } from './components/contract-template-detail/contract-template-detail.component';
|
||||
import { OrderManagementTemplateComponent } from './components/contract-template/contract-template.component';
|
||||
import { ContractManagementPolicyComponent } from './components/policy/policy.component';
|
||||
const routes: Routes = [
|
||||
{ path: 'list', component: ContractManagementContractListComponent },
|
||||
{ path: 'template', component: OrderManagementTemplateComponent },
|
||||
{ path: 'policy', component: ContractManagementPolicyComponent }];
|
||||
{ path: 'template/detail/:id', component: UserCenterComponentsDriverDetailComponent },
|
||||
{ path: 'policy', component: ContractManagementPolicyComponent }
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-07 15:57:49
|
||||
* @LastEditTime: 2022-01-05 09:50:29
|
||||
* @LastEditTime: 2022-01-05 11:05:11
|
||||
* @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\contract-management\contract-management.module.ts
|
||||
@ -13,11 +13,13 @@ import { ContractManagementManagementRoutingModule } from './contract-management
|
||||
import { ContractManagementContractListComponent } from './components/contract-list/contract-list.component';
|
||||
import { ContractManagementPolicyComponent } from './components/policy/policy.component';
|
||||
import { OrderManagementTemplateComponent } from './components/contract-template/contract-template.component';
|
||||
import { UserCenterComponentsDriverDetailComponent } from './components/contract-template-detail/contract-template-detail.component';
|
||||
|
||||
const COMPONENTS: any = [
|
||||
ContractManagementContractListComponent,
|
||||
ContractManagementPolicyComponent,
|
||||
OrderManagementTemplateComponent
|
||||
OrderManagementTemplateComponent,
|
||||
UserCenterComponentsDriverDetailComponent
|
||||
];
|
||||
const NOTROUTECOMPONENTS: any = [];
|
||||
@NgModule({
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime: 2021-12-27 14:15:35
|
||||
* @LastEditTime: 2022-01-05 15:28:42
|
||||
* @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\order-management\components\vehicle-detail\vehicle-detail.component.html
|
||||
@ -12,8 +12,10 @@
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #headerContent>
|
||||
<div class="mb-xs" nz-row>
|
||||
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.billStatusLabel}}</button>
|
||||
<h4 class="ml-md" style="font-size: 18px;">订单号: {{ i?.billCode }}</h4>
|
||||
</div>
|
||||
<div nz-row style="display: flex; justify-content: end;">
|
||||
@ -22,62 +24,32 @@
|
||||
<button nz-button nzType="primary" (click)="save()" nzGhost>保存修改</button>
|
||||
</div>
|
||||
</div>
|
||||
<nz-divider></nz-divider>
|
||||
<div>
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<div sv-container>
|
||||
<sv label="网络货运人">{{ i?.goodsResource?.[0]?.enterpriseInfoName }} </sv>
|
||||
<sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv>
|
||||
<sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv>
|
||||
<sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv>
|
||||
<sv label="录单员">{{i?.goodsResource?.[0]?.dispatchName}} 18100000000 </sv>
|
||||
<sv label="录单员">{{i?.createUserNameLabel}} </sv>
|
||||
<sv label="调度员">{{i?.goodsResource?.[0]?.dispatchName}} </sv>
|
||||
</div>
|
||||
<div>
|
||||
<div>状态</div>
|
||||
<div style="font-size: 22px;font-weight: 700;">{{i?.billStatusLabel}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<nz-tabset nzType="card" style="margin-top: 15px;">
|
||||
<nz-tab [nzTitle]="tempt" >
|
||||
<ng-template #tempt>
|
||||
<nz-anchor>
|
||||
<nz-link nzHref="#distannce1" nzTitle="装卸货信息"></nz-link>
|
||||
</nz-anchor>
|
||||
</ng-template>
|
||||
<nz-tabset style="margin-top: 15px;">
|
||||
<nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)">
|
||||
</nz-tab>
|
||||
<nz-tab [nzTitle]="tempt2" >
|
||||
<ng-template #tempt2>
|
||||
<nz-anchor>
|
||||
<nz-link nzHref="#distannce2" nzTitle="基本信息"></nz-link>
|
||||
</nz-anchor>
|
||||
</ng-template>
|
||||
<nz-tab nzTitle="基本信息" (nzClick)="goDistance(distannce2)">
|
||||
</nz-tab>
|
||||
<nz-tab [nzTitle]="tempt3" >
|
||||
<ng-template #tempt3>
|
||||
<nz-anchor>
|
||||
<nz-link nzHref="#distannce3" nzTitle="运费信息"></nz-link>
|
||||
</nz-anchor>
|
||||
</ng-template>
|
||||
<nz-tab nzTitle="运费信息" (nzClick)="goDistance(distannce3)">
|
||||
</nz-tab>
|
||||
<nz-tab [nzTitle]="tempt4" >
|
||||
<ng-template #tempt4>
|
||||
<nz-anchor>
|
||||
<nz-link nzHref="#distannce4" nzTitle="附件信息"></nz-link>
|
||||
</nz-anchor>
|
||||
</ng-template>
|
||||
<nz-tab nzTitle="附件信息" (nzClick)="goDistance(distannce4)">
|
||||
</nz-tab>
|
||||
<nz-tab [nzTitle]="tempt5" >
|
||||
<ng-template #tempt5>
|
||||
<nz-anchor>
|
||||
<nz-link nzHref="#distannce5" nzTitle="轨迹信息"></nz-link>
|
||||
</nz-anchor>
|
||||
</ng-template>
|
||||
<nz-tab nzTitle="轨迹信息" (nzClick)="goDistance(distannce5)">
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</div>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card nzTitle="运单进度">
|
||||
<nz-card nzTitle="运单进度" #distannce1>
|
||||
<div class="approval-status">
|
||||
<div style="width: 60%; margin: 0 auto">
|
||||
<nz-steps [nzLabelPlacement]="'vertical'">
|
||||
@ -179,7 +151,7 @@
|
||||
<ng-template #endInconTemp1><i nz-icon nzType="global"></i></ng-template>
|
||||
</form>
|
||||
</nz-card>
|
||||
<nz-card nzTitle="基本信息" id="distannce2">
|
||||
<nz-card nzTitle="基本信息" #distannce2>
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="12">
|
||||
<sf #sf3 [schema]="schema3" [formData]="sf3data" [button]="'none'" [ui]="ui3"></sf>
|
||||
@ -263,7 +235,7 @@
|
||||
|
||||
</div>
|
||||
</nz-card> -->
|
||||
<nz-card nzTitle="运费信息" id="distannce3">
|
||||
<nz-card nzTitle="运费信息" #distannce3>
|
||||
<h2>{{i?.freightPrice}}{{i?.freightTypeLabel}}(以发货为准,保留小数)</h2>
|
||||
<st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
|
||||
|
||||
@ -272,7 +244,7 @@
|
||||
<div>收款人:</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card nzTitle="附件信息" id="distannce4">
|
||||
<nz-card nzTitle="附件信息" #distannce4>
|
||||
<sv-container>
|
||||
<sv label="协议附件">
|
||||
<!-- {{i?.supplementaryInformationVO?.stateReceipt?'是':'否'}} -->
|
||||
@ -334,7 +306,7 @@
|
||||
|
||||
<nz-card>
|
||||
<div nz-row>
|
||||
<nz-card nzTitle="轨迹信息" style="width: 100%;" id="distannce5">
|
||||
<nz-card nzTitle="轨迹信息" style="width: 100%;" #distannce5>
|
||||
<div nz-row >
|
||||
<div nz-col [nzSpan]='12'>
|
||||
<!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
|
||||
|
||||
@ -2,7 +2,7 @@ import { ViewChild } from '@angular/core';
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime: 2021-12-27 14:38:15
|
||||
* @LastEditTime: 2022-01-05 14:33:56
|
||||
* @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\order-management\components\vehicle-detail\vehicle-detail.component.ts
|
||||
@ -20,6 +20,7 @@ import { NzUploadChangeParam, NzUploadFile } from 'ng-zorro-antd/upload';
|
||||
import { Observable, Observer } from 'rxjs';
|
||||
import { apiConf } from '@conf/api.conf';
|
||||
import { OrderManagementService } from '../../services/order-management.service';
|
||||
import { NzCardComponent } from 'ng-zorro-antd/card';
|
||||
function getBase64(file: File): Promise<string | ArrayBuffer | null> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader();
|
||||
@ -802,4 +803,9 @@ handleCancel() {
|
||||
handleOK() {
|
||||
this.isVisible = false
|
||||
}
|
||||
goDistance(elf: NzCardComponent) {
|
||||
if (elf) {
|
||||
elf['elementRef'].nativeElement.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime: 2021-12-28 16:31:50
|
||||
* @LastEditTime: 2022-01-05 16:36:39
|
||||
* @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\order-management\components\vehicle-detail\vehicle-detail.component.html
|
||||
@ -31,7 +31,7 @@
|
||||
<sv label="网络货运人">{{ i?.goodsResource?.[0]?.enterpriseInfoName }} </sv>
|
||||
<sv label="货主">{{ i?.goodsResource?.[0]?.shipperAppUserName }} </sv>
|
||||
<sv label="所属项目">{{i?.goodsResource?.[0]?.enterpriseProjectName}}</sv>
|
||||
<sv label="服务类型8">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv>
|
||||
<sv label="服务类型">{{i?.goodsResource?.[0]?.serviceTypeLabel}}</sv>
|
||||
<sv label="录单员">{{i?.createUserNameLabel}} </sv>
|
||||
<sv label="调度员">{{i?.goodsResource?.[0]?.dispatchName}} </sv>
|
||||
</div>
|
||||
|
||||
@ -9,6 +9,7 @@ import { UpdateFreightComponent } from '../../modal/bulk/update-freight/update-f
|
||||
import { ConfirReceiptComponent } from '../../modal/bulk/confir-receipt/confir-receipt.component';
|
||||
import { of } from 'rxjs';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
|
||||
@Component({
|
||||
@ -60,7 +61,13 @@ tabs = {
|
||||
receivedQuantity: 0,
|
||||
stayQuantity: 0
|
||||
};
|
||||
constructor(public service: OrderManagementService, private modal: NzModalService,public service2: ShipperBaseService) { }
|
||||
constructor(
|
||||
public service: OrderManagementService,
|
||||
private modal: NzModalService,
|
||||
public service2: ShipperBaseService,
|
||||
private router: Router,
|
||||
|
||||
) { }
|
||||
|
||||
/**
|
||||
* 查询参数
|
||||
@ -457,7 +464,7 @@ tabs = {
|
||||
},
|
||||
{
|
||||
text: '修改订单',
|
||||
click: (_record) => this.cancellation(_record),
|
||||
click: (_record) => this.changeOrder(_record),
|
||||
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3',
|
||||
},
|
||||
],
|
||||
@ -699,4 +706,8 @@ tabs = {
|
||||
})
|
||||
});
|
||||
}
|
||||
// 修改订单
|
||||
changeOrder(value: any) {
|
||||
this.router.navigate(['order-management/bulk-detailChange', value.id])
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime: 2021-12-27 14:16:23
|
||||
* @LastEditTime: 2022-01-05 14:43:22
|
||||
* @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\order-management\components\vehicle-detail\vehicle-detail.component.html
|
||||
@ -12,7 +12,8 @@
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
<ng-template #headerContent>
|
||||
<!-- <ng-template #headerContent>
|
||||
|
||||
<div class="mb-xs" nz-row>
|
||||
<h4 class="ml-md" style="font-size: 18px;">订单号: {{ i?.billCode }}</h4>
|
||||
</div>
|
||||
@ -75,9 +76,46 @@
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</div>
|
||||
</ng-template> -->
|
||||
<ng-template #headerContent>
|
||||
<div class="mb-xs" nz-row>
|
||||
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.billStatusLabel}}</button>
|
||||
<h4 class="ml-md" style="font-size: 18px;">订单号: {{ i?.billCode }}</h4>
|
||||
</div>
|
||||
<div nz-row style="display: flex; justify-content: end;">
|
||||
<div nz-col nzSpan="10">
|
||||
<button nz-button (click)="cancelChange()">取消修改</button>
|
||||
<button nz-button nzType="primary" (click)="save()" nzGhost>保存修改</button>
|
||||
</div>
|
||||
</div>
|
||||
<nz-divider></nz-divider>
|
||||
<div>
|
||||
<div sv-container>
|
||||
<sv label="网络货运人">{{ i?.goodsResource?.enterpriseInfoName }} </sv>
|
||||
<sv label="货主">{{ i?.goodsResource?.shipperAppUserName }} </sv>
|
||||
<sv label="所属项目">{{i?.goodsResource?.enterpriseProjectName}}</sv>
|
||||
<sv label="服务类型">{{i?.goodsResource?.serviceTypeLabel}}</sv>
|
||||
<sv label="录单员">{{i?.goodsResource?.dispatchName}} 18100000000 </sv>
|
||||
<sv label="调度员">{{i?.goodsResource?.dispatchName}} </sv>
|
||||
</div>
|
||||
|
||||
<nz-tabset style="margin-top: 15px;">
|
||||
<nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)">
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="基本信息" (nzClick)="goDistance(distannce2)">
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="运费信息" (nzClick)="goDistance(distannce3)">
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="附件信息" (nzClick)="goDistance(distannce4)">
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="轨迹信息" (nzClick)="goDistance(distannce5)">
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
|
||||
</div>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card nzTitle="运单进度">
|
||||
<nz-card nzTitle="运单进度" #distannce1>
|
||||
<div class="approval-status">
|
||||
<div style="width: 60%; margin: 0 auto">
|
||||
<nz-steps [nzLabelPlacement]="'vertical'">
|
||||
@ -95,7 +133,7 @@
|
||||
|
||||
|
||||
<nz-card>
|
||||
<div class="card-title" id="distannce1"
|
||||
<div class="card-title"
|
||||
>装卸货信息<span class="tip-font">预计公里数:{{ totalDistance }}km,预计行程耗时:{{ totalTime }}小时</span></div
|
||||
>
|
||||
<form nz-form [formGroup]="validateForm1" role="form">
|
||||
@ -179,29 +217,7 @@
|
||||
<ng-template #endInconTemp1><i nz-icon nzType="global"></i></ng-template>
|
||||
</form>
|
||||
</nz-card>
|
||||
<nz-card nzTitle="基本信息" id="distannce2">
|
||||
<!-- <sv-container col="1">
|
||||
<sv label="网络货运人">
|
||||
{{i?.goodsResource?.[0]?.enterpriseInfoName}}
|
||||
</sv>
|
||||
<sv label="货物名称">
|
||||
{{i?.goodsInfoList?.[0]?.goodsName}}
|
||||
</sv>
|
||||
</sv-container>
|
||||
<sv-container col="2">
|
||||
<sv label="货物数量">
|
||||
{{i?.goodsInfoList?.[0]?.weight}}顿,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件
|
||||
</sv>
|
||||
<sv label="用车需求">
|
||||
{{i?.goodsInfoList?.[0]?.maxWeightLabel}}/{{i?.goodsInfoList?.[0]?.maxCube}}
|
||||
</sv>
|
||||
<sv label="承运司机">
|
||||
{{i?.driverId}}
|
||||
</sv>
|
||||
<sv label="车型车长载重">
|
||||
{{i?.goodsInfoList?.[0]?.weight}}顿,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件
|
||||
</sv>
|
||||
</sv-container> -->
|
||||
<nz-card nzTitle="基本信息" configuration #distannce2>
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="12">
|
||||
<sf #sf3 [schema]="schema3" [formData]="sf3data" [button]="'none'" [ui]="ui3"></sf>
|
||||
@ -272,26 +288,7 @@
|
||||
|
||||
</nz-card>
|
||||
|
||||
|
||||
<!-- <nz-card nzTitle="运费信息" id="distannce3">
|
||||
<st #st [data]="dirvingMessage" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
|
||||
<ng-template st-row="price" let-item let-index="index">
|
||||
<input nz-input [ngModel]="item?.price" (ngModelChange)="st.setRow(index, { price: $event })" />
|
||||
</ng-template>
|
||||
<ng-template st-row="paymentMethodRate" let-item let-index="index">
|
||||
<input nz-input [ngModel]="item?.paymentMethodRate" (ngModelChange)="st.setRow(index, { paymentMethodRate: $event })" />
|
||||
</ng-template>
|
||||
</st>
|
||||
<div style="margin-top: 15px;">总计:{{i?.total | currency: '¥'}}(运费¥3500.00,附加运费¥191.98,附加费率3.5%)</div>
|
||||
<div style="display: flex;">收款人:
|
||||
<div style="display: flex;">
|
||||
<input nz-input placeholder="请输入司机手机号" [(ngModel)]="dirverPhone" />
|
||||
<input nz-input placeholder="选择银行卡" [(ngModel)]="dirverBankCard" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</nz-card> -->
|
||||
<nz-card nzTitle="运费信息" id="distannce3">
|
||||
<nz-card nzTitle="运费信息" #distannce3>
|
||||
<st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
|
||||
|
||||
</st>
|
||||
@ -299,7 +296,7 @@
|
||||
<div>收款人:</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card nzTitle="附件信息" id="distannce4">
|
||||
<nz-card nzTitle="附件信息" #distannce4>
|
||||
<sv-container>
|
||||
<sv label="协议附件">
|
||||
<!-- {{i?.supplementaryInformationVO?.stateReceipt?'是':'否'}} -->
|
||||
@ -361,7 +358,7 @@
|
||||
|
||||
<nz-card>
|
||||
<div nz-row>
|
||||
<nz-card nzTitle="轨迹信息" style="width: 100%;" id="distannce5">
|
||||
<nz-card nzTitle="轨迹信息" style="width: 100%;" #distannce5>
|
||||
<div nz-row >
|
||||
<div nz-col [nzSpan]='12'>
|
||||
<!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
|
||||
|
||||
@ -2,7 +2,7 @@ import { ViewChild } from '@angular/core';
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime: 2021-12-24 16:50:42
|
||||
* @LastEditTime: 2022-01-05 14:38:14
|
||||
* @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\order-management\components\vehicle-detail\vehicle-detail.component.ts
|
||||
@ -20,6 +20,7 @@ import { NzUploadChangeParam, NzUploadFile } from 'ng-zorro-antd/upload';
|
||||
import { Observable, Observer } from 'rxjs';
|
||||
import { apiConf } from '@conf/api.conf';
|
||||
import { OrderManagementService } from '../../services/order-management.service';
|
||||
import { NzCardComponent } from 'ng-zorro-antd/card';
|
||||
function getBase64(file: File): Promise<string | ArrayBuffer | null> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader();
|
||||
@ -750,4 +751,11 @@ handleCancel() {
|
||||
handleOK() {
|
||||
this.isVisible = false
|
||||
}
|
||||
goDistance(elf: NzCardComponent) {
|
||||
if (elf) {
|
||||
elf['elementRef'].nativeElement.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' , });
|
||||
// elf['elementRef'].nativeElement.className = 'target-fix'
|
||||
}
|
||||
console.log(elf)
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime: 2022-01-04 15:31:43
|
||||
* @LastEditTime: 2022-01-05 14:40:08
|
||||
* @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\order-management\components\vehicle-detail\vehicle-detail.component.html
|
||||
@ -131,7 +131,7 @@
|
||||
<nz-card nzTitle="保险待定">
|
||||
</nz-card>
|
||||
|
||||
<nz-card nzTitle="运费信息" id="distannce3" #distannce3>
|
||||
<nz-card nzTitle="运费信息" #distannce3>
|
||||
<st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
|
||||
|
||||
</st>
|
||||
@ -143,7 +143,7 @@
|
||||
<div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card nzTitle="附件信息" id="distannce4" #distannce4>
|
||||
<nz-card nzTitle="附件信息" #distannce4>
|
||||
<sv-container>
|
||||
<sv label="协议附件">
|
||||
<!-- {{i?.supplementaryInformationVO?.stateReceipt?'是':'否'}} -->
|
||||
|
||||
@ -407,7 +407,7 @@ resourceStatus: any;
|
||||
},
|
||||
{
|
||||
text: '修改订单',
|
||||
click: (_record) => this.amendlation(_record),
|
||||
click: (_record) => this.changeOrder(_record),
|
||||
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3',
|
||||
},
|
||||
{
|
||||
@ -761,8 +761,8 @@ resourceStatus: any;
|
||||
}
|
||||
});
|
||||
}
|
||||
// 修改订单
|
||||
amendlation(value: any) {
|
||||
this.router.navigate(['order-management/vehicle-detailChange', value.id])
|
||||
}
|
||||
// 修改订单
|
||||
changeOrder(value: any) {
|
||||
this.router.navigate(['order-management/vehicle-detailChange', value.id]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-15 13:17:42
|
||||
* @LastEditTime: 2021-12-30 16:49:30
|
||||
* @LastEditTime: 2022-01-05 16:38:21
|
||||
* @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\order-management\modal\vehicle\update-freight\update-freight.component.html
|
||||
@ -13,26 +13,33 @@
|
||||
</sf>
|
||||
</div>
|
||||
|
||||
<div nz-col [nzSpan]="4" style="margin-top: 15px;" >
|
||||
<button style="display: inline-block;" nz-button nzType="primary" >搜索</button>
|
||||
<div nz-col [nzSpan]="1" style="margin-top: 15px;" >
|
||||
<button style="display: inline-block;" nz-button nzType="primary" (click)="initDate()">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #st
|
||||
[data]="service.$api_get_bulkPage_list"
|
||||
[data]="dataList"
|
||||
[columns]="Columns"
|
||||
[req]="{ method: 'POST', allInBody: true, params: reParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[loadingDelay]="500"
|
||||
>
|
||||
<ng-template st-row="shipperAppUserId" let-item let-index="index">
|
||||
<input nz-input [ngModel]="item?.costName" (ngModelChange)="st.setRow(index, { costName: $event })" />
|
||||
<ng-template st-row="avatar" let-item let-index="index">
|
||||
<img style="height: 20px;" [src]="item?.avatar" alt="">
|
||||
</ng-template>
|
||||
<ng-template st-row="bankList" let-item let-index="index">
|
||||
<nz-select [(ngModel)]="bankData" style="width: 200px;">
|
||||
<nz-option
|
||||
*ngFor="let i of item.bankList"
|
||||
[nzLabel]="i.bankCardNumber"
|
||||
[nzValue]="i.id"
|
||||
></nz-option>
|
||||
</nz-select>
|
||||
</ng-template>
|
||||
<ng-template st-row="paymentMethodRate" let-item let-index="index">
|
||||
<input nz-input [ngModel]="item?.paymentMethodRate" (ngModelChange)="st.setRow(index, { paymentMethodRate: $event })" />
|
||||
</ng-template>
|
||||
</st>
|
||||
<div class="modal-footer">
|
||||
<!-- <div class="modal-footer">
|
||||
<button nz-button type="button" (click)="close()">关闭</button>
|
||||
<button nz-button type="submit" nzType="primary" (click)="save(sf.value)" [disabled]="sf.valid">确定</button>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-14 14:03:07
|
||||
* @LastEditTime: 2021-12-30 16:57:01
|
||||
* @LastEditTime: 2022-01-05 16:27:22
|
||||
* @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\order-management\modal\bulk\update-freight\update-freight.component.ts
|
||||
@ -25,8 +25,9 @@ export class VehicleModifyCaptainComponent implements OnInit {
|
||||
ui: SFUISchema = {};
|
||||
Columns: STColumn[] =[]
|
||||
aggreechecked = false;
|
||||
|
||||
dataList: any =[]
|
||||
data: any;
|
||||
bankData: any;
|
||||
|
||||
constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public service: OrderManagementService, ) {}
|
||||
|
||||
@ -38,13 +39,13 @@ export class VehicleModifyCaptainComponent implements OnInit {
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
enterpriseInfoName: {
|
||||
mobile: {
|
||||
type: 'string',
|
||||
title: '车队长手机号',
|
||||
maxLength: 11
|
||||
},
|
||||
},
|
||||
required: ['enterpriseInfoName']
|
||||
required: ['mobile']
|
||||
};
|
||||
this.ui = {
|
||||
'*': {
|
||||
@ -53,48 +54,72 @@ export class VehicleModifyCaptainComponent implements OnInit {
|
||||
}
|
||||
};
|
||||
}
|
||||
get reParams() {
|
||||
return {
|
||||
...this.sf?.value,
|
||||
};
|
||||
}
|
||||
initST() {
|
||||
this.Columns = [
|
||||
{ title: '司机头像', index: 'auditStatusLabel',width: '120px', },
|
||||
{ title: '司机姓名', index: 'auditStatusLabel' ,width: '120px',},
|
||||
{ title: '司机头像', render: 'avatar',width: '120px', },
|
||||
{ title: '司机姓名', index: 'name' ,width: '120px',},
|
||||
{
|
||||
title: '实名认证状态',
|
||||
className: 'text-center',
|
||||
index: 'settlementBasis',
|
||||
index: 'certificationStatus',
|
||||
type: 'badge',
|
||||
width: '120px',
|
||||
badge: {
|
||||
'1': { text: '待申请', color: 'warning' },
|
||||
'2': { text: '已支付', color: 'success' },
|
||||
'3': { text: '已拒绝', color: 'warning' },
|
||||
'4': { text: '申请中', color: 'warning' },
|
||||
'-1': { text: '未提交', color: 'warning' },
|
||||
'0': { text: '待审核', color: 'warning' },
|
||||
'1': { text: '通过', color: 'success' },
|
||||
'2': { text: '驳回', color: 'error' },
|
||||
},
|
||||
},
|
||||
{ title: '收款账户',width: '200px', render: 'shipperAppUserId' },
|
||||
{ title: '操作', width: '120px',},
|
||||
{ title: '收款账户',width: '200px', render: 'bankList' },
|
||||
{
|
||||
title: '操作',
|
||||
width: '120px',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
text: '设置',
|
||||
click: item => {
|
||||
this.set(item)
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
];
|
||||
}
|
||||
save(value: any): void {
|
||||
set(value: any): void {
|
||||
console.log(this.st?._data)
|
||||
console.log(this.data)
|
||||
console.log(value)
|
||||
console.log(this.bankData)
|
||||
const params = {
|
||||
billIds: this.data?.ids,
|
||||
carCaptainId: value.id,
|
||||
bankData: this.bankData
|
||||
};
|
||||
|
||||
this.service.request(this.service.$api_get_insertFreightChangeWhole, params).subscribe((res: any) => {
|
||||
this.service.request(this.service.$api_get_updateCarCaptainBatch, params).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.modal.destroy();
|
||||
this.service.msgSrv.success('变更运费成功');
|
||||
this.service.msgSrv.success('修改成功');
|
||||
} else {
|
||||
this.service.msgSrv.error(res?.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
initDate() {
|
||||
const params = {
|
||||
fetchBank: 1,
|
||||
...this.sf?.value,
|
||||
};
|
||||
this.service.request(this.service.$api_get_getCarCaptainByMobile, params).subscribe((res: any) => {
|
||||
console.log(res)
|
||||
if (res) {
|
||||
this.dataList = [res]
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
close(): void {
|
||||
this.modal.destroy();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime: 2022-01-04 16:30:06
|
||||
* @LastEditTime: 2022-01-05 15:46:04
|
||||
* @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\order-management\services\order-management.service.ts
|
||||
@ -117,6 +117,12 @@ export class OrderManagementService extends ShipperBaseService {
|
||||
$api_get_canelComplaint = `/api/sdc/complaint/operate/canelComplaint`;
|
||||
|
||||
|
||||
// 批量修改车队长
|
||||
$api_get_updateCarCaptainBatch = `/api/sdc/billOperate/updateCarCaptainBatch`;
|
||||
// 根据手机号查询车队长/司机
|
||||
$api_get_getCarCaptainByMobile = `/api/mdc/userDriverExpand/getCarCaptainByMobile`;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
||||
import { STComponent } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
||||
import { ModalHelper } from '@delon/theme';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { filter } from 'rxjs/operators';
|
||||
|
||||
@ -58,6 +59,8 @@ export class SupplyGoodsComponentListLargeAmountComponent implements OnInit, Aft
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
private modalHelper: ModalHelper,
|
||||
public shipperSrv: ShipperBaseService
|
||||
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
@ -106,21 +109,18 @@ export class SupplyGoodsComponentListLargeAmountComponent implements OnInit, Aft
|
||||
},
|
||||
},
|
||||
},
|
||||
enStatus2: {
|
||||
createUserId: {
|
||||
type: 'string',
|
||||
title: '录单员',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '正常', value: 0 },
|
||||
{ label: '冻结', value: 1 },
|
||||
{ label: '废弃', value: 2 },
|
||||
],
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value,
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
asyncData: () => this.shipperSrv.getStaffList(),
|
||||
allowClear: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@ -134,10 +134,11 @@ export class SupplyManagementBulkDetailComponent implements OnInit {
|
||||
* @param record
|
||||
*/
|
||||
placeOrder(record: any) {
|
||||
this.router.navigate(['./pbg/onecar-publish'], {
|
||||
console.log(record)
|
||||
this.router.navigate(['/supply-management/bulk-amend', record.id], {
|
||||
queryParams: {
|
||||
id: record?.id
|
||||
}
|
||||
sta: 4
|
||||
},
|
||||
})
|
||||
}
|
||||
/**
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<div class="card-title">货源单设置</div>
|
||||
<sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf>
|
||||
<sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf>
|
||||
</nz-card>
|
||||
|
||||
<nz-card>
|
||||
@ -39,7 +39,13 @@
|
||||
<nz-form-control [nzErrorTip]="'请输入联系人信息'">
|
||||
<div class="align-center">
|
||||
<input nz-input [(ngModel)]="data.appUserName" [ngModelOptions]="{ standalone: true }" maxlength="30" />
|
||||
<input style="margin-left: 12px" nz-input [(ngModel)]="data.contractTelephone" [ngModelOptions]="{ standalone: true }" maxlength="11" />
|
||||
<input
|
||||
style="margin-left: 12px"
|
||||
nz-input
|
||||
[(ngModel)]="data.contractTelephone"
|
||||
[ngModelOptions]="{ standalone: true }"
|
||||
maxlength="11"
|
||||
/>
|
||||
</div>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
@ -73,31 +79,20 @@
|
||||
<nz-form-control [nzErrorTip]="'请输入联系人信息'">
|
||||
<div class="align-center">
|
||||
<input nz-input [(ngModel)]="data.appUserName" [ngModelOptions]="{ standalone: true }" maxlength="30" />
|
||||
<input style="margin-left: 12px" nz-input [(ngModel)]="data.contractTelephone" [ngModelOptions]="{ standalone: true }" maxlength="11" />
|
||||
<input
|
||||
style="margin-left: 12px"
|
||||
nz-input
|
||||
[(ngModel)]="data.contractTelephone"
|
||||
[ngModelOptions]="{ standalone: true }"
|
||||
maxlength="11"
|
||||
/>
|
||||
</div>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div *ngIf="npp" nz-row [nzGutter]="24" style="margin-top: 24px">
|
||||
<div nz-col [nzSpan]="9">
|
||||
<nz-form-item>
|
||||
<nz-form-label [nzSpan]="4" nzRequired>装货时间</nz-form-label>
|
||||
<nz-form-control [nzErrorTip]="'请输入装货时间'">
|
||||
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="createTime" [(ngModel)]="creatTime"></nz-date-picker>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="8">
|
||||
<nz-form-item>
|
||||
<nz-form-label [nzSpan]="9" nzRequired>卸货时间</nz-form-label>
|
||||
<nz-form-control [nzErrorTip]="'请输入卸货时间'">
|
||||
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="modifyTime" [(ngModel)]="modifyTime"></nz-date-picker>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<ng-template #endInconTemp1><i nz-icon nzType="global"></i></ng-template>
|
||||
</form>
|
||||
</nz-card>
|
||||
@ -186,15 +181,21 @@
|
||||
<div class="card-title">补充信息</div>
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="12">
|
||||
<sf #sf7 [schema]="schema7" [formData]="sf7data" [button]="'none'" [ui]="ui7">
|
||||
<sf #sf7 [schema]="schema7" [formData]="sf7data" [button]="'none'" [ui]="ui7">
|
||||
<ng-template sf-template="paymentDays" let-i let-ui="ui">
|
||||
<div nz-row>
|
||||
<div class="align-center">
|
||||
<div nz-col nzSpan="16">
|
||||
<!-- <input nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" /> -->
|
||||
<nz-input-number [(ngModel)]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1" [nzMax]="30" [nzStep]="1"></nz-input-number>
|
||||
<div class="align-center" style="width: 350px;">
|
||||
<div nz-col nzSpan="12">
|
||||
<nz-input-number
|
||||
[(ngModel)]="i.value"
|
||||
(ngModelChange)="i.setValue($event)"
|
||||
[nzMin]="1"
|
||||
[nzMax]="30"
|
||||
[nzStep]="1"
|
||||
style="width: 150px;"
|
||||
></nz-input-number>
|
||||
</div>
|
||||
<div nz-col nzSpan="8">
|
||||
<div nz-col nzSpan="6">
|
||||
<span>天内支付运费</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -206,8 +207,9 @@
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<div class="align-center">
|
||||
<button nz-button nzType="primary" (click)="chooseFamifiar()">生成二维码</button>
|
||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="chooseFamifiar()">指派熟车</button>
|
||||
<!-- <button nz-button nzType="primary" (click)="chooseFamifiar()">生成二维码</button>
|
||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="chooseFamifiar()">指派熟车</button> -->
|
||||
<button nz-button nzType="primary" (click)="choose()">取消</button>
|
||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit()">司机抢单</button>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -36,6 +36,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
totalFees: any; // 总数信息
|
||||
totalDistance = 0.0; //总里程
|
||||
totalTime = 0.0; //路程总时间
|
||||
currentGoodsTypeName: any;
|
||||
enterpriseProjectIds: any;
|
||||
id = this.route.snapshot.params.id;
|
||||
// // 单位
|
||||
@ -46,7 +47,15 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
endInfo: any = [];
|
||||
PageStatus = '';
|
||||
dataList: any;
|
||||
constructor(private http: _HttpClient, fb: FormBuilder, private router: Router, private route: ActivatedRoute, private modalService: NzModalService, public service: SupplyManagementService, private amapService: AmapService, public service2: ShipperBaseService,) {
|
||||
constructor(
|
||||
private http: _HttpClient,
|
||||
fb: FormBuilder,
|
||||
private router: Router,
|
||||
private route: ActivatedRoute,
|
||||
private modalService: NzModalService,
|
||||
public service: SupplyManagementService,
|
||||
private amapService: AmapService,
|
||||
public shipperSrv: ShipperBaseService,) {
|
||||
this.validateForm1 = fb.group({
|
||||
createTime: [null, []],
|
||||
modifyTime: [null, []],
|
||||
@ -155,23 +164,12 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
dispatchId: {
|
||||
type: 'string',
|
||||
title: '调度员',
|
||||
enum: [
|
||||
{ label: '调度员1', value: '1' },
|
||||
{ label: '调度员2', value: '2' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true
|
||||
// asyncData: () =>
|
||||
// this.service.loadChildData2('0', '2').pipe(
|
||||
// map((data: any) => {
|
||||
// return data.map((m: any) => {
|
||||
// return { label: m.name, value: m.id };
|
||||
// });
|
||||
// }),
|
||||
// ),
|
||||
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||
allowClear: true,
|
||||
optionalHelp: '选择调度员,司机直接联系调度员 ; 不选择,司机直接联系您',
|
||||
asyncData: () => this.shipperSrv.getStaffList2()
|
||||
} as SFSelectWidgetSchema
|
||||
}
|
||||
},
|
||||
@ -231,37 +229,76 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
initSF3() {
|
||||
this.schema3 = {
|
||||
properties: {
|
||||
goodsName: {
|
||||
goodsTypeId: {
|
||||
type: 'string',
|
||||
title: '货物名称',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'GoodsName' },
|
||||
placeholder: '请选择'
|
||||
}
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择货物类型' },
|
||||
asyncData: () =>
|
||||
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
|
||||
map((data: any) => {
|
||||
return data[0].children?.map((m: any) => {
|
||||
return { label: m.name, value: m.id };
|
||||
});
|
||||
})
|
||||
),
|
||||
change: (value, data: any) => {
|
||||
this.changeGoodsType(value, data);
|
||||
this.sf3.setValue('/goodsTypeName', data.label);
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
qita: {
|
||||
goodsTypeName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
goodsNameId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请填写货物名称' },
|
||||
change: (value: any, data: any) => {
|
||||
this.sf3.setValue('/goodsName', data.label);
|
||||
},
|
||||
visibleIf: {
|
||||
goodsName: value => value === '3'
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true,
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName1: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
errors: { required: '请填写货物名称' },
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value === '其它'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
required: ['goodsName', ]
|
||||
required: ['goodsTypeId', 'goodsName', 'goodsNameId']
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
spanLabelFixed: 90,
|
||||
grid: { span: 12 }
|
||||
},
|
||||
$goodsName: {
|
||||
grid: { span: 12 }
|
||||
},
|
||||
$qita: {
|
||||
grid: { span: 12 }
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -550,6 +587,35 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
changeGoodsType(value: string, data: any) {
|
||||
if (data.label === '其它') return;
|
||||
const params = {
|
||||
pageIndex: 1,
|
||||
pageSize: 100,
|
||||
configId: value
|
||||
};
|
||||
this.service
|
||||
.request(this.service.$api_get_config_item_page, params)
|
||||
.pipe(
|
||||
map(data => {
|
||||
return data.records?.map((m: any) => {
|
||||
return { label: m.name, value: m.id };
|
||||
});
|
||||
})
|
||||
)
|
||||
.subscribe(res => {
|
||||
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);
|
||||
}
|
||||
} else {
|
||||
this.service.msgSrv.error(res.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 打开地图
|
||||
openMap(type: string, index: number) {
|
||||
const modalRef = this.modalService.create({
|
||||
@ -704,8 +770,16 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
this.sf3data = {
|
||||
goodsTypeId: res?.goodsInfoVOList[0]?.goodsTypeId || '',
|
||||
goodsTypeName: res?.goodsInfoVOList[0]?.goodsTypeName || '',
|
||||
goodsNameId: res?.goodsInfoVOList[0]?.goodsNameId || '',
|
||||
goodsName: res?.goodsInfoVOList[0]?.goodsName || '',
|
||||
};
|
||||
if (this.sf3data.goodsTypeName === '其它') {
|
||||
this.sf3data.goodsName1 = res?.goodsInfoVOList[0]?.goodsName || '';
|
||||
}
|
||||
this.changeGoodsType(this.sf3data.goodsTypeId, { label: this.sf3data.goodsTypeName, value: this.sf3data.goodsTypeId });
|
||||
|
||||
this.sf4data = {
|
||||
freightPrice: res?.goodsInfoVOList[0]?.freightPrice || '',
|
||||
freightType: res?.goodsInfoVOList[0]?.freightType || '',
|
||||
@ -727,4 +801,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
remarks: res?.remarks || ''
|
||||
};
|
||||
}
|
||||
choose(){
|
||||
window.history.go(-1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<page-header-wrapper [title]="'大宗代发货源'" [logo]="logo">
|
||||
<ng-template #logo>
|
||||
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<div class="card-title">货源单设置</div>
|
||||
<div nz-row>
|
||||
@ -206,10 +212,11 @@
|
||||
<sf #sf6 [schema]="schema6" [button]="'none'" [ui]="ui6" [formData]="sf6data">
|
||||
<ng-template sf-template="paymentDays" let-i let-ui="ui">
|
||||
<div nz-row>
|
||||
<div class="align-center">
|
||||
<div nz-col nzSpan="16">
|
||||
<div class="align-center" style="width: 350px;">
|
||||
<div nz-col nzSpan="12">
|
||||
<nz-input-number
|
||||
[ngModel]="i.value"
|
||||
style="width: 150px;"
|
||||
[nzMin]="1"
|
||||
[nzMax]="30"
|
||||
[nzStep]="1"
|
||||
@ -217,7 +224,7 @@
|
||||
nzPlaceHolder="请输入1-30"
|
||||
></nz-input-number>
|
||||
</div>
|
||||
<div nz-col nzSpan="8">
|
||||
<div nz-col nzSpan="6">
|
||||
<span>天内支付运费</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -230,7 +237,8 @@
|
||||
|
||||
<nz-card>
|
||||
<div class="align-center">
|
||||
<button nz-button nzType="primary" (click)="submit('assign')">指派熟车</button>
|
||||
<!-- <button nz-button nzType="primary" (click)="submit('assign')">指派熟车</button> -->
|
||||
<button nz-button nzType="primary" (click)="choose()">取消</button>
|
||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit('publish')">司机抢单</button>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -12,6 +12,7 @@ import {
|
||||
SFUISchema
|
||||
} from '@delon/form';
|
||||
import { SettingsService, _HttpClient } from '@delon/theme';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import format from 'date-fns/format';
|
||||
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
@ -64,7 +65,8 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
private service: SupplyManagementService,
|
||||
private router: Router,
|
||||
private route: ActivatedRoute,
|
||||
private amapService: AmapService
|
||||
private amapService: AmapService,
|
||||
public shipperSrv: ShipperBaseService
|
||||
) {
|
||||
this.validateForm1 = fb.group({
|
||||
loadAddress0: [null, [Validators.required]],
|
||||
@ -166,13 +168,26 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
allowClear: true,
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
// enterpriseInfoName: {
|
||||
// type: 'string',
|
||||
// title: '网络货运人',
|
||||
// ui: {
|
||||
// widget: 'custom'
|
||||
// },
|
||||
// default: '天津市怡亚通XXXX有限公司'
|
||||
// },
|
||||
enterpriseInfoName: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
widget: 'custom'
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
allowClear: true,
|
||||
asyncData: () => this.shipperSrv.getNetworkFreightForwarder(),
|
||||
},
|
||||
default: '天津市怡亚通XXXX有限公司'
|
||||
},
|
||||
deadlineTime: {
|
||||
title: '截至日期',
|
||||
@ -186,24 +201,12 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
dispatchId: {
|
||||
type: 'string',
|
||||
title: '调度员',
|
||||
enum: [
|
||||
{ label: '周涛', value: 1 },
|
||||
{ label: '李诞', value: 2 }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
optionalHelp: '选择调度员,司机直接联系调度员 ; 不选择,司机直接联系您'
|
||||
// asyncData: () =>
|
||||
// this.service.loadChildData2('0', '2').pipe(
|
||||
// map((data: any) => {
|
||||
// return data.map((m: any) => {
|
||||
// return { label: m.name, value: m.id };
|
||||
// });
|
||||
// }),
|
||||
// ),
|
||||
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||
optionalHelp: '选择调度员,司机直接联系调度员 ; 不选择,司机直接联系您',
|
||||
asyncData: () => this.shipperSrv.getStaffList2()
|
||||
} as SFSelectWidgetSchema
|
||||
}
|
||||
},
|
||||
@ -226,42 +229,68 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
goodsTypeId: {
|
||||
type: 'string',
|
||||
title: '货物名称',
|
||||
enum: [
|
||||
{ label: '服装', value: '1' },
|
||||
{ label: '电子产品', value: '2' },
|
||||
{ label: '其他', value: '3' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择货物类型' },
|
||||
asyncData: () =>
|
||||
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
|
||||
map((data: any) => {
|
||||
return data[0].children?.map((m: any) => {
|
||||
return { label: m.name, value: m.id };
|
||||
});
|
||||
})
|
||||
),
|
||||
change: (value, data: any) => {
|
||||
this.changeGoodsType(value, data);
|
||||
this.sf3.setValue('/goodsTypeName', data.label);
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
goodsTypeName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
goodsNameId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请填写货物名称' },
|
||||
change: (value, data) => {
|
||||
this.currentGoodsTypeName = data;
|
||||
change: (value: any, data: any) => {
|
||||
this.sf3.setValue('/goodsName', data.label);
|
||||
},
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
// asyncData: () =>
|
||||
// this.categoryService.loadChildData2('0', '2').pipe(
|
||||
// map((data: any) => {
|
||||
// return data.map((m: any) => {
|
||||
// return { label: m.name, value: m.id };
|
||||
// });
|
||||
// }),
|
||||
// ),
|
||||
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||
} as SFSelectWidgetSchema
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
maxLength: 20,
|
||||
ui: {
|
||||
hidden: true,
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName1: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
errors: { required: '请填写货物名称' },
|
||||
visibleIf: {
|
||||
goodsType: value => value === '其他'
|
||||
goodsTypeName: (value: any) => value && value === '其它'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
required: ['goodsTypeId', 'goodsName']
|
||||
required: ['goodsTypeId', 'goodsName', 'goodsNameId']
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
@ -453,13 +482,15 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
|
||||
// //装卸货信息
|
||||
const LoadingList = this.startInfo.concat(this.endInfo);
|
||||
// // 货物信息
|
||||
// 货物信息
|
||||
const sf3Values = { ...this.sf3.value };
|
||||
if (sf3Values.goodsTypeName === '其它') {
|
||||
sf3Values.goodsName = sf3Values.goodsName1;
|
||||
delete sf3Values.goodsName1;
|
||||
}
|
||||
const goodsInfoList = [
|
||||
{
|
||||
...this.sf3.value,
|
||||
goodsTypeName: this.currentGoodsTypeName.label,
|
||||
goodsName: '电子',
|
||||
goodsNameId: '1',
|
||||
...sf3Values,
|
||||
...this.sf4.value,
|
||||
maxWeight: this.sf4.value.maxWeight.join(','),
|
||||
maxCube: this.sf4.value.maxCube.join(',')
|
||||
@ -592,4 +623,38 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
changeGoodsType(value: string, data: any) {
|
||||
if (data.label === '其它') return;
|
||||
const params = {
|
||||
pageIndex: 1,
|
||||
pageSize: 100,
|
||||
configId: value
|
||||
};
|
||||
this.service
|
||||
.request(this.service.$api_get_config_item_page, params)
|
||||
.pipe(
|
||||
map(data => {
|
||||
return data.records?.map((m: any) => {
|
||||
return { label: m.name, value: m.id };
|
||||
});
|
||||
})
|
||||
)
|
||||
.subscribe(res => {
|
||||
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);
|
||||
}
|
||||
} else {
|
||||
this.service.msgSrv.error(res.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
choose(){
|
||||
window.history.go(-1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 11:10:14
|
||||
* @LastEditTime: 2021-12-22 10:36:57
|
||||
* @LastEditTime: 2022-01-05 15:37:53
|
||||
* @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\bulk\bulk.component.html
|
||||
@ -87,11 +87,11 @@
|
||||
(<span [ngStyle]="{ color:item?.count>0?'#1890FF':''}">{{item?.count}}</span>)
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="demand" let-item let-index="index">
|
||||
<div>车型: {{item.maxWeightLabel}}</div>
|
||||
<div class="error">车长: {{item.maxCubeLabel}} 米</div>
|
||||
<ng-template st-row="useCarDemand" let-item let-index="index">
|
||||
<div>车型: {{item.carModelLabel}}</div>
|
||||
<div class="error">车长: {{item.expand}} 米</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="goodsInfo" let-item let-index="index">
|
||||
<ng-template st-row="goodsInfo" let-item let-index="index">
|
||||
<div>{{item.owner}}</div>
|
||||
<div>货源:{{item.progress}} 顿 / {{item.progress}} 方</div>
|
||||
<div class="error">剩余: {{item.progress}} 顿 / {{item.progress}} 方</div>
|
||||
|
||||
@ -216,7 +216,7 @@ export class SupplyManagementBulkComponent implements OnInit {
|
||||
title: '用车需求',
|
||||
className: 'text-center',
|
||||
width: '150px',
|
||||
render: 'demand'
|
||||
render: 'useCarDemand'
|
||||
},
|
||||
{
|
||||
title: '运费单价',
|
||||
@ -334,18 +334,6 @@ export class SupplyManagementBulkComponent implements OnInit {
|
||||
get selectedRows() {
|
||||
return this.st?.list.filter((item) => item.checked) || [];
|
||||
}
|
||||
// 获取录单员
|
||||
getCatalogueMember() {
|
||||
const params = {
|
||||
};
|
||||
// return this.service.request(this.service.$api_get_catalogue_member, params, 'GET').pipe(
|
||||
// map((res) => {
|
||||
// if (res) {
|
||||
// console.log(res)
|
||||
// }
|
||||
// }),
|
||||
// );
|
||||
}
|
||||
|
||||
selectChange(e: number) {
|
||||
console.log(e);
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-14 20:08:17
|
||||
* @LastEditTime: 2021-12-14 20:09:50
|
||||
* @LastEditors: your name
|
||||
* @LastEditTime: 2022-01-05 17:38:44
|
||||
* @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\onecar-publish\address-list\address-list.component.html
|
||||
-->
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[data]="service.$api_getList"
|
||||
[data]="service.$api_commonAddress"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams, process: reqProcess }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-14 20:08:17
|
||||
* @LastEditTime: 2021-12-20 09:35:13
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @LastEditTime: 2022-01-05 17:35:37
|
||||
* @LastEditors: your name
|
||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
* @FilePath: \tms-obc-web\src\app\routes\supply-management\components\onecar-publish\address-list\address-list.component.ts
|
||||
*/
|
||||
@ -12,9 +12,7 @@ import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st
|
||||
import { processSingleSort } from '@shared';
|
||||
import { NzDrawerService } from 'ng-zorro-antd/drawer';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { OrderManagementService } from 'src/app/routes/order-management/services/order-management.service';
|
||||
|
||||
|
||||
import { SupplyManagementService } from '../../../services/supply-management.service';
|
||||
@Component({
|
||||
selector: 'app-publish-address-list',
|
||||
templateUrl: './address-list.component.html'
|
||||
@ -32,7 +30,7 @@ export class PublishAddressListComponent implements OnInit {
|
||||
public router: Router,
|
||||
public ar: ActivatedRoute,
|
||||
private drawerService: NzDrawerService,
|
||||
public service: OrderManagementService,
|
||||
public service: SupplyManagementService,
|
||||
private modalService: NzModalService
|
||||
) {}
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<div class="card-title">货源单设置</div>
|
||||
<sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf>
|
||||
<sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf>
|
||||
</nz-card>
|
||||
|
||||
<nz-card>
|
||||
@ -31,7 +31,7 @@
|
||||
placeholder="请输入装货地"
|
||||
/>
|
||||
</nz-input-group>
|
||||
<span style="padding: 0 10px"
|
||||
<span style="padding: 0 10px"
|
||||
><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff" (click)="openMap('start', idx)"></i
|
||||
></span>
|
||||
<span
|
||||
@ -45,12 +45,18 @@
|
||||
<nz-form-control [nzErrorTip]="'请输入联系人信息'">
|
||||
<div class="align-center">
|
||||
<input nz-input [(ngModel)]="data.appUserName" [ngModelOptions]="{ standalone: true }" maxlength="30" />
|
||||
<input style="margin-left: 12px" nz-input [(ngModel)]="data.contractTelephone" [ngModelOptions]="{ standalone: true }" maxlength="11" />
|
||||
<input
|
||||
style="margin-left: 12px"
|
||||
nz-input
|
||||
[(ngModel)]="data.contractTelephone"
|
||||
[ngModelOptions]="{ standalone: true }"
|
||||
maxlength="11"
|
||||
/>
|
||||
</div>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
</div>
|
||||
<button nz-button nzType="primary" (click)="addStartInfo($event)">
|
||||
<button nz-button nzType="primary" (click)="addStartInfo($event)">
|
||||
<i nz-icon nzType="plus"></i>
|
||||
添加装货地
|
||||
</button>
|
||||
@ -75,10 +81,8 @@
|
||||
placeholder="请输入卸货地"
|
||||
/>
|
||||
</nz-input-group>
|
||||
<span style="padding: 0 10px"><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff"></i></span>
|
||||
<span
|
||||
><i nz-icon nzType="minus-circle-o" nzTheme="fill" style="color: #d9001b" (click)="subEndInfo($event, idx)"></i
|
||||
></span>
|
||||
<span style="padding: 0 10px"><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff"></i></span>
|
||||
<span><i nz-icon nzType="minus-circle-o" nzTheme="fill" style="color: #d9001b" (click)="subEndInfo($event, idx)"></i></span>
|
||||
</div>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
@ -87,23 +91,34 @@
|
||||
<nz-form-control [nzErrorTip]="'请输入联系人信息'">
|
||||
<div class="align-center">
|
||||
<input nz-input [(ngModel)]="data.appUserName" [ngModelOptions]="{ standalone: true }" maxlength="30" />
|
||||
<input style="margin-left: 12px" nz-input [(ngModel)]="data.contractTelephone" [ngModelOptions]="{ standalone: true }" maxlength="11" />
|
||||
<input
|
||||
style="margin-left: 12px"
|
||||
nz-input
|
||||
[(ngModel)]="data.contractTelephone"
|
||||
[ngModelOptions]="{ standalone: true }"
|
||||
maxlength="11"
|
||||
/>
|
||||
</div>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
</div>
|
||||
<button nz-button nzType="primary" (click)="addEndInfo($event)">
|
||||
<button nz-button nzType="primary" (click)="addEndInfo($event)">
|
||||
<i nz-icon nzType="plus"></i>
|
||||
添加卸货地
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div nz-row [nzGutter]="24" style="margin-top: 24px">
|
||||
<div nz-row [nzGutter]="24" style="margin-top: 24px">
|
||||
<div nz-col [nzSpan]="9">
|
||||
<nz-form-item>
|
||||
<nz-form-label [nzSpan]="4" nzRequired>装货时间</nz-form-label>
|
||||
<nz-form-control [nzErrorTip]="'请输入装货时间'">
|
||||
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="loadingTime" [(ngModel)]="loadingTime"></nz-date-picker>
|
||||
<nz-date-picker
|
||||
nzShowTime
|
||||
nzFormat="yyyy-MM-dd HH:mm:ss"
|
||||
formControlName="loadingTime"
|
||||
[(ngModel)]="loadingTime"
|
||||
></nz-date-picker>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
</div>
|
||||
@ -111,7 +126,12 @@
|
||||
<nz-form-item>
|
||||
<nz-form-label [nzSpan]="9" nzRequired>卸货时间</nz-form-label>
|
||||
<nz-form-control [nzErrorTip]="'请输入卸货时间'">
|
||||
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="unloadingTime" [(ngModel)]="unloadingTime"></nz-date-picker>
|
||||
<nz-date-picker
|
||||
nzShowTime
|
||||
nzFormat="yyyy-MM-dd HH:mm:ss"
|
||||
formControlName="unloadingTime"
|
||||
[(ngModel)]="unloadingTime"
|
||||
></nz-date-picker>
|
||||
</nz-form-control>
|
||||
</nz-form-item>
|
||||
</div>
|
||||
@ -190,13 +210,15 @@
|
||||
<span style="padding: 0 12px" nz-tooltip [nzTooltipTitle]="template2"
|
||||
><i nz-icon nzType="exclamation-circle" nzTheme="outline" style="color: #1890ff"></i
|
||||
></span>
|
||||
<ng-template #template2>注意事项:<br/>
|
||||
<ng-template #template2
|
||||
>注意事项:<br />
|
||||
|
||||
①请仔细阅读《投保告知》<br/>
|
||||
①请仔细阅读《投保告知》<br />
|
||||
|
||||
②港澳台、西藏不在投保范围内,不予承保<br/>
|
||||
②港澳台、西藏不在投保范围内,不予承保<br />
|
||||
|
||||
③保价费最低收费2元,请按真实货值填写,录入的所有信息必须确保真实,不如实录入的内容,不承担对应赔偿责任。</ng-template>
|
||||
③保价费最低收费2元,请按真实货值填写,录入的所有信息必须确保真实,不如实录入的内容,不承担对应赔偿责任。</ng-template
|
||||
>
|
||||
</div>
|
||||
</ng-template>
|
||||
</sf>
|
||||
@ -209,7 +231,7 @@
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="12">
|
||||
<sf #sf6 [schema]="schema6" [formData]="sf6data" [button]="'none'" [ui]="ui6">
|
||||
<ng-template sf-template="receiptUserId" let-i let-ui="ui">
|
||||
<ng-template sf-template="receiptAddressId" let-i let-ui="ui">
|
||||
<input
|
||||
nz-input
|
||||
[ngModel]="i.value"
|
||||
@ -227,15 +249,22 @@
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="12">
|
||||
<sf #sf7 [schema]="schema7" [button]="'none'" [ui]="ui7" [formData]="sf7data">
|
||||
<ng-template sf-template="subtotal" let-i let-ui="ui">¥{{i.value}}</ng-template>
|
||||
<ng-template sf-template="appendFee" let-i let-ui="ui">¥{{i.value}}(费率:{{currentRate | number: '0.2-4' }}%)</ng-template>
|
||||
<ng-template sf-template="total" let-i let-ui="ui">¥{{i.value}}</ng-template>
|
||||
<ng-template sf-template="subtotal" let-i let-ui="ui">¥{{ i.value }}</ng-template>
|
||||
<ng-template sf-template="appendFee" let-i let-ui="ui">¥{{ i.value }}(费率:{{ currentRate | number: '0.2-4' }}%)</ng-template>
|
||||
<ng-template sf-template="total" let-i let-ui="ui">¥{{ i.value }}</ng-template>
|
||||
<ng-template sf-template="paymentDays" let-i let-ui="ui">
|
||||
<div nz-row>
|
||||
<div class="align-center">
|
||||
<div class="align-center" style="width: 300px;">
|
||||
<div nz-col nzSpan="16">
|
||||
<nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1"
|
||||
(ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30"></nz-input-number>
|
||||
<nz-input-number
|
||||
[ngModel]="i.value"
|
||||
[nzMin]="1"
|
||||
[nzMax]="30"
|
||||
[nzStep]="1"
|
||||
style="width: 150px;"
|
||||
(ngModelChange)="i.setValue($event)"
|
||||
nzPlaceHolder="请输入1-30"
|
||||
></nz-input-number>
|
||||
</div>
|
||||
<div nz-col nzSpan="8">
|
||||
<span>天内支付运费</span>
|
||||
@ -249,7 +278,11 @@
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<div class="align-center">
|
||||
<button nz-button nzType="primary" (click)="chooseFamifiar()">取消</button>
|
||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit()">提交修改</button>
|
||||
<button nz-button nzType="primary" *ngIf="this.PageStatus == '整车修改'" (click)="choose()">取消</button>
|
||||
<button *ngIf="this.PageStatus == '整车修改'" nz-button nzType="primary" style="margin-left: 48px" (click)="submit()">提交修改</button>
|
||||
<button nz-button nzType="primary" *ngIf="this.PageStatus == '整车下一单'" (click)="chooseFamifiar()">指派熟车</button>
|
||||
<button *ngIf="this.PageStatus == '整车下一单'" nz-button nzType="primary" style="margin-left: 48px" (click)="submit()"
|
||||
>司机抢单</button
|
||||
>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -169,23 +169,12 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
dispatchId: {
|
||||
type: 'string',
|
||||
title: '调度员',
|
||||
enum: [
|
||||
{ label: '调度员1', value: '1' },
|
||||
{ label: '调度员2', value: '2' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true
|
||||
// asyncData: () =>
|
||||
// this.service.loadChildData2('0', '2').pipe(
|
||||
// map((data: any) => {
|
||||
// return data.map((m: any) => {
|
||||
// return { label: m.name, value: m.id };
|
||||
// });
|
||||
// }),
|
||||
// ),
|
||||
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||
allowClear: true,
|
||||
optionalHelp: '选择调度员,司机直接联系调度员 ; 不选择,司机直接联系您',
|
||||
asyncData: () => this.shipperSrv.getStaffList2()
|
||||
} as SFSelectWidgetSchema
|
||||
}
|
||||
}
|
||||
@ -221,37 +210,76 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
initSF3() {
|
||||
this.schema3 = {
|
||||
properties: {
|
||||
goodsName: {
|
||||
goodsTypeId: {
|
||||
type: 'string',
|
||||
title: '货物名称',
|
||||
ui: {
|
||||
// widget: 'dict-select',
|
||||
// params: { dictKey: 'GoodsName' },
|
||||
placeholder: '请选择'
|
||||
}
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择货物类型' },
|
||||
asyncData: () =>
|
||||
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
|
||||
map((data: any) => {
|
||||
return data[0].children?.map((m: any) => {
|
||||
return { label: m.name, value: m.id };
|
||||
});
|
||||
})
|
||||
),
|
||||
change: (value, data: any) => {
|
||||
this.changeGoodsType(value, data);
|
||||
this.sf3.setValue('/goodsTypeName', data.label);
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
qita: {
|
||||
goodsTypeName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
goodsNameId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请填写货物名称' },
|
||||
change: (value: any, data: any) => {
|
||||
this.sf3.setValue('/goodsName', data.label);
|
||||
},
|
||||
visibleIf: {
|
||||
goodsName: value => value === '3'
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true,
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName1: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
errors: { required: '请填写货物名称' },
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value === '其它'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
required: ['goodsName']
|
||||
required: ['goodsTypeId', 'goodsName', 'goodsNameId']
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
spanLabelFixed: 90,
|
||||
grid: { span: 12 }
|
||||
},
|
||||
$goodsName: {
|
||||
grid: { span: 12 }
|
||||
},
|
||||
$qita: {
|
||||
grid: { span: 12 }
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -374,6 +402,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
initSF6() {
|
||||
this.schema6 = {
|
||||
properties: {
|
||||
@ -396,7 +425,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'receipt:type' },
|
||||
containsAllLable: false,
|
||||
containsAllLabel: false,
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择' },
|
||||
visibleIf: {
|
||||
@ -600,6 +629,34 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
this.validateForm1.removeControl(`loadName${index}`);
|
||||
this.validateForm1.removeControl(`loadPhone${index}`);
|
||||
}
|
||||
changeGoodsType(value: string, data: any) {
|
||||
if (data.label === '其它') return;
|
||||
const params = {
|
||||
pageIndex: 1,
|
||||
pageSize: 100,
|
||||
configId: value
|
||||
};
|
||||
this.service
|
||||
.request(this.service.$api_get_config_item_page, params)
|
||||
.pipe(
|
||||
map(data => {
|
||||
return data.records?.map((m: any) => {
|
||||
return { label: m.name, value: m.id };
|
||||
});
|
||||
})
|
||||
)
|
||||
.subscribe(res => {
|
||||
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);
|
||||
}
|
||||
} else {
|
||||
this.service.msgSrv.error(res.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
addEndInfo(event: any) {
|
||||
if (this.addEndInfo.length < 5) {
|
||||
@ -689,6 +746,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
// if (this.validateForm1.invalid) {
|
||||
// return;
|
||||
// }
|
||||
console.log(this.sf7.value)
|
||||
const params: any = {
|
||||
...this.sf1.value,
|
||||
...this.sf5.value,
|
||||
@ -888,8 +946,15 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
});
|
||||
|
||||
this.sf3data = {
|
||||
goodsName: res?.goodsInfoVOList[0]?.goodsName
|
||||
goodsTypeId: res?.goodsInfoVOList[0]?.goodsTypeId || '',
|
||||
goodsTypeName: res?.goodsInfoVOList[0]?.goodsTypeName || '',
|
||||
goodsNameId: res?.goodsInfoVOList[0]?.goodsNameId || '',
|
||||
goodsName: res?.goodsInfoVOList[0]?.goodsName || '',
|
||||
};
|
||||
if (this.sf3data.goodsTypeName === '其它') {
|
||||
this.sf3data.goodsName1 = res?.goodsInfoVOList[0]?.goodsName || '';
|
||||
}
|
||||
this.changeGoodsType(this.sf3data.goodsTypeId, { label: this.sf3data.goodsTypeName, value: this.sf3data.goodsTypeId });
|
||||
this.sf4data = {
|
||||
weight: res?.goodsInfoVOList[0]?.weight,
|
||||
volume: res?.goodsInfoVOList[0]?.volume,
|
||||
@ -917,11 +982,21 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
goodsValue: res?.goodsValue
|
||||
};
|
||||
console.log(res?.stateReceipt);
|
||||
// this.sf6data = {
|
||||
// stateReceipt: res?.stateReceipt,
|
||||
// receiptType: res?.receiptType,
|
||||
// receiptUserId: res?.receiptUserId,
|
||||
// remarks: res?.remarks
|
||||
// };
|
||||
this.sf6data = {
|
||||
stateReceipt: res?.stateReceipt,
|
||||
receiptType: res?.receiptType,
|
||||
receiptUserId: res?.receiptUserId,
|
||||
remarks: res?.remarks
|
||||
receiptType: res?.receiptType || '',
|
||||
receiptAddressId: res?.receiptAddressId || '',
|
||||
receiptUserName: res?.receiptUserName || '',
|
||||
area: res?.area || '',
|
||||
phon: res?.phon || '',
|
||||
address: res?.address || '',
|
||||
remarks: res?.remarks || '',
|
||||
};
|
||||
this.sf7data = {
|
||||
prePay: res?.shippingInformationVO?.prePay,
|
||||
@ -944,11 +1019,15 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
nzOnOk: item => {
|
||||
const data = item.seleteData;
|
||||
if (JSON.stringify(data) === '{}') return;
|
||||
this.sf6.setValue('/name4', data.contactName);
|
||||
this.sf6.setValue('/name5', data.contactTelephone);
|
||||
this.sf6.setValue('/name6', `${data.province}-${data.city}-${data.area}`);
|
||||
this.sf6.setValue('/receiptAddress', data.detailedAddress);
|
||||
this.sf6.setValue('/receiptAddressId', data.id);
|
||||
this.sf6.setValue('/receiptUserName', data.contactName);
|
||||
this.sf6.setValue('/phon', data.contactTelephone);
|
||||
this.sf6.setValue('/area', `${data.province}-${data.city}-${data.area}`);
|
||||
this.sf6.setValue('/address', data.detailedAddress);
|
||||
}
|
||||
});
|
||||
}
|
||||
choose(){
|
||||
window.history.go(-1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<page-header-wrapper [title]="'整车代发货源'" [logo]="logo">
|
||||
<ng-template #logo>
|
||||
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<div class="card-title">货源单设置</div>
|
||||
<div nz-row>
|
||||
|
||||
@ -13,7 +13,7 @@ import {
|
||||
SFUISchema
|
||||
} from '@delon/form';
|
||||
import { SettingsService, _HttpClient } from '@delon/theme';
|
||||
import { EACacheService } from '@shared';
|
||||
import { EACacheService, ShipperBaseService } from '@shared';
|
||||
import format from 'date-fns/format';
|
||||
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
@ -70,7 +70,8 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
private router: Router,
|
||||
private route: ActivatedRoute,
|
||||
private eaCacheSrv: EACacheService,
|
||||
private amapService: AmapService
|
||||
private amapService: AmapService,
|
||||
public service2: ShipperBaseService
|
||||
) {
|
||||
this.validateForm1 = fb.group({
|
||||
loadingTime: [null, [Validators.required]],
|
||||
@ -151,14 +152,27 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
allowClear: true,
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
enterpriseInfoName: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
widget: 'custom'
|
||||
},
|
||||
default: '天津市怡亚通XXXX有限公司'
|
||||
},
|
||||
// enterpriseInfoName: {
|
||||
// type: 'string',
|
||||
// title: '网络货运人',
|
||||
// ui: {
|
||||
// widget: 'custom'
|
||||
// },
|
||||
// default: '天津市怡亚通XXXX有限公司'
|
||||
// },
|
||||
enterpriseInfoName: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
allowClear: true,
|
||||
asyncData: () => this.service2.getNetworkFreightForwarder(),
|
||||
},
|
||||
},
|
||||
externalResourceCode: {
|
||||
type: 'string',
|
||||
title: '外部货源号',
|
||||
@ -808,4 +822,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
close() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,126 +0,0 @@
|
||||
<page-header-wrapper [title]="''" [logo]="logo">
|
||||
<ng-template #logo>
|
||||
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="6">
|
||||
<sv-container class="bdr">
|
||||
<sv label="货源编号" col="1">{{ dataList?.resourceCode }}</sv>
|
||||
<sv-title class="text-center text-lg">
|
||||
<span *ngIf="dataList?.resourceType === 1">待接单</span>
|
||||
<span *ngIf="dataList?.resourceType === 2">已接单</span>
|
||||
<span *ngIf="dataList?.resourceType === 3">已取消</span>
|
||||
</sv-title>
|
||||
<sv-title>
|
||||
<div class="">
|
||||
<a class="btn-size" (click)="modification()">修改货源</a>
|
||||
<a class="btn-size m-lg mr-lg">取消货源</a>
|
||||
<a class="btn-size" (click)="nextOrder()">再下一单</a>
|
||||
</div>
|
||||
</sv-title>
|
||||
</sv-container>
|
||||
</div>
|
||||
<div nz-col nzSpan="16" class="approval-status">
|
||||
<nz-steps style="width: 80%; margin: 0 auto" [nzLabelPlacement]="'vertical'">
|
||||
<nz-step nzStatus="finish" nzIcon="user" [nzDescription]="i?.createAt" nzTitle="下单"></nz-step>
|
||||
<nz-step nzStatus="finish" nzIcon="user" nzTitle="完结"></nz-step>
|
||||
</nz-steps>
|
||||
</div>
|
||||
</div>
|
||||
<nz-divider></nz-divider>
|
||||
<div sv-container >
|
||||
<sv label="项目名称">{{ dataList?.enterpriseProjectId }}</sv>
|
||||
<sv label="外部货源号">{{ dataList?.externalResourceCode }}</sv>
|
||||
<sv label="录单员">{{ dataList?.enterpriseProjectId }}</sv>
|
||||
<sv label="调度员">{{ dataList?.dispatchName }}</sv>
|
||||
</div>
|
||||
<nz-divider></nz-divider>
|
||||
<div nz-row>
|
||||
<div nz-col nzSpan="6">
|
||||
<div class="source-info">
|
||||
<div *ngFor="let item of dataList?.unLoadingPlaceVOList; let i = index">
|
||||
<h3 *ngIf="i === 0" style="font-weight: 700;">装卸货信息</h3>
|
||||
<div *ngIf="item?.type === 1 || item?.type === '1'">
|
||||
<p>装货地:{{item?.detailedAddress}}</p>
|
||||
<p>联系人:{{item?.appUserName}}/{{item?.contractTelephone}}</p>
|
||||
<p>发货日期:{{item?.createTime}}</p>
|
||||
|
||||
</div>
|
||||
<div *ngIf="item.type === 2 || item.type === '2'">
|
||||
<p>卸货地:{{item?.detailedAddress}}</p>
|
||||
<p>联系人:{{item?.appUserName}}/{{item?.contractTelephone}}</p>
|
||||
<p>卸货日期:{{item?.modifyTime}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div nz-col nzSpan="5">
|
||||
<div class="source-info bdr bdl pl-md">
|
||||
<div *ngFor="let item of dataList?.goodsInfoVOList; let i = index">
|
||||
<h3 *ngIf="i === 0" style="font-weight: 700;">货物信息</h3>
|
||||
<p>货物名称:{{item?.goodsName}}</p>
|
||||
<p>货物数量:{{item?.weight}}吨/{{item?.volume}}立方</p>
|
||||
<p>用车需求:{{item?.vehicleDemand}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div nz-col nzSpan="5">
|
||||
<div class="source-info bdr pl-md">
|
||||
<h3 style="font-weight: 700;">承运信息</h3>
|
||||
<p>网络货运人:{{dataList?.carrierInformationVO?.enterpriseInfoName}}</p>
|
||||
<p>服务类型:{{dataList?.carrierInformationVO?.serviceType === 1 ? '抢单' : '指派'}}</p>
|
||||
<p>司机姓名:{{dataList?.carrierInformationVO?.driverName}}</p>
|
||||
<p>手机号:{{dataList?.carrierInformationVO?.driverTelephone}}</p>
|
||||
<p>车牌号:{{dataList?.carrierInformationVO?.driverLicensePlate}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div nz-col nzSpan="5">
|
||||
<div class="source-info bdr pl-md">
|
||||
<h3 style="font-weight: 700;">服务信息</h3>
|
||||
<p>货物价值:{{dataList?.goodsInfoList?.goodsName}}</p>
|
||||
<p>保价费金额:{{dataList?.goodsInfoList?.goodsName}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="source-info pl-md">
|
||||
<h3 style="font-weight: 700;">补充信息</h3>
|
||||
<p>{{dataList?.supplementaryInformationVO?.stateReceipt === 2 ? '不需要回单' : '需要回单'}}</p>
|
||||
<p>联系人:{{dataList?.supplementaryInformationVO?.receiptUserId}}</p>
|
||||
<p>联系电话:{{dataList?.supplementaryInformationVO?.remarks}}</p>
|
||||
<p>所在地区:{{dataList?.supplementaryInformationVO?.remarks}}</p>
|
||||
<p>详细地址:{{dataList?.supplementaryInformationVO?.receiptAddress}}</p>
|
||||
<p>备注:{{dataList?.supplementaryInformationVO?.remarks}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<nz-divider></nz-divider>
|
||||
<div nz-row>
|
||||
<div class="freight-info-box">
|
||||
<h3 style="font-weight: 700;">运费信息</h3>
|
||||
<div class="text-right">
|
||||
<p>预付:{{dataList?.shippingInformationVO?.prePay | currency: '¥' }}</p>
|
||||
<p>油卡:{{dataList?.shippingInformationVO?.oilCardPay | currency: '¥'}}</p>
|
||||
<p>到付:{{dataList?.shippingInformationVO?.toPay | currency: '¥'}}</p>
|
||||
<p>回单付:{{dataList?.shippingInformationVO?.receiptPay | currency: '¥'}}</p>
|
||||
<p>保险费:{{dataList?.shippingInformationVO?.insuranceFee | currency: '¥'}}</p>
|
||||
<p>附加费保险费:{{dataList?.shippingInformationVO?.appendFee | currency: '¥'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<nz-divider></nz-divider>
|
||||
<div class="freight-info-box" nz-row>
|
||||
<div nz-col nzSpan="24">
|
||||
<h3 class="text-right"><label>总计 :</label> <span class="text-error-dark text-xl">{{dataList?.shippingInformationVO?.totalFee | currency: '¥' }}</span></h3>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<nz-divider></nz-divider>
|
||||
<div nz-row>
|
||||
<nz-card nzTitle="操作日志" style="width: 100%;">
|
||||
<st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
|
||||
</st>
|
||||
</nz-card>
|
||||
</div>
|
||||
</nz-card>
|
||||
@ -1,37 +0,0 @@
|
||||
:host{
|
||||
.btn-size{
|
||||
font-size: 14px;
|
||||
}
|
||||
.bdr{
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
.bdl{
|
||||
border-left: 1px solid #ccc;
|
||||
}
|
||||
.title{
|
||||
font-size: 26;
|
||||
font-weight: bold;
|
||||
}
|
||||
.source-info{
|
||||
p{
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
}
|
||||
.freight-info-box{
|
||||
width: 95%;
|
||||
}
|
||||
.freigth-label{
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
::ng-deep{
|
||||
.approval-status{
|
||||
.ant-steps{
|
||||
width: 70%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { SupplyManagementVehicleDetailComponent } from './vehicle-detail.component';
|
||||
|
||||
describe('SupplyManagementVehicleDetailComponent', () => {
|
||||
let component: SupplyManagementVehicleDetailComponent;
|
||||
let fixture: ComponentFixture<SupplyManagementVehicleDetailComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ SupplyManagementVehicleDetailComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SupplyManagementVehicleDetailComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 11:10:14
|
||||
* @LastEditTime: 2021-12-09 20:54:28
|
||||
* @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-detail\vehicle-detail.component.ts
|
||||
*/
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STColumn } from '@delon/abc/st';
|
||||
import { _HttpClient } from '@delon/theme';
|
||||
import { NzMessageService } from 'ng-zorro-antd/message';
|
||||
import { SupplyManagementService } from '../../services/supply-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-supply-management-vehicle-detail',
|
||||
templateUrl: './vehicle-detail.component.html',
|
||||
styleUrls: ['./vehicle-detail.component.less']
|
||||
})
|
||||
export class SupplyManagementVehicleDetailComponentOld implements OnInit {
|
||||
|
||||
id = this.route.snapshot.params.id;
|
||||
i: any;
|
||||
dataList: any;
|
||||
logColumns: STColumn[] = [
|
||||
{ title: '内容', index: 'theme' },
|
||||
{ title: '操作人', index: 'operationUserPhone' },
|
||||
{ title: '操作时间', index: ' createTime' },
|
||||
];
|
||||
|
||||
constructor(
|
||||
private route: ActivatedRoute,
|
||||
private msgSrv: NzMessageService,
|
||||
private service: SupplyManagementService,
|
||||
private router: Router,private ar: ActivatedRoute
|
||||
) {
|
||||
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
console.log(this.id)
|
||||
if(this.id) {
|
||||
this.getDetailList(this.id)
|
||||
}
|
||||
}
|
||||
|
||||
// 获取录单员
|
||||
getDetailList(id: any) {
|
||||
const params = {
|
||||
id: id
|
||||
};
|
||||
this.service.request(`${this.service.$api_get_getCompleteVehicleDetail}`, params).subscribe((res) => {
|
||||
console.log(res)
|
||||
this.dataList = res
|
||||
})
|
||||
}
|
||||
// 修改货源
|
||||
modification() {
|
||||
this.router.navigate(['/supply-management/vehicle-amend', this.id], {
|
||||
queryParams: {
|
||||
sta: 1
|
||||
},
|
||||
})
|
||||
}
|
||||
// 再下一单
|
||||
nextOrder() {
|
||||
this.router.navigate(['/supply-management/vehicle-amend', this.id], {
|
||||
queryParams: {
|
||||
sta: 2
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
goBack() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
}
|
||||
@ -128,7 +128,7 @@
|
||||
</sv>
|
||||
</sv-container>
|
||||
</nz-card>
|
||||
<nz-card nzTitle="运费信息(到货后15天内支付运费)">
|
||||
<!-- <nz-card nzTitle="运费信息(到货后15天内支付运费)">
|
||||
<st [data]="i?.expenseList" [columns]="expenseColumns" [page]="{show:false}">
|
||||
<ng-template st-row="total" let-item>
|
||||
<div>
|
||||
@ -148,6 +148,22 @@
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card> -->
|
||||
<nz-card [nzTitle]="'运费信息(到货后'+i?.paymentDays+'天内支付运费)'">
|
||||
<st [data]="i?.expenseVOList" [columns]="expenseColumns" [page]="{show:false}">
|
||||
<ng-template st-row="total" let-item>
|
||||
<div>
|
||||
{{(item.price * item.rate) | currency}}
|
||||
<span>(含附加费)</span>
|
||||
</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
<div>
|
||||
总计:<span style="color: #da001b; font-size: 18px">{{ totalObj?.price | currency: '¥' }}</span> (运费¥{{
|
||||
totalObj?.price - attObj?.price
|
||||
}},附加运费¥{{ attObj?.price }},附加费率{{ (attObj?.price / totalObj?.price) * 100 | number: '0.2-2' }}%)
|
||||
</div>
|
||||
<div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
|
||||
</nz-card>
|
||||
<nz-card nzTitle="补充信息">
|
||||
<sv-container>
|
||||
|
||||
@ -26,6 +26,8 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
|
||||
1: '抢单',
|
||||
2: '指派'
|
||||
}
|
||||
totalObj: any;
|
||||
attObj: any;
|
||||
status: any = { 1: '待接单', 2: '已接单', 3: '已取消' };
|
||||
totalExpensePrice = 0;
|
||||
expenseColumns: STColumn[] = [
|
||||
@ -67,6 +69,8 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
|
||||
this.service.request(this.service.$api_get_getCompleteVehicleDetail, { id: this.id }).subscribe(res => {
|
||||
const expenseList = res?.expenseList || [];
|
||||
this.totalExpensePrice = 0;
|
||||
this.attObj = this.i?.billExpenseDetails?.filter((data: any) => data.expenseCode === 'ATT')[0];
|
||||
this.totalObj = this.i?.billExpenseDetails?.filter((data: any) => data.expenseCode === 'TOTAL')[0];
|
||||
expenseList.forEach((e: any) => {
|
||||
this.totalExpensePrice += e?.price * e?.rate;
|
||||
});
|
||||
@ -78,12 +82,11 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
|
||||
* 修改货源
|
||||
*/
|
||||
updateGoodsSource(record: any) {
|
||||
this.router.navigate(['./pbg/onecar-publish'], {
|
||||
this.router.navigate(['/supply-management/vehicle-amend', record.id], {
|
||||
queryParams: {
|
||||
id: record?.id,
|
||||
type: 'edit'
|
||||
sta: 1
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -136,23 +139,25 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
|
||||
* 重新指派
|
||||
*/
|
||||
assignedCar(item: any) {
|
||||
const { resourceId } = item;
|
||||
const modalRef = this.modal.create({
|
||||
nzTitle: '指派熟车',
|
||||
nzWidth: '1200px',
|
||||
nzContent: SupplyManagementVehicleAssignedCarComponent,
|
||||
nzContent: SupplyManagementVehicleAssignedCarComponent,
|
||||
nzComponentParams: {
|
||||
i: item,
|
||||
status: 'anew',
|
||||
url: this.service.$api_save_assign_vehicle,
|
||||
params: { resourceId }
|
||||
},
|
||||
nzFooter: null,
|
||||
|
||||
nzFooter: null
|
||||
});
|
||||
modalRef.afterClose.subscribe((result) => {
|
||||
modalRef.afterClose.subscribe(result => {
|
||||
if (result) {
|
||||
this.getGoodsSourceDetail();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
goBack() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-22 11:28:28
|
||||
* @LastEditTime: 2021-12-28 19:21:08
|
||||
* @LastEditors: your name
|
||||
* @LastEditTime: 2022-01-05 15:45:01
|
||||
* @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
|
||||
-->
|
||||
@ -56,9 +56,14 @@
|
||||
<p>{{item.resourceTypeLabel}}{{item.serviceTypeLabel}}</p>
|
||||
</ng-template>
|
||||
<ng-template st-row="totalAmount" let-item let-index="index">
|
||||
<div class="mr-xs" nzPopoverTitle="Title" nz-popover [nzPopoverContent]="contentTemplate">¥{{item.totalAmount}}
|
||||
<!-- [nzPopoverContent]="contentTemplate" -->
|
||||
<div class="mr-xs" nzPopoverTitle="Title" nz-popover>¥{{item.totalAmount}}
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="useCarDemand" let-item let-index="index">
|
||||
<div>车型: {{item.carModelLabel}}</div>
|
||||
<div class="error">车长: {{item.expand}} 米</div>
|
||||
</ng-template>
|
||||
<ng-template #contentTemplate>
|
||||
<div>
|
||||
<p>预付:¥200.00</p>
|
||||
|
||||
@ -398,9 +398,9 @@ export class SupplyManagementVehicleComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '用车需求',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
format: (item: any) => `<p>车型: ${item.vehicleDemand?.maxWeight || ''}</p><p>车长: ${item.vehicleDemand?.maxCube || ''}米</p>`,
|
||||
index: 'vehicleDemand'
|
||||
render: 'useCarDemand'
|
||||
},
|
||||
{
|
||||
title: '总费用',
|
||||
@ -411,9 +411,10 @@ export class SupplyManagementVehicleComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '总运费',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
index: '总运费'
|
||||
className: 'text-center',
|
||||
index: 'totalAmount',
|
||||
render: 'totalAmount'
|
||||
},
|
||||
{
|
||||
title: '附加费',
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 11:10:14
|
||||
* @LastEditTime: 2022-01-04 13:27:16
|
||||
* @LastEditTime: 2022-01-05 16:45:24
|
||||
* @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\services\supply-management.service.ts
|
||||
@ -42,6 +42,7 @@ export class SupplyManagementService extends BaseService {
|
||||
$api_get_goods_resource_statistical = `/api/sdc/goodsResourceOperate/statisticalStatus`; // 统计整车、大宗货源状态数量
|
||||
// 获取货主企业列表
|
||||
public $api_getList = '/api/mdc/cuc/enterpriseInfo/cargoOwner/getList?_allow_anonymous=true';
|
||||
public $api_commonAddress = '/api/sdc/commonAddress/list/page';
|
||||
// 获取货主企业列表
|
||||
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
|
||||
// 取消货源
|
||||
@ -79,6 +80,9 @@ export class SupplyManagementService extends BaseService {
|
||||
$api_checkIdCard = '/api/mdc/pbc/hwc/ocr/recognizeIdCard';
|
||||
// 驾驶证识别
|
||||
$api_recognizeDriverLicense = `/api/mdc/pbc/hwc/ocr/recognizeDriverLicense`;
|
||||
// 查询系统配置项
|
||||
public $api_get_config_item_page = '/api/mdc/pbc/sysConfigItem/list/page';
|
||||
|
||||
constructor(public injector: Injector) {
|
||||
super(injector)
|
||||
}
|
||||
|
||||
@ -0,0 +1,59 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-24 15:38:08
|
||||
* @LastEditTime: 2022-01-05 21:02: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\sys-setting\components\crm-management\crm-management.component.html
|
||||
-->
|
||||
<page-header-wrapper title="异常上报">
|
||||
</page-header-wrapper>
|
||||
|
||||
<nz-card >
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="service.http.loading"
|
||||
(formSubmit)="st?.load(1)" (formReset)="resetSF()"></sf>
|
||||
</div>
|
||||
|
||||
<!-- 查询字段大于3个时,根据展开状态调整布局 -->
|
||||
<ng-container *ngIf="queryFieldCount > 4">
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
|
||||
(click)="st?.load(1)">查询</button>
|
||||
<button nz-button nzType="primary"
|
||||
>导出</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box">
|
||||
|
||||
<div class="d-flex justify-content-end mb-sm">
|
||||
<div>
|
||||
<button nz-button nzType="primary" (click)="roleAction('',1)" >新增CRM客户</button>
|
||||
</div>
|
||||
</div>
|
||||
<st #st [data]="service.$api_get_crmCustomer_page" [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] }"
|
||||
[loading]="service.http.loading" [scroll]="{ y: '370px' }" (change)="stChange($event)">
|
||||
<ng-template st-row="customerType" let-item let-index="index">
|
||||
<div>
|
||||
<span *ngIf="item?.customerType == 1">客户</span>
|
||||
<span *ngIf="item?.customerType == 2">供应商</span>
|
||||
</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -0,0 +1,13 @@
|
||||
:host::ng-deep{
|
||||
.search-box{
|
||||
.ant-card-body{
|
||||
padding-bottom: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
.content-box{
|
||||
.ant-card-body{
|
||||
padding-top: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,155 @@
|
||||
import { Component, OnInit, ViewChild, Type } from '@angular/core';
|
||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { WaybillManagementServe } from '../../services/waybill-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-abnormal-appear',
|
||||
templateUrl: './abnormal-appear.component.html',
|
||||
styleUrls: ['./abnormal-appear.component.less']
|
||||
})
|
||||
export class WaybillManagementAbnormalAppearComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
@ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
|
||||
ui: SFUISchema = {};
|
||||
ui2: SFUISchema = {};
|
||||
schema: SFSchema = {};
|
||||
addSchema: SFSchema = {};
|
||||
_$expand = false;
|
||||
editText = '';
|
||||
formData :any;
|
||||
isVisible = false;
|
||||
edit = false;
|
||||
editId = false;
|
||||
|
||||
columns: STColumn[] = [
|
||||
{ title: '客户名称', index: 'customerName' },
|
||||
{ title: '客户简称', index: 'customerShortName' },
|
||||
{ title: '客户编码', index: 'customerCode' },
|
||||
{
|
||||
title: '操作',
|
||||
buttons: [
|
||||
{
|
||||
text: '编辑',
|
||||
click: item => this.roleAction(item, 2)
|
||||
},
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
selectedRows: any[] = [];
|
||||
|
||||
get reqParams (){
|
||||
return {
|
||||
...this.sf?.value,
|
||||
}};
|
||||
|
||||
constructor(public service: WaybillManagementServe, private nzModalService: NzModalService) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.initSF()
|
||||
this.initSFFre()
|
||||
}
|
||||
|
||||
stChange(e: STChange): void {
|
||||
switch (e.type) {
|
||||
case 'checkbox':
|
||||
this.selectedRows = e.checkbox!;
|
||||
break;
|
||||
case 'filter':
|
||||
this.st.load();
|
||||
break;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle(): void {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
}
|
||||
initSF(){
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
customerName: {
|
||||
type: 'string',
|
||||
title: '客户名称',
|
||||
ui: { placeholder: '请输入' }
|
||||
},
|
||||
customerShortName: {
|
||||
type: 'string',
|
||||
title: '客户简称',
|
||||
ui: { placeholder: '请输入' }
|
||||
},
|
||||
customerCode: {
|
||||
type: 'string',
|
||||
title: '客户编码',
|
||||
ui: { placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
} }
|
||||
},
|
||||
}
|
||||
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
initSFFre() {
|
||||
this.addSchema = {
|
||||
properties: {
|
||||
customerName: {
|
||||
type: 'string',
|
||||
title: '客户名称',
|
||||
ui: { placeholder: '请输入' }
|
||||
},
|
||||
customerShortName: {
|
||||
type: 'string',
|
||||
title: '客户简称',
|
||||
ui: { placeholder: '请输入' }
|
||||
},
|
||||
customerCode: {
|
||||
type: 'string',
|
||||
title: '客户编码',
|
||||
ui: { placeholder: '请输入' }
|
||||
},
|
||||
},
|
||||
required: ['customerName', 'customerShortName', 'customerCode']
|
||||
};
|
||||
this.ui2 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
|
||||
}
|
||||
roleAction(value: any,item?: any) {
|
||||
|
||||
// this.service.request(this.service.$api_get_crmCustomer, {id: value.id}).subscribe((res: any) => {
|
||||
// console.log(res)
|
||||
// if(res) {
|
||||
// this.formData = res;
|
||||
// }
|
||||
// })
|
||||
}
|
||||
|
||||
deleteAction(item?: any) {
|
||||
this.nzModalService.error({
|
||||
nzTitle: '确认删除?',
|
||||
nzClosable: false,
|
||||
nzCancelText: '取消',
|
||||
nzOnOk: () => {}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,7 @@ import { WaybillManagementBulkComponent } from './../components/bulk/bulk.compon
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-07 14:52:29
|
||||
* @LastEditTime: 2021-12-20 19:17:22
|
||||
* @LastEditTime: 2022-01-05 20:36:38
|
||||
* @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\waybill-management\services\waybill-management.service.ts
|
||||
@ -47,6 +47,10 @@ export class WaybillManagementServe extends BaseService {
|
||||
$api_get_insertBulkUnloadCarInfo = `/api/sdc/wayBillOperate/insertBulkUnloadCarInfo`;
|
||||
// 确认到车界面信息(两个只能看的图片)
|
||||
$api_get_getUnloadCarInfo = `/api/sdc/wayBillOperate/getUnloadCarInfo`;
|
||||
|
||||
|
||||
// 查询CRM客户信息表
|
||||
$api_get_crmCustomer_page = '/api/mdc/cuc/crmCustomer/list/page';
|
||||
constructor(public injector: Injector) {
|
||||
super(injector)
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
*/
|
||||
import { NgModule } from '@angular/core';
|
||||
import { RouterModule, Routes } from '@angular/router';
|
||||
import { WaybillManagementAbnormalAppearComponent } from './components/abnormal-appear/abnormal-appear.component';
|
||||
import { WaybillManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component';
|
||||
import { WaybillManagementBulkComponent } from './components/bulk/bulk.component';
|
||||
import { WaybillManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component';
|
||||
@ -18,6 +19,7 @@ const routes: Routes = [
|
||||
{ path: 'vehicle-detail/:id', component: WaybillManagementVehicleDetailComponent },
|
||||
{ path: 'bulk', component: WaybillManagementBulkComponent },
|
||||
{ path: 'bulk-detail/:id', component: WaybillManagementBulkeDetailComponent },
|
||||
{ path: 'abnormal-appear', component: WaybillManagementAbnormalAppearComponent },
|
||||
]
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
*/
|
||||
import { NgModule, Type } from '@angular/core';
|
||||
import { SharedModule } from '@shared';
|
||||
import { WaybillManagementAbnormalAppearComponent } from './components/abnormal-appear/abnormal-appear.component';
|
||||
import { WaybillManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component';
|
||||
import { WaybillManagementBulkComponent } from './components/bulk/bulk.component';
|
||||
|
||||
@ -19,7 +20,8 @@ const COMPONENTS: Type<void>[] = [
|
||||
WaybillManagementVehicleComponent,
|
||||
WaybillManagementVehicleDetailComponent,
|
||||
WaybillManagementBulkComponent,
|
||||
WaybillManagementBulkeDetailComponent
|
||||
WaybillManagementBulkeDetailComponent,
|
||||
WaybillManagementAbnormalAppearComponent
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -13,7 +13,8 @@ export class ShipperBaseService extends BaseService {
|
||||
$api_get_staff_list = `/api/mdc/cuc/userApp/getStaffList`; //查询企业项目员工列表(录单员)
|
||||
$api_get_network_freight_forwarder_list = `/api/mdc/cuc/networkTransporter/findAll`; // 获取网络货运人
|
||||
$api_get_network_freight_forwarder_one = `/api/mdc/cuc/networkTransporter/get`; // 获取网络货运人
|
||||
|
||||
// 根据FullKey获取系统子配置(树)
|
||||
$api_getSysConfigTreeByParentFullKey = `/api/mdc/pbc/sysConfig/getSysConfigTreeByParentFullKey`;
|
||||
envCache: any;
|
||||
constructor(public injector: Injector, public eaCacheSrv: EACacheService) {
|
||||
super(injector);
|
||||
@ -65,7 +66,7 @@ export class ShipperBaseService extends BaseService {
|
||||
* 获取录单员
|
||||
* @returns
|
||||
*/
|
||||
getStaffList(params = {},containerAll = true) {
|
||||
getStaffList(params = {},containerAll = true) {
|
||||
return this.request(this.$api_get_staff_list, params).pipe(
|
||||
map((res: any) => {
|
||||
if (!res) {
|
||||
@ -139,5 +140,17 @@ export class ShipperBaseService extends BaseService {
|
||||
getNetworkTransporterById(id: string) {
|
||||
return this.request(this.$api_get_network_freight_forwarder_one, { id });
|
||||
}
|
||||
|
||||
// 根据FullKey获取系统子配置(树)
|
||||
loadConfigByKey(configFullKey:string ='') {
|
||||
return this.http.post(this.$api_getSysConfigTreeByParentFullKey, { configFullKey }).pipe(
|
||||
map((m: any) => {
|
||||
if (m.success === true) {
|
||||
return (m.data as any[]) || [];
|
||||
} else {
|
||||
this.msgSrv.warning(m.msg);
|
||||
return [];
|
||||
}
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -212,6 +212,10 @@
|
||||
"hide": true,
|
||||
"text": "大宗运单详情",
|
||||
"link": "/waybill-management/bulk-detail/:id"
|
||||
},
|
||||
{
|
||||
"text": "异常上报",
|
||||
"link": "/waybill-management/abnormal-appear"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user