|
|
@@ -5,9 +5,10 @@ import { Layout } from 'antd';
|
|
|
import Header from './components/Header';
|
|
|
import Nav from './components/Nav';
|
|
|
import Breadcrumb from './components/Breadcrumb';
|
|
|
+import EntryModal from './components/EntryModal';
|
|
|
import store from './store';
|
|
|
+import LocalStorage from '@/LocalStorage';
|
|
|
import './style.less';
|
|
|
-import router from '@/router';
|
|
|
|
|
|
const { Content } = Layout;
|
|
|
|
|
|
@@ -44,31 +45,25 @@ const LayoutApp: React.FC = () => {
|
|
|
init(list);
|
|
|
}, [matches]);
|
|
|
|
|
|
+ const currentMenuType = LocalStorage.getMenuType();
|
|
|
+ const [entryModalOpen, setEntryModalOpen] = React.useState(false);
|
|
|
+
|
|
|
React.useEffect(() => {
|
|
|
+ if (currentMenuType === 0) {
|
|
|
+ setEntryModalOpen(true);
|
|
|
+ }
|
|
|
return () => reset();
|
|
|
}, []);
|
|
|
|
|
|
// 统一管理菜单类型状态
|
|
|
- const [menuType, setMenuType] = React.useState(() => {
|
|
|
- const currentPath = window.location.pathname;
|
|
|
- return currentPath.startsWith('/deepseek') ? 1 : 2;
|
|
|
- });
|
|
|
-
|
|
|
- // 监听路由变化,同步菜单类型
|
|
|
- React.useEffect(() => {
|
|
|
- const type = location.pathname.startsWith('/deepseek') ? 1 : 2;
|
|
|
- setMenuType(type);
|
|
|
- }, [location.pathname]);
|
|
|
+ const [menuType, setMenuType] = React.useState(currentMenuType || (location.pathname.startsWith('/deepseek') ? 1 : 2));
|
|
|
|
|
|
// 处理菜单类型变化
|
|
|
const handleSelectChange = (value: number) => {
|
|
|
- const defaultPath = value === 1
|
|
|
- ? '/deepseek/questionAnswer'
|
|
|
- : '/questionAnswer';
|
|
|
-
|
|
|
+ setMenuType(value);
|
|
|
+ const defaultPath = value === 1 ? '/deepseek/questionAnswer' : '/questionAnswer';
|
|
|
// 使用navigate进行路由跳转
|
|
|
navigate(defaultPath);
|
|
|
-
|
|
|
// 同时更新selectedKey
|
|
|
onChangeSelectedKey(defaultPath, 1);
|
|
|
};
|
|
|
@@ -78,7 +73,7 @@ const LayoutApp: React.FC = () => {
|
|
|
const path = location.pathname;
|
|
|
const type = path.startsWith('/deepseek') ? 1 : 2;
|
|
|
setMenuType(type);
|
|
|
-
|
|
|
+
|
|
|
// 确保selectedKey与当前路由同步
|
|
|
if (path !== selectedKey) {
|
|
|
onChangeSelectedKey(path, 1);
|
|
|
@@ -95,19 +90,16 @@ const LayoutApp: React.FC = () => {
|
|
|
currentMenuType={menuType}
|
|
|
/>
|
|
|
</div>
|
|
|
-
|
|
|
<Layout>
|
|
|
- {
|
|
|
- <Nav
|
|
|
- selectedKey={selectedKey}
|
|
|
- onChangeSelectedKey={onChangeSelectedKey}
|
|
|
- openKeys={openKeys}
|
|
|
- onOpenChange={onOpenChange}
|
|
|
- collapsed={collapsed}
|
|
|
- onClickCollapsed={onClickCollapsed}
|
|
|
- menuType={menuType} // 新增 prop
|
|
|
- />
|
|
|
- }
|
|
|
+ <Nav
|
|
|
+ selectedKey={selectedKey}
|
|
|
+ onChangeSelectedKey={onChangeSelectedKey}
|
|
|
+ openKeys={openKeys}
|
|
|
+ onOpenChange={onOpenChange}
|
|
|
+ collapsed={collapsed}
|
|
|
+ onClickCollapsed={onClickCollapsed}
|
|
|
+ menuType={menuType}
|
|
|
+ />
|
|
|
<Layout>
|
|
|
{
|
|
|
location.pathname === '/404' ?
|
|
|
@@ -120,6 +112,17 @@ const LayoutApp: React.FC = () => {
|
|
|
</Content>
|
|
|
</Layout>
|
|
|
</Layout>
|
|
|
+ {
|
|
|
+ entryModalOpen &&
|
|
|
+ <EntryModal
|
|
|
+ open={entryModalOpen}
|
|
|
+ onClickConfirm={(type) => {
|
|
|
+ handleSelectChange(type);
|
|
|
+ setEntryModalOpen(false);
|
|
|
+ LocalStorage.setMenuType(type);
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ }
|
|
|
</Layout>
|
|
|
);
|
|
|
};
|