king
2022-06-18 fe21d23b147ed5cec22b4f76a88840b05495d4ad
src/menu/components/form/formaction/actionform/index.jsx
@@ -21,6 +21,7 @@
    formlist: null,  // 表单信息
    interType: null, // 接口类型:内部、外部
    procMode: null,  // 参数方式
    linkmenu: null
  }
  
@@ -30,11 +31,12 @@
    let _intertype = card.intertype || 'system'  // 接口类型
    let _procMode = card.procMode || 'system'    // 参数请求方式
    let _options = this.getOptions(_intertype, _procMode)
    let _options = this.getOptions(_intertype, _procMode, card.linkmenu)
    this.setState({
      interType: _intertype,
      procMode: _procMode,
      linkmenu: card.linkmenu,
      formlist: this.props.formlist.map(item => {
        if (item.key === 'innerFunc' && _procMode === 'inner') {
          item.required = true
@@ -46,7 +48,7 @@
    })
  }
  getOptions = (_intertype, _procMode) => {
  getOptions = (_intertype, _procMode, linkmenu) => {
    const { card } = this.props
    if (card.type === 'prev') {
@@ -54,7 +56,7 @@
    } else if (card.type === 'next') {
      return ['type', 'label', 'enable']
    }
    let _options = ['type', 'label', 'intertype', 'Ot', 'execSuccess', 'syncComponent', 'anchors', 'linkmenu', 'open', 'enable', 'output', 'reload'] // 选项列表
    let _options = ['type', 'label', 'intertype', 'Ot', 'execSuccess', 'syncComponent', 'anchors', 'linkmenu', 'enable', 'output', 'reload'] // 选项列表
    
    if (_intertype === 'custom') {
      _options.pop()
@@ -71,6 +73,10 @@
    } else {
      _options.push('sql', 'sqlType')
    }
    if (linkmenu && linkmenu !== 'goback') {
      _options.push('open')
    }
    return _options
  }
@@ -82,10 +88,10 @@
   * 3、切换标签类型,重置可选标签
   */
  optionChange = (key, value) => {
    const { procMode } = this.state
    const { procMode, linkmenu } = this.state
    if (key === 'intertype') {
      let _options = this.getOptions(value, procMode)
      let _options = this.getOptions(value, procMode, linkmenu)
      this.setState({
        interType: value,
@@ -101,7 +107,7 @@
        })
      })
    } else if (key === 'procMode') {
      let _options = this.getOptions(this.state.interType, value)
      let _options = this.getOptions(this.state.interType, value, linkmenu)
      this.setState({
        procMode: value,
@@ -111,6 +117,16 @@
          if (item.key === 'innerFunc') {
            item.required = true
          }
          return item
        })
      })
    } else if (key === 'linkmenu') {
      let _options = this.getOptions(this.state.interType, procMode, value)
      this.setState({
        linkmenu: value,
        formlist: this.state.formlist.map(item => {
          item.hidden = !_options.includes(item.key)
          return item
        })
      })
@@ -144,6 +160,7 @@
  getFields() {
    const { getFieldDecorator } = this.props.form
    const { interType } = this.state
    const fields = []
    this.state.formlist.forEach((item, index) => {
@@ -169,6 +186,24 @@
            max: formRule.func.max,
            message: formRule.func.maxMessage
          }]
        } else if (item.key === 'output') {
          if (interType === 'system') {
            _rules = [{
              pattern: /^@[0-9a-zA-Z_]*$/,
              message: '变量以@符开头,可使用字母、数字以及_'
            }, {
              max: 100,
              message: '最多100个字符。'
            }]
          } else {
            _rules = [{
              pattern: /^[0-9a-zA-Z_]*$/,
              message: '字段可使用字母、数字以及_'
            }, {
              max: 100,
              message: '最多100个字符。'
            }]
          }
        } else {
          _rules = [{
            max: formRule.input.max,