From 542054288debe0251270f782daad7fa2c6e53c5b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 24 十二月 2020 19:24:06 +0800 Subject: [PATCH] 2020-12-24 --- src/views/menudesign/index.jsx | 43 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index 2dfb63e..26150f8 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -33,7 +33,7 @@ const PaddingController = asyncComponent(() => import('@/menu/padcontroller')) const StyleController = asyncComponent(() => import('@/menu/stylecontroller')) const ModalController = asyncComponent(() => import('@/menu/modalconfig/controller')) -const PopviewController = asyncComponent(() => import('@/menu/popview/controller')) +const PopviewController = asyncComponent(() => import('@/menu/popview')) const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) sessionStorage.setItem('isEditState', 'true') @@ -53,6 +53,8 @@ oriConfig: null, openEdition: '', config: null, + popBtn: null, // 寮圭獥鏍囩椤� + visible: false } UNSAFE_componentWillMount() { @@ -83,6 +85,7 @@ componentDidMount () { MKEmitter.addListener('delButtons', this.delButtons) + MKEmitter.addListener('changePopview', this.initPopview) } /** @@ -93,10 +96,38 @@ return } MKEmitter.removeListener('delButtons', this.delButtons) + MKEmitter.removeListener('changePopview', this.initPopview) } delButtons = (items) => { this.setState({delButtons: [...this.state.delButtons, ...items]}) + } + + initPopview = (card, btn) => { + const { oriConfig, config } = this.state + + let _config = fromJS(config).toJS() + delete _config.tableFields + + if (!is(fromJS(oriConfig), fromJS(_config))) { + notification.warning({ + top: 92, + message: '閰嶇疆宸蹭慨鏀癸紝璇蜂繚瀛橈紒', + duration: 5 + }) + return + } + + btn.config = _config + btn.component = card + + this.setState({popBtn: btn, visible: true}) + } + + handleBack = () => { + this.setState({popBtn: null, delButtons: []}, () => { + this.setState({visible: false}) + }) } closeView = () => { @@ -137,7 +168,7 @@ let config = null try { - config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) + config = result.LongParam ? JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) : null } catch (e) { console.warn('Parse Failure') config = null @@ -593,13 +624,13 @@ } render () { - const { activeKey, MenuType, dict, MenuId, config, ParentId, MenuName, MenuNo, menuloading } = this.state + const { activeKey, MenuType, popBtn, visible, dict, MenuId, config, ParentId, MenuName, MenuNo, menuloading } = this.state return ( <ConfigProvider locale={_locale}> <div className="pc-menu-view" id="view"> <Header /> - <DndProvider backend={HTML5Backend}> + {!popBtn && !visible ? <DndProvider backend={HTML5Backend}> <div className="menu-body"> <div className="menu-setting"> <Collapse accordion activeKey={activeKey} bordered={false} onChange={(key) => this.setState({activeKey: key})}> @@ -654,10 +685,10 @@ </Card> </div> </div> - </DndProvider> + </DndProvider> : null} + {popBtn && visible ? <PopviewController btn={popBtn} handleBack={this.handleBack}/> : null} <StyleController /> <ModalController /> - <PopviewController /> </div> </ConfigProvider> ) -- Gitblit v1.8.0