tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 16.8 kB
Source Map (JSON)
{"version":3,"file":"tbody.mjs","sources":["../../../../components/table/components/tbody.tsx"],"sourcesContent":["import { defineComponent, computed, PropType, toRefs } from 'vue';\nimport { camelCase, get, pick } from 'lodash-es';\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\n\nimport { useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport useClassName from '../hooks/useClassName';\nimport baseTableProps from '../base-table-props';\nimport { TNodeReturnValue } from '../../common';\nimport useRowspanAndColspan from '../hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from '../types';\nimport { TdBaseTableProps } from '../type';\nimport type { VirtualScrollConfig } from '@tdesign/shared-hooks';\nimport type { CamelCase } from '@tdesign/common-js/utils/types';\n\nexport const ROW_AND_TD_LISTENERS = [...ROW_LISTENERS, 'cell-click'];\nexport interface TableBodyProps extends BaseTableProps {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n showColumnShadow: { left: boolean; right: boolean };\n tableElm: any;\n tableWidth: number;\n isWidthOverflow: boolean;\n virtualConfig: VirtualScrollConfig;\n // HTMLDivElement\n tableContentElm: any;\n cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n handleRowMounted: (rowData: any) => void;\n}\n\n// table 到 body 的相同属性\nexport const extendTableProps = [\n 'bordered',\n 'rowKey',\n 'rowClassName',\n 'rowAttributes',\n 'loading',\n 'empty',\n 'fixedRows',\n 'firstFullRow',\n 'lastFullRow',\n 'rowspanAndColspan',\n 'scroll',\n 'cellEmptyContent',\n 'pagination',\n 'attach',\n 'onCellClick',\n 'onPageChange',\n 'onRowClick',\n 'onRowDblclick',\n 'onRowMouseover',\n 'onRowMousedown',\n 'onRowMouseenter',\n 'onRowMouseleave',\n 'onRowMouseup',\n 'onScroll',\n 'onScrollX',\n 'onScrollY',\n];\n\nexport default defineComponent({\n name: 'TBody',\n props: {\n classPrefix: String,\n data: Array as PropType<TableBodyProps['data']>,\n columns: Array as PropType<TableBodyProps['columns']>,\n ellipsisOverlayClassName: String,\n rowAndColFixedPosition: Map as PropType<TableBodyProps['rowAndColFixedPosition']>,\n showColumnShadow: Object as PropType<TableBodyProps['showColumnShadow']>,\n // eslint-disable-next-line\n tableElm: {},\n tableWidth: Number,\n isWidthOverflow: Boolean,\n virtualConfig: Object as PropType<VirtualScrollConfig>,\n // eslint-disable-next-line\n tableContentElm: {},\n handleRowMounted: Function as PropType<TableBodyProps['handleRowMounted']>,\n renderExpandedRow: Function as PropType<TableBodyProps['renderExpandedRow']>,\n firstFullRow: [String, Function] as PropType<TableBodyProps['firstFullRow']>,\n lastFullRow: [String, Function] as PropType<TableBodyProps['lastFullRow']>,\n activeRow: [Array] as PropType<Array<string | number>>,\n hoverRow: [String, Number],\n ...pick(baseTableProps, extendTableProps),\n },\n setup(props, { slots }) {\n const renderTNode = useTNodeJSX();\n const { data, columns, rowKey, rowspanAndColspan } = toRefs(props);\n const { t, globalConfig } = useConfig('table', props.locale);\n const { tableFullRowClasses, tableBaseClass } = useClassName();\n const { skipSpansMap } = useRowspanAndColspan(data, columns, rowKey, rowspanAndColspan);\n\n const tbodyClasses = computed(() => [tableBaseClass.body]);\n\n return () => {\n const renderEmpty = (columns: TableBodyProps['columns']) => {\n const tableWidth = props.bordered ? props.tableWidth - 2 : props.tableWidth;\n return (\n <tr class={[tableBaseClass.emptyRow, { [tableFullRowClasses.base]: props.isWidthOverflow }]}>\n <td colspan={columns.length}>\n <div\n class={[tableBaseClass.empty, { [tableFullRowClasses.innerFullRow]: props.isWidthOverflow }]}\n style={props.isWidthOverflow ? { width: `${tableWidth}px` } : {}}\n >\n {renderTNode('empty') || t(globalConfig.value.empty)}\n </div>\n </td>\n </tr>\n );\n };\n\n const getFullRow = (columnLength: number, type: 'first-full-row' | 'last-full-row') => {\n const tType = camelCase(type) as CamelCase<typeof type, '-'>;\n const fullRowNode = renderTNode(tType);\n if (['', null, undefined, false].includes(fullRowNode)) return null;\n const isFixedToLeft = props.isWidthOverflow && columns.value.find((col) => col.fixed === 'left');\n const classes = [tableFullRowClasses.base, tableFullRowClasses[tType]];\n const tableWidth = props.bordered ? props.tableWidth - 2 : props.tableWidth;\n /** innerFullRow 和 innerFullElement 同时存在,是为了保证 固定列时,当前行不随内容进行横向滚动 */\n return (\n <tr class={classes} key={`key-full-row-${type}`}>\n <td colspan={columnLength}>\n <div\n class={{ [tableFullRowClasses.innerFullRow]: isFixedToLeft }}\n style={isFixedToLeft ? { width: `${tableWidth}px` } : {}}\n >\n <div class={tableFullRowClasses.innerFullElement}>{fullRowNode}</div>\n </div>\n </td>\n </tr>\n );\n };\n\n const columnLength = columns.value.length;\n const dataLength = data.value?.length;\n const trNodeList: TNodeReturnValue[] = [];\n\n const properties = [\n 'classPrefix',\n 'ellipsisOverlayClassName',\n 'rowAndColFixedPosition',\n 'scroll',\n 'tableElm',\n 'tableContentElm',\n 'pagination',\n 'attach',\n ];\n\n const renderData = props.virtualConfig.isVirtualScroll.value ? props.virtualConfig.visibleData.value : data.value;\n\n renderData?.forEach((row, rowIndex) => {\n const rowKey = props.rowKey || 'id';\n const rowValue = get(row, rowKey);\n const trProps = {\n ...pick(props, TABLE_PROPS),\n rowKey,\n row,\n columns: columns.value,\n rowIndex: row.VIRTUAL_SCROLL_INDEX || rowIndex,\n dataLength,\n skipSpansMap: skipSpansMap.value,\n virtualConfig: props.virtualConfig,\n active: props.activeRow?.includes(rowValue),\n isHover: props.hoverRow === rowValue,\n ...pick(props, properties),\n // 遍历的同时,计算后面的节点,是否会因为合并单元格跳过渲染\n };\n if (props.onCellClick) {\n trProps.onCellClick = props.onCellClick;\n }\n\n const trNode = (\n <TrElement\n v-slots={slots}\n key={get(row, rowKey || 'id') || rowIndex}\n {...trProps}\n onRowMounted={props.handleRowMounted}\n />\n );\n trNodeList.push(trNode);\n\n // 执行展开行渲染\n if (props.renderExpandedRow) {\n const p = {\n row,\n index: rowIndex,\n columns: columns.value,\n tableWidth: props.tableWidth,\n isWidthOverflow: props.isWidthOverflow,\n };\n const expandedContent = props.renderExpandedRow(p);\n expandedContent && trNodeList.push(expandedContent);\n }\n });\n\n const list = [\n getFullRow(columnLength, 'first-full-row'),\n ...trNodeList,\n getFullRow(columnLength, 'last-full-row'),\n ];\n\n const isEmpty = !data.value?.length && !props.loading && !props.firstFullRow && !props.lastFullRow;\n\n // 垫上隐藏的 tr 元素高度\n const translate = `translateY(${props.virtualConfig?.translateY.value}px)`;\n const posStyle = props.virtualConfig?.isVirtualScroll.value\n ? {\n transform: translate,\n '-ms-transform': translate,\n '-moz-transform': translate,\n '-webkit-transform': translate,\n }\n : undefined;\n\n return (\n <tbody class={tbodyClasses.value} style={{ ...posStyle }}>\n {isEmpty ? renderEmpty(columns.value) : list}\n </tbody>\n );\n };\n },\n});\n"],"names":["ROW_AND_TD_LISTENERS","concat","_toConsumableArray","ROW_LISTENERS","extendTableProps","defineComponent","name","props","_objectSpread","classPrefix","String","data","Array","columns","ellipsisOverlayClassName","rowAndColFixedPosition","Map","showColumnShadow","Object","tableElm","tableWidth","Number","isWidthOverflow","Boolean","virtualConfig","tableContentElm","handleRowMounted","Function","renderExpandedRow","firstFullRow","lastFullRow","activeRow","hoverRow","pick","baseTableProps","setup","_ref","slots","renderTNode","useTNodeJSX","_toRefs","toRefs","rowKey","rowspanAndColspan","_useConfig","useConfig","locale","t","globalConfig","_useClassName","useClassName","tableFullRowClasses","tableBaseClass","_useRowspanAndColspan","useRowspanAndColspan","skipSpansMap","tbodyClasses","computed","body","_data$value","_data$value2","_props$virtualConfig","_props$virtualConfig2","renderEmpty","bordered","_createVNode","emptyRow","base","length","empty","_defineProperty","innerFullRow","width","value","getFullRow","columnLength","type","tType","camelCase","fullRowNode","includes","isFixedToLeft","find","col","fixed","classes","innerFullElement","dataLength","trNodeList","properties","renderData","isVirtualScroll","visibleData","forEach","row","rowIndex","_props$activeRow","rowValue","get","trProps","TABLE_PROPS","VIRTUAL_SCROLL_INDEX","active","isHover","onCellClick","trNode","TrElement","_mergeProps","push","p","index","expandedContent","list","isEmpty","loading","translate","translateY","posStyle","transform"],"mappings":"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"}