import {Component, OnInit} from '@angular/core';
import * as _ from 'lodash';
@Component({
template: `
{{data.d.No}}
{{data.d.name}}
操作
`,
styles: [``]
})
export class BlankTableNewComponent implements OnInit {
pager;
filter;
sorter;
tableData = [];
tableOptions = {
// maxHeight: '200px', // 表格内容最大高度
// minHeight: '100px', // 表格内容最小高度
checkbox: true, // 表格是否支持复选框
loading: true, // 表格是否有loading状态,自己赋值为false取消loading
multiple: true, // 表格复选框是否支持多选
showIndex: true, // 是否显示序号列
keyId: 'id', // 默认为ID,对比数据的key值
};
headerConfig = [
{
field: 'No', // 显示字段
title: '编号', // 表头显示
// canSort: true, // 是否可排序
// defaultSort: 'asc', // 默认排序方式 asc|desc
width: '100px', // 单元格宽度
filter: { // 过滤配置
type: 'text', // 过滤类型 text | checkList | date
// defaultText: 'aaaa', // 过滤框默认显示的问题
// showFilterDrop: true, // 是否默认显示该字段的过滤框
offset: 'right', // 过滤框偏移方向,右
fn: (filter) => { // 过滤回调方法
if (filter || this.filter['No']) { // 该判断必须存在,否则IE会点开就调用
this.filterEvent('No', filter);
}
},
// placeholder: '自定义配置', // type为text的时候,该配置为input的placeholder值
},
}, {
field: 'name', // 显示字段
title: '名称', // 表头显示
// canSort: true, // 是否可排序
// defaultSort: 'asc', // 默认排序方式 asc|desc
width: '100px', // 单元格宽度
flex: 1, // 是否自适应宽,值为自适应宽的比例
filter: { // 过滤配置
type: 'text', // 过滤类型 text | checkList | date
// defaultText: 'aaaa', // 过滤框默认显示的问题
// showFilterDrop: true, // 是否默认显示该字段的过滤框
offset: 'left', // 过滤框偏移方向,右
fn: (filter) => { // 过滤回调方法
if (filter || this.filter['name']) { // 该判断必须存在,否则IE会点开就调用
this.filterEvent('name', filter);
}
},
// placeholder: '自定义配置', // type为text的时候,该配置为input的placeholder值
},
}, {
field: 'action', // 显示字段
title: '操作', // 表头显示
width: '150px', // 单元格宽度
}
];
constructor() {
}
ngOnInit() {
this.initFilter();
this.initSorter();
this.initPager();
}
// 初始化分页
initPager() {
this.pager = {
limit: 5,
page: 1,
total: 0
};
}
// 初始化过滤条件
initFilter() {
this.filter = {};
/**
* fitler = {
* description: 'string',
* currentFlow: '1,2,3',
* applicant: 'string'
* }
*/
}
// 初始化排序条件
initSorter() {
this.sorter = {};
/**
* sorter = {
* orderBy: 'key',
* sort: 'asc' | 'desc'
* }
*/
}
// 组合参数
// 如果有自身的其他参数,参考filter,pager,sorter
groupParams() {
const params = {};
_.assign(params, this.pager, this.filter, this.sorter);
return params;
}
filterEvent(key, val) {
this.initPager();
if (!val) {
delete this.filter[key];
} else {
this.filter[key] = val;
}
this.getData();
}
// 切换页码
nowPageChange(ev) {
this.pager.page = ev;
this.getData();
}
// 列表排序
sortEvent(ev) {
this.sorter = {
orderBy: ev.field,
sort: ev.sort,
};
this.getData();
}
getData() {
// 参数为: this.groupParams()
this.tableData = [{
No: 'xx1',
name: 'name1'
}, {
No: 'xx2',
name: 'name2'
}];
}
}