tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 20.2 kB
Source Map (JSON)
{"version":3,"file":"thead.mjs","sources":["../../../../components/table/components/thead.tsx"],"sourcesContent":["import { defineComponent, computed, PropType, ref, Ref, h, CSSProperties } from 'vue';\nimport { isFunction } from 'lodash-es';\nimport { getColumnFixedStyles } from '../hooks/useFixed';\nimport useClassName from '../hooks/useClassName';\nimport { BaseTableCol, TableRowData, TdBaseTableProps } from '../type';\nimport { renderTitle } from '../hooks/useTableHeader';\nimport TEllipsis from './ellipsis';\nimport { formatClassNames } from '../utils';\nimport { RowAndColFixedPosition, BaseTableColumns, ThRowspanAndColspan } from '../types';\nimport { AttachNode } from '../../common';\n\nexport interface TheadProps {\n classPrefix: string;\n ellipsisOverlayClassName: string;\n // 是否固定表头\n isFixedHeader: boolean;\n maxHeight?: TdBaseTableProps['maxHeight'];\n height?: TdBaseTableProps['height'];\n // 固定列 left/right 具体值\n rowAndColFixedPosition: RowAndColFixedPosition;\n // 虚拟滚动单独渲染表头;表头吸顶单独渲染表头\n thWidthList?: { [colKey: string]: number };\n bordered?: boolean;\n isMultipleHeader?: boolean;\n thDraggable?: boolean;\n spansAndLeafNodes?: {\n rowspanAndColspanMap: ThRowspanAndColspan;\n leafColumns: BaseTableCol<TableRowData>[];\n };\n thList: BaseTableCol<TableRowData>[][];\n columnResizeParams: {\n resizeLineRef: Ref<HTMLDivElement>;\n resizeLineStyle: CSSProperties;\n onColumnMouseover: (e: MouseEvent, col: BaseTableCol<TableRowData>) => void;\n onColumnMousedown: (e: MouseEvent, col: BaseTableCol<TableRowData>, index: number) => void;\n };\n resizable?: Boolean;\n attach?: AttachNode;\n showColumnShadow?: { left: boolean; right: boolean };\n}\n\nexport default defineComponent({\n name: 'THead',\n props: {\n classPrefix: String,\n ellipsisOverlayClassName: String,\n isFixedHeader: Boolean,\n thDraggable: Boolean,\n maxHeight: [String, Number] as PropType<TheadProps['maxHeight']>,\n height: [String, Number] as PropType<TheadProps['height']>,\n rowAndColFixedPosition: Map as PropType<TheadProps['rowAndColFixedPosition']>,\n thWidthList: Object as PropType<TheadProps['thWidthList']>,\n bordered: Boolean,\n isMultipleHeader: Boolean,\n resizable: Boolean,\n attach: [String, Function] as PropType<TheadProps['attach']>,\n spansAndLeafNodes: Object as PropType<TheadProps['spansAndLeafNodes']>,\n thList: Array as PropType<TheadProps['thList']>,\n columnResizeParams: Object as PropType<TheadProps['columnResizeParams']>,\n showColumnShadow: Object as PropType<TheadProps['showColumnShadow']>,\n },\n setup(props, { slots }) {\n const theadRef = ref<HTMLHeadElement>();\n const classnames = useClassName();\n const { tableHeaderClasses, tableBaseClass } = classnames;\n const theadClasses = computed(() => [\n tableHeaderClasses.header,\n {\n [tableHeaderClasses.fixed]: Boolean(props.maxHeight || props.height),\n [tableBaseClass.bordered]: props.bordered && props.isMultipleHeader,\n [tableHeaderClasses.multipleHeader]: props.isMultipleHeader,\n },\n ]);\n\n // 单行表格合并\n const colspanSkipMap = computed(() => {\n const map: { [key: string]: boolean } = {};\n\n const processColumns = (columns: BaseTableColumns) => {\n for (let i = 0, len = columns.length; i < len; i++) {\n const item = columns[i];\n if (item.colspan > 1) {\n for (let j = i + 1; j < i + item.colspan; j++) {\n if (columns[j]) {\n map[columns[j].colKey] = true;\n }\n }\n }\n // 如果有子列,递归处理\n if (item.children) {\n processColumns(item.children);\n }\n }\n };\n\n const list = props.thList[0];\n processColumns(list);\n\n return map;\n });\n\n const getTableNode = (thead: HTMLElement) => {\n let parent = thead;\n while (parent) {\n parent = parent.parentNode as HTMLElement;\n if (parent?.classList?.contains(`${props.classPrefix}-table`)) {\n break;\n }\n }\n return parent;\n };\n\n return () => {\n const renderThNodeList = (\n rowAndColFixedPosition: RowAndColFixedPosition,\n thWidthList: TheadProps['thWidthList'],\n ) => {\n // thBorderMap: rowspan 会影响 tr > th 是否为第一列表头,从而影响边框\n const thBorderMap = new Map<any, boolean>();\n const thRowspanAndColspan = props.spansAndLeafNodes.rowspanAndColspanMap;\n return props.thList.map((row, rowIndex) => {\n const thRow = row.map((col: BaseTableColumns[0], index: number) => {\n // 因合并单行表头,跳过\n if (colspanSkipMap.value[col.colKey]) return null;\n const rowspanAndColspan = thRowspanAndColspan.get(col);\n if (index === 0 && rowspanAndColspan.rowspan > 1) {\n for (let j = rowIndex + 1; j < rowIndex + rowspanAndColspan.rowspan; j++) {\n thBorderMap.set(props.thList[j][0], true);\n }\n }\n const thStyles = getColumnFixedStyles(\n col,\n index,\n props.rowAndColFixedPosition,\n classnames.tableColFixedClasses,\n );\n const colParams = {\n col,\n colIndex: index,\n row: {},\n rowIndex: -1,\n };\n const customClasses = formatClassNames(col.className, { ...colParams, type: 'th' });\n const thCustomClasses = formatClassNames(col.thClassName, { ...colParams, type: 'th' });\n const isLeftFixedActive = props.showColumnShadow.left && col.fixed === 'left';\n const isRightFixedActive = props.showColumnShadow.right && col.fixed === 'right';\n const canDragSort = props.thDraggable && !(isLeftFixedActive || isRightFixedActive);\n const thClasses = [\n thStyles.classes,\n customClasses,\n thCustomClasses,\n {\n // 受 rowspan 影响,部分 tr > th:first-child 需要补足左边框\n [tableHeaderClasses.thBordered]: thBorderMap.get(col),\n [`${props.classPrefix}-table__th-${col.colKey}`]: col.colKey,\n [classnames.tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 允许拖拽的列类名\n [classnames.tableDraggableClasses.dragSortTh]: canDragSort,\n },\n ];\n const withoutChildren = !col.children?.length;\n const width = withoutChildren && thWidthList?.[col.colKey] ? `${thWidthList?.[col.colKey]}px` : undefined;\n const styles = { ...(thStyles.style || {}), width };\n const innerTh = renderTitle(slots, col, index);\n const resizeColumnListener =\n props.resizable || !canDragSort\n ? {\n onMousedown: (e: MouseEvent) => {\n if (props.resizable) {\n props.columnResizeParams?.onColumnMousedown?.(e, col, index);\n }\n if (!canDragSort) {\n const timer = setTimeout(() => {\n const thList = theadRef.value.querySelectorAll('th');\n thList[index]?.removeAttribute('draggable');\n clearTimeout(timer);\n }, 10);\n }\n },\n onMousemove: (e: MouseEvent) => {\n props.resizable && props.columnResizeParams?.onColumnMouseover?.(e, col);\n },\n }\n : {};\n const content = isFunction(col.ellipsisTitle) ? col.ellipsisTitle(h, { col, colIndex: index }) : undefined;\n const isEllipsis = col.ellipsisTitle !== undefined ? Boolean(col.ellipsisTitle) : Boolean(col.ellipsis);\n const attrs = (isFunction(col.attrs) ? col.attrs({ ...colParams, type: 'th' }) : col.attrs) || {};\n if (col.colspan > 1) {\n attrs.colspan = col.colspan;\n }\n return (\n <th\n key={col.colKey}\n data-colkey={col.colKey}\n class={thClasses}\n style={styles}\n {...attrs}\n {...rowspanAndColspan}\n {...resizeColumnListener}\n >\n <div class={tableBaseClass.thCellInner}>\n {isEllipsis ? (\n <TEllipsis\n placement=\"bottom\"\n attach={props.attach || (theadRef.value ? () => getTableNode(theadRef.value) : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof col.ellipsisTitle === 'object' ? col.ellipsisTitle : undefined}\n overlayClassName={props.ellipsisOverlayClassName}\n classPrefix={props.classPrefix}\n >\n {innerTh}\n </TEllipsis>\n ) : (\n innerTh\n )}\n </div>\n </th>\n );\n });\n return <tr key={rowIndex}>{thRow}</tr>;\n });\n };\n\n return (\n <thead ref={theadRef} class={theadClasses.value}>\n {renderThNodeList(props.rowAndColFixedPosition, props.thWidthList)}\n </thead>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","classPrefix","String","ellipsisOverlayClassName","isFixedHeader","Boolean","thDraggable","maxHeight","Number","height","rowAndColFixedPosition","Map","thWidthList","bordered","isMultipleHeader","resizable","attach","Function","spansAndLeafNodes","thList","Array","columnResizeParams","showColumnShadow","setup","_ref","slots","theadRef","ref","classnames","useClassName","tableHeaderClasses","tableBaseClass","theadClasses","computed","header","_defineProperty","fixed","multipleHeader","colspanSkipMap","map","processColumns","columns","i","len","length","item","colspan","j","colKey","children","list","getTableNode","thead","parent","_parent","parentNode","classList","contains","concat","renderThNodeList","thBorderMap","thRowspanAndColspan","rowspanAndColspanMap","row","rowIndex","thRow","col","index","_col$children","value","rowspanAndColspan","get","rowspan","set","thStyles","getColumnFixedStyles","tableColFixedClasses","colParams","colIndex","customClasses","formatClassNames","className","_objectSpread","type","thCustomClasses","thClassName","isLeftFixedActive","left","isRightFixedActive","right","canDragSort","thClasses","classes","thBordered","tdAlignClasses","align","tableDraggableClasses","dragSortTh","withoutChildren","width","styles","style","innerTh","renderTitle","resizeColumnListener","onMousedown","e","_props$columnResizePa","_props$columnResizePa2","onColumnMousedown","timer","setTimeout","_thList$index","querySelectorAll","removeAttribute","clearTimeout","onMousemove","_props$columnResizePa3","_props$columnResizePa4","onColumnMouseover","content","isFunction","ellipsisTitle","h","isEllipsis","ellipsis","attrs","_createVNode","_mergeProps","thCellInner","TEllipsis","_typeof","_default"],"mappings":"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"}