@jiaozhiye/qm-design-vue
Version:
A Component Library for Vue3.0
130 lines (129 loc) • 4.26 kB
TypeScript
import { Ref } from 'vue';
import TableManager from '../manager';
import Store from '../store';
import type { ScrollbarInstance } from '../../../scrollbar/src/props';
import type { getRowKeyType, IColumn, IDerivedRowKey, IFieldAuthItem, InsertMode, IRecord, IRowKey, ITableProps } from '../table/types';
import type { Nullable } from '../../../_utils/types';
export type ITableRef = {
uid: string;
tableManager: typeof TableManager;
elementStore: Record<string, Nullable<HTMLElement>>;
originColumns: IColumn[];
tableFullData: IRecord[];
tableOriginData: IRecord[];
tableFlatData: IRecord[];
allTableData: IRecord[];
allRowKeys: IRowKey[];
allParentRowKeys: IRowKey[];
deriveRowKeys: IDerivedRowKey[];
fieldAuth: Record<string, IFieldAuthItem>;
columnsDefined: boolean;
scrollBarRef: Ref<ScrollbarInstance | undefined>;
scrollXStore: {
startIndex: number;
endIndex: number;
offsetSize: number;
visibleSize: number;
};
scrollYStore: {
startIndex: number;
endIndex: number;
offsetSize: number;
visibleSize: number;
rowHeight: number;
};
store: Store;
resizeState: {
width: number;
height: number;
winHeight: number;
};
handleState: {
insert: InsertMode | null;
remove: boolean;
};
summaries: Record<string, number>;
treeTable: boolean;
scrollXLoad: boolean;
scrollYLoad: boolean;
shouldToTop: boolean;
selectionRows: IRecord[];
recordsMap: Map<IRowKey, IRecord>;
unMounted: boolean;
isIE: boolean;
};
type IExtra = {
getRowKey: getRowKeyType;
};
declare const useTableVar: <T extends ITableProps>(props: T, { getRowKey }: IExtra) => {
setElementStore: (key: string, value: HTMLElement) => void;
setOriginColumns: (columns: IColumn[]) => void;
setTableFullData: (records: IRecord[]) => void;
setTableFlatData: (records: IRecord[]) => void;
setTableOriginData: (records: IRecord[]) => void;
setAllTableData: (records: IRecord[]) => void;
setDeriveRowKeys: (records: IRecord[]) => void;
setFieldAuth: (key: string, value: IFieldAuthItem) => void;
setColumnsDefined: (value: boolean) => void;
setScrollXStore: (option: ITableRef['scrollXStore']) => void;
setScrollYStore: (option: ITableRef['scrollYStore']) => void;
setResizeState: (option: ITableRef['resizeState']) => void;
setHandleState: (option: ITableRef['handleState']) => void;
setSummaries: (option: ITableRef['summaries']) => void;
setScrollXLoad: (value: boolean) => void;
setScrollYLoad: (value: boolean) => void;
setShouldToTop: (value: boolean) => void;
setSelectionRows: (selectKeys: IRecord[]) => void;
setRecordsMap: (key: IRowKey, value: IRecord) => void;
setUnMounted: (value: boolean) => void;
clearElementStore: () => void;
clearRecordsMap: () => void;
uid: string;
tableManager: typeof TableManager;
elementStore: Record<string, Nullable<HTMLElement>>;
originColumns: IColumn[];
tableFullData: IRecord[];
tableOriginData: IRecord[];
tableFlatData: IRecord[];
allTableData: IRecord[];
allRowKeys: IRowKey[];
allParentRowKeys: IRowKey[];
deriveRowKeys: IDerivedRowKey[];
fieldAuth: Record<string, IFieldAuthItem>;
columnsDefined: boolean;
scrollBarRef: Ref<ScrollbarInstance | undefined>;
scrollXStore: {
startIndex: number;
endIndex: number;
offsetSize: number;
visibleSize: number;
};
scrollYStore: {
startIndex: number;
endIndex: number;
offsetSize: number;
visibleSize: number;
rowHeight: number;
};
store: Store;
resizeState: {
width: number;
height: number;
winHeight: number;
};
handleState: {
insert: InsertMode | null;
remove: boolean;
};
summaries: Record<string, number>;
treeTable: boolean;
scrollXLoad: boolean;
scrollYLoad: boolean;
shouldToTop: boolean;
selectionRows: IRecord[];
recordsMap: Map<IRowKey, IRecord>;
unMounted: boolean;
isIE: boolean;
tableVar: ITableRef;
};
export default useTableVar;