UNPKG

tdesign-vue-next

Version:
1 lines 37.2 kB
{"version":3,"file":"primary-table.mjs","sources":["../../../components/table/primary-table.tsx"],"sourcesContent":["import { computed, defineComponent, toRefs, h, ref, onMounted, getCurrentInstance } from 'vue';\nimport { get, omit } from 'lodash-es';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport BaseTable from './base-table';\nimport { useConfig, useTNodeJSX, ScrollToElementParams } from '@tdesign/shared-hooks';\nimport useColumnController from './hooks/useColumnController';\nimport useRowExpand from './hooks/useRowExpand';\nimport useTableHeader, { renderTitle } from './hooks/useTableHeader';\nimport useRowSelect from './hooks/useRowSelect';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, PrimaryTableCellParams } from './type';\nimport useSorter from './hooks/useSorter';\nimport useFilter from './hooks/useFilter';\nimport useDragSort from './hooks/useDragSort';\nimport useAsyncLoading from './hooks/useAsyncLoading';\nimport EditableCell, { EditableCellProps } from './components/editable-cell';\nimport { PageInfo } from '../pagination';\nimport useClassName from './hooks/useClassName';\n\nimport useEditableRow from './hooks/useEditableRow';\nimport useStyle from './hooks/useStyle';\n\nimport type { BaseTableProps } from './types';\n\nexport { BASE_TABLE_ALL_EVENTS } from './base-table';\n\nconst OMIT_PROPS = [\n 'hideSortTips',\n 'dragSort',\n 'defaultExpandedRowKeys',\n 'defaultSelectedRowKeys',\n 'columnController',\n 'filterRow',\n 'sortOnRowDraggable',\n 'expandOnRowClick',\n 'expand-on-row-click',\n 'expanded-row',\n 'editable-row-keys',\n 'editable-cell-state',\n 'filter-value',\n 'multipleSort',\n 'expandIcon',\n 'expand-icon',\n 'reserveSelectedRowOnPaginate',\n 'expandedRowKeys',\n 'expandedRow',\n 'reserve-selected-row-on-paginate',\n 'reserveSelectedRowOnPaginate',\n 'selected-row-keys',\n 'selectedRowKeys',\n 'selectOnRowClick',\n 'column-controller',\n 'columnController',\n 'dragSort',\n 'drag-sort',\n 'hideSortTips',\n 'showSortColumnBgColor',\n 'filter-row',\n 'filterRow',\n 'multiple-sort',\n 'multipleSort',\n 'async-loading',\n 'onChange',\n 'onAsyncLoadingClick',\n 'onColumnChange',\n 'onColumnControllerVisibleChange',\n 'onDataChange',\n 'onDisplayColumnsChange',\n 'onDragSort',\n 'onExpandChange',\n 'onFilterChange',\n 'onSelectChange',\n 'onSortChange',\n];\n\nexport default defineComponent({\n name: 'TPrimaryTable',\n props: {\n ...baseTableProps,\n ...primaryTableProps,\n },\n setup(props, context) {\n const renderTNode = useTNodeJSX();\n const { columns, columnController } = toRefs(props);\n const primaryTableRef = ref(null);\n const showElement = ref(false);\n\n const { classPrefix, tableDraggableClasses, tableBaseClass, tableSelectedClasses, tableSortClasses } =\n useClassName();\n const { globalConfig } = useConfig('table', props.locale);\n const { sizeClassNames } = useStyle(props);\n const tableSize = computed(() => props.size ?? globalConfig.value.size);\n // 自定义列配置功能\n const { tDisplayColumns, renderColumnController } = useColumnController(props, context);\n\n // 展开/收起行功能\n const {\n showExpandedRow,\n showExpandIconColumn,\n getExpandColumn,\n renderExpandedRow,\n onInnerExpandRowClick,\n getExpandedRowClass,\n } = useRowExpand(props, context);\n\n // 排序功能\n const { renderSortIcon } = useSorter(props, context);\n\n // 行选中功能\n const {\n selectColumn,\n showRowSelect,\n selectedRowClassNames,\n currentPaginateData,\n formatToRowSelectColumn,\n setTSelectedRowKeys,\n onInnerSelectRowClick,\n handleRowSelectWithAreaSelection,\n } = useRowSelect(props, tableSelectedClasses);\n\n // 过滤功能\n const {\n hasEmptyCondition,\n isTableOverflowHidden,\n renderFilterIcon,\n renderFirstFilterRow,\n setFilterPrimaryTableRef,\n } = useFilter(props, context);\n\n // 拖拽排序功能\n const dragSortParams = computed(() => ({\n showElement: showElement.value,\n }));\n const {\n isRowHandlerDraggable,\n isRowDraggable,\n isColDraggable,\n innerPagination,\n setDragSortPrimaryTableRef,\n setDragSortColumns,\n } = useDragSort(props, context, dragSortParams);\n\n const { renderTitleWidthIcon } = useTableHeader(props);\n const { renderAsyncLoading } = useAsyncLoading(props);\n\n // 可编辑行\n const {\n errorListMap,\n editableKeysMap,\n validateRowData,\n validateTableData,\n validateTableCellData,\n onRuleChange,\n clearValidateData,\n onUpdateEditedCell,\n getEditRowData,\n onPrimaryTableCellEditChange,\n } = useEditableRow(props);\n\n const innerKeyboardRowHover = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n const innerDisableSpaceInactiveRow = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n const primaryTableClasses = computed(() => {\n return {\n [tableDraggableClasses.colDraggable]: isColDraggable.value,\n [tableDraggableClasses.rowHandlerDraggable]: isRowHandlerDraggable.value,\n [tableDraggableClasses.rowDraggable]: isRowDraggable.value,\n [tableBaseClass.overflowVisible]: isTableOverflowHidden.value === false,\n [tableBaseClass.tableRowEdit]: props.editableRowKeys,\n [`${classPrefix}-table--select-${selectColumn.value?.type}`]: selectColumn.value,\n [`${classPrefix}-table--row-select`]: showRowSelect.value,\n [`${classPrefix}-table--row-expandable`]: showExpandedRow.value,\n };\n });\n\n // 如果想给 TR 添加类名,请在这里补充,不要透传更多额外 Props 到 BaseTable\n const tRowClassNames = computed(() => {\n const tClassNames = [props.rowClassName, selectedRowClassNames.value, getExpandedRowClass];\n return tClassNames.filter((v) => v);\n });\n\n // 如果想给 TR 添加属性,请在这里补充,不要透传更多额外 Props 到 BaseTable\n const tRowAttributes = computed(() => {\n const tAttributes = [props.rowAttributes];\n if (isRowHandlerDraggable.value || isRowDraggable.value) {\n tAttributes.push(({ row }) => ({ 'data-id': get(row, props.rowKey || 'id') }));\n }\n return tAttributes.filter((v) => v);\n });\n\n // 多个 Hook 共用 primaryTableRef\n onMounted(() => {\n setFilterPrimaryTableRef(primaryTableRef.value);\n setDragSortPrimaryTableRef(primaryTableRef.value);\n });\n\n // 对外暴露的方法\n context.expose({\n validateRowData,\n validateTableData,\n validateTableCellData,\n clearValidateData,\n refreshTable: () => {\n primaryTableRef.value.refreshTable();\n },\n scrollToElement: (data: ScrollToElementParams) => {\n primaryTableRef.value.scrollToElement(data);\n },\n scrollColumnIntoView: (colKey: string) => {\n primaryTableRef.value.scrollColumnIntoView(colKey);\n },\n // 暴露基础表格 ref 及相关方法\n baseTableRef: primaryTableRef,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const onEditableCellChange: EditableCellProps['onChange'] = (params) => {\n props.onRowEdit?.(params);\n const rowValue = get(params.editedRow, props.rowKey || 'id');\n onUpdateEditedCell(rowValue, params.row, {\n [params.col.colKey]: params.value,\n });\n };\n\n // 1. 影响列数量的因素有:自定义列配置、展开/收起行、多级表头;2. 影响表头内容的因素有:排序图标、筛选图标\n const getColumns = (columns: PrimaryTableCol<TableRowData>[], parentDisplay = false) => {\n const arr: PrimaryTableCol<TableRowData>[] = [];\n for (let i = 0, len = columns.length; i < len; i++) {\n let item = { ...columns[i] };\n // 自定义列显示控制\n const isDisplayColumn = item.children?.length || tDisplayColumns.value?.includes(item.colKey);\n if (\n !isDisplayColumn &&\n (props.columnController || props.displayColumns || props.defaultDisplayColumns) &&\n !parentDisplay\n )\n continue;\n item = formatToRowSelectColumn(item);\n const { sort } = props;\n if (item.sorter && props.showSortColumnBgColor) {\n const sorts = sort instanceof Array ? sort : [sort];\n const sortedColumn = sorts.find(\n (sort) => sort && sort.sortBy === item.colKey && sort.descending !== undefined,\n );\n if (sortedColumn) {\n item.className =\n item.className instanceof Array\n ? item.className.concat(tableSortClasses.sortColumn)\n : [item.className, tableSortClasses.sortColumn];\n }\n }\n // 添加排序图标和过滤图标\n if (item.sorter || item.filter) {\n const titleContent = renderTitle(context.slots, item, i);\n const { ellipsisTitle } = item;\n item.title = (h, p) => {\n const sortIcon = item.sorter ? renderSortIcon(p) : null;\n const filterIcon = item.filter ? renderFilterIcon(p) : null;\n // @ts-ignore 注意:此处 Vue2 和 Vue3 有所不同\n const attach = primaryTableRef.value?.tableContentRef;\n return renderTitleWidthIcon(\n [titleContent, sortIcon, filterIcon],\n p.col,\n p.colIndex,\n ellipsisTitle,\n attach,\n {\n classPrefix,\n ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n },\n );\n };\n item.ellipsisTitle = false;\n }\n // 如果是单元格可编辑状态\n if (item.edit?.component) {\n const oldCell = item.cell;\n item.cell = (h, p: PrimaryTableCellParams<TableRowData>) => {\n const cellProps: EditableCellProps = {\n ...p,\n row: getEditRowData(p),\n oldCell,\n rowKey: props.rowKey || 'id',\n tableBaseClass,\n cellEmptyContent: props.cellEmptyContent,\n onChange: onEditableCellChange,\n onValidate: props.onRowValidate,\n onRuleChange,\n onEditableChange: onPrimaryTableCellEditChange,\n };\n if (props.editableRowKeys) {\n const rowValue = get(p.row, props.rowKey || 'id');\n cellProps.editable = editableKeysMap.value[rowValue] || false;\n const key = [rowValue, p.col.colKey].join('__');\n const errorList = errorListMap.value?.[key];\n errorList && (cellProps.errors = errorList);\n }\n if (props.editableCellState) {\n cellProps.readonly = !props.editableCellState(p);\n }\n return <EditableCell {...cellProps} v-slots={context.slots} onUpdateEditedCell={onUpdateEditedCell} />;\n };\n }\n if (item.children?.length) {\n item.children = getColumns(item.children, parentDisplay || tDisplayColumns.value?.includes(item.colKey));\n }\n // 多级表头和自定义列配置特殊逻辑:要么子节点不存在,要么子节点长度大于 1,方便做自定义列配置\n if (!item.children || item.children?.length) {\n arr.push(item);\n }\n }\n return arr;\n };\n\n const tColumns = computed(() => {\n const cols = getColumns(columns.value);\n if (showExpandIconColumn.value) {\n cols.unshift(getExpandColumn());\n }\n return cols;\n });\n\n const onInnerPageChange = (pageInfo: PageInfo, newData: Array<TableRowData>) => {\n innerPagination.value = { ...innerPagination.value, ...pageInfo };\n currentPaginateData.value = newData;\n props.onPageChange?.(pageInfo, newData);\n const changeParams: Parameters<TdPrimaryTableProps['onChange']> = [\n { pagination: pageInfo },\n { trigger: 'pagination', currentData: newData },\n ];\n props.onChange?.(...changeParams);\n // 是否在分页时保留选中结果,如果不保留则需清空\n if (!props.reserveSelectedRowOnPaginate) {\n setTSelectedRowKeys([], {\n selectedRowData: [],\n type: 'uncheck',\n currentRowKey: 'CLEAR_ON_PAGINATE',\n });\n }\n };\n\n const onInnerActiveRowAction: BaseTableProps['onActiveRowAction'] = (params) => {\n props.onActiveRowAction?.(params);\n handleRowSelectWithAreaSelection(params);\n };\n\n const onSingleRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n if (props.expandOnRowClick) {\n onInnerExpandRowClick(params);\n }\n if (props.selectOnRowClick) {\n onInnerSelectRowClick(params);\n }\n };\n\n // handle click and dblclick exits at the same time\n let timer: any;\n const DURATION = 250;\n const onInnerRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n // no dbl click conflict, no delay\n if (!props.onRowDblclick) {\n onSingleRowClick(params);\n return;\n }\n if (timer) {\n // dblclick\n clearTimeout(timer);\n timer = undefined;\n } else {\n timer = setTimeout(() => {\n onSingleRowClick(params);\n timer = undefined;\n }, DURATION);\n }\n };\n\n const onShowElementChange = (val: boolean) => {\n showElement.value = val;\n };\n\n const formatNode = (\n api: 'topContent' | 'bottomContent' | 'firstFullRow' | 'lastFullRow',\n renderInnerNode: Function,\n condition: boolean,\n extra?: { reverse?: boolean },\n ) => {\n if (!condition) return props[api];\n const innerNode = renderInnerNode(h);\n const propsNode = renderTNode(api);\n if (innerNode && !propsNode) return () => innerNode;\n if (propsNode && !innerNode) return () => propsNode;\n if (innerNode && propsNode) {\n return () =>\n extra?.reverse ? (\n <div>\n {innerNode}\n {propsNode}\n </div>\n ) : (\n <div>\n {propsNode}\n {innerNode}\n </div>\n );\n }\n return null;\n };\n\n return () => {\n const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n // @ts-ignore\n const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n const isBottomController = isColumnController && placement?.indexOf('bottom') !== -1;\n const topContent = formatNode('topContent', renderColumnController, isColumnController && !isBottomController);\n const bottomContent = formatNode('bottomContent', renderColumnController, isBottomController, {\n reverse: true,\n });\n const firstFullRow = formatNode('firstFullRow', renderFirstFilterRow, !hasEmptyCondition.value);\n const lastFullRow = formatNode('lastFullRow', renderAsyncLoading, !!props.asyncLoading);\n\n // important for base-table controlled properties\n const { vnode } = getCurrentInstance();\n\n const baseTableProps: BaseTableProps = {\n ...omit(vnode.props, OMIT_PROPS),\n rowKey: props.rowKey,\n rowClassName: tRowClassNames.value,\n rowAttributes: tRowAttributes.value,\n columns: tColumns.value,\n keyboardRowHover: props.keyboardRowHover ?? innerKeyboardRowHover.value,\n disableSpaceInactiveRow: props.disableSpaceInactiveRow ?? innerDisableSpaceInactiveRow.value,\n topContent,\n bottomContent,\n firstFullRow,\n lastFullRow,\n thDraggable: ['col', 'row-handler-col'].includes(props.dragSort),\n onShowElementChange,\n onPageChange: onInnerPageChange,\n renderExpandedRow: showExpandedRow.value ? renderExpandedRow : undefined,\n onActiveRowAction: onInnerActiveRowAction,\n };\n\n if (props.expandOnRowClick || props.selectOnRowClick) {\n baseTableProps.onRowClick = onInnerRowClick;\n }\n\n return (\n <BaseTable\n v-slots={context.slots}\n {...baseTableProps}\n ref={primaryTableRef}\n class={primaryTableClasses.value}\n onLeafColumnsChange={setDragSortColumns}\n />\n );\n };\n },\n});\n"],"names":["OMIT_PROPS","defineComponent","name","props","_objectSpread","baseTableProps","primaryTableProps","setup","context","renderTNode","useTNodeJSX","_toRefs","toRefs","columns","columnController","primaryTableRef","ref","showElement","_useClassName","useClassName","classPrefix","tableDraggableClasses","tableBaseClass","tableSelectedClasses","tableSortClasses","_useConfig","useConfig","locale","globalConfig","_useStyle","useStyle","sizeClassNames","tableSize","computed","_props$size","size","value","_useColumnController","useColumnController","tDisplayColumns","renderColumnController","_useRowExpand","useRowExpand","showExpandedRow","showExpandIconColumn","getExpandColumn","renderExpandedRow","onInnerExpandRowClick","getExpandedRowClass","_useSorter","useSorter","renderSortIcon","_useRowSelect","useRowSelect","selectColumn","showRowSelect","selectedRowClassNames","currentPaginateData","formatToRowSelectColumn","setTSelectedRowKeys","onInnerSelectRowClick","handleRowSelectWithAreaSelection","_useFilter","useFilter","hasEmptyCondition","isTableOverflowHidden","renderFilterIcon","renderFirstFilterRow","setFilterPrimaryTableRef","dragSortParams","_useDragSort","useDragSort","isRowHandlerDraggable","isRowDraggable","isColDraggable","innerPagination","setDragSortPrimaryTableRef","setDragSortColumns","_useTableHeader","useTableHeader","renderTitleWidthIcon","_useAsyncLoading","useAsyncLoading","renderAsyncLoading","_useEditableRow","useEditableRow","errorListMap","editableKeysMap","validateRowData","validateTableData","validateTableCellData","onRuleChange","clearValidateData","onUpdateEditedCell","getEditRowData","onPrimaryTableCellEditChange","innerKeyboardRowHover","Boolean","innerDisableSpaceInactiveRow","primaryTableClasses","_selectColumn$value","_defineProperty","colDraggable","rowHandlerDraggable","rowDraggable","overflowVisible","tableRowEdit","editableRowKeys","concat","type","tRowClassNames","tClassNames","rowClassName","filter","v","tRowAttributes","tAttributes","rowAttributes","push","_ref2","row","get","rowKey","onMounted","expose","refreshTable","scrollToElement","data","scrollColumnIntoView","colKey","baseTableRef","onEditableCellChange","params","_props$onRowEdit","onRowEdit","call","rowValue","editedRow","col","getColumns","parentDisplay","arguments","length","undefined","arr","_loop","_item$children","_tDisplayColumns$valu","_item$edit","_item$children2","_item$children3","item","i","isDisplayColumn","children","includes","displayColumns","defaultDisplayColumns","sort","sorter","showSortColumnBgColor","sorts","Array","sortedColumn","find","sortBy","descending","className","sortColumn","titleContent","renderTitle","slots","_item","ellipsisTitle","title","h","p","_primaryTableRef$valu","sortIcon","filterIcon","attach","tableContentRef","colIndex","ellipsisOverlayClassName","edit","component","oldCell","cell","cellProps","cellEmptyContent","onChange","onValidate","onRowValidate","onEditableChange","_errorListMap$value","editable","key","join","errorList","errors","editableCellState","readonly","_createVNode","EditableCell","_mergeProps","_tDisplayColumns$valu2","len","tColumns","cols","unshift","onInnerPageChange","pageInfo","newData","_props$onPageChange","_props$onChange","onPageChange","changeParams","pagination","trigger","currentData","apply","reserveSelectedRowOnPaginate","selectedRowData","currentRowKey","onInnerActiveRowAction","_props$onActiveRowAct","onActiveRowAction","onSingleRowClick","expandOnRowClick","selectOnRowClick","timer","DURATION","onInnerRowClick","onRowDblclick","clearTimeout","setTimeout","onShowElementChange","val","formatNode","api","renderInnerNode","condition","extra","innerNode","propsNode","reverse","_props$keyboardRowHov","_props$disableSpaceIn","isColumnController","Object","keys","placement","isBottomController","indexOf","topContent","bottomContent","firstFullRow","lastFullRow","asyncLoading","_getCurrentInstance","getCurrentInstance","vnode","omit","keyboardRowHover","disableSpaceInactiveRow","thDraggable","dragSort","onRowClick","BaseTable"],"mappings":"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"}