import React, {Component} from 'react'
|
import PropTypes from 'prop-types'
|
import { Form, Row, Col, Tooltip, Select, Radio, InputNumber } from 'antd'
|
import { QuestionCircleOutlined } from '@ant-design/icons'
|
|
// import './index.scss'
|
|
class UnattenSettingForm extends Component {
|
static propTpyes = {
|
autoMatic: PropTypes.object,
|
actions: PropTypes.array
|
}
|
|
state = {
|
enable: this.props.autoMatic.enable,
|
onFinish: this.props.autoMatic.onFinish || 'restart'
|
}
|
|
handleConfirm = () => {
|
// 表单提交时检查输入值是否正确
|
return new Promise((resolve, reject) => {
|
this.props.form.validateFieldsAndScroll((err, values) => {
|
if (!err) {
|
resolve(values)
|
} else {
|
reject(err)
|
}
|
})
|
})
|
}
|
|
render() {
|
const { actions, autoMatic } = this.props
|
const { getFieldDecorator } = this.props.form
|
const { enable, onFinish } = this.state
|
|
const formItemLayout = {
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 8 }
|
},
|
wrapperCol: {
|
xs: { span: 24 },
|
sm: { span: 16 }
|
}
|
}
|
|
return (
|
<Form {...formItemLayout}>
|
<Row gutter={24}>
|
<Col span={12}>
|
<Form.Item label="是否启用">
|
{getFieldDecorator('enable', {
|
initialValue: autoMatic.enable,
|
})(
|
<Radio.Group onChange={(e) => this.setState({enable: e.target.value})}>
|
<Radio value="true">是</Radio>
|
<Radio value="false">否</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col>
|
{enable === 'true' ? <Col span={12}>
|
<Form.Item label={
|
<Tooltip placement="topLeft" title="用于自动执行的按钮。">
|
<QuestionCircleOutlined className="mk-form-tip" />
|
按钮
|
</Tooltip>
|
}>
|
{getFieldDecorator('action', {
|
initialValue: autoMatic.action || '',
|
rules: [{
|
required: true,
|
message: '请选择执行按钮!'
|
}]
|
})(
|
<Select>
|
{actions.map((option, i) =>
|
<Select.Option key={i} value={option.uuid}>{option.label}</Select.Option>
|
)}
|
</Select>
|
)}
|
</Form.Item>
|
</Col> : null}
|
{enable === 'true' ? <Col span={12}>
|
<Form.Item label={
|
<Tooltip placement="topLeft" title="按钮执行成功,后续的处理方式。">
|
<QuestionCircleOutlined className="mk-form-tip" />
|
成功后
|
</Tooltip>
|
}>
|
{getFieldDecorator('onSuccess', {
|
initialValue: autoMatic.onSuccess || 'stay',
|
})(
|
<Radio.Group>
|
<Radio value="next">下一行</Radio>
|
<Radio value="stay">当前行</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col> : null}
|
{enable === 'true' ? <Col span={12}>
|
<Form.Item label={
|
<Tooltip placement="topLeft" title="按钮执行失败时,后续的处理方式。">
|
<QuestionCircleOutlined className="mk-form-tip" />
|
失败后
|
</Tooltip>
|
}>
|
{getFieldDecorator('onFail', {
|
initialValue: autoMatic.onFail || 'stop',
|
})(
|
<Radio.Group style={{whiteSpace: 'nowrap'}}>
|
<Radio value="next">下一行</Radio>
|
<Radio value="stay">当前行</Radio>
|
<Radio value="stop">停止</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col> : null}
|
{enable === 'true' ? <Col span={12}>
|
<Form.Item label={
|
<Tooltip placement="topLeft" title="相邻两条数据,执行时的间隔时间,最小为1s。">
|
<QuestionCircleOutlined className="mk-form-tip" />
|
数据间隔(s)
|
</Tooltip>
|
}>
|
{getFieldDecorator('gap', {
|
initialValue: autoMatic.gap || 2,
|
})(
|
<InputNumber style={{width: '100%'}} min={1} precision={0}/>
|
)}
|
</Form.Item>
|
</Col> : null}
|
{enable === 'true' ? <Col span={12}>
|
<Form.Item label="完成后">
|
{getFieldDecorator('onFinish', {
|
initialValue: autoMatic.onFinish || 'restart',
|
})(
|
<Radio.Group onChange={(e) => this.setState({onFinish: e.target.value})}>
|
<Radio value="restart">重新启动</Radio>
|
<Radio value="over">结束</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col> : null}
|
{enable === 'true' && onFinish === 'restart' ? <Col span={12}>
|
<Form.Item label="启动间隔(s)">
|
{getFieldDecorator('interval', {
|
initialValue: autoMatic.interval === 0 ? 0 : (autoMatic.interval || 600),
|
})(
|
<InputNumber style={{width: '100%'}} min={0} precision={0}/>
|
)}
|
</Form.Item>
|
</Col> : null}
|
{enable === 'true' && onFinish === 'restart' ? <Col span={12}>
|
<Form.Item label="重启时">
|
{getFieldDecorator('restart', {
|
initialValue: autoMatic.restart || 'first',
|
})(
|
<Radio.Group>
|
<Radio value="first">第一行</Radio>
|
<Radio value="next">下一行</Radio>
|
<Radio value="refresh">刷新页面</Radio>
|
</Radio.Group>
|
)}
|
</Form.Item>
|
</Col> : null}
|
</Row>
|
</Form>
|
)
|
}
|
}
|
|
export default Form.create()(UnattenSettingForm)
|