From 76a4300654a18d228838c3f27455dc8e7a8cd616 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 15 一月 2021 17:04:42 +0800 Subject: [PATCH] Merge branch 'master' into bms --- src/menu/components/tabs/antv-tabs/index.jsx | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 46 insertions(+), 5 deletions(-) diff --git a/src/menu/components/tabs/antv-tabs/index.jsx b/src/menu/components/tabs/antv-tabs/index.jsx index 7aaaeef..c95ff93 100644 --- a/src/menu/components/tabs/antv-tabs/index.jsx +++ b/src/menu/components/tabs/antv-tabs/index.jsx @@ -74,8 +74,9 @@ } componentDidMount () { - MKEmitter.addListener('tabsChange', this.handleTabsChange) MKEmitter.addListener('submitStyle', this.getStyle) + MKEmitter.addListener('tabsChange', this.handleTabsChange) + MKEmitter.addListener('submitComponentStyle', this.updateComponentStyle) } /** @@ -85,8 +86,42 @@ this.setState = () => { return } + MKEmitter.removeListener('submitStyle', this.getStyle) MKEmitter.removeListener('tabsChange', this.handleTabsChange) - MKEmitter.addListener('submitStyle', this.getStyle) + MKEmitter.removeListener('submitComponentStyle', this.updateComponentStyle) + } + + updateComponentStyle = (parentId, keys, style) => { + const { tabs } = this.state + + if (tabs.subtabs.findIndex(tab => tab.uuid === parentId) === -1) return + + let _tabs = fromJS(tabs).toJS() + let _tabs_ = fromJS(tabs).toJS() + + let components = [] + _tabs.subtabs.forEach(tab => { + if (tab.uuid === parentId) { + components = tab.components.map(item => { + if (keys.includes(item.uuid)) { + item.style = {...item.style, ...style} + } + return item + }) + tab.components = [] + } + }) + + _tabs_.subtabs = _tabs_.subtabs.map(tab => { + if (tab.uuid === parentId) { + tab.components = components + } + return tab + }) + + this.setState({tabs: _tabs}, () => { + this.updateComponent(_tabs_) + }) } changeStyle = () => { @@ -120,7 +155,7 @@ updateComponent = (component) => { const { tabs } = this.state - if (!is(fromJS(tabs.setting), fromJS(component.setting))) { + if (!is(fromJS(tabs.setting), fromJS(component.setting)) || !is(fromJS(tabs.style), fromJS(component.style))) { // 娉ㄥ唽浜嬩欢-鏍囩鍙樺寲锛岄�氱煡鏍囩鍐呭厓绱� MKEmitter.emit('tabsChange', tabs.uuid) } @@ -253,11 +288,17 @@ this.props.updateConfig(tabs) } + clickComponent = (e) => { + if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') { + e.stopPropagation() + MKEmitter.emit('clickComponent', this.state.tabs) + } + } + render() { const { tabs, dict, labelvisible, editab } = this.state - return ( - <div className="menu-tabs-edit-box" style={tabs.style}> + <div className="menu-tabs-edit-box" style={tabs.style} onClick={this.clickComponent} id={tabs.uuid}> <DraggableTabs tabPosition={tabs.setting.position} type={tabs.setting.tabStyle} tabsMove={this.moveSwitch}> {tabs.subtabs.map(tab => ( <TabPane tab={ -- Gitblit v1.8.0