king
2022-11-21 f6626b05f1275cc2f8ca77f773d4f6a6af1b0a89
src/menu/components/share/actioncomponent/index.jsx
@@ -60,17 +60,9 @@
  }
  componentDidMount () {
    MKEmitter.addListener('revert', this.revert)
    MKEmitter.addListener('addButton', this.addButton)
  }
  /**
   * @description 监听到按钮复制时,触发按钮编辑
   */
  UNSAFE_componentWillReceiveProps (nextProps) {
    const { actionlist } = this.state
    if (!is(fromJS(nextProps.config.action), fromJS(this.props.config.action)) && !is(fromJS(nextProps.config.action), fromJS(actionlist))) {
      this.setState({actionlist: fromJS(nextProps.config.action).toJS()})
    }
    MKEmitter.addListener('submitModal', this.handleSave)
  }
  shouldComponentUpdate (nextProps, nextState) {
@@ -84,7 +76,43 @@
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('revert', this.revert)
    MKEmitter.removeListener('addButton', this.addButton)
    MKEmitter.removeListener('submitModal', this.handleSave)
  }
  revert = (id) => {
    if (id && id !== this.props.config.uuid) return
    this.setState({
      actionlist: fromJS(this.props.config.action).toJS()
    })
  }
  handleSave = (componentId, btnId, modal) => {
    const { config } = this.props
    if (config.uuid !== componentId) return
    const { actionlist } = this.state
    let _index = actionlist.findIndex(cell => cell.uuid === btnId)
    if (_index === -1) return
    let _actionlist = actionlist.map(cell => {
      if (cell.uuid === btnId) {
        cell.modal = modal
      }
      return cell
    })
    this.setState({
      actionlist: _actionlist
    }, () => {
      this.props.updateaction({...config, action: _actionlist})
    })
  }
  getStyle = (style) => {
@@ -169,15 +197,6 @@
      functip = ''
    }
    if (config.subtype === 'basetable') {
      this.setState({
        visible: true,
        card: card,
        formlist: getBaseTableActionForm(card, functip, config, usefulFields)
      })
      return
    }
    let supId = ''
    if (config.setting && config.setting.supModule) {
      let pid = config.setting.supModule[config.setting.supModule.length - 1]
@@ -188,7 +207,17 @@
      }
    }
    
    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid, supId) || []
    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid, supId)
    if (config.subtype === 'basetable') {
      delete card.eleType // 区分按钮位置
      this.setState({
        visible: true,
        card: card,
        formlist: getBaseTableActionForm(card, functip, config, usefulFields, modules)
      })
    } else {
    let anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, config.uuid) || []
    this.setState({
@@ -196,6 +225,7 @@
      card: card,
      formlist: getActionForm(card, functip, config, usefulFields, modules, anchors)
    })
    }
  }
  /**
@@ -227,7 +257,7 @@
   */
  handleSubmit = () => {
    const { config } = this.props
    let color = { primary: '#1890ff', yellow: '#c49f47', orange: 'orange', danger: '#ff4d4f', green: '#26C281', dgreen: '#32c5d2', purple: '#8E44AD', cyan: '#13c2c2', gray: '#666666', default: '#333333' }
    let color = { primary: '#1890ff', yellow: '#c49f47', orange: 'orange', danger: '#ff4d4f', green: '#26C281', dgreen: '#32c5d2', purple: '#8E44AD', cyan: '#13c2c2', gray: '#666666', default: 'rgba(0, 0, 0, 0.65)' }
    let _actionlist = fromJS(this.state.actionlist).toJS()
    
    this.actionFormRef.handleConfirm().then(btn => {
@@ -242,10 +272,12 @@
        if (item.uuid === btn.uuid) {
          if (config.subtype === 'basetable') {
            let _c = btn.class.replace('border-', '')
            if (btn.class.indexOf('border') > -1 || btn.class === 'default') {
              btn.style = {color: color[_c], backgroundColor: '#fff', borderColor: color[_c]}
            if (btn.class === 'default') {
              btn.style = {color: 'rgba(0, 0, 0, 0.65)', backgroundColor: '#fff', borderColor: '#d9d9d9', marginRight: '15px'}
            } else if (btn.class.indexOf('border') > -1) {
              btn.style = {color: color[_c], backgroundColor: '#fff', borderColor: color[_c], marginRight: '15px'}
            } else {
              btn.style = {color: '#fff', backgroundColor: color[_c], borderColor: color[_c]}
              btn.style = {color: '#fff', backgroundColor: color[_c], borderColor: color[_c], marginRight: '15px'}
            }
          } else {
            btn.style = item.style || {}
@@ -288,7 +320,6 @@
   */
  deleteElement = (card) => {
    const { config } = this.props
    const { appType } = this.state
    let _this = this
    confirm({
@@ -303,11 +334,6 @@
        }, () => {
          _this.props.updateaction({...config, action: _actionlist})
        })
        if (card.origin || appType === 'mob') return
        if (appType === 'pc' && card.OpenType !== 'popview') return
        MKEmitter.emit('delButtons', [card.uuid])
      },
      onCancel() {}
    })
@@ -321,7 +347,6 @@
      profVisible: true,
      card: element
    })
    MKEmitter.emit('modalStatus', '验证信息')
  }
  /**
@@ -349,7 +374,6 @@
      }, () => {
        this.props.updateaction({...config, action: _actionlist})
      })
      MKEmitter.emit('modalStatus', false)
    })
  }
@@ -435,7 +459,7 @@
    let btn = null
    let _col = null
    if (config.subtype === 'normaltable' || config.subtype === 'editable') {
    if (config.type === 'table') {
      config.cols.forEach(col => {
        if (col.type !== 'action') return
@@ -553,11 +577,9 @@
            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