tav-ui
Version:
1 lines • 28 kB
Source Map (JSON)
{"version":3,"file":"table-pro2.mjs","sources":["../../../../../../../packages/components/table-pro/src/table-pro.tsx"],"sourcesContent":["import { computed, defineComponent, nextTick, ref, toRaw, toRefs, unref, watch } from 'vue'\nimport { mitt } from '@tav-ui/utils/mitt'\nimport { useHideTooltips } from '@tav-ui/hooks/web/useTooltip'\nimport { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\n// import TaCollapseTransition from '@tav-ui/components/transition'\nimport { onUnmountedOrOnDeactivated } from '@tav-ui/hooks/core/onUnmountedOrOnDeactivated'\nimport { onMountedOrActivated } from '@tav-ui/hooks/core/onMountedOrActivated'\nimport ComponentCustomAction from './components/custom-action'\nimport ComponentEmpty from './components/empty'\nimport ComponentFilterForm from './components/filter-form'\nimport {\n ACTION_COLUMNS,\n CamelCaseToCls,\n ComponentName,\n ComponentOperationsName,\n buildTableId,\n} from './const'\nimport { useCellHover } from './hooks/useCellHover'\nimport { useColumnApi } from './hooks/useColumnApi'\nimport { useColumns } from './hooks/useColums'\nimport { useDataSource } from './hooks/useDataSource'\nimport { useExtendInstance } from './hooks/useExtendInstance'\nimport { useFixHeight, useHeight } from './hooks/useHeight'\nimport { useListeners } from './hooks/useListeners'\nimport { useLoading } from './hooks/useLoading'\nimport { useProps } from './hooks/useProps'\nimport { createTableContext } from './hooks/useTableContext'\nimport { useWatchDom } from './hooks/useWatchDom'\nimport { setupVxeTable } from './setup'\nimport { tableProEmits, tableProProps } from './types'\nimport { useCanvasCalcContent } from './hooks/useColumnAutoWidth'\nimport { useCheckboxCache } from './hooks/useCheckboxCache'\nimport type { ComputedRef } from 'vue'\nimport type { TableProColumn, TableProEvent, TableProInstance, TableProProps } from './types'\nimport type { CustomActionRef } from './typings'\n\nconst _VXETable = setupVxeTable()\nconst { Grid } = _VXETable\nexport const VXETable = _VXETable\nconst ComponentPrefixCls = CamelCaseToCls(ComponentName)\nconst ComponentOperationsPrefixCls = CamelCaseToCls(ComponentOperationsName)\n\nexport default defineComponent({\n name: ComponentName,\n props: tableProProps,\n emits: tableProEmits,\n setup(props, { slots, attrs, expose, emit }) {\n const tableId = buildTableId()\n const tableColumns = ref<TableProProps['columns']>(props.columns)\n // 获取实例\n const tableRef = ref<TableProInstance | null>(null)\n const filterRef = ref<ComputedRef | null>(null)\n const wrapperRef = ref<HTMLElement | null>(null)\n const operationRef = ref<HTMLDivElement | null>(null)\n const customActionRef = ref<CustomActionRef | null>(null)\n const cacheActionWidths = ref<Record<string, any>>({})\n // const columnsForAction = ref<TableProColumn[]>([])\n const maxWidthForAction = ref<number>(0)\n const currentPage = ref<number>(1)\n\n // 注册 tablepro emitter\n const tableEmitter = mitt()\n\n // 数据返回的时机当作表格内部渲染完毕的时机\n const isTableProRendered = computed(() => {\n return (\n JSON.stringify(unref(tableRef)?.getTableData().visibleData) &&\n JSON.stringify(unref(tableRef)?.getTableData().visibleData) !== '[]'\n )\n })\n\n // 表格 props\n const _getProps = computed(() => {\n // return { ...props, id: props.id ?? buildTableId() } as TableProProps\n return { ...props } as TableProProps\n })\n\n // 根据 default 生成默认属性并与传入的 props 合并\n const getProps = useProps(tableProProps, _getProps, tableRef, emit, tableEmitter)\n\n watch(\n () => props.columns,\n async (curcolumns, precolumns) => {\n if (JSON.stringify(curcolumns) !== JSON.stringify(precolumns)) {\n tableColumns.value = curcolumns\n await nextTick()\n maxWidthForAction.value = 0\n await handleNotPersistentColumnActionWidth()\n }\n },\n {\n deep: true,\n }\n )\n\n // 翻页选择\n const {\n checkboxCaches,\n isCheckboxCacheEnabled,\n checkboxCacheList,\n createCheckboxCache,\n createAllCheckboxCache,\n deleteCheckboxCache,\n deleteAllCheckboxCache,\n } = useCheckboxCache(tableRef, getProps, currentPage, tableEmitter)\n\n // 扩展 columns\n const getColumns = computed(() => {\n // const columns: TableProColumn[] = useColumns(getProps, tableRef, emit)\n const columns: TableProColumn[] = useColumns(\n tableColumns.value,\n unref(getProps).checkboxConfig,\n unref(getProps).radioConfig,\n tableRef,\n emit,\n isCheckboxCacheEnabled,\n createCheckboxCache,\n createAllCheckboxCache,\n deleteCheckboxCache,\n deleteAllCheckboxCache\n )\n return { columns }\n })\n\n // 列持久化处理\n // const columnApiOptions = useColumnApi(getProps, useGlobalConfig(), tableEmitter)\n const columnApiOptions = useColumnApi(\n unref(getProps).id ?? tableId,\n unref(getProps).customActionConfig.column,\n useGlobalConfig(),\n tableEmitter\n )\n\n // columnApiOptions?.useCachedColumnCoverCurrentColumns(getColumns, customActionRef as any)\n watch(\n () => unref(isTableProRendered),\n (isRendered) => {\n if (isRendered) {\n columnApiOptions?.useCachedColumnCoverCurrentColumns(getColumns, customActionRef as any)\n }\n }\n )\n\n // 透传 attr\n const getAttrs = computed(() => {\n return { ...attrs } as any\n })\n\n // 透传 listener\n const getListeners = useListeners(emit)\n\n // extend props&apis\n const { loading, setLoading } = useLoading(getProps)\n // const { loading, setLoading } = useLoading(unref(getProps).loading)\n\n // 手动处理单元格 tooltip\n const { onCellMouseenter, onCellMouseleave, instances } = useCellHover(getProps, emit)\n // const { onCellMouseenter, onCellMouseleave, instances } = useCellHover(\n // unref(getProps).id ?? tableId,\n // unref(getProps).showTooltip,\n // emit\n // )\n\n // 监听全局鼠标滚动取消cell tooltip\n useHideTooltips(instances)\n\n // merge v-bind value\n const getBindValues = computed<TableProProps & TableProEvent>(() => ({\n ...unref(getProps),\n ...unref(getColumns),\n ...unref(getAttrs),\n ...unref(getListeners),\n onCellMouseenter,\n onCellMouseleave,\n loading: unref(loading),\n }))\n\n // 数据处理\n useDataSource(getProps, tableRef)\n // useDataSource(\n // unref(getProps).api,\n // unref(getProps).immediate,\n // unref(getProps).pagerConfig,\n // tableRef\n // )\n\n // 执行dom监听的处理\n useWatchDom(tableRef, operationRef, customActionRef, tableEmitter)\n\n const { calcContent, clearCalcContentCanvas } = useCanvasCalcContent()\n // 统计 action 渲染数据,动态设置宽度\n const setCacheActionWidths = ({ key = '', value = 0 }) => {\n if (key) {\n cacheActionWidths.value[key] = value\n }\n }\n async function handleNotPersistentColumnActionWidth() {\n const tableData = unref(tableRef)?.getTableData().tableData\n const maxWidth = Math.max(...Object.values(unref(cacheActionWidths)))\n if (tableData && isFinite(maxWidth) && maxWidth !== unref(maxWidthForAction)) {\n const currentColumns = toRaw(tableColumns.value ?? []).map((d) => toRaw(d))\n const isSomeColumnSetWidth = currentColumns!.some((column) => !!column.width)\n let actionPrevColumnHandled = false\n for (let i = currentColumns!.length - 1; i >= 0; i--) {\n const _column = currentColumns![i]\n if (_column.field) {\n if (ACTION_COLUMNS.includes(_column.field)) {\n _column.width = Math.ceil(maxWidth)\n _column.minWidth = Math.ceil(maxWidth)\n } else if (\n _column.visible &&\n !_column.fixed &&\n !actionPrevColumnHandled &&\n !isSomeColumnSetWidth\n ) {\n if (_column.width) {\n _column.minWidth = _column.width\n }\n //@ts-ignore\n _column.width = undefined\n //@ts-ignore\n _column.maxWidth = undefined\n actionPrevColumnHandled = true\n }\n }\n }\n\n maxWidthForAction.value = maxWidth\n tableColumns.value = currentColumns\n await unref(tableRef)?.recalculate(true)\n }\n }\n if (columnApiOptions && unref(getBindValues).customActionConfig.column) {\n // 开启了列持久化\n tableEmitter.on('table-pro:column-covered', async () => {\n await handleNotPersistentColumnActionWidth()\n })\n\n // 开启了列持久化但是无持久化数据\n tableEmitter.on('table-pro:column-covered-no-data', async () => {\n await handleNotPersistentColumnActionWidth()\n })\n }\n watch(\n () => JSON.stringify(cacheActionWidths.value),\n async () => {\n await handleNotPersistentColumnActionWidth()\n }\n )\n\n // 表格高度,height设置百分比会跳动,设置auto后需要手动把剩余空间的高度计算后赋值\n const { getHeight, setHeight } = useHeight(wrapperRef, operationRef)\n useFixHeight(tableRef, wrapperRef, setHeight, tableEmitter, getProps)\n\n // 注入数据\n createTableContext({\n tableRef,\n tableEmitter,\n tablePropsRef: getBindValues,\n columnApiOptions,\n setCacheActionWidths,\n calcContent,\n checkboxCaches,\n isCheckboxCacheEnabled,\n checkboxCacheList,\n createAllCheckboxCache,\n deleteCheckboxCache,\n deleteAllCheckboxCache,\n })\n\n // 抛出实例\n expose({\n ...toRefs(\n useExtendInstance(\n tableRef,\n getProps,\n {\n setLoading,\n resetFilterInput: () => filterRef.value.resetFilterInput(),\n resizeTableHeight: setHeight,\n showExportModal: () => {\n customActionRef.value?.showExportModal()\n },\n showColumnsModa: () => {\n customActionRef.value?.showColumnsModa()\n },\n clearCellTooltip,\n },\n filterRef,\n isCheckboxCacheEnabled,\n checkboxCacheList,\n deleteCheckboxCache,\n deleteAllCheckboxCache,\n currentPage\n )\n ),\n })\n\n // 类名处理\n const getWrapperClass = computed(() => {\n const values = unref(getBindValues)\n return [\n // ComponentPrefixCls,\n attrs.class,\n `${ComponentPrefixCls}-wrapper`,\n {\n [`${ComponentPrefixCls}--fill-inner`]: values.fillInner,\n },\n ]\n })\n\n // 统计面板\n const statisticalShow = ref(false)\n const triggerStatistical = () => {\n statisticalShow.value = !statisticalShow.value\n setTimeout(() => {\n setHeight()\n }, 0)\n }\n\n // components\n function createOperation() {\n const values = unref(getBindValues)\n const isFilterFormHasContent =\n values.filterFormConfig.inputForm || values.filterFormConfig.pannelForm\n const isCustomActionHasContent =\n values.customActionConfig.add ||\n values.customActionConfig.delete ||\n values.customActionConfig.export ||\n values.customActionConfig.import ||\n values.customActionConfig.refresh ||\n slots.customAction\n return values.showOperations && (isFilterFormHasContent || isCustomActionHasContent) ? (\n <div class={ComponentOperationsPrefixCls} ref={operationRef}>\n <ComponentFilterForm\n ref={filterRef}\n config={values.filterFormConfig}\n filterExclusion={props.filterExclusion}\n tableRef={tableRef}\n tableSlots={slots}\n filterModalClassName={values.filterModalClassName}\n />\n <ComponentCustomAction\n ref={customActionRef}\n config={values.customActionConfig}\n tableRef={tableRef}\n tableSlots={slots}\n onTriggerStatistical={triggerStatistical}\n />\n {/* <TaCollapseTransition> */}\n <div v-show={statisticalShow.value} class={`${ComponentOperationsPrefixCls}-statistical`}>\n {slots?.statisticalList?.()}\n </div>\n {/* </TaCollapseTransition> */}\n </div>\n ) : null\n }\n\n function elementResizeObserverHandler() {\n let elementResizeObserver: ResizeObserver | null = null\n let calcNum = 0\n\n function createElementResizeObserver() {\n const el = unref(tableRef)?.$el\n const parentEl = el.parentElement\n if (el && parentEl) {\n // TODO: pref record contentBoxSize\n elementResizeObserver = new window.ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.contentBoxSize) {\n const contentBoxSize = Array.isArray(entry.contentBoxSize)\n ? entry.contentBoxSize[0]\n : entry.contentBoxSize\n\n // console.log('start', el, parentEl.parentElement.id ?? tableId, contentBoxSize)\n if (\n contentBoxSize.inlineSize > 0 &&\n contentBoxSize.blockSize > 0 &&\n unref(tableRef)?.recalculate &&\n calcNum <= 3\n ) {\n // console.log('end', el, parentEl.parentElement.id ?? tableId, contentBoxSize)\n requestAnimationFrame(() => {\n unref(tableRef)\n ?.recalculate(true)\n .then(() => {\n calcNum++\n })\n })\n }\n // 不论是否有 keepalive 使用 ResizeObserver 监听时,只要 div 隐藏掉此时宽高均为0\n if (contentBoxSize.inlineSize === 0 && contentBoxSize.blockSize === 0) {\n calcNum = 0\n }\n }\n }\n })\n elementResizeObserver.observe(el)\n elementResizeObserver.observe(parentEl)\n }\n }\n\n function clearElementResizeObserver() {\n elementResizeObserver?.disconnect()\n }\n\n return {\n createElementResizeObserver,\n clearElementResizeObserver,\n }\n }\n\n const { createElementResizeObserver, clearElementResizeObserver } =\n elementResizeObserverHandler()\n\n watch(\n () => getHeight.value,\n async (curheight, preheight) => {\n if (curheight && curheight !== preheight) {\n await nextTick()\n unref(tableRef)?.recalculate?.(true)\n }\n }\n )\n\n onMountedOrActivated(() => {\n createElementResizeObserver()\n handleNotPersistentColumnActionWidth()\n })\n\n function clearCellTooltip() {\n // 鼠标不移出单元格直接单击跳转时要移出正在显示的提示\n onCellMouseleave()\n instances.clear()\n }\n\n function clearColumnAutoWidth() {\n // columnsForAction.value = []\n cacheActionWidths.value = {}\n maxWidthForAction.value = 0\n clearCalcContentCanvas()\n }\n\n onUnmountedOrOnDeactivated(async () => {\n clearCellTooltip()\n clearColumnAutoWidth()\n clearElementResizeObserver()\n await deleteAllCheckboxCache({\n deleteByPage: false,\n })\n })\n\n return () => {\n return (\n <div\n class={unref(getWrapperClass)}\n ref={wrapperRef}\n id={unref(getBindValues).id ?? tableId}\n >\n {createOperation()}\n <div\n class={`${ComponentPrefixCls}`}\n style={{ height: unref(getHeight), overflow: 'hidden' }}\n >\n <Grid\n ref={tableRef}\n {...unref(getBindValues)}\n onPageChange={(...args) => {\n unref(getBindValues).onPageChange?.(...args)\n currentPage.value = args[0].currentPage ?? currentPage.value\n clearCellTooltip()\n // clearColumnAutoWidth()\n\n if (unref(getBindValues).scrollTopActions.includes('paginate')) {\n nextTick(() => {\n unref(tableRef)?.scrollTo?.(0, 0)\n })\n }\n }}\n onSortChange={() => {\n // unref(getBindValues).onSortChange?.(...args)\n clearCellTooltip()\n // clearColumnAutoWidth()\n }}\n >\n {{\n empty: () => <ComponentEmpty />,\n ...slots,\n }}\n </Grid>\n </div>\n </div>\n )\n }\n },\n})\n"],"names":["useCheckboxCache","_VXETable","Grid","ComponentPrefixCls","name","ComponentName","props","tableProProps","emits","tableProEmits","attrs","expose","emit","tableId","buildTableId","tableColumns","ref","columns","tableRef","filterRef","wrapperRef","operationRef","customActionRef","maxWidthForAction","isTableProRendered","JSON","stringify","unref","visibleData","computed","getProps","deep","isCheckboxCacheEnabled","createAllCheckboxCache","deleteAllCheckboxCache","columnApiOptions","useCachedColumnCoverCurrentColumns","useListeners","setLoading","onCellMouseenter","onCellMouseleave","instances","useHideTooltips","getBindValues","getAttrs","getListeners","loading","useDataSource","clearCalcContentCanvas","useCanvasCalcContent","setCacheActionWidths","key","value","cacheActionWidths","tableData","toRaw","currentColumns","actionPrevColumnHandled","field","ACTION_COLUMNS","_column","width","minWidth","undefined","tableEmitter","on","setHeight","useFixHeight","createTableContext","_createVNode","tablePropsRef","toRefs","resetFilterInput","resizeTableHeight","showExportModal","showColumnsModa","clearCellTooltip","checkboxCacheList","deleteCheckboxCache","triggerStatistical","statisticalShow","setTimeout","isFilterFormHasContent","isCustomActionHasContent","values","filterModalClassName","slots","elementResizeObserver","window","entry","contentBoxSize","requestAnimationFrame","recalculate","inlineSize","calcNum","createElementResizeObserver","clearElementResizeObserver"],"mappings":"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"}