From 221d2cc02dfdf3f78cb415f26c88f1f274942222 Mon Sep 17 00:00:00 2001
From: Soybean <2570172956@qq.com>
Date: Thu, 23 Sep 2021 00:15:19 +0800
Subject: [PATCH] =?UTF-8?q?feat(projects):=20=E6=96=B0=E5=A2=9E=E9=A1=B6?=
=?UTF-8?q?=E9=83=A8=E8=8F=9C=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/enum/index.ts | 2 +-
src/enum/theme.ts | 8 ++++
src/interface/index.ts | 2 +-
src/interface/theme.ts | 13 +++++-
.../GlobalHeader/components/HeaderMenu.vue | 27 +++++++++++
.../components/GlobalHeader/index.vue | 8 ++--
.../components/PageFunc/index.vue | 46 +++++++++++--------
src/layouts/BasicLayout/index.vue | 9 +++-
src/settings/theme.ts | 10 +++-
src/store/modules/theme/index.ts | 6 ++-
10 files changed, 102 insertions(+), 29 deletions(-)
create mode 100644 src/layouts/BasicLayout/components/GlobalHeader/components/HeaderMenu.vue
diff --git a/src/enum/index.ts b/src/enum/index.ts
index 9f8d223c..a127e29b 100644
--- a/src/enum/index.ts
+++ b/src/enum/index.ts
@@ -1,5 +1,5 @@
export { ContentType, EnumDataType, EnumLoginModule } from './common';
export { EnumAnimate } from './animate';
-export { EnumNavMode, EnumNavTheme, EnumMultiTabMode } from './theme';
+export { EnumNavMode, EnumNavTheme, EnumMultiTabMode, EnumHorizontalMenuPosition } from './theme';
export { EnumRoutePath, EnumRouteTitle } from './route';
export { EnumStorageKey } from './storage';
diff --git a/src/enum/theme.ts b/src/enum/theme.ts
index 3e28e371..5f577902 100644
--- a/src/enum/theme.ts
+++ b/src/enum/theme.ts
@@ -13,7 +13,15 @@ export enum EnumNavTheme {
'header-dark' = '暗色的侧边栏和顶栏'
}
+/** 多页签风格 */
export enum EnumMultiTabMode {
'button' = '按钮风格',
'browser' = '浏览器风格'
}
+
+/** 水平模式的菜单位置 */
+export enum EnumHorizontalMenuPosition {
+ 'flex-start' = '居左',
+ 'center' = '居中',
+ 'flex-end' = '居右'
+}
diff --git a/src/interface/index.ts b/src/interface/index.ts
index 25227574..7244b1f0 100644
--- a/src/interface/index.ts
+++ b/src/interface/index.ts
@@ -1,3 +1,3 @@
export { UserInfo } from './business';
-export { ThemeSettings, NavMode, MultiTabMode, AnimateType } from './theme';
+export { ThemeSettings, NavMode, MultiTabMode, AnimateType, HorizontalMenuPosition } from './theme';
export { CustomRoute, RoutePathKey, GlobalMenuOption, LoginModuleType } from './common';
diff --git a/src/interface/theme.ts b/src/interface/theme.ts
index d25a40ff..962c637c 100644
--- a/src/interface/theme.ts
+++ b/src/interface/theme.ts
@@ -1,4 +1,4 @@
-import { EnumAnimate, EnumNavMode, EnumNavTheme, EnumMultiTabMode } from '@/enum';
+import { EnumAnimate, EnumNavMode, EnumNavTheme, EnumMultiTabMode, EnumHorizontalMenuPosition } from '@/enum';
export interface ThemeSettings {
/** 深色模式 */
@@ -56,6 +56,13 @@ interface HeaderStyle {
bgColor: string;
}
+export type HorizontalMenuPosition = keyof typeof EnumHorizontalMenuPosition;
+
+interface HorizontalMenuPositionList {
+ value: HorizontalMenuPosition;
+ label: EnumHorizontalMenuPosition;
+}
+
interface MenuStyle {
/** 菜单宽度 */
width: number;
@@ -67,6 +74,10 @@ interface MenuStyle {
fixed: boolean;
/** 分割菜单 */
splitMenu: boolean;
+ /** 水平模式的菜单的位置 */
+ horizontalPosition: HorizontalMenuPosition;
+ /** 水平模式的菜单的位置列表 */
+ horizontalPositionList: HorizontalMenuPositionList[];
}
export type MultiTabMode = keyof typeof EnumMultiTabMode;
diff --git a/src/layouts/BasicLayout/components/GlobalHeader/components/HeaderMenu.vue b/src/layouts/BasicLayout/components/GlobalHeader/components/HeaderMenu.vue
new file mode 100644
index 00000000..dd7385e3
--- /dev/null
+++ b/src/layouts/BasicLayout/components/GlobalHeader/components/HeaderMenu.vue
@@ -0,0 +1,27 @@
+
+