From e8edfdadb561cd83bf6e1c3e00d55b8cc2aee6d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 17 十月 2022 17:57:34 +0800 Subject: [PATCH] 2022-10-17 --- src/mob/components/menubar/normal-menubar/menucomponent/index.jsx | 100 +++++++++++++++++++------------------------------- 1 files changed, 38 insertions(+), 62 deletions(-) diff --git a/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx b/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx index a4e5882..53aa073 100644 --- a/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx +++ b/src/mob/components/menubar/normal-menubar/menucomponent/index.jsx @@ -1,22 +1,22 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Modal, Popover, Icon, Col } from 'antd' +import { Popover, Col } from 'antd' +import { SwapOutlined, ArrowLeftOutlined, ArrowRightOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined, RightOutlined } from '@ant-design/icons' import asyncIconComponent from '@/utils/asyncIconComponent' import Utils from '@/utils/utils.js' import getSettingForm from './options' import { resetStyle } from '@/utils/utils-custom.js' +import MkIcon from '@/components/mk-icon' 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 = { - offset: PropTypes.any, // 鍋忕Щ閲� cards: PropTypes.object, // 鍗$墖琛岄厤缃俊鎭� card: PropTypes.object, // 鍗$墖閰嶇疆淇℃伅 move: PropTypes.func, // 鍗$墖绉诲姩 @@ -36,10 +36,6 @@ }) } - componentDidMount () { - MKEmitter.addListener('submitStyle', this.getStyle) - } - shouldComponentUpdate (nextProps, nextState) { return !is(fromJS(this.state), fromJS(nextState)) } @@ -51,14 +47,10 @@ this.setState = () => { return } - MKEmitter.removeListener('submitStyle', this.getStyle) } - getStyle = (comIds, style) => { - const { cards } = this.props + getStyle = (style) => { const { card } = this.state - - if (comIds.length !== 2 || comIds[0] !== cards.uuid || comIds[1] !== card.uuid) return let _card = fromJS(card).toJS() _card.style = style @@ -71,56 +63,32 @@ } changeStyle = () => { - const { cards } = this.props const { card } = this.state let _style = card.style ? fromJS(card.style).toJS() : {} - let options = ['font', 'border', 'padding'] + let options = ['font', 'border', 'padding', 'margin', 'background'] - MKEmitter.emit('changeStyle', [cards.uuid, card.uuid], options, _style) - } - - cancel = () => { - const { card } = this.state - - if (card.isnew) { - let _card = fromJS(card).toJS() - delete _card.isnew - - this.setState({ card: _card }) - this.props.updateElement(_card) - } + MKEmitter.emit('changeStyle', options, _style, this.getStyle) } getSettingForms = () => { + const { cards } = this.props const { card } = this.state - return getSettingForm(card.setting) + return getSettingForm(card.setting, cards.columns || []) } - updateSetting = (res, resolve) => { + updateSetting = (res) => { 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 { - delete _card.isnew - this.setState({ card: _card }) - this.props.updateElement(_card) - resolve() + if (card.setting.type === 'menu' && _card.setting.type !== 'menu') { + _card.oriuuid = _card.uuid + _card.uuid = Utils.getuuid() } + + this.setState({ card: _card }) + this.props.updateElement(_card) } changeMenu = () => { @@ -132,14 +100,14 @@ MKEmitter.emit('changeEditMenu', { MenuID: card.setting.type === 'linkmenu' ? card.setting.linkMenuId : card.uuid, copyMenuId: card.setting.type === 'menu' ? card.setting.copyMenuId : '', - MenuNo: card.setting.MenuNo || '', + clearMenu: card.setting.clearMenu || 'true', + // MenuNo: card.setting.MenuNo || '', MenuName: card.setting.name, }) } } render() { - const { offset } = this.props const { card } = this.state let _style = {...card.style} @@ -147,37 +115,45 @@ _style = resetStyle(_style) return ( - <Col span={card.setting.width || 6} offset={offset || 0}> + <Col span={card.setting.width || 6}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <NormalForm title="鑿滃崟缂栬緫" width={900} check update={this.updateSetting} getForms={this.getSettingForms} cancel={this.cancel}> - <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/> + <NormalForm title="鑿滃崟缂栬緫" width={900} update={this.updateSetting} getForms={this.getSettingForms}> + <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="menucell" card={card}/> - <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" /> + <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <Icon className="plus" title="宸︾Щ" type="arrow-left" onClick={() => this.props.move(card, 'left')} /> - <Icon className="close" title="鍙崇Щ" type="arrow-right" onClick={() => this.props.move(card, 'right')} /> + <ArrowLeftOutlined className="plus" title="宸︾Щ" onClick={() => this.props.move(card, 'left')} /> + <ArrowRightOutlined className="close" title="鍙崇Щ" onClick={() => this.props.move(card, 'right')} /> </div> } trigger="hover" getPopupContainer={() => document.getElementById(card.uuid + 'swap')}> - <Icon type="swap" id={card.uuid + 'swap'}/> + <SwapOutlined id={card.uuid + 'swap'}/> </Popover> - <Icon className="close" title="鍒犻櫎鑿滃崟" type="delete" onClick={() => this.props.deleteElement(card)} /> + <DeleteOutlined className="close" title="鍒犻櫎鑿滃崟" onClick={() => this.props.deleteElement(card)} /> </div> } trigger="hover"> <div className="menu-item" onDoubleClick={() => this.changeMenu()} style={_style}> {card.setting.sign === 'icon' ? <div className="menu-sign"> - <Icon style={{ + <MkIcon style={{ fontSize: card.setting.iconFont || 20, padding: card.setting.padding, background: card.setting.background, - color: card.setting.color - }} type={card.setting.icon}/> + color: card.setting.color, + borderRadius: card.setting.borderRadius || '15%', + opacity: !card.setting.icon ? 0 : 1 + }} type={card.setting.icon || 'cloud'}/> + {card.setting.tip ? <sup className="am-badge-text"></sup> : null} </div> : <div className="menu-sign"> - <img style={{width: card.setting.imgWidth, height: card.setting.imgWidth}} src={card.setting.url} alt=""/> + <img style={{width: card.setting.imgWidth, height: card.setting.imgWidth, borderRadius: card.setting.borderRadius || '15%'}} src={card.setting.url} alt=""/> + {card.setting.tip ? <sup className="am-badge-text"></sup> : null} </div>} - <div className="menu-name">{card.setting.name}</div> + <div className="menu-name" style={{opacity: !card.setting.name ? 0 : 1}}>{card.setting.name || '鏄庣'}</div> + <RightOutlined className="menu-right" /> + {!card.setting.name || (card.setting.type === 'linkmenu' && card.setting.linkMenuId === '') ? <NormalForm title="鑿滃崟缂栬緫" width={900} update={this.updateSetting} cancel={() => this.props.deleteElement(card, 'direct')} getForms={this.getSettingForms}> + <span id={card.uuid}></span> + </NormalForm> : null} </div> </Popover> </Col> -- Gitblit v1.8.0