【#8695】修复JVxeTable卡顿问题

master
JEECG 2025-08-22 17:51:42 +08:00
parent 1b8a31f0d3
commit 7af8346b79
1 changed files with 21 additions and 12 deletions

View File

@ -1,5 +1,5 @@
import { unref, computed, ref, watch, nextTick } from 'vue';
import { merge } from 'lodash-es';
import { merge, debounce } from 'lodash-es';
import { isArray } from '/@/utils/is';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { useKeyboardEdit } from '../hooks/useKeyboardEdit';
@ -41,17 +41,8 @@ export function useFinallyProps(props: JVxeTableProps, data: JVxeDataProps, meth
return events;
});
// update-begin--author:sunjianlei---date:20250804---for:issues/8593
const vxeColumnsRef = ref([])
watch(data.vxeColumns, async () => {
vxeColumnsRef.value = []
await nextTick()
vxeColumnsRef.value = data.vxeColumns.value
}, {immediate: true})
// update-end----author:sunjianlei---date:20250804---for:issues/8593
// vxe props
const vxeProps = computed(() => {
const vxePropsMerge = computed(() => {
// update-begin--author:liaozhiyang---date:20240417---for:QQYUN-8785onlineidid
let rowClass = {};
if (props.dragSort) {
@ -88,7 +79,6 @@ export function useFinallyProps(props: JVxeTableProps, data: JVxeDataProps, meth
loading: false,
disabled: props.disabled,
// columns: unref(data.vxeColumns),
columns: vxeColumnsRef.value,
editRules: unref(vxeEditRules),
height: props.height === 'auto' ? null : props.height,
maxHeight: props.maxHeight,
@ -125,6 +115,25 @@ export function useFinallyProps(props: JVxeTableProps, data: JVxeDataProps, meth
unref(keyboardEditConfig)
);
});
// update-begin--author:sunjianlei---date:20250804---for:issues/8593
const vxeColumnsRef = ref([])
const watchColumnsDebounce = debounce(async () => {
vxeColumnsRef.value = []
await nextTick()
vxeColumnsRef.value = data.vxeColumns!.value
}, 50)
watch(data.vxeColumns!, watchColumnsDebounce, {immediate: true})
// update-end----author:sunjianlei---date:20250804---for:issues/8593
const vxeProps = computed(() => {
return {
...unref(vxePropsMerge),
// issue/8695 columns
columns: unref(vxeColumnsRef),
}
});
return {
vxeProps,
prefixCls: data.prefixCls,