yoyo-ng-modulewindy
Version:
服务于52ABP模板的前端开源的相关组件内容。整合了ng-alain和你NG ZORRO的内容
229 lines (228 loc) • 8.59 kB
TypeScript
import { OnDestroy, OnInit, OnChanges, SimpleChanges, EventEmitter, Renderer2, ElementRef, TemplateRef, SimpleChange } from '@angular/core';
import { DecimalPipe } from '@angular/common';
import { HttpClient } from '@angular/common/http';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { CNCurrencyPipe, DatePipe, YNPipe, ModalHelper } from 'yoyo-ng-module/theme';
import { SimpleTableColumn, SimpleTableChange, SimpleTableSelection, SimpleTableFilter, SimpleTableData, SimpleTableButton, STExportOptions, ResReNameType, ReqReNameType } from './interface';
import { AdSimpleTableConfig } from './simple-table.config';
import { SimpleTableExport } from './simple-table-export';
export declare class SimpleTableComponent implements OnInit, OnChanges, OnDestroy {
private defConfig;
private http;
private router;
private el;
private renderer;
private exportSrv;
private modal;
private currenty;
private date;
private yn;
private number;
private doc;
private data$;
private _inited;
_data: SimpleTableData[];
_url: string;
_isAjax: boolean;
_isPagination: boolean;
_classMap: string[];
_allChecked: boolean;
_indeterminate: boolean;
_columns: SimpleTableColumn[];
/** 数据源 */
data: string | any[] | Observable<any[]>;
/**
* 额外请求参数,默认自动附加 `pi`、`ps` 至URL
* - `{ status: 'new' }` => `url?pi=1&ps=10&status=new`
*/
extraParams: any;
/** 请求方法 */
reqMethod: string;
/** 请求体 `body` */
reqBody: any;
/** 请求体 `Header` */
reqHeaders: any;
/**
* 重命名请求参数 `pi`、`ps`
* - `{ pi: 'Page' }` => `pi` 会被替换成 Page
*/
reqReName: ReqReNameType;
private _reqReName;
/** 请求异常时回调 */
readonly reqError: EventEmitter<any>;
/**
* 重命名返回参数 `total`、`list`
* - `{ total: 'Total' }` => Total 会被当作 `total`
*/
resReName: ResReNameType;
private _resReName;
/** 列描述 */
columns: SimpleTableColumn[];
/** 每页数量,当设置为 `0` 表示不分页,默认:`10` */
ps: any;
private _ps;
/** 当前页码 */
pi: any;
private _pi;
/** 数据总量 */
total: any;
private _total;
/** 是否显示分页器 */
showPagination: any;
private _showPagination;
/** 是否显示Loading */
loading: any;
private _loading;
/** 延迟显示加载效果的时间(防止闪烁) */
loadingDelay: any;
private _loadingDelay;
/** 是否显示边框 */
bordered: any;
private _bordered;
/** table大小 */
size: 'small' | 'middle' | 'default';
/** 纵向支持滚动,也可用于指定滚动区域的高度:`{ y: '300px', x: '300px' }` */
scroll: {
y?: string;
x?: string;
};
/** 是否显示pagination中改变页数 */
showSizeChanger: any;
private _showSizeChanger;
/** pagination中每页显示条目数下拉框值 */
pageSizeOptions: number[];
/** 是否显示pagination中快速跳转 */
showQuickJumper: any;
private _showQuickJumper;
/** 是否显示总数据量 */
private _totalTpl;
showTotal: any;
renderTotal(total: string, range: string[]): string;
/**
* 前端分页,当 `data` 为`any[]` 或 `Observable<any[]>` 有效,默认:`true`
* - `true` 由 `simple-table` 根据 `data` 长度受控分页,包括:排序、过滤等
* - `false` 由用户通过 `total` 和 `data` 参数受控分页,并维护 `(change)` 当分页变更时重新加载数据
*/
frontPagination: any;
private _frontPagination;
/** 数据变更后是否保留在数据变更前的页码 */
isPageIndexReset: any;
private _isPageIndexReset;
/** 分页方向 */
pagePlacement?: 'left' | 'center' | 'right';
/** 切换分页时返回顶部 */
toTopInChange: any;
private _toTopInChange;
/** 返回顶部偏移值 */
toTopOffset: any;
private _toTopOffset;
/** 重命名排序值,`columns` 的重命名高于属性 */
sortReName: {
ascend?: string;
descend?: string;
};
/** 是否多排序,当 `sort` 多个相同值时自动合并,建议后端支持时使用 */
multiSort: any;
private _multiSort;
/** 数据处理前回调 */
preDataChange: (data: SimpleTableData[]) => SimpleTableData[];
/** `header` 标题 */
header: TemplateRef<void>;
/** 额外 `body` 内容 */
body: TemplateRef<void>;
/** `footer` 底部 */
footer: TemplateRef<void>;
/** `expand` 可展开,当数据源中包括 `expand` 表示展开状态 */
expand: TemplateRef<{
$implicit: any;
column: SimpleTableColumn;
}>;
noResult: string | TemplateRef<void>;
widthConfig: string[];
/** 页码、每页数量变化时回调 */
readonly change: EventEmitter<SimpleTableChange>;
/** checkbox变化时回调,参数为当前所选清单 */
readonly checkboxChange: EventEmitter<SimpleTableData[]>;
/** radio变化时回调,参数为当前所选 */
readonly radioChange: EventEmitter<SimpleTableData>;
/** 排序回调 */
readonly sortChange: EventEmitter<any>;
/** Filter回调 */
readonly filterChange: EventEmitter<SimpleTableColumn>;
/** 后端分页是否采用`1`基索引,只在`data`类型为`string`时有效 */
zeroIndexedOnPage: any;
private _zeroIndexedOnPage;
constructor(defConfig: AdSimpleTableConfig, http: HttpClient, router: Router, el: ElementRef, renderer: Renderer2, exportSrv: SimpleTableExport, modal: ModalHelper, currenty: CNCurrencyPipe, date: DatePipe, yn: YNPipe, number: DecimalPipe, doc: any);
/**
* 根据页码重新加载数据
*
* @param pi 指定当前页码,默认:`1`
* @param extraParams 重新指定 `extraParams` 值
*/
load(pi?: number, extraParams?: any): void;
/**
* 重新刷新当前页
* @param extraParams 重新指定 `extraParams` 值
*/
reload(extraParams?: any): void;
/**
* 重置且重新设置 `pi` 为 `1`
*
* @param extraParams 重新指定 `extraParams` 值
*/
reset(extraParams?: any): void;
private getAjaxData(url?);
private _genAjax(forceRefresh?);
_genData(forceRefresh?: boolean): void;
private _toTop();
private checkPaged();
private processData();
private subscribeData(res);
_change(type: 'pi' | 'ps'): void;
_get(item: any, col: SimpleTableColumn): any;
_click(e: Event, item: any, col: SimpleTableColumn): boolean;
_sortMap: {
[key: number]: any;
};
_sortColumn: SimpleTableColumn;
_sortOrder: string;
_sortIndex: number;
private getReqSortMap();
private getSorterFn();
sort(index: number, value: any): void;
private getReqFilterMap();
private handleFilter(col);
filterConfirm(col: SimpleTableColumn): void;
filterClear(col: SimpleTableColumn): void;
filterRadio(col: SimpleTableColumn, item: SimpleTableFilter, checked: boolean): void;
/** 清除所有 `checkbox` */
clearCheck(): this;
_checkAll(checked?: boolean): this;
_checkSelection(i: SimpleTableData, value: boolean): this;
_refCheck(): this;
_rowSelection(row: SimpleTableSelection): this;
_checkNotify(): this;
/** 清除所有 `radio` */
clearRadio(): this;
_refRadio(checked: boolean, item: SimpleTableData): this;
btnCoerce(list: SimpleTableButton[]): SimpleTableButton[];
btnCoerceIf(list: SimpleTableButton[]): void;
btnClick(record: any, btn: SimpleTableButton): void;
private btnCallback(record, btn, modal?);
btnText(record: any, btn: SimpleTableButton): string;
fixedCoerce(list: SimpleTableColumn[]): void;
/**
* 导出Excel,确保已经注册 `AdXlsxModule`
* @param urlOrData 重新指定数据,例如希望导出所有数据非常有用
* @param opt 额外参数
*/
export(urlOrData?: string | any[], opt?: STExportOptions): void;
ngOnInit(): void;
private setClass();
private updateColumns();
ngOnChanges(changes: {
[P in keyof this]?: SimpleChange;
} & SimpleChanges): void;
ngOnDestroy(): void;
}