UNPKG

@jiaozhiye/qm-design-vue

Version:

A Component Library for Vue3.0

141 lines (140 loc) 4.57 kB
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;