king
2021-01-15 ddddb07002201150da9551875c25e75499563249
src/menu/components/share/usercomponent/index.jsx
@@ -22,7 +22,7 @@
    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    visible: false,
    loading: false,
    name: ''
    name: '',
  }
  shouldComponentUpdate (nextProps, nextState) {
@@ -39,13 +39,110 @@
    })
  }
  getUserComponent = () => {
    let config = fromJS(this.props.config).toJS()
    let _config = {}
    _config.wrap = config.wrap || {}
    _config.type = config.type || ''
    _config.subtype = config.subtype || ''
    _config.style = config.style || {}
    _config.subcards = config.subcards || []
    _config.headerStyle = config.headerStyle || {}
    _config.action = config.action || []
    _config.search = config.search || []
    _config.cols = config.cols || []
    _config.plot = config.plot || {}
    _config.width = _config.wrap.width || _config.plot.width || config.width || 24
    _config.subcards = _config.subcards.map(card => {
      if (card.elements) {
        card.elements = card.elements.map(item => this.resetElement(item))
      }
      if (card.backElements) {
        card.backElements = card.backElements.map(item => this.resetElement(item))
      }
      return card
    })
    _config.action = _config.action.map(item => {
      item.verify = null
      return item
    })
    _config.search = _config.search.map(item => {
      if (item.resourceType === '1') {
        item.resourceType = '0'
        item.dataSource = ''
        item.valueText = ''
        item.valueText = ''
        item.options = ''
      }
      item.blacklist = []
      return item
    })
    _config.cols = _config.cols.map(col => {
      if (col.type === 'colspan' && col.subcols) {
        col = this.loopCol(col)
      } else if (col.type === 'custom' && col.elements) {
        col.elements = col.elements.map(cell => this.resetElement(cell))
      } else if (col.type === 'action' && col.elements) {
        col.elements = col.elements.map(cell => {
          cell.verify = null
          return cell
        })
      }
      col.marks = null
      return col
    })
    return _config
  }
  loopCol = (col) => {
    col.subcols = col.subcols.map(c => {
      if (c.type === 'colspan' && c.subcols) {
        c = this.loopCol(c)
      } else if (c.type === 'custom' && c.elements) {
        c.elements = c.elements.map(cell => this.resetElement(cell))
      }
      c.marks = null
      return c
    })
    return col
  }
  resetElement = (item) => {
    item.marks = null
    item.verify = null
    if (item.datatype === 'dynamic') {
      if (item.eleType ===  'icon') {
        item.tooltip = item.field
      } else if (item.eleType === 'slider') {
        item.value = 50
      } else {
        item.value = item.field
      }
      item.datatype = 'static'
      item.field = ''
    }
    if (item.link === 'dynamic') {
      item.link = 'static'
    }
    return item
  }
  submit = () => {
    const { config } = this.props
    this.verifyRef.handleConfirm().then(res => {
      this.setState({loading: true})
      document.getElementsByClassName('menu-view')[0].classList.add('saving')
      this.setState({loading: true})
      setTimeout(() => {
        let template = this.getUserComponent()
      html2canvas(document.getElementById(config.uuid)).then(canvas => {
        let img = canvas.toDataURL('image/png') // 获取生成的图片
        Api.fileuploadbase64(img, 'cloud').then(result => {
@@ -55,7 +152,7 @@
              c_id: config.uuid,
              images: Utils.getcloudurl(result.Images),
              c_name: res.name,
              long_param: window.btoa(window.encodeURIComponent(JSON.stringify(config))),
                long_param: window.btoa(window.encodeURIComponent(JSON.stringify(template))),
              del_type: ''
            }).then(response => {
              if (response.status) {
@@ -86,6 +183,7 @@
          }
        })
      })
      }, 300)
    })
  }