121 lines
4.1 KiB
TypeScript
121 lines
4.1 KiB
TypeScript
import { SFComponent } from '@delon/form';
|
|
/*
|
|
* @Description :
|
|
* @Version : 1.0
|
|
* @Author : Shiming
|
|
* @Date : 2022-03-30 13:55:41
|
|
* @LastEditors : Shiming
|
|
* @LastEditTime : 2022-04-15 17:13:03
|
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\compliance\\customer\\customer.component.ts
|
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
|
*/
|
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
|
import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
|
|
import { SFSchema } from '@delon/form';
|
|
import { ModalHelper, _HttpClient ,DatePipe} from '@delon/theme';
|
|
import { DataService } from '../../../services/data.service';
|
|
import { differenceInCalendarDays } from 'date-fns';
|
|
|
|
@Component({
|
|
selector: 'app-datatable-compliance-customer',
|
|
templateUrl: './customer.component.html',
|
|
styleUrls: ['./customer.component.less'],
|
|
providers: [DatePipe]
|
|
|
|
})
|
|
export class DatatableComplianceCustomerComponent implements OnInit {
|
|
@ViewChild('sf', {static: false}) sf!: SFComponent
|
|
mode = 'year';
|
|
type = 1;
|
|
date: any = null;
|
|
defineDate = [];
|
|
time: any = ['2022']
|
|
dateFormat = 'yyyy';
|
|
dateNext: any = null;
|
|
modeNext = 'year';
|
|
timeNext: any = ['2022-01-01 00:00:00']
|
|
today = new Date();
|
|
searchSchema: SFSchema = {
|
|
properties: {
|
|
no: {
|
|
type: 'string',
|
|
title: '客户名称'
|
|
},
|
|
no2: {
|
|
type: 'string',
|
|
title: '业务员'
|
|
},
|
|
no3: {
|
|
type: 'string',
|
|
title: '合伙人名称'
|
|
},
|
|
}
|
|
};
|
|
@ViewChild('st') private readonly st!: STComponent;
|
|
columns: STColumn[] = [
|
|
{ title: '公司名称', index: 'enterpriseName' ,},
|
|
{ title: '注册时间', index: 'registerTime' },
|
|
{ title: '客户类型', width: '100px', index: 'customerType' },
|
|
{ title: '业务员', index: 'salesmanName' },
|
|
{ title: '合伙人', index: 'partnerName' },
|
|
{ title: '订单数', index: 'billCounts' },
|
|
{ title: '订单不合格数', index: 'billQuaCounts' },
|
|
{ title: '订单不合格率', index: 'billQuaCountsPer' },
|
|
{ title: '货源单订单数', index: 'gsourceCounts' },
|
|
{ title: '合同单数', index: 'billConCounts' },
|
|
{ title: '货源单个', index: 'gsourceCounts' },
|
|
{ title: '运费直付单数', index: 'freightDirPayCounts' },
|
|
{ title: '运费代收单数', index: 'freightRepPayCounts' },
|
|
{ title: '手机直付', index: 'updatedAt' },
|
|
{ title: '汇款单数', index: 'updatedAt' },
|
|
{ title: '及时付款', index: 'timelyPayPer' },
|
|
|
|
];
|
|
|
|
constructor(private http: _HttpClient, private modal: ModalHelper,public service: DataService,private datePipe: DatePipe) { }
|
|
/**
|
|
* 查询参数
|
|
*/
|
|
get reqParams() {
|
|
if (this.mode === 'year') {
|
|
this.type = 1
|
|
} else if (this.mode === 'month') {
|
|
this.type = 2
|
|
} else if (this.mode === 'date') {
|
|
this.type = 3
|
|
} else {
|
|
this.type = 4
|
|
}
|
|
const params: any = Object.assign({}, this.sf?.value || {});
|
|
params.type = this.type
|
|
params.queryTime = this.time
|
|
delete params._$expand;
|
|
return { ...params };
|
|
}
|
|
ngOnInit(): void { }
|
|
onChange(result: any) {
|
|
if (this.mode === 'year') {
|
|
this.time = [this.datePipe.transform(this.date, 'yyyy') + '-01-01 00:00:00']
|
|
} else if (this.mode === 'month') {
|
|
this.time = [this.datePipe.transform(this.date, 'yyyy-MM') + '-01 00:00:00']
|
|
} 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.st.reload({ ...this.reqParams });
|
|
}
|
|
changeData() {
|
|
if (this.mode === 'year') {
|
|
this.dateFormat = 'yyyy'
|
|
} else if (this.mode === 'month') {
|
|
this.dateFormat = 'yyyy-MM'
|
|
} else {
|
|
this.dateFormat = 'yyyy-MM-dd'
|
|
}
|
|
}
|
|
disabledDate = (current: Date): boolean =>
|
|
// Can not select days before today and today
|
|
differenceInCalendarDays(current, this.today) > 0;
|
|
}
|