import React, { useState, useLayoutEffect, Component } from 'react'; import { storiesOf } from '@storybook/react'; import { Button, Modal, TreeSelect, Row, Col, Avatar, Icon, Select as BasicSelect, Form, useFormState, useFormApi, useFieldApi, useFieldState, withFormState, withFormApi, withField, ArrayField, AutoComplete, Collapse } from '../../../index'; import { ComponentUsingFormState } from '../Hook/hookDemo'; const { Input, Select, DatePicker, Switch, Slider, CheckboxGroup, Checkbox, RadioGroup, Radio, TimePicker, InputNumber, InputGroup } = Form; const plainOptions = ['Apple', 'Pear', 'Orange']; const { Option } = Select; const { Label } = Form; const { Section } = Form; // wrapperCol, labelCol class LayoutDemo extends React.Component { constructor() { super(); this.state = { labelPosition: 'left', labelAlign: 'left', // labelWidth: '180px' }; this.changeLabelPos = this.changeLabelPos.bind(this); this.changeLabelAlign = this.changeLabelAlign.bind(this); } changeLabelPos(labelPosition) { let labelWidth; // labelPosition === 'left' ? labelWidth = '180px' : labelWidth = 'auto'; this.setState({ labelPosition, labelWidth }); } changeLabelAlign(labelAlign) { this.setState({ labelAlign }); } setValues() { this.formApi.setValues({ }); } render() { const { labelPosition, labelAlign, labelWidth } = this.state; return ( <>
top left left right

console.log(formState)} onValueChange={formState => console.log(formState)} style={{ padding: '10px', width: 600 }}> value === 'muji', message: 'not muji' } ]} /> 管理员admin 用户user 访客guest 根用户root root man woman
slot
); } } class InsetLabelDemo extends React.Component { constructor(props) { super(); this.state = { labelPosition: 'left', labelAlign: 'left', // labelWidth: '180px' }; this.changeLabelPos = this.changeLabelPos.bind(this); this.changeLabelAlign = this.changeLabelAlign.bind(this); } changeLabelPos(labelPosition) { let labelWidth; // labelPosition === 'left' ? labelWidth = '180px' : labelWidth = 'auto'; this.setState({ labelPosition, labelWidth }); } changeLabelAlign(labelAlign) { this.setState({ labelAlign }); } render() { const { labelPosition, labelAlign } = this.state; return (
console.log(formState)} onValueChange={formState => console.log(formState)} style={{ padding: '10px', width: 600 }}>
slot
); } } class GroupFormDemo extends React.Component { constructor() { super(); this.saveFormApi = this.saveFormApi.bind(this); this.manualSubmit = this.manualSubmit.bind(this); } saveFormApi(formApi) { this.formApi = formApi; } manualSubmit() { this.formApi.submitForm(); } render() { const selectProps = { style: { width: '100px' }, placeholder: '国家', field: 'country', rules: [ { required: true } ] }; return ( <>
console.log(values)} labelPosition="left" getFormApi={this.saveFormApi}>
); } } class LayoutForm extends React.Component { constructor() { super(); this.state = { filed: {}, layout: 'vertical', labelPosition: 'top', // horizontal }; this.getFormApi = this.getFormApi.bind(this); this.changeLayout = this.changeLayout.bind(this); this.changeLabelPos = this.changeLabelPos.bind(this); } changeLayout(layout) { this.setState({ layout }); } changeLabelPos(labelPosition) { this.setState({ labelPosition }); } changeInput() { this.formApi.setValue('input', Math.random()); } getFormApi(formApi) { this.formApi = formApi; } render() { const { field } = this.state; const { layout, labelPosition } = this.state; return ( <>
vertical horizontal top left
value === 'muji', message: 'not muji' } ]} /> admin user guest root
); } } export { LayoutDemo, InsetLabelDemo, GroupFormDemo };