king
2020-11-02 880a41a2135d944169d94028f19344ca66b673a0
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
const mapStateToProps = (state) => {
  return {
    memberLevel: state.memberLevel
  }
}
const mapDispatchToProps = () => {
  return {}
}
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(EditMenu))