/* eslint react/no-multi-comp:0, no-console:0 */ import { createForm } from '../index' import { regionStyle } from './styles' import { Switch } from 'ant-design-vue' const TopForm = { props: { form: Object, }, render () { const { getFieldProps } = this.form return ( <div style={regionStyle}> <div>has email? </div> <div> <Switch {...getFieldProps('on', { initialValue: true, valuePropName: 'checked' })}/> </div> </div> ) }, } const BottomForm = { props: { form: Object, on: Boolean, }, render () { const { form } = this const on = form.getFieldValue('on') const style = { ...regionStyle, display: on ? 'block' : 'none', } return ( <div style={style}> <div>email:</div> <div> <input {...form.getFieldProps('email', { rules: [{ type: 'email' }], hidden: !on })}/> </div> </div> ) }, } const Form = { props: { form: Object, }, methods: { onSubmit (e) { e.preventDefault() console.log(this.form.getFieldsValue()) }, }, render () { const { form } = this return ( <div> <TopForm form={form}/> <BottomForm form={form}/> <div style={regionStyle}> <button onClick={this.onSubmit}>submit</button> </div> </div> ) }, } const NewForm = createForm()(Form) export default { render () { return ( <div> <h2>parallel form</h2> <NewForm/> </div> ) }, }