@jiaozhiye/qm-design-vue
Version:
A Component Library for Vue3.0
141 lines (140 loc) • 4.57 kB
TypeScript
import { Ref } from 'vue';
import type { IFilter, IMergedCell, IPagination, IRecord, IRowKey, ISorter, ISuperFilter, ITableProps } from '../table/types';
export type ITableState = {
tableFlatData: IRecord[];
filters: IFilter;
sorter: ISorter;
superFilters: ISuperFilter[];
pagination: IPagination;
selectionKeys: IRowKey[];
invalidRowKeys: IRowKey[];
rowExpandedKeys: IRowKey[];
highlightKey: IRowKey;
mergedTdCells: IMergedCell[];
layout: {
gutterWidth: number;
tableWidth: number;
tableBodyWidth: number;
tableBodyHeight: number;
viewportHeight: number;
headerHeight: number;
footerHeight: number;
tableAutoHeight: number;
tableFullHeight: number;
};
permission: {
export: boolean;
import: boolean;
print: boolean;
};
spinning: boolean;
isPingLeft: boolean;
isPingRight: boolean;
isFullScreen: boolean;
};
declare const useTableRef: <T extends ITableProps>(props: T) => {
tableFlatData: Ref<IRecord<any>[], IRecord<any>[]>;
setTableFlatData: (val: IRecord[]) => void;
filters: Ref<IFilter, IFilter>;
setFilters: (val: IFilter, forceUpdate?: boolean) => void;
sorter: Ref<ISorter, ISorter>;
setSorter: (val: ISorter, forceUpdate?: boolean) => void;
superFilters: Ref<{
type: string;
bracketLeft: string;
fieldName: string;
expression: string;
value: any;
bracketRight: string;
logic: string;
}[], ISuperFilter[] | {
type: string;
bracketLeft: string;
fieldName: string;
expression: string;
value: any;
bracketRight: string;
logic: string;
}[]>;
setSuperFilters: (val: ISuperFilter[]) => void;
pagination: Ref<{
total: number;
current: number;
pageSize: number;
}, Required<Pick<import("../table/types").IPaginationConfig, "total" | "current" | "pageSize">> | {
total: number;
current: number;
pageSize: number;
}>;
setPagination: (val: ITableState['pagination']) => void;
selectionKeys: Ref<(string | number)[], (string | number)[]>;
setSelectionKeys: (val: IRowKey[]) => void;
rowExpandedKeys: Ref<(string | number)[], (string | number)[]>;
setRowExpandedKeys: (val: IRowKey[]) => void;
highlightKey: Ref<string | number, string | number>;
setHighlightKey: (val: IRowKey) => void;
invalidRowKeys: Ref<(string | number)[], (string | number)[]>;
setInvalidRowKeys: (rowKeys: IRowKey[]) => void;
mergedTdCells: Ref<IMergedCell[], IMergedCell[]>;
setMergedCells: (val: IMergedCell[] | undefined) => void;
layout: Ref<{
gutterWidth: number;
tableWidth: number;
tableBodyWidth: number;
tableBodyHeight: number;
viewportHeight: number;
headerHeight: number;
footerHeight: number;
tableAutoHeight: number;
tableFullHeight: number;
}, {
gutterWidth: number;
tableWidth: number;
tableBodyWidth: number;
tableBodyHeight: number;
viewportHeight: number;
headerHeight: number;
footerHeight: number;
tableAutoHeight: number;
tableFullHeight: number;
} | {
gutterWidth: number;
tableWidth: number;
tableBodyWidth: number;
tableBodyHeight: number;
viewportHeight: number;
headerHeight: number;
footerHeight: number;
tableAutoHeight: number;
tableFullHeight: number;
}>;
permission: Ref<{
export: boolean;
import: boolean;
print: boolean;
}, {
export: boolean;
import: boolean;
print: boolean;
} | {
export: boolean;
import: boolean;
print: boolean;
}>;
setPermission: <T_1 extends {
export: boolean;
import: boolean;
print: boolean;
}>(payload: T_1 | ((val: T_1) => T_1)) => T_1 | undefined;
setLayout: (val: ITableState['layout']) => void;
spinning: Ref<boolean, boolean>;
setSpinning: (val: ITableState['spinning']) => void;
isPingLeft: Ref<boolean, boolean>;
setPingLeft: (val: ITableState['isPingLeft']) => void;
isPingRight: Ref<boolean, boolean>;
setPingRight: (val: ITableState['isPingRight']) => void;
isFullScreen: Ref<boolean, boolean>;
setFullScreen: (val: ITableState['isFullScreen']) => void;
updateTableData: () => void;
};
export default useTableRef;