king
2022-08-06 cbeffcc0902631909c0373f274752a97ddaf2d4e
src/menu/components/share/actioncomponent/index.jsx
@@ -21,6 +21,7 @@
const VerifyPrint = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyprint'))
const VerifyExcelIn = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelin'))
const VerifyExcelOut = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelout'))
const VerifyMegvii = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifymegvii'))
class ActionComponent extends Component {
  static propTpyes = {
@@ -37,7 +38,8 @@
    formlist: null,      // 表单信息
    actionlist: null,    // 按钮组
    visible: false,      // 模态框控制
    profVisible: false   // 验证信息模态框
    profVisible: false,  // 验证信息模态框
    record: null
  }
  /**
@@ -171,6 +173,10 @@
    let functip = <div>
      <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p>
    </div>
    if (!ableField) { // 无字段限制
      functip = ''
    }
    let menulist = sessionStorage.getItem('fstMenuList')
    if (menulist) {
@@ -182,13 +188,24 @@
    } else {
      menulist = []
    }
    let supId = ''
    if (config.setting && config.setting.supModule) {
      let pid = config.setting.supModule[config.setting.supModule.length - 1]
      if (pid && pid !== 'empty') {
        supId = pid
      } else {
        supId = ''
      }
    }
    
    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid) || []
    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid, supId) || []
    let anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, config.uuid) || []
    this.setState({
      visible: true,
      card: card,
      formlist: getActionForm(card, functip, config, usefulFields, this.props.type, menulist, modules)
      formlist: getActionForm(card, functip, config, usefulFields, this.props.type, menulist, modules, anchors)
    })
  }
@@ -312,6 +329,7 @@
      profVisible: true,
      card: element
    })
    MKEmitter.emit('modalStatus', '验证信息')
  }
  /**
@@ -339,6 +357,7 @@
      }, () => {
        this.props.updateaction({...config, action: _actionlist})
      })
      MKEmitter.emit('modalStatus', false)
    })
  }
@@ -410,9 +429,9 @@
    if (element.OpenType === 'pop' || element.OpenType === 'popview' || element.execMode === 'pop') {
      this.props.setSubConfig(element)
    } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'page') {
      MKEmitter.emit('changeEditMenu', {MenuID: element.uuid, copyMenuId: element.copyMenuId})
    } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'linkpage') {
      MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu})
    } else if (element.OpenType === 'funcbutton' && (element.funcType === 'copyurl' || element.funcType === 'scan') && element.linkmenu) {
      MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu})
    } else {
      this.handleAction(element)
@@ -448,9 +467,54 @@
    })
  }
  getVerify = (card) => {
    const { config } = this.props
    const { dict } = this.state
    if (!card) return null
    if (['pop', 'prompt', 'exec'].includes(card.OpenType)) {
      return <VerifyCard
        card={card}
        dict={dict}
        config={config}
        columns={config.columns}
        wrappedComponentRef={(inst) => this.verifyRef = inst}
      />
    } else if (card.OpenType === 'excelIn') {
      return <VerifyExcelIn
        card={card}
        dict={dict}
        columns={config.columns}
        wrappedComponentRef={(inst) => this.verifyRef = inst}
      />
    } else if (card.OpenType === 'excelOut') {
      return <VerifyExcelOut
        card={card}
        dict={dict}
        config={config}
        wrappedComponentRef={(inst) => this.verifyRef = inst}
      />
    } else if (card.OpenType === 'funcbutton' && card.funcType === 'print') {
      return <VerifyPrint
        card={card}
        dict={dict}
        columns={config.columns}
        wrappedComponentRef={(inst) => this.verifyRef = inst}
      />
    } else if (card.OpenType === 'funcbutton' && card.funcType === 'megvii') {
      return <VerifyMegvii
        card={card}
        dict={dict}
        columns={config.columns}
        wrappedComponentRef={(inst) => this.verifyRef = inst}
      />
    }
  }
  render() {
    const { config, type } = this.props
    const { actionlist, visible, appType, card, dict, profVisible } = this.state
    const { actionlist, visible, appType, card, dict, profVisible, record } = this.state
    return (
      <div className={'model-menu-action-list'}>
@@ -467,13 +531,13 @@
        />
        {/* 编辑按钮:复制、编辑 */}
        <Modal
          title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])}
          title="按钮·编辑"
          visible={visible}
          width={850}
          width={920}
          maskClosable={false}
          onCancel={this.editModalCancel}
          footer={[
            <CreateFunc key="create" dict={dict} ref="btnCreatFunc" trigger={this.creatFunc}/>,
            record && record.intertype === 'inner' ? <CreateFunc key="create" dict={dict} ref="btnCreatFunc" trigger={this.creatFunc}/> : null,
            <Button key="cancel" onClick={this.editModalCancel}>{dict['model.cancel']}</Button>,
            <Button key="confirm" type="primary" onClick={this.handleSubmit}>{dict['model.confirm']}</Button>
          ]}
@@ -485,6 +549,7 @@
            formlist={this.state.formlist}
            inputSubmit={this.handleSubmit}
            setting={config.setting}
            updRecord={(record) => this.setState({record: fromJS(record).toJS()})}
            wrappedComponentRef={(inst) => this.actionFormRef = inst}
          />
        </Modal>
@@ -493,7 +558,7 @@
          wrapClassName="model-table-action-verify-modal"
          title={(card && card.label ? card.label + ' - ' : '') + '验证信息'}
          visible={profVisible}
          width={'75vw'}
          width={'90vw'}
          maskClosable={false}
          okText={dict['model.submit']}
          onOk={this.verifySubmit}
@@ -501,46 +566,16 @@
            if (this.verifyRef.handleCancel) {
              this.verifyRef.handleCancel().then(() => {
                this.setState({ profVisible: false })
                MKEmitter.emit('modalStatus', false)
              })
            } else {
              this.setState({ profVisible: false })
              MKEmitter.emit('modalStatus', false)
            }
          }}
          destroyOnClose
        >
          {card && !card.execMode && card.OpenType !== 'excelIn' && card.OpenType !== 'excelOut' ?
            <VerifyCard
              card={card}
              dict={dict}
              config={config}
              columns={config.columns}
              wrappedComponentRef={(inst) => this.verifyRef = inst}
            /> : null
          }
          {card && card.execMode ?
            <VerifyPrint
              card={card}
              dict={dict}
              columns={config.columns}
              wrappedComponentRef={(inst) => this.verifyRef = inst}
            /> : null
          }
          {card && card.OpenType === 'excelIn' ?
            <VerifyExcelIn
              card={card}
              dict={dict}
              columns={config.columns}
              wrappedComponentRef={(inst) => this.verifyRef = inst}
            /> : null
          }
          {card && card.OpenType === 'excelOut' ?
            <VerifyExcelOut
              card={card}
              dict={dict}
              config={config}
              wrappedComponentRef={(inst) => this.verifyRef = inst}
            /> : null
          }
          {this.getVerify(card)}
        </Modal>
      </div>
    )