fixed: column drag issue.
optimized: documentation.
This commit is contained in:
173
lib/ui/grid/column.d.ts
vendored
173
lib/ui/grid/column.d.ts
vendored
@@ -35,13 +35,18 @@ export interface GridColumnDefinition {
|
||||
align?: "left" | "center" | "right";
|
||||
/**
|
||||
* 列是否可用(可编辑),允许以下类型<br/><br/>
|
||||
* <code>boolean</code> 则直接使用该值<br/><br/>
|
||||
* <code>string</code> 则以该值为关键字从行数据中取值作为判断条件<br/><br/>
|
||||
* <code>(item: GridItem) => boolean</code> 则调用该函数(上下文为列定义对象),以返回值作为判断条件<br/><br/>
|
||||
* `boolean` 则直接使用该值<br/><br/>
|
||||
* `string` 则以该值为关键字从行数据中取值作为判断条件<br/><br/>
|
||||
* `(item: GridItem) => boolean` 则调用该函数(上下文为列定义对象),以返回值作为判断条件<br/><br/>
|
||||
*/
|
||||
enabled?: boolean | string | ((item: GridItem) => boolean);
|
||||
/** 单元格取值采用该方法返回的值 */
|
||||
filter?: (item: GridItem) => any;
|
||||
/**
|
||||
* 单元格取值采用该方法返回的值
|
||||
* @param item 行数据对象
|
||||
* @param editing 是否处于编辑状态
|
||||
* @param body Grid 控件的 `<tbody>` 部分
|
||||
*/
|
||||
filter?: (item: GridItem, editing: boolean, body?: HTMLElement) => any;
|
||||
/** 单元格以该值填充内容,忽略filter与关键字属性 */
|
||||
text?: string;
|
||||
/** 列是否可见 */
|
||||
@@ -76,8 +81,8 @@ export interface GridColumnDefinition {
|
||||
source?: Array<GridSourceItem> | ((item: GridItem) => Array<GridSourceItem> | Promise<Array<GridSourceItem>>);
|
||||
/** 下拉列表数据源是否缓存结果(即行数据未发生变化时仅从source属性获取一次值) */
|
||||
sourceCache?: boolean;
|
||||
/** 列为图标类型时以该值设置图标样式(函数上下文为列定义对象),允许值为 <code>fa-light</code>、<code>fa-regular</code>、<code>fa-solid</code> */
|
||||
iconType?: string;
|
||||
/** 列为图标类型时以该值设置图标样式(函数上下文为列定义对象),默认值 `fa-light` */
|
||||
iconType?: "fa-light" | "fa-regular" | "fa-solid";
|
||||
/** 列为图标类型时以该值作为单元格元素的额外样式类型(函数上下文为列定义对象) */
|
||||
iconClassName?: string | ((item: GridItem) => string);
|
||||
/** 列为日期类型时以该值作为最小可选日期值 */
|
||||
@@ -92,6 +97,7 @@ export interface GridColumnDefinition {
|
||||
* @param this 上下文为 Grid 对象
|
||||
* @param col 列定义对象
|
||||
* @param flag 是否选中
|
||||
* @eventProperty
|
||||
*/
|
||||
onAllChecked?: (this: Grid, col: GridColumnDefinition, flag: boolean) => void;
|
||||
/**
|
||||
@@ -101,6 +107,7 @@ export interface GridColumnDefinition {
|
||||
* @param value 修改后的值
|
||||
* @param oldValue 修改前的值
|
||||
* @param e 列修改事件传递过来的任意对象
|
||||
* @eventProperty
|
||||
*/
|
||||
onChanged?: (this: Grid, item: GridItem, value: boolean | string | Number, oldValue: boolean | string | Number, e?: any) => void;
|
||||
/**
|
||||
@@ -108,6 +115,7 @@ export interface GridColumnDefinition {
|
||||
* @param this 上下文为 Grid 对象
|
||||
* @param item 数据行对象
|
||||
* @param value 修改后的文本框值
|
||||
* @eventProperty
|
||||
*/
|
||||
onInputEnded?: (this: Grid, item: GridItem, value: string) => void;
|
||||
/**
|
||||
@@ -115,12 +123,14 @@ export interface GridColumnDefinition {
|
||||
* @param this 上下文为 Grid 对象
|
||||
* @param col 列定义对象
|
||||
* @param selected 选中的过滤项
|
||||
* @eventProperty
|
||||
*/
|
||||
onFilterOk?: (this: Grid, col: GridColumnDefinition, selected: Array<GridItem>) => void;
|
||||
/**
|
||||
* 列过滤后触发的事件
|
||||
* @param this 上下文为 Grid 对象
|
||||
* @param col 列定义对象
|
||||
* @eventProperty
|
||||
*/
|
||||
onFiltered?: (this: Grid, col: GridColumnDefinition) => void;
|
||||
/**
|
||||
@@ -128,6 +138,7 @@ export interface GridColumnDefinition {
|
||||
* @param this 上下文为列定义对象
|
||||
* @param item 数据行对象
|
||||
* @param drop 下拉框对象
|
||||
* @eventProperty
|
||||
*/
|
||||
onDropExpanded?: (this: GridColumnDefinition, item: GridItem, drop: Dropdown) => void;
|
||||
}
|
||||
@@ -138,19 +149,28 @@ export class GridColumn {
|
||||
* 创建显示单元格时调用的方法
|
||||
* @param col 列定义对象
|
||||
* @returns 返回创建的单元格元素
|
||||
* @virtual
|
||||
*/
|
||||
static create(col: GridColumnDefinition): HTMLElement;
|
||||
/**
|
||||
* 创建编辑单元格时调用的方法<br/><br/>
|
||||
* 元素修改后设置行包装对象的 <code>__editing</code> 后,支持在离开编辑状态时及时触发 {@linkcode leaveEdit} 方法<br/>
|
||||
* 元素修改后设置行包装对象的 `__editing` 后,支持在离开编辑状态时及时触发 {@linkcode leaveEdit} 方法<br/>
|
||||
* 更多例子参考代码中 {@linkcode GridDropdownColumn} 的实现。
|
||||
* @param trigger 编辑事件回调函数,e 参数会传递给 {@linkcode getValue} 方法
|
||||
* @param col 列定义对象
|
||||
* @param container 父容器元素
|
||||
* @param vals 行包装对象,其 <code>values</code> 属性为行数据对象
|
||||
* @param vals 行包装对象,其 `values` 属性为行数据对象
|
||||
* @returns 返回创建的编辑状态的单元格元素
|
||||
* @virtual
|
||||
*/
|
||||
static createEdit(trigger: (e: any) => void, col: GridColumnDefinition, container: HTMLElement, vals: GridItemWrapper): HTMLElement;
|
||||
/**
|
||||
* 创建列头时调用的方法
|
||||
* @param col 列定义对象
|
||||
* @returns 返回创建的列头元素
|
||||
* @virtual
|
||||
*/
|
||||
static createCaption?(col: GridColumnDefinition): HTMLElement;
|
||||
/**
|
||||
* 设置单元格值时调用的方法
|
||||
* @param element 单元格元素
|
||||
@@ -158,59 +178,178 @@ export class GridColumn {
|
||||
* @param vals 行包装对象
|
||||
* @param col 列定义对象
|
||||
* @param grid {@linkcode Grid} 对象
|
||||
* @virtual
|
||||
*/
|
||||
static setValue(element: HTMLElement, val: string | boolean | Number, vals: GridItemWrapper, col: GridColumnDefinition, grid: Grid): void;
|
||||
/**
|
||||
* 获取编辑状态单元格值时调用的方法
|
||||
* @param e 由 {@linkcode createEdit} 方法中 <code>trigger</code> 函数传递来的对象
|
||||
* @param e 由 {@linkcode createEdit} 方法中 `trigger` 函数传递来的对象
|
||||
* @param col 列定义对象
|
||||
* @returns 返回单元格的值
|
||||
* @virtual
|
||||
*/
|
||||
static getValue(e: any, col: GridColumnDefinition): string | boolean | Number;
|
||||
/**
|
||||
* 设置单元格样式时调用的方法
|
||||
* @param element 单元格元素
|
||||
* @param style 样式对象
|
||||
* @virtual
|
||||
*/
|
||||
static setStyle(element: HTMLElement, style: { [key: string]: string }): void;
|
||||
/**
|
||||
* 设置单元格可用性时调用的方法
|
||||
* @param element 单元格元素
|
||||
* @param enabled 启用值,为false时代表禁用
|
||||
* @virtual
|
||||
*/
|
||||
static setEnabled(element: HTMLElement, enabled?: boolean): void;
|
||||
/**
|
||||
* 单元格离开编辑元素时触发,需要由行包装对象的 <code>__editing</code> 来确定是否触发。
|
||||
* 单元格离开编辑元素时触发,需要由行包装对象的 `__editing` 来确定是否触发。
|
||||
* @param element 单元格元素
|
||||
* @param container 父容器元素
|
||||
* @virtual
|
||||
*/
|
||||
static leaveEdit(element: HTMLElement, container: HTMLElement): void;
|
||||
static leaveEdit?(element: HTMLElement, container: HTMLElement): void;
|
||||
}
|
||||
|
||||
/** 单行文本列 */
|
||||
export class GridInputColumn extends GridColumn {
|
||||
/**
|
||||
* 设置该类型是否支持触发 {@linkcode GridColumnDefinition.onInputEnded} 方法<br/>
|
||||
* 该属性返回 <code>true</code> 后,在任意事件中修改行包装对象的 <code>__editing</code> 值,则会在行列元素变动时及时触发 {@linkcode GridColumnDefinition.onInputEnded} 方法,避免例如文本框还未触发 <code>onchange</code> 事件就被移除元素而导致的问题<br/>
|
||||
* 该属性返回 `true` 后,在任意事件中修改行包装对象的 `__editing` 值,则会在行列元素变动时及时触发 {@linkcode GridColumnDefinition.onInputEnded} 方法,避免例如文本框还未触发 `onchange` 事件就被移除元素而导致的问题<br/>
|
||||
* 更多例子参考代码中 {@linkcode GridInputColumn} 的实现
|
||||
*/
|
||||
static get editing(): boolean;
|
||||
/**
|
||||
* @inheritdoc GridColumn.createEdit
|
||||
* @override
|
||||
*/
|
||||
static createEdit(trigger: (e: any) => void, col: GridColumnDefinition, container: HTMLElement, vals: GridItemWrapper): HTMLElement;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setValue
|
||||
* @override
|
||||
*/
|
||||
static setValue(element: HTMLElement, val: string, vals: GridItemWrapper, col: GridColumnDefinition, grid: Grid): void;
|
||||
/**
|
||||
* @inheritdoc GridColumn.getValue
|
||||
* @override
|
||||
*/
|
||||
static getValue(e: any): string;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setEnabled
|
||||
* @override
|
||||
*/
|
||||
static setEnabled(element: HTMLElement, enabled?: boolean): void;
|
||||
}
|
||||
|
||||
/** 多行文本列 */
|
||||
export class GridTextColumn extends GridInputColumn { }
|
||||
export class GridTextColumn extends GridInputColumn {
|
||||
/**
|
||||
* @inheritdoc GridInputColumn.createEdit
|
||||
* @override
|
||||
*/
|
||||
static createEdit(trigger: (e: any) => void, col: GridColumnDefinition, container: HTMLElement, vals: GridItemWrapper): HTMLElement;
|
||||
/**
|
||||
* @inheritdoc GridInputColumn.setValue
|
||||
* @override
|
||||
*/
|
||||
static setValue(element: HTMLElement, val: string, vals: GridItemWrapper, col: GridColumnDefinition, grid: Grid): void;
|
||||
}
|
||||
|
||||
/** 下拉选择列 */
|
||||
export class GridDropdownColumn extends GridColumn { }
|
||||
export class GridDropdownColumn extends GridColumn {
|
||||
/**
|
||||
* @inheritdoc GridColumn.createEdit
|
||||
* @override
|
||||
*/
|
||||
static createEdit(trigger: (e: any) => void, col: GridColumnDefinition, container: HTMLElement, vals: GridItemWrapper): HTMLElement;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setValue
|
||||
* @override
|
||||
*/
|
||||
static setValue(element: HTMLElement, val: string, vals: GridItemWrapper, col: GridColumnDefinition): void;
|
||||
/**
|
||||
* @inheritdoc GridColumn.getValue
|
||||
* @override
|
||||
*/
|
||||
static getValue(e: any, col: GridColumnDefinition): string;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setEnabled
|
||||
* @override
|
||||
*/
|
||||
static setEnabled(element: HTMLElement, enabled?: boolean): void;
|
||||
/**
|
||||
* @inheritdoc GridColumn.leaveEdit
|
||||
* @override
|
||||
*/
|
||||
static leaveEdit?(element: HTMLElement, container: HTMLElement): void;
|
||||
}
|
||||
|
||||
/** 复选框列 */
|
||||
export class GridCheckboxColumn extends GridColumn { }
|
||||
export class GridCheckboxColumn extends GridColumn {
|
||||
/**
|
||||
* @inheritdoc GridColumn.createEdit
|
||||
* @override
|
||||
*/
|
||||
static createEdit(trigger: (e: any) => void): HTMLElement;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setValue
|
||||
* @override
|
||||
*/
|
||||
static setValue(element: HTMLElement, val: boolean): void;
|
||||
/**
|
||||
* @inheritdoc GridColumn.getValue
|
||||
* @override
|
||||
*/
|
||||
static getValue(e: any): boolean;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setEnabled
|
||||
* @override
|
||||
*/
|
||||
static setEnabled(element: HTMLElement, enabled?: boolean): void;
|
||||
}
|
||||
|
||||
/** 图标列 */
|
||||
export class GridIconColumn extends GridColumn { }
|
||||
export class GridIconColumn extends GridColumn {
|
||||
/**
|
||||
* @inheritdoc GridColumn.create
|
||||
* @override
|
||||
*/
|
||||
static create(): HTMLElement;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setValue
|
||||
* @override
|
||||
*/
|
||||
static setValue(element: HTMLElement, val: string, vals: GridItemWrapper, col: GridColumnDefinition): void;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setEnabled
|
||||
* @override
|
||||
*/
|
||||
static setEnabled(element: HTMLElement, enabled?: boolean): void;
|
||||
}
|
||||
|
||||
/** 日期选择列 */
|
||||
export class GridDateColumn extends GridColumn {
|
||||
/**
|
||||
* @inheritdoc GridColumn.createEdit
|
||||
* @override
|
||||
*/
|
||||
static createEdit(trigger: (e: any) => void, col: GridColumnDefinition, container: HTMLElement, vals: GridItemWrapper): HTMLElement;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setValue
|
||||
* @override
|
||||
*/
|
||||
static setValue(element: HTMLElement, val: string | Number): void;
|
||||
/**
|
||||
* @inheritdoc GridColumn.getValue
|
||||
* @override
|
||||
*/
|
||||
static getValue(e: any): string | Number;
|
||||
/**
|
||||
* @inheritdoc GridColumn.setEnabled
|
||||
* @override
|
||||
*/
|
||||
static setEnabled(element: HTMLElement, enabled?: boolean): void;
|
||||
/**
|
||||
* 格式化日期对象为 M/d/yyyy 格式的字符串
|
||||
* @param date 日期对象
|
||||
|
Reference in New Issue
Block a user