import React, { useRef } from 'react';
import { ISchema } from '../packages/types/src/index';
import { XForm } from '../packages/react/src/index';
import { Button } from 'antd';
const schema: ISchema = [
{
key: 'radio1',
type: 'Radio',
ui: {
label: '初始化联动1'
},
value: 1,
options: [
{
name: '联动',
value: 1
},
{
name: '不联动',
value: 0
}
]
},
{
key: 'input1',
type: 'Input',
ui: {
label: '初始化联动2'
},
listeners: [
{
watch: [ 'radio1' ],
condition: 'radio1.value == 1',
set: {
value: '联动'
}
}
]
},
{
key: 'input2',
type: 'Input',
ui: {
label: '初始化联动3'
},
listeners: [
{
watch: [ 'input1' ],
condition: 'input1.value == "联动"',
set: {
value: '联动'
}
}
]
},
{
key: 'radio2',
type: 'Radio',
ui: {
label: '循环联动1'
},
value: 0,
options: [
{
name: '联动',
value: 1
},
{
name: '不联动',
value: 0
}
],
listeners: [
{
watch: [ 'input4' ],
condition: 'input4.value == "联动"',
set: {
status: "disabled"
}
}
]
},
{
key: 'input3',
type: 'Input',
ui: {
label: '循环联动2'
},
listeners: [
{
watch: [ 'radio2' ],
condition: 'radio2.value == 1',
set: {
value: '联动'
}
}
]
},
{
key: 'input4',
type: 'Input',
ui: {
label: '循环联动3'
},
listeners: [
{
watch: [ 'input3' ],
condition: 'input3.value == "联动"',
set: {
value: '联动'
}
}
]
},
{
key: 'radio3',
type: 'Radio',
ui: {
label: '列表联动1'
},
value: 0,
options: [
{
name: '联动',
value: 1
},
{
name: '不联动',
value: 0
}
]
},
{
key: 'array1',
type: 'Array',
ui: {
label: '列表联动2'
},
value: [
{
name: 'Jason',
sex: 'male',
phone: '87654321'
}
],
children: [
{
key: 'name',
type: 'Input',
ui: {
label: '名称'
}
},
{
key: 'sex',
type: 'Radio',
ui: {
label: '性别'
},
options: [
{
name: '男',
value: 'male'
},
{
name: '女',
value: 'female'
}
]
},
{
key: 'phone',
type: 'Input',
ui: {
label: '电话'
}
}
],
listeners: [
{
watch: [ 'radio3' ],
condition: 'radio3.value == 1',
set: {
value: [
{
name: 'Mark',
sex: 'female',
phone: '12345678'
}
]
}
}
]
},
{
key: 'radio4',
type: 'Radio',
ui: {
label: '组联动1'
},
value: 0,
options: [
{
name: '联动',
value: 1
},
{
name: '不联动',
value: 0
}
]
},
{
key: 'object1',
type: 'Object',
ui: {
label: '组联动2'
},
value: {
name: 'Jason',
sex: 'male',
phone: '87654321'
},
children: [
{
key: 'name',
type: 'Input',
ui: {
label: '名称'
}
},
{
key: 'sex',
type: 'Radio',
ui: {
label: '性别'
},
options: [
{
name: '男',
value: 'male'
},
{
name: '女',
value: 'female'
}
]
},
{
key: 'phone',
type: 'Input',
ui: {
label: '电话'
}
}
],
listeners: [
{
watch: [ 'radio4' ],
condition: 'radio4.value == 1',
set: {
value: {
name: 'Mark',
sex: 'female',
phone: '12345678'
}
}
}
]
},
];
export default function() {
const formRef = useRef(null);
const onSubmit = () => {
formRef.current.submit().then((data: any) => {
console.log(data);
});
};
const onReset = () => {
formRef.current.reset();
};
const onEmpty = () => {
formRef.current.empty();
};
return (
<>