/*** * @file:列表基础 * @author: linkun.he * @Date: 2019-06-03 10:29:27 */ import { Injector, OnInit } from '@angular/core'; import { Subscription } from 'rxjs'; import { PermissionsService, SettingsService, TenantService } from '@ithinkdt/shared/browser'; import { ConfirmService } from '@ithinkdt/shared/confirm'; import { I18NService } from '@ithinkdt/shared/i18n'; import { DtMessageService } from '@ithinkdt/shared/message'; import { NzModalService } from 'ng-zorro-antd/modal'; import { DataSet, Sort, TableParam } from './table.interface'; import { TableService } from './table.service'; export declare abstract class BaseTablePage implements OnInit { inj: Injector; oprCodes: any; isLoading: boolean; allChecked: boolean; indeterminate: boolean; radioChooseData: any; radioChooseByKey: string; sortparam: Sort; paginationParam: TableParam; searchParam: object; tableData: any[]; tableDataTotal: string | number; deleteKey: string; deleteConfirmSub: Subscription; pageService: any; isEqual: any; readonly multiTenantMode: boolean; readonly isPlatformAdmin: boolean; protected i18nSrv: I18NService; protected tableSrv: TableService; protected modalSrv: NzModalService; protected messageSrv: DtMessageService; protected confirmSrv: ConfirmService; protected settingsSrv: SettingsService; protected permissionsSrv: PermissionsService; protected TenantSrv: TenantService; constructor(inj: Injector); ngOnInit(): void; getTableData(): void; /** * @todo 表格请求方法 * @param data 根据请求获得的数据,填充表格内容 */ setTableData(res: DataSet): void; /** * @todo 搜索 * @param data 搜索表单的数据 */ search(data?: any): void; /** * 切换页码 * @param index 当前的页码数 */ pageIndexChange(index: number): void; /** * @todo 切换每页显示个数 * @param size 分页中页面显示个数 */ pageSizeChange(size: number): void; /** * @todo 排序 * @param sort 固定写法 * key {string} 排序的键 * value {string} 排序规则 */ sort(sort: { key: string; value: string; }): void; refreshStatus(): void; resetTemp(): void; resetTable(): void; /** * 表单全选或者全不选,更改表格行数据的被选状态 * @param value 当前选择状态 */ checkAll(value: boolean): void; radioChooseChange(newChoosedData: any): void; /******************************************************************************** * * 以下方法为预留方法,若base-table提供的方法不足以满足需求,可在子类中覆盖如下方法。 * 在覆盖的方法中,返回true则其他方法也会执行,返回false则只会执行覆盖的方法。 * * 如: * 在子类只能中实现了`setTableDataReserved`方法并返回了false,则`setTableData()` * 方法里面的其他js不会执行,只执行定义的`setTableDataReserved`方法。 * ********************************************************************************/ /*** * @todo 请求表格数据方法预留 * @desc 开发者可覆盖此方法实现自定义, 若返回false则不调用自带的处理方法 setTableData */ ngOnInitReserved(): boolean; setTableDataReserved(res: DataSet): boolean; /*** * @todo 搜索预留 * @desc 开发者可调用此方法实现自定义, 若返回false则不调用自带的处理方法 search */ searchReserved(data: object): boolean; /** * @todo 切换页码预留 * @desc 开发者可调用此方法实现自定义, 若返回false则不调用自带的处理方法 pageIndexChange */ pageIndexChangeReserved(index: number): boolean; /** * @todo 切换每页显示个数预留 * @desc 开发者可调用此方法实现自定义, 若返回false则不调用自带的处理方法 pageSizeChange */ pageSizeChangeReserved(size: number): boolean; /** * @todo 排序预留 * @desc 开发者可调用此方法实现自定义, 若返回false则不调用自带的处理方法 sort */ sortReserved(sort: { key: string; value: string; }): boolean; /** * @todo 表单全选或者全不选 预留 * @desc 开发者可调用此方法实现自定义, 若返回false则不调用自带的处理方法 sort */ checkAllReserved(value: boolean): boolean; /******************************************************************************** * * 一些操作 * ********************************************************************************/ /** * 单个删除 * this.deleteKey: 删除时传递到后端的键 * @param id 被删除用户id或者其他标志 */ delete(id: any): void; /** * 多个删除 * @param key 从表格数据中要取值得键 * this.tableData = [{id: 1}] * 则key是id,若key和this.deleteKey相同则可以不传 */ multiDelete(key?: any): void; }