ng-ytl-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
88 lines (80 loc) • 2.92 kB
text/typescript
import { Component, OnInit } from '@angular/core';
export class NzDemoTableSelectionAndOperationComponent implements OnInit {
_allChecked = false;
_disabledButton = true;
_checkedNumber = 0;
_displayData: Array<any> = [];
_operating = false;
_dataSet = [];
_indeterminate = false;
_displayDataChange($event) {
this._displayData = $event;
}
_refreshStatus() {
const allChecked = this._displayData.every(value => value.checked === true);
const allUnChecked = this._displayData.every(value => !value.checked);
this._allChecked = allChecked;
this._indeterminate = (!allChecked) && (!allUnChecked);
this._disabledButton = !this._dataSet.some(value => value.checked);
this._checkedNumber = this._dataSet.filter(value => value.checked).length;
}
_checkAll(value) {
if (value) {
this._displayData.forEach(data => data.checked = true);
} else {
this._displayData.forEach(data => data.checked = false);
}
this._refreshStatus();
}
_operateData() {
this._operating = true;
setTimeout(_ => {
this._dataSet.forEach(value => value.checked = false);
this._refreshStatus();
this._operating = false;
}, 1000);
}
ngOnInit() {
for (let i = 0; i < 46; i++) {
this._dataSet.push({
key : i,
name : `Edward King ${i}`,
age : 32,
address: `London, Park Lane no. ${i}`,
});
}
}
}