From fb64bcf1fab18b33d21470c83f28d4cda8d309ce Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 26 十月 2022 12:15:59 +0800
Subject: [PATCH] 2022-10-26

---
 src/views/menudesign/popview/index.jsx |  119 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 66 insertions(+), 53 deletions(-)

diff --git a/src/views/menudesign/popview/index.jsx b/src/views/menudesign/popview/index.jsx
index cad81e4..4b98125 100644
--- a/src/views/menudesign/popview/index.jsx
+++ b/src/views/menudesign/popview/index.jsx
@@ -1,8 +1,6 @@
 import React, { Component } from 'react'
-import { DndProvider } from 'react-dnd'
 import { is, fromJS } from 'immutable'
 import PropTypes from 'prop-types'
-import HTML5Backend from 'react-dnd-html5-backend'
 import { notification, Modal, Collapse, Card, Switch, Button } from 'antd'
 import { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons'
 
@@ -15,7 +13,6 @@
 const { confirm } = Modal
 
 const MenuForm = asyncComponent(() => import('./menuform'))
-const Header = asyncComponent(() => import('@/menu/header'))
 const SourceWrap = asyncComponent(() => import('@/menu/modulesource'))
 const Modulecell = asyncComponent(() => import('@/menu/modulecell'))
 const MenuShell = asyncComponent(() => import('@/menu/menushell'))
@@ -28,12 +25,11 @@
 class PopViewDesign extends Component {
   static propTpyes = {
     btn: PropTypes.object,
-    updateConfig: PropTypes.func
+    save: PropTypes.func,
+    cancel: PropTypes.func
   }
 
   state = {
-    MenuId: '',
-    activeKey: 'basedata',
     menuloading: false,
     oriConfig: null,
     config: null,
@@ -54,6 +50,7 @@
   }
 
   componentDidMount () {
+    MKEmitter.addListener('completeSave', this.completeSave)
     MKEmitter.addListener('triggerMenuSave', this.submitConfig)
   }
 
@@ -68,6 +65,7 @@
     this.setState = () => {
       return
     }
+    MKEmitter.removeListener('completeSave', this.completeSave)
     MKEmitter.removeListener('triggerMenuSave', this.submitConfig)
   }
 
@@ -75,21 +73,23 @@
     const { oriConfig, config } = this.state
 
     if (!is(fromJS(oriConfig), fromJS(config))) {
+      const _this = this
+
       confirm({
         title: '閰嶇疆宸蹭慨鏀癸紝鏀惧純淇濆瓨鍚楋紵',
         content: '',
         onOk() {
-          // window.history.back()
+          _this.props.cancel()
         },
         onCancel() {}
       })
     } else {
-      // window.history.back()
+      this.props.cancel()
     }
   }
 
-  getMenuMessage = (tbs) => {
-    const { config } = this.state
+  getMenuMessage = (config) => {
+    let tbs = []
 
     let traversal = (components) => {
       components.forEach(item => {
@@ -107,6 +107,14 @@
     }
 
     traversal(config.components)
+
+    config.$tables = Array.from(new Set(tbs))
+  }
+
+  completeSave = () => {
+    this.setState({
+      menuloading: false
+    })
   }
 
   submitConfig = () => {
@@ -125,9 +133,16 @@
       config.enabled = false
     }
 
+    this.getMenuMessage(config)
+
     this.setState({
+      config: config,
       menuloading: true
     })
+
+    window.GLOB.customMenu = config
+
+    this.props.save(config)
   }
 
   onEnabledChange = () => {
@@ -218,6 +233,7 @@
     config.components.push(item)
 
     this.setState({config})
+
     window.GLOB.customMenu = config
     
     notification.success({
@@ -228,53 +244,50 @@
   }
 
   render () {
-    const { activeKey, comloading, config, menuloading, eyeopen } = this.state
+    const { comloading, config, menuloading, eyeopen } = this.state
 
     return (
       <div className="pc-poper-view">
-        <Header />
-        <DndProvider backend={HTML5Backend}>
-          <div className="menu-body">
-            <div className="menu-setting">
-              <Collapse accordion activeKey={activeKey} bordered={false} onChange={(key) => this.setState({activeKey: key})}>
-                {/* 鍩烘湰淇℃伅 */}
-                <Panel header="鍩烘湰淇℃伅" key="basedata">
-                  {/* 鑿滃崟淇℃伅 */}
-                  <MenuForm config={config} updateConfig={this.updateConfig}/>
-                  {/* 琛ㄥ悕娣诲姞 */}
-                  <TableComponent config={config} updatetable={this.updatetable}/>
-                </Panel>
-                {/* 缁勪欢娣诲姞 */}
-                <Panel header="缁勪欢" key="component">
-                  <SourceWrap MenuType="" />
-                </Panel>
-                <Panel header="鍏冪礌" key="element">
-                  <Modulecell />
-                </Panel>
-                <Panel header="椤甸潰鏍峰紡" key="background">
-                  <BgController config={config} updateConfig={this.updateConfig} />
-                </Panel>
-              </Collapse>
-            </div>
-            <div className={'menu-view' + (menuloading ? ' saving' : '') + (eyeopen ? ' eye-open' : '')}>
-              <Card title={
-                <div> {config.MenuName} </div>
-              } bordered={false} extra={
-                <div>
-                  <Button className="mk-border-purple" onClick={() => this.setState({eyeopen: !eyeopen})}>{!eyeopen ? <EyeOutlined /> : <EyeInvisibleOutlined />} 缁勪欢鍚�</Button>
-                  <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/>
-                  <StyleCombControlButton menu={config} />
-                  <PasteController insert={this.insert} />
-                  <Switch className="big" checkedChildren="鍚�" unCheckedChildren="鍋�" checked={config.enabled} onChange={this.onEnabledChange} />
-                  <Button type="primary" id="save-pop-config" onClick={this.submitConfig} loading={menuloading}>淇濆瓨</Button>
-                  <Button type="default" onClick={this.closeView}>杩斿洖</Button>
-                </div>
-              } style={{ width: '100%' }}>
-                {!comloading ? <MenuShell menu={config} handleList={this.updateConfig} /> : null}
-              </Card>
-            </div>
+        <div className="menu-body">
+          <div className="menu-setting">
+            <Collapse accordion defaultActiveKey="basedata" bordered={false}>
+              {/* 鍩烘湰淇℃伅 */}
+              <Panel header="鍩烘湰淇℃伅" key="basedata">
+                {/* 鑿滃崟淇℃伅 */}
+                <MenuForm config={config} updateConfig={this.updateConfig}/>
+                {/* 琛ㄥ悕娣诲姞 */}
+                <TableComponent config={config} updatetable={this.updatetable}/>
+              </Panel>
+              {/* 缁勪欢娣诲姞 */}
+              <Panel header="缁勪欢" key="component">
+                <SourceWrap MenuType="" />
+              </Panel>
+              <Panel header="鍏冪礌" key="element">
+                <Modulecell />
+              </Panel>
+              <Panel header="椤甸潰鏍峰紡" key="background">
+                <BgController config={config} updateConfig={this.updateConfig} />
+              </Panel>
+            </Collapse>
           </div>
-        </DndProvider>
+          <div className={'menu-view' + (menuloading ? ' saving' : '') + (eyeopen ? ' eye-open' : '')}>
+            <Card title={
+              <div> {config.MenuName} </div>
+            } bordered={false} extra={
+              <div>
+                <Button className="mk-border-purple" onClick={() => this.setState({eyeopen: !eyeopen})}>{!eyeopen ? <EyeOutlined /> : <EyeInvisibleOutlined />} 缁勪欢鍚�</Button>
+                <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/>
+                <StyleCombControlButton menu={config} />
+                <PasteController insert={this.insert} />
+                <Switch className="big" checkedChildren="鍚�" unCheckedChildren="鍋�" checked={config.enabled} onChange={this.onEnabledChange} />
+                <Button type="primary" id="save-pop-config" onClick={this.submitConfig} loading={menuloading}>淇濆瓨</Button>
+                <Button type="default" onClick={this.closeView}>杩斿洖</Button>
+              </div>
+            } style={{ width: '100%' }}>
+              {!comloading ? <MenuShell menu={config} handleList={this.updateConfig} /> : null}
+            </Card>
+          </div>
+        </div>
       </div>
     )
   }

--
Gitblit v1.8.0