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