king
2022-10-14 74e5d38d9a0e94421ceceea37c4677e5b57364ba
src/pc/components/navbar/normal-navbar/index.jsx
@@ -1,13 +1,11 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { is, fromJS } from 'immutable'
import { Icon, Popover, Menu, Button } from 'antd'
import { Popover, Menu, Button } from 'antd'
import { EditOutlined, FontColorsOutlined, DeleteOutlined, ToolOutlined } from '@ant-design/icons'
import asyncIconComponent from '@/utils/asyncIconComponent'
import MKEmitter from '@/utils/events.js'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
import getWrapForm from './options'
import './index.scss'
@@ -25,7 +23,6 @@
  }
  state = {
    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    card: null,
    back: false
  }
@@ -37,11 +34,9 @@
      let _card = {
        uuid: card.uuid,
        type: card.type,
        floor: card.floor,
        dataName: card.dataName || '',
        name: card.name,
        subtype: card.subtype,
        wrap: { name: card.name, width: card.width || 1200 },
        wrap: { name: card.name, width: card.width || 1200, height: 50 },
        logoStyle: { width: '100px' },
        style: { },
        links: [],
@@ -67,10 +62,6 @@
    }
  }
  componentDidMount () {
    MKEmitter.addListener('submitStyle', this.getStyle)
  }
  shouldComponentUpdate (nextProps, nextState) {
    return !is(fromJS(this.state), fromJS(nextState))
  }
@@ -82,7 +73,6 @@
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('submitStyle', this.getStyle)
  }
  
  /**
@@ -98,17 +88,18 @@
    this.props.updateConfig(component)
  }
  getStyle = (comIds, style) => {
    const { card } = this.state
  getStyle = (style) => {
    let _card = {...this.state.card, style}
    if (comIds[0] !== card.uuid) return
    this.setState({
      card: _card
    })
    this.props.updateConfig(_card)
  }
    let _card = {...card}
    if (comIds.length === 1) {
      _card = {...card, style}
    } else if (comIds[1] === 'logo') {
      _card = {...card, logoStyle: style}
    }
  getLogoStyle = (style) => {
    let _card = {...this.state.card, logoStyle: style}
    this.setState({
      card: _card
@@ -120,13 +111,13 @@
  changeStyle = () => {
    const { card } = this.state
    MKEmitter.emit('changeStyle', [card.uuid], ['font', 'background', 'shadow'], card.style)
    MKEmitter.emit('changeStyle', ['font', 'background', 'shadow'], card.style, this.getStyle)
  }
  changeLogoStyle = () => {
    const { card } = this.state
    MKEmitter.emit('changeStyle', [card.uuid, 'logo'], ['width', 'margin'], card.logoStyle)
    MKEmitter.emit('changeStyle', ['width', 'margin'], card.logoStyle, this.getLogoStyle)
  }
  clickComponent = (e) => {
@@ -144,7 +135,8 @@
    MKEmitter.emit('changeEditMenu', {
      MenuID: menu.property === 'linkmenu' ? menu.linkMenuId : menu.MenuID,
      copyMenuId: menu.property === 'menu' ? menu.copyMenuId : '',
      MenuNo: menu.MenuNo,
      clearMenu: menu.clearMenu || 'true',
      // MenuNo: menu.MenuNo,
      MenuName: menu.name,
    })
  }
@@ -156,7 +148,7 @@
      MKEmitter.emit('changeEditMenu', {
        MenuID: card.wrap.linkmenu,
        copyMenuId: '',
        MenuNo: '',
        // MenuNo: '',
        MenuName: ''
      })
    }
@@ -182,18 +174,18 @@
            <MenuComponent config={card} updateConfig={this.updateComponent} />
            <LinkComponent config={card} updateConfig={this.updateComponent} />
            <NormalForm title="导航栏设置" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
              <Icon type="edit" style={{color: '#1890ff'}} title="编辑"/>
              <EditOutlined style={{color: '#1890ff'}} title="编辑"/>
            </NormalForm>
            <Icon className="style" title="调整样式" onClick={this.changeStyle} type="font-colors" />
            <Icon className="close" title="删除组件" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
            <FontColorsOutlined className="style" title="调整样式" onClick={this.changeStyle}/>
            <DeleteOutlined className="close" title="删除组件" onClick={() => this.props.deletecomponent(card.uuid)} />
          </div>
        } trigger="hover">
          <Icon type="tool" />
          <ToolOutlined />
        </Popover>
        <div className="navbar-wrap" style={{width: card.wrap.width + 'px', height: card.wrap.height + 'px', lineHeight: card.wrap.height + 'px'}}>
          {card.wrap.logo ? <Popover overlayClassName="mk-popover-control-wrap top-menu-popover" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
            <div className="mk-popover-control">
              <Icon className="style" title="调整样式" onClick={this.changeLogoStyle} type="font-colors" />
              <FontColorsOutlined className="style" title="调整样式" onClick={this.changeLogoStyle}/>
            </div>
          } trigger="hover">
            <div className={'logo' + (card.wrap.logolink ? ' pointer' : '')} style={card.logoStyle} onDoubleClick={this.changeLogoMenu}><img src={card.wrap.logo} alt=""/></div>