车辆对接

This commit is contained in:
wangshiming
2022-01-04 21:05:44 +08:00
parent 630813359b
commit 8618108b81
9 changed files with 316 additions and 23 deletions

View File

@ -0,0 +1,42 @@
<!--
* @Author: your name
* @Date: 2021-12-16 10:19:08
* @LastEditTime: 2022-01-04 17:58:06
* @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\risk-detail\risk-detail.component.html
-->
<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>
<!-- [nzExtra]="extraTemplate" -->
<nz-card nzTitle="投诉信息" >
<h2>投诉单号:{{datailList?.id}}</h2>
<sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'" *ngIf="schema" [formData]="datailList">
<ng-template sf-template="imgUrls" let-schema="schema" let-item let-ui="ui">
<app-imagelist [imgList]="datailList?.imgUrls"></app-imagelist>
</ng-template>
</sf>
</nz-card>
<nz-card class="dealBox" nzTitle="投诉处理">
<nz-timeline class="d-block pl-md pt-md">
<nz-timeline-item *ngFor="let i of datailList" [nzDot]="dotTpl">
<ng-template #dotTpl>
<div class="md-sm p-sm icon-sm rounded-circle text-white bg-{{ i.dot.bg }}">
<i nz-icon [nzType]="i.dot.icon"></i>
</div>
</ng-template>
<div class="pl-lg">
<strong>{{ i.time }}</strong>
<div class="py-sm" [innerHTML]="i.content | html"></div>
<div class="text-grey">{{ i.tags }}</div>
</div>
</nz-timeline-item>
</nz-timeline>
</nz-card>

View File

@ -0,0 +1,10 @@
.info{
color: #666;
}
:host{
::ng-deep{
.dealBox .ant-card-body{
width: 500px;
}
}
}

View File

