From 31499a3e864ca1229493fd7ec901659c0cb54159 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 07 三月 2020 11:49:16 +0800
Subject: [PATCH] 2020-03-07

---
 src/components/sidemenu/editthdmenu/index.jsx |  211 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 184 insertions(+), 27 deletions(-)

diff --git a/src/components/sidemenu/editthdmenu/index.jsx b/src/components/sidemenu/editthdmenu/index.jsx
index 10f2c00..4a22b20 100644
--- a/src/components/sidemenu/editthdmenu/index.jsx
+++ b/src/components/sidemenu/editthdmenu/index.jsx
@@ -69,7 +69,9 @@
     btnTabConfig: null,     // 鎵撳紑鏂版爣绛炬寜閽厤缃�
     handleMVisible: false,  // 娣诲姞鎴栦慨鏀硅彍鍗曟ā鎬佹锛堣鑹叉潈闄愬垎閰嶇瓑锛�
     sysMenu: false,         // 娣诲姞鎴栫紪杈戣彍鍗曪紙瑙掕壊鏉冮檺鍒嗛厤绛夛級
-    optionLibs: []          // 鑷畾涔変笅鎷夐�夐」搴�
+    optionLibs: [],         // 鑷畾涔変笅鎷夐�夐」搴�
+    fstMenuId: null,        // 涓�绾ц彍鍗旾d
+    fstMenuList: null       // 涓�绾ц彍鍗曞垪琛�
   }
 
   /**
@@ -121,7 +123,11 @@
         onCancel() {}
       })
     } else if (menu.type === 'edit') {
-      let _menu = menu.card
+      let _menu = JSON.parse(JSON.stringify(menu.card))
+
+      delete _menu.id
+      delete _menu.src
+      delete _menu.text
 
       if (_menu.PageParam && _menu.PageParam.Template === 'RolePermission') { // 鍗曢〉闈慨鏀�
         let _menu_ = {
@@ -162,19 +168,10 @@
 
           _menu.LongParam = _LongParam
           _menu.ParentID = this.props.supMenu.MenuID
+          _menu.supMenuList = this.props.supMenuList
 
           // 妫�娴嬫ā鏉挎槸鍚﹀瓨鍦�
           let _Template = this.state.sysTemplates.filter(temp => temp.type === _menu.PageParam.Template)
-
-          this.setState({
-            type: 'edit',
-            editMenu: _menu,
-            loading: false,
-            optionLibs: new Map(), // 缂栬緫鏃讹紝鍒濆鍖栦负绌�
-            tabview: _Template.length > 0 ? _menu.PageParam.Template : 'template'
-          }, () => {
-            document.getElementById('root').style.overflowY = 'hidden'
-          })
 
           // 妯℃澘涓嶅瓨鍦ㄦ椂閿欒鎻愮ず
           if (_Template.length === 0) {
@@ -183,6 +180,75 @@
               message: this.state.dict['header.menu.template.empty'],
               duration: 10
             })
+
+            this.setState({
+              type: 'edit',
+              editMenu: _menu,
+              loading: false,
+              tabview: 'template'
+            }, () => {
+              document.getElementById('root').style.overflowY = 'hidden'
+            })
+          } else {
+            if (this.state.fstMenuId) {
+              _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'
+              })
+            } else {
+              let _param = {
+                func: 's_Get_FSMenusForOpen',
+                SndMenuID: this.props.supMenu.MenuID,
+                TYPE: 20,
+                TypeCharOne: 'PC'
+              }
+          
+              Api.getSystemConfig(_param).then(result => {
+                if (result.status) {
+                  _menu.fstMenuId = result.FstIDSeleted
+                  _menu.fstMenuList = result.data.map(smenu => {
+                    let _smenu = {
+                      MenuID: smenu.FstID,
+                      text: smenu.FstName,
+                      options: smenu.SndData.map(menu => {
+                        return {
+                          MenuID: menu.SndID,
+                          text: menu.SndName,
+                        }
+                      })
+                    }
+                    return _smenu
+                  })
+
+                  this.setState({
+                    type: 'edit',
+                    editMenu: _menu,
+                    loading: false,
+                    optionLibs: new Map(), // 缂栬緫鏃讹紝鍒濆鍖栦负绌�
+                    tabview: _menu.PageParam.Template
+                  }, () => {
+                    document.getElementById('root').style.overflowY = 'hidden'
+                  })
+                } else {
+                  this.setState({
+                    loading: false
+                  })
+                  notification.warning({
+                    top: 92,
+                    message: result.message,
+                    duration: 10
+                  })
+                }
+              })
+            }
           }
         } else {
           this.setState({
@@ -209,20 +275,76 @@
         })
         return
       }
-      this.setState({
-        tabview: 'template',
-        editMenu: {
-          MenuID: Utils.getuuid(),
-          MenuName: '',
-          MenuNo: '',
-          type: '',
-          PageParam: '',
-          LongParam: '',
-          isSubtable: '', // 鏄惁涓轰富瀛愯〃
-          ParentID: this.props.supMenu.MenuID
+
+      if (this.state.fstMenuId) {
+        this.setState({
+          tabview: 'template',
+          editMenu: {
+            MenuID: Utils.getuuid(),
+            MenuName: '',
+            MenuNo: '',
+            type: '',
+            PageParam: '',
+            LongParam: '',
+            isSubtable: '', // 鏄惁涓轰富瀛愯〃
+            ParentID: this.props.supMenu.MenuID,
+            supMenuList: this.props.supMenuList,
+            fstMenuId: this.state.fstMenuId,
+            fstMenuList: this.state.fstMenuList
+          }
+        }, () => {
+          document.getElementById('root').style.overflowY = 'hidden'
+        })
+      } else {
+        let _param = {
+          func: 's_Get_FSMenusForOpen',
+          SndMenuID: this.props.supMenu.MenuID,
+          TYPE: 20,
+          TypeCharOne: 'PC'
         }
-      })
-      document.getElementById('root').style.overflowY = 'hidden'
+    
+        Api.getSystemConfig(_param).then(result => {
+          if (result.status) {
+            this.setState({
+              tabview: 'template',
+              editMenu: {
+                MenuID: Utils.getuuid(),
+                MenuName: '',
+                MenuNo: '',
+                type: '',
+                PageParam: '',
+                LongParam: '',
+                isSubtable: '', // 鏄惁涓轰富瀛愯〃
+                ParentID: this.props.supMenu.MenuID,
+                supMenuList: this.props.supMenuList,
+                fstMenuId: result.FstIDSeleted,
+                fstMenuList: result.data.map(smenu => {
+                  let _smenu = {
+                    MenuID: smenu.FstID,
+                    text: smenu.FstName,
+                    options: smenu.SndData.map(menu => {
+                      return {
+                        MenuID: menu.SndID,
+                        text: menu.SndName,
+                      }
+                    })
+                  }
+                  return _smenu
+                })
+              }
+            }, () => {
+              document.getElementById('root').style.overflowY = 'hidden'
+            })
+          } else {
+            notification.warning({
+              top: 92,
+              message: result.message,
+              duration: 10
+            })
+          }
+        })
+      }
+      
     } else if (type === 'thaw') {
       if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
         notification.warning({
@@ -551,7 +673,6 @@
         MenuNo: res.MenuNo,
         Template: sysMenu.Template,
         MenuName: res.MenuName,
-        Sort: (this.props.supMenuList.length + 1) * 10,
         PageParam: JSON.stringify({Template: sysMenu.Template, OpenType: 'newtab'}),
         LongParam: ''
       }
@@ -591,6 +712,43 @@
 
     this.setState({
       menulist: this.props.menulist
+    })
+  }
+
+  componentDidMount () {
+    let _param = {
+      func: 's_Get_FSMenusForOpen',
+      SndMenuID: this.props.supMenu.MenuID,
+      TYPE: 20,
+      TypeCharOne: 'PC'
+    }
+
+    Api.getSystemConfig(_param).then(result => {
+      if (result.status) {
+        this.setState({
+          fstMenuId: result.FstIDSeleted,
+          fstMenuList: result.data.map(smenu => {
+            let _smenu = {
+              MenuID: smenu.FstID,
+              text: smenu.FstName,
+              options: smenu.SndData.map(menu => {
+                return {
+                  MenuID: menu.SndID,
+                  text: menu.SndName,
+                }
+              })
+            }
+
+            return _smenu
+          })
+        })
+      } else {
+        notification.warning({
+          top: 92,
+          message: result.message,
+          duration: 10
+        })
+      }
     })
   }
 
@@ -703,7 +861,6 @@
           <ComTableConfig
             menu={this.state.editMenu}
             optionLibs={this.state.optionLibs}
-            supMenuList={this.props.supMenuList}
             reloadmenu={() => {this.props.reload()}}
             handleView={this.handleView}
           />

--
Gitblit v1.8.0