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

---
 src/menu/stylecombcontrolbutton/index.jsx |  112 ++++++++++++++++++++++++--------------------------------
 1 files changed, 48 insertions(+), 64 deletions(-)

diff --git a/src/menu/stylecombcontrolbutton/index.jsx b/src/menu/stylecombcontrolbutton/index.jsx
index eee97c5..328487d 100644
--- a/src/menu/stylecombcontrolbutton/index.jsx
+++ b/src/menu/stylecombcontrolbutton/index.jsx
@@ -14,6 +14,7 @@
   state = {
     label: '璋冩暣',
     parent: null,
+    type: '',
     components: []
   }
 
@@ -35,44 +36,11 @@
   }
 
   submitCombineStyle = (style) => {
-    const { menu } = this.props
     const { components, parent } = this.state
 
-    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)
+  
+    MKEmitter.emit('submitComponentStyle', parent.uuid, keys, style)
 
     setTimeout(() => {
       keys.forEach(key => {
@@ -81,41 +49,54 @@
     }, 100)
   }
 
-  clickComponent = (card) => {
+  clickComponent = (card, _p, _type) => {
     const { menu } = this.props
-    const { parent } = this.state
+    const { parent, type } = this.state
     let components = fromJS(this.state.components).toJS()
 
     if (!parent) {
       let _parent = null
-      let getParents = (box) => {
-        box.components.forEach(item => {
-          if (item.type === 'tabs') {
-            item.subtabs.forEach(tab => {
-              if (tab.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
-                _parent = tab
-              } else {
-                getParents(tab)
-              }
-            })
-          } else if (item.type === 'group') {
-            if (item.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
-              _parent = item
-            }
-          }
-        })
-      }
 
-      if (menu.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
-        _parent = menu
+      if (_type === 'propcard') {
+        _parent = _p
+        MKEmitter.emit('changeCombineStyle', ['margin', 'padding', 'border', 'background', 'shadow'])
+      } else if (_type === 'cardcell') {
+        _parent = _p
+        MKEmitter.emit('changeCombineStyle', ['margin', 'padding', 'border', 'background', 'font'])
       } else {
-        getParents(menu)
+        let getParents = (box) => {
+          box.components.forEach(item => {
+            if (item.type === 'tabs') {
+              item.subtabs.forEach(tab => {
+                if (tab.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
+                  _parent = tab
+                } else {
+                  getParents(tab)
+                }
+              })
+            } else if (item.type === 'group') {
+              if (item.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
+                _parent = item
+              }
+            }
+          })
+        }
+  
+        if (menu.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
+          _parent = menu
+        } else {
+          getParents(menu)
+        }
+
+        MKEmitter.emit('changeCombineStyle', ['margin', 'padding', 'border', 'background'])
       }
 
       document.getElementById(card.uuid).classList.add('selected-control-element')
-      MKEmitter.emit('changeCombineStyle', ['margin', 'padding', 'border', 'background'])
+
+      sessionStorage.setItem('style-control', (_type ? _type : 'component'))
 
       this.setState({
+        type: _type ? _type : 'component',
         parent: _parent,
         components: [card]
       })
@@ -123,13 +104,17 @@
       if (components.findIndex(cell => cell.uuid === card.uuid) > -1) {
         components = components.filter(cell => cell.uuid !== card.uuid)
         document.getElementById(card.uuid).classList.remove('selected-control-element')
-      } else if (parent.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
+      } else if (type !== 'propcard' && parent.components.findIndex(cell => cell.uuid === card.uuid) > -1) {
+        components.push(card)
+        document.getElementById(card.uuid).classList.add('selected-control-element')
+      } else if (type === 'propcard' && parent.subcards.findIndex(cell => cell.uuid === card.uuid) > -1) {
         components.push(card)
         document.getElementById(card.uuid).classList.add('selected-control-element')
       }
 
       if (components.length === 0) {
         MKEmitter.emit('closeCombineStyle')
+        sessionStorage.setItem('style-control', 'true')
       }
 
       this.setState({
@@ -140,7 +125,7 @@
   }
 
   triggerStyleChange = () => {
-    const { label } = this.state
+    const { label, components } = this.state
 
     if (label === '璋冩暣') {
       document.body.className = 'style-control'
@@ -150,10 +135,9 @@
       document.body.className = ''
       sessionStorage.setItem('style-control', 'false')
 
-      let eles = document.getElementsByClassName('selected-control-element')
-      for (let i = 0; i < eles.length; i++) {
-        eles[i].classList.remove('selected-control-element')
-      }
+      components.forEach(item => {
+        document.getElementById(item.uuid).classList.remove('selected-control-element')
+      })
 
       MKEmitter.emit('closeCombineStyle')
 

--
Gitblit v1.8.0