@ -0,0 +1,32 @@
/*
* @Author: your name
* @Date: 2022-01-04 17:29:18
* @LastEditTime: 2022-01-04 17:31:21
* @LastEditors: your name
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\components\complaint-detail\complaint-detail.component.spec.ts
*/
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { OrderManagementComplaintDetailComponent } from './complaint-detail.component';
describe('OrderManagementComplaintDetailComponent', () => {
let component: OrderManagementComplaintDetailComponent;
let fixture: ComponentFixture<OrderManagementComplaintDetailComponent>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ OrderManagementComplaintDetailComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(OrderManagementComplaintDetailComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,128 @@
import { Component, OnInit, ViewChild, ɵɵsetComponentScope } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { SFComponent, SFSchema, SFSelectWidgetSchema, SFTextareaWidgetSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzModalService } from 'ng-zorro-antd/modal';
import { OrderManagementService } from '../../services/order-management.service';
// import { RiskOrderService } from '../../services/risk-order.service';
// import { CtcAppealComponent } from '../appeal/appeal.component';
@Component({
selector: 'app-oder-management-component-risk-detail',
templateUrl: './complaint-detail.component.html',
styleUrls: ['./complaint-detail.component.less']
})
export class OrderManagementComplaintDetailComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent;
ui: SFUISchema = {};
schema: SFSchema = {};
// abnormalReason = [
// '司机装货轨迹异常',
// '司机卸货轨迹异常',
// '车辆装货轨迹异常',
// '司机位置未移动或运输途中未打开APP',
// '运单轨迹严重异常'
// ]
i: any;
datailList: any;
id: string = '';
constructor(private modal: NzModalService, public service: OrderManagementService, public ar: ActivatedRoute) {
this.id = this.ar.snapshot.params.id;
}
ngOnInit(): void {
if (this.id)
{
this.getDetail(this.id);
this.initSF();
}
}
initSF() {
this.schema = {
properties: {
complaintCause: {
title: '投诉原因',
type: 'string',
maxLength: 30,
ui: {
widget: 'text',
change: (value, orgData) => console.log(value, orgData),
} as SFSelectWidgetSchema,
},
complaintDetails: {
title: '投诉详情',
type: 'string',
ui: {
widget: 'textarea',
placeholder: '请输入',
autosize: {
minRows: 4,
maxRows: 4
}
},
readOnly: true
} as SFTextareaWidgetSchema,
imgUrls: {
type: 'string',
title: '上传凭证',
ui: {
widget: 'custom'
}
},
},
};
this.ui = {
'*': {
spanLabelFixed: 180,
grid: { span: 18 },
width: 600,
},
$title1: {
spanLabelFixed: 0,
},
$title2: {
spanLabelFixed: 0,
},
$title3: {
spanLabelFixed: 0,
},
$unit: {
spanLabelFixed: 20,
grid: { span: 3 },
},
};
}
getDetail(id: string) {
this.service.request(this.service.$api_get_getComplaintDriverDetails, { id }).subscribe(res => {
if (res) {
this.datailList = res;
}
})
}
edit(item: any): void {
const modalRef = this.modal.create({
nzTitle: '申诉',
nzWidth: '40%',
// nzContent: CtcAppealComponent,
nzComponentParams: {
i: item
},
nzFooter: null
});
modalRef.afterClose.subscribe(res => {
if (res) {
}
})
}
kkk(value: any) {
console.log(value)
}
goBack() {
window.history.go(-1)
}
}

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-03 11:10:14 * @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-07 14:42:43 * @LastEditTime: 2022-01-04 20:50:04
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -43,13 +43,30 @@
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
<div style="margin-top: 15px;"> <div style="margin-top: 15px;">
<!-- [req]="{ method: 'GET', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" <st
#st
[bordered]="true"
[scroll]="{ x: '2000px' }"
[data]="service.$api_get_operate_listPage"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500" [loading]="service.http.loading" --> [loadingDelay]="500"
<st #st [scroll]="{ x: '1200px' }" [data]="service.$api_get_catalogue_member" [columns]="columns"> [loading]="service.http.loading"
<ng-template st-row="goodsId" let-item let-index="index"> >
<a [routerLink]="'/order-management/vehicle-detail/'+item.id">{{item.no}}</a> <ng-template st-row="complaintCode" let-item let-index="index">
<a [routerLink]="'/order-management/complaint-detail/'+item.id">{{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>
<!-- <ng-template st-row="externalSn" let-item let-index="index"> <!-- <ng-template st-row="externalSn" let-item let-index="index">
<span class="mr-xs">{{111111}}</span> <span class="mr-xs">{{111111}}</span>
@ -83,8 +100,9 @@
</sf> </sf>
</ng-container> </ng-container>
<ng-template #nzModalFooterview2> <ng-template #nzModalFooterview2>
<button nz-button nzType="default" (click)="handleCancel('1')">取消</button> <button nz-button nzType="default" (click)="handleCancel('1')">拒绝</button>
<button nz-button nzType="primary" (click)="handleOK()">确定</button> <button nz-button nzType="primary" (click)="handleOK()">通过</button>
<button nz-button nzType="primary" (click)="handleCancel2()">强制取消</button>
</ng-template> </ng-template>
</nz-modal> </nz-modal>

View File

@ -13,7 +13,6 @@ import { OrderManagementService } from '../../services/order-management.service'
styleUrls: ['./complaint.component.less'] styleUrls: ['./complaint.component.less']
}) })
export class OrderManagementComplaintComponent implements OnInit { export class OrderManagementComplaintComponent implements OnInit {
url = `/user?_allow_anonymous=true`;
ui: SFUISchema = {}; ui: SFUISchema = {};
uiView: SFUISchema = {}; uiView: SFUISchema = {};
schema: SFSchema = {}; schema: SFSchema = {};
@ -21,6 +20,7 @@ export class OrderManagementComplaintComponent implements OnInit {
auditMany = false; auditMany = false;
isVisibleRE = false; isVisibleRE = false;
_$expand = false; _$expand = false;
channelId: any;
@ViewChild('st') private readonly st!: STComponent; @ViewChild('st') private readonly st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('sfView', { static: false }) sfView!: SFComponent; @ViewChild('sfView', { static: false }) sfView!: SFComponent;
@ -87,7 +87,7 @@ export class OrderManagementComplaintComponent implements OnInit {
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
no: { complaintCode: {
type: 'string', type: 'string',
title: '投诉单号', title: '投诉单号',
}, },
@ -114,44 +114,50 @@ export class OrderManagementComplaintComponent implements OnInit {
title: '投诉单号', title: '投诉单号',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
render: 'goodsId' render: 'complaintCode'
}, },
{ {
title: '运单号', title: '运单号',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
render: 'goodsId' index: 'wayBillCode'
}, },
{ {
title: '投诉时间', title: '投诉时间',
width: '100px', width: '100px',
index: 'complainantTime',
className: 'text-center', className: 'text-center',
}, },
{ title: '托运方', index: 'externalSn', width: '120px', className: 'text-center' }, { title: '托运方', index: 'shipperAppUserId', width: '120px', className: 'text-center' },
{ title: '司机', index: 'linkUrl', width: '120px', className: 'text-center' }, { title: '司机', index: 'driverId', width: '120px', className: 'text-center' },
{ {
title: '投诉原因', title: '投诉原因',
className: 'text-center', className: 'text-center',
width: '120px', width: '120px',
index: 'complaintCauseLabel'
}, },
{ {
title: '投诉状态', title: '投诉状态',
className: 'text-center', className: 'text-center',
width: '120px', width: '120px',
index: 'complaintStatusLabel'
}, { }, {
title: '处理结果', title: '处理结果',
className: 'text-center', className: 'text-center',
width: '120px', width: '120px',
index:'handleResult'
}, },
{ {
title: '投诉方', title: '投诉方',
className: 'text-center', className: 'text-center',
width: '120px', width: '120px',
index: 'complainantPartyLabel'
}, },
{ {
title: '投诉人', title: '投诉人',
className: 'text-center', className: 'text-center',
width: '120px', width: '120px',
render: 'complainant'
}, },
{ {
title: '操作', title: '操作',
@ -174,7 +180,7 @@ export class OrderManagementComplaintComponent implements OnInit {
initSTAudit() { initSTAudit() {
this.schemaView = { this.schemaView = {
properties: { properties: {
roleDescription: { handleResult: {
title: '处理结果', title: '处理结果',
type: 'string', type: 'string',
maxLength: 50, maxLength: 50,
@ -185,6 +191,7 @@ export class OrderManagementComplaintComponent implements OnInit {
}, },
}, },
}, },
required: ['handleResult']
}; };
this.uiView = { '*': { spanLabelFixed: 110, grid: { span: 24 } } }; this.uiView = { '*': { spanLabelFixed: 110, grid: { span: 24 } } };
} }
@ -247,19 +254,61 @@ export class OrderManagementComplaintComponent implements OnInit {
查看评价: 3 查看评价: 3
*/ */
handleCancel(type: string) { handleCancel(type: string) {
console.log(type) const paramsa = {
...this.sfView.value,
handleStatus: 0,
id: this.channelId
}
this.service.request(this.service.$api_get_dealWithComplaint, paramsa).subscribe((res: any) =>{
console.log(res)
if(res) {
this.service.msgSrv.success('已拒绝!')
this.isVisibleRE = false
} else{
this.service.msgSrv.error(res?.msg)
}
})
this.isVisibleRE = false
}
handleCancel2() {
const paramsa = {
id: this.channelId
}
this.service.request(this.service.$api_get_canelComplaint, paramsa).subscribe((res: any) =>{
console.log(res)
if(res) {
this.service.msgSrv.success('已拒绝!')
this.isVisibleRE = false
} else{
this.service.msgSrv.error(res?.msg)
}
})
this.isVisibleRE = false this.isVisibleRE = false
} }
/** /**
* 审核通过按钮 * 审核通过按钮
*/ */
handleOK() { handleOK() {
const paramsa = {
...this.sfView.value,
handleStatus: 1,
id: this.channelId
}
this.service.request(this.service.$api_get_dealWithComplaint, paramsa).subscribe((res: any) =>{
console.log(res)
if(res) {
this.service.msgSrv.success('已通过!')
this.isVisibleRE = false
} else{
this.service.msgSrv.error(res?.msg)
}
})
} }
/** /**
*查看评价 *查看评价
*/ */
viewEvaluate(item: any) { viewEvaluate(item: any) {
this.isVisibleRE = true this.isVisibleRE = true
this.channelId = item.id;
} }
} }

View File

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-03 15:31:52 * @Date: 2021-12-03 15:31:52
* @LastEditTime: 2021-12-24 17:48:02 * @LastEditTime: 2022-01-04 17:31:44
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\order-management-routing.module.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\order-management-routing.module.ts
@ -14,6 +14,7 @@ import { OrderManagementBulkDetailChangeComponent } from './components/bulk-deta
import { OrderManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component'; import { OrderManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component';
import { OrderManagementBulkComponent } from './components/bulk/bulk.component'; import { OrderManagementBulkComponent } from './components/bulk/bulk.component';
import { OrderManagementCarManageComponent } from './components/car-manage/car-manage.component'; import { OrderManagementCarManageComponent } from './components/car-manage/car-manage.component';
import { OrderManagementComplaintDetailComponent } from './components/complaint-detail/complaint-detail.component';
import { OrderManagementComplaintComponent } from './components/complaint/complaint.component'; import { OrderManagementComplaintComponent } from './components/complaint/complaint.component';
import { OrderManagementDriverManageComponent } from './components/driver-manage/driver-manage.component'; import { OrderManagementDriverManageComponent } from './components/driver-manage/driver-manage.component';
import { OrderManagementRiskDetailComponent } from './components/risk-detail/risk-detail.component'; import { OrderManagementRiskDetailComponent } from './components/risk-detail/risk-detail.component';
@ -36,6 +37,7 @@ const routes: Routes = [
{ path: 'risk', component: OrderManagementRiskComponent }, { path: 'risk', component: OrderManagementRiskComponent },
{ path: 'risk-detail/:id', component: OrderManagementRiskDetailComponent }, { path: 'risk-detail/:id', component: OrderManagementRiskDetailComponent },
{ path: 'complaint', component: OrderManagementComplaintComponent }, { path: 'complaint', component: OrderManagementComplaintComponent },
{ path: 'complaint-detail/:id', component: OrderManagementComplaintDetailComponent },
] ]
@NgModule({ @NgModule({
imports: [RouterModule.forChild(routes)], imports: [RouterModule.forChild(routes)],

View File

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-03 15:31:52 * @Date: 2021-12-03 15:31:52
* @LastEditTime: 2021-12-29 20:07:54 * @LastEditTime: 2022-01-04 17:31:58
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\order-management.module.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\order-management.module.ts
@ -14,6 +14,7 @@ import { OrderManagementBulkDetailChangeComponent } from './components/bulk-deta
import { OrderManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component'; import { OrderManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component';
import { OrderManagementBulkComponent } from './components/bulk/bulk.component'; import { OrderManagementBulkComponent } from './components/bulk/bulk.component';
import { OrderManagementCarManageComponent } from './components/car-manage/car-manage.component'; import { OrderManagementCarManageComponent } from './components/car-manage/car-manage.component';
import { OrderManagementComplaintDetailComponent } from './components/complaint-detail/complaint-detail.component';
import { OrderManagementComplaintComponent } from './components/complaint/complaint.component'; import { OrderManagementComplaintComponent } from './components/complaint/complaint.component';
import { OrderManagementDriverManageComponent } from './components/driver-manage/driver-manage.component'; import { OrderManagementDriverManageComponent } from './components/driver-manage/driver-manage.component';
import { OrderManagementRiskDetailComponent } from './components/risk-detail/risk-detail.component'; import { OrderManagementRiskDetailComponent } from './components/risk-detail/risk-detail.component';
@ -59,7 +60,8 @@ const COMPONENTS: Type<void>[] = [
OrderManagementBulkDetailChangeComponent, OrderManagementBulkDetailChangeComponent,
VehicleModifyRateComponent, VehicleModifyRateComponent,
VehicleFreightPeopleComponent, VehicleFreightPeopleComponent,
VehicleModifyCaptainComponent VehicleModifyCaptainComponent,
OrderManagementComplaintDetailComponent
]; ];
@NgModule({ @NgModule({

View File

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-03 15:31:52 * @Date: 2021-12-03 15:31:52
* @LastEditTime: 2022-01-04 11:07:08 * @LastEditTime: 2022-01-04 16:30:06
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\services\order-management.service.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\services\order-management.service.ts
@ -107,6 +107,16 @@ export class OrderManagementService extends ShipperBaseService {
$api_set_updateAdditionalRateBatch = `/api/sdc/billOperate/updateAdditionalRateBatch`; $api_set_updateAdditionalRateBatch = `/api/sdc/billOperate/updateAdditionalRateBatch`;
// 查询投诉列表
$api_get_operate_listPage = `/api/sdc/complaint/operate/listPage`;
// 获取投诉表详情
$api_get_getComplaintDriverDetails = `/api/sdc/complaint/operate/getComplaintDriverDetails`;
// 处理投诉
$api_get_dealWithComplaint = `/api/sdc/complaint/operate/dealWithComplaint`;
// 撤销投诉
$api_get_canelComplaint = `/api/sdc/complaint/operate/canelComplaint`;