wujingjing
2025-04-02 a040c54c99825755c0b210c5dca39898b68e3db1
src/layout/component/main.vue
@@ -7,22 +7,29 @@
         ref="layoutMainScrollbarRef"
         class="layout-main-scroll layout-backtop-header-fixed"
         wrap-class="layout-main-scroll  flex"
         view-class="layout-main-scroll bg-[#1c1e1d]  flex h100 w-full"
         view-class="layout-main-scroll bg-[var(--color-bg-side)]  flex h100 w-full"
      >
         <SideBar v-if="!isSharePage && sidebarIsShow" :isShow="sidebarIsShow" @toggleSidebar="toggleSidebar"/>
         <WorkSpaceMenu v-show="isWorkSpace" />
         <div v-show="isAskAnswer || isHome">
            <SideBar v-if="!isSharePage && sidebarIsShow" :isShow="sidebarIsShow" @toggleSidebar="toggleSidebar" />
            <!-- <SidebarOther v-if="!isSharePage && !sidebarIsShow" :isShow="!sidebarIsShow" @toggleSidebar="toggleSidebar" /> -->
         </div>
         <GisMenu v-show="isGis" />
         <div
            class="flex-auto flex-col flex right-container"
            :class="{
               // 'm-[6px]': !isSharePage,
               // 'rounded-[10px]': !isSharePage,
               'bg-[#1c1e1d]': !isSharePage,
               'bg-[var(--color-bg-side)]': !isSharePage,
               'bg-[#f7f8fa]': isSharePage,
            }"
         >
            <Header v-if="!isSharePage" class="flex-0" @toggleSidebar="toggleSidebar" :sidebarIsShow="sidebarIsShow"/>
            <Header v-if="!isSharePage" class="flex-0" :sidebarIsShow="sidebarIsShow" />
            <ShareHeader v-else class="flex-0"></ShareHeader>
            <LayoutParentView class="flex-auto" />
         </div>
         <Login v-show="isShowLogin" />
      </el-scrollbar>
      <el-backtop :target="setBacktopClass" />
   </el-main>
@@ -34,17 +41,35 @@
import { useRoute } from 'vue-router';
import Header from './header/Header.vue';
import ShareHeader from './header/ShareHeader.vue';
import { selectFirstRoom, sidebarIsShow, toggleSidebar } from '/@/stores/chatRoom';
import Login from './login/Login.vue';
import SideBar from './sidebar/Sidebar.vue';
import SidebarOther from './sidebar/SidebarOther.vue';
import { isSharePage, isShowLogin } from '/@/stores/chatRoom';
import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
import { useThemeConfig } from '/@/stores/themeConfig';
import { NextLoading } from '/@/utils/loading';
import { isSharePage } from '/@/stores/chatRoom';
import { Local } from '/@/utils/storage';
import WorkSpaceMenu from './sidebar/WorkSpaceMenu.vue';
import GisMenu from './sidebar/GisMenu.vue';
import router from '/@/router/index';
// 引入组件
const LayoutParentView = defineAsyncComponent(() => import('/@/layout/routerView/parent.vue'));
const LayoutFooter = defineAsyncComponent(() => import('/@/layout/footer/index.vue'));
const isWorkSpace = computed(() => {
   return router.currentRoute.value.path.startsWith('/workspace');
});
const isAskAnswer = computed(() => {
   return router.currentRoute.value.path.startsWith('/ask_answer');
});
const isHome = computed(() => {
   return router.currentRoute.value.path.startsWith('/home');
});
const isGis = computed(() => {
   return router.currentRoute.value.path.startsWith('/gis');
});
// 定义变量内容
const layoutMainScrollbarRef = ref();
const route = useRoute();
@@ -52,7 +77,6 @@
const storesThemeConfig = useThemeConfig();
const { themeConfig } = storeToRefs(storesThemeConfig);
const { isTagsViewCurrenFull } = storeToRefs(storesTagsViewRoutes);
// 设置 footer 显示/隐藏
const isFooter = computed(() => {
   return themeConfig.value.isFooter && !route.meta.isIframe;
@@ -76,6 +100,7 @@
// 页面加载前
onMounted(() => {
   NextLoading.done(600);
   selectFirstRoom();
});
// 暴露变量
@@ -84,11 +109,10 @@
});
//#region ====================== 侧边栏显示隐藏 ======================
const sidebarIsShow = ref(!!Local.get('sidebarIsShow'));
const toggleSidebar = (val) => {
   sidebarIsShow.value = val;
   Local.set('sidebarIsShow',val)
};
// const sidebarIsShow = ref( true);
// const toggleSidebar = (val) => {
//    sidebarIsShow.value = val;
// };
//#endregion
</script>