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