king
2021-08-14 97b0c90b3a99c7483d61ad4945b6c01fa10224ec
src/mob/components/menubar/normal-menubar/menucomponent/index.jsx
@@ -4,16 +4,15 @@
import { Modal, Popover, Icon, Col } from 'antd'
import asyncIconComponent from '@/utils/asyncIconComponent'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
import Utils from '@/utils/utils.js'
import SettingForm from './settingform'
import getSettingForm from './options'
import { resetStyle } from '@/utils/utils-custom.js'
import MKEmitter from '@/utils/events.js'
import './index.scss'
const { confirm } = Modal
const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent'))
const NormalForm = asyncIconComponent(() => import('@/components/normalform'))
class MenuBoxComponent extends Component {
  static propTpyes = {
@@ -26,10 +25,7 @@
  }
  state = {
    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    card: null,
    formlist: null,
    visible: false
    card: null
  }
  UNSAFE_componentWillMount () {
@@ -41,20 +37,11 @@
  }
  componentDidMount () {
    const { card } = this.props
    MKEmitter.addListener('submitStyle', this.getStyle)
    if (card.isnew) {
      this.setState({
        visible: true
      })
    }
  }
  shouldComponentUpdate (nextProps, nextState) {
    const { cards } = this.props
    return !is(fromJS(cards.wrap), fromJS(nextProps.cards.wrap)) || !is(fromJS(this.state), fromJS(nextState))
    return !is(fromJS(this.state), fromJS(nextState))
  }
  /**
@@ -93,43 +80,46 @@
    MKEmitter.emit('changeStyle', [cards.uuid, card.uuid], options, _style)
  }
  settingSubmit = () => {
    const { card } = this.state
    this.settingRef.handleConfirm().then(res => {
      let _card = {...card, setting: res}
      if (!card.isnew && card.setting.type === 'menu' && _card.setting.type !== 'menu') {
        const _this = this
        confirm({
          content: '菜单将被重置,确定修改吗?',
          onOk() {
            _card.oriuuid = _card.uuid
            _card.uuid = Utils.getuuid()
            _this.setState({ visible: false, card: _card })
            _this.props.updateElement(_card)
          },
          onCancel() {}
        })
      } else {
        delete _card.isnew
        this.setState({ visible: false, card: _card })
        this.props.updateElement(_card)
      }
    })
  }
  cancel = () => {
    const { card } = this.state
    if (card.isnew) {
      let _card = fromJS(card).toJS()
      delete _card.isnew
      this.setState({ visible: false, card: _card })
      this.setState({ card: _card })
      this.props.updateElement(_card)
    }
  }
  getSettingForms = () => {
    const { card } = this.state
    return getSettingForm(card.setting)
  }
  updateSetting = (res, resolve) => {
    const { card } = this.state
    let _card = {...card, setting: res}
    if (!card.isnew && card.setting.type === 'menu' && _card.setting.type !== 'menu') {
      const _this = this
      confirm({
        content: '菜单将被重置,确定修改吗?',
        onOk() {
          _card.oriuuid = _card.uuid
          _card.uuid = Utils.getuuid()
          _this.setState({ card: _card })
          _this.props.updateElement(_card)
          resolve()
        },
        onCancel() {}
      })
    } else {
      this.setState({ visible: false })
      delete _card.isnew
      this.setState({ card: _card })
      this.props.updateElement(_card)
      resolve()
    }
  }
@@ -149,8 +139,8 @@
  }
  render() {
    const { cards, offset } = this.props
    const { card, visible, dict } = this.state
    const { offset } = this.props
    const { card } = this.state
    let _style = {...card.style}
@@ -160,7 +150,9 @@
      <Col span={card.setting.width || 6} offset={offset || 0}>
        <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
          <div className="mk-popover-control">
            <Icon className="edit" title="编辑" type="edit" onClick={() => this.setState({visible: true})} />
            <NormalForm title="菜单编辑" width={900} check update={this.updateSetting} getForms={this.getSettingForms} cancel={this.cancel}>
              <Icon type="edit" style={{color: '#1890ff'}} title="编辑"/>
            </NormalForm>
            <CopyComponent type="menucell" card={card}/>
            <Icon className="style" title="调整样式" onClick={this.changeStyle} type="font-colors" />
            <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
@@ -188,25 +180,6 @@
            <div className="menu-name">{card.setting.name}</div>
          </div>
        </Popover>
        <Modal
          wrapClassName="popview-modal"
          title={'菜单设置'}
          visible={visible}
          width={900}
          maskClosable={false}
          okText={dict['model.submit']}
          onOk={this.settingSubmit}
          onCancel={this.cancel}
          destroyOnClose
        >
          <SettingForm
            dict={dict}
            cards={cards}
            setting={card.setting}
            inputSubmit={this.settingSubmit}
            wrappedComponentRef={(inst) => this.settingRef = inst}
          />
        </Modal>
      </Col>
    )
  }