UNPKG

@fesjs/fes-design

Version:
35 lines (34 loc) 1.17 kB
import { type Ref } from 'vue'; import type { TableProps } from './table'; import type { ColumnInst } from './column'; export interface WidthItem { id: number; width?: number; minWidth?: number; maxWidth?: number; origin?: { width?: number; minWidth?: number; maxWidth?: number; }; } /** * 更新列的宽度 * 列最小宽度为80,如果设定了width则使用设定的width作为宽度,没有设定宽度的列平分剩余的宽度(容器的宽度减去已使用的宽度) */ export default function useTableLayout({ props, wrapperRef, headerWrapperRef, bodyWrapperRef, bodyTableRef, columns, showData, }: { showData: Ref<object[]>; props: TableProps; wrapperRef: Ref<HTMLElement>; headerWrapperRef: Ref<HTMLElement>; bodyWrapperRef: Ref<HTMLElement>; bodyTableRef: Ref<HTMLElement>; columns: Ref<ColumnInst[]>; }): { widthMap: Ref<Record<string, WidthItem>, Record<string, WidthItem>>; bodyWidth: Ref<number, number>; bodyHeight: Ref<number, number>; isScrollX: Ref<boolean, boolean>; isScrollY: Ref<boolean, boolean>; isWatchX: Ref<boolean, boolean>; };