import React, {Component} from 'react'
|
import PropTypes from 'prop-types'
|
import { Form, Row, Col, InputNumber, Select, Radio } from 'antd'
|
|
import './index.scss'
|
|
class MainSearch extends Component {
|
static propTpyes = {
|
dict: PropTypes.object, // 字典项
|
config: PropTypes.object,
|
updateConfig: PropTypes.func
|
}
|
|
changeFirstCount = (val) => {
|
if (typeof(val) !== 'number') {
|
val = ''
|
}
|
this.props.updateConfig({...this.props.config, firstCount: val})
|
}
|
|
changeCount = (val) => {
|
if (typeof(val) !== 'number') {
|
val = ''
|
}
|
this.props.updateConfig({...this.props.config, everyPCount: val})
|
}
|
|
changeLastCount = (val) => {
|
if (typeof(val) !== 'number') {
|
val = ''
|
}
|
this.props.updateConfig({...this.props.config, lastCount: val})
|
}
|
|
pageSizeChange = (val) => {
|
this.props.updateConfig({...this.props.config, pageSize: val})
|
}
|
|
onLayoutChange = (val) => {
|
this.props.updateConfig({...this.props.config, pageLayout: val})
|
}
|
|
onPaddingChange = (val) => {
|
this.props.updateConfig({...this.props.config, pagePadding: val})
|
}
|
|
render() {
|
const { dict, config } = this.props
|
const { getFieldDecorator } = this.props.form
|
const formItemLayout = {
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 8 }
|
},
|
wrapperCol: {
|
xs: { span: 24 },
|
sm: { span: 16 }
|
}
|
}
|
|
return (
|
<Form {...formItemLayout} className="print-menu-form">
|
<Row>
|
<Col span={24}>
|
<Form.Item label="打印尺寸">
|
{getFieldDecorator('pageSize', {
|
initialValue: config.pageSize || 'A4',
|
rules: [
|
{
|
required: true,
|
message: dict['mob.required.input'] + '打印尺寸!'
|
}
|
]
|
})(
|
<Select onChange={this.pageSizeChange}>
|
<Select.Option value="A3">A3</Select.Option>
|
<Select.Option value="A4">A4</Select.Option>
|
<Select.Option value="A5">A5</Select.Option>
|
</Select>
|
)}
|
</Form.Item>
|
</Col>
|
<Col span={24}>
|
<Form.Item label="打印布局">
|
{getFieldDecorator('pageLayout', {
|
initialValue: config.pageLayout || 'vertical',
|
rules: [
|
{
|
required: true,
|
message: dict['mob.required.select'] + '打印布局!'
|
}
|
]
|
})(
|
<Radio.Group onChange={(e) => {this.onLayoutChange(e.target.value)}}>
|
<Radio value="vertical">纵向</Radio>
|
<Radio value="horizontal">横向</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col>
|
<Col span={24}>
|
<Form.Item label="打印边距">
|
{getFieldDecorator('pagePadding', {
|
initialValue: config.pagePadding || 'default',
|
rules: [
|
{
|
required: true,
|
message: dict['mob.required.select'] + '打印边距!'
|
}
|
]
|
})(
|
<Radio.Group onChange={(e) => {this.onPaddingChange(e.target.value)}}>
|
<Radio value="default">默认</Radio>
|
<Radio value="without">无</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col>
|
<Col span={24}>
|
<Form.Item label="首页数(条)">
|
{getFieldDecorator('firstCount', {
|
initialValue: config.firstCount,
|
rules: [
|
{
|
required: true,
|
message: dict['mob.required.input'] + '首页数!'
|
}
|
]
|
})(<InputNumber min={1} max={1000} precision={0} onChange={this.changeFirstCount}/>)}
|
</Form.Item>
|
</Col>
|
<Col span={24}>
|
<Form.Item label="每页数(条)">
|
{getFieldDecorator('everyPCount', {
|
initialValue: config.everyPCount,
|
rules: [
|
{
|
required: true,
|
message: dict['mob.required.input'] + '每页数!'
|
}
|
]
|
})(<InputNumber min={1} max={1000} precision={0} onChange={this.changeCount}/>)}
|
</Form.Item>
|
</Col>
|
<Col span={24}>
|
<Form.Item label="尾页数(条)">
|
{getFieldDecorator('lastCount', {
|
initialValue: config.lastCount
|
})(<InputNumber min={1} max={1000} precision={0} onChange={this.changeLastCount}/>)}
|
</Form.Item>
|
</Col>
|
</Row>
|
</Form>
|
)
|
}
|
}
|
|
export default Form.create()(MainSearch)
|