Commit b639650397409757e50886126ae3d039d9c6e49d
Committed by
GitHub
1 parent
9217a12b
fix: 修复table自适应高度和title属性声明问题 (#1496)
1.修复table升级ant3.0导致无法自适应剩余高度 2.修复table升级ant3.0导致BasicColumn类型的title属性无法找到
Showing
3 changed files
with
7 additions
and
13 deletions
src/components/Table/src/hooks/useTableFooter.ts
@@ -8,7 +8,7 @@ export function useTableFooter( | @@ -8,7 +8,7 @@ export function useTableFooter( | ||
8 | propsRef: ComputedRef<BasicTableProps>, | 8 | propsRef: ComputedRef<BasicTableProps>, |
9 | scrollRef: ComputedRef<{ | 9 | scrollRef: ComputedRef<{ |
10 | x: string | number | true; | 10 | x: string | number | true; |
11 | - y: Nullable<number>; | 11 | + y: string | number | null; |
12 | scrollToFirstRowOnChange: boolean; | 12 | scrollToFirstRowOnChange: boolean; |
13 | }>, | 13 | }>, |
14 | tableElRef: Ref<ComponentRef>, | 14 | tableElRef: Ref<ComponentRef>, |
src/components/Table/src/hooks/useTableScroll.ts
1 | import type { BasicTableProps, TableRowSelection, BasicColumn } from '../types/table'; | 1 | import type { BasicTableProps, TableRowSelection, BasicColumn } from '../types/table'; |
2 | import type { Ref, ComputedRef } from 'vue'; | 2 | import type { Ref, ComputedRef } from 'vue'; |
3 | -import { computed, unref, ref, nextTick, watch } from 'vue'; | 3 | +import { computed, unref, nextTick, watch } from 'vue'; |
4 | import { getViewportOffset } from '/@/utils/domUtils'; | 4 | import { getViewportOffset } from '/@/utils/domUtils'; |
5 | import { isBoolean } from '/@/utils/is'; | 5 | import { isBoolean } from '/@/utils/is'; |
6 | import { useWindowSizeFn } from '/@/hooks/event/useWindowSizeFn'; | 6 | import { useWindowSizeFn } from '/@/hooks/event/useWindowSizeFn'; |
@@ -15,8 +15,6 @@ export function useTableScroll( | @@ -15,8 +15,6 @@ export function useTableScroll( | ||
15 | rowSelectionRef: ComputedRef<TableRowSelection | null>, | 15 | rowSelectionRef: ComputedRef<TableRowSelection | null>, |
16 | getDataSourceRef: ComputedRef<Recordable[]>, | 16 | getDataSourceRef: ComputedRef<Recordable[]>, |
17 | ) { | 17 | ) { |
18 | - const tableHeightRef: Ref<Nullable<number>> = ref(null); | ||
19 | - | ||
20 | const modalFn = useModalContext(); | 18 | const modalFn = useModalContext(); |
21 | 19 | ||
22 | // Greater than animation time 280 | 20 | // Greater than animation time 280 |
@@ -43,8 +41,7 @@ export function useTableScroll( | @@ -43,8 +41,7 @@ export function useTableScroll( | ||
43 | }); | 41 | }); |
44 | } | 42 | } |
45 | 43 | ||
46 | - function setHeight(height: number) { | ||
47 | - tableHeightRef.value = height; | 44 | + function setHeight() { |
48 | // Solve the problem of modal adaptive height calculation when the form is placed in the modal | 45 | // Solve the problem of modal adaptive height calculation when the form is placed in the modal |
49 | modalFn?.redoModalHeight?.(); | 46 | modalFn?.redoModalHeight?.(); |
50 | } | 47 | } |
@@ -141,7 +138,7 @@ export function useTableScroll( | @@ -141,7 +138,7 @@ export function useTableScroll( | ||
141 | headerHeight; | 138 | headerHeight; |
142 | 139 | ||
143 | height = (height > maxHeight! ? (maxHeight as number) : height) ?? height; | 140 | height = (height > maxHeight! ? (maxHeight as number) : height) ?? height; |
144 | - setHeight(height); | 141 | + setHeight(); |
145 | 142 | ||
146 | bodyEl!.style.height = `${height}px`; | 143 | bodyEl!.style.height = `${height}px`; |
147 | } | 144 | } |
@@ -179,11 +176,10 @@ export function useTableScroll( | @@ -179,11 +176,10 @@ export function useTableScroll( | ||
179 | }); | 176 | }); |
180 | 177 | ||
181 | const getScrollRef = computed(() => { | 178 | const getScrollRef = computed(() => { |
182 | - const tableHeight = unref(tableHeightRef); | ||
183 | const { canResize, scroll } = unref(propsRef); | 179 | const { canResize, scroll } = unref(propsRef); |
184 | return { | 180 | return { |
185 | x: unref(getScrollX), | 181 | x: unref(getScrollX), |
186 | - y: canResize ? tableHeight : null, | 182 | + y: canResize ? '100%' : null, |
187 | scrollToFirstRowOnChange: false, | 183 | scrollToFirstRowOnChange: false, |
188 | ...scroll, | 184 | ...scroll, |
189 | }; | 185 | }; |
src/components/Table/src/types/table.ts
1 | import type { VNodeChild } from 'vue'; | 1 | import type { VNodeChild } from 'vue'; |
2 | import type { PaginationProps } from './pagination'; | 2 | import type { PaginationProps } from './pagination'; |
3 | import type { FormProps } from '/@/components/Form'; | 3 | import type { FormProps } from '/@/components/Form'; |
4 | -import type { | ||
5 | - ColumnProps, | ||
6 | - TableRowSelection as ITableRowSelection, | ||
7 | -} from 'ant-design-vue/lib/table/interface'; | 4 | +import type { TableRowSelection as ITableRowSelection } from 'ant-design-vue/lib/table/interface'; |
5 | +import type { ColumnProps } from 'ant-design-vue/lib/table'; | ||
8 | 6 | ||
9 | import { ComponentType } from './componentType'; | 7 | import { ComponentType } from './componentType'; |
10 | import { VueNode } from '/@/utils/propTypes'; | 8 | import { VueNode } from '/@/utils/propTypes'; |