fix: table form reset will trigger reload twice while submitOnChange set (#5756)
* 修复表格的搜索表单在重置时,可能会触发2次表格刷新的问题pull/78/MERGE
							parent
							
								
									f0a43912d1
								
							
						
					
					
						commit
						3133f8f8b9
					
				| 
						 | 
					@ -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: {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue