diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index 855e3471c5d1da3f65bca3dfb7b92d8911daeb57..92fd1b6cbda6fd6ba70817f0b04414f4e635a317 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -10,6 +10,8 @@ - 修复表格列配置已知问题 - 恢复 table 的`isTreeTable`属性 +- 修复表格内存溢出问题 +- 修复`layout` 收缩展开功能在分割模式下失效 ## 2.0.0-rc.15 (2020-12-31) diff --git a/src/components/Basic/index.ts b/src/components/Basic/index.ts index 5c86c28f52a05fc7d345d7c6b361c765539bf7c9..5a30c887f0294519025b1d078ee568277967a7cb 100644 --- a/src/components/Basic/index.ts +++ b/src/components/Basic/index.ts @@ -1,8 +1,9 @@ import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; import BasicArrow from './src/BasicArrow.vue'; +import BasicTitle from './src/BasicTitle.vue'; -export { BasicArrow }; +export { BasicArrow, BasicTitle }; // export const BasicArrow = createAsyncComponent(() => import('./src/BasicArrow.vue')); export const BasicHelp = createAsyncComponent(() => import('./src/BasicHelp.vue')); -export const BasicTitle = createAsyncComponent(() => import('./src/BasicTitle.vue')); +// export const BasicTitle = createAsyncComponent(() => import('./src/BasicTitle.vue')); diff --git a/src/components/Description/index.ts b/src/components/Description/index.ts index 359dcbb27c9a1adda2577cfe6078b38586eefec0..d266826924d0ee5bfd0ca323bf58e0f0b2d47b80 100644 --- a/src/components/Description/index.ts +++ b/src/components/Description/index.ts @@ -1,5 +1,8 @@ -import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; -export const Description = createAsyncComponent(() => import('./src/index')); +// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; +// export const Description = createAsyncComponent(() => import('./src/index')); +import Description from './src/index'; + +export { Description }; export * from './src/types'; export { useDescription } from './src/useDescription'; diff --git a/src/components/Menu/index.ts b/src/components/Menu/index.ts index c68b79739c60cab63553834d72afde33dc2f6774..088c3793e4105e5e709173d70c2146703bcec755 100644 --- a/src/components/Menu/index.ts +++ b/src/components/Menu/index.ts @@ -1,5 +1,9 @@ import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; -export const BasicMenu = createAsyncComponent(() => import('./src/BasicMenu.vue')); +import BasicMenu from './src/BasicMenu.vue'; + +// export const BasicMenu = createAsyncComponent(() => import('./src/BasicMenu.vue')); export const MenuTag = createAsyncComponent(() => import('./src/components/MenuItemTag.vue')); + +export { BasicMenu }; diff --git a/src/components/Menu/src/useOpenKeys.ts b/src/components/Menu/src/useOpenKeys.ts index 813d8d70800aac2a6bbe30c3693bfd185558011c..a02876464cf0b60d6fb5003baa4307d582724dcb 100644 --- a/src/components/Menu/src/useOpenKeys.ts +++ b/src/components/Menu/src/useOpenKeys.ts @@ -23,7 +23,6 @@ export function useOpenKeys( return; } const native = unref(getIsMixSidebar) && unref(getMixSideFixed); - useTimeoutFn( () => { const menuList = toRaw(menus.value); @@ -37,7 +36,7 @@ export function useOpenKeys( } }, 16, - native + !native ); } diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue index a0b6e2f9483dc9aec0c829402d0da060538db97e..28ff0ecb1b3189ce581d909802fdbc3bae601816 100644 --- a/src/components/Table/src/components/editable/EditableCell.vue +++ b/src/components/Table/src/components/editable/EditableCell.vue @@ -148,10 +148,16 @@ }); watchEffect(() => { + console.log('======================'); + console.log(1); + console.log('======================'); defaultValueRef.value = props.value; }); watchEffect(() => { + console.log('======================'); + console.log(2); + console.log('======================'); const { editable } = props.column; if (isBoolean(editable) || isBoolean(unref(getRowEditable))) { isEdit.value = !!editable || unref(getRowEditable); diff --git a/src/components/Table/src/hooks/useDataSource.ts b/src/components/Table/src/hooks/useDataSource.ts index 435d234eaeb29c30529e70b4117c170843ed92e2..821c28dd4b31146ceee7cfc0d3c742f5e19382e7 100644 --- a/src/components/Table/src/hooks/useDataSource.ts +++ b/src/components/Table/src/hooks/useDataSource.ts @@ -1,7 +1,7 @@ import type { BasicTableProps, FetchParams, SorterResult } from '../types/table'; import type { PaginationProps } from '../types/pagination'; -import { ref, unref, ComputedRef, computed, onMounted, watchEffect, reactive } from 'vue'; +import { ref, unref, ComputedRef, computed, onMounted, watch, reactive } from 'vue'; import { useTimeoutFn } from '/@/hooks/core/useTimeout'; @@ -40,10 +40,21 @@ export function useDataSource( }); const dataSourceRef = ref([]); - watchEffect(() => { - const { dataSource, api } = unref(propsRef); - !api && dataSource && (dataSourceRef.value = dataSource); - }); + // watchEffect(() => { + // const { dataSource, api } = unref(propsRef); + // !api && dataSource && (dataSourceRef.value = dataSource); + // }); + + watch( + () => unref(propsRef).dataSource, + () => { + const { dataSource, api } = unref(propsRef); + !api && dataSource && (dataSourceRef.value = dataSource); + }, + { + immediate: true, + } + ); function handleTableChange( pagination: PaginationProps, diff --git a/src/components/Table/src/hooks/useLoading.ts b/src/components/Table/src/hooks/useLoading.ts index 454f5da24cfae1056c80f286cbfcda12e25dde1d..2fc3b4cf6fde20074b2cd5e4c77e3fe859717804 100644 --- a/src/components/Table/src/hooks/useLoading.ts +++ b/src/components/Table/src/hooks/useLoading.ts @@ -1,12 +1,15 @@ -import { ref, ComputedRef, unref, computed, watchEffect } from 'vue'; +import { ref, ComputedRef, unref, computed, watch } from 'vue'; import type { BasicTableProps } from '../types/table'; export function useLoading(props: ComputedRef) { const loadingRef = ref(unref(props).loading); - watchEffect(() => { - loadingRef.value = unref(props).loading; - }); + watch( + () => unref(props).loading, + (loading) => { + loadingRef.value = loading; + } + ); const getLoading = computed(() => { return unref(loadingRef); diff --git a/src/components/Table/src/hooks/useTableScroll.ts b/src/components/Table/src/hooks/useTableScroll.ts index 72c2d51235d2785ab8a844d188783cf77aa06a5f..d553988f7c7ba6ad88376aee561e328e1e7af78d 100644 --- a/src/components/Table/src/hooks/useTableScroll.ts +++ b/src/components/Table/src/hooks/useTableScroll.ts @@ -1,6 +1,6 @@ import type { BasicTableProps, TableRowSelection } from '../types/table'; import type { Ref, ComputedRef } from 'vue'; -import { computed, unref, ref, nextTick, watchEffect } from 'vue'; +import { computed, unref, ref, nextTick, watch } from 'vue'; import { getViewportOffset } from '/@/utils/domUtils'; import { isBoolean } from '/@/utils/is'; @@ -28,9 +28,15 @@ export function useTableScroll( return canResize && !(scroll || {}).y; }); - watchEffect(() => { - unref(getCanResize) && debounceRedoHeight(); - }); + watch( + () => unref(getCanResize), + () => { + debounceRedoHeight(); + }, + { + immediate: true, + } + ); function redoHeight() { if (unref(getCanResize)) { diff --git a/src/layouts/default/header/MultipleHeader.vue b/src/layouts/default/header/MultipleHeader.vue index 602dbf8d4febb7d1edf9d0a97138ac1221032d62..b1b6c3b524f1754c3c0884cbfad369303f2ba015 100644 --- a/src/layouts/default/header/MultipleHeader.vue +++ b/src/layouts/default/header/MultipleHeader.vue @@ -34,6 +34,7 @@ getShowInsetHeaderRef, getShowFullHeaderRef, getHeaderTheme, + getShowHeader, } = useHeaderSetting(); const { getFullContent } = useFullContent(); @@ -68,7 +69,7 @@ const getPlaceholderDomStyle = computed( (): CSSProperties => { let height = 0; - if (unref(getShowFullHeaderRef) || !unref(getSplit)) { + if ((unref(getShowFullHeaderRef) || !unref(getSplit)) && unref(getShowHeader)) { height += HEADER_HEIGHT; } if (unref(getShowMultipleTab)) { diff --git a/src/layouts/default/tabs/useTabDropdown.ts b/src/layouts/default/tabs/useTabDropdown.ts index 063292039e147ad4d1768887e19d3a4d64aa1617..21e295bbdbef58b547ac10909ccaa7a5ddb6e2b1 100644 --- a/src/layouts/default/tabs/useTabDropdown.ts +++ b/src/layouts/default/tabs/useTabDropdown.ts @@ -129,6 +129,7 @@ export function useTabDropdown(tabContentProps: TabContentProps) { const isScale = !unref(getShowMenu) && !unref(getShowHeader); setMenuSetting({ show: isScale, + hidden: !isScale, }); setHeaderSetting({ show: isScale,