From e9c48bd7356462ba9257540b130a47a65ad1861d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 26 八月 2021 17:17:11 +0800
Subject: [PATCH] 2021-08-26

---
 src/views/pcdesign/index.jsx |   72 +++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 29 deletions(-)

diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx
index bde0d56..b54bdbc 100644
--- a/src/views/pcdesign/index.jsx
+++ b/src/views/pcdesign/index.jsx
@@ -47,6 +47,7 @@
 sessionStorage.setItem('typename', 'pc')
 document.body.className = ''
 window.GLOB.UserComponentMap = new Map() // 缂撳瓨鐢ㄦ埛鑷畾涔夌粍浠�
+window.GLOB.TabsMap = new Map()          // 缂撳瓨鐢ㄦ埛鎿嶄綔鐨勬爣绛鹃〉
 window.GLOB.CacheIndependent = new Map()
 window.GLOB.urlFields = []               // url鍙橀噺
 window.GLOB.customMenu = null            // 淇濆瓨鑿滃崟淇℃伅
@@ -127,6 +128,7 @@
     MKEmitter.addListener('copyButtons', this.copyButtons)
     MKEmitter.addListener('changePopview', this.initPopview)
     MKEmitter.addListener('changeEditMenu', this.changeEditMenu)
+    MKEmitter.addListener('triggerMenuSave', this.triggerMenuSave)
     MKEmitter.addListener('submitComponentStyle', this.updateComponentStyle)
     MKEmitter.addListener('updateCustomComponent', this.updateCustomComponent)
     setTimeout(() => {
@@ -149,8 +151,15 @@
     MKEmitter.removeListener('copyButtons', this.copyButtons)
     MKEmitter.removeListener('changePopview', this.initPopview)
     MKEmitter.removeListener('changeEditMenu', this.changeEditMenu)
+    MKEmitter.removeListener('triggerMenuSave', this.triggerMenuSave)
     MKEmitter.removeListener('submitComponentStyle', this.updateComponentStyle)
     MKEmitter.removeListener('updateCustomComponent', this.updateCustomComponent)
+  }
+
+  triggerMenuSave = () => {
+    if (this.state.visible) return
+
+    this.submitConfig()
   }
 
   changeEditMenu = (menu) => {
@@ -402,12 +411,7 @@
   }
 
   delButtons = (items) => {
-    const { copyButtons, delButtons } = this.state
-
-    this.setState({
-      delButtons: [...delButtons, ...items],
-      copyButtons: copyButtons.filter(item => !items.includes(item.uuid))
-    })
+    this.setState({ delButtons: [...this.state.delButtons, ...items] })
   }
 
   copyButtons = (items) => {
@@ -565,6 +569,11 @@
       appIndeList = appIndeList.map(item => (item.keys_type !== 'index' ? item.keys_id : '')).join(',')
 
       let menus = res.menus.filter(item => appIndeList.indexOf(item.MenuID) === -1)
+      menus = menus.map(item => {
+        item.value = item.MenuID
+        item.label = item.MenuName
+        return item
+      })
       sessionStorage.setItem('appMenus', JSON.stringify(menus))
     })
   }
@@ -738,7 +747,9 @@
           title: item.name,
           children: []
         }
-        if (item.type === 'tabs') {
+        if (item.type === 'login') {
+          return null
+        } else if (item.type === 'tabs') {
           let tabs = []
           item.subtabs.forEach(tab => {
             let s = traversal(tab.components)
@@ -829,6 +840,13 @@
               title: menu.setting.name
             }
           })
+        } else if (item.type === 'form') {
+          m.children = item.subcards.map(m => {
+            return {
+              key: m.uuid,
+              title: m.setting.title
+            }
+          })
         } else if (item.type === 'table' && item.subtype === 'normaltable') {
           item.action && item.action.forEach(btn => {
             this.checkBtn(btn)
@@ -854,8 +872,6 @@
             })
           })
         }
-
-        if (m.children.length === 0) return null
 
         return m
       })
@@ -1294,12 +1310,7 @@
             delButtons: [],
             copyButtons: [],
             thawButtons: [],
-            menuloading: false,
-            comloading: true
-          }, () => {
-            this.setState({
-              comloading: false
-            })
+            menuloading: false
           })
           notification.success({
             top: 92,
@@ -1311,6 +1322,7 @@
             menuloading: false
           })
         }
+        MKEmitter.emit('completeSave')
       })
     }, 300)
   }
@@ -1375,7 +1387,7 @@
           check(item.components)
           return
         }
-        if (['propcard', 'brafteditor', 'sandbox', 'stepform'].includes(item.subtype) && item.wrap.datatype === 'static') return
+        if (['propcard', 'brafteditor', 'sandbox', 'stepform', 'tabform'].includes(item.subtype) && item.wrap.datatype === 'static') return
         if (['balcony'].includes(item.type) && item.wrap.datatype === 'static') return
         
         if (item.setting) {
@@ -1570,19 +1582,21 @@
                 {controlshow ? <Icon onClick={() => {sessionStorage.setItem('controlshow', 'false'); this.setState({controlshow: false})}} type="double-right" /> : null}
                 {!controlshow ? <Icon onClick={() => {sessionStorage.setItem('controlshow', 'true'); this.setState({controlshow: true})}} type="double-left" /> : null}
               </div>
-              <Button type="primary" onClick={this.submitConfig} loading={menuloading}>{dict['mob.save']}</Button>
-              <Switch className="big" checkedChildren={dict['mob.enable']} unCheckedChildren={dict['mob.disable']} checked={config && config.enabled} onChange={this.onEnabledChange} />
-              <CreateView resetmenu={this.getAppMenus} />
-              <PasteController type="menu" Tab={null} insert={this.insert} />
-              <StyleCombControlButton menu={config} />
-              <SysInterface config={config} updateConfig={this.updateConfig}/>
-              <PictureController/>
-              <Quotecomponent config={config} updateConfig={this.updateConfig}/>
-              <Button className="mk-border-green" icon="home" onClick={this.setHomeView}>璁句负棣栭〉</Button>
-              <Button className="mk-border-danger" icon="redo" onClick={this.refreshView}>寮哄埗鍒锋柊</Button>
-              <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/>
-              <Transfer MenuID={MenuId} />
-              <Button type="default" onClick={this.closeView}>鍏抽棴</Button>
+              <div className="wrap">
+                <Button type="primary" onClick={this.submitConfig} loading={menuloading}>{dict['mob.save']}</Button>
+                <Switch className="big" checkedChildren={dict['mob.enable']} unCheckedChildren={dict['mob.disable']} checked={config && config.enabled} onChange={this.onEnabledChange} />
+                <CreateView resetmenu={this.getAppMenus} />
+                <PasteController type="menu" Tab={null} insert={this.insert} />
+                <StyleCombControlButton menu={config} />
+                <SysInterface config={config} updateConfig={this.updateConfig}/>
+                <PictureController/>
+                <Quotecomponent config={config} updateConfig={this.updateConfig}/>
+                <Button className="mk-border-green" icon="home" onClick={this.setHomeView}>璁句负棣栭〉</Button>
+                <Button className="mk-border-danger" icon="redo" onClick={this.refreshView}>寮哄埗鍒锋柊</Button>
+                <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/>
+                <Transfer MenuID={MenuId} />
+                <Button type="default" onClick={this.closeView}>鍏抽棴</Button>
+              </div>
             </div>
             <div className={'menu-body menu-view' + (menuloading ? 'saving' : '')}>
               {config && !comloading ? <MenuShell menu={config} handleList={this.updateConfig} /> : null}

--
Gitblit v1.8.0