@jiaozhiye/qm-design-vue
Version:
A Component Library for Vue3.0
92 lines (91 loc) • 4.16 kB
TypeScript
import { Ref, ComputedRef } from 'vue';
import type { ITableRef } from './useTableVar';
import type { ITableState } from './useTableRef';
import type { getRowKeyType, IColumn, IFetchParams, IFieldAuthItem, IFilter, IPagination, IRecord, IRowKey, IRule, ISorter, ISuperFilter, ITableProps, IValidItem, TableBodyRef } from '../table/types';
import type { ComponentSize } from '../../../_utils/types';
type IExtra = {
emit: (name: string, ...args: any[]) => void;
getRowKey: getRowKeyType;
tableVar: ITableRef;
tableElementRef: Ref<HTMLElement | undefined>;
tableBodyRef: Ref<TableBodyRef | undefined>;
$size: ComputedRef<ComponentSize>;
tableColumns: ComputedRef<IColumn[]>;
flattenColumns: ComputedRef<IColumn[]>;
pagination: Ref<IPagination>;
layout: Ref<ITableState['layout']>;
filters: Ref<IFilter>;
sorter: Ref<ISorter>;
superFilters: Ref<ISuperFilter[]>;
fetchParams: ComputedRef<IFetchParams>;
selectionKeys: Ref<IRowKey[]>;
rowExpandedKeys: Ref<IRowKey[]>;
highlightKey: Ref<IRowKey>;
summationColumns: ComputedRef<IColumn[]>;
shouldUpdateHeight: ComputedRef<boolean>;
isFetch: ComputedRef<boolean>;
isWebPagination: ComputedRef<boolean>;
isScrollPagination: ComputedRef<boolean>;
isServiceSummation: ComputedRef<boolean>;
isGroupSubtotal: ComputedRef<boolean>;
doLayout: () => void;
setTableFlatData: (records: IRecord[]) => void;
setTableFullData: (records: IRecord[]) => void;
setTableOriginData: (records: IRecord[]) => void;
setTableDataMaps: (records: IRecord[]) => void;
setPagination: (pagination: IPagination) => void;
setSpinning: (value: boolean) => void;
setSorter: (sorter: ITableState['sorter'], forceUpdate?: boolean) => void;
setFilters: (sorter: ITableState['filters'], forceUpdate?: boolean) => void;
setSuperFilters: (options: ITableState['superFilters']) => void;
setSelectionKeys: (rowKeys: IRowKey[]) => void;
setRowExpandedKeys: (rowKeys: IRowKey[]) => void;
setHighlightKey: (rowKey: IRowKey) => void;
setSelectionRows: (records: IRecord[]) => void;
setScrollXLoad: (value: boolean) => void;
setScrollYLoad: (value: boolean) => void;
setPingLeft: (value: boolean) => void;
setPingRight: (value: boolean) => void;
setFieldAuth: (key: string, value: IFieldAuthItem) => void;
setResizeState: (option: ITableRef['resizeState']) => void;
setSummaries: (option: ITableRef['summaries']) => void;
setPermission: <T extends ITableState['permission']>(option: T | ((prev: T) => T)) => void;
setUnMounted: (value: boolean) => void;
resetTableScroll: () => void;
createTableFocus: () => void;
clearElementStore: () => void;
};
declare const useTableCore: <T extends ITableProps>(props: T, extra: IExtra) => {
initialTable: () => void;
checkDataIndex: () => void;
createTableFullData: (list: IRecord[]) => void;
createTableData: (list: IRecord[], fn?: ((list: IRecord[]) => IRecord[]) | undefined) => IRecord<any>[];
getTableData: () => Promise<void>;
createWebPageData: () => IRecord<any>[];
createGroupData: (list: IRecord[]) => IRecord<any>[];
createAllExpandedKeys: () => (string | number)[];
setSelectionKeysEffect: (selectedKeys: IRowKey[]) => void;
doFieldValidate: (rules: IRule[], val: unknown, rowKey: IRowKey, columnKey: string, columnTitle: string) => void;
getTableLog: () => {
required: IValidItem[];
validate: IValidItem[];
inserted: IRecord<any>[];
updated: IRecord<any>[];
removed: IRecord<any>[];
};
dataChange: () => void;
tableChange: () => void;
toLastPage: () => void;
toFirstPage: () => void;
getPageCount: () => number;
pagerChangeHandle: ({ current, pageSize }: Omit<IPagination, 'total'>) => void;
scrollBottomDebouncer: (ev: Event) => void;
clearTableSorter: () => void;
clearTableFilter: () => void;
clearSuperFilters: () => void;
clearRowSelection: () => void;
clearRowHighlight: () => void;
clearTableLog: () => void;
destroy: () => void;
};
export default useTableCore;