king
2023-04-11 ce1330660cd00eb09fe910b54cf45cd9786525b3
2023-04-11
4个文件已修改
144 ■■■■ 已修改文件
src/menu/components/card/cardcellcomponent/elementform/index.jsx 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/card/cardcellcomponent/elementform/index.scss 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/card/cardcellcomponent/elementform/index.jsx
@@ -1,7 +1,7 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { fromJS } from 'immutable'
import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber, Cascader } from 'antd'
import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber, Cascader, Popover } from 'antd'
import { QuestionCircleOutlined } from '@ant-design/icons'
import { formRule } from '@/utils/option.js'
@@ -119,6 +119,20 @@
        } else if (item.key === 'value' && card.eleType === 'slider') {
          item.type = 'number'
          item.label = '值'
        } else if (item.key === 'formula') {
          item.fields = []
          config.columns.forEach(col => {
            item.fields.push(col.field)
          })
          if (config.subColumns) {
            config.subColumns.forEach(col => {
              item.fields.push(col.field)
            })
          }
          item.fields = item.fields.join(', ')
        } else if (item.key === 'value' && card.eleType === 'text') {
          item.type = 'textarea'
          item.label = '内容'
@@ -429,26 +443,52 @@
          </Col>
        )
      } else if (item.type === 'textarea') {
        fields.push(
          <Col span={24} className="textarea" key={index}>
            <Form.Item label={item.tooltip ?
              <Tooltip placement="topLeft" title={item.tooltip}>
                <QuestionCircleOutlined className="mk-form-tip" />
                {item.label}
              </Tooltip> : item.label
            }>
              {getFieldDecorator(item.key, {
                initialValue: item.initVal || '',
                rules: [
                  {
                    required: item.readonly ? false : !!item.required,
                    message: '请输入' + item.label + '!'
                  }
                ]
              })(<TextArea autoSize={{minRows: 2}} disabled={item.readonly} placeholder={item.placeholder || ''} />)}
            </Form.Item>
          </Col>
        )
        if (item.key === 'formula') {
          fields.push(
            <Col span={24} className="textarea" key={index}>
              <Form.Item label={item.tooltip ?
                <Tooltip placement="topLeft" title={item.tooltip}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  {item.label}
                </Tooltip> : item.label
              }>
                {getFieldDecorator(item.key, {
                  initialValue: item.initVal || '',
                  rules: [
                    {
                      required: item.readonly ? false : !!item.required,
                      message: '请输入' + item.label + '!'
                    }
                  ]
                })(<TextArea autoSize={{minRows: 2}} disabled={item.readonly} placeholder={item.placeholder || ''} />)}
              </Form.Item>
              <Popover overlayClassName="formula-fields" placement="topLeft" title="" content={<div>{item.fields}</div>} trigger="click">
                <span className="formula-icon">字段集</span>
              </Popover>
            </Col>
          )
        } else {
          fields.push(
            <Col span={24} className="textarea" key={index}>
              <Form.Item label={item.tooltip ?
                <Tooltip placement="topLeft" title={item.tooltip}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  {item.label}
                </Tooltip> : item.label
              }>
                {getFieldDecorator(item.key, {
                  initialValue: item.initVal || '',
                  rules: [
                    {
                      required: item.readonly ? false : !!item.required,
                      message: '请输入' + item.label + '!'
                    }
                  ]
                })(<TextArea autoSize={{minRows: 2}} disabled={item.readonly} placeholder={item.placeholder || ''} />)}
              </Form.Item>
            </Col>
          )
        }
      } else if (item.type === 'number') {
        fields.push(
          <Col span={12} key={index}>
src/menu/components/card/cardcellcomponent/elementform/index.scss
@@ -6,12 +6,22 @@
      height: 65px;
    }
    .ant-col.textarea {
      position: relative;
      min-height: 80px;
      .ant-form-item-label {
        width: 14.2%;
      }
      .ant-form-item-control-wrapper {
        width: 85.8%;
      }
      .formula-icon {
        position: absolute;
        bottom: 5px;
        right: 15px;
        cursor: pointer;
        font-size: 12px;
        color: #1890ff;
      }
    }
  }
@@ -26,4 +36,14 @@
  .ant-form-explain, .ant-form-extra {
    font-size: 13px;
  }
}
.formula-fields {
  z-index: 1200!important;
  .ant-popover-inner-content {
    div {
      max-width: 750px;
      word-break: break-all;
    }
  }
}
src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
@@ -108,8 +108,18 @@
  }
  updateDataType = (e) => {
    this.setState({dataType: e.target.value})
    this.props.updateDataType(e.target.value)
    if (e.target.value === 'custom') {
      setTimeout(() => {
        this.setState({
          dataType: e.target.value,
          defaultSql: this.props.setting.defaultSql || 'true'
        })
      }, 10)
    } else {
      this.setState({dataType: e.target.value})
    }
  }
  render() {
src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
@@ -587,6 +587,18 @@
      } else if (activeKey === 'setting') {
        this.settingForm.handleConfirm().then(res => {
          let _verify = {...verify, ...res}
          if (res.dataType !== 'custom') {
            delete _verify.tableName
            delete _verify.dataresource
            delete _verify.queryType
            delete _verify.primaryKey
            delete _verify.defaultSql
            delete _verify.order
            _verify.scripts = []
          }
          this.setState({
            verify: _verify
          }, () => {
@@ -1037,7 +1049,23 @@
  }
  updateDataType = (val) => {
    this.setState({verify: {...this.state.verify, dataType: val}})
    const { config } = this.props
    let verify = {...this.state.verify, dataType: val}
    if (val === 'custom' && config.setting) {
      verify.tableName = verify.tableName || config.setting.tableName || ''
      verify.dataresource = verify.dataresource || config.setting.dataresource || ''
      verify.queryType = verify.queryType || config.setting.queryType || ''
      verify.primaryKey = verify.primaryKey || config.setting.primaryKey || ''
      verify.defaultSql = verify.defaultSql || config.setting.execute || ''
      verify.order = verify.order || config.setting.order || ''
      if (verify.scripts.length === 0 && config.scripts && config.scripts.length > 0) {
        verify.scripts = fromJS(config.scripts).toJS()
      }
    }
    this.setState({verify: verify})
  }
  render() {