mirror of
https://github.com/zclzone/vue-naive-admin.git
synced 2025-05-01 06:39:01 +08:00
refactor: 封装不同layout下的公用组件
This commit is contained in:
parent
c87f56814e
commit
b464c70ae3
@ -3,3 +3,4 @@ export { default as TheFooter } from './TheFooter.vue'
|
|||||||
export { default as AppPage } from './AppPage.vue'
|
export { default as AppPage } from './AppPage.vue'
|
||||||
export { default as CommonPage } from './CommonPage.vue'
|
export { default as CommonPage } from './CommonPage.vue'
|
||||||
export { default as LayoutSetting } from './LayoutSetting.vue'
|
export { default as LayoutSetting } from './LayoutSetting.vue'
|
||||||
|
export { default as ToggleTheme } from './ToggleTheme.vue'
|
||||||
|
13
src/layouts/components/Fullscreen.vue
Normal file
13
src/layouts/components/Fullscreen.vue
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<template>
|
||||||
|
<i
|
||||||
|
class="mr-16 cursor-pointer"
|
||||||
|
:class="isFullscreen ? 'i-fe:minimize' : 'i-fe:maximize'"
|
||||||
|
@click="toggle"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { useFullscreen } from '@vueuse/core'
|
||||||
|
|
||||||
|
const { isFullscreen, toggle } = useFullscreen()
|
||||||
|
</script>
|
@ -5,3 +5,4 @@ export { default as BreadCrumb } from './BreadCrumb.vue'
|
|||||||
export { default as AppTab } from './tab/index.vue'
|
export { default as AppTab } from './tab/index.vue'
|
||||||
export { default as SideLogo } from './SideLogo.vue'
|
export { default as SideLogo } from './SideLogo.vue'
|
||||||
export { default as SideMenu } from './SideMenu.vue'
|
export { default as SideMenu } from './SideMenu.vue'
|
||||||
|
export { default as Fullscreen } from './Fullscreen.vue'
|
||||||
|
@ -13,16 +13,9 @@
|
|||||||
<BreadCrumb />
|
<BreadCrumb />
|
||||||
|
|
||||||
<div class="ml-auto flex flex-shrink-0 items-center px-12 text-18">
|
<div class="ml-auto flex flex-shrink-0 items-center px-12 text-18">
|
||||||
<i
|
<ToggleTheme />
|
||||||
class="mr-16 cursor-pointer"
|
|
||||||
:class="isDark ? 'i-fe:moon' : 'i-fe:sun'"
|
<Fullscreen />
|
||||||
@click="toggleDark"
|
|
||||||
/>
|
|
||||||
<i
|
|
||||||
class="mr-16 cursor-pointer"
|
|
||||||
:class="isFullscreen ? 'i-fe:minimize' : 'i-fe:maximize'"
|
|
||||||
@click="toggle"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<i
|
<i
|
||||||
class="i-fe:github mr-16 cursor-pointer"
|
class="i-fe:github mr-16 cursor-pointer"
|
||||||
@ -41,18 +34,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useDark, useFullscreen, useToggle } from '@vueuse/core'
|
import { ToggleTheme } from '@/components'
|
||||||
import { BreadCrumb, MenuCollapse, UserAvatar } from '@/layouts/components'
|
import { BreadCrumb, Fullscreen, MenuCollapse, UserAvatar } from '@/layouts/components'
|
||||||
import { useAppStore } from '@/store'
|
|
||||||
|
|
||||||
const appStore = useAppStore()
|
|
||||||
const isDark = useDark()
|
|
||||||
function toggleDark() {
|
|
||||||
appStore.toggleDark()
|
|
||||||
useToggle(isDark)()
|
|
||||||
}
|
|
||||||
|
|
||||||
const { isFullscreen, toggle } = useFullscreen()
|
|
||||||
|
|
||||||
function handleLinkClick(link) {
|
function handleLinkClick(link) {
|
||||||
window.open(link)
|
window.open(link)
|
||||||
|
@ -15,16 +15,9 @@
|
|||||||
<span class="mx-6 opacity-20">|</span>
|
<span class="mx-6 opacity-20">|</span>
|
||||||
|
|
||||||
<div class="flex flex-shrink-0 items-center px-12 text-18">
|
<div class="flex flex-shrink-0 items-center px-12 text-18">
|
||||||
<i
|
<ToggleTheme />
|
||||||
class="mr-16 cursor-pointer"
|
|
||||||
:class="isDark ? 'i-fe:moon' : 'i-fe:sun'"
|
<Fullscreen />
|
||||||
@click="toggleDark"
|
|
||||||
/>
|
|
||||||
<i
|
|
||||||
class="mr-16 cursor-pointer"
|
|
||||||
:class="isFullscreen ? 'i-fe:minimize' : 'i-fe:maximize'"
|
|
||||||
@click="toggle"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<i
|
<i
|
||||||
class="i-fe:github mr-16 cursor-pointer"
|
class="i-fe:github mr-16 cursor-pointer"
|
||||||
@ -43,24 +36,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useDark, useFullscreen, useToggle } from '@vueuse/core'
|
import { ToggleTheme } from '@/components'
|
||||||
import { AppTab, MenuCollapse, UserAvatar } from '@/layouts/components'
|
import { AppTab, Fullscreen, MenuCollapse, UserAvatar } from '@/layouts/components'
|
||||||
import { useAppStore } from '@/store'
|
|
||||||
|
|
||||||
const appStore = useAppStore()
|
|
||||||
const isDark = useDark()
|
|
||||||
function toggleDark() {
|
|
||||||
appStore.toggleDark()
|
|
||||||
useToggle(isDark)()
|
|
||||||
}
|
|
||||||
|
|
||||||
const { isFullscreen, toggle } = useFullscreen()
|
|
||||||
|
|
||||||
function handleLinkClick(link) {
|
function handleLinkClick(link) {
|
||||||
window.open(link)
|
window.open(link)
|
||||||
}
|
}
|
||||||
|
|
||||||
watchEffect(() => {
|
|
||||||
appStore.setThemeColor(appStore.primaryColor, appStore.isDark)
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user