king
2022-09-18 0f6153ab337c4ecca5579a79b03f3ba5f831e0c4
src/menu/components/chart/antv-bar/chartcompile/index.jsx
@@ -262,20 +262,41 @@
      }
    })
    if (config.plot.correction) {
      delete config.plot.correction // 数据修正(已弃用)
      config.plot.barSize = 35
    let plot = fromJS(config.plot).toJS()
    if (plot.correction) {
      delete plot.correction // 数据修正(已弃用)
      plot.barSize = 35
    }
    if (plot.datatype !== 'statistics') {
      if (plot.colors) {
        plot.colors = plot.colors.map(item => {
          if (fieldName[item.type]) {
            item.label = fieldName[item.type]
          }
          return item
        })
      }
      if (plot.customs) {
        plot.customs = plot.customs.map(item => {
          if (fieldName[item.type]) {
            item.name = fieldName[item.type]
          }
          return item
        })
      }
    }
    this.setState({
      visible: true,
      view: 'normal',
      ramp: config.plot.ramp || 'false',
      datatype: config.plot.datatype || 'query',
      ramp: plot.ramp || 'false',
      datatype: plot.datatype || 'query',
      fieldName: fieldName,
      plot: fromJS(config.plot).toJS(),
      baseFormlist: getBaseForm(config.plot, config.columns),
      formlist: getOptionForm(config.plot, config.columns)
      plot: plot,
      baseFormlist: getBaseForm(plot, config.columns),
      formlist: getOptionForm(plot, config.columns)
    })
  }
@@ -497,17 +518,39 @@
        if (!err) {
          let _plot = {...plot, ...values}
          if (values.datatype === 'statistics' || values.datatype !== plot.datatype) {
            _plot.enabled = 'false'
            _plot.customs = []
          } else if (!values.Yaxis || !plot.Yaxis || !is(fromJS(values.Yaxis), fromJS(plot.Yaxis))) {
            _plot.enabled = 'false'
            _plot.customs = []
            _plot.colors = null
          }
          if (values.datatype !== plot.datatype) {
            _plot.colors = null
          }
          if (values.datatype === 'statistics') {
            _plot.enabled = 'false'
            _plot.customs = []
            delete _plot.Yaxis
          } else if (!is(fromJS(values.Yaxis), fromJS(plot.Yaxis || []))) {
            _plot.enabled = 'false'
            _plot.colors = null
            let labels = {}
            config.columns.forEach(col => {
              labels[col.field] = col.label
            })
            let cus = {}
            _plot.customs && _plot.customs.forEach(m => {
              cus[m.type] = m
            })
            _plot.customs = _plot.Yaxis.map((item, i) => {
              if (cus[item]) return cus[item]
              return {
                uuid: Utils.getuuid(),
                type: item,
                name: labels[item] || item,
                axis: i === 0 ? 'true' : 'false',
                label: 'false',
                title: 'true',
                shape: _plot.chartType === 'bar' && i === 0 ? ['bar', 'rect'] : ['line', 'smooth']
              }
            })
          }
          this.setState({
@@ -580,22 +623,29 @@
        if (!err) {
          let _plot = {...plot, ...values}
          if (values.datatype === 'statistics' || values.datatype !== plot.datatype) {
            _plot.enabled = 'false'
            _plot.customs = []
          } else if (!values.Yaxis || !plot.Yaxis || !is(fromJS(values.Yaxis), fromJS(plot.Yaxis))) {
            _plot.enabled = 'false'
            _plot.customs = []
            _plot.colors = null
          }
          let labels = {}
          config.columns.forEach(col => {
            labels[col.field] = col.label
          })
          if (values.datatype !== 'statistics' && (!_plot.customs || _plot.customs.length === 0)) {
          if (values.datatype !== plot.datatype) {
            _plot.colors = null
          }
          if (values.datatype === 'statistics') {
            _plot.enabled = 'false'
            _plot.customs = []
            delete _plot.Yaxis
          } else if (!is(fromJS(values.Yaxis), fromJS(plot.Yaxis || []))) {
            _plot.enabled = 'false'
            _plot.colors = null
            let cus = {}
            _plot.customs && _plot.customs.forEach(m => {
              cus[m.type] = m
            })
            _plot.customs = _plot.Yaxis.map((item, i) => {
              if (cus[item]) return cus[item]
              return {
                uuid: Utils.getuuid(),
                type: item,
@@ -607,7 +657,8 @@
              }
            })
          }
          if (values.datatype !== plot.datatype || !_plot.colors) {
          if (!_plot.colors) {
            _plot.colors = []
            if (_plot.datatype === 'query') {
              let limit = chartColors.length
@@ -725,8 +776,7 @@
      <div className="line-chart-drawer-form">
        <EditOutlined title="编辑" onClick={this.showDrawer}/>
        <Modal
          wrapClassName="popview-modal menu-chart-edit-modal"
          title={config.type === 'bar' ? '柱状图编辑' : '折线图编辑'}
          wrapClassName="mk-pop-modal"
          visible={visible}
          width={1000}
          maskClosable={false}
@@ -734,6 +784,7 @@
          onCancel={() => { this.setState({ visible: false }) }}
          destroyOnClose
        >
          {config.name ? <div className="mk-com-name">{config.name} - 编辑</div> : null}
          <Tabs activeKey={view} className="menu-chart-edit-box" onChange={this.changeTab}>
            <TabPane tab="组件设置" key="base">
              <NormalForm dict={this.props.dict} formlist={baseFormlist} inputSubmit={this.onSubmit} wrappedComponentRef={(inst) => this.baseRef = inst}/>