From fbf25a99e0bc643be89b0f9dd0efed7867f1490e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 27 七月 2022 18:08:02 +0800
Subject: [PATCH] 2022-07-27

---
 src/views/design/sidemenu/editthdmenu/index.jsx |  725 ++++++++++---------------------------------------------
 1 files changed, 134 insertions(+), 591 deletions(-)

diff --git a/src/views/design/sidemenu/editthdmenu/index.jsx b/src/views/design/sidemenu/editthdmenu/index.jsx
index ae97e33..5a6d731 100644
--- a/src/views/design/sidemenu/editthdmenu/index.jsx
+++ b/src/views/design/sidemenu/editthdmenu/index.jsx
@@ -5,34 +5,21 @@
 import { DndProvider } from 'react-dnd'
 import { withRouter } from 'react-router-dom'
 import HTML5Backend from 'react-dnd-html5-backend'
-import { notification, Modal, Button, Spin, Col, Card, Tabs, Row, Input } from 'antd'
-import { PlusOutlined } from '@ant-design/icons'
+import { notification, Modal, Button } from 'antd'
 import moment from 'moment'
 
 import Api from '@/api'
-import { sysTemps } from '@/utils/option.js'
+import MKEmitter from '@/utils/events.js'
 import zhCN from '@/locales/zh-CN/model.js'
 import enUS from '@/locales/en-US/model.js'
-import mainsubtable from '@/assets/img/mainsubtable.jpg'
-import treepage from '@/assets/img/treepage.jpg'
-import calendar from '@/assets/img/calendar.jpg'
-import customImg from '@/assets/img/custom.jpg'
 import MkIcon from '@/components/mk-icon'
-import Preview from './preview'
-import MenuForm from './menuform'
-import TransferForm from '@/templates/zshare/basetransferform'
 import Utils from '@/utils/utils.js'
 import MenuUtils from '@/utils/utils-custom.js'
 import DragElement from '../menuelement'
 import asyncLoadComponent from '@/utils/asyncLoadComponent'
 import './index.scss'
 
-import card1 from '@/assets/img/card-bg2.jpg'
-import card2 from '@/assets/img/card-bg5.jpg'
-import card3 from '@/assets/img/card-bg8.jpg'
-import card4 from '@/assets/img/card-bg7.jpg'
-import card5 from '@/assets/img/card-bg6.jpg'
-
+const MenuForm = asyncLoadComponent(() => import('../thdmenuform'))
 const ComTableConfig = asyncLoadComponent(() => import('@/templates/comtableconfig'))
 const TreePageConfig = asyncLoadComponent(() => import('@/templates/treepageconfig'))
 const CalendarPageConfig = asyncLoadComponent(() => import('@/templates/calendarconfig'))
@@ -41,12 +28,9 @@
 const SubTable = asyncLoadComponent(() => import('@/templates/subtableconfig'))
 
 const { confirm } = Modal
-const { TabPane } = Tabs
-const { Search } = Input
 
 class EditMenu extends Component {
   static propTpyes = {
-    reload: PropTypes.func,      // 鑿滃崟淇敼鍚庡埛鏂�
     menulist: PropTypes.any,     // 涓夌骇鑿滃崟鍒楄〃
     exitEdit: PropTypes.func,    // 閫�鍑虹紪杈戠姸鎬�
     supMenu: PropTypes.object,   // 瀵瑰簲鐨勪笂绾ц彍鍗�
@@ -55,19 +39,10 @@
 
   state = {
     dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
-    thawmenulist: null,     // 宸插喕缁撶殑浜岀骇鑿滃崟
-    type: '',               // 鎿嶄綔绫诲瀷锛屾柊寤烘垨缂栬緫鑿滃崟
-    thawMvisible: false,    // 瑙i櫎鍐荤粨妯℃�佹
     confirmLoading: false,  // 鎻愪氦涓�傘�傘��
-    selectTemp: '',         // 閫夋嫨妯℃澘
-    usedTemplates: null,    // 宸蹭娇鐢ㄦā鏉垮垪琛�
-    tempSearchKey: '',      // 鑿滃崟鍚嶇О杩囨护鍊�
     loading: false,         // 缂栬緫鑿滃崟鎴栦娇鐢ㄥ凡浣跨敤妯℃澘鏃讹紝鑾峰彇閰嶇疆淇℃伅
-    preview: null,          // 鍥剧墖棰勮url
-    pretemplate: null,      // 棰勮妯℃澘
     btnParam: null,         // 缂栬緫鎸夐挳鐨勯厤缃俊鎭�
     menulist: null,         // 缂栬緫涓殑鑿滃崟
-    sysTemplates: sysTemps, // 绯荤粺妯℃澘
     tabview: '',            // 閫夋嫨妯℃澘绐楀彛锛坱emplate锛夈�佸熀纭�琛ㄦ牸閰嶇疆锛圕ommonTable锛夈�佽〃鍗曪紙Modal锛夈�佸瓙琛紙SubTable锛�
     editMenu: null,         // 缂栬緫鑿滃崟
     editAction: null,       // 缂栬緫鎸夐挳
@@ -79,8 +54,8 @@
     btnTab: null,           // 鎵撳紑鏂版爣绛炬垨褰撳墠椤甸潰鍒锋柊鐨勬寜閽�
     btnTabConfig: null,     // 鎵撳紑鏂版爣绛炬寜閽厤缃�
     handleMVisible: false,  // 娣诲姞鎴栦慨鏀硅彍鍗曟ā鎬佹锛堣鑹叉潈闄愬垎閰嶇瓑锛�
-    sysMenu: false,         // 娣诲姞鎴栫紪杈戣彍鍗曪紙瑙掕壊鏉冮檺鍒嗛厤绛夛級
-    targetKeys: []          // 瑙e喕鑿滃崟鍒楄〃 
+    sysMenu: null,          // 娣诲姞鎴栫紪杈戣彍鍗曪紙瑙掕壊鏉冮檺鍒嗛厤绛夛級
+    change: false
   }
 
   /**
@@ -97,7 +72,8 @@
    */
   handlePreviewList = (List) => {
     this.setState({
-      menulist: List
+      menulist: List,
+      change: !is(fromJS(List), fromJS(this.props.menulist))
     })
   }
 
@@ -108,15 +84,16 @@
    * 3銆佽彍鍗曠紪杈戯紝鏌ヨ鑿滃崟閰嶇疆淇℃伅锛屼俊鎭纭紝杩涘叆瀵瑰簲缂栬緫椤甸潰
    */
   handleMenu = (menu) => {
-    const _this = this
-
-    if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
+    if (this.state.change) {
       notification.warning({
         top: 92,
         message: this.state.dict['model.menu.presave'],
         duration: 5
       })
-    } else if (menu.type === 'close') {
+      return
+    }
+    
+    if (menu.type === 'close') {
       confirm({
         title: `纭畾鍒犻櫎鑿滃崟銆�${menu.card.MenuName}銆嬪悧锛焋,
         content: '',
@@ -127,7 +104,7 @@
           }
           return Api.getSystemConfig(param).then(res => {
             if (res.status) {
-              _this.props.reload()
+              MKEmitter.emit('mkUpdateMenuList')
             } else {
               notification.warning({
                 top: 92,
@@ -142,9 +119,9 @@
     } else if (menu.type === 'edit') {
       let _menu = fromJS(menu.card).toJS()
 
-      if (_menu.PageParam && (_menu.PageParam.Template === 'RolePermission' || _menu.PageParam.Template === 'NewPage')) { // 鍗曢〉闈慨鏀�
+      if (['RolePermission', 'NewPage'].includes(_menu.PageParam.Template)) { // 鍗曢〉闈慨鏀�
         _menu.Template = _menu.PageParam.Template
-        _menu.url = _menu.PageParam.url
+        _menu.url = _menu.PageParam.url || ''
 
         _menu.fstMenuId = _menu.FstId
         _menu.supMenuList = this.props.supMenuList
@@ -158,181 +135,103 @@
         return
       }
 
+      // let _param = ''
+      // if (card.type === 'CustomPage') {
+      //   _param = {
+      //     MenuType: 'custom',
+      //     MenuId: card.MenuID,
+      //     ParentId: card.ParentId,
+      //     MenuName: card.MenuName,
+      //     MenuNo: card.MenuNo
+      //   }
+      //   _param = window.btoa(window.encodeURIComponent(JSON.stringify(_param)))
+      // }
+      // window.open(`#/menudesign/${_param}`)}
 
-      let param = {
-        func: 'sPC_Get_LongParam',
-        MenuID: _menu.MenuID
-      }
+      // let param = {
+      //   func: 'sPC_Get_LongParam',
+      //   MenuID: _menu.MenuID
+      // }
 
-      this.setState({
-        loading: true
-      })
+      // this.setState({
+      //   loading: true
+      // })
 
-      Api.getSystemConfig(param).then(res => {
-        if (res.status) {
-          let _LongParam = ''
-          if (res.LongParam) {
-            try {
-              _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam)))
-            } catch (e) {
-              console.warn('Parse Failure')
-              _LongParam = ''
-            }
-          }
+      // Api.getSystemConfig(param).then(res => {
+      //   if (res.status) {
+      //     let _LongParam = ''
+      //     if (res.LongParam) {
+      //       try {
+      //         _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam)))
+      //       } catch (e) {
+      //         console.warn('Parse Failure')
+      //         _LongParam = ''
+      //       }
+      //     }
 
-          _menu.LongParam = _LongParam
-          _menu.fstMenuId = _menu.FstId
-          _menu.supMenuList = this.props.supMenuList
-          _menu.fstMenuList = this.props.menuTree
-          _menu.open_edition = res.open_edition || ''
+      //     _menu.LongParam = _LongParam
+      //     _menu.fstMenuId = _menu.FstId
+      //     _menu.supMenuList = this.props.supMenuList
+      //     _menu.fstMenuList = this.props.menuTree
+      //     _menu.open_edition = res.open_edition || ''
 
-          // 妫�娴嬫ā鏉挎槸鍚﹀瓨鍦�
-          let _Template = this.state.sysTemplates.filter(temp => temp.type === _menu.PageParam.Template)
-
-          // 妯℃澘涓嶅瓨鍦ㄦ椂閿欒鎻愮ず
-          if (_Template.length === 0) {
-            notification.warning({
-              top: 92,
-              message: '鑿滃崟妯℃澘涓㈠け锛岃閲嶆柊閫夋嫨妯℃澘锛�',
-              duration: 5
-            })
-
-            this.setState({
-              type: 'edit',
-              editMenu: _menu,
-              loading: false,
-              tabview: 'template'
-            }, () => {
-              document.getElementById('root').style.overflowY = 'hidden'
-            })
-          } else {
-            this.setState({
-              type: 'edit',
-              editMenu: _menu,
-              loading: false,
-              tabview: _menu.PageParam.Template
-            }, () => {
-              document.getElementById('root').style.overflowY = 'hidden'
-            })
-          }
-        } else {
-          this.setState({
-            loading: false
-          })
-          notification.warning({
-            top: 92,
-            message: res.message,
-            duration: 5
-          })
-        }
-      })
+          
+      //     this.setState({
+      //       editMenu: _menu,
+      //       loading: false,
+      //       tabview: _menu.PageParam.Template
+      //     }, () => {
+      //       document.getElementById('root').style.overflowY = 'hidden'
+      //     })
+      //   } else {
+      //     this.setState({
+      //       loading: false
+      //     })
+      //     notification.warning({
+      //       top: 92,
+      //       message: res.message,
+      //       duration: 5
+      //     })
+      //   }
+      // })
     }
   }
 
   handleSubBtn = (type) => {
     // 鎿嶄綔鎸夐挳锛氭坊鍔犮�佽В闄ゅ喕缁撱�佺‘璁ゅ強鍏抽棴
-    if (type === 'add') { // 鐐瑰嚮娣诲姞鏃讹紝灞曞紑妯℃澘
-      if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
-        notification.warning({
-          top: 92,
-          message: this.state.dict['model.menu.presave'],
-          duration: 5
+    if (type === 'confirm') {
+      let param  = {
+        func: 'sPC_Menu_SortUpt',
+        LText: this.state.menulist.map((item, index) => {
+          return 'select \'' + item.MenuID + '\' as Menuid,' + (index + 1) * 10 + ' as sort'
         })
-        return
       }
 
-      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.props.mainMenu.MenuID,
-          fstMenuList: this.props.menuTree,
-          menuSort: (this.props.menulist.length + 1) * 10 // 鏂板缓鑿滃崟璁剧疆鎺掑簭
-        }
-      }, () => {
-        document.getElementById('root').style.overflowY = 'hidden'
-      })
-    } else if (type === 'thaw') {
-      if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
-        notification.warning({
-          top: 92,
-          message: this.state.dict['model.menu.presave'],
-          duration: 5
-        })
-        return
-      }
-      this.setState({
-        thawMvisible: true,
-        targetKeys: []
-      })
-      Api.getSystemConfig({
-        func: 'sPC_Get_FrozenMenu',
-        ParentID: this.props.supMenu.MenuID,
-        TYPE: 30
-      }).then(res => {
-        if (res.status) {
-          this.setState({
-            thawmenulist: res.data.map(menu => {
-              return {
-                key: menu.MenuID,
-                title: menu.MenuName
-              }
-            })
-          })
-        } else {
-          notification.warning({
-            top: 92,
-            message: res.message,
-            duration: 5
-          })
-        }
-      })
-    } else if (type === 'confirm') {
-      if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
-        let _this = this
-        let param  = {
-          func: 'sPC_Menu_SortUpt',
-          LText: this.state.menulist.map((item, index) => {
-            return 'select \'' + item.MenuID + '\' as Menuid,' + (index + 1) * 10 + ' as sort'
-          })
-        }
+      param.LText = param.LText.join(' union ') // sql鎷兼帴
+      param.LText = Utils.formatOptions(param.LText) // 鍏抽敭瀛楃鏇挎崲锛宐ase64鍔犲瘑
+      param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') // 鏃堕棿鎴�
+      param.secretkey = Utils.encrypt(param.LText, param.timestamp) // md5瀵嗛挜
 
-        param.LText = param.LText.join(' union ') // sql鎷兼帴
-        param.LText = Utils.formatOptions(param.LText) // 鍏抽敭瀛楃鏇挎崲锛宐ase64鍔犲瘑
-        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') // 鏃堕棿鎴�
-        param.secretkey = Utils.encrypt(param.LText, param.timestamp) // md5瀵嗛挜
-
-        confirm({
-          title: this.state.dict['model.menu.resetorder'],
-          content: '',
-          onOk() {
-            return Api.getSystemConfig(param).then(res => {
-              if (res.status) {
-                _this.props.reload()
-              } else {
-                notification.warning({
-                  top: 92,
-                  message: res.message,
-                  duration: 5
-                })
-              }
-            })
-          },
-          onCancel() {}
-        })
-      } else {
-        this.props.exitEdit()
-      }
+      confirm({
+        title: '纭璋冩暣鑿滃崟椤哄簭鍚楋紵',
+        content: '',
+        onOk() {
+          return Api.getSystemConfig(param).then(res => {
+            if (res.status) {
+              MKEmitter.emit('mkUpdateMenuList')
+            } else {
+              notification.warning({
+                top: 92,
+                message: res.message,
+                duration: 5
+              })
+            }
+          })
+        },
+        onCancel() {}
+      })
     } else if (type === 'close') {
-      if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
+      if (this.state.change) {
         let _this = this
 
         confirm({
@@ -347,248 +246,6 @@
         this.props.exitEdit()
       }
     }
-  }
-
-  thawMemuSubmit = () => {
-    const { targetKeys } = this.state
-    // 涓夌骇鑿滃崟瑙i櫎鍐荤粨
-    if (targetKeys.length === 0) {
-      notification.warning({
-        top: 92,
-        message: this.state.dict['form.required.select'] + this.state.dict['model.menu'],
-        duration: 5
-      })
-    } else {
-      this.setState({
-        confirmLoading: true
-      })
-      let defers = targetKeys.map(item => {
-        return new Promise((resolve) => {
-          Api.getSystemConfig({
-            func: 'sPC_MainMenu_ReDel',
-            MenuID: item
-          }).then(res => {
-            if (res.status) {
-              resolve('')
-            } else {
-              resolve(res.message)
-            }
-          })
-        })
-      })
-      Promise.all(defers).then(res => {
-        let msg = res.filter(Boolean)[0]
-        if (msg) {
-          notification.error({
-            top: 92,
-            message: msg,
-            duration: 10
-          })
-        } else {
-          this.setState({
-            confirmLoading: false,
-            thawMvisible: false,
-            targetKeys: [],
-            thawmenulist: null
-          })
-          this.props.reload()
-        }
-      })
-    }
-  }
-
-  thawMemuCancel = () => {
-    // 瑙i櫎鍐荤粨-鍙栨秷
-    this.setState({
-      thawMvisible: false,
-      thawmenulist: null,
-      targetKeys: []
-    })
-  }
-
-  previewPicture = (template) => {
-    if (template.disabled) return
-    // 鍥剧墖棰勮
-    this.setState({
-      preview: template.url,
-      pretemplate: template
-    })
-  }
-
-  cancelPrePicture = () => {
-    // 鍏抽棴鍥剧墖棰勮
-    this.setState({
-      preview: null
-    })
-  }
-
-  /**
-   * @description 浣跨敤妯℃澘
-   * 1銆佷娇鐢ㄧ郴缁熸ā鏉挎椂锛屼娇鐢ㄧ郴缁熼厤缃�
-   * 2銆佷娇鐢ㄥ凡鏈夎彍鍗曟ā鏉挎椂锛岃幏鍙栬彍鍗曢厤缃俊鎭紝鏍囪涓簎ser锛堝鍒惰彍鍗曟寜閽級
-   */
-  useTemplate = (template, useType) => {
-    let editMenu = fromJS(this.state.editMenu).toJS()
-
-    editMenu.fstMenuId = this.props.mainMenu.MenuID
-    editMenu.fstMenuList = this.props.menuTree
-
-    if (useType === 'sys' && (template.type === 'RolePermission' || template.type === 'NewPage')) { // 鐙珛椤甸潰
-      let _menu = {
-        ...editMenu,
-        MenuID: Utils.getuuid(),
-        MenuName: template.title,
-        Template: template.type,
-        ParentId: this.props.supMenu.MenuID,
-        menuSort: (this.props.menulist.length + 1) * 10,
-        isSystem: true
-      }
-
-      this.setState({
-        handleMVisible: true,
-        sysMenu: _menu
-      })
-      return
-    } else if (template.type === 'CustomPage') {
-      let _menu = {
-        ...editMenu,
-        MenuID: Utils.getuuid(),
-        MenuName: template.title,
-        Template: template.type,
-        ParentId: this.props.supMenu.MenuID,
-        OriginMenuId: template.uuid || '',
-        menuSort: (this.props.menulist.length + 1) * 10,
-        isSystem: true
-      }
-
-      this.setState({
-        handleMVisible: true,
-        sysMenu: _menu
-      })
-      return
-    }
-
-    new Promise(resolve => {
-      if (useType === 'sys') {
-        resolve(true)
-      } else {
-        let param = {
-          func: 'sPC_Get_LongParam',
-          MenuID: template.uuid
-        }
-        this.setState({
-          loading: true
-        })
-
-        Api.getSystemConfig(param).then(result => {
-          if (!result.status) {
-            notification.warning({
-              top: 92,
-              message: result.message,
-              duration: 5
-            })
-            resolve(false)
-          } else {
-            let _config = ''
-            if (result.LongParam) {
-              try {
-                _config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam)))
-                _config.type = 'user'
-              } catch (e) {
-                console.warn('Parse Failure')
-                _config = ''
-              }
-            }
-
-            if (_config) {
-              template.baseconfig = _config
-              resolve(true)
-            } else {
-              notification.warning({
-                top: 92,
-                message: '妯℃澘淇℃伅鑾峰彇澶辫触锛�',
-                duration: 5
-              })
-              resolve(false)
-            }
-          }
-        })
-      }
-    }).then(res => {
-      if (!res) { // 閿欒鏃讹紝閲嶇疆鐘舵��
-        this.setState({
-          loading: false
-        })
-        return
-      }
-
-      // 閫夋嫨妯℃澘锛氭坊鍔犺彍鍗曟椂(涓嶅瓨鍦╩enuId)
-      let _PageParam = {
-        OpenType: editMenu.PageParam ? editMenu.PageParam.OpenType : 'newtab',
-        Template: template.type
-      }
-
-      this.setState({
-        loading: false,
-        tabview: template.type,
-        editMenu: {
-          ...editMenu,
-          type: template.type,
-          PageParam: _PageParam,
-          LongParam: template.baseconfig,
-          isSubtable: template.isSubtable
-        }
-      })
-
-      document.getElementById('root').style.overflowY = 'hidden'
-    })
-  }
-
-  getUsedTemplate = () => {
-    let { sysTemplates } = this.state
-    let memberLevel = Utils.getMemberLevel()
-    const illust = { // 妯℃澘鍥剧墖锛岀敤浜庡凡浣跨敤妯℃澘
-      CommonTable: mainsubtable,
-      TreePage: treepage,
-      CalendarPage: calendar,
-      CustomPage: customImg
-    }
-
-    Api.getSystemConfig({func: 'sPC_Get_UserTemp', TypeCharTwo: 'menu'}).then(res => {
-      let _templates = []
-
-      res.UserTemp.forEach(temp => {
-        if (temp.Template === 'NewPage' || temp.Template === 'RolePermission') {
-          return
-        } else if (temp.Template === 'CustomPage' && memberLevel < 20) {
-          temp.disabled = true
-          temp.disTitle = '浼氬憳绛夌骇涓嶅锛屾棤寮�鍙戞潈闄愩��'
-        }
-        
-        _templates.push({
-          uuid: temp.MenuID,
-          title: temp.MenuName,
-          type: temp.Template,
-          url: illust[temp.Template],
-          disabled: temp.disabled || false,
-          disTitle: temp.disTitle || ''
-        })
-      })
-
-      sysTemplates = sysTemplates.map(temp => {
-        if (temp.type === 'CustomPage' && memberLevel < 20) {
-          temp.disabled = true
-          temp.disTitle = '浼氬憳绛夌骇涓嶅锛屾棤寮�鍙戞潈闄愩��'
-        }
-
-        return temp
-      })
-
-      this.setState({
-        usedTemplates: _templates,
-        sysTemplates: sysTemplates
-      })
-    })
   }
 
   exittabview = () => {
@@ -616,17 +273,6 @@
     const { sysMenu } = this.state
     let sysTemplates = fromJS(this.state.sysTemplates).toJS()
 
-    // 瑙掕壊鏉冮檺鍒嗛厤妯℃澘锛屽彧鍙互娣诲姞涓�娆�
-    // if (sysMenu.isSystem && (sysMenu.Template === 'RolePermission')) {
-    //   sysTemplates = sysTemplates.map(temp => {
-    //     if (temp.type === sysMenu.type) {
-    //       temp.hidden = true
-    //     }
-
-    //     return temp
-    //   })
-    // }
-
     this.menuFormRef.handleConfirm().then(res => {
       let PageParam = {
         Template: sysMenu.Template,
@@ -653,10 +299,6 @@
         LTexttb: ''
       }
 
-      if (sysMenu.menuSort) { // 鑿滃崟鏂板缓鏃惰缃帓搴�
-        param.Sort = sysMenu.menuSort
-      }
-
       param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
       param.secretkey = Utils.encrypt(param.LText, param.timestamp)
 
@@ -664,33 +306,29 @@
         confirmLoading: true
       })
 
-      if (sysMenu.Template === 'CustomPage' && sysMenu.OriginMenuId) {
-        this.copyMenu(param, sysMenu.OriginMenuId)
-      } else {
-        Api.getSystemConfig(param).then(response => {
-          if (response.status) {
-            this.setState({
-              sysTemplates: sysTemplates,
-              confirmLoading: false,
-              handleMVisible: false,
-              sysMenu: '',
-              tabview: ''
-            })
-  
-            this.props.reload()
-            document.getElementById('root').style.overflowY = 'unset'
-          } else {
-            this.setState({
-              confirmLoading: false
-            })
-            notification.warning({
-              top: 92,
-              message: response.message,
-              duration: 5
-            })
-          }
-        })
-      }
+      Api.getSystemConfig(param).then(response => {
+        if (response.status) {
+          this.setState({
+            sysTemplates: sysTemplates,
+            confirmLoading: false,
+            handleMVisible: false,
+            sysMenu: '',
+            tabview: ''
+          })
+
+          MKEmitter.emit('mkUpdateMenuList')
+          document.getElementById('root').style.overflowY = 'unset'
+        } else {
+          this.setState({
+            confirmLoading: false
+          })
+          notification.warning({
+            top: 92,
+            message: response.message,
+            duration: 5
+          })
+        }
+      })
     })
   }
 
@@ -731,7 +369,7 @@
               tabview: ''
             })
   
-            this.props.reload()
+            MKEmitter.emit('mkUpdateMenuList')
             document.getElementById('root').style.overflowY = 'unset'
           } else {
             this.setState({
@@ -758,8 +396,6 @@
   }
 
   UNSAFE_componentWillMount () {
-    this.getUsedTemplate()
-
     this.setState({
       menulist: this.props.menulist
     })
@@ -768,37 +404,17 @@
   UNSAFE_componentWillReceiveProps (nextProps) {
     if (!is(fromJS(this.props.menulist), fromJS(nextProps.menulist))) {
       this.setState({
-        menulist: nextProps.menulist
+        menulist: nextProps.menulist,
+        change: false
       })
     }
   }
 
   render () {
-    const { dict } = this.state
+    const { change } = this.state
+
     return (
       <div className="third-edit-box">
-        {!this.state.tabview ?
-          <div className="mask">
-            <div className="tipcard card1" style={{backgroundImage: 'url(' + card1 + ')'}}>
-              鎷栧姩涓夌骇鑿滃崟鍙皟鏁撮『搴忥紝椤哄簭璋冩暣鍚庯紝璇风偣鍑荤‘瀹氭寜閽繚瀛樸��
-            </div>
-            <div className="tipcard card2" style={{backgroundImage: 'url(' + card2 + ')'}}>
-              鐐瑰嚮缂栬緫鍥炬爣浼氭牴鎹彍鍗曟ā鏉匡紝杩涘叆鐩稿簲鐨勬ā鏉跨紪杈戦〉闈紝鐐瑰嚮鍒犻櫎鍥炬爣鍙垹闄よ彍鍗曘��
-            </div>
-            <div className="tipcard card3" style={{backgroundImage: 'url(' + card3 + ')'}}>
-              鐐瑰嚮瑙i櫎鍐荤粨鎸夐挳锛屽彲杩樺師宸插垹闄ょ殑涓夌骇鑿滃崟銆�
-            </div>
-            <div className="tipcard card4" style={{backgroundImage: 'url(' + card4 + ')'}}>
-              鐐瑰嚮娣诲姞鍥炬爣锛屼細鏄剧ず绯荤粺妯℃澘鍜屽凡浣跨敤妯℃澘锛岄�夋嫨宸蹭娇鐢ㄦā鏉挎椂锛屼細澶嶅埗宸叉坊鍔犺彍鍗曠殑閰嶇疆淇℃伅銆�
-            </div>
-            <div className="tipcard card5" style={{backgroundImage: 'url(' + card5 + ')'}}>
-              <p>缂栬緫鐘舵�佷腑锛岃彍鍗曚箣澶栧尯鍩熶細閿佸畾锛屾煡鐪嬬郴缁熸暟鎹鐐瑰嚮銆�</p>
-              <div>
-                <span className="new-view" onClick={() => {window.open('#/main')}} >鏂伴〉闈�</span>
-              </div>
-            </div>
-          </div> : null
-        }
         <div className="cus-submenu-title">
           <MkIcon type={this.props.supMenu.PageParam.Icon} />
           <span>{this.props.supMenu.MenuName}</span>
@@ -810,86 +426,29 @@
             handleMenu={this.handleMenu}
           />
         </DndProvider>
-        <div className="menu-add" onClick={() => {this.handleSubBtn('add')}}>
-          <PlusOutlined />
-        </div>
         <div className="menu-btn">
-          <Button type="primary" onClick={() => {this.handleSubBtn('thaw')}}>{dict['model.thaw'] + dict['model.menu']}</Button>
-          <Button type="primary" onClick={() => {this.handleSubBtn('confirm')}}>{dict['model.confirm']}</Button>
-          <Button onClick={() => {this.handleSubBtn('close')}}>{dict['model.close']}</Button>
+          <Button type="primary" className="mk-save-menu" disabled={!change} onClick={() => {this.handleSubBtn('confirm')}}>淇濆瓨</Button>
+          <Button onClick={() => {this.handleSubBtn('close')}}>鍏抽棴</Button>
         </div>
-        {this.state.tabview === 'template' ?
-          <div className="editboard">
-            <div className="workplace">
-              <Button className="top-btn mk-yellow" onClick={this.exittabview}>{dict['model.cancel']}</Button>
-              {this.state.tabview === 'template' && <Tabs defaultActiveKey="1">
-                <TabPane tab="绯荤粺妯℃澘" key="1">
-                  <Row>
-                    {this.state.sysTemplates.map((template, index) => {
-                      // if (template.hidden) return null
-
-                      return (
-                        <Col key={`${index}`} className={template.disabled ? 'disabled' : ''} title={template.disTitle || ''} span={8}>
-                          <Card
-                            title={template.title}>
-                            <img onClick={() => {this.previewPicture(template)}} src={template.url} alt=""/>
-                            <div className="card-operation">
-                              <Button type="primary" onClick={() => {this.useTemplate(template, 'sys')}}>浣跨敤妯℃澘</Button>
-                            </div>
-                          </Card>
-                        </Col>
-                      )
-                    })}
-                  </Row>
-                </TabPane>
-                <TabPane tab="宸蹭娇鐢ㄦā鏉�" key="2">
-                  <Row>
-                    <Col span={8}>
-                      <Search placeholder="璇疯緭鍏ヨ彍鍗曞悕绉�" defaultValue={this.state.tempSearchKey} onSearch={value => {this.setState({tempSearchKey: value})}} enterButton />
-                    </Col>
-                  </Row>
-                  <Row>
-                    {this.state.usedTemplates && this.state.usedTemplates.map((template, index) => {
-                      if (template.title.toLowerCase().indexOf(this.state.tempSearchKey.toLowerCase()) >= 0) {
-                        return (
-                          <Col key={template.type + index} className={template.disabled ? 'disabled' : ''} title={template.disTitle || ''} span={6}>
-                            <Card
-                              title={template.title}>
-                              <img onClick={() => {this.previewPicture(template)}} src={template.url} alt=""/>
-                              <div className="card-operation">
-                                <Button type="primary" onClick={() => {this.useTemplate(template, 'user')}}>浣跨敤妯℃澘</Button>
-                              </div>
-                            </Card>
-                          </Col>
-                        )
-                      } else {
-                        return ''
-                      }
-                    })}
-                  </Row>
-                </TabPane>
-              </Tabs>}
-            </div>
-          </div> : null
-        }
+        
         {this.state.tabview === 'TreePage' ?
           <TreePageConfig
             menu={this.state.editMenu}
-            reloadmenu={() => {this.props.reload()}}
+            reloadmenu={() => {MKEmitter.emit('mkUpdateMenuList')}}
             handleView={this.handleView}
           /> : null
         }
         {this.state.tabview === 'CalendarPage' ?
           <CalendarPageConfig
             menu={this.state.editMenu}
-            reloadmenu={() => {this.props.reload()}}
+            reloadmenu={() => {MKEmitter.emit('mkUpdateMenuList')}}
             handleView={this.handleView}
           /> : null
         }
         {this.state.tabview === 'CommonTable' ?
           <ComTableConfig
             menu={this.state.editMenu}
-            reloadmenu={() => {this.props.reload()}}
+            reloadmenu={() => {MKEmitter.emit('mkUpdateMenuList')}}
             handleView={this.handleView}
           /> : null
         }
@@ -927,38 +486,22 @@
             handleView={this.handleView}
           /> : null
         }
-        {/* 鍥剧墖棰勮 */}
-        <Preview cancel={this.cancelPrePicture} preview={this.state.preview} template={this.state.pretemplate} confirm={this.useTemplate}/>
-        {/* 瑙e喕鑿滃崟妯℃�佹 */}
-        <Modal
-          title={dict['model.thaw'] + dict['model.menu']}
-          width={600}
-          visible={this.state.thawMvisible}
-          onOk={this.thawMemuSubmit}
-          confirmLoading={this.state.confirmLoading}
-          onCancel={this.thawMemuCancel}
-          destroyOnClose
-        >
-          {!this.state.thawmenulist && <Spin style={{marginLeft: 'calc(50% - 22px)', marginTop: '70px', marginBottom: '70px'}} size="large" />}
-          {this.state.thawmenulist && <TransferForm onChange={(vals) => this.setState({targetKeys: vals})} menulist={this.state.thawmenulist}/>}
-        </Modal>
         {/* 娣诲姞绯荤粺鑿滃崟 */}
         <Modal
-          title={this.state.sysMenu && this.state.sysMenu.isSystem ? dict['model.add'] + dict['model.menu'] : dict['model.update'] + dict['model.menu']}
+          title="淇敼鑿滃崟"
           visible={this.state.handleMVisible}
+          width={600}
           onOk={this.memuSubmit}
-          confirmLoading={this.state.confirmLoading}
+          confirmLoading={this.state.loading}
           onCancel={() => {this.setState({handleMVisible: false})}}
           destroyOnClose
         >
           <MenuForm
             menu={this.state.sysMenu}
-            dict={dict}
             inputSubmit={this.memuSubmit}
             wrappedComponentRef={(inst) => this.menuFormRef = inst}
           />
         </Modal>
-        {this.state.loading && <Spin className="loading-thdmenu" size="large" />}
       </div>
     )
   }

--
Gitblit v1.8.0