UNPKG

bixi

Version:

企业级中后台前端解决方案

56 lines (50 loc) 1.59 kB
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { IOperationsColBtn, IRow } from '../table.type'; @Component({ selector: 'bixi-table-operations-group', template: ` <li *ngIf="visibleNoChildren" nz-tooltip nz-menu-item [nzTooltipTitle]="operationGroup.tooltip" [nzDisabled]="operationGroup.disabled" (click)="onClick()" > {{ operationGroup.name }} </li> <li *ngIf="visibleHasChildren" nz-tooltip nz-submenu [nzTooltipTitle]="operationGroup.tooltip" [nzDisabled]="operationGroup.disabled" [nzTitle]="operationGroup.name" (click)="onClick()" > <ul> <ng-container *ngFor="let item of operationGroup.children"> <bixi-table-operations-group [operationGroup]="item" [row]="row" [rowIndex]="rowIndex"></bixi-table-operations-group> </ng-container> </ul> </li> `, changeDetection: ChangeDetectionStrategy.OnPush }) export class BixiOperationsGroupComponent { @Input() operationGroup: IOperationsColBtn; @Input() rowIndex: number; @Input() row: IRow; onClick() { if (!this.operationGroup.disabled && this.operationGroup.onClick) this.operationGroup.onClick(this.row, this.rowIndex); } get visibleNoChildren() { return !this.hasChildren() && this.operationGroup.visible; } get visibleHasChildren() { return this.hasChildren() && this.operationGroup.visible; } private hasChildren() { return this.operationGroup.children && this.operationGroup.children.length > 0; } }