king
2022-09-13 b8cde0c39d7b6d58ceff3adf6dea3cb3118ea602
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
  }
  /**
@@ -63,7 +65,6 @@
  componentDidMount () {
    MKEmitter.addListener('addButton', this.addButton)
    MKEmitter.addListener('submitStyle', this.getStyle)
  }
  /**
@@ -88,14 +89,11 @@
      return
    }
    MKEmitter.removeListener('addButton', this.addButton)
    MKEmitter.removeListener('submitStyle', this.getStyle)
  }
  getStyle = (comIds, style) => {
  getStyle = (style) => {
    const { config } = this.props
    const { card, actionlist } = this.state
    if (comIds[0] !== config.uuid || comIds[1] !== 'actionlist') return
    let _card = fromJS(card).toJS()
    _card.style = style
@@ -113,8 +111,6 @@
  }
  changeBtnStyle = (element) => {
    const { config } = this.props
    let _style = element.style ? fromJS(element.style).toJS() : {}
    let options = ['font', 'border', 'background', 'margin', 'padding']
@@ -122,7 +118,7 @@
      card: element
    })
    MKEmitter.emit('changeStyle', [config.uuid, 'actionlist', element.uuid], options, _style)
    MKEmitter.emit('changeStyle', options, _style, this.getStyle)
  }
  addButton = (cardId, element) => {
@@ -171,6 +167,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 +182,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 +323,7 @@
      profVisible: true,
      card: element
    })
    MKEmitter.emit('modalStatus', '验证信息')
  }
  /**
@@ -339,6 +351,7 @@
      }, () => {
        this.props.updateaction({...config, action: _actionlist})
      })
      MKEmitter.emit('modalStatus', false)
    })
  }
@@ -410,9 +423,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,12 +461,57 @@
    })
  }
  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'}>
      <div className={'model-menu-action-list length' + actionlist.length}>
        <DragElement
          list={actionlist}
          type={appType === 'mob' ? (type || '') : ''}
@@ -467,14 +525,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>
          ]}
@@ -486,13 +543,13 @@
            formlist={this.state.formlist}
            inputSubmit={this.handleSubmit}
            setting={config.setting}
            updRecord={(record) => this.setState({record: fromJS(record).toJS()})}
            wrappedComponentRef={(inst) => this.actionFormRef = inst}
          />
        </Modal>
        {/* 按钮使用系统存储过程时,验证信息模态框 */}
        <Modal
          wrapClassName="model-table-action-verify-modal"
          title={(card && card.label ? card.label + ' - ' : '') + '验证信息'}
          wrapClassName="mk-pop-modal"
          visible={profVisible}
          width={'90vw'}
          maskClosable={false}
@@ -502,46 +559,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>
    )