2022-04-21 18:20:39 +08:00
|
|
|
<script lang="ts" setup>
|
2024-11-21 21:03:09 +08:00
|
|
|
import { useSettingsStore } from "@/pinia/stores/settings"
|
2024-11-27 10:17:30 +08:00
|
|
|
import { useDevice } from "@@/composables/useDevice"
|
|
|
|
import { useLayoutMode } from "@@/composables/useLayoutMode"
|
|
|
|
import { useWatermark } from "@@/composables/useWatermark"
|
2024-11-27 10:31:51 +08:00
|
|
|
import { getCssVar, setCssVar } from "@@/utils/css"
|
2024-11-18 19:40:44 +08:00
|
|
|
import { storeToRefs } from "pinia"
|
|
|
|
import { RightPanel, Settings } from "./components"
|
2024-11-25 17:26:27 +08:00
|
|
|
import { useResize } from "./composables/useResize"
|
2024-11-26 11:42:24 +08:00
|
|
|
import LeftMode from "./modes/LeftMode.vue"
|
|
|
|
import LeftTopMode from "./modes/LeftTopMode.vue"
|
|
|
|
import TopMode from "./modes/TopMode.vue"
|
2023-07-06 13:02:52 +08:00
|
|
|
|
2024-11-19 20:14:23 +08:00
|
|
|
// Layout 布局响应式
|
2023-07-06 13:02:52 +08:00
|
|
|
useResize()
|
2022-04-21 18:20:39 +08:00
|
|
|
|
2024-02-06 13:39:56 +08:00
|
|
|
const { setWatermark, clearWatermark } = useWatermark()
|
|
|
|
const { isMobile } = useDevice()
|
2024-02-06 15:25:16 +08:00
|
|
|
const { isLeft, isTop, isLeftTop } = useLayoutMode()
|
2022-04-21 18:20:39 +08:00
|
|
|
const settingsStore = useSettingsStore()
|
2024-11-14 16:29:59 +08:00
|
|
|
const { showSettings, showTagsView, showWatermark } = storeToRefs(settingsStore)
|
2022-12-08 18:06:01 +08:00
|
|
|
|
2024-11-18 19:40:44 +08:00
|
|
|
// #region 隐藏标签栏时删除其高度,是为了让 Logo 组件高度和 Header 区域高度始终一致
|
2024-11-12 13:06:33 +08:00
|
|
|
const cssVarName = "--v3-tagsview-height"
|
|
|
|
const v3TagsviewHeight = getCssVar(cssVarName)
|
2023-07-06 13:02:52 +08:00
|
|
|
watchEffect(() => {
|
2024-11-12 13:06:33 +08:00
|
|
|
showTagsView.value ? setCssVar(cssVarName, v3TagsviewHeight) : setCssVar(cssVarName, "0px")
|
2023-07-06 13:02:52 +08:00
|
|
|
})
|
2024-11-18 19:40:44 +08:00
|
|
|
// #endregion
|
2023-08-31 17:28:05 +08:00
|
|
|
|
2024-11-19 20:14:23 +08:00
|
|
|
// 开启或关闭系统水印
|
2023-08-31 17:28:05 +08:00
|
|
|
watchEffect(() => {
|
|
|
|
showWatermark.value ? setWatermark(import.meta.env.VITE_APP_TITLE) : clearWatermark()
|
|
|
|
})
|
2022-04-21 18:20:39 +08:00
|
|
|
</script>
|
|
|
|
|
2022-04-22 12:47:04 +08:00
|
|
|
<template>
|
2024-11-14 16:29:59 +08:00
|
|
|
<div>
|
2023-07-06 13:02:52 +08:00
|
|
|
<!-- 左侧模式 -->
|
2024-02-06 15:25:16 +08:00
|
|
|
<LeftMode v-if="isLeft || isMobile" />
|
2023-07-18 11:14:07 +08:00
|
|
|
<!-- 顶部模式 -->
|
2024-02-06 15:25:16 +08:00
|
|
|
<TopMode v-else-if="isTop" />
|
2023-07-06 13:02:52 +08:00
|
|
|
<!-- 混合模式 -->
|
2024-02-06 15:25:16 +08:00
|
|
|
<LeftTopMode v-else-if="isLeftTop" />
|
2023-07-06 13:02:52 +08:00
|
|
|
<!-- 右侧设置面板 -->
|
|
|
|
<RightPanel v-if="showSettings">
|
|
|
|
<Settings />
|
|
|
|
</RightPanel>
|
2022-04-22 12:47:04 +08:00
|
|
|
</div>
|
|
|
|
</template>
|