king
2022-09-29 b883ae5d7d46fc7a3503236f16a250c2264ea7c7
src/menu/components/share/actioncomponent/index.jsx
@@ -25,7 +25,6 @@
class ActionComponent extends Component {
  static propTpyes = {
    type: PropTypes.string,          // 菜单类型,主表或子表
    config: PropTypes.object,        // 菜单配置信息
    setSubConfig: PropTypes.func,    // 设置子配置信息
    updateaction: PropTypes.func     // 菜单配置更新
@@ -65,7 +64,6 @@
  componentDidMount () {
    MKEmitter.addListener('addButton', this.addButton)
    MKEmitter.addListener('submitStyle', this.getStyle)
  }
  /**
@@ -90,14 +88,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
@@ -115,8 +110,6 @@
  }
  changeBtnStyle = (element) => {
    const { config } = this.props
    let _style = element.style ? fromJS(element.style).toJS() : {}
    let options = ['font', 'border', 'background', 'margin', 'padding']
@@ -124,7 +117,7 @@
      card: element
    })
    MKEmitter.emit('changeStyle', [config.uuid, 'actionlist', element.uuid], options, _style)
    MKEmitter.emit('changeStyle', options, _style, this.getStyle)
  }
  addButton = (cardId, element) => {
@@ -173,6 +166,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) {
@@ -184,14 +181,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, anchors)
      formlist: getActionForm(card, functip, config, usefulFields, menulist, modules, anchors)
    })
  }
@@ -238,9 +245,8 @@
        if (item.uuid === btn.uuid) {
          btn.style = item.style || {}
          if (btn.class !== item.class || btn.show !== item.show || !btn.style.color) {
            if (btn.show === 'link' || btn.show === 'icon') {
          if (btn.class !== item.class || btn.show !== item.show || !btn.style.color || item.focus) {
            if (btn.show === 'icon') {
              btn.style.color = color[btn.class]
              btn.style.backgroundColor = 'transparent'
            } else {
@@ -287,15 +293,10 @@
        _actionlist = _actionlist.filter(item => item.uuid !== card.uuid)
        let btnlog = config.btnlog || []
        if (card.OpenType === 'popview' || card.verify || card.modal) {
          btnlog.push(card)
        }
        _this.setState({
          actionlist: _actionlist
        }, () => {
          _this.props.updateaction({...config, action: _actionlist, btnlog})
          _this.props.updateaction({...config, action: _actionlist})
        })
        if (card.origin || appType === 'mob') return
@@ -315,6 +316,7 @@
      profVisible: true,
      card: element
    })
    MKEmitter.emit('modalStatus', '验证信息')
  }
  /**
@@ -342,6 +344,7 @@
      }, () => {
        this.props.updateaction({...config, action: _actionlist})
      })
      MKEmitter.emit('modalStatus', false)
    })
  }
@@ -415,6 +418,8 @@
      this.props.setSubConfig(element)
    } 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)
    }
@@ -424,13 +429,15 @@
    let config = fromJS(this.props.config).toJS()
    let btn = null
    if (config.subtype === 'normaltable') {
    let _col = null
    if (config.subtype === 'normaltable' || config.subtype === 'editable') {
      config.cols.forEach(col => {
        if (col.type !== 'action') return
        col.elements = col.elements.filter(item => {
          if (item.uuid === id) {
            btn = item
            _col = col
          }
          return item.uuid !== id
        })
@@ -439,8 +446,9 @@
    if (!btn) return
    btn.Ot = 'requiredSgl'
    config.action.push(btn)
    MKEmitter.emit('cardDelElement', _col.uuid, btn.uuid)
    this.setState({
      actionlist: config.action
@@ -495,14 +503,14 @@
  }
  render() {
    const { config, type } = this.props
    const { config } = this.props
    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 || '') : ''}
          type={appType === 'mob' ? config.subtype : ''}
          handleList={this.handleList}
          dropButton={this.dropButton}
          handleMenu={this.handleAction}
@@ -515,7 +523,7 @@
        <Modal
          title="按钮·编辑"
          visible={visible}
          width={850}
          width={920}
          maskClosable={false}
          onCancel={this.editModalCancel}
          footer={[
@@ -537,8 +545,7 @@
        </Modal>
        {/* 按钮使用系统存储过程时,验证信息模态框 */}
        <Modal
          wrapClassName="model-table-action-verify-modal"
          title={(card && card.label ? card.label + ' - ' : '') + '验证信息'}
          wrapClassName="mk-pop-modal"
          visible={profVisible}
          width={'90vw'}
          maskClosable={false}
@@ -548,9 +555,11 @@
            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