Files
bbq/src/app/routes/usercenter/components/freight/freight-config/freight-config.component.ts
Taric Xin 7cbc7b1b2e edit
2022-02-23 15:12:42 +08:00

167 lines
4.4 KiB
TypeScript

import { Component, OnInit, ViewChild } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { STColumn, STComponent, STRequestOptions, STData } from '@delon/abc/st';
import { SFUISchema, SFSchema, SFComponent } from '@delon/form';
import { ShipperBaseService, DynamicSettingModalComponent } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component';
import { UsermanageService } from '../../../services/usercenter.service';
@Component({
selector: 'app-freight-config',
templateUrl: './freight-config.component.html',
styleUrls: ['../../../../commom/less/box.less']
})
export class FreightConfigComponent implements OnInit {
schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST();
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor(public service: UsermanageService, private modal: NzModalService, public shipperservice: ShipperBaseService) {}
ngOnInit() {
this.initST();
}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, { listSource: 1 });
if (this.sf) {
Object.assign(requestOptions.body, {
...this.sf.value
});
}
return requestOptions;
};
settingAction(item?: any) {
const modal = this.modal.create({
nzTitle: '配置',
nzContent: DynamicSettingModalComponent,
nzWidth: 900,
nzComponentParams: {
extendType: '2',
businessId: item.id,
formatTypeList: (item: any[]) => [
...item,
// {
// name: '权限配置',
// items: [
// {
// configType: 1,
// itemType: 999
// }
// ]
// },
{
name: '费率变更记录',
items: [
{
configType: 2,
itemType: 999
}
]
}
]
},
nzFooter: null
});
modal.afterClose.subscribe(res => {
if (res) {
this.st.load(1);
}
});
}
exportList() {
const params = {};
if (this.sf) {
Object.assign(params, {
...this.sf.value
});
}
this.service.downloadFile(this.service.$api_export_enterprise, params);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this.st.reload();
}
private initSF(): SFSchema {
return {
properties: {
enterpriseName: {
title: '企业名称',
type: 'string',
ui: {
placeholder: '请输入',
showRequired: false
}
},
networkTransporter: {
type: 'string',
title: '网络货运人',
ui: {
widget: 'select',
placeholder: '请选择',
allowClear: true,
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
}
}
}
};
}
initST(): STColumn[] {
return [
{ title: '企业名称', className: 'text-center', index: 'enterpriseName', width: 160 },
{ title: '网络货运人', className: 'text-center', index: 'netTranName', width: 160 },
{
title: '合同单费率',
className: 'text-right',
index: 'contractSurchargeRatio',
width: 140,
format: item => `${item.contractSurchargeRatio}%`
},
{
title: '货源单费率',
className: 'text-right',
index: 'goodsSurchargeRatio',
width: 140,
format: item => `${item.goodsSurchargeRatio}%`
},
{
title: '合同单业务量(元)',
index: 'contractQuota',
width: 100,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) }
},
{
title: '货源单业务量(元)',
index: 'goodsQuota',
width: 100,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.goodsQuota }) }
},
{
title: '操作',
width: '110px',
className: 'text-center',
buttons: [
{
text: '配置',
click: item => this.settingAction(item)
}
]
}
];
}
}