From 0a0372f158b7a4c786c67be6a6e3c84ff7608904 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 07 一月 2021 10:35:10 +0800
Subject: [PATCH] 2021-01-07

---
 src/menu/components/chart/antv-pie/index.jsx              |   11 ++-
 src/menu/components/chart/antv-bar/index.jsx              |   11 ++-
 src/mob/colorsketch/index.jsx                             |    2 
 src/menu/stylecombcontrolbutton/index.scss                |    2 
 src/menu/components/table/normal-table/columns/index.scss |   24 ++++---
 src/menu/stylecombcontrolbutton/index.jsx                 |   52 +++++++++++++++-
 src/menu/stylecombcontroller/index.jsx                    |   19 +++---
 src/menu/components/tabs/antv-tabs/index.jsx              |   20 ++++++
 src/menu/components/group/normal-group/index.jsx          |   20 ++++++
 src/views/menudesign/index.jsx                            |   16 +++++
 10 files changed, 137 insertions(+), 40 deletions(-)

diff --git a/src/menu/components/chart/antv-bar/index.jsx b/src/menu/components/chart/antv-bar/index.jsx
index 9be6de7..5c6b6ca 100644
--- a/src/menu/components/chart/antv-bar/index.jsx
+++ b/src/menu/components/chart/antv-bar/index.jsx
@@ -733,7 +733,7 @@
   updateComponent = (component) => {
     const card = fromJS(this.state.card).toJS()
     let refresh = false
-    if (!is(fromJS(component.plot), fromJS(card.plot))) {
+    if (!is(fromJS(component.plot), fromJS(card.plot)) || !is(fromJS(component.style), fromJS(card.style))) {
       let _element = document.getElementById(card.uuid + 'canvas')
       if (_element) {
         _element.innerHTML = ''
@@ -819,11 +819,12 @@
 
     let _card = {...card, style}
 
-    this.setState({
-      card: _card
-    })
+    // this.setState({
+    //   card: _card
+    // })
     
-    this.props.updateConfig(_card)
+    this.updateComponent(_card)
+    // this.props.updateConfig(_card)
   }
 
   handleLog = (type, logs, item) => {
diff --git a/src/menu/components/chart/antv-pie/index.jsx b/src/menu/components/chart/antv-pie/index.jsx
index 819344e..cbd61d7 100644
--- a/src/menu/components/chart/antv-pie/index.jsx
+++ b/src/menu/components/chart/antv-pie/index.jsx
@@ -334,7 +334,7 @@
   updateComponent = (component) => {
     const card = fromJS(this.state.card).toJS()
     let refresh = false
-    if (!is(fromJS(component.plot), fromJS(card.plot))) {
+    if (!is(fromJS(component.plot), fromJS(card.plot)) || !is(fromJS(component.style), fromJS(card.style))) {
       let _element = document.getElementById(card.uuid + 'canvas')
       if (_element) {
         _element.innerHTML = ''
@@ -391,11 +391,12 @@
 
     let _card = {...card, style}
 
-    this.setState({
-      card: _card
-    })
+    this.updateComponent(_card)
+    // this.setState({
+    //   card: _card
+    // })
     
-    this.props.updateConfig(_card)
+    // this.props.updateConfig(_card)
   }
 
   handleLog = (type, logs, item) => {
diff --git a/src/menu/components/group/normal-group/index.jsx b/src/menu/components/group/normal-group/index.jsx
index 06944e3..698c884 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,23 @@
     this.setState = () => {
       return
     }
+    MKEmitter.removeListener('submitStyle', this.getStyle)
     MKEmitter.removeListener('tabsChange', this.handleTabsChange)
-    MKEmitter.addListener('submitStyle', this.getStyle)
+    MKEmitter.removeListener('submitComponentStyle', this.updateComponentStyle)
+  }
+
+  updateComponentStyle = (item) => {
+    const { group } = this.state
+
+    if (group.uuid !== item.uuid) return
+
+    this.setState({
+      group: {...group, components: []}
+    }, () => {
+      this.setState({
+        group: {...group, components: item.components}
+      })
+    })
   }
 
   changeStyle = () => {
diff --git a/src/menu/components/table/normal-table/columns/index.scss b/src/menu/components/table/normal-table/columns/index.scss
index d0c864d..582a76b 100644
--- a/src/menu/components/table/normal-table/columns/index.scss
+++ b/src/menu/components/table/normal-table/columns/index.scss
@@ -3,16 +3,20 @@
   .ant-table-body {
     overflow-x: auto;
     padding-bottom: 20px;
-    tr td:not(.ant-table-selection-column) {
-      position: relative;
-      padding: 12px 8px;
-      background: #ffffff;
-      >.profile {
-        position: absolute;
-        top: 2px;
-        right: 2px;
-        color: purple;
-        font-size: 12px;
+    tr {
+      td {
+        background: #ffffff;
+      }
+      td:not(.ant-table-selection-column) {
+        position: relative;
+        padding: 12px 8px;
+        >.profile {
+          position: absolute;
+          top: 2px;
+          right: 2px;
+          color: purple;
+          font-size: 12px;
+        }
       }
     }
     .action-column {
diff --git a/src/menu/components/tabs/antv-tabs/index.jsx b/src/menu/components/tabs/antv-tabs/index.jsx
index 022d777..54be4b6 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,23 @@
     this.setState = () => {
       return
     }
+    MKEmitter.removeListener('submitStyle', this.getStyle)
     MKEmitter.removeListener('tabsChange', this.handleTabsChange)
-    MKEmitter.addListener('submitStyle', this.getStyle)
+    MKEmitter.removeListener('submitComponentStyle', this.updateComponentStyle)
+  }
+
+  updateComponentStyle = (item) => {
+    const { group } = this.state
+
+    if (group.uuid !== item.uuid) return
+
+    this.setState({
+      group: {...group, components: []}
+    }, () => {
+      this.setState({
+        group: {...group, components: item.components}
+      })
+    })
   }
 
   changeStyle = () => {
diff --git a/src/menu/stylecombcontrolbutton/index.jsx b/src/menu/stylecombcontrolbutton/index.jsx
index d8c6c16..eee97c5 100644
--- a/src/menu/stylecombcontrolbutton/index.jsx
+++ b/src/menu/stylecombcontrolbutton/index.jsx
@@ -18,6 +18,7 @@
   }
 
   componentDidMount () {
+    sessionStorage.setItem('style-control', 'false')
     MKEmitter.addListener('clickComponent', this.clickComponent)
     MKEmitter.addListener('submitCombineStyle', this.submitCombineStyle)
   }
@@ -34,13 +35,50 @@
   }
 
   submitCombineStyle = (style) => {
-    const { components } = this.state
+    const { menu } = this.props
+    const { components, parent } = this.state
 
-    components.forEach((item, i) => {
-      setTimeout(() => {
-        MKEmitter.emit('submitStyle', [item.uuid], {...item.style, ...style})
-      }, i * 5)
+    let _parent = null
+    let getParents = (box) => {
+      box.components.forEach(item => {
+        if (item.type === 'tabs') {
+          item.subtabs.forEach(tab => {
+            if (tab.uuid === parent.uuid) {
+              _parent = tab
+            } else {
+              getParents(tab)
+            }
+          })
+        } else if (item.type === 'group') {
+          if (item.uuid === parent.uuid) {
+            _parent = item
+          }
+        }
+      })
+    }
+
+    if (menu.uuid === parent.uuid) {
+      _parent = menu
+    } else {
+      getParents(menu)
+    }
+
+    let keys = components.map(item => item.uuid)
+
+    _parent.components = _parent.components.map(item => {
+      if (keys.includes(item.uuid)) {
+        item.style = {...item.style, ...style}
+      }
+      return item
     })
+
+    MKEmitter.emit('submitComponentStyle', _parent)
+
+    setTimeout(() => {
+      keys.forEach(key => {
+        document.getElementById(key).classList.add('selected-control-element')
+      })
+    }, 100)
   }
 
   clickComponent = (card) => {
@@ -90,6 +128,10 @@
         document.getElementById(card.uuid).classList.add('selected-control-element')
       }
 
+      if (components.length === 0) {
+        MKEmitter.emit('closeCombineStyle')
+      }
+
       this.setState({
         components: components,
         parent: components.length ? parent : null
diff --git a/src/menu/stylecombcontrolbutton/index.scss b/src/menu/stylecombcontrolbutton/index.scss
index af3aebe..e2354d3 100644
--- a/src/menu/stylecombcontrolbutton/index.scss
+++ b/src/menu/stylecombcontrolbutton/index.scss
@@ -28,6 +28,6 @@
   }
 
   .selected-control-element {
-    box-shadow: 0px 0px 4px orange;
+    box-shadow: 0px 0px 6px orange;
   }
 }
\ No newline at end of file
diff --git a/src/menu/stylecombcontroller/index.jsx b/src/menu/stylecombcontroller/index.jsx
index eaa7e89..e8d6781 100644
--- a/src/menu/stylecombcontroller/index.jsx
+++ b/src/menu/stylecombcontroller/index.jsx
@@ -48,7 +48,8 @@
 
   closeStyle = () => {
     this.setState({
-      visible: false
+      visible: false,
+      options: []
     })
   }
 
@@ -303,7 +304,7 @@
                     label={<Icon title="瀛椾綋棰滆壊" type="font-colors" />}
                     labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} }
                   >
-                    <ColorSketch value={''} onChange={this.changeFontColor} />
+                    <ColorSketch onChange={this.changeFontColor} />
                   </Form.Item>
                 </Col>
                 <Col span={24}>
@@ -354,7 +355,7 @@
                     label={<Icon title="鑳屾櫙棰滆壊" type="bg-colors" />}
                     labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} }
                   >
-                    <ColorSketch value={''} onChange={this.changeBackgroundColor} />
+                    <ColorSketch onChange={this.changeBackgroundColor} />
                   </Form.Item>
                 </Col>
               </Panel> : null}
@@ -431,11 +432,11 @@
                     label={<Icon title="杈规棰滆壊" type="bg-colors" />}
                     labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} }
                   >
-                    {borposition === 'outer' ? <ColorSketch defaultValue={'transparent'} onChange={this.changeBorderColor} /> : null}
-                    {borposition === 'left' ? <ColorSketch defaultValue={'transparent'} onChange={this.changeBorderColor} /> : null}
-                    {borposition === 'right' ? <ColorSketch defaultValue={'transparent'} onChange={this.changeBorderColor} /> : null}
-                    {borposition === 'top' ? <ColorSketch defaultValue={'transparent'} onChange={this.changeBorderColor} /> : null}
-                    {borposition === 'bottom' ? <ColorSketch defaultValue={'transparent'} onChange={this.changeBorderColor} /> : null}
+                    {borposition === 'outer' ? <ColorSketch onChange={this.changeBorderColor} /> : null}
+                    {borposition === 'left' ? <ColorSketch onChange={this.changeBorderColor} /> : null}
+                    {borposition === 'right' ? <ColorSketch onChange={this.changeBorderColor} /> : null}
+                    {borposition === 'top' ? <ColorSketch onChange={this.changeBorderColor} /> : null}
+                    {borposition === 'bottom' ? <ColorSketch onChange={this.changeBorderColor} /> : null}
                   </Form.Item>
                 </Col>
                 <Col span={24}>
@@ -455,7 +456,7 @@
                     label={<Icon title="闃村奖棰滆壊" type="bg-colors" />}
                     labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} }
                   >
-                    <ColorSketch value={'transparent'} onChange={this.changeShadowColor} />
+                    <ColorSketch onChange={this.changeShadowColor} />
                   </Form.Item>
                 </Col>
               </Panel> : null}
diff --git a/src/mob/colorsketch/index.jsx b/src/mob/colorsketch/index.jsx
index c3fe986..753a443 100644
--- a/src/mob/colorsketch/index.jsx
+++ b/src/mob/colorsketch/index.jsx
@@ -39,7 +39,7 @@
 
   handleChange = (color) => {
     let _color = `rgba(${ color.rgb.r }, ${ color.rgb.g }, ${ color.rgb.b }, ${ color.rgb.a })`
-    
+
     this.setState({ color: _color }, () => {
       this.props.onChange && this.props.onChange(_color)
     })
diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx
index fb9e3ae..2c188a0 100644
--- a/src/views/menudesign/index.jsx
+++ b/src/views/menudesign/index.jsx
@@ -93,6 +93,7 @@
     MKEmitter.addListener('delButtons', this.delButtons)
     MKEmitter.addListener('copyButtons', this.copyButtons)
     MKEmitter.addListener('changePopview', this.initPopview)
+    MKEmitter.addListener('submitComponentStyle', this.updateComponentStyle)
   }
 
   /**
@@ -105,6 +106,21 @@
     MKEmitter.removeListener('delButtons', this.delButtons)
     MKEmitter.removeListener('copyButtons', this.copyButtons)
     MKEmitter.removeListener('changePopview', this.initPopview)
+    MKEmitter.removeListener('submitComponentStyle', this.updateComponentStyle)
+  }
+
+  updateComponentStyle = (item) => {
+    const { config } = this.state
+
+    if (config.uuid !== item.uuid) return
+
+    this.setState({
+      config: {...config, components: []}
+    }, () => {
+      this.setState({
+        config: {...config, components: item.components}
+      })
+    })
   }
 
   delButtons = (items) => {

--
Gitblit v1.8.0