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