From f8c3c53f9e29541f8c0e3fcbf682c301fd17e06a Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 23 十一月 2020 17:49:23 +0800
Subject: [PATCH] 2020-11-23

---
 src/templates/menuconfig/editfirstmenu/index.jsx |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/src/templates/headerconfig/index.jsx b/src/templates/menuconfig/editfirstmenu/index.jsx
similarity index 92%
rename from src/templates/headerconfig/index.jsx
rename to src/templates/menuconfig/editfirstmenu/index.jsx
index 0d2f1fb..1c5c46d 100644
--- a/src/templates/headerconfig/index.jsx
+++ b/src/templates/menuconfig/editfirstmenu/index.jsx
@@ -22,7 +22,6 @@
 import card5 from '@/assets/img/card-bg6.jpg'
 
 const { confirm } = Modal
-let previewList = null
 
 class EditMenu extends Component {
   static propTpyes = {
@@ -34,6 +33,7 @@
   state = {
     thawmenulist: null, // 宸插喕缁撶殑涓�绾ц彍鍗�
     addMvisible: null,
+    menulist: null,
     editMenu: null, // 缂栬緫鑿滃崟
     editMvisible: false, // 缂栬緫鑿滃崟妯℃�佹
     thawMvisible: false, // 瑙i櫎鍐荤粨妯℃�佹
@@ -43,13 +43,13 @@
 
   handlePreviewList = (List) => {
     // 鑿滃崟椤哄簭鏀瑰彉鏃讹紝淇濆瓨涓棿鐘舵��
-    previewList = List
+    this.setState({menulist: List})
   }
 
   editMenuModal = (Menu) => {
     // 鑿滃崟缂栬緫锛氫慨鏀�
     const menu = fromJS(Menu).toJS()
-    if (previewList && !is(fromJS(previewList), fromJS(this.props.menulist))) {
+    if (!is(fromJS(this.state.menulist), fromJS(this.props.menulist))) {
       notification.warning({
         top: 92,
         message: this.state.dict['model.menu.presave'],
@@ -219,7 +219,8 @@
   
   handleButton = (type) => {
     // 鑿滃崟缂栬緫锛氭坊鍔狅紝纭畾锛屽彇娑�
-    let _menuchange = previewList && !is(fromJS(previewList), fromJS(this.props.menulist))
+    let _menuchange = !is(fromJS(this.state.menulist), fromJS(this.props.menulist))
+
     if ((type === 'add' || type === 'thawmenu') && _menuchange) {
       notification.warning({
         top: 92,
@@ -234,7 +235,7 @@
       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'
         })
       }
@@ -259,6 +260,17 @@
               })
             }
           })
+        },
+        onCancel() {}
+      })
+    } else if (type === 'cancel' && _menuchange) {
+      let _this = this
+
+      confirm({
+        title: '鑿滃崟椤哄簭宸茶皟鏁达紝鏀惧純淇濆瓨鍚楋紵',
+        content: '',
+        onOk() {
+          _this.props.exitEdit()
         },
         onCancel() {}
       })
@@ -294,17 +306,17 @@
   }
 
   UNSAFE_componentWillMount () {
-    previewList = null
+    this.setState({menulist: fromJS(this.props.menulist).toJS()})
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
     if (!is(fromJS(this.props.menulist), fromJS(nextProps.menulist))) {
-      previewList = null
+      this.setState({menulist: fromJS(nextProps.menulist).toJS()})
     }
   }
 
   render () {
-    const { dict } = this.state
+    const { dict, menulist } = this.state
 
     return (
       <div className="header-edit-box">
@@ -328,16 +340,16 @@
             </div>
           </div>
         </div>
-        {this.props.menulist && <DndProvider backend={HTML5Backend}>
+        <DndProvider backend={HTML5Backend}>
           <DragElement
             dict={dict}
-            list={this.props.menulist}
+            list={menulist}
             handlePreviewList={this.handlePreviewList}
             handleMenu={this.editMenuModal}
             deleteMemu={this.deleteMemu}
             handleButton={this.handleButton}
           />
-        </DndProvider>}
+        </DndProvider>
         {/* 鏂板缓鑿滃崟妯℃�佹 */}
         <Modal
           title={dict['model.add'] + dict['model.menu']}

--
Gitblit v1.8.0