Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -1,5 +1,3 @@
|
|||||||
<!-- 页头 -->
|
|
||||||
<page-header-wrapper [title]="'数据报表'"></page-header-wrapper>
|
|
||||||
<div nz-row [nzGutter]="16">
|
<div nz-row [nzGutter]="16">
|
||||||
<div nz-col class="gutter-row" [nzSpan]="6">
|
<div nz-col class="gutter-row" [nzSpan]="6">
|
||||||
<g2-card [title]="AdvanceDepositTitle" [bordered]="true" [total]="totalAdvanceDeposit?.totalAmount || '¥ 0.00万'"
|
<g2-card [title]="AdvanceDepositTitle" [bordered]="true" [total]="totalAdvanceDeposit?.totalAmount || '¥ 0.00万'"
|
||||||
@ -11,9 +9,10 @@
|
|||||||
</p>
|
</p>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template #AdvanceDepositFooter>
|
<ng-template #AdvanceDepositFooter>
|
||||||
<g2-mini-area line color="#cceafe" height="45" [data]="totalAdvanceDeposit?.list || []"
|
<g2-custom #AdvanceDeposit delay="100"></g2-custom>
|
||||||
|
<!-- <g2-mini-area line color="#cceafe" height="45" [data]="totalAdvanceDeposit?.list || []"
|
||||||
(clickItem)="handleClick($event)">
|
(clickItem)="handleClick($event)">
|
||||||
</g2-mini-area>
|
</g2-mini-area> -->
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</g2-card>
|
</g2-card>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import { GeometryLabelCfg } from '@antv/g2/lib/interface';
|
|||||||
providers: [CurrencyPipe]
|
providers: [CurrencyPipe]
|
||||||
})
|
})
|
||||||
export class DatatableDataindexComponent implements OnInit {
|
export class DatatableDataindexComponent implements OnInit {
|
||||||
|
@ViewChild('AdvanceDeposit', { static: false }) AdvanceDeposit!: G2CustomComponent;
|
||||||
@ViewChild('g2custom', { static: false }) g2custom!: G2CustomComponent;
|
@ViewChild('g2custom', { static: false }) g2custom!: G2CustomComponent;
|
||||||
@ViewChild('RegionalPerforman', { static: false }) RegionalPerforman!: G2CustomComponent;
|
@ViewChild('RegionalPerforman', { static: false }) RegionalPerforman!: G2CustomComponent;
|
||||||
@ViewChild('BillDirectProportion', { static: false }) BillDirectProportion!: G2CustomComponent;
|
@ViewChild('BillDirectProportion', { static: false }) BillDirectProportion!: G2CustomComponent;
|
||||||
@ -49,6 +50,7 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
this.service.request(this.service.$api_total_advance_deposit).subscribe((res: DataTotalVO) => {
|
this.service.request(this.service.$api_total_advance_deposit).subscribe((res: DataTotalVO) => {
|
||||||
if (res) {
|
if (res) {
|
||||||
this.totalAdvanceDeposit = this.formatMiniAreaData(res);
|
this.totalAdvanceDeposit = this.formatMiniAreaData(res);
|
||||||
|
this.initAreaMap(this.AdvanceDeposit['el'].nativeElement as any, []);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 业绩量总额
|
// 业绩量总额
|
||||||
@ -179,7 +181,7 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
.style({
|
.style({
|
||||||
fillOpacity: 1,
|
fillOpacity: 1,
|
||||||
stroke: 'white',
|
stroke: 'white',
|
||||||
lineWidth: 8
|
lineWidth: 4
|
||||||
})
|
})
|
||||||
.state({
|
.state({
|
||||||
active: {
|
active: {
|
||||||
@ -294,42 +296,57 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
* @param el
|
* @param el
|
||||||
*/
|
*/
|
||||||
private initAreaMap(el: HTMLElement, datas: any[]): void {
|
private initAreaMap(el: HTMLElement, datas: any[]): void {
|
||||||
|
const data = [
|
||||||
|
{ city: '冰岛(雷克雅未克)', type: '首都人口', value: 0.56 },
|
||||||
|
{ city: '冰岛(雷克雅未克)', type: '城市人口', value: 0.38 }
|
||||||
|
];
|
||||||
|
|
||||||
const chart = new Chart({
|
const chart = new Chart({
|
||||||
container: el,
|
container: el,
|
||||||
autoFit: true,
|
autoFit: true,
|
||||||
height: 500
|
height: 45
|
||||||
});
|
});
|
||||||
chart.data(datas);
|
chart.data(data);
|
||||||
chart.scale('Data', {
|
chart.legend(false);
|
||||||
range: [0, 1],
|
chart.axis('city', false);
|
||||||
tickCount: 10,
|
chart.axis('value', {
|
||||||
type: 'timeCat'
|
label: {
|
||||||
|
formatter: val => val
|
||||||
|
},
|
||||||
|
title: null,
|
||||||
|
grid: null
|
||||||
});
|
});
|
||||||
chart.scale('sales', {
|
chart.coordinate('rect').transpose();
|
||||||
nice: true
|
|
||||||
});
|
|
||||||
chart.axis('Data', false);
|
|
||||||
chart.axis('sales', false);
|
|
||||||
chart.tooltip({
|
chart.tooltip({
|
||||||
showCrosshairs: true
|
customItems: items => {
|
||||||
|
return [];
|
||||||
|
},
|
||||||
|
showContent: true,
|
||||||
|
title: '1,968.08万'
|
||||||
|
});
|
||||||
|
chart.interaction('active-region');
|
||||||
|
chart
|
||||||
|
.interval()
|
||||||
|
.adjust('stack')
|
||||||
|
.position('city*value')
|
||||||
|
.color('type*city', (type: any, city: any) => {
|
||||||
|
if (type === '首都人口') {
|
||||||
|
return '#E60012';
|
||||||
|
}
|
||||||
|
if (type === '城市人口') {
|
||||||
|
return '#EAEAEB';
|
||||||
|
}
|
||||||
|
return '#EAEAEB';
|
||||||
|
})
|
||||||
|
.style('type', (type: any, city: any) => {
|
||||||
|
if (type === '首都人口') {
|
||||||
|
return { radius: [0, 0, 20, 20] };
|
||||||
|
}
|
||||||
|
if (type === '城市人口') {
|
||||||
|
return { radius: [20, 20, 0, 0] };
|
||||||
|
}
|
||||||
|
return {};
|
||||||
});
|
});
|
||||||
|
|
||||||
// chart.annotation().dataMarker({
|
|
||||||
// position: ['2014-01', 1750],
|
|
||||||
// top: true,
|
|
||||||
// text: {
|
|
||||||
// content: '因政策调整导致销量下滑',
|
|
||||||
// style: {
|
|
||||||
// fontSize: 13
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// line: {
|
|
||||||
// length: 30
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
chart.line().position('Data*sales');
|
|
||||||
chart.area().position('Data*sales');
|
|
||||||
chart.render();
|
chart.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -409,7 +426,7 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
chart.data(data);
|
chart.data(data);
|
||||||
// 设置坐标轴
|
// 设置坐标轴
|
||||||
chart.scale({
|
chart.scale({
|
||||||
y1: { alias: y1Title, min: 0, max: 1000000 },
|
y1: { alias: y1Title, min: 0, max: 2000000000 },
|
||||||
y2: { alias: y2Title, min: 0, max: 1, formatter: val => (val * 100).toFixed(0) + '%' },
|
y2: { alias: y2Title, min: 0, max: 1, formatter: val => (val * 100).toFixed(0) + '%' },
|
||||||
y3: { alias: y3Title, min: 0, max: 1, formatter: val => (val * 100).toFixed(0) + '%' }
|
y3: { alias: y3Title, min: 0, max: 1, formatter: val => (val * 100).toFixed(0) + '%' }
|
||||||
});
|
});
|
||||||
@ -420,8 +437,8 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
padding: [10, 0, 40, 0],
|
padding: [10, 0, 40, 0],
|
||||||
items: [
|
items: [
|
||||||
{ value: 'y1', name: y1Title, marker: { symbol: 'circle', style: { fill: '#E60012', r: 5, fontSize: 13 } } },
|
{ value: 'y1', name: y1Title, marker: { symbol: 'circle', style: { fill: '#E60012', r: 5, fontSize: 13 } } },
|
||||||
{ value: 'y3', name: y3Title, marker: { symbol: 'circle', style: { fill: '#6CBFFF', r: 5, fontSize: 13 } } },
|
{ value: 'y2', name: y2Title, marker: { symbol: 'circle', style: { fill: '#FE7823', r: 5, fontSize: 13 } } },
|
||||||
{ value: 'y2', name: y2Title, marker: { symbol: 'circle', style: { fill: '#50D4AB', r: 5, fontSize: 13 } } }
|
{ value: 'y3', name: y3Title, marker: { symbol: 'circle', style: { fill: '#F7CFCE', r: 5, fontSize: 13 } } }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
chart.axis('y2', {
|
chart.axis('y2', {
|
||||||
@ -440,16 +457,16 @@ export class DatatableDataindexComponent implements OnInit {
|
|||||||
.line()
|
.line()
|
||||||
.position('x*y2')
|
.position('x*y2')
|
||||||
// .label('pre', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
// .label('pre', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
||||||
.color('#6CBFFF')
|
.color('#F7CFCE')
|
||||||
.size(3);
|
.size(3);
|
||||||
chart.point().position('x*y2').color('#6CBFFF').size(3).shape('circle');
|
chart.point().position('x*y2').color('#F7CFCE').size(3).shape('circle');
|
||||||
chart
|
chart
|
||||||
.line()
|
.line()
|
||||||
.position('x*y3')
|
.position('x*y3')
|
||||||
// .label('pre2', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
// .label('pre2', val => ({ content: (val * 100).toFixed(0) + '%' }))
|
||||||
.color('#50D4AB')
|
.color('#FE7823')
|
||||||
.size(3);
|
.size(3);
|
||||||
chart.point().position('x*y3').color('#50D4AB').size(3).shape('circle');
|
chart.point().position('x*y3').color('#FE7823').size(3).shape('circle');
|
||||||
|
|
||||||
chart.interaction('active-region');
|
chart.interaction('active-region');
|
||||||
chart.removeInteraction('legend-filter'); // 自定义图例,移除默认的分类图例筛选交互
|
chart.removeInteraction('legend-filter'); // 自定义图例,移除默认的分类图例筛选交互
|
||||||
|
|||||||
@ -416,11 +416,13 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
|||||||
text: '运费变更记录',
|
text: '运费变更记录',
|
||||||
click: _record => this.OpenPrice(_record),
|
click: _record => this.OpenPrice(_record),
|
||||||
iif: item =>
|
iif: item =>
|
||||||
|
item.billType !== '3' && (
|
||||||
item.billStatus == '4' ||
|
item.billStatus == '4' ||
|
||||||
item.billStatus == '5' ||
|
item.billStatus == '5' ||
|
||||||
item.billStatus == '2' ||
|
item.billStatus == '2' ||
|
||||||
item.billStatus == '3' ||
|
item.billStatus == '3' ||
|
||||||
item.billStatus == '6',
|
item.billStatus == '6'
|
||||||
|
),
|
||||||
acl: { ability: ['ORDER-VEHICLE-ChangeApplyList'] }
|
acl: { ability: ['ORDER-VEHICLE-ChangeApplyList'] }
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
@ -439,7 +441,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
|||||||
{
|
{
|
||||||
text: '变更运费',
|
text: '变更运费',
|
||||||
click: _record => this.updateFreight(_record),
|
click: _record => this.updateFreight(_record),
|
||||||
iif: item => item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus != '2',
|
iif: item => item.billType !== '3' && item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus != '2',
|
||||||
acl: { ability: ['ORDER-VEHICLE-FreightChangeWholeDetail'] }
|
acl: { ability: ['ORDER-VEHICLE-FreightChangeWholeDetail'] }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -28,7 +28,7 @@ export class ExpressInfoComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
createTime: {
|
createTime: {
|
||||||
title: '创建时间',
|
title: '下单时间',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'sl-from-to-search',
|
widget: 'sl-from-to-search',
|
||||||
@ -87,9 +87,9 @@ export class ExpressInfoComponent implements OnInit {
|
|||||||
if (this.sf) {
|
if (this.sf) {
|
||||||
Object.assign(requestOptions.body, {
|
Object.assign(requestOptions.body, {
|
||||||
...this.sf.value,
|
...this.sf.value,
|
||||||
createtime: {
|
createTime: {
|
||||||
start: this.sf.value.createtime?.[0] || null,
|
start: this.sf.value.createTime?.[0] || '',
|
||||||
end: this.sf.value.createtime?.[1] || null
|
end: this.sf.value.createTime?.[1] || ''
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -172,9 +172,15 @@ export class InvoiceDetailComponent implements OnInit {
|
|||||||
title: '所属项目',
|
title: '所属项目',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'select',
|
widget: 'select',
|
||||||
placeholder: '请选择',
|
serverSearch: true,
|
||||||
|
searchDebounceTime: 300,
|
||||||
|
searchLoadingText: '搜索中...',
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
asyncData: () => this.service.getEnterpriseProject({ id: this.ltdId })
|
onSearch: (q: any) => this.service.getProjectList({ projectName: q, enterpriseId: this.headerInfo?.shipperId })
|
||||||
|
// widget: 'select',
|
||||||
|
// placeholder: '请选择',
|
||||||
|
// allowClear: true,
|
||||||
|
// asyncData: () => this.service.getEnterpriseProject({ id: this.ltdId })
|
||||||
},
|
},
|
||||||
default: ''
|
default: ''
|
||||||
}
|
}
|
||||||
|
|||||||
@ -284,10 +284,14 @@ export class InvoiceRequestedDetailComponent implements OnInit {
|
|||||||
default: '',
|
default: '',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'select',
|
widget: 'select',
|
||||||
|
serverSearch: true,
|
||||||
|
searchDebounceTime: 300,
|
||||||
|
searchLoadingText: '搜索中...',
|
||||||
|
allowClear: true,
|
||||||
|
onSearch: (q: any) => this.service.getProjectList({ projectName: q, enterpriseId: this.headerInfo?.shipperId }),
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
expand: (value: boolean) => value
|
expand: (value: boolean) => value
|
||||||
},
|
}
|
||||||
asyncData: () => this.service.getEnterpriseProject()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -258,6 +258,22 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
expand: (value: boolean) => value
|
expand: (value: boolean) => value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
invoicetype: {
|
||||||
|
type: 'string',
|
||||||
|
title: '发票类型',
|
||||||
|
enum: [
|
||||||
|
{ value: '', label: '全部' },
|
||||||
|
{ value: '1', label: '运输专用发票' }
|
||||||
|
],
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
},
|
||||||
|
default: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -26,6 +26,8 @@ export class ShipperBaseService extends BaseService {
|
|||||||
|
|
||||||
// 获取货主企业列表
|
// 获取货主企业列表
|
||||||
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
|
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
|
||||||
|
// 批量获取项目信息
|
||||||
|
public $api_get_project_list = '/api/mdc/cuc/enterpriseProject/getProjectList';
|
||||||
constructor(public injector: Injector) {
|
constructor(public injector: Injector) {
|
||||||
super(injector);
|
super(injector);
|
||||||
}
|
}
|
||||||
@ -247,6 +249,35 @@ export class ShipperBaseService extends BaseService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量获取项目信息
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
getProjectList(params = { projectName: '', enterpriseId: '' }, containerAll = false) {
|
||||||
|
let str = params.projectName.replace(/^\s+|\s+$/g, '');
|
||||||
|
if (str) {
|
||||||
|
return this.request(this.$api_get_project_list, params)
|
||||||
|
.pipe(
|
||||||
|
map((res: any) => {
|
||||||
|
if (!res) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
const list = res.map((item: any) => {
|
||||||
|
return { label: item.projectName, value: item.id };
|
||||||
|
});
|
||||||
|
const obj = [];
|
||||||
|
if (containerAll) {
|
||||||
|
obj.push({ label: '全部', value: '' });
|
||||||
|
}
|
||||||
|
return [...obj, ...list];
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.toPromise();
|
||||||
|
} else {
|
||||||
|
return of([]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取结算客户
|
* 获取结算客户
|
||||||
* @returns
|
* @returns
|
||||||
|
|||||||
@ -110,3 +110,27 @@ h2 {
|
|||||||
margin : 0 0 0 16px !important;
|
margin : 0 0 0 16px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mini_area_title {
|
||||||
|
margin-bottom: 0px !important;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 13px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle {
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.g2-card__meta-wrap {
|
||||||
|
|
||||||
|
.g2-card__total {
|
||||||
|
font-size : 24px !important;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.g2-card__footer {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user