Submit
提交按钮
普通提交
*
:vue
<template>
<FormProvider :form="form">
<SchemaField>
<SchemaStringField
required
name="input1"
title="输入框"
x-decorator="FormItem"
x-component="Input"
/>
<SchemaStringField
required
title="输入框"
name="input2"
x-decorator="FormItem"
x-component="Input"
/>
</SchemaField>
<FormButtonGroup align-form-item>
<Submit :on-submit="log">提交</Submit>
</FormButtonGroup>
</FormProvider>
</template>
<script>
import { createForm } from '@formily/core'
import { FormProvider, createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Submit, FormButtonGroup, FormItem, Input } = Formily
const fields = createSchemaField({ components: { FormItem, Input } })
export default {
components: {
FormProvider,
Submit,
FormButtonGroup,
...fields,
},
data() {
const form = createForm()
return {
form,
}
},
methods: {
log(v) {
console.log(v)
},
},
}
</script>
隐藏源代码
防重提交
*
:vue
<template>
<FormProvider :form="form">
<SchemaField>
<SchemaStringField
required
name="input1"
title="输入框"
x-decorator="FormItem"
x-component="Input"
/>
<SchemaStringField
required
title="输入框"
name="input2"
x-decorator="FormItem"
x-component="Input"
/>
</SchemaField>
<FormButtonGroup align-form-item>
<Submit @submit="handleSubmit">提交</Submit>
</FormButtonGroup>
</FormProvider>
</template>
<script>
import { createForm } from '@formily/core'
import { FormProvider, createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Submit, FormButtonGroup, FormItem, Input } = Formily
const fields = createSchemaField({ components: { FormItem, Input } })
export default {
components: {
FormProvider,
Submit,
FormButtonGroup,
...fields,
},
data() {
const form = createForm()
return {
form,
}
},
methods: {
handleSubmit(values) {
return new Promise((resolve) => {
setTimeout(() => {
console.log(values)
resolve()
}, 2000)
})
},
},
}
</script>
隐藏源代码
API
按钮相关的 API 属性,我们参考 ElButton 即可,剩下是 Submit 组件独有的 API 属性
属性名 | 类型 | 描述 | 默认值 |
---|---|---|---|
onClick | (event: MouseEvent) => void | boolean | 点击事件,如果返回 false 可以阻塞提交 | - |
onSubmit | (values: any) => Promise<any> | any | 提交事件回调 | - |
onSubmitSuccess | (payload: any) => void | 提交成功响应事件 | - |
onSubmitFailed | (feedbacks: IFormFeedback[]) => void | 提交校验失败事件回调 | - |