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

This commit is contained in:
Taric Xin
2022-04-19 09:52:56 +08:00
15 changed files with 126 additions and 105 deletions

View File

@ -88,8 +88,8 @@ export class DatatableBusiindexComponent implements OnInit {
if (res) {
this.chartData = res
if(flag) {
// this.pillar.reRender()
// this.curve.reRender()
this.pillar.reRender()
this.curve.reRender()
}
}
})

View File

@ -4,18 +4,18 @@
* @Author : Shiming
* @Date : 2022-03-30 17:57:46
* @LastEditors : Shiming
* @LastEditTime : 2022-04-18 16:37:41
* @LastEditTime : 2022-04-18 17:21:43
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\compliance\\salesman\\salesman.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<!-- 页头 -->
<page-header-wrapper [title]="'业务员-合规报告'"></page-header-wrapper>
<nz-card [nzExtra]="extraTemplate">
<nz-card >
<ng-template #extraTemplate>
<div class="chooseBox">
<div nz-row nzGutter="8">
<div nz-col [nzXl]="24" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="searchSchema" button="none"
[ui]="{ '*': { spanLabelFixed: 0, grid: { xxl:4,xl:4, lg: 4, md: 4, sm: 4, xs: 4,gutter:4 } } }"
[ui]="{ '*': { spanLabelFixed: 0, grid: { xxl:5,xl:4, lg: 8, md: 12, sm: 12, xs: 24,gutter:20 } } }"
[compact]="true">
<ng-template sf-template="no4" let-me let-ui="ui" let-schema="schema">
<div class="chooseBox">
@ -37,7 +37,7 @@
</ng-template>
</sf>
</div>
</ng-template>
</div>
<st #st multiSort [columns]="columns" [ps]="20" [data]="service.$api_listPartComplianceReportPage"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[scroll]="{ x: '1200px' }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"

View File

@ -1,4 +1,7 @@
.chooseBox {
display: flex;
float : right;
}
.timeBox {
display: flex;

View File

@ -68,7 +68,8 @@ export class DatatableComplianceSalesmanComponent implements OnInit {
ui: {
class: 'custom',
widget: 'custom',
grid: { xxl: 12, xl: 12, lg: 12, md: 12, sm: 12, xs: 12 }
grid: { xxl: 9, xl: 10, lg: 12, md: 24, sm: 24, xs: 24 }
}
}
},

View File

@ -20,6 +20,7 @@ export class DatatableMancustomtableComponent implements OnInit {
mode = 'year';
date: any = null;
defineDate = [];
resourceStatus: number = 1;
time: any = ['2022-01-01 00:00:00'];
dateFormat = 'yyyy';
today = new Date();
@ -61,31 +62,37 @@ export class DatatableMancustomtableComponent implements OnInit {
}
};
columns: STColumn[] = [
{ title: '部门', index: 'enterpriseName', className: 'text-center', width: '200px' },
{ title: '业务员', index: 'registerTime', className: 'text-center', width: '200px' },
{ title: '已认证货主数', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '新增合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '合伙人活跃率', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '主动合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '纪念合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '流失合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '未搭档合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '新增货主数', index: 'salesmanName', className: 'text-center', width: '100px' },
{ title: '货主活跃率', index: 'partnerName', className: 'text-center', width: '100px' },
{ title: '部门', index: 'department', className: 'text-center', width: '200px' },
{ title: '业务员', index: 'salesmen', className: 'text-center', width: '200px' },
{ title: '已认证货主数', index: 'certifiedCount', className: 'text-center', width: '100px', iif: ()=> {
console.log(this.resourceStatus);
return this.resourceStatus !== 1
} },
{ title: '已认证合伙人', index: 'certifiedCount', className: 'text-center', width: '100px' },
{ title: '新增合伙人', index: 'addCount', className: 'text-center', width: '100px' },
{ title: '合伙人活跃率', index: 'alivePer', className: 'text-center', width: '100px' },
{ title: '活跃合伙人数', index: 'aliveCount', className: 'text-center', width: '100px' },
{ title: '沉默合伙人数', index: 'silentCount', className: 'text-center', width: '100px' },
{ title: '流失合伙人数', index: 'drainCount', className: 'text-center', width: '100px' },
{ title: '未激活合伙人数', index: 'notActiveCount', className: 'text-center', width: '100px' },
{ title: '新增货主数', index: 'addCount', className: 'text-center', width: '100px' },
{ title: '货主活跃率', index: 'alivePer', className: 'text-center', width: '100px' },
{
title: '活跃货主数',
index: 'customerStatus',
index: 'aliveCount',
className: 'text-center',
width: '100px'
},
{ title: '纪念货主数', index: 'zsl', className: 'text-center', width: '100px' },
{ title: '沉默货主数', index: 'silentCount', className: 'text-center', width: '100px' },
{
title: '货主数',
index: 'ddje',
title: '流失货主数',
index: 'drainCount',
className: 'text-right',
width: '100px',
},
{ title: '未激活货主数', index: 'ysdds', className: 'text-center', width: '120px' }
{ title: '未激活货主数', index: 'notActiveCount', className: 'text-center', width: '120px' }
];
/**
* 查询参数
@ -103,10 +110,12 @@ export class DatatableMancustomtableComponent implements OnInit {
let params: any = {
time: this.time,
type: this.type,
parType: this.resourceStatus,
...this.sf?.value
};
delete params._$expand;
delete params.sort;
return { ...params };
}
constructor(public service: DataService, private datePipe: DatePipe) {}
@ -225,7 +234,9 @@ export class DatatableMancustomtableComponent implements OnInit {
this.isLoading = true;
}
selectChange(e: number) {
// this.resourceStatus = e;
console.log(e);
this.resourceStatus = e + 1;
// this.initST();
setTimeout(() => {
this.st.load();

View File

@ -156,7 +156,7 @@ export class DatatableOwnerComponent implements OnInit {
} else if(this.mode === 'date') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']
} else{
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + ' 00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
}
this.st.reload({ ...this.reqParams });
}

View File

@ -59,6 +59,7 @@ export class DatatableFinancetableComponent implements OnInit {
} else {
this.type = 4
}
let params: any = {
time: this.time,
type: this.type
@ -76,11 +77,11 @@ export class DatatableFinancetableComponent implements OnInit {
initPillarData(){
let type = 1
if(this.mode === 'year') {
type = 1
} else if(this.mode === 'month') {
type = 2
}
if (this.modeNext === 'year') {
this.type = 1
} else if (this.modeNext === 'month') {
this.type = 2
}
const params: any = {
time: this.timeNext,
type,
@ -121,7 +122,7 @@ export class DatatableFinancetableComponent implements OnInit {
} else if (this.mode === 'date') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']
} else {
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + ' 00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
}
this.st.reload({ ...this.reqParams });
}
@ -138,9 +139,9 @@ export class DatatableFinancetableComponent implements OnInit {
}
changeDataNext() {
if(this.mode === 'year') {
if(this.modeNext === 'year') {
this.dateFormat = 'yyyy'
} else if(this.mode === 'month') {
} else if(this.modeNext === 'month') {
this.dateFormat = 'yyyy-MM'
}
}
@ -148,9 +149,9 @@ export class DatatableFinancetableComponent implements OnInit {
if(result === null) {
return
}
if(this.mode === 'year') {
if(this.modeNext === 'year') {
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy') + '-01-01 00:00:00']
} else if(this.mode === 'month') {
} else if(this.modeNext === 'month') {
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy-MM') + '-01 00:00:00']
}
this.initPillarData();

View File

@ -118,7 +118,7 @@ export class DatatableOperationtableComponent implements OnInit {
} else if (this.mode === 'date') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']
} else {
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + ' 00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
}
this.st.reload({ ...this.reqParams });
}

View File

@ -13,9 +13,10 @@ export class OperationtablePieComponent implements OnInit {
@ViewChild('pie', { static: false }) pie!: G2PieComponent;
chartData: any = [];
el: any;
chart: any;
enterpriseInfoIdPie = ''
interManlist: any = []
innerView: any =[];
constructor(private service: DataService, private ngZone: NgZone) {
}
@ -27,7 +28,11 @@ export class OperationtablePieComponent implements OnInit {
this.service.request(this.service.$api_operationalReportWaybillStatusDistribution, {id: this.enterpriseInfoIdPie}).subscribe(res => {
if (res) {
this.chartData = res
this.ngZone.runOutsideAngular(() => this.init(this.el));
// this.ngZone.runOutsideAngular(() => this.init(this.el));
setTimeout(() => {
this.chart?.data(this.chartData);
this.chart?.render();
}, 1000)
}
})
}
@ -39,21 +44,26 @@ export class OperationtablePieComponent implements OnInit {
}
render(el: ElementRef<HTMLDivElement>): void {
this.el = el.nativeElement
setTimeout(() => {
this.ngZone.runOutsideAngular(() => this.init(this.el));
}, 500)
}
private init(el: HTMLElement): void {
const chart = new Chart({
this.chart = new Chart({
container: el,
autoFit: true,
height: 400,
});
// 新建一个 view 用来单独渲染Annotation
const innerView = chart.createView();
chart.coordinate('theta', {
// const innerView = chart.createView();
this.innerView = this.chart.createView();
this.chart.coordinate('theta', {
radius: 0.6,
innerRadius: 0.7,
});
chart.data(this.chartData);
// this.chart.data(this.chartData);
// chart.scale('percent', {
// formatter: val => {
@ -62,10 +72,10 @@ export class OperationtablePieComponent implements OnInit {
// },
// });
chart.tooltip(false);
this.chart.tooltip(false);
// 声明需要进行自定义图例字段: 'item'
chart.legend('item', {
this.chart.legend('item', {
position: 'right', // 配置图例显示位置
custom: true, // 关键字段,告诉 G2要使用自定义的图例
items: this.chartData.map((obj: any, index: any) => {
@ -77,7 +87,7 @@ export class OperationtablePieComponent implements OnInit {
symbol: 'square', // marker 的形状
style: {
r: 5, // marker 图形半径
fill: chart.getTheme().colors10[index], // marker 颜色,使用默认颜色,同图形对应
fill: this.chart.getTheme().colors10[index], // marker 颜色,使用默认颜色,同图形对应
},
}, // marker 配置
};
@ -90,7 +100,7 @@ export class OperationtablePieComponent implements OnInit {
},
});
const interval = chart
const interval = this.chart
.interval()
.adjust('stack')
.position('percent')
@ -102,7 +112,7 @@ export class OperationtablePieComponent implements OnInit {
})
.state({
active: {
style: element => {
style: (element: any) => {
const shape = element.shape;
return {
lineWidth: 1,
@ -114,17 +124,17 @@ export class OperationtablePieComponent implements OnInit {
});
// 移除图例点击过滤交互
chart.removeInteraction('legend-filter');
chart.interaction('element-active');
this.chart.removeInteraction('legend-filter');
this.chart.interaction('element-active');
chart.render(true);
this.chart.render(true);
// 默认选择
interval.elements[0].setState('selected', true);
const ele = interval.elements[0].getData();
// 监听 element 上状态的变化来动态更新 Annotation 信息
chart.on('element:statechange', (ev: any) => {
this.chart.on('element:statechange', (ev: any) => {
const { state, stateStatus, element } = ev.gEvent.originalEvent;
// 本示例只需要监听 active 的状态变化
@ -142,10 +152,10 @@ export class OperationtablePieComponent implements OnInit {
// 绘制 annotation
let lastItem: any;
function updateAnnotation(data: any) {
const updateAnnotation = (data: any) => {
if (data.item !== lastItem) {
innerView.annotation().clear(true);
innerView
this.innerView.annotation().clear(true);
this.innerView
.annotation()
.text({
position: ['50%', '50%'],
@ -168,7 +178,7 @@ export class OperationtablePieComponent implements OnInit {
offsetX: -10,
offsetY: 20,
})
innerView.render(true);
this.innerView.render(true);
lastItem = data.item;
@ -176,9 +186,9 @@ export class OperationtablePieComponent implements OnInit {
}
// 清空 annotation
function clearAnnotation() {
innerView.annotation().clear(true);
innerView.render(true);
function clearAnnotation(this: any) {
this.innerView?.annotation()?.clear(true);
this.innerView.render(true);
lastItem = null;
}

View File

@ -60,13 +60,12 @@ export class DatatableReportingFundInfoComponent implements OnInit {
title: '本地校验',
render: 'checkStatus',
className: 'text-center',
type: 'enum',
enum: {
'0': '校验中',
'1': '通过',
'2': '不通过'
},
// type: 'enum',
// enum: {
// '0': '校验中',
// '1': '通过',
// '2': '不通过'
// },
width: '10%',
},
{ title: '错误内容', index: 'remark', className: 'text-center', width: '20%', },

View File

@ -31,21 +31,22 @@
[page]="{ show: true, showSize: true, pageSizes: [10,20, 50, 100] }" [loading]="service.http.loading"
(change)="changeSt($event)">
<ng-template st-row="billPutStatus" let-item let-index="index">
<a *ngIf="item?.billPutStatus === 2" (click)="viewAuditResult(item)">{{filterStatus(item?.billPutStatus)}}</a>
<span *ngIf="item?.billPutStatus !== 2">{{filterStatus(item?.billPutStatus)}}</span>
<a *ngIf="item?.billPutStatus === '2'" (click)="viewAuditResult(item)">{{filterStatus(item?.billPutStatus)}}</a>
<span *ngIf="item?.billPutStatus !== '2'">{{filterStatus(item?.billPutStatus)}}</span>
</ng-template>
<ng-template st-row="driverPutStatus" let-item let-index="index">
<a (click)="viewAuditResult(item)" *ngIf="item?.driverPutStatus === 2">{{filterStatus(item?.driverPutStatus)}}</a>
<span *ngIf="item?.driverPutStatus !== 2">{{filterStatus(item?.driverPutStatus)}}</span>
<a (click)="viewAuditResult(item)"
*ngIf="item?.driverPutStatus === '2'">{{filterStatus(item?.driverPutStatus)}}</a>
<span *ngIf="item?.driverPutStatus !== '2'">{{filterStatus(item?.driverPutStatus)}}</span>
</ng-template>
<ng-template st-row="carPutStatus" let-item let-index="index">
<a (click)="viewAuditResult(item)" *ngIf="item?.carPutStatus === 2">{{filterStatus(item?.carPutStatus)}}</a>
<span *ngIf="item?.carPutStatus !== 2">{{filterStatus(item?.carPutStatus)}}</span>
<a (click)="viewAuditResult(item)" *ngIf="item?.carPutStatus === '2'">{{filterStatus(item?.carPutStatus)}}</a>
<span *ngIf="item?.carPutStatus !== '2'">{{filterStatus(item?.carPutStatus)}}</span>
</ng-template>
<ng-template st-row="checkStatus" let-item let-index="index">
<a *ngIf="item?.checkStatus === 2" (click)="viewResult(item)">{{filterCheckStatus(item?.checkStatus)}}</a>
<span *ngIf="item?.checkStatus !== 2">{{filterCheckStatus(item?.checkStatus)}}</span>
<a *ngIf="item?.checkStatus === '2'" (click)="viewResult(item)">{{filterCheckStatus(item?.checkStatus)}}</a>
<span *ngIf="item?.checkStatus !== '2'">{{filterCheckStatus(item?.checkStatus)}}</span>
</ng-template>
<ng-template st-row="billCode" let-item>

View File

@ -283,10 +283,8 @@ export class DatatableOrderReportingComponent implements OnInit {
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
{ title: '订单状态', index: 'billPutStatusLabel', className: 'text-center', width: '120px', },
{ title: '司机状态', index: 'driverPutStatusLabel', className: 'text-center', width: '120px', },
{ title: '车辆状态', index: 'carPutStatusLabel', className: 'text-center', width: '120px', },
{ title: '本地校验', index: 'checkStatusLabel', className: 'text-center', width: '120px', },
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px', },
{
title: '订单号',
render: 'billCode',
@ -584,13 +582,13 @@ export class DatatableOrderReportingComponent implements OnInit {
}
}
filterCheckStatus(status: number) {
filterCheckStatus(status: string | number) {
switch (status) {
case 0:
case '0':
return '检测中';
case 1:
case '1':
return '通过';
case 2:
case '2':
return '不通过';
default:
return '';

View File

@ -64,13 +64,13 @@ export class DatatableReportingVerifyResultComponent implements OnInit {
},
{ title: '上传值', index: 'fieldValue', className: 'text-center', width: '150px', },
{
title: '本地校验', index: 'checkStatus', className: 'text-center', width: '100px',
type: 'enum',
enum: {
0: '校验中',
1: '通过',
2: '不通过'
}
title: '本地校验', render: 'checkStatus', className: 'text-center', width: '100px',
// type: 'enum',
// enum: {
// 0: '校验中',
// 1: '通过',
// 2: '不通过'
// }
},
{ title: '错误内容', index: 'remark', className: 'text-center', width: '150px', },
]
@ -120,7 +120,7 @@ export class DatatableReportingVerifyResultComponent implements OnInit {
filterCheckStatus(status: number) {
switch (status) {
case 0:
return '校验中';
return '检测中';
case 1:
return '通过';
case 2:

View File

@ -93,10 +93,17 @@ export class OrderManagementComplaintComponent implements OnInit {
initSF() {
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
complaintCode: {
type: 'string',
title: '投诉单号'
},
wayBillCode: {
type: 'string',
title: '运单号',
ui: {
}
},
complaintCause: {
title: '投诉原因',
type: 'string',
@ -124,7 +131,10 @@ export class OrderManagementComplaintComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd'
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value
},
} as SFDateWidgetSchema
}
}

View File

@ -94,19 +94,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
},
default: ''
},
declareResult: {
title: '申报结果',
type: 'string',
ui: {
placeholder: '请选择',
widget: 'dict-select',
params: { dictKey: 'service:type' },
containsAllLabel: true,
visibleIf: {
_$expand: (value: boolean) => value
}
}
},
overdueStatus: {
title: '是否逾期',
type: 'string',