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

This commit is contained in:
wangshiming
2022-04-24 15:58:08 +08:00
10 changed files with 168 additions and 69 deletions

View File

@ -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>

View File

@ -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'); // 自定义图例,移除默认的分类图例筛选交互

View File

@ -19,7 +19,7 @@ import { OrderManagementService } from '../../services/order-management.service'
@Component({ @Component({
selector: 'app-supply-management-vehicle', selector: 'app-supply-management-vehicle',
templateUrl: './vehicle.component.html', templateUrl: './vehicle.component.html',
styleUrls: ['../../../commom/less/commom-table.less','./vehicle.component.less'] styleUrls: ['../../../commom/less/commom-table.less', './vehicle.component.less']
}) })
export class OrderManagementVehicleComponent extends BasicTableComponent implements OnInit { export class OrderManagementVehicleComponent extends BasicTableComponent implements OnInit {
ui: SFUISchema = {}; ui: SFUISchema = {};
@ -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'] }
}, },
{ {
@ -585,8 +587,8 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
/** /**
* 导入货源 * 导入货源
*/ */
importGoodsSource() {} importGoodsSource() { }
audit(item: any) {} audit(item: any) { }
/* /*
* 审核关闭弹窗 * 审核关闭弹窗

View File

@ -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] || ''
} }
}); });
} }

View File

@ -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: ''
} }

View File

@ -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()
} }
} }
} }

View File

@ -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: ''
} }
} }
}; };

View File

@ -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

View File

@ -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;
}