grid multi-select issue

This commit is contained in:
Chen Lily 2024-01-25 15:58:42 +08:00
parent 41cb7b0142
commit b50440a5b7
4 changed files with 34 additions and 34 deletions

14
lib/ui/dropdown.d.ts vendored
View File

@ -60,17 +60,17 @@ export class Dropdown {
constructor(options?: DropdownOptions); constructor(options?: DropdownOptions);
/** 根据该函数返回数据源 */ /** 根据该函数返回数据源 */
sourceFilter: () => Array<DropdownItem | any>; sourceFilter: () => Array<DropdownItem>;
/** /**
* *
* @param item * @param item
*/ */
onSelected: (item: DropdownItem | any) => void; onSelected: (item: DropdownItem) => void;
/** /**
* *
* @param list * @param list
*/ */
onSelectedList: (list: Array<DropdownItem | any>) => void; onSelectedList: (list: Array<DropdownItem>) => void;
/** 下拉框展开时触发 */ /** 下拉框展开时触发 */
onExpanded: () => void; onExpanded: () => void;
/** 下拉框收缩时触发 */ /** 下拉框收缩时触发 */
@ -84,19 +84,19 @@ export class Dropdown {
*/ */
set disabled(flag: boolean); set disabled(flag: boolean);
/** 获取数据源 */ /** 获取数据源 */
get source(): Array<DropdownItem | any>; get source(): Array<DropdownItem>;
/** /**
* *
* @param list * @param list
*/ */
set source(list: Array<DropdownItem | any>); set source(list: Array<DropdownItem>);
/** 获取是否允许多选 */ /** 获取是否允许多选 */
get multiSelect(): boolean; get multiSelect(): boolean;
/** 获取选中的条目 */ /** 获取选中的条目 */
get selected(): DropdownItem | any; get selected(): DropdownItem;
/** 获取选中的条目列表 */ /** 获取选中的条目列表 */
get selectedList(): Array<DropdownItem | any>; get selectedList(): Array<DropdownItem>;
/** /**
* *

View File

@ -37,11 +37,11 @@ export interface GridColumnDefinition {
* <br/><br/> * <br/><br/>
* <code>boolean</code> 使<br/><br/> * <code>boolean</code> 使<br/><br/>
* <code>string</code> <br/><br/> * <code>string</code> <br/><br/>
* <code>(item: GridItem | any) => boolean</code> <br/><br/> * <code>(item: GridItem) => boolean</code> <br/><br/>
*/ */
enabled?: boolean | string | ((item: GridItem | any) => boolean); enabled?: boolean | string | ((item: GridItem) => boolean);
/** 单元格取值采用该方法返回的值 */ /** 单元格取值采用该方法返回的值 */
filter?: (item: GridItem | any) => any; filter?: (item: GridItem) => any;
/** 单元格以该值填充内容忽略filter与关键字属性 */ /** 单元格以该值填充内容忽略filter与关键字属性 */
text?: string; text?: string;
/** 列是否可见 */ /** 列是否可见 */
@ -57,35 +57,35 @@ export interface GridColumnDefinition {
/** 单元格css样式对象仅在重建行元素时读取 */ /** 单元格css样式对象仅在重建行元素时读取 */
css?: { [key: string]: string }; css?: { [key: string]: string };
/** 根据返回值填充单元格样式(填充行列数据时读取) */ /** 根据返回值填充单元格样式(填充行列数据时读取) */
styleFilter?: (item: GridItem | any) => { [key: string]: string }; styleFilter?: (item: GridItem) => { [key: string]: string };
/** 根据返回值设置单元格背景色 */ /** 根据返回值设置单元格背景色 */
bgFilter?: (item: GridItem | any) => string; bgFilter?: (item: GridItem) => string;
/** 给单元格元素附加事件(事件函数上下文为数据行对象) */ /** 给单元格元素附加事件(事件函数上下文为数据行对象) */
events?: { [event: string]: any }; events?: { [event: string]: Function };
/** 根据返回值设置单元格元素的附加属性,允许直接设置对象也支持函数返回对象 */ /** 根据返回值设置单元格元素的附加属性,允许直接设置对象也支持函数返回对象 */
attrs?: { [key: string]: string } | ((item: GridItem | any) => { [key: string]: string }); attrs?: { [key: string]: string } | ((item: GridItem) => { [key: string]: string });
/** 是否允许进行列头过滤 */ /** 是否允许进行列头过滤 */
allowFilter?: boolean; allowFilter?: boolean;
/** 自定义列过滤器的数据源函数上下文为Grid */ /** 自定义列过滤器的数据源函数上下文为Grid */
filterSource?: Array<GridItem | any> | ((col: GridColumnDefinition) => Array<GridItem | any>); filterSource?: Array<GridItem> | ((col: GridColumnDefinition) => Array<GridItem>);
/** 自定义列排序函数 */ /** 自定义列排序函数 */
sortFilter?: (a: GridItem | any, b: GridItem | any) => -1 | 0 | 1; sortFilter?: (a: GridItem, b: GridItem) => -1 | 0 | 1;
/** 列为下拉列表类型时以该值设置下拉框的参数 */ /** 列为下拉列表类型时以该值设置下拉框的参数 */
dropOptions?: DropdownOptions; dropOptions?: DropdownOptions;
/** 列为下拉列表类型时以该值设置下拉列表数据源,支持函数返回,也支持返回异步对象 */ /** 列为下拉列表类型时以该值设置下拉列表数据源,支持函数返回,也支持返回异步对象 */
source?: Array<GridSourceItem | any> | ((item: GridItem | any) => Array<GridSourceItem | any> | Promise<Array<GridSourceItem | any>>); source?: Array<GridSourceItem> | ((item: GridItem) => Array<GridSourceItem> | Promise<Array<GridSourceItem>>);
/** 下拉列表数据源是否缓存结果即行数据未发生变化时仅从source属性获取一次值 */ /** 下拉列表数据源是否缓存结果即行数据未发生变化时仅从source属性获取一次值 */
sourceCache?: boolean; sourceCache?: boolean;
/** 列为图标类型时以该值设置图标样式(函数上下文为列定义对象),允许值为 <code>fa-light</code>、<code>fa-regular</code>、<code>fa-solid</code> */ /** 列为图标类型时以该值设置图标样式(函数上下文为列定义对象),允许值为 <code>fa-light</code>、<code>fa-regular</code>、<code>fa-solid</code> */
iconType?: string; iconType?: string;
/** 列为图标类型时以该值作为单元格元素的额外样式类型(函数上下文为列定义对象) */ /** 列为图标类型时以该值作为单元格元素的额外样式类型(函数上下文为列定义对象) */
iconClassName?: string | ((item: GridItem | any) => string); iconClassName?: string | ((item: GridItem) => string);
/** 列为日期类型时以该值作为最小可选日期值 */ /** 列为日期类型时以该值作为最小可选日期值 */
dateMin?: string; dateMin?: string;
/** 列为日期类型时以该值作为最大可选日期值 */ /** 列为日期类型时以该值作为最大可选日期值 */
dateMax?: string; dateMax?: string;
/** 以返回值额外设置单元格的tooltip函数上下文为列定义对象 */ /** 以返回值额外设置单元格的tooltip函数上下文为列定义对象 */
tooltip?: string | ((item: GridItem | any) => string); tooltip?: string | ((item: GridItem) => string);
/** /**
* *
@ -102,21 +102,21 @@ export interface GridColumnDefinition {
* @param oldValue * @param oldValue
* @param e * @param e
*/ */
onChanged?: (this: Grid, item: GridItem | any, value: boolean | any, oldValue: any, e?: any) => void; onChanged?: (this: Grid, item: GridItem, value: boolean | string | Number, oldValue: boolean | string | Number, e?: any) => void;
/** /**
* *
* @param this Grid * @param this Grid
* @param item * @param item
* @param value * @param value
*/ */
onInputEnded?: (this: Grid, item: GridItem | any, value: string) => void; onInputEnded?: (this: Grid, item: GridItem, value: string) => void;
/** /**
* OK时触发的事件 * OK时触发的事件
* @param this Grid * @param this Grid
* @param col * @param col
* @param selected * @param selected
*/ */
onFilterOk?: (this: Grid, col: GridColumnDefinition, selected: Array<GridItem | any>) => void; onFilterOk?: (this: Grid, col: GridColumnDefinition, selected: Array<GridItem>) => void;
/** /**
* *
* @param this Grid * @param this Grid
@ -129,7 +129,7 @@ export interface GridColumnDefinition {
* @param item * @param item
* @param drop * @param drop
*/ */
onDropExpanded?: (this: GridColumnDefinition, item: GridItem | any, drop: Dropdown) => void; onDropExpanded?: (this: GridColumnDefinition, item: GridItem, drop: Dropdown) => void;
} }
/** 列定义基类 */ /** 列定义基类 */
@ -159,14 +159,14 @@ export class GridColumn {
* @param col * @param col
* @param grid {@linkcode Grid} * @param grid {@linkcode Grid}
*/ */
static setValue(element: HTMLElement, val: string | boolean | any, vals: GridItemWrapper, col: GridColumnDefinition, grid: Grid): void; 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} <code>trigger</code>
* @param col * @param col
* @returns * @returns
*/ */
static getValue(e: any, col: GridColumnDefinition): string | boolean | any; static getValue(e: any, col: GridColumnDefinition): string | boolean | Number;
/** /**
* *
* @param element * @param element

16
lib/ui/grid/grid.d.ts vendored
View File

@ -1,7 +1,7 @@
import { GridColumnDefinition } from "./column" import { GridColumnDefinition } from "./column"
/** 列数据接口 */ /** 列数据接口 */
export interface GridItem { interface GridItem {
/** 值 */ /** 值 */
Value: any; Value: any;
/** 显示值 */ /** 显示值 */
@ -9,7 +9,7 @@ export interface GridItem {
} }
/** 列数据行包装接口 */ /** 列数据行包装接口 */
export interface GridItemWrapper { interface GridItemWrapper {
/** 真实数据对象 */ /** 真实数据对象 */
values: { [key: string]: GridItem | any }; values: { [key: string]: GridItem | any };
/** 下拉数据源缓存对象 */ /** 下拉数据源缓存对象 */
@ -17,7 +17,7 @@ export interface GridItemWrapper {
} }
/** 下拉框列数据源接口 */ /** 下拉框列数据源接口 */
export interface GridSourceItem { interface GridSourceItem {
/** 值 */ /** 值 */
value: string; value: string;
/** 显示文本 */ /** 显示文本 */
@ -154,9 +154,9 @@ export class Grid {
onBodyScrolled?: (e: Event) => void; onBodyScrolled?: (e: Event) => void;
/** 获取数据数组 */ /** 获取数据数组 */
get source(): Array<GridItem | any>; get source(): GridItem;
/** 设置数据,并刷新列表 */ /** 设置数据,并刷新列表 */
set source(list: Array<GridItem | any>); set source(list: Array<GridItem>);
/** 获取当前选中的行索引的数组 */ /** 获取当前选中的行索引的数组 */
get selectedIndexes(): Array<Number>; get selectedIndexes(): Array<Number>;
/** 设置当前选中的行索引的数组,并刷新列表 */ /** 设置当前选中的行索引的数组,并刷新列表 */
@ -190,19 +190,19 @@ export class Grid {
* set source * set source
* @param source * @param source
*/ */
setData(source: Array<GridItem | any>): void; setData(source: Array<GridItem>): void;
/** /**
* *
* @param index * @param index
* @param item * @param item
*/ */
setItem(index: Number, item: GridItem | any): void; setItem(index: Number, item: GridItem): void;
/** /**
* *
* @param item * @param item
* @param index * @param index
*/ */
addItem(item: GridItem | any, index?: Number): void; addItem(item: GridItem, index?: Number): void;
/** /**
* *
* @param index * @param index

View File

@ -1583,7 +1583,7 @@ export class Grid {
} }
} }
} }
if (!flag && selectedIndexes.length !== 1 || selectedIndexes[0] !== selectedIndex) { if (!flag && (selectedIndexes.length !== 1 || selectedIndexes[0] !== selectedIndex)) {
selectedIndexes.splice(0, selectedIndexes.length, selectedIndex); selectedIndexes.splice(0, selectedIndexes.length, selectedIndex);
flag = true; flag = true;
} }