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