UNPKG

53.8 kBJavaScriptView Raw
1
2import { Con, Row, Col } from 'bee-layout';
3import { Panel } from 'bee-panel';
4import Button from 'bee-button';
5import React, { Component } from 'react';
6import ReactDOM from 'react-dom';
7
8
9const CARET = <i className="uf uf-arrow-down"></i>;
10
11const CARETUP = <i className="uf uf-arrow-up"></i>;
12
13
14var Demo1 = require("./demolist/Demo1");var Demo2 = require("./demolist/Demo2");var Demo3 = require("./demolist/Demo3");var Demo4 = require("./demolist/Demo4");var Demo5 = require("./demolist/Demo5");var Demo6 = require("./demolist/Demo6");var DemoArray = [{"example":<Demo1 />,"title":" 单个input校验","code":"/**\n *\n * @title 单个input校验\n * @description 使用FormItem\n */\nimport React, { Component } from 'react';\nimport { Form, Label, FormControl } from 'tinper-bee';\nconst FormItem = Form.FormItem;\n\n\nconst Demo1 = Form.createForm()(class Demo extends Component {\n constructor(props) {\n super(props);\n }\n render() {\n const self=this;\n const { getFieldProps, getFieldError } = this.props.form;\n return (\n <FormItem className='demo1'>\n <Label>姓名:</Label>\n <FormControl placeholder='请输入姓名'\n {...getFieldProps('name', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入姓名'\n },{\n max:5,message:'最大长度为10'\n },{\n pattern: /[\\u4e00-\\u9fa5]/, message: '请输入中文字符',\n }],\n }) } />\n <span className='error'>\n {getFieldError('name')}\n </span> \n </FormItem>\n )\n }\n})\n\n","desc":" 使用FormItem","scss_code":".demo1 {\n font-size: 14px;\n .u-form .u-form-item {\n min-height: auto;\n }\n .u-label {\n display: inline;\n }\n .u-form-control {\n width: auto;\n }\n .error {\n font-size: 12px;\n color: red;\n margin-left: 10px;\n }\n}"},{"example":<Demo2 />,"title":" 基本form校验","code":"/**\n *\n * @title 基本form校验\n * @description 登录示例\n */\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Button, Label, FormControl } from 'tinper-bee';\nconst FormItem = Form.FormItem;\n\nconst Demo2 = Form.createForm()(class Demo2 extends Component {\n submit = (e) => {\n e.preventDefault();\n this.props.form.validateFields((err, values) => {\n if (err) {\n console.log('校验失败', values);\n } else {\n console.log('提交成功', values)\n }\n });\n }\n render() {\n const { getFieldProps, getFieldError } = this.props.form;\n return (\n <div className=\"demo2\">\n <Form >\n <FormItem>\n <Label>用户名:</Label>\n <FormControl placeholder=\"请输入用户名\"\n {...getFieldProps('username', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入用户名',\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('username')}\n </span>\n </FormItem>\n <FormItem>\n <Label>密码:</Label>\n <FormControl placeholder=\"请输入密码\" type='password'\n {...getFieldProps('password', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入密码',\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('password')}\n </span>\n </FormItem>\n <div className='submit'>\n <Button colors=\"primary\" className=\"login\" onClick={this.submit}>登陆</Button>\n <Button shape=\"border\" className=\"reset\">取消</Button>\n </div>\n </Form>\n </div>\n )\n }\n})\n","desc":" 登录示例","scss_code":".demo2 {\n font-size: 14px;\n .u-label {\n display: inline-block;\n min-width: 80px;\n text-align: right;\n }\n .u-form-control {\n width: auto;\n }\n .error {\n font-size: 12px;\n color: red;\n margin-left: 10px;\n }\n .submit {\n padding-left: 90px;\n }\n .submit .login {\n margin-right: 10px;\n }\n .u-form .u-form-item {\n min-height: auto;\n }\n}"},{"example":<Demo3 />,"title":" 基本form校验","code":"/**\n *\n * @title 基本form校验\n * @description 注册示例\n */\nimport React, { Component } from 'react';\nimport { Form, Label, Checkbox, Button, FormControl } from 'tinper-bee';\nconst FormItem = Form.FormItem;\n\nconst Demo3 = Form.createForm()( class Demo extends Component {\n constructor(props) {\n super(props);\n this.state = {\n checkbox: false\n }\n }\n submit = (e) => {\n e.preventDefault();\n this.props.form.validateFields((err, values) => {\n if (err) {\n console.log('校验失败', values);\n } else {\n console.log('提交成功', values)\n }\n });\n }\n handleConfirmPassword = (rule, value, callback) => {\n const { getFieldValue } = this.props.form;\n if (value && value !== getFieldValue('password')) {\n callback('两次输入不一致!')\n }\n callback();\n }\n render() {\n const self = this;\n const { getFieldProps, getFieldError } = this.props.form;\n return (\n <div className=\"demo3\">\n <Form>\n <FormItem>\n <Label>用户名:</Label>\n <FormControl placeholder=\"请输入用户名(包含数字和字母,8-15位)\"\n {...getFieldProps('username', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入用户名',\n }, {\n pattern: /^(?!\\d+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{8,15}$/, message: '用户名格式错误',\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('username')}\n </span>\n </FormItem>\n\n <FormItem>\n <Label>密码:</Label>\n <FormControl placeholder=\"请输入密码\" type='password'\n {...getFieldProps('password', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入密码',\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('password')}\n </span>\n </FormItem>\n\n <FormItem>\n <Label>再次输入密码:</Label>\n <FormControl placeholder=\"请输入密码\" type='password'\n {...getFieldProps('password2', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入密码',\n }, {\n validator: this.handleConfirmPassword\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('password2')}\n </span>\n </FormItem>\n\n <FormItem>\n <Label>邮箱:</Label>\n <FormControl placeholder=\"请输入邮箱\"\n {...getFieldProps('email', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入邮箱',\n }, {\n type: 'email', message: '邮箱格式不正确'\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('email')}\n </span>\n </FormItem>\n <FormItem>\n <Label>手机号:</Label>\n\n <FormControl placeholder=\"请输入手机号\"\n {...getFieldProps('phone', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入手机号',\n }, {\n pattern: /^\\d{11}$/, message: '手机号格式不正确'\n }],\n }) }\n />\n\n <span className='error'>\n {getFieldError('phone')}\n </span>\n </FormItem>\n\n <FormItem style={{'paddingLeft':'110px'}}>\n <Checkbox colors=\"info\"\n defaultChecked={this.state.checkbox}\n {\n ...getFieldProps('checkbox', {\n initialValue: false,\n }\n ) }\n />\n <span>我已经阅读并同意相关条款</span>\n </FormItem>\n <div className='submit'>\n <Button colors=\"primary\" className=\"login\" onClick={this.submit}>注册</Button>\n <Button shape=\"border\" className=\"reset\">取消</Button>\n </div>\n </Form>\n </div>\n )\n }\n})\n","desc":" 注册示例","scss_code":".demo3 {\n font-size: 14px;\n .u-label {\n display: inline-block;\n min-width: 100px;\n text-align: right;\n }\n .u-form-control {\n width: auto;\n min-width: 300px;\n }\n .error {\n font-size: 12px;\n color: red;\n margin-left: 10px;\n }\n .submit {\n padding-left: 110px;\n }\n .submit .login {\n margin-right: 10px;\n }\n .u-form .u-form-item {\n min-height: auto;\n }\n}"},{"example":<Demo4 />,"title":" 表单校验","code":"/**\n *\n * @title 表单校验\n * @description 用户信息录入实例\n */\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Button, Label, CitySelect, Rate, InputNumber, Slider, Switch, Checkbox, DatePicker, Radio, Select, FormControl } from 'tinper-bee';\nconst FormItem = Form.FormItem;\nconst Option = Select.Option;\n\nconst Demo4 = Form.createForm()(class Demo extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedValue: 'man',\n };\n }\n submit = (e) => {\n this.props.form.validateFields((err, values) => {\n if (err) {\n console.log('校验失败', values);\n } else {\n console.log('提交成功', values)\n }\n });\n }\n render() {\n const { getFieldProps, getFieldError } = this.props.form;\n const self = this;\n return (\n <div>\n <Form className='demo4'>\n <FormItem>\n <Label>姓名:</Label>\n <FormControl placeholder=\"请输入姓名\"\n {...getFieldProps('name', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入姓名',\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('name')}\n </span>\n </FormItem>\n <FormItem>\n <Label>身份证号:</Label>\n <FormControl placeholder=\"请输入身份证号\"\n {...getFieldProps('id', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入身份证号',\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('id')}\n </span>\n </FormItem>\n <FormItem className='time'>\n <Label>出生日期:</Label>\n <DatePicker\n {\n ...getFieldProps('time', {\n\n }\n ) }\n placeholder={'请选择出生日期'}\n />\n </FormItem>\n <FormItem>\n <Label>年龄:</Label>\n <FormControl placeholder=\"请输入年龄\"\n {...getFieldProps('age', {\n validateTrigger: 'onBlur',\n rules: [{\n required: true, message: '请输入年龄',\n }],\n }) }\n />\n <span className='error'>\n {getFieldError('age')}\n </span>\n </FormItem>\n <FormItem>\n <Label>性别:</Label>\n <Radio.RadioGroup\n selectedValue={this.state.selectedValue}\n {\n ...getFieldProps('sex', {\n initialValue: 'man',\n onChange(value) {\n self.setState({ selectedValue: value });\n },\n rules: [{ required: true }]\n }\n ) }\n >\n <Radio value=\"man\" >男</Radio>\n <Radio value=\"woman\" >女</Radio>\n </Radio.RadioGroup>\n </FormItem>\n <FormItem>\n <Label>学历:</Label>\n <Select\n {\n ...getFieldProps('education', {\n initialValue: '',\n rules: [{ required: true }]\n }\n ) }\n >\n <Option value=\"\">请选择</Option>\n <Option value=\"nothing\">无</Option>\n <Option value=\"middle\">初中</Option>\n <Option value=\"senior\">高中</Option>\n <Option value=\"college1\">专科</Option>\n <Option value=\"college2\">本科</Option>\n <Option value=\"graduate\">研究生及以上</Option>\n <Option value=\"other\">其它</Option>\n </Select>\n </FormItem>\n <FormItem>\n <Label>保密等级:</Label>\n <Rate\n {\n ...getFieldProps('rate', {\n initialValue: 0,\n rules: [{ required: true }]\n }\n ) }\n />\n </FormItem>\n <FormItem >\n <Label>备注:</Label>\n <FormControl componentClass='textarea'\n {\n ...getFieldProps('remark', {}\n ) }\n />\n </FormItem> \n \n\n\n <div className='submit'>\n <Button colors=\"primary\" className=\"login\" onClick={this.submit}>提交</Button>\n <Button shape=\"border\" className=\"reset\">取消</Button>\n </div>\n </Form>\n </div>\n )\n }\n})\n","desc":" 用户信息录入实例","scss_code":".demo4 {\n font-size: 14px;\n .u-label {\n display: inline-block;\n min-width: 100px;\n text-align: right;\n }\n .u-form-control {\n width: auto;\n min-width: 380px;\n }\n .error {\n font-size: 12px;\n color: red;\n margin-left: 10px;\n }\n .submit {\n padding-left: 110px;\n }\n .submit .login {\n margin-right: 10px;\n }\n .u-select {\n max-width: 380px;\n }\n textarea {\n min-height: 100px;\n resize: none;\n }\n .time>div {\n display: inline-block;\n }\n .time .u-label {\n position: relative;\n bottom: 10px;\n }\n .u-city-select {\n display: inline-block;\n }\n .u-city-select .province,\n .u-city-select .city,\n .u-city-select .area {\n width: 120px;\n }\n .u-form .u-form-item {\n min-height: auto;\n }\n}"},{"example":<Demo5 />,"title":" 多种表单元素示例","code":"/**\n *\n * @title 多种表单元素示例\n * @description 查询面板\n */\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Button, Label, Switch, Checkbox, DatePicker, Radio, Select, Col , Row , FormControl } from 'tinper-bee';\nimport moment from \"moment/moment\";\nconst FormItem = Form.FormItem;\nconst Option = Select.Option;\nconst { RangePicker } = DatePicker;\n\nconst Demo5 = Form.createForm()(class Demo extends Component {\n constructor(props) {\n super(props);\n this.state = {\n approvalState: '',\n closeState: '',\n confirmState: '',\n voucherDate: [],\n orderTypes:[\n {\n 'code':'001',\n 'name':'类型1'\n },\n {\n 'code':'002',\n 'name':'类型2'\n },\n {\n 'code':'003',\n 'name':'类型3'\n },\n ]\n };\n }\n submit = (e) => {\n this.props.form.validateFields((err, values) => {\n if (err) {\n console.log('校验失败', values);\n } else {\n console.log('提交成功', values)\n }\n });\n }\n reset = () =>{\n this.props.form.resetFields();\n //部分表单元素无法通过this.props.form.resetFields重置,需要手动重置,如下\n this.setState({\n approvalState: '',\n closeState: '',\n confirmState: '',\n voucherDate: []\n })\n }\n render() {\n const { getFieldProps, getFieldError } = this.props.form;\n const self = this;\n return (\n <div>\n <Form className='demo5'>\n <Row>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>订单编号:</Label>\n <FormControl\n {\n ...getFieldProps('orderCode', {\n initialValue: '',\n })\n }\n />\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>供应商名称:</Label>\n <FormControl\n {\n ...getFieldProps('supplierName', {\n initialValue: '',\n })\n }\n />\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={4}>\n <FormItem>\n <Label className='time'>凭证日期:</Label>\n <RangePicker\n defaultValue={this.state.voucherDate}\n placeholder={'开始 ~ 结束'}\n dateInputPlaceholder={['开始', '结束']}\n {\n ...getFieldProps('voucherDate', {\n onChange: function (v) {\n self.setState({\n voucherDate: v\n })\n }\n })\n }\n />\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>订单类型:</Label>\n <Select {\n ...getFieldProps('type', {\n initialValue: '',\n }\n )}>\n <Option value=\"\">请选择</Option>\n {\n self.state.orderTypes.map((item, index) => {\n return (\n <Option key={index} value={item.code}>{item.name}</Option>\n )\n })\n }\n </Select>\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>采购组:</Label>\n <FormControl\n {\n ...getFieldProps('purchasingGroup', {\n initialValue: '',\n })\n }\n />\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>审批状态:</Label>\n <Radio.RadioGroup\n selectedValue={this.state.approvalState}\n {\n ...getFieldProps('approvalState', {\n initialValue: '',\n onChange(value) {\n self.setState({ approvalState: value });\n },\n }\n )}\n >\n <Radio value=\"0\" >未审批</Radio>\n <Radio value=\"1\" >已审批</Radio>\n <Radio value=\"\" >全部</Radio>\n </Radio.RadioGroup>\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>关闭状态:</Label>\n <Radio.RadioGroup\n selectedValue={this.state.closeState}\n {\n ...getFieldProps('closeState', {\n initialValue: '',\n onChange(value) {\n self.setState({ closeState: value });\n },\n }\n )}\n >\n <Radio value=\"0\" >未关闭</Radio>\n <Radio value=\"1\" >已关闭</Radio>\n <Radio value=\"\" >全部</Radio>\n </Radio.RadioGroup>\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>确认状态:</Label>\n <Radio.RadioGroup\n selectedValue={this.state.confirmState}\n {\n ...getFieldProps('confirmState', {\n initialValue: '',\n onChange(value) {\n self.setState({ confirmState: value });\n },\n }\n )}\n >\n <Radio value=\"0\" >未确认</Radio>\n <Radio value=\"1\" >已确认</Radio>\n <Radio value=\"\" >全部</Radio>\n </Radio.RadioGroup>\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>未分配:</Label>\n <Checkbox colors=\"primary\"></Checkbox>\n </FormItem>\n </Col>\n </Row>\n <div className='submit'>\n <Button colors=\"primary\" className=\"login\" onClick={this.submit}>查询</Button>\n <Button shape=\"border\" className=\"reset\" onClick={this.reset}>重置</Button>\n </div>\n </Form>\n </div>\n )\n }\n})\n","desc":" 查询面板","scss_code":".demo5 {\n .submit{\n padding-left:90px\n }\n .reset{\n margin-left:10px;\n }\n .u-form-item {\n min-width: 100%;\n min-height: 50px;\n padding: 0;\n .u-label{\n min-width: 90px;\n display: inline-block;\n text-align:right;\n }\n .u-label.time{\n position: relative;\n bottom: 10px;\n }\n .u-label + *{\n min-width: 200px;\n display: inline-block;\n }\n .datepicker-input-group{\n .u-input-group-btn{\n .uf-calendar{\n padding: 0;\n }\n }\n }\n .u-switch{\n min-width: auto;\n }\n .u-select{\n width: auto;\n }\n .u-form-control{\n width: auto;\n }\n .calendar-picker{\n display: inline-block;\n min-width:200px;\n width: auto;\n input{\n width: 100%;\n text-align: center;\n }\n }\n .u-radio .u-radio-label{\n font-size:14px;\n }\n }\n .u-form .u-form-item {\n min-height: auto;\n }\n}\n"},{"example":<Demo6 />,"title":" 多种布局示例","code":"/**\n *\n * @title 多种布局示例\n * @description \n */\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Button, Label, Switch, Checkbox, DatePicker, Radio, Select, Col , Row , FormControl } from 'tinper-bee';\nimport moment from \"moment/moment\";\nconst FormItem = Form.FormItem;\nconst Option = Select.Option;\nconst { RangePicker } = DatePicker;\n\nconst Demo6 = Form.createForm()(class Demo extends Component {\n constructor(props) {\n super(props);\n this.state = {\n approvalState: '',\n closeState: '',\n confirmState: '',\n voucherDate: [],\n orderTypes:[\n {\n 'code':'001',\n 'name':'类型1'\n },\n {\n 'code':'002',\n 'name':'类型2'\n },\n {\n 'code':'003',\n 'name':'类型3'\n },\n ]\n };\n }\n render() {\n const { getFieldProps, getFieldError } = this.props.form;\n const self = this;\n const orderTypes= [{\n \"code\":\"D001\",\n \"name\":\"D001\"\n },{\n \"code\":\"D002\",\n \"name\":\"D002\"\n },{\n \"code\":\"D003\",\n \"name\":\"D003\"\n },{\n \"code\":\"D004\",\n \"name\":\"D004\"\n }];\n return (\n <div>\n <Form className='demo6'>\n {/* 普通栅格布局 */}\n <h4>\n 普通栅格布局\n </h4>\n <Row className = 'edit-panel'>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>订单编号:\n <span className='mast'>*</span>\n </Label>\n <FormControl\n {\n ...getFieldProps('orderCode1', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入订单编号',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('orderCode1')\n }\n </span>\n </FormItem>\n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label>供应商名称:\n <span className='mast'>*</span>\n </Label>\n <FormControl\n {\n ...getFieldProps('supplierName1', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入供应商名称',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('supplierName1')\n }\n </span>\n </FormItem>\n \n </Col>\n <Col lg={4} md={6} xs={12}>\n <FormItem>\n <Label className='time'>凭证日期:</Label>\n <RangePicker\n defaultValue={this.state.voucherDate}\n placeholder={'开始 ~ 结束'}\n dateInputPlaceholder={['开始', '结束']}\n {\n ...getFieldProps('voucherDate1', {\n onChange: function (v) {\n self.setState({\n voucherDate1: v\n })\n }\n })\n }\n />\n </FormItem>\n </Col>\n </Row>\n\n <div className='split'></div>\n \n \n {/* 单列铺满 */}\n <h4>\n 单列铺满\n </h4>\n <Row className = 'edit-panel edit-panel-all'>\n <FormItem>\n <Col md={2}>\n <Label>订单编号:\n <span className='mast'>*</span>\n </Label>\n </Col>\n <Col md={10}>\n <FormControl\n {\n ...getFieldProps('orderCode2', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入订单编号',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('orderCode2')\n }\n </span>\n </Col>\n </FormItem>\n\n <FormItem>\n <Col md={2}>\n <Label>供应商名称:\n <span className='mast'>*</span>\n </Label>\n </Col>\n <Col md={10}>\n <FormControl\n {\n ...getFieldProps('supplierName2', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入供应商名称',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('supplierName2')\n }\n </span>\n </Col>\n </FormItem>\n\n <FormItem>\n <Col md={2}>\n <Label>凭证日期:</Label>\n </Col>\n <Col md={10}>\n <RangePicker\n defaultValue={this.state.voucherDate}\n placeholder={'开始 ~ 结束'}\n dateInputPlaceholder={['开始', '结束']}\n {\n ...getFieldProps('voucherDate2', {\n onChange: function (v) {\n self.setState({\n voucherDate2: v\n })\n }\n })\n }\n />\n </Col>\n </FormItem>\n <FormItem>\n <Col md={2}>\n <Label>订单类型:</Label>\n </Col>\n <Col md={10}>\n <Select {\n ...getFieldProps('type', {\n initialValue: '',\n }\n )}>\n <Option value=\"\">请选择</Option>\n {\n orderTypes.map((item, index) => {\n return (\n <Option key={index} value={item.code}>{item.name}</Option>\n )\n })\n }\n </Select>\n </Col>\n </FormItem>\n \n </Row>\n\n <div className='split'></div>\n\n {/* 单列居中 */}\n <h4>\n 单列居中\n </h4>\n <Row className = 'edit-panel edit-panel-center'>\n <Col md={12}>\n <FormItem>\n <Label>订单编号:\n <span className='mast'>*</span>\n </Label>\n <FormControl\n {\n ...getFieldProps('orderCode3', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入订单编号',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('orderCode3')\n }\n </span>\n </FormItem>\n </Col>\n <Col md={12}>\n <FormItem>\n <Label>供应商名称:\n <span className='mast'>*</span>\n </Label>\n <FormControl\n {\n ...getFieldProps('supplierName3', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入供应商名称',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('supplierName3')\n }\n </span>\n </FormItem>\n \n </Col>\n <Col md={12}>\n <FormItem>\n <Label className='time'>凭证日期:</Label>\n <RangePicker\n defaultValue={this.state.voucherDate}\n placeholder={'开始 ~ 结束'}\n dateInputPlaceholder={['开始', '结束']}\n {\n ...getFieldProps('voucherDate3', {\n onChange: function (v) {\n self.setState({\n voucherDate3: v\n })\n }\n })\n }\n />\n </FormItem>\n </Col>\n \n </Row>\n\n <div className='split'></div>\n\n {/* 三列带textarea */}\n <h4>\n 三列带textarea\n </h4>\n <Row className = 'edit-panel edit-panel-textarea'>\n\n <Col md={1}>\n <Label>订单编号:\n <span className='mast'>*</span>\n </Label>\n </Col>\n <Col md={3}>\n <FormControl\n {\n ...getFieldProps('orderCode4', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入订单编号',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('orderCode4')\n }\n </span>\n </Col>\n <Col md={1}>\n <Label>供应商名称:\n <span className='mast'>*</span>\n </Label>\n </Col>\n <Col md={3}>\n <FormControl\n {\n ...getFieldProps('supplierName4', {\n initialValue: '',\n rules: [{\n required: true, message: '请输入供应商名称',\n }],\n })\n }\n />\n <span className='error'>\n {\n getFieldError('supplierName4')\n }\n </span>\n </Col>\n <Col md={1}>\n <Label className='time'>凭证日期:</Label>\n </Col>\n <Col md={3}>\n <RangePicker\n defaultValue={this.state.voucherDate}\n placeholder={'开始 ~ 结束'}\n dateInputPlaceholder={['开始', '结束']}\n {\n ...getFieldProps('voucherDate4', {\n onChange: function (v) {\n self.setState({\n voucherDate3: v\n })\n }\n })\n }\n />\n </Col>\n <Col md={1}>\n <Label className='time'>备注:</Label>\n </Col>\n <Col md={11}>\n <textarea className='u-form-control'\n {\n ...getFieldProps('mark', {\n initialValue: '',\n })\n }\n />\n </Col>\n\n \n </Row>\n \n </Form>\n </div>\n )\n }\n})\n","desc":" ","scss_code":".demo6 {\n .edit-panel {\n background: #FFF;\n padding: 15px 15px 15px 15px;\n .reset-btn,\n .reset-btn:hover {\n background: #fff;\n border: 1px solid #1E7BE2;\n color: #1E7BE2;\n margin-right: 15px;\n }\n .submit-btn,\n .submit-btn:hover {\n background: #1E7BE2;\n color: #fff;\n }\n .btn-group {\n text-align: right;\n }\n .u-form-item {\n min-width: 100%;\n margin-bottom: 10px;\n min-height: 50px;\n .error {\n margin-left: 100px;\n color: red;\n display: block;\n }\n .u-label {\n min-width: 100px;\n display: inline-block;\n }\n .u-label.time {\n position: relative;\n bottom: 10px;\n }\n .u-label+* {\n min-width: 200px;\n display: inline-block;\n }\n .mast {\n width: 5px;\n min-width: auto;\n margin-right: 5px;\n color: red;\n }\n .datepicker-input-group {\n .u-input-group-btn {\n .uf-calendar {\n padding: 0;\n }\n }\n }\n .u-switch {\n min-width: auto;\n }\n .u-select {\n width: auto;\n }\n .u-form-control {\n width: auto;\n }\n .calendar-picker {\n display: inline-block;\n min-width: 200px;\n width: auto;\n input {\n width: 100%;\n }\n }\n .u-form-control-close {\n width: auto;\n .u-form-control {\n width: 100%\n }\n }\n }\n .search-panel-btn {\n text-align: right;\n padding: 10px 0;\n }\n }\n .edit-panel-center {\n text-align: center;\n .u-form-item {\n min-width: auto;\n display: inline-block;\n .error {\n text-align: left;\n }\n }\n }\n .edit-panel-all {\n .u-form-item {\n padding: 0;\n .u-label {\n width: 100%;\n text-align: right;\n height: 30px;\n line-height: 30px;\n }\n .u-form-control {\n width: 100%;\n }\n .calendar-picker {\n width: 100%;\n position: relative;\n }\n .u-select {\n width: 100%;\n }\n .error {\n margin-left: 0;\n }\n }\n }\n .split {\n height: 5px;\n background: #e0e0e0;\n }\n .edit-panel-textarea {\n >div {\n margin-bottom: 10px;\n min-height: 50px;\n .u-label {\n height: 30px;\n line-height: 30px;\n text-align: right;\n display: block;\n }\n .error {\n margin-left: 100px;\n color: red;\n display: block;\n }\n .mast {\n color: red;\n }\n textarea {\n width: 100%;\n resize: none;\n min-height: 50px;\n }\n .calendar-picker,\n .u-select {\n width: 100%;\n }\n }\n }\n}"}]
15
16
17class Demo extends Component {
18 constructor(props){
19 super(props);
20 this.state = {
21 open: false
22 }
23 this.handleClick = this.handleClick.bind(this);
24 }
25 handleClick() {
26 this.setState({ open: !this.state.open })
27 }
28
29 render () {
30 const { title, example, code, desc, scss_code } = this.props;
31 let caret = this.state.open ? CARETUP : CARET;
32 let text = this.state.open ? "隐藏代码" : "查看代码";
33
34 const header = (
35 <div>
36 {example}
37 <Button style={{"marginTop": "10px"}} shape="block" onClick={ this.handleClick }>
38 { caret }
39 { text }
40 </Button>
41 </div>
42 );
43 return (
44 <Col md={12} >
45 <h3>{ title }</h3>
46 <p>{ desc }</p>
47 <Panel collapsible headerContent expanded={ this.state.open } colors='bordered' header={ header } footerStyle = {{padding: 0}}>
48 <pre><code className="hljs javascript">{ code }</code></pre>
49 { !!scss_code ? <pre><code className="hljs css">{ scss_code }</code></pre> : null }
50 </Panel>
51 </Col>
52 )
53 }
54}
55
56class DemoGroup extends Component {
57 constructor(props){
58 super(props)
59 }
60 render () {
61 return (
62 <Row>
63 {DemoArray.map((child,index) => {
64
65 return (
66 <Demo example= {child.example} title= {child.title} code= {child.code} scss_code= {child.scss_code} desc= {child.desc} key= {index}/>
67 )
68
69 })}
70 </Row>
71 )
72 }
73}
74
75ReactDOM.render(<DemoGroup/>, document.getElementById('tinperBeeDemo'));