fix: table form reset will trigger reload twice while submitOnChange set (#5756)

* 修复表格的搜索表单在重置时,可能会触发2次表格刷新的问题
This commit is contained in:
Netfan
2025-03-20 19:42:22 +08:00
committed by GitHub
parent f0a43912d1
commit 3133f8f8b9

View File

@@ -29,7 +29,7 @@ import { usePriorityValues } from '@vben/hooks';
import { EmptyIcon } from '@vben/icons'; import { EmptyIcon } from '@vben/icons';
import { $t } from '@vben/locales'; import { $t } from '@vben/locales';
import { usePreferences } from '@vben/preferences'; import { usePreferences } from '@vben/preferences';
import { cloneDeep, cn, mergeWithArrayOverride } from '@vben/utils'; import { cloneDeep, cn, isEqual, mergeWithArrayOverride } from '@vben/utils';
import { VbenHelpTooltip, VbenLoading } from '@vben-core/shadcn-ui'; import { VbenHelpTooltip, VbenLoading } from '@vben-core/shadcn-ui';
@@ -81,10 +81,14 @@ const [Form, formApi] = useTableForm({
props.api.reload(formValues); props.api.reload(formValues);
}, },
handleReset: async () => { handleReset: async () => {
const prevValues = await formApi.getValues();
await formApi.resetForm(); await formApi.resetForm();
const formValues = await formApi.getValues(); const formValues = await formApi.getValues();
formApi.setLatestSubmissionValues(formValues); formApi.setLatestSubmissionValues(formValues);
props.api.reload(formValues); // 如果值发生了变化submitOnChange会触发刷新。所以只在submitOnChange为false或者值没有发生变化时手动刷新
if (isEqual(prevValues, formValues) || !formOptions.value?.submitOnChange) {
props.api.reload(formValues);
}
}, },
commonConfig: { commonConfig: {
componentProps: { componentProps: {