From 461e4fff4b51d067671244eec63b097cd9012b6e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 30 三月 2020 09:25:41 +0800
Subject: [PATCH] 2020-03-30

---
 src/components/sidemenu/editthdmenu/index.jsx |   85 ++++++++++++++++++++++++++++++++----------
 1 files changed, 65 insertions(+), 20 deletions(-)

diff --git a/src/components/sidemenu/editthdmenu/index.jsx b/src/components/sidemenu/editthdmenu/index.jsx
index 45b631b..34483e1 100644
--- a/src/components/sidemenu/editthdmenu/index.jsx
+++ b/src/components/sidemenu/editthdmenu/index.jsx
@@ -130,23 +130,23 @@
       delete _menu.src
       delete _menu.text
 
-      if (!this.state.fstMenuId) {
-        notification.warning({
-          top: 92,
-          message: '鏈幏鍙栧埌涓�绾ц彍鍗曚俊鎭紝璇风◢绛夋垨鍒锋柊閲嶈瘯銆�',
-          duration: 10
-        })
-        return
-      }
-
-      _menu.ParentID = this.props.supMenu.MenuID
-      _menu.supMenuList = this.props.supMenuList
-      _menu.fstMenuId = this.state.fstMenuId
-      _menu.fstMenuList = this.state.fstMenuList
-      _menu.roleList = this.state.roleList
-
       if (_menu.PageParam && _menu.PageParam.Template === 'RolePermission') { // 鍗曢〉闈慨鏀�
         _menu.Template = _menu.PageParam.Template
+
+        if (!this.state.fstMenuId) {
+          notification.warning({
+            top: 92,
+            message: '鑿滃崟鍔犺浇涓紝璇风◢鍚庨噸璇曪紒',
+            duration: 10
+          })
+          return
+        }
+
+        _menu.ParentID = this.props.supMenu.MenuID
+        _menu.supMenuList = this.props.supMenuList
+        _menu.fstMenuId = this.state.fstMenuId || ''
+        _menu.fstMenuList = this.state.fstMenuList || []
+        _menu.roleList = this.state.roleList
   
         this.setState({
           handleMVisible: true,
@@ -179,7 +179,11 @@
           }
 
           _menu.LongParam = _LongParam
-          
+          _menu.ParentID = this.props.supMenu.MenuID
+          _menu.supMenuList = this.props.supMenuList
+          _menu.fstMenuId = this.state.fstMenuId || ''
+          _menu.fstMenuList = this.state.fstMenuList || []
+          _menu.roleList = this.state.roleList
 
           // 妫�娴嬫ā鏉挎槸鍚﹀瓨鍦�
           let _Template = this.state.sysTemplates.filter(temp => temp.type === _menu.PageParam.Template)
@@ -200,7 +204,7 @@
             }, () => {
               document.getElementById('root').style.overflowY = 'hidden'
             })
-          } else {
+          } else if (_menu.fstMenuId) {
             this.setState({
               type: 'edit',
               editMenu: _menu,
@@ -209,6 +213,13 @@
               tabview: _menu.PageParam.Template
             }, () => {
               document.getElementById('root').style.overflowY = 'hidden'
+            })
+          } else {
+            _menu.loadingFstMenuId = true
+            this.setState({
+              type: 'edit',
+              editMenu: _menu,
+              optionLibs: new Map()
             })
           }
         } else {
@@ -240,7 +251,7 @@
       if (!this.state.fstMenuId) {
         notification.warning({
           top: 92,
-          message: '鏈幏鍙栧埌涓�绾ц彍鍗曚俊鎭紝璇风◢绛夋垨鍒锋柊閲嶈瘯',
+          message: '鑿滃崟鍔犺浇涓紝璇风◢鍚庨噸璇曪紒',
           duration: 10
         })
         return
@@ -418,11 +429,25 @@
    * 2銆佷娇鐢ㄥ凡鏈夎彍鍗曟ā鏉挎椂锛岃幏鍙栬彍鍗曢厤缃俊鎭紝鏍囪涓簎ser锛堝鍒惰彍鍗曟寜閽級
    */
   useTemplate = (template, useType) => {
-    const { editMenu } = this.state
+    let editMenu = JSON.parse(JSON.stringify(this.state.editMenu))
+
+    if (!this.state.fstMenuId) {
+      notification.warning({
+        top: 92,
+        message: '鑿滃崟鍔犺浇涓紝璇风◢鍚庨噸璇曪紒',
+        duration: 10
+      })
+      return
+    }
+
+    if (!editMenu.fstMenuId) {
+      editMenu.fstMenuId = this.state.fstMenuId
+      editMenu.fstMenuList = this.state.fstMenuList
+    }
 
     if (useType === 'sys' && template.type === 'RolePermission') { // 鐙珛椤甸潰
       let _menu = {
-        ...template,
+        ...editMenu,
         MenuID: Utils.getuuid(),
         MenuName: template.title,
         Template: template.type,
@@ -711,6 +736,26 @@
     Promise.all([menuDefer, roleDefer]).then(() => {
       this.setState({
         loading: false
+      }, () => {
+        let _menu = JSON.parse(JSON.stringify(this.state.editMenu))
+
+        if (!_menu || !_menu.loadingFstMenuId) {
+          return
+        }
+
+        delete _menu.loadingFstMenuId
+        _menu.fstMenuId = this.state.fstMenuId
+        _menu.fstMenuList = this.state.fstMenuList
+
+        this.setState({
+          type: 'edit',
+          editMenu: _menu,
+          loading: false,
+          optionLibs: new Map(), // 缂栬緫鏃讹紝鍒濆鍖栦负绌�
+          tabview: _menu.PageParam.Template
+        }, () => {
+          document.getElementById('root').style.overflowY = 'hidden'
+        })
       })
     })
   }

--
Gitblit v1.8.0