king
2020-07-16 9a82bce9cf0ed4a51c1b0b0669eaa38cedbace07
src/templates/sharecomponent/chartgroupcomponent/index.jsx
@@ -22,7 +22,7 @@
  }
  state = {
    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    chartlist: null,      // 图表集
    card: null,           // 编辑中元素
    formlist: null,       // 表单信息
@@ -77,6 +77,8 @@
   * @description 添加或修改图表
   */
  handleChart = (item) => {
    const { config } = this.props
    let _type = 'editChart'
    if (!item) {
      _type = 'addChart'
@@ -87,14 +89,59 @@
        chartType: 'line',
        icon: 'line-chart',
        Hide: 'false',
        blacklist: []
        blacklist: [],
        correction: 7
      }
    }
    let _columns = [{
      uuid: 'x',
      value: '',
      text: '空',
      background: ''
    }]
    config.columns.forEach(col => {
      if (!['text', 'number'].includes(col.type)) return
      if (!col.marks) return
      let _marks = col.marks.filter(_mark => _mark.signType === 'card')
      if (_marks.length === 0) return
      _columns.push({
        uuid: col.uuid,
        value: col.field,
        text: col.label,
        background: _marks[0].color ? _marks[0].color[1] : ''
      })
    })
    if (item.chartType === 'card') { // 检验已添加背景是否修改
      if (item.bgfield) {
        let _column = _columns.filter(col => col.value === item.bgfield)[0]
        if (_column) {
          item.background = _column.background
        } else {
          item.bgfield = ''
          item.background = ''
        }
      } else {
        item.background = ''
      }
    }
    let actions = config.action.filter(item => item.OpenType === 'excelOut' || (item.OpenType === 'excelIn' && item.Ot === 'notRequired'))
    actions = actions.map(cell => ({value: cell.uuid, text: cell.label}))
    if (item.actions && item.actions.length > 0) {
      let keys = actions.map(cell => cell.value)
      item.actions = item.actions.filter(cell => keys.includes(cell))
    }
    this.setState({
      card: item,
      modaltype: _type,
      formlist: getChartViewForm(item, this.props.sysRoles)
      formlist: getChartViewForm(item, this.props.sysRoles, _columns, actions)
    })
  }
@@ -158,7 +205,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + ` ${plot.title} ?`,
      okText: dict['model.confirm'],
      cancelText: dict['header.cancel'],
      cancelText: dict['model.cancel'],
      onOk() {
        let _chartlist = fromJS(_this.state.chartlist).toJS()
        let _chartview = _this.state.chartview
@@ -189,6 +236,10 @@
    this.props.updatechartgroup(config, id)
  }
  shouldComponentUpdate (nextProps, nextState) {
    return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState))
  }
  /**
   * @description 组件销毁,清除state更新
   */