From 2d704fb62459923206071b319f8423c3381145f8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 11 六月 2025 00:18:20 +0800 Subject: [PATCH] 2025-06-11 --- src/pc/components/navbar/normal-navbar/index.jsx | 97 +++++++++++++++++++++++------------------------- 1 files changed, 47 insertions(+), 50 deletions(-) diff --git a/src/pc/components/navbar/normal-navbar/index.jsx b/src/pc/components/navbar/normal-navbar/index.jsx index 6978c0b..c25dd43 100644 --- a/src/pc/components/navbar/normal-navbar/index.jsx +++ b/src/pc/components/navbar/normal-navbar/index.jsx @@ -1,16 +1,15 @@ 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' -const WrapComponent = asyncIconComponent(() => import('./wrapsetting')) +const NormalForm = asyncIconComponent(() => import('@/components/normalform')) const MenuComponent = asyncIconComponent(() => import('./menusetting')) const LinkComponent = asyncIconComponent(() => import('./linksetting')) @@ -24,7 +23,6 @@ } state = { - dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, card: null, back: false } @@ -36,12 +34,9 @@ let _card = { uuid: card.uuid, type: card.type, - floor: card.floor, - dataName: card.dataName || '', - width: card.width || 24, 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) } /** @@ -93,23 +83,23 @@ card: component }) - component.width = component.wrap.width component.name = component.wrap.name 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 @@ -121,69 +111,76 @@ 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) - } - - clickComponent = (e) => { - if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') { - e.stopPropagation() - MKEmitter.emit('clickComponent', this.state.card) - } + MKEmitter.emit('changeStyle', ['width', 'margin'], card.logoStyle, this.getLogoStyle) } changeMenu = (menu) => { - if (menu.property === 'link') { + if (menu.property === 'text') { + return + } else if (menu.property === 'link') { window.open(menu.link) return } MKEmitter.emit('changeEditMenu', { - fixed: menu.property === 'menu', 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, }) } changeLogoMenu = () => { const { card } = this.state + + if (card.wrap.property === 'linkmenu') { + MKEmitter.emit('changeEditMenu', { + MenuID: card.wrap.linkmenu, + copyMenuId: '', + // MenuNo: '', + MenuName: '' + }) + } + } - if (!card.wrap.logolink) return + getWrapForms = () => { + const { wrap } = this.state.card - MKEmitter.emit('changeEditMenu', {MenuID: card.wrap.logolink}) + return getWrapForm(wrap) + } + + updateWrap = (res) => { + this.updateComponent({...this.state.card, wrap: res}) } render() { const { card } = this.state - let _style = {...card.style} - if (_style.shadow) { - _style.boxShadow = '0 0 4px ' + _style.shadow - } - return ( - <div className="normal-navbar-edit-box" style={_style} onClick={this.clickComponent} id={card.uuid}> + <div className="normal-navbar-edit-box" style={card.style} id={card.uuid}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> <MenuComponent config={card} updateConfig={this.updateComponent} /> <LinkComponent config={card} updateConfig={this.updateComponent} /> - <WrapComponent config={card} updateConfig={this.updateComponent} /> - <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> - <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> + <NormalForm title="瀵艰埅鏍忚缃�" width={800} update={this.updateWrap} getForms={this.getWrapForms}> + <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> + </NormalForm> + <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> -- Gitblit v1.8.0