tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 20.4 kB
Source Map (JSON)
{"version":3,"file":"thead.mjs","sources":["../../../components/table/thead.tsx"],"sourcesContent":["import { defineComponent, computed, SetupContext, 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 './interface';\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\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\n setup(props: TheadProps, { slots }: SetupContext) {\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 ...classnames,\n colspanSkipMap,\n theadClasses,\n theadRef,\n slots,\n getTableNode,\n };\n },\n\n render() {\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 = this.spansAndLeafNodes.rowspanAndColspanMap;\n return this.thList.map((row, rowIndex) => {\n const thRow = row.map((col: BaseTableColumns[0], index: number) => {\n // 因合并单行表头,跳过\n if (this.colspanSkipMap[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(this.thList[j][0], true);\n }\n }\n const thStyles = getColumnFixedStyles(col, index, rowAndColFixedPosition, this.tableColFixedClasses);\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 = this.showColumnShadow.left && col.fixed === 'left';\n const isRightFixedActive = this.showColumnShadow.right && col.fixed === 'right';\n const canDragSort = this.thDraggable && !(isLeftFixedActive || isRightFixedActive);\n const thClasses = [\n thStyles.classes,\n customClasses,\n thCustomClasses,\n {\n // 受 rowspan 影响,部分 tr > th:first-child 需要补足左边框\n [this.tableHeaderClasses.thBordered]: thBorderMap.get(col),\n [`${this.classPrefix}-table__th-${col.colKey}`]: col.colKey,\n [this.tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n // 允许拖拽的列类名\n [this.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(this.slots, col, index);\n const resizeColumnListener =\n this.resizable || !canDragSort\n ? {\n onMousedown: (e: MouseEvent) => {\n if (this.resizable) {\n this.columnResizeParams?.onColumnMousedown?.(e, col, index);\n }\n if (!canDragSort) {\n const timer = setTimeout(() => {\n const thList = this.theadRef.querySelectorAll('th');\n thList[index]?.removeAttribute('draggable');\n clearTimeout(timer);\n }, 10);\n }\n },\n onMousemove: (e: MouseEvent) => {\n this.resizable && this.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={this.tableBaseClass.thCellInner}>\n {isEllipsis ? (\n <TEllipsis\n placement=\"bottom\"\n attach={this.attach || (this.theadRef ? () => this.getTableNode(this.theadRef) : undefined)}\n tooltipContent={content && (() => content)}\n tooltipProps={typeof col.ellipsisTitle === 'object' ? col.ellipsisTitle : undefined}\n overlayClassName={this.ellipsisOverlayClassName}\n classPrefix={this.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={this.theadClasses}>\n {renderThNodeList(this.rowAndColFixedPosition, this.thWidthList)}\n </thead>\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","_objectSpread","render","_this","renderThNodeList","thBorderMap","thRowspanAndColspan","rowspanAndColspanMap","row","rowIndex","thRow","col","index","_col$children","rowspanAndColspan","get","rowspan","set","thStyles","getColumnFixedStyles","tableColFixedClasses","colParams","colIndex","customClasses","formatClassNames","className","type","thCustomClasses","thClassName","isLeftFixedActive","left","isRightFixedActive","right","canDragSort","thClasses","classes","thBordered","tdAlignClasses","align","tableDraggableClasses","dragSortTh","withoutChildren","width","styles","style","innerTh","renderTitle","resizeColumnListener","onMousedown","e","_this$columnResizePar","_this$columnResizePar2","onColumnMousedown","timer","setTimeout","_thList$index","querySelectorAll","removeAttribute","clearTimeout","onMousemove","_this$columnResizePar3","_this$columnResizePar4","onColumnMouseover","content","isFunction","ellipsisTitle","h","isEllipsis","ellipsis","attrs","_createVNode","_mergeProps","thCellInner","TEllipsis","_typeof","_default"],"mappings":"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"}