@aliretail/react-materials-components
Version:
240 lines (230 loc) • 7.97 kB
Markdown
---
title: ChildContainer
order: 170
---
请在 GridLayout 布局中设置 align: 'left'参数,使排版靠左
布局居中的情况下暂无 ChildContainer 场景
```jsx
import React, { useState } from 'react';
import ReactDOM from 'react-dom';
import { Button } from '@alife/next';
import PowerEditor from '../../src/FormComponents/powerEditor';
import { FormComponents } from '@aliretail/react-materials-components';
const { setup, SchemaForm, SchemaMarkupField: Field, FormButtonGroup } = FormComponents;
setup({
PowerEditor,
});
const App = () => {
const [editable, setEditable] = useState(true);
const [isPreview, setPreview] = useState(false);
const [disabled, setDisabled] = useState(false);
const extConfig = {
isPreview,
disabled,
};
return (
<>
<SchemaForm
defaultValue={{
age: 'label不显示内容情况',
age1: 'isPreview状态',
card: 'card',
numberPicker: 111,
numberPicker1: 222,
datePicker: '2020-12-02',
radioGroup: '2',
rangeDatePicker: ['2020-12-03', '2021-01-13'],
weekDatePicker: '2020-49th',
monthDatePicker: '2020-02',
yearDatePicker: '2022',
kind: 'a',
PowerEditor: '富文本框内容<br/> preview状态未在业务中出现,所以未和ui统一规范',
}}
editable={editable}
// 监听每个input内容修改
onChange={console.log}
// 监听Submit的点击事件
onSubmit={(e) => {
// 可以在这里访问接口
console.log(e);
}}
schema={{
type: 'object',
properties: {
gridLayout: {
type: 'object',
'x-component': 'GridLayout',
'x-component-props': {
isForm: true,
align: 'left',
},
properties: {
childContainer: {
'x-component': 'ChildContainer',
title: '产品描述规格',
required: true,
properties: {
card: {
title: <div style={{ color: 'red' }}>自定义标题</div>,
required: true,
'x-component': 'Input',
'retail-form-item-props': {
addonTextAfter: '后字',
inputAreaWidth: 200,
},
'x-component-props': {
...extConfig,
},
},
numberPicker: {
'x-component': 'NumberPicker',
title: 'NP',
'retail-form-item-props': {
emphasizeExplanation: true,
explanation: '基础帮助信息',
addonTextAfter: '后面添加的文字',
inputAreaWidth: 200,
},
'x-component-props': {
...extConfig,
},
},
numberPicker1: {
'x-component': 'NumberPicker',
title: 'NumberPicker',
'retail-form-item-props': {
addonTextAfter: '后面添加的文字',
},
'x-component-props': {
...extConfig,
},
},
datePicker: {
'x-component': 'DatePicker',
title: 'DatePicker',
'x-component-props': {
type: 'array',
title: 'DatePicker',
...extConfig,
},
},
rangeDatePicker: {
'x-component': 'rangeDatePicker',
title: 'RangeDatePicker',
'x-component-props': {
type: 'array',
title: 'RangeDatePicker',
...extConfig,
},
},
weekDatePicker: {
'x-component': 'weekDatePicker',
title: 'weekDatePicker',
'x-component-props': {
...extConfig,
},
},
monthDatePicker: {
'x-component': 'monthDatePicker',
title: 'monthDatePicker',
'x-component-props': {
...extConfig,
},
},
yearDatePicker: {
'x-component': 'yearDatePicker',
title: 'yearDatePicker',
'x-component-props': {
...extConfig,
},
},
kind: {
title: '类目',
enum: ['a', 'b', 'c'],
required: true,
'x-component': 'Select',
'retail-form-item-props': {
explanation: '基础帮助信息',
inputAreaWidth: 's',
},
'x-component-props': {
...extConfig,
},
},
age1: {
title: '年龄1',
'x-component': 'Input',
'retail-form-item-props': {
emphasizeExplanation: true,
explanation: '基础帮助信息',
},
'x-component-props': {
...extConfig,
},
},
radioGroup: {
title: 'radio 按钮',
'x-component': 'RadioGroup',
enum: [
{ label: 'One', value: '1' },
{ label: 'Two', value: '2' },
{ label: 'Three', value: '3' },
{ label: 'Four', value: '4' },
],
required: true,
'x-component-props': {
...extConfig,
},
},
PowerEditor: {
'x-component': 'PowerEditor',
title: '商品文描',
'x-component-props': {
...extConfig,
},
},
},
},
age: {
title: 'title',
'x-component': 'input',
required: true,
'x-component-props': {
placeholder: '请输入您的年龄',
...extConfig,
},
},
},
},
},
}}
/>
<Button
onClick={() => {
setEditable(!editable);
}}
disabled={isPreview || disabled}
>
切换{editable ? 'readonly' : '编辑'}状态
</Button>
<Button
onClick={() => {
setPreview(!isPreview);
}}
disabled={!editable || disabled}
>
切换{isPreview ? '编辑' : 'isPreview'}状态
</Button>
<Button
onClick={() => {
setDisabled(!disabled);
}}
disabled={!editable || isPreview}
>
切换{disabled | isPreview ? '编辑' : 'disabled'}状态
</Button>
</>
);
};
ReactDOM.render(<App />, mountNode);
```