From 0a273ff8c82bd9b068f53940fd942af2a50cf7a7 Mon Sep 17 00:00:00 2001 From: kailong321200875 <321200875@qq.com> Date: Wed, 28 Jun 2023 17:37:04 +0800 Subject: [PATCH] =?UTF-8?q?wip:=20Table=E9=87=8D=E6=9E=84=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Table/src/Table.vue | 32 ++++++++++++------------- src/components/Table/src/types/index.ts | 28 ++++++++++++++++++++++ 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/components/Table/src/Table.vue b/src/components/Table/src/Table.vue index 360cb79..78548cb 100644 --- a/src/components/Table/src/Table.vue +++ b/src/components/Table/src/Table.vue @@ -22,7 +22,7 @@ export default defineComponent({ default: () => [] }, // 展开行 - expand: propTypes.bool.def(false), + // expand: propTypes.bool.def(false), // 是否展示分页 pagination: { type: Object as PropType, @@ -168,23 +168,23 @@ export default defineComponent({ ) : undefined } - const renderTableExpand = () => { - const { align, headerAlign, expand } = unref(getProps) - // 渲染展开行 - return expand ? ( - - {{ - // @ts-ignore - default: (data: TableSlotDefault) => getSlot(slots, 'expand', data) - }} - - ) : undefined - } + // const renderTableExpand = () => { + // const { align, headerAlign, expand } = unref(getProps) + // // 渲染展开行 + // return expand ? ( + // + // {{ + // // @ts-ignore + // default: (data: TableSlotDefault) => getSlot(slots, 'expand', data) + // }} + // + // ) : undefined + // } const renderTreeTableColumn = (columnsChildren: TableColumn[]) => { const { align, headerAlign, showOverflowTooltip } = unref(getProps) return columnsChildren.map((v) => { - const props = { ...v } + const props = { ...v } as any if (props.children) delete props.children return ( { // 自定生成序号 if (v.type === 'index') { @@ -239,7 +239,7 @@ export default defineComponent({ > ) } else { - const props = { ...v } + const props = { ...v } as any if (props.children) delete props.children return ( JSX.Element | null + header?: (...args: any[]) => JSX.Element | null + } + index?: number | ((index: number) => number) + columnKey?: string + width?: string | number + minWidth?: string | number + fixed?: boolean | 'left' | 'right' + renderHeader?: (...args: any[]) => JSX.Element | null + sortable?: boolean | 'custom' + sortMethod?: (...args: any[]) => number + sortBy?: string | string[] | ((...args: any[]) => string | string[]) + sortOrders?: (string | null)[] + resizable?: boolean + formatter?: (...args: any[]) => any + showOverflowTooltip?: boolean + align?: 'left' | 'center' | 'right' + headerAlign?: 'left' | 'center' | 'right' + className?: string + labelClassName?: string + selectable?: (...args: any[]) => boolean + reserveSelection?: boolean + filters?: Array<{ text: string; value: string }> + filterPlacement?: string + filterMultiple?: boolean + filterMethod?: (...args: any[]) => boolean + filteredValue?: string[] [key: string]: any }