UnisKB/ui/src/layout/layout-template/MainLayout.vue

41 lines
1.1 KiB
Vue
Raw Normal View History

2025-04-28 07:23:25 +00:00
<template>
<div class="app-layout">
2025-06-20 19:55:48 +00:00
<div class="app-header" :class="!isDefaultTheme ? 'custom-header' : ''">
<SystemHeader v-if="isShared"></SystemHeader>
<UserHeader v-else />
2025-04-28 10:14:16 +00:00
</div>
2025-04-28 07:23:25 +00:00
<div class="app-main">
2025-04-30 06:53:42 +00:00
<layout-container>
<template #left>
2025-04-28 07:23:25 +00:00
<Sidebar />
2025-04-30 06:53:42 +00:00
</template>
2025-05-27 11:06:47 +00:00
<AppMain />
2025-04-30 06:53:42 +00:00
</layout-container>
2025-04-28 07:23:25 +00:00
</div>
</div>
</template>
<script setup lang="ts">
import { computed } from 'vue'
2025-04-28 10:14:16 +00:00
import UserHeader from '@/layout/layout-header/UserHeader.vue'
import SystemHeader from '@/layout/layout-header/SystemHeader.vue'
2025-04-28 10:14:16 +00:00
import Sidebar from '@/layout/components/sidebar/index.vue'
import AppMain from '@/layout/app-main/index.vue'
2025-04-28 07:23:25 +00:00
import useStore from '@/stores'
import { useRoute } from 'vue-router'
const route = useRoute()
2025-06-24 14:12:17 +00:00
const {
params: { folderId }, // id为knowledgeID
2025-07-02 14:41:33 +00:00
query: { type },
2025-06-24 14:12:17 +00:00
} = route as any
const isShared = computed(() => {
2025-07-02 14:41:33 +00:00
return folderId === 'shared' || type === 'systemShare'
})
2025-06-20 19:55:48 +00:00
const { theme } = useStore()
const isDefaultTheme = computed(() => {
return theme.isDefaultTheme()
})
2025-04-28 07:23:25 +00:00
</script>
<style lang="scss" scoped>
2025-04-30 06:53:42 +00:00
@use './index.scss';
2025-04-28 07:23:25 +00:00
</style>