From cb9ade2afd2a367ad767bc605ab7086c695dd010 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 09 十二月 2022 15:53:32 +0800 Subject: [PATCH] 2022-12-09 --- src/menu/components/share/clockcomponent/settingform/index.jsx | 79 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 72 insertions(+), 7 deletions(-) diff --git a/src/menu/components/share/clockcomponent/settingform/index.jsx b/src/menu/components/share/clockcomponent/settingform/index.jsx index d5ee583..0978f22 100644 --- a/src/menu/components/share/clockcomponent/settingform/index.jsx +++ b/src/menu/components/share/clockcomponent/settingform/index.jsx @@ -1,22 +1,35 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Select } from 'antd' +import { Form, Row, Col, Select, Tooltip, Input, InputNumber, notification } from 'antd' +import { QuestionCircleOutlined } from '@ant-design/icons' import './index.scss' class SettingForm extends Component { static propTpyes = { - timer: PropTypes.string, // 缁勪欢鍚嶇О - inputSubmit: PropTypes.func // 鍥炶溅浜嬩欢 + config: PropTypes.string, + inputSubmit: PropTypes.func } - state = {} + state = { + clearField: this.props.config.clearField || '', + timer: this.props.config.timer || '' + } handleConfirm = () => { // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { + if (values.timer === '2s') { + if (!values.timerRepeats) { + notification.warning({ top: 92, message: '璇疯缃�2s瀹氭椂鍣ㄦ墽琛屾鏁般��', duration: 3 }) + return + } else if (values.timerRepeats > 3) { + notification.warning({ top: 92, message: '2s瀹氭椂鍣ㄦ墽琛屾鏁颁笉鍙秴杩�3娆°��', duration: 3 }) + return + } + } resolve(values) } else { reject(err) @@ -26,6 +39,8 @@ } render() { + const { config } = this.props + const { clearField, timer } = this.state const { getFieldDecorator } = this.props.form const formItemLayout = { @@ -44,12 +59,22 @@ <Form {...formItemLayout}> <Row gutter={24}> <Col span={22}> - <Form.Item label="瀹氭椂鍣�"> + <Form.Item label={ + <Tooltip placement="topLeft" title="2s瀹氭椂鍣ㄦ渶澶氬彧鑳芥墽琛屼笁娆★紝瀹氭椂鍣ㄦ墽琛�3娆′互涓婇渶瑕佸湪鍗曠偣绯荤粺璁剧疆鏉冮檺銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 瀹氭椂鍣� + </Tooltip> + }> {getFieldDecorator('timer', { - initialValue: this.props.timer || '' + initialValue: config.timer || '' })( - <Select> + <Select onChange={(val) => this.setState({timer: val}, () => { + if (val === '2s') { + this.props.form.setFieldsValue({timerRepeats: 1}) + } + })}> <Select.Option value=""> 鏃� </Select.Option> + <Select.Option value="2s"> 2绉� </Select.Option> <Select.Option value="5s"> 5绉� </Select.Option> <Select.Option value="15s"> 15绉� </Select.Option> <Select.Option value="30s"> 30绉� </Select.Option> @@ -63,6 +88,46 @@ )} </Form.Item> </Col> + {timer ? <Col span={22}> + <Form.Item label={ + <Tooltip placement="topLeft" title="瀹氭椂鍣ㄦ墽琛屾鏁般�傛敞锛�0琛ㄧず娌℃湁闄愬埗銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鎵ц娆℃暟 + </Tooltip> + }> + {getFieldDecorator('timerRepeats', { + initialValue: config.timerRepeats || 0, + })(<InputNumber min={0} max={500} precision={0} />)} + </Form.Item> + </Col> : null} + {config.type === 'card' && (config.subtype === 'balcony' || config.subtype === 'propcard') && timer && timer !== '2s' ? <Col span={22}> + <Form.Item label={ + <Tooltip placement="topLeft" title="鍙互鎸囧畾瀛楁鐢ㄤ簬鎺у埗瀹氭椂鍣ㄧ殑鍏抽棴銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鍏抽棴瀹氭椂 + </Tooltip> + }> + {getFieldDecorator('clearField', { + initialValue: clearField || '' + })( + <Select allowClear onChange={(val) => this.setState({clearField: val})}> + {config.columns.map(col => (<Select.Option key={col.uuid} value={col.field}>{col.label}</Select.Option>))} + </Select> + )} + </Form.Item> + </Col> : null} + {(config.subtype === 'balcony' || config.subtype === 'propcard') && clearField && timer && timer !== '2s' ? <Col span={22}> + <Form.Item label={ + <Tooltip placement="topLeft" title="褰撳瓧娈靛�间笌鍏抽棴鍊肩浉绛夋椂锛屽叧闂畾鏃跺櫒锛屽涓�煎彲鐢ㄩ�楀彿鍒嗛殧銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 鍏抽棴鍊� + </Tooltip> + }> + {getFieldDecorator('clearValue', { + initialValue: config.clearValue || '' + })(<Input placeholder="" autoComplete="off" onPressEnter={this.props.inputSubmit}/>)} + </Form.Item> + </Col> : null} </Row> </Form> </div> -- Gitblit v1.8.0