From 880a41a2135d944169d94028f19344ca66b673a0 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 02 十一月 2020 18:23:45 +0800 Subject: [PATCH] 2020-11-02 --- src/templates/menuconfig/editthdmenu/index.jsx | 104 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 75 insertions(+), 29 deletions(-) diff --git a/src/templates/menuconfig/editthdmenu/index.jsx b/src/templates/menuconfig/editthdmenu/index.jsx index 0f35f60..60f1ace 100644 --- a/src/templates/menuconfig/editthdmenu/index.jsx +++ b/src/templates/menuconfig/editthdmenu/index.jsx @@ -1,7 +1,9 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' +import { connect } from 'react-redux' import { DndProvider } from 'react-dnd' +import { withRouter } from 'react-router-dom' import HTML5Backend from 'react-dnd-html5-backend' import { notification, Modal, Button, Spin, Icon, Col, Card, Tabs, Row, Input } from 'antd' import moment from 'moment' @@ -81,6 +83,15 @@ } /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 + */ + componentWillUnmount () { + this.setState = () => { + return + } + } + + /** * @description 鑿滃崟椤哄簭鏀瑰彉鏃讹紝淇濆瓨涓棿鐘舵�� */ handlePreviewList = (List) => { @@ -134,8 +145,9 @@ delete _menu.src delete _menu.text - if (_menu.PageParam && _menu.PageParam.Template === 'RolePermission') { // 鍗曢〉闈慨鏀� + if (_menu.PageParam && (_menu.PageParam.Template === 'RolePermission' || _menu.PageParam.Template === 'NewPage')) { // 鍗曢〉闈慨鏀� _menu.Template = _menu.PageParam.Template + _menu.url = _menu.PageParam.url if (!this.state.fstMenuId) { notification.warning({ @@ -441,13 +453,32 @@ editMenu.fstMenuList = this.state.fstMenuList } - if (useType === 'sys' && (template.type === 'RolePermission' || template.type === 'CustomPage')) { // 鐙珛椤甸潰 + if (useType === 'sys' && (template.type === 'RolePermission' || template.type === 'NewPage')) { // 鐙珛椤甸潰 let _menu = { ...editMenu, MenuID: Utils.getuuid(), MenuName: template.title, Template: template.type, ParentId: this.props.supMenu.MenuID, + menuSort: (this.props.menulist.length + 1) * 10, + isSystem: true + } + + this.setState({ + handleMVisible: true, + sysMenu: _menu + }) + return + } else if (template.type === 'CustomPage') { + let _menu = { + ...editMenu, + MenuID: Utils.getuuid(), + MenuName: template.title, + Template: template.type, + ParentId: this.props.supMenu.MenuID, + OriginMenuId: template.uuid || '', + menuSort: (this.props.menulist.length + 1) * 10, + isSystem: true } this.setState({ @@ -519,7 +550,7 @@ this.setState({ loading: false, - tabview: template.type === 'CustomPage' ? '' : template.type, + tabview: template.type, editMenu: { ...editMenu, type: template.type, @@ -529,26 +560,12 @@ } }) - if (template.type === 'CustomPage') { // 浣跨敤鑷畾涔夌殑宸叉湁鑿滃崟 - // let _menu = { - // ...editMenu, - // MenuID: Utils.getuuid(), - // MenuName: template.title, - // Template: template.type, - // ParentID: this.props.supMenu.MenuID, - // } - - // this.setState({ - // handleMVisible: true, - // sysMenu: _menu - // }) - return - } document.getElementById('root').style.overflowY = 'hidden' }) } getUsedTemplate = () => { + const { memberLevel } = this.props let { sysTemplates } = this.state const illust = { // 妯℃澘鍥剧墖锛岀敤浜庡凡浣跨敤妯℃澘 CommonTable: mainsubtable, @@ -562,8 +579,12 @@ let hasRolePermission = false res.UserTemp.forEach(temp => { - if (temp.Template === 'RolePermission') { + if (temp.Template === 'NewPage') { + return + } else if (temp.Template === 'RolePermission') { hasRolePermission = true + return + } else if (temp.Template === 'CustomPage' && memberLevel < 20) { return } @@ -575,15 +596,15 @@ }) }) - if (!hasRolePermission) { - sysTemplates = sysTemplates.map(temp => { - if (temp.type === 'RolePermission') { - temp.hidden = false - } + sysTemplates = sysTemplates.map(temp => { + if (temp.type === 'RolePermission' && !hasRolePermission) { + temp.hidden = false + } else if (temp.type === 'CustomPage' && memberLevel < 20) { + temp.hidden = true + } - return temp - }) - } + return temp + }) this.setState({ usedTemplates: _templates, @@ -629,6 +650,17 @@ } this.menuFormRef.handleConfirm().then(res => { + let PageParam = { + Template: sysMenu.Template, + OpenType: 'newtab' + } + + if (sysMenu.OriginMenuId && sysMenu.Template === 'CustomPage') { + PageParam.originMenuId = sysMenu.OriginMenuId + } else if (sysMenu.Template === 'NewPage') { + PageParam.OpenType = 'NewPage' + PageParam.url = res.url + } let param = { func: 'sPC_TrdMenu_AddUpt', @@ -639,10 +671,14 @@ MenuNo: res.MenuNo, Template: sysMenu.Template, MenuName: res.MenuName, - PageParam: JSON.stringify({Template: sysMenu.Template, OpenType: 'newtab'}), + PageParam: JSON.stringify(PageParam), LongParam: '', LText: '', LTexttb: '' + } + + if (sysMenu.menuSort) { // 鑿滃崟鏂板缓鏃惰缃帓搴� + param.Sort = sysMenu.menuSort } param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -947,4 +983,14 @@ } } -export default EditMenu \ No newline at end of file +const mapStateToProps = (state) => { + return { + memberLevel: state.memberLevel + } +} + +const mapDispatchToProps = () => { + return {} +} + +export default withRouter(connect(mapStateToProps, mapDispatchToProps)(EditMenu)) \ No newline at end of file -- Gitblit v1.8.0