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/group/normal-group/index.jsx | 38 +++++++++++++++++++++++++++++++++----- 1 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/menu/components/group/normal-group/index.jsx b/src/menu/components/group/normal-group/index.jsx index a135ab4..460e3a2 100644 --- a/src/menu/components/group/normal-group/index.jsx +++ b/src/menu/components/group/normal-group/index.jsx @@ -63,8 +63,9 @@ } componentDidMount () { - MKEmitter.addListener('tabsChange', this.handleTabsChange) MKEmitter.addListener('submitStyle', this.getStyle) + MKEmitter.addListener('tabsChange', this.handleTabsChange) + MKEmitter.addListener('submitComponentStyle', this.updateComponentStyle) } /** @@ -74,8 +75,28 @@ 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 { group } = this.state + + if (group.uuid !== parentId) return + + let components = group.components.map(item => { + if (keys.includes(item.uuid)) { + item.style = {...item.style, ...style} + } + return item + }) + + this.setState({ + group: {...group, components: []} + }, () => { + this.updateComponent({...group, components: components}) + }) } changeStyle = () => { @@ -109,8 +130,8 @@ updateComponent = (component) => { const { group } = this.state - if (!is(fromJS(group.setting), fromJS(component.setting))) { - // 娉ㄥ唽浜嬩欢-鏍囩鍙樺寲锛岄�氱煡鏍囩鍐呭厓绱� + if (!is(fromJS(group.setting), fromJS(component.setting)) || !is(fromJS(group.style), fromJS(component.style))) { + // 娉ㄥ唽浜嬩欢-鏍囩鍙樺寲锛岄�氱煡缁勫唴鍏冪礌 MKEmitter.emit('tabsChange', group.uuid) } @@ -132,11 +153,18 @@ this.props.updateConfig(group) } + clickComponent = (e) => { + if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') { + e.stopPropagation() + MKEmitter.emit('clickComponent', this.state.group) + } + } + render() { const { group } = this.state return ( - <div className="menu-group-edit-box" style={group.style}> + <div className="menu-group-edit-box" style={group.style} onClick={this.clickComponent} id={group.uuid}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <SettingComponent config={group} updateConfig={this.updateComponent} /> -- Gitblit v1.8.0