|
|
|
@ -3,7 +3,6 @@ import type { Recordable } from '@vben-core/typings'; |
|
|
|
|
|
|
|
import type { ExtendedFormApi, VbenFormProps } from './types'; |
|
|
|
|
|
|
|
// import { toRaw, watch } from 'vue'; |
|
|
|
import { nextTick, onMounted, watch } from 'vue'; |
|
|
|
|
|
|
|
import { useForwardPriorityValues } from '@vben-core/composables'; |
|
|
|
@ -12,17 +11,10 @@ import { cloneDeep, get, isEqual, set } from '@vben-core/shared/utils'; |
|
|
|
import { useDebounceFn } from '@vueuse/core'; |
|
|
|
|
|
|
|
import FormActions from './components/form-actions.vue'; |
|
|
|
import { |
|
|
|
COMPONENT_BIND_EVENT_MAP, |
|
|
|
COMPONENT_MAP, |
|
|
|
DEFAULT_FORM_COMMON_CONFIG, |
|
|
|
} from './config'; |
|
|
|
import { COMPONENT_BIND_EVENT_MAP, COMPONENT_MAP, DEFAULT_FORM_COMMON_CONFIG } from './config'; |
|
|
|
import { Form } from './form-render'; |
|
|
|
import { |
|
|
|
provideComponentRefMap, |
|
|
|
provideFormProps, |
|
|
|
useFormInitial, |
|
|
|
} from './use-form-context'; |
|
|
|
import { provideComponentRefMap, provideFormProps, useFormInitial } from './use-form-context'; |
|
|
|
|
|
|
|
// 通过 extends 会导致热更新卡死,所以重复写了一遍 |
|
|
|
interface Props extends VbenFormProps { |
|
|
|
formApi?: ExtendedFormApi; |
|
|
|
@ -65,7 +57,7 @@ function handleKeyDownEnter(event: KeyboardEvent) { |
|
|
|
|
|
|
|
const handleValuesChangeDebounced = useDebounceFn(async () => { |
|
|
|
state?.value.submitOnChange && forward.value.formApi?.validateAndSubmitForm(); |
|
|
|
}, 300); |
|
|
|
}, state?.value?.changeDebouncedTime ?? 300); |
|
|
|
|
|
|
|
const valuesCache: Recordable<any> = {}; |
|
|
|
|
|
|
|
@ -87,7 +79,7 @@ onMounted(async () => { |
|
|
|
const oldFieldValue = get(valuesCache, field); |
|
|
|
if (!isEqual(newFieldValue, oldFieldValue)) { |
|
|
|
changedFields.push(field); |
|
|
|
set(valuesCache, field, newFieldValue); |
|
|
|
set(valuesCache, field, cloneDeep(newFieldValue)); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
|