UNPKG

tdesign-vue-next

Version:
1 lines 17.2 kB
{"version":3,"file":"tbody.mjs","sources":["../../../components/table/tbody.tsx"],"sourcesContent":["import { defineComponent, computed, PropType, toRefs } from 'vue';\nimport { camelCase } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { pick } from 'lodash-es';\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\nimport { useConfig } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useClassName from './hooks/useClassName';\nimport baseTableProps from './base-table-props';\nimport { TNodeReturnValue } from '../common';\nimport useRowspanAndColspan from './hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from './interface';\nimport { TdBaseTableProps } from './type';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\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\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\n // eslint-disable-next-line\n setup(props: TableBodyProps) {\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 t,\n globalConfig,\n renderTNode,\n tableFullRowClasses,\n tbodyClasses,\n tableBaseClass,\n skipSpansMap,\n };\n },\n\n render() {\n const renderEmpty = (columns: TableBodyProps['columns']) => {\n const tableWidth = this.bordered ? this.tableWidth - 2 : this.tableWidth;\n return (\n <tr class={[this.tableBaseClass.emptyRow, { [this.tableFullRowClasses.base]: this.isWidthOverflow }]}>\n <td colspan={columns.length}>\n <div\n class={[this.tableBaseClass.empty, { [this.tableFullRowClasses.innerFullRow]: this.isWidthOverflow }]}\n style={this.isWidthOverflow ? { width: `${tableWidth}px` } : {}}\n >\n {this.renderTNode('empty') || this.t(this.globalConfig.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 = this.renderTNode(tType);\n if (['', null, undefined, false].includes(fullRowNode)) return null;\n const isFixedToLeft = this.isWidthOverflow && this.columns.find((col) => col.fixed === 'left');\n const classes = [this.tableFullRowClasses.base, this.tableFullRowClasses[tType]];\n const tableWidth = this.bordered ? this.tableWidth - 2 : this.tableWidth;\n /** innerFullRow 和 innerFullElement 同时存在,是为了保证 固定列时,当前行不随内容进行横向滚动 */\n return (\n <tr class={classes} key={`key-full-row-${type}`}>\n <td colspan={columnLength}>\n <div\n class={{ [this.tableFullRowClasses.innerFullRow]: isFixedToLeft }}\n style={isFixedToLeft ? { width: `${tableWidth}px` } : {}}\n >\n <div class={this.tableFullRowClasses.innerFullElement}>{fullRowNode}</div>\n </div>\n </td>\n </tr>\n );\n };\n\n const columnLength = this.columns.length;\n const dataLength = this.data?.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 = this.virtualConfig.isVirtualScroll.value ? this.virtualConfig.visibleData.value : this.data;\n\n renderData?.forEach((row, rowIndex) => {\n const rowKey = this.rowKey || 'id';\n const rowValue = get(row, rowKey);\n const trProps = {\n ...pick(this.$props, TABLE_PROPS),\n rowKey,\n row,\n columns: this.columns,\n rowIndex: row.VIRTUAL_SCROLL_INDEX || rowIndex,\n dataLength,\n skipSpansMap: this.skipSpansMap,\n virtualConfig: this.virtualConfig,\n active: this.activeRow?.includes(rowValue),\n isHover: this.hoverRow === rowValue,\n ...pick(this.$props, properties),\n // 遍历的同时,计算后面的节点,是否会因为合并单元格跳过渲染\n };\n if (this.onCellClick) {\n trProps.onCellClick = this.onCellClick;\n }\n\n const trNode = (\n <TrElement\n v-slots={this.$slots}\n key={get(row, this.rowKey || 'id') || rowIndex}\n {...trProps}\n onRowMounted={this.handleRowMounted}\n ></TrElement>\n );\n trNodeList.push(trNode);\n\n // 执行展开行渲染\n if (this.renderExpandedRow) {\n const p = {\n row,\n index: rowIndex,\n columns: this.columns,\n tableWidth: this.tableWidth,\n isWidthOverflow: this.isWidthOverflow,\n };\n const expandedContent = this.renderExpandedRow(p);\n expandedContent && trNodeList.push(expandedContent);\n }\n });\n\n const list = [getFullRow(columnLength, 'first-full-row'), ...trNodeList, getFullRow(columnLength, 'last-full-row')];\n\n const isEmpty = !this.data?.length && !this.loading && !this.firstFullRow && !this.lastFullRow;\n\n // 垫上隐藏的 tr 元素高度\n const translate = `translateY(${this.virtualConfig?.translateY.value}px)`;\n const posStyle = this.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={this.tbodyClasses} style={{ ...posStyle }}>\n {isEmpty ? renderEmpty(this.columns) : list}\n </tbody>\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","renderTNode","useTNodeJSX","_toRefs","toRefs","rowKey","rowspanAndColspan","_useConfig","useConfig","locale","t","globalConfig","_useClassName","useClassName","tableFullRowClasses","tableBaseClass","_useRowspanAndColspan","useRowspanAndColspan","skipSpansMap","tbodyClasses","computed","body","render","_this","_this$data","_this$data2","_this$virtualConfig","_this$virtualConfig2","renderEmpty","bordered","_createVNode","emptyRow","_defineProperty","base","length","empty","innerFullRow","width","getFullRow","columnLength","type","tType","camelCase","fullRowNode","includes","isFixedToLeft","find","col","fixed","classes","innerFullElement","dataLength","trNodeList","properties","renderData","isVirtualScroll","value","visibleData","forEach","row","rowIndex","_this$activeRow","rowValue","get","trProps","$props","TABLE_PROPS","VIRTUAL_SCROLL_INDEX","active","isHover","onCellClick","trNode","$slots","push","p","index","expandedContent","list","isEmpty","loading","translate","translateY","posStyle","transform"],"mappings":"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"}