Ryuiso 3 týždňov pred
rodič
commit
36927404f8

+ 36 - 10
src/pages/layout/components/Header.tsx

@@ -35,14 +35,25 @@ const Header: React.FC<Props> = (props: Props) => {
         const handleProjectAppChange = (event: CustomEvent) => {
             setIsProjectAppActive(event.detail.isActive);
         };
-        
+
         window.addEventListener('projectAppActiveChange' as any, handleProjectAppChange);
-        
+
         return () => {
             window.removeEventListener('projectAppActiveChange' as any, handleProjectAppChange);
         };
     }, []);
 
+    // 监听路由变化,当离开项目级应用页面时清除 active 状态
+    React.useEffect(() => {
+        // 检查是否在项目级应用页面
+        const isProjectAppPage = location.pathname === '/deepseek/questionAnswer' &&
+                                 location.state?.selectProjectApp === true;
+
+        if (!isProjectAppPage && isProjectAppActive) {
+            setIsProjectAppActive(false);
+        }
+    }, [location, isProjectAppActive]);
+
     // const items: MenuProps['items'] = [
     //     // 移除退出登录选项,现在使用独立的登出按钮
     // ];
@@ -64,9 +75,9 @@ const Header: React.FC<Props> = (props: Props) => {
     };
 
     const handleProjectAppClick = () => {
-        navigate('/deepseek/questionAnswer', { 
+        navigate('/deepseek/questionAnswer', {
             state: { selectProjectApp: true },
-            replace: false 
+            replace: false
         });
     };
 
@@ -74,17 +85,17 @@ const Header: React.FC<Props> = (props: Props) => {
         <AntdHeader className='header'>
             <div className='header-logo'>
                 <img className='header-logo-picture' src={logoSrc} />
-                <div 
+                <div
                     className='header-logo-text'
                     onClick={handleLogoClick}
                     style={isHelp ? { cursor: 'pointer', userSelect: 'none' } : {}}
                 >
                     建科•小智应用广场
                 </div>
-                <Button 
-                    type="text" 
+                <Button
+                    type="text"
                     onClick={handleProjectAppClick}
-                    style={{ 
+                    style={{
                         marginLeft: '24px',
                         color: '#1890ff',
                         fontSize: '14px',
@@ -95,7 +106,7 @@ const Header: React.FC<Props> = (props: Props) => {
                 >
                     项目级应用
                 </Button>
-                {/* <Select 
+                {/* <Select
                     className='header-platform-selector'
                     open={open}
                     value={currentMenuType}
@@ -113,6 +124,21 @@ const Header: React.FC<Props> = (props: Props) => {
             </div>
             <div className='header-user-section'>
                 <div className='header-operation'>
+                    <Button
+                        type="text"
+                        href="https://llm.jkec.info:11432"
+                        target="_blank"
+                        style={{
+                            color: '#000000',
+                            fontSize: '14px',
+                            height: '32px',
+                            fontWeight: 500,
+                            marginRight: '24px'
+                        }}
+                        className='header-nav-button'
+                    >
+                        小智首页
+                    </Button>
                     <div className='header-operation-picture'>
                         {userName.slice(0, 1)}
                     </div>
@@ -142,4 +168,4 @@ const Header: React.FC<Props> = (props: Props) => {
     );
 };
 
-export default Header;
+export default Header;

+ 23 - 22
src/pages/layout/style.less

@@ -127,44 +127,45 @@
         transition: all 0.3s ease;
         position: relative;
         border-radius: 0 !important;
-        padding-bottom: 2px !important;
-        
+
         // 底部下划线(默认隐藏)
         &::after {
             content: '';
             position: absolute;
-            bottom: -20px;
+            bottom: -16px;
             left: 50%;
-            transform: translateX(-50%);
-            width: 0;
+            transform: translateX(-50%) scaleX(0);
+            width: 100%;
             height: 3px;
-            background-color: #1890ff;
-            transition: width 0.3s ease;
+            background-color: @primary-color;
+            transition: transform 0.3s ease;
             border-radius: 1.5px;
+            transform-origin: center;
         }
-        
-        // 选中状态
-        &.active {
+
+        // 悬停状态 - 显示蓝色下划线
+        &:hover {
             color: #000000 !important;
-            font-weight: 600;
-            
+            background: transparent !important;
+
             &::after {
-                width: 100%;
+                transform: translateX(-50%) scaleX(1);
+                opacity: 0.6;
             }
         }
-        
-        // 选中状态的 hover
-        &:not(.active):hover {
+
+        // 选中状态
+        &.active {
             color: #000000 !important;
-            background: transparent !important;
-            
+            font-weight: 600;
+
             &::after {
-                width: 100%;
-                background-color: rgba(24, 144, 255, 0.5);
+                transform: translateX(-50%) scaleX(1);
             }
         }
-        
-        &:not(.active):active {
+
+        // 点击状态 - 移除灰色背景
+        &:active {
             color: #000000 !important;
             background: transparent !important;
         }