@jiaozhiye/qm-design-vue
Version:
A Component Library for Vue3.0
110 lines (109 loc) • 4.83 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>;
tableData: Ref<ITableState['tableData']>;
tableColumns: ComputedRef<IColumn[]>;
flattenColumns: ComputedRef<IColumn[]>;
pagination: Ref<IPagination>;
layout: Ref<ITableState['layout']>;
scrollY: Ref<boolean>;
filters: Ref<IFilter>;
sorter: Ref<ISorter>;
superFilters: Ref<ISuperFilter[]>;
fetchParams: ComputedRef<IFetchParams>;
totalRow: Ref<ITableState['totalRow']>;
selectionKeys: Ref<IRowKey[]>;
rowExpandedKeys: Ref<IRowKey[]>;
highlightKey: Ref<IRowKey>;
summationColumns: ComputedRef<IColumn[]>;
shouldUpdateHeight: ComputedRef<boolean>;
isFetch: ComputedRef<boolean>;
isTreeTable: ComputedRef<boolean>;
isWebPagination: ComputedRef<boolean>;
isScrollPagination: ComputedRef<boolean>;
isServiceSummation: ComputedRef<boolean>;
isGroupSubtotal: ComputedRef<boolean>;
doLayout: () => void;
setTotalRow: (value: number) => void;
setTableData: (records: IRecord[]) => void;
setTableFlatColumns: (columns: IColumn[]) => void;
setTableFullData: (records: IRecord[]) => void;
setTableOriginData: (records: IRecord[]) => void;
setTableFlatData: (records: IRecord[]) => void;
setAllTableData: (records: IRecord[]) => void;
setDeriveRowKeys: (records: IRecord[]) => void;
setPagination: (pagination: IPagination) => void;
setSpinning: (value: boolean) => void;
setSorter: (sorter: ITableState['sorter']) => void;
setFilters: (sorter: ITableState['filters']) => 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;
setScrollXStore: (option: ITableRef['scrollXStore']) => void;
setScrollYStore: (option: ITableRef['scrollYStore']) => void;
computeVirtualX: (sl: number, tableWidth: number) => {
toVisibleIndex: number;
visibleSize: number;
};
computeVirtualY: (st: number, rowHeight: number) => {
toVisibleIndex: number;
};
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;
setRecordsMap: (key: IRowKey, value: IRecord) => void;
resetTableScroll: () => void;
clearElementStore: () => void;
clearRecordsMap: () => void;
};
declare const useTableCore: <T extends ITableProps>(props: T, extra: IExtra) => {
initialTable: () => void;
checkDataIndex: () => void;
createTableFullData: (list: IRecord[]) => void;
getTableData: () => Promise<void>;
handleTableData: (dataList: IRecord[]) => void;
createWebPageData: () => IRecord<any>[];
createTableData: (list: IRecord[]) => void;
createGroupData: (list: IRecord[]) => IRecord<any>[];
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 }: IPagination) => void;
triggerScrollXEvent: (sl: number) => void;
triggerScrollYEvent: (st: number) => void;
scrollBottomDebouncer: (ev: Event) => void;
getTableDataForDepd: () => Ref<IRecord<any>[], IRecord<any>[]>;
clearTableSorter: () => void;
clearTableFilter: () => void;
clearSuperFilters: () => void;
clearRowSelection: () => void;
clearRowHighlight: () => void;
clearTableLog: () => void;
destroy: () => void;
};
export default useTableCore;