From a0a285c90987eb9b1591f90333f3aeb15659ded2 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 17 一月 2020 19:04:57 +0800
Subject: [PATCH] 2020-01-17

---
 src/components/sidemenu/editsecmenu/index.jsx |   55 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 28 insertions(+), 27 deletions(-)

diff --git a/src/components/sidemenu/editsecmenu/index.jsx b/src/components/sidemenu/editsecmenu/index.jsx
index 12d8c85..a16955f 100644
--- a/src/components/sidemenu/editsecmenu/index.jsx
+++ b/src/components/sidemenu/editsecmenu/index.jsx
@@ -15,39 +15,39 @@
 import './index.scss'
 
 const { confirm } = Modal
-let previewList = null
 
 class EditMenu extends Component {
   static propTpyes = {
-    menulist: PropTypes.any, // 浜岀骇鑿滃崟鍒楄〃
+    menulist: PropTypes.any,      // 浜岀骇鑿滃崟鍒楄〃
     supMenuList: PropTypes.array, // 涓�绾ц彍鍗曞垪琛�
-    supMenu: PropTypes.object, // 浜岀骇鑿滃崟鎵�瀵瑰簲鐨勪竴绾ц彍鍗�
-    reload: PropTypes.func, // 鍒锋柊浜岀骇鑿滃崟鏁版嵁
-    exitEdit: PropTypes.func // 閫�鍑虹紪杈�
+    supMenu: PropTypes.object,    // 浜岀骇鑿滃崟鎵�瀵瑰簲鐨勪竴绾ц彍鍗�
+    reload: PropTypes.func,       // 鍒锋柊浜岀骇鑿滃崟鏁版嵁
+    exitEdit: PropTypes.func      // 閫�鍑虹紪杈�
   }
 
   state = {
-    show: true,
-    type: '', // 缂栬緫绫诲瀷锛宎dd or edit
-    title: '', // 妯℃�佹鏍囬
-    visible: null, // 妯℃�佹鏄惁鍙
-    formlist: null, // 琛ㄥ崟淇℃伅
-    editMenu: null, // 缂栬緫鑿滃崟
-    thawmenulist: null, // 宸插喕缁撶殑浜岀骇鑿滃崟
-    thawMvisible: false, // 瑙i櫎鍐荤粨妯℃�佹
-    confirmLoading: false, // 鎻愪氦涓�傘�傘��
     dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    menulist: null,       // 鑿滃崟鍒楄〃
+    type: '',             // 缂栬緫绫诲瀷锛宎dd or edit
+    title: '',            // 妯℃�佹鏍囬
+    visible: null,        // 妯℃�佹鏄惁鍙
+    formlist: null,       // 琛ㄥ崟淇℃伅
+    editMenu: null,       // 缂栬緫鑿滃崟
+    thawmenulist: null,   // 宸插喕缁撶殑浜岀骇鑿滃崟
+    thawMvisible: false,  // 瑙i櫎鍐荤粨妯℃�佹
+    confirmLoading: false // 鎻愪氦涓�傘�傘��
   }
 
   handlePreviewList = (List) => {
-    // 鑿滃崟椤哄簭鏀瑰彉鏃讹紝淇濆瓨涓棿鐘舵��
-    previewList = List
+    this.setState({
+      menulist: List
+    })
   }
 
   handleMenu = (menu) => {
     // 鑿滃崟缂栬緫锛氫慨鏀广�佸垹闄わ紝濡傝彍鍗曢『搴忓凡鏀瑰彉锛屾彁绀轰繚瀛樿彍鍗曢『搴�
     const _this = this
-    if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) {
+    if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
       notification.warning({
         top: 92,
         message: this.state.dict['header.menu.presave'],
@@ -187,11 +187,11 @@
         }
       })
     } else if (type === 'confirm') { // 纭畾鏃跺叆椤哄簭鏀瑰彉锛屽垯鎻愮ず淇濆瓨锛屽惁鍒欓��鍑虹紪杈�
-      if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) {
+      if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
         let _this = this
         let param  = {
           func: 'sPC_Menu_SortUpt',
-          LText: previewList.map((item, index) => {
+          LText: this.state.menulist.map((item, index) => {
             return 'select \'' + item.MenuID + '\' as Menuid,' + (index + 1) * 10 + ' as sort'
           })
         }
@@ -362,15 +362,16 @@
   }
 
   UNSAFE_componentWillMount () {
-    previewList = null
+    this.setState({
+      menulist: this.props.menulist
+    })
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
     if (!is(fromJS(this.props.menulist), fromJS(nextProps.menulist))) {
-      this.setState({show: false})
-      setTimeout(() => {
-        this.setState({show: true})
-      }, 10)
+      this.setState({
+        menulist: nextProps.menulist
+      })
     }
   }
 
@@ -397,13 +398,13 @@
             </div>
           </div>
         </div>
-        {this.state.show && <DndProvider backend={HTML5Backend}>
+        <DndProvider backend={HTML5Backend}>
           <DragElement
-            list={this.props.menulist}
+            list={this.state.menulist}
             handlePreviewList={this.handlePreviewList}
             handleMenu={this.handleMenu}
           />
-        </DndProvider>}
+        </DndProvider>
         <div className="menu-add" onClick={() => {this.handleSubBtn('add')}}>
           <Icon type="plus" />
         </div>

--
Gitblit v1.8.0