From a0a285c90987eb9b1591f90333f3aeb15659ded2 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 17 一月 2020 19:04:57 +0800 Subject: [PATCH] 2020-01-17 --- src/components/sidemenu/editsecmenu/index.jsx | 55 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/components/sidemenu/editsecmenu/index.jsx b/src/components/sidemenu/editsecmenu/index.jsx index 12d8c85..a16955f 100644 --- a/src/components/sidemenu/editsecmenu/index.jsx +++ b/src/components/sidemenu/editsecmenu/index.jsx @@ -15,39 +15,39 @@ import './index.scss' const { confirm } = Modal -let previewList = null class EditMenu extends Component { static propTpyes = { - menulist: PropTypes.any, // 浜岀骇鑿滃崟鍒楄〃 + menulist: PropTypes.any, // 浜岀骇鑿滃崟鍒楄〃 supMenuList: PropTypes.array, // 涓�绾ц彍鍗曞垪琛� - supMenu: PropTypes.object, // 浜岀骇鑿滃崟鎵�瀵瑰簲鐨勪竴绾ц彍鍗� - reload: PropTypes.func, // 鍒锋柊浜岀骇鑿滃崟鏁版嵁 - exitEdit: PropTypes.func // 閫�鍑虹紪杈� + supMenu: PropTypes.object, // 浜岀骇鑿滃崟鎵�瀵瑰簲鐨勪竴绾ц彍鍗� + reload: PropTypes.func, // 鍒锋柊浜岀骇鑿滃崟鏁版嵁 + exitEdit: PropTypes.func // 閫�鍑虹紪杈� } state = { - show: true, - type: '', // 缂栬緫绫诲瀷锛宎dd or edit - title: '', // 妯℃�佹鏍囬 - visible: null, // 妯℃�佹鏄惁鍙 - formlist: null, // 琛ㄥ崟淇℃伅 - editMenu: null, // 缂栬緫鑿滃崟 - thawmenulist: null, // 宸插喕缁撶殑浜岀骇鑿滃崟 - thawMvisible: false, // 瑙i櫎鍐荤粨妯℃�佹 - confirmLoading: false, // 鎻愪氦涓�傘�傘�� dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS, + menulist: null, // 鑿滃崟鍒楄〃 + type: '', // 缂栬緫绫诲瀷锛宎dd or edit + title: '', // 妯℃�佹鏍囬 + visible: null, // 妯℃�佹鏄惁鍙 + formlist: null, // 琛ㄥ崟淇℃伅 + editMenu: null, // 缂栬緫鑿滃崟 + thawmenulist: null, // 宸插喕缁撶殑浜岀骇鑿滃崟 + thawMvisible: false, // 瑙i櫎鍐荤粨妯℃�佹 + confirmLoading: false // 鎻愪氦涓�傘�傘�� } handlePreviewList = (List) => { - // 鑿滃崟椤哄簭鏀瑰彉鏃讹紝淇濆瓨涓棿鐘舵�� - previewList = List + this.setState({ + menulist: List + }) } handleMenu = (menu) => { // 鑿滃崟缂栬緫锛氫慨鏀广�佸垹闄わ紝濡傝彍鍗曢『搴忓凡鏀瑰彉锛屾彁绀轰繚瀛樿彍鍗曢『搴� const _this = this - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { notification.warning({ top: 92, message: this.state.dict['header.menu.presave'], @@ -187,11 +187,11 @@ } }) } else if (type === 'confirm') { // 纭畾鏃跺叆椤哄簭鏀瑰彉锛屽垯鎻愮ず淇濆瓨锛屽惁鍒欓��鍑虹紪杈� - if (previewList && !is(fromJS(previewList), fromJS(this.state.subMenulist))) { + if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) { 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' }) } @@ -362,15 +362,16 @@ } UNSAFE_componentWillMount () { - previewList = null + this.setState({ + menulist: this.props.menulist + }) } UNSAFE_componentWillReceiveProps (nextProps) { if (!is(fromJS(this.props.menulist), fromJS(nextProps.menulist))) { - this.setState({show: false}) - setTimeout(() => { - this.setState({show: true}) - }, 10) + this.setState({ + menulist: nextProps.menulist + }) } } @@ -397,13 +398,13 @@ </div> </div> </div> - {this.state.show && <DndProvider backend={HTML5Backend}> + <DndProvider backend={HTML5Backend}> <DragElement - list={this.props.menulist} + list={this.state.menulist} handlePreviewList={this.handlePreviewList} handleMenu={this.handleMenu} /> - </DndProvider>} + </DndProvider> <div className="menu-add" onClick={() => {this.handleSubBtn('add')}}> <Icon type="plus" /> </div> -- Gitblit v1.8.0