king
2025-04-21 f3d4db769ba9b51b799d981511a710fd443d0e08
src/templates/zshare/pasteform/index.jsx
@@ -26,17 +26,45 @@
    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: 5
            })
            _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) {
@@ -49,12 +77,12 @@
    })
  }
  submit = () => {
    if (this.props.inputSubmit) {
      setTimeout(() => {
        this.props.inputSubmit()
      }, 10)
    }
  enterPress = (e) => {
    e.stopPropagation()
    setTimeout(() => {
      this.props.inputSubmit && this.props.inputSubmit()
    }, 200)
  }
  render() {
@@ -73,7 +101,7 @@
      <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: [
@@ -82,7 +110,7 @@
                    message: '请输入配置信息!'
                  }
                ]
              })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={this.submit}/>)}
              })(<TextArea autoSize={{ minRows: 6, maxRows: 6 }} onPressEnter={this.enterPress}/>)}
            </Form.Item>
          </Col>
        </Row>