@jay.kou/rak-ssr
Version:
A react based UI components for admin system
100 lines (98 loc) • 3.41 kB
JavaScript
import { Button, Space } from 'antd';
import { useRef } from 'react';
import { SchemaForm } from "../../..";
import DisplayComponent from "../components/DisplayComponent";
/**
* Group 模式下的约定式表单 Demo
* 测试内容:
* 1. 初始值展示:显示用户信息和部门信息
* 2. 赋值:点击“设置字段值”按钮后更新显示
* 3. 重置:点击“重置表单”后恢复初始值
* 4. 提交:点击“提交表单”时返回表单内嵌结构以及经过约定式转换后的数据
*/
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
var GroupConventionDemo = function GroupConventionDemo() {
var formRef = useRef();
// 表单提交处理,将提交值显示于页面下方
var handleFormFinish = function handleFormFinish(values) {
var resultEle = document.querySelector('[data-testid="form-submit-result"]');
if (resultEle) {
resultEle.textContent = JSON.stringify(values, null, 2);
}
};
return /*#__PURE__*/_jsxs("div", {
children: [/*#__PURE__*/_jsxs(Space, {
direction: "vertical",
style: {
marginBottom: 16
},
children: [/*#__PURE__*/_jsx(Button, {
"data-testid": "set-fields-btn",
onClick: function onClick() {
var _formRef$current;
(_formRef$current = formRef.current) === null || _formRef$current === void 0 || _formRef$current.setFieldsValue({
id: '2',
name: 'Bob',
deptId: '20',
deptName: 'IT'
});
},
children: "\u8BBE\u7F6E\u5B57\u6BB5\u503C"
}), /*#__PURE__*/_jsx(Button, {
"data-testid": "reset-btn",
onClick: function onClick() {
var _formRef$current2;
return (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.resetFields();
},
children: "\u91CD\u7F6E\u8868\u5355"
}), /*#__PURE__*/_jsx(Button, {
"data-testid": "submit-btn",
onClick: function onClick() {
var _formRef$current3;
return (_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.submit();
},
children: "\u63D0\u4EA4\u8868\u5355"
})]
}), /*#__PURE__*/_jsx(SchemaForm, {
formRef: formRef,
onFinish: handleFormFinish,
initialValues: {
id: '1',
name: 'Alice',
deptId: '10',
deptName: 'HR'
},
columns: [{
title: '用户信息',
valueType: 'group',
// group 模式下,columns 属性定义组内字段
columns: [{
title: '姓名',
dataIndex: 'id,name',
renderFormItem: function renderFormItem() {
return /*#__PURE__*/_jsx(DisplayComponent, {});
}
}]
}, {
title: '部门信息',
valueType: 'group',
columns: [{
title: '部门',
dataIndex: 'deptId,deptName',
renderFormItem: function renderFormItem() {
return /*#__PURE__*/_jsx(DisplayComponent, {
num: 2
});
}
}]
}]
}), /*#__PURE__*/_jsx("div", {
"data-testid": "form-submit-result",
style: {
marginTop: 16
}
})]
});
};
export default GroupConventionDemo;