feat: 重構主佈局及相關元件,更新命名規則並新增功能
This commit is contained in:
@@ -146,16 +146,16 @@
|
|||||||
|
|
||||||
- [MainLayout.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/MainLayout.vue)
|
- [MainLayout.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/MainLayout.vue)
|
||||||
- [PlainLayout.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/PlainLayout.vue)
|
- [PlainLayout.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/PlainLayout.vue)
|
||||||
- `src/components/layouts/sk-admin-layout/*`
|
- `src/components/layouts/main-layout/*`
|
||||||
|
|
||||||
其中 `sk-admin-layout/*` 是 `MainLayout` 底下拆出的骨架子元件:
|
其中 `main-layout/*` 是 `MainLayout` 底下拆出的骨架子元件:
|
||||||
|
|
||||||
- [SkAdminAppBarBreadcrumbCol.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/sk-admin-layout/SkAdminAppBarBreadcrumbCol.vue)
|
- [AppBarBreadcrumbCol.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/main-layout/AppBarBreadcrumbCol.vue)
|
||||||
- [SkAdminAppBarFavoritesCol.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/sk-admin-layout/SkAdminAppBarFavoritesCol.vue)
|
- [AppBarFavoritesCol.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/main-layout/AppBarFavoritesCol.vue)
|
||||||
- [SkAdminAppBarTopCol.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/sk-admin-layout/SkAdminAppBarTopCol.vue)
|
- [AppBarTopCol.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/main-layout/AppBarTopCol.vue)
|
||||||
- [SkAdminDrawerDesktopMenu.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/sk-admin-layout/SkAdminDrawerDesktopMenu.vue)
|
- [DrawerDesktopMenu.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/main-layout/DrawerDesktopMenu.vue)
|
||||||
- [SkAdminDrawerMobileFavoritesPanel.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/sk-admin-layout/SkAdminDrawerMobileFavoritesPanel.vue)
|
- [DrawerMobileFavoritesPanel.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/main-layout/DrawerMobileFavoritesPanel.vue)
|
||||||
- [SkAdminDrawerMobileMenuPanel.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/sk-admin-layout/SkAdminDrawerMobileMenuPanel.vue)
|
- [DrawerMobileMenuPanel.vue](/home/carl/git/skt-vuetify-templates/src/components/layouts/main-layout/DrawerMobileMenuPanel.vue)
|
||||||
|
|
||||||
layout 應只承擔:
|
layout 應只承擔:
|
||||||
|
|
||||||
@@ -333,7 +333,7 @@ layout 不應承擔:
|
|||||||
|
|
||||||
目前例子:
|
目前例子:
|
||||||
|
|
||||||
- `sk-admin-layout`
|
- `main-layout`
|
||||||
- `master-detail`
|
- `master-detail`
|
||||||
|
|
||||||
### domain component 命名
|
### domain component 命名
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-app v-bind="$attrs" class="sk-admin-layout">
|
<v-app v-bind="$attrs" class="main-layout">
|
||||||
<v-navigation-drawer
|
<v-navigation-drawer
|
||||||
v-model="drawer"
|
v-model="drawer"
|
||||||
class="sk-admin-drawer"
|
class="sk-admin-drawer"
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
|
|
||||||
<!-- 桌面板選單 -->
|
<!-- 桌面板選單 -->
|
||||||
<template v-if="!isMobile">
|
<template v-if="!isMobile">
|
||||||
<SkAdminDrawerDesktopMenu
|
<DrawerDesktopMenu
|
||||||
v-model:opened="opened"
|
v-model:opened="opened"
|
||||||
:is-shrink="isRail"
|
:is-shrink="isRail"
|
||||||
:menu-items="menuItems"
|
:menu-items="menuItems"
|
||||||
@@ -99,12 +99,12 @@
|
|||||||
|
|
||||||
<!-- 行動版選單 -->
|
<!-- 行動版選單 -->
|
||||||
<template v-if="isMobile">
|
<template v-if="isMobile">
|
||||||
<SkAdminDrawerMobileFavoritesPanel
|
<DrawerMobileFavoritesPanel
|
||||||
v-if="features.showFavorites && mobileFavoritesPanel"
|
v-if="features.showFavorites && mobileFavoritesPanel"
|
||||||
:favorite-items="favoriteItems"
|
:favorite-items="favoriteItems"
|
||||||
@select="onSelectFavorite"
|
@select="onSelectFavorite"
|
||||||
/>
|
/>
|
||||||
<SkAdminDrawerMobileMenuPanel
|
<DrawerMobileMenuPanel
|
||||||
v-else
|
v-else
|
||||||
:mobile-current-items="mobileCurrentItems"
|
:mobile-current-items="mobileCurrentItems"
|
||||||
@item-click="onMobileMenuClick"
|
@item-click="onMobileMenuClick"
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
|
|
||||||
<v-app-bar ref="appBarRef" class="" height="auto">
|
<v-app-bar ref="appBarRef" class="" height="auto">
|
||||||
<v-row class="flex-column" no-gutters>
|
<v-row class="flex-column" no-gutters>
|
||||||
<SkAdminAppBarTopCol
|
<AppBarTopCol
|
||||||
:features="features"
|
:features="features"
|
||||||
:is-mobile="isMobile"
|
:is-mobile="isMobile"
|
||||||
:logout-label="logoutLabel"
|
:logout-label="logoutLabel"
|
||||||
@@ -134,9 +134,9 @@
|
|||||||
<template v-if="$slots.actions" #actions>
|
<template v-if="$slots.actions" #actions>
|
||||||
<slot name="actions"></slot>
|
<slot name="actions"></slot>
|
||||||
</template>
|
</template>
|
||||||
</SkAdminAppBarTopCol>
|
</AppBarTopCol>
|
||||||
|
|
||||||
<SkAdminAppBarFavoritesCol
|
<AppBarFavoritesCol
|
||||||
:favorite-items="favoriteItems"
|
:favorite-items="favoriteItems"
|
||||||
:favorites-config="favoritesConfig"
|
:favorites-config="favoritesConfig"
|
||||||
:features="features"
|
:features="features"
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
@toggle-favorites-bar="toggleFavoritesBar"
|
@toggle-favorites-bar="toggleFavoritesBar"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<SkAdminAppBarBreadcrumbCol
|
<AppBarBreadcrumbCol
|
||||||
:breadcrumb-items="breadcrumbItems"
|
:breadcrumb-items="breadcrumbItems"
|
||||||
:features="features"
|
:features="features"
|
||||||
:is-mobile="isMobile"
|
:is-mobile="isMobile"
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
<template v-if="$slots['breadcrumb-actions']" #breadcrumb-actions>
|
<template v-if="$slots['breadcrumb-actions']" #breadcrumb-actions>
|
||||||
<slot name="breadcrumb-actions"></slot>
|
<slot name="breadcrumb-actions"></slot>
|
||||||
</template>
|
</template>
|
||||||
</SkAdminAppBarBreadcrumbCol>
|
</AppBarBreadcrumbCol>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-app-bar>
|
</v-app-bar>
|
||||||
|
|
||||||
@@ -219,18 +219,18 @@ import type {
|
|||||||
AdminLayoutToolbarActions,
|
AdminLayoutToolbarActions,
|
||||||
AdminLayoutToolbarCounts,
|
AdminLayoutToolbarCounts,
|
||||||
AdminLayoutUserProfile,
|
AdminLayoutUserProfile,
|
||||||
} from './sk-admin-layout/types'
|
} from './main-layout/types'
|
||||||
import { mdiClose, mdiHelpCircleOutline, mdiHome, mdiMenu, mdiMenuOpen } from '@mdi/js'
|
import { mdiClose, mdiHelpCircleOutline, mdiHome, mdiMenu, mdiMenuOpen } from '@mdi/js'
|
||||||
import { computed, ref, toRef } from 'vue'
|
import { computed, ref, toRef } from 'vue'
|
||||||
import { useDisplay } from 'vuetify'
|
import { useDisplay } from 'vuetify'
|
||||||
import { useAdminLayoutState } from '@/composables/layout/useAdminLayoutState'
|
import { useAdminLayoutState } from '@/composables/layout/useAdminLayoutState'
|
||||||
import { useThemeToggle } from '@/composables/layout/useThemeToggle'
|
import { useThemeToggle } from '@/composables/layout/useThemeToggle'
|
||||||
import SkAdminAppBarBreadcrumbCol from './sk-admin-layout/SkAdminAppBarBreadcrumbCol.vue'
|
import AppBarBreadcrumbCol from './main-layout/AppBarBreadcrumbCol.vue'
|
||||||
import SkAdminAppBarFavoritesCol from './sk-admin-layout/SkAdminAppBarFavoritesCol.vue'
|
import AppBarFavoritesCol from './main-layout/AppBarFavoritesCol.vue'
|
||||||
import SkAdminAppBarTopCol from './sk-admin-layout/SkAdminAppBarTopCol.vue'
|
import AppBarTopCol from './main-layout/AppBarTopCol.vue'
|
||||||
import SkAdminDrawerDesktopMenu from './sk-admin-layout/SkAdminDrawerDesktopMenu.vue'
|
import DrawerDesktopMenu from './main-layout/DrawerDesktopMenu.vue'
|
||||||
import SkAdminDrawerMobileFavoritesPanel from './sk-admin-layout/SkAdminDrawerMobileFavoritesPanel.vue'
|
import DrawerMobileFavoritesPanel from './main-layout/DrawerMobileFavoritesPanel.vue'
|
||||||
import SkAdminDrawerMobileMenuPanel from './sk-admin-layout/SkAdminDrawerMobileMenuPanel.vue'
|
import DrawerMobileMenuPanel from './main-layout/DrawerMobileMenuPanel.vue'
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
logout: []
|
logout: []
|
||||||
@@ -457,7 +457,7 @@ function getMobileMenuBtnColor(level: number) {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.sk-admin-layout {
|
.main-layout {
|
||||||
background: rgb(var(--v-theme-background));
|
background: rgb(var(--v-theme-background));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { AdminLayoutMenuItem } from '@/components/layouts/sk-admin-layout/types'
|
import type { AdminLayoutMenuItem } from '@/components/layouts/main-layout/types'
|
||||||
import { computed, onBeforeUnmount, onMounted, ref, type Ref, watch } from 'vue'
|
import { computed, onBeforeUnmount, onMounted, ref, type Ref, watch } from 'vue'
|
||||||
|
|
||||||
type ToggleSidebarPayload = {
|
type ToggleSidebarPayload = {
|
||||||
|
|||||||
Reference in New Issue
Block a user