diff --git a/src/components/Form/src/Form.vue b/src/components/Form/src/Form.vue index f55aed8cc..d9e8fc919 100644 --- a/src/components/Form/src/Form.vue +++ b/src/components/Form/src/Form.vue @@ -55,7 +55,7 @@ export default defineComponent({ vLoading: propTypes.bool.def(false), labelPosition: propTypes.string.def('left'), }, - emits: ['register','opensearchTable','clearSearchInput', 'onChange', 'onBlur','onEnter','hiddenFilterButton','changeDialogWidth'], + emits: ['register','opensearchTable','clearSearchInput', 'onChange', 'onBlur','onEnter','hiddenFilterButton','changeDialogWidth','onInput'], setup(props, { slots, expose, emit }) { // element form 实例 const elFormRef = ref>() @@ -204,6 +204,9 @@ export default defineComponent({ const onBlur = (field, e) => { emit('onBlur', field, e) } + const onInput = (field,value) => { + emit('onInput', field,value) + } // 渲染formItem const renderFormItem = (item: FormSchema) => { // 单独给只有options属性的组件做判断 @@ -382,6 +385,7 @@ export default defineComponent({ style={item.componentProps?.style} onChange={(e)=>{onChange(item.field, e)}} onBlur={(e)=>{onBlur(item.field, e)}} + onInput={(value)=>{onInput(item.field,value)}} {...(notRenderOptions.includes(item?.component as string) && item?.componentProps?.options ? { options: item?.componentProps?.options || [] } diff --git a/src/components/Search/src/Search.vue b/src/components/Search/src/Search.vue index 3dd5b5ff3..8ac7e2a60 100644 --- a/src/components/Search/src/Search.vue +++ b/src/components/Search/src/Search.vue @@ -43,7 +43,7 @@ const props = defineProps({ } }) -const emit = defineEmits(['search', 'reset']) +const emit = defineEmits(['search', 'reset','onInput']) const visible = ref(true) @@ -88,6 +88,14 @@ const { register, elFormRef, methods } = useForm({ model: props.model || {} }) +const onInput = (field,value) => { + emit('onInput', field,value) +} + +const formRef = ref() +const setFormValues = (formData)=>{ + formRef.value.setValues(formData) +} const search = async () => { await unref(elFormRef)?.validate(async (isValid) => { if (isValid) { @@ -118,12 +126,14 @@ const setVisible = () => { } const Search = ref() onMounted(() => {}) +defineExpose({setFormValues}) // 提供 open 方法,用于打开弹窗 +