| | |
| | | |
| | | class antvBarLineChart extends Component { |
| | | static propTpyes = { |
| | | config: PropTypes.object, |
| | | menu: PropTypes.object, |
| | | card: PropTypes.object, |
| | | updateConfig: PropTypes.func, |
| | | } |
| | |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | | const { card, config } = this.props |
| | | const { card, menu } = this.props |
| | | |
| | | if (card.isNew) { |
| | | let _plot = { |
| | |
| | | _plot.shape = 'hv' |
| | | } |
| | | |
| | | let name = '' |
| | | let names = { |
| | | bar: '柱状图', |
| | | line: '折线图', |
| | | } |
| | | let i = 1 |
| | | |
| | | while (!name) { |
| | | let _name = names[card.type] + i |
| | | if (config.components.filter(com => com.setting && com.setting.name === _name).length === 0) { |
| | | name = _name |
| | | } |
| | | i++ |
| | | } |
| | | |
| | | let dataName = '' |
| | | |
| | | while (!dataName) { |
| | | let _dataName = Utils.getdataName() |
| | | if (config.components.filter(com => com.dataName === _dataName).length === 0) { |
| | | dataName = _dataName |
| | | if (card.floor === 1) { |
| | | while (!dataName) { |
| | | let _dataName = Utils.getdataName() |
| | | if (menu.components.filter(com => com.dataName === _dataName).length === 0) { |
| | | dataName = _dataName |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | switchable: false, // 组件属性 - 数据是否可切换 |
| | | dataName: dataName, |
| | | subtype: card.subtype, |
| | | setting: {span: 12, height: 400, interType: 'system', name}, |
| | | setting: {span: card.floor === 1 ? 12 : 24, height: 400, interType: 'system', name: card.name}, |
| | | columns: [], |
| | | scripts: [], |
| | | search: [], |
| | |
| | | } |
| | | } |
| | | |
| | | plotChange = (_plot) => { |
| | | const { config } = this.props |
| | | |
| | | if (_plot.datatype === 'statistics') { |
| | | _plot.Yaxis = [_plot.InfoValue] |
| | | } |
| | | |
| | | let _charts = fromJS(config.charts).toJS() |
| | | |
| | | _charts = _charts.map(item => { |
| | | if (item.uuid === _plot.uuid) { |
| | | if (!is(fromJS(item), fromJS(_plot))) { |
| | | let _element = document.getElementById(_plot.uuid) |
| | | if (_element) { |
| | | _element.innerHTML = '' |
| | | } |
| | | } |
| | | return _plot |
| | | } |
| | | return item |
| | | }) |
| | | |
| | | this.props.plotchange({...config, charts: _charts}) |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | | return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState)) |
| | | return !is(fromJS(this.state), fromJS(nextState)) |
| | | } |
| | | |
| | | updateComponent = (component) => { |
| | |
| | | |
| | | render() { |
| | | const { card } = this.state |
| | | const { config } = this.props |
| | | const { menu } = this.props |
| | | |
| | | return ( |
| | | <div className="menu-line-chart-edit-box" style={{height: card.setting.height || 400}}> |
| | | <SettingComponent |
| | | config={card} |
| | | menu={config} |
| | | menu={menu} |
| | | updateConfig={this.updateComponent} |
| | | /> |
| | | <div className="chart-header"> |
| | | <span className="chart-title">{card.setting.title || ''}</span> |
| | | <SearchComponent |
| | | menu={config} |
| | | menu={menu} |
| | | config={card} |
| | | sysRoles={config.sysRoles} |
| | | sysRoles={menu.sysRoles} |
| | | optionLibs={null} |
| | | updatesearch={this.updateComponent} |
| | | /> |
| | | </div> |
| | | <ActionComponent |
| | | type="chart" |
| | | menu={config} |
| | | menu={menu} |
| | | config={card} |
| | | tabs={[]} |
| | | // setSubConfig={(_btn) => this.setSubConfig(_btn, 'button')} |