From e543372cc70a19ff2630c79d8421c2c593e54e5f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 02 六月 2021 17:15:21 +0800 Subject: [PATCH] 2021-06-02 --- src/pc/components/navbar/normal-navbar/index.jsx | 100 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 72 insertions(+), 28 deletions(-) diff --git a/src/pc/components/navbar/normal-navbar/index.jsx b/src/pc/components/navbar/normal-navbar/index.jsx index a67fe8e..6978c0b 100644 --- a/src/pc/components/navbar/normal-navbar/index.jsx +++ b/src/pc/components/navbar/normal-navbar/index.jsx @@ -1,23 +1,20 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Icon, Popover } from 'antd' +import { Icon, Popover, Menu, Button } from 'antd' import asyncIconComponent from '@/utils/asyncIconComponent' import MKEmitter from '@/utils/events.js' -// import Utils from '@/utils/utils.js' import zhCN from '@/locales/zh-CN/model.js' import enUS from '@/locales/en-US/model.js' import './index.scss' const WrapComponent = asyncIconComponent(() => import('./wrapsetting')) const MenuComponent = asyncIconComponent(() => import('./menusetting')) -// const CardComponent = asyncComponent(() => import('../cardcomponent')) -const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent')) -const UserComponent = asyncIconComponent(() => import('@/menu/components/share/usercomponent')) +const LinkComponent = asyncIconComponent(() => import('./linksetting')) -// const { confirm } = Modal +const { SubMenu } = Menu class NormalNavbar extends Component { static propTpyes = { @@ -102,22 +99,6 @@ this.props.updateConfig(component) } - /** - * @description 鍗曚釜鍗$墖淇℃伅鏇存柊 - */ - updateCard = (cell) => { - let card = fromJS(this.state.card).toJS() - - card.subcards = card.subcards.map(item => { - if (item.uuid === cell.uuid) return cell - return item - }) - - this.setState({card}) - - this.props.updateConfig(card) - } - getStyle = (comIds, style) => { const { card } = this.state @@ -140,7 +121,7 @@ changeStyle = () => { const { card } = this.state - MKEmitter.emit('changeStyle', [card.uuid], ['background', 'shadow'], card.style) + MKEmitter.emit('changeStyle', [card.uuid], ['font', 'background', 'shadow'], card.style) } changeLogoStyle = () => { @@ -156,6 +137,28 @@ } } + changeMenu = (menu) => { + 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, + MenuName: menu.name, + }) + } + + changeLogoMenu = () => { + const { card } = this.state + + if (!card.wrap.logolink) return + + MKEmitter.emit('changeEditMenu', {MenuID: card.wrap.logolink}) + } + render() { const { card } = this.state @@ -169,10 +172,9 @@ <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} /> - <CopyComponent type="normalnarbar" card={card}/> <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> - <UserComponent config={card}/> <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} /> </div> } trigger="hover"> @@ -184,10 +186,52 @@ <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeLogoStyle} type="font-colors" /> </div> } trigger="hover"> - <div className="logo" style={card.logoStyle}><img src={card.wrap.logo} alt=""/></div> + <div className={'logo' + (card.wrap.logolink ? ' pointer' : '')} style={card.logoStyle} onDoubleClick={this.changeLogoMenu}><img src={card.wrap.logo} alt=""/></div> </Popover> : null} - <div className="menu">sdf</div> - <div className="link">asdfds</div> + <div className="menu"> + <Menu mode="horizontal"> + {card.menus.map(fst => { + if (fst.property === 'classify' && fst.sublist.length > 0) { + return ( + <SubMenu title={fst.name} key={fst.MenuID} popupClassName="normal-navbar-submenu"> + {fst.sublist.map(scd => { + if (scd.property === 'classify' && scd.sublist.length > 0) { + return ( + <Menu.ItemGroup key={scd.MenuID} title={scd.name}> + {scd.sublist.map(thd => { + return ( + <Menu.Item key={thd.MenuID} > + <span onClick={(e) => e.stopPropagation()} onDoubleClick={() => this.changeMenu(thd)}>{thd.name}</span> + </Menu.Item> + ) + })} + </Menu.ItemGroup> + ) + } else { + return ( + <Menu.Item key={scd.MenuID} onClick={(e) => e.stopPropagation()}> + <span onClick={(e) => e.stopPropagation()} onDoubleClick={() => this.changeMenu(scd)}>{scd.name}</span> + </Menu.Item> + ) + } + })} + </SubMenu> + ) + } else { + return ( + <Menu.Item key={fst.MenuID}> + <span onClick={(e) => e.stopPropagation()} onDoubleClick={() => this.changeMenu(fst)}>{fst.name}</span> + </Menu.Item> + ) + } + })} + </Menu> + </div> + <div className="link"> + {card.links.map(link => { + return <Button type="link" key={link.MenuID} onDoubleClick={() => this.changeMenu(link)}>{link.name}</Button> + })} + </div> </div> </div> ) -- Gitblit v1.8.0