| | |
| | | |
| | | class MainSearch extends Component { |
| | | static propTpyes = { |
| | | dict: PropTypes.object // 字典项 |
| | | inputSubmit: PropTypes.func // 回车事件 |
| | | } |
| | | |
| | | componentDidMount () { |
| | |
| | | if (_form && _form.select) { |
| | | _form.select() |
| | | } |
| | | } catch { |
| | | } catch (e) { |
| | | console.warn('Form focusing error!') |
| | | } |
| | | } |
| | |
| | | return new Promise((resolve, reject) => { |
| | | this.props.form.validateFieldsAndScroll((err, values) => { |
| | | if (!err) { |
| | | let _config = values.config |
| | | let _config = values.config.replace(/(\n|\s)+/g, '') |
| | | |
| | | if (!_config) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '请输入配置信息', |
| | | duration: 5 |
| | | }) |
| | | reject() |
| | | return |
| | | } |
| | | try { |
| | | _config = JSON.parse(window.decodeURIComponent(window.atob(_config))) |
| | | } catch (e) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '解析错误', |
| | | duration: 10 |
| | | }) |
| | | _config = '' |
| | | // 通过sql语句添加字段集 |
| | | if (/[a-zA-Z0-9_]+\s+(nvarchar\(\d+\)|Decimal\(18,\d+\)|Int|datetime|date)/ig.test(values.config)) { |
| | | _config = { |
| | | key: 'datasourcefield', |
| | | type: 'array', |
| | | data: [] |
| | | } |
| | | |
| | | let list = values.config.match(/[a-zA-Z0-9_]+\s+(nvarchar\(\d+\)|Decimal\(18,\d+\)|Int|datetime|date)/ig) |
| | | |
| | | list.forEach(item => { |
| | | _config.data.unshift({ |
| | | datatype: item.split(/\s+/)[1], |
| | | field: item.split(/\s+/)[0], |
| | | label: item.split(/\s+/)[0], |
| | | }) |
| | | }) |
| | | } else { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '解析错误', |
| | | duration: 5 |
| | | }) |
| | | _config = '' |
| | | } |
| | | } |
| | | |
| | | if (_config) { |
| | |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | enterPress = (e) => { |
| | | e.stopPropagation() |
| | | |
| | | setTimeout(() => { |
| | | this.props.inputSubmit && this.props.inputSubmit() |
| | | }, 200) |
| | | } |
| | | |
| | | render() { |
| | |
| | | <Form {...formItemLayout} className="config-paste-form"> |
| | | <Row gutter={24}> |
| | | <Col span={24}> |
| | | <Form.Item label="配置信息" className="textarea"> |
| | | <Form.Item label="" className="textarea"> |
| | | {getFieldDecorator('config', { |
| | | initialValue: '', |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: this.props.dict['form.required.input'] + '配置信息!' |
| | | message: '请输入配置信息!' |
| | | } |
| | | ] |
| | | })(<TextArea autosize={{ minRows: 4, maxRows: 8 }} />)} |
| | | })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={this.enterPress}/>)} |
| | | </Form.Item> |
| | | </Col> |
| | | </Row> |