wujingjing
2025-04-09 dd58c1d3a27ba48a5df050aab7c586bb9b988914
activeTopMenuStyle
已修改3个文件
51 ■■■■ 文件已修改
src/layout/component/header/Header.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/stores/chatRoom.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vite.config.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/component/header/Header.vue
@@ -2,19 +2,10 @@
    <div class="top_text flex justify-between px-6 items-center pl-[unset] pr-6">
        <div class="flex-items-center h-full">
            <div class="nav-menu">
                <router-link :to="firstToPath" class="nav-item" active-class="active">
                <router-link v-for="item in menuList" :to="item.path" :key="item.label" class="nav-item" active-class="active">
                    <i class="icon-park-outline-robot"></i>
                    智能助手
                    {{ item.label }}
                </router-link>
                <router-link to="/workspace/situation" class="nav-item" active-class="active">
                    <i class="icon-park-outline-workbench"></i>
                    个人工作台
                </router-link>
                <!-- <router-link to="/gis/situation" class="nav-item" active-class="active">
                    <i class="icon-park-outline-system"></i>
                    GIS系统
                </router-link> -->
            </div>
        </div>
        <el-dialog
@@ -66,7 +57,7 @@
import { systemNotifyList } from '/@/api/ai/chat';
import router from '/@/router';
import pinia from '/@/stores';
import { activeChatRoom, activeRoomId, isSharePage, newChatRoomClick } from '/@/stores/chatRoom';
import { activeChatRoom, activeRoomId, activeTopMenuStyle, isSharePage, newChatRoomClick, TopMenuStyle } from '/@/stores/chatRoom';
import { useThemeConfig } from '/@/stores/themeConfig';
import emitter from '/@/utils/mitt';
import { userInfoKey } from '/@/utils/request';
@@ -80,6 +71,32 @@
    announcementContent: '',
    announcementTime: '',
});
const menuList = computed(() => {
    const smartAssistant = {
        path: firstToPath.value,
        label: '智能助手',
    };
    const personalWorkbench = {
        path: '/workspace/situation',
        label: '个人工作台',
    };
    const gis = {
        path: '/gis/situation',
        label: 'GIS系统',
    };
    switch (activeTopMenuStyle.value) {
        case TopMenuStyle.Normal:
            return [smartAssistant, personalWorkbench];
        case TopMenuStyle.Gis:
            return [smartAssistant, gis];
        default:
            return [smartAssistant];
    }
});
const firstToPath = computed(() => {
    if (!activeChatRoom.value)
        return {
src/stores/chatRoom.ts
@@ -304,3 +304,11 @@
    isLoginStatus.value = false;
    LoginInfo.remove();
};
/** @description 顶部菜单布局方式 */
export const enum TopMenuStyle {
    Normal = 'normal',
    Gis = 'gis',
}
export const activeTopMenuStyle = ref<TopMenuStyle>(TopMenuStyle.Normal);
vite.config.ts
@@ -58,7 +58,7 @@
            host: '0.0.0.0',
            port: env.VITE_PORT as unknown as number,
            open: JSON.parse(env.VITE_OPEN),
            hmr: true,
            hmr: false,
            proxy: {
                '/events': {
                    target: 'http://localhost:3000',