From 878e09d732771964781104288994a9544f11a24e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 17 十一月 2023 18:03:25 +0800
Subject: [PATCH] 2023-11-17

---
 src/menu/stylecontroller/index.jsx      |   23 +++++++++++++++++------
 src/views/menudesign/menuform/index.jsx |   22 ++++++++++++++++------
 2 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/src/menu/stylecontroller/index.jsx b/src/menu/stylecontroller/index.jsx
index b60a0b0..b2e0d63 100644
--- a/src/menu/stylecontroller/index.jsx
+++ b/src/menu/stylecontroller/index.jsx
@@ -56,6 +56,7 @@
   }
 
   callback = null
+  timer = null
 
   shouldComponentUpdate (nextProps, nextState) {
     return !is(fromJS(this.state), fromJS(nextState))
@@ -96,6 +97,8 @@
     }
 
     this.callback = callback
+    this.timer = null
+
     let card = fromJS(style).toJS()
     let borposition = 'outer'
 
@@ -163,7 +166,7 @@
     this.callback = null
   }
 
-  updateStyle = (style) => {
+  updateStyle = (style, delay) => {
     const { card } = this.state
 
     let _style = {
@@ -191,7 +194,15 @@
       card: _style,
     })
 
-    this.callback && this.callback(_style)
+    this.timer && clearTimeout(this.timer)
+
+    if (delay) {
+      this.timer = setTimeout(() => {
+        this.callback && this.callback(_style)
+      }, 300)
+    } else {
+      this.callback && this.callback(_style)
+    }
   }
 
   /**
@@ -208,7 +219,7 @@
       value = 300
     }
 
-    this.updateStyle({fontSize: `${value}px`})
+    this.updateStyle({fontSize: `${value}px`}, true)
   }
 
   /**
@@ -219,7 +230,7 @@
 
     if (isNaN(value) || value < 1 || value > 10) return
 
-    this.updateStyle({lineHeight: value})
+    this.updateStyle({lineHeight: value}, true)
   }
 
   /**
@@ -230,7 +241,7 @@
 
     if (isNaN(value) || value < 0 || value > 100) return
 
-    this.updateStyle({letterSpacing: `${value}px`})
+    this.updateStyle({letterSpacing: `${value}px`}, true)
   }
 
   /**
@@ -241,7 +252,7 @@
 
     if (isNaN(value) || value < 0 || value > 100) return
 
-    this.updateStyle({textIndent: `${value}px`})
+    this.updateStyle({textIndent: `${value}px`}, true)
   }
 
   changeBackground = (val) => {
diff --git a/src/views/menudesign/menuform/index.jsx b/src/views/menudesign/menuform/index.jsx
index 737270b..69232e6 100644
--- a/src/views/menudesign/menuform/index.jsx
+++ b/src/views/menudesign/menuform/index.jsx
@@ -50,6 +50,7 @@
     thdMenuList = JSON.parse(thdMenuList)
 
     let thdMenu = null
+    let firstId = ''
 
     thdMenuList.forEach(trd => {
       if (MenuId === trd.MenuID) {
@@ -65,17 +66,21 @@
           smenulist = item.children
         }
       })
+
+      firstId = thdMenu.FstId || ''
     }
 
-    this.props.updateConfig({...config, fstMenuId: thdMenu ? thdMenu.FstId : ''})
+    if (firstId !== config.fstMenuId) {
+      this.props.updateConfig({...config, fstMenuId: firstId})
+    }
 
     this.setState({
-      fstMenuId: thdMenu ? thdMenu.FstId : '',
+      fstMenuId: firstId,
       menulist,
       smenulist
     }, () => {
       this.props.form.setFieldsValue({
-        fstMenuId: thdMenu ? thdMenu.FstId : '',
+        fstMenuId: firstId,
         parentId: thdMenu ? thdMenu.ParentId : ''
       })
     })
@@ -149,24 +154,29 @@
         })
 
         let smenulist = []
+        let firstId = ''
         if (thdMenu) {
           menulist.forEach(item => {
             if (item.MenuID === thdMenu.FstId) {
               smenulist = item.children
             }
           })
+          firstId = thdMenu.FstId || ''
         }
         sessionStorage.setItem('fstMenuList', JSON.stringify(menulist))
         sessionStorage.setItem('thdMenuList', JSON.stringify(thdMenuList))
-        this.props.updateConfig({...config, fstMenuId: thdMenu ? thdMenu.FstId : ''})
+
+        if (firstId !== config.fstMenuId) {
+          this.props.updateConfig({...config, fstMenuId: firstId})
+        }
 
         this.setState({
-          fstMenuId: thdMenu ? thdMenu.FstId : '',
+          fstMenuId: firstId,
           menulist,
           smenulist
         }, () => {
           this.props.form.setFieldsValue({
-            fstMenuId: thdMenu ? thdMenu.FstId : '',
+            fstMenuId: firstId,
             parentId: thdMenu ? thdMenu.ParentId : ''
           })
         })

--
Gitblit v1.8.0