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/editthdmenu/index.jsx |   38 ++++++++++++++++++++------------------
 1 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/src/components/sidemenu/editthdmenu/index.jsx b/src/components/sidemenu/editthdmenu/index.jsx
index 2af730f..b747b99 100644
--- a/src/components/sidemenu/editthdmenu/index.jsx
+++ b/src/components/sidemenu/editthdmenu/index.jsx
@@ -30,8 +30,6 @@
   CommonTable: nortable
 }
 
-let previewList = null // 鍒濆鑿滃崟鍒楄〃
-
 class EditMenu extends Component {
   static propTpyes = {
     reload: PropTypes.func,      // 鑿滃崟淇敼鍚庡埛鏂�
@@ -43,7 +41,6 @@
 
   state = {
     dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
-    show: true,            // 鎺у埗鑿滃崟鍒锋柊
     thawmenulist: null,    // 宸插喕缁撶殑浜岀骇鑿滃崟
     type: '',              // 鎿嶄綔绫诲瀷锛屾柊寤烘垨缂栬緫鑿滃崟
     tabview: '',           // 閫夋嫨妯℃澘绐楀彛锛坱emplate锛夈�佸熀纭�琛ㄦ牸閰嶇疆锛圕ommonTable锛夈�佽〃鍗曪紙Modal锛夈�佸瓙琛紙SubTable锛�
@@ -59,6 +56,7 @@
     preview: null,         // 鍥剧墖棰勮url
     pretemplate: null,     // 棰勮妯℃澘
     btnParam: null,        // 缂栬緫鎸夐挳鐨勯厤缃俊鎭�
+    menulist: null,        // 缂栬緫涓殑鑿滃崟
     sysTemplates: sysTemps // 绯荤粺妯℃澘
   }
 
@@ -66,7 +64,9 @@
    * @description 鑿滃崟椤哄簭鏀瑰彉鏃讹紝淇濆瓨涓棿鐘舵��
    */
   handlePreviewList = (List) => {
-    previewList = List
+    this.setState({
+      menulist: List
+    })
   }
 
   /**
@@ -77,7 +77,8 @@
    */
   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'],
@@ -168,7 +169,7 @@
   handleSubBtn = (type) => {
     // 鎿嶄綔鎸夐挳锛氭坊鍔犮�佽В闄ゅ喕缁撱�佺‘璁ゅ強鍏抽棴
     if (type === 'add') { // 鐐瑰嚮娣诲姞鏃讹紝灞曞紑妯℃澘
-      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'],
@@ -179,7 +180,7 @@
       this.setState({tabview: 'template', type: 'add'})
       document.getElementById('root').style.overflowY = 'hidden'
     } else if (type === 'thaw') {
-      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'],
@@ -213,11 +214,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'
           })
         }
@@ -500,17 +501,18 @@
   }
 
   UNSAFE_componentWillMount () {
-    previewList = null
     this.getUsedTemplate()
+
+    this.setState({
+      menulist: this.props.menulist
+    })
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
     if (!is(fromJS(this.props.menulist), fromJS(nextProps.menulist))) {
-      previewList = null
-      this.setState({show: false})
-      setTimeout(() => {
-        this.setState({show: true})
-      }, 10)
+      this.setState({
+        menulist: nextProps.menulist
+      })
     }
   }
 
@@ -543,13 +545,13 @@
           <Icon type={this.props.supMenu.PageParam.Icon} />
           <span>{this.props.supMenu.text}</span>
         </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