UNPKG

tav-ui

Version:
1 lines 10.7 kB
{"version":3,"file":"useTable2.mjs","sources":["../../../../../../../../packages/components/table/src/hooks/useTable.ts"],"sourcesContent":["import { onUnmounted, ref, toRaw, unref, watch } from 'vue'\nimport { getDynamicProps } from '@tav-ui/utils/basic'\nimport { error } from '@tav-ui/utils/log'\nimport type { FormActionType } from '@tav-ui/components/form/src/types/form'\nimport type { ComputedRef, Ref, WatchStopHandle } from 'vue'\nimport type { PaginationProps } from '../types/pagination'\nimport type { BasicColumn, BasicTableProps, FetchParams, TableActionType } from '../types/table'\n\ntype Props = Partial<DynamicProps<BasicTableProps>>\ntype DynamicProps<T> = {\n [P in keyof T]: Ref<T[P]> | T[P] | ComputedRef<T[P]>\n}\ntype Recordable<T = any> = Record<string, T>\n\nconst isProdMode = () => true\n\ntype UseTableMethod = TableActionType & {\n getForm: () => FormActionType\n}\n\ntype Nullable<T> = T | null\n\nexport function useTable(tableProps?: Props): [\n (instance: TableActionType, formInstance: UseTableMethod) => void,\n TableActionType & {\n getForm: () => FormActionType\n }\n] {\n const tableRef = ref<Nullable<TableActionType>>(null)\n const loadedRef = ref<Nullable<boolean>>(false)\n const formRef = ref<Nullable<UseTableMethod>>(null)\n let stopWatch: WatchStopHandle\n\n function register(instance: TableActionType, formInstance: UseTableMethod) {\n isProdMode() &&\n onUnmounted(() => {\n tableRef.value = null\n loadedRef.value = null\n })\n\n if (unref(loadedRef) && isProdMode() && instance === unref(tableRef)) return\n\n tableRef.value = instance\n formRef.value = formInstance\n tableProps && instance.setProps(getDynamicProps(tableProps))\n loadedRef.value = true\n stopWatch?.()\n\n stopWatch = watch(\n () => tableProps,\n () => {\n tableProps && instance.setProps(getDynamicProps(tableProps))\n },\n {\n immediate: true,\n deep: true,\n }\n )\n }\n\n function getTableInstance(): TableActionType {\n const table = unref(tableRef)\n if (!table) {\n error(\n 'The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!'\n )\n }\n return table as TableActionType\n }\n\n const methods: TableActionType & {\n getForm: () => FormActionType\n } = {\n reload: async (opt?: FetchParams) => {\n // eslint-disable-next-line no-return-await\n return await getTableInstance().reload(opt)\n },\n setProps: (props: Partial<BasicTableProps>) => {\n getTableInstance().setProps(props)\n },\n redoHeight: () => {\n getTableInstance().redoHeight()\n },\n setLoading: (loading: boolean) => {\n getTableInstance().setLoading(loading)\n },\n setMasking: (loading: boolean) => {\n getTableInstance().setMasking(loading)\n },\n getDataSource: () => {\n return getTableInstance().getDataSource()\n },\n getRawDataSource: () => {\n return getTableInstance().getRawDataSource()\n },\n getColumns: ({ ignoreIndex = false }: { ignoreIndex?: boolean } = {}) => {\n const columns = getTableInstance().getColumns({ ignoreIndex }) || []\n return toRaw(columns)\n },\n setColumns: (columns: BasicColumn[] | string[]) => {\n getTableInstance().setColumns(columns)\n },\n setTableData: (values: any[]) => {\n return getTableInstance().setTableData(values)\n },\n setPagination: (info: Partial<PaginationProps>) => {\n return getTableInstance().setPagination(info)\n },\n deleteSelectRowByKey: (key: string) => {\n getTableInstance().deleteSelectRowByKey(key)\n },\n getSelectRowKeys: () => {\n return toRaw(getTableInstance().getSelectRowKeys())\n },\n getSelectRows: () => {\n return toRaw(getTableInstance().getSelectRows())\n },\n clearSelectedRowKeys: () => {\n getTableInstance().clearSelectedRowKeys()\n },\n setSelectedRowKeys: (keys: string[] | number[]) => {\n getTableInstance().setSelectedRowKeys(keys)\n },\n getPaginationRef: () => {\n return getTableInstance().getPaginationRef()\n },\n getSize: () => {\n return toRaw(getTableInstance().getSize())\n },\n updateTableData: (index: number, key: string, value: any) => {\n return getTableInstance().updateTableData(index, key, value)\n },\n deleteTableDataRecord: (rowKey: string | number | string[] | number[]) => {\n return getTableInstance().deleteTableDataRecord(rowKey)\n },\n insertTableDataRecord: (record: Recordable | Recordable[], index?: number) => {\n return getTableInstance().insertTableDataRecord(record, index)\n },\n updateTableDataRecord: (rowKey: string | number, record: Recordable) => {\n return getTableInstance().updateTableDataRecord(rowKey, record)\n },\n findTableDataRecord: (rowKey: string | number) => {\n return getTableInstance().findTableDataRecord(rowKey)\n },\n getRowSelection: () => {\n return toRaw(getTableInstance().getRowSelection())\n },\n getCacheColumns: () => {\n return toRaw(getTableInstance().getCacheColumns())\n },\n getForm: () => {\n return unref(formRef) as unknown as FormActionType\n },\n setShowPagination: async (show: boolean) => {\n getTableInstance().setShowPagination(show)\n },\n getShowPagination: () => {\n return toRaw(getTableInstance().getShowPagination())\n },\n expandAll: () => {\n getTableInstance().expandAll()\n },\n expandRows: (keys: string[], cover?: boolean) => {\n getTableInstance().expandRows(keys, cover)\n },\n collapseAll: () => {\n getTableInstance().collapseAll()\n },\n scrollTo: (pos: string) => {\n getTableInstance().scrollTo(pos)\n },\n getFilterForm: (): FormActionType => {\n return getTableInstance().getFilterForm()\n },\n }\n\n return [register, methods]\n}\n"],"names":[],"mappings":"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"}