import { data } from './../../treetable/treetable-demo.data';
import { Component, OnInit, ViewEncapsulation, Renderer2, ViewChild } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/delay';
import { DataTableComponent } from '@farris/ui-datatable';
@Component({
// tslint:disable-next-line:component-selector
selector: 'selector-name',
templateUrl: 'datatable-demo.component.html',
styles: [
`
.age-bg{
background:blue;
}
.bg-orange{
background:orange;
}
.row-2{
background:green;
}
h3{
color:#1890ff;
}
`
],
encapsulation: ViewEncapsulation.None
})
export class DataTableDemoComponent implements OnInit {
@ViewChild('farrisDatatable') farrisDatatable: DataTableComponent;
current: Date = new Date();
columns = [
{
title: '编号', field: 'Code', width: 60, align: 'center'
// 添加列样式
},
// { title: '姓名', field: 'Name', width: 80, fixed: { type: 'left', media: 'md' } },
{ title: '姓名', field: 'Name', width: 80, sortable: true },
{ title: '年龄', field: 'Age', width: 90, sortable: true },
// { title: '年龄', field: 'Age', width: 90, sortable: true, className: 'table-success' },
{ title: '出生日期', field: 'birthday', width: 140 },
{ title: '身份证号', field: 'idcode', width: 120 },
{ title: '邮编', field: 'postcode', width: 120 },
{ title: '地址', field: 'address', width: 200 }
];
columns1 = [
{
title: '编号', field: 'Code', width: 60, align: 'center', fixed: 'left'
// 添加列样式
},
{ title: '姓名', field: 'Name', width: 80, fixed: { type: 'left', media: 'md' } },
{ title: '年龄', field: 'Age', width: 90 , sortable: true},
// { title: '年龄', field: 'Age', width: 90, sortable: true, className: 'table-success' },
{ title: '出生日期', field: 'birthday', width: 140 , sortable: true},
{ title: '身份证号', field: 'idcode', width: 120 },
{ title: '邮编', field: 'postcode', width: 120 },
{ title: '地址', field: 'address', width: 200, fixed: 'right' }
];
columns2 = [
{
title: '编号', field: 'Code', width: 80, align: 'center'
// 添加列样式
},
{ title: '姓名', field: 'Name', width: 80, media: { md: 'none', lg: 'cell' } },
{ title: '年龄', field: 'Age', width: 90 },
{ title: '出生日期', field: 'birthday', width: 140 },
{ title: '身份证号', field: 'idcode', width: 120 },
{ title: '邮编', field: 'postcode', width: 120 },
{ title: '地址', field: 'address', width: 200 }
];
columnsSort = [
{
title: '编号', field: 'Code', width: 80, align: 'center', sortable: true, filterable: true
// 添加列样式
},
{
title: '姓名', field: 'Name', width: 80, media: { md: 'none', lg: 'cell' },
multipleFilter: true,
filter: [
{
label: '互联网1',
value: 1
},
{
label: '互联网',
value: 2
}
],
filterMethod: (value, row) => {
return row.Name.indexOf(value) > -1;
}
},
{
title: '年龄', field: 'Age', width: 90, sortable: true,
multipleFilter: false,
filter: [
{
label: '所有',
value: 0
},
{
label: '大于25岁',
value: 1
},
{
label: '小于25岁',
value: 2
}
],
filterMethod: (value, row) => {
if (value === 1) {
return row.Age > 25;
} else if (value === 2) {
return row.Age < 25;
} else {
return row.Age > -1;
}
}
},
{
title: '出生日期', field: 'birthday', width: 140
},
{ title: '身份证号', field: 'idcode', width: 120 },
{ title: '邮编', field: 'postcode', width: 120 },
{ title: '地址', field: 'address', width: 200 }
];
data = [
{
Code: 1, Name: '珠港澳
', Age: 20, birthday: '1998-05-06', idcode: '没有权限查看', postcode: '05310000',
address: '地球', correct: false
},
{ Code: 2, Name: '珠港澳1', Age: 21, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 3, Name: '珠港澳2', Age: 22, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 4, Name: '珠港澳3', Age: 23, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 5, Name: '珠港澳4', Age: 24, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 6, Name: '珠港澳5', Age: 25, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 7, Name: '珠港澳6', Age: 26, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false }
];
dataSort = [
{ Code: 14, Name: '互联网13', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 15, Name: '互联网14', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 16, Name: '互联网15', Age: 29, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 17, Name: '互联网16', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 18, Name: '互联网17', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 19, Name: '互联网18', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false }
];
dataEdit = [
{ Code: 14, Name: '可编辑13', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 15, Name: '可编辑14', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 16, Name: '可编辑15', Age: 29, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 17, Name: '可编辑16', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 18, Name: '可编辑17', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 19, Name: '可编辑18', Age: 20, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
{ Code: 20, Name: '可编辑19', Age: 29, birthday: '1998-5-6', idcode: '没有权限查看', postcode: '05310000', address: '地球', correct: false },
];
data2 = [];
total;
pIndex = 1;
pSzie = 20;
constructor() {
}
ngOnInit() {
this.getPage({ pageInfo: { pageIndex: this.pIndex, pageSize: this.pSzie } });
}
serverCall(meals: any[], page: number, pageSize = 10, searchData?: any): Observable {
const perPage = pageSize;
const start = (page - 1) * perPage;
const end = start + perPage;
if (searchData && searchData.value) {
meals = meals.filter(item => {
if (item[searchData.field].indexOf(searchData.value) > -1) {
return item;
}
});
}
const total = meals.length;
return of({
items: meals.slice(start, end),
total
}).delay(1000);
}
getPage(e: any) {
// this.loading = true;
this.serverCall(this.data, e.pageInfo.pageIndex, e.pageInfo.pageSize, e.search)
.do(res => {
this.total = res.total;
this.pIndex = e.pageInfo.pageIndex;
this.pSzie = e.pageInfo.pageSize;
// this.loading = false;
})
.map(res => res.items).subscribe(d => {
this.data2 = d;
});
}
search(searchData: any) {
this.getPage({ pageInfo: { pageIndex: 1, pageSize: this.pSzie }, search: searchData });
}
// 设置行类样式
getRowClassName(row, index) {
if (index === 2) {
return 'table-primary';
} else if (index === 5) {
return 'table-danger';
}
return '';
}
// 设置单元格类样式 或者列样式
getCellClassName(value, col) {
if (col.field === 'Code') {
return value === 4 ? 'bg-warning' : '';
} else if (col.field === 'Name') {
return 'row-2';
}
}
sortChange(e) {
}
cellClick(e) {
if (!e.isEdit) {
e.sender.editGrid(e.rowIndex, e.columnIndex);
}
}
add() {
}
selectRow($event) {
}
addRows() {
this.farrisDatatable.addRows([{
Code: 20, Name: '可编辑19', Age: 29, birthday: '1998-5-6', idcode: '没有权限查看',
postcode: '05310000', address: '地球', correct: false
}]);
}
removeRows() {
this.farrisDatatable.removeRows();
}
}