diff --git a/src/App.vue b/src/App.vue index f9b5dd6..daf9054 100644 --- a/src/App.vue +++ b/src/App.vue @@ -12,7 +12,7 @@ :locale="zhCN" :date-locale="dateZhCN" :theme="appStore.isDark ? darkTheme : undefined" - :theme-overrides="settings.naiveThemeOverrides" + :theme-overrides="appStore.naiveThemeOverrides" > @@ -20,16 +20,18 @@ + + diff --git a/src/components/common/index.js b/src/components/common/index.js index e8b1424..ec90a83 100644 --- a/src/components/common/index.js +++ b/src/components/common/index.js @@ -2,3 +2,4 @@ export { default as AppCard } from './AppCard.vue' export { default as TheFooter } from './TheFooter.vue' export { default as AppPage } from './AppPage.vue' export { default as CommonPage } from './CommonPage.vue' +export { default as ThemeSetting } from './ThemeSetting.vue' diff --git a/src/layouts/default/header/components/UserAvatar.vue b/src/layouts/full/header/components/UserAvatar.vue similarity index 100% rename from src/layouts/default/header/components/UserAvatar.vue rename to src/layouts/full/header/components/UserAvatar.vue diff --git a/src/layouts/default/header/components/index.js b/src/layouts/full/header/components/index.js similarity index 100% rename from src/layouts/default/header/components/index.js rename to src/layouts/full/header/components/index.js diff --git a/src/layouts/default/header/components/tab/ContextMenu.vue b/src/layouts/full/header/components/tab/ContextMenu.vue similarity index 100% rename from src/layouts/default/header/components/tab/ContextMenu.vue rename to src/layouts/full/header/components/tab/ContextMenu.vue diff --git a/src/layouts/default/header/components/tab/index.vue b/src/layouts/full/header/components/tab/index.vue similarity index 100% rename from src/layouts/default/header/components/tab/index.vue rename to src/layouts/full/header/components/tab/index.vue diff --git a/src/layouts/default/header/index.vue b/src/layouts/full/header/index.vue similarity index 100% rename from src/layouts/default/header/index.vue rename to src/layouts/full/header/index.vue diff --git a/src/layouts/default/index.vue b/src/layouts/full/index.vue similarity index 82% rename from src/layouts/default/index.vue rename to src/layouts/full/index.vue index 5594838..3617286 100644 --- a/src/layouts/default/index.vue +++ b/src/layouts/full/index.vue @@ -1,7 +1,7 @@ @@ -17,7 +17,7 @@
- +
@@ -28,9 +28,6 @@ import { useAppStore } from '@/store' import SideBar from './sidebar/index.vue' import AppHeader from './header/index.vue' -import settings from '@/settings' -const { header } = settings - const appStore = useAppStore() diff --git a/src/layouts/default/sidebar/components/SideLogo.vue b/src/layouts/full/sidebar/components/SideLogo.vue similarity index 100% rename from src/layouts/default/sidebar/components/SideLogo.vue rename to src/layouts/full/sidebar/components/SideLogo.vue diff --git a/src/layouts/default/sidebar/components/SideMenu.vue b/src/layouts/full/sidebar/components/SideMenu.vue similarity index 100% rename from src/layouts/default/sidebar/components/SideMenu.vue rename to src/layouts/full/sidebar/components/SideMenu.vue diff --git a/src/layouts/default/sidebar/index.vue b/src/layouts/full/sidebar/index.vue similarity index 100% rename from src/layouts/default/sidebar/index.vue rename to src/layouts/full/sidebar/index.vue diff --git a/src/layouts/normal/header/components/UserAvatar.vue b/src/layouts/normal/header/components/UserAvatar.vue new file mode 100644 index 0000000..e1c85e3 --- /dev/null +++ b/src/layouts/normal/header/components/UserAvatar.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/layouts/normal/header/components/index.js b/src/layouts/normal/header/components/index.js new file mode 100644 index 0000000..19570cb --- /dev/null +++ b/src/layouts/normal/header/components/index.js @@ -0,0 +1,2 @@ +export { default as UserAvatar } from './UserAvatar.vue' +export { default as AppTab } from './tab/index.vue' diff --git a/src/layouts/normal/header/components/tab/ContextMenu.vue b/src/layouts/normal/header/components/tab/ContextMenu.vue new file mode 100644 index 0000000..9e89efe --- /dev/null +++ b/src/layouts/normal/header/components/tab/ContextMenu.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/layouts/normal/header/components/tab/index.vue b/src/layouts/normal/header/components/tab/index.vue new file mode 100644 index 0000000..117daeb --- /dev/null +++ b/src/layouts/normal/header/components/tab/index.vue @@ -0,0 +1,101 @@ + + + + + + + diff --git a/src/layouts/normal/header/index.vue b/src/layouts/normal/header/index.vue new file mode 100644 index 0000000..9aba3ba --- /dev/null +++ b/src/layouts/normal/header/index.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/layouts/normal/index.vue b/src/layouts/normal/index.vue new file mode 100644 index 0000000..3617286 --- /dev/null +++ b/src/layouts/normal/index.vue @@ -0,0 +1,38 @@ + + + + + + + diff --git a/src/layouts/normal/sidebar/components/SideLogo.vue b/src/layouts/normal/sidebar/components/SideLogo.vue new file mode 100644 index 0000000..bf5a025 --- /dev/null +++ b/src/layouts/normal/sidebar/components/SideLogo.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/src/layouts/normal/sidebar/components/SideMenu.vue b/src/layouts/normal/sidebar/components/SideMenu.vue new file mode 100644 index 0000000..a51d6df --- /dev/null +++ b/src/layouts/normal/sidebar/components/SideMenu.vue @@ -0,0 +1,62 @@ + + + + + + + diff --git a/src/layouts/normal/sidebar/index.vue b/src/layouts/normal/sidebar/index.vue new file mode 100644 index 0000000..d05f4d0 --- /dev/null +++ b/src/layouts/normal/sidebar/index.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/layouts/simple/header/components/UserAvatar.vue b/src/layouts/simple/header/components/UserAvatar.vue new file mode 100644 index 0000000..e1c85e3 --- /dev/null +++ b/src/layouts/simple/header/components/UserAvatar.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/layouts/simple/header/components/index.js b/src/layouts/simple/header/components/index.js new file mode 100644 index 0000000..19570cb --- /dev/null +++ b/src/layouts/simple/header/components/index.js @@ -0,0 +1,2 @@ +export { default as UserAvatar } from './UserAvatar.vue' +export { default as AppTab } from './tab/index.vue' diff --git a/src/layouts/simple/header/components/tab/ContextMenu.vue b/src/layouts/simple/header/components/tab/ContextMenu.vue new file mode 100644 index 0000000..9e89efe --- /dev/null +++ b/src/layouts/simple/header/components/tab/ContextMenu.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/layouts/simple/header/components/tab/index.vue b/src/layouts/simple/header/components/tab/index.vue new file mode 100644 index 0000000..117daeb --- /dev/null +++ b/src/layouts/simple/header/components/tab/index.vue @@ -0,0 +1,101 @@ + + + + + + + diff --git a/src/layouts/simple/header/index.vue b/src/layouts/simple/header/index.vue new file mode 100644 index 0000000..9aba3ba --- /dev/null +++ b/src/layouts/simple/header/index.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/layouts/simple/index.vue b/src/layouts/simple/index.vue new file mode 100644 index 0000000..3617286 --- /dev/null +++ b/src/layouts/simple/index.vue @@ -0,0 +1,38 @@ + + + + + + + diff --git a/src/layouts/simple/sidebar/components/SideLogo.vue b/src/layouts/simple/sidebar/components/SideLogo.vue new file mode 100644 index 0000000..bf5a025 --- /dev/null +++ b/src/layouts/simple/sidebar/components/SideLogo.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/src/layouts/simple/sidebar/components/SideMenu.vue b/src/layouts/simple/sidebar/components/SideMenu.vue new file mode 100644 index 0000000..a51d6df --- /dev/null +++ b/src/layouts/simple/sidebar/components/SideMenu.vue @@ -0,0 +1,62 @@ + + + + + + + diff --git a/src/layouts/simple/sidebar/index.vue b/src/layouts/simple/sidebar/index.vue new file mode 100644 index 0000000..bd6545e --- /dev/null +++ b/src/layouts/simple/sidebar/index.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/src/settings.js b/src/settings.js index 8c3680c..85e1d56 100644 --- a/src/settings.js +++ b/src/settings.js @@ -1,47 +1,39 @@ /********************************** * @Author: Ronnie Zhang * @LastEditor: Ronnie Zhang - * @LastEditTime: 2023/12/05 21:30:24 + * @LastEditTime: 2023/12/13 20:54:36 * @Email: zclzone@outlook.com * Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top **********************************/ -export default { - defaultLayout: 'default', - header: { - height: 60, - }, - tab: { - visible: true, - height: 50, - }, - naiveThemeOverrides: { - common: { - primaryColor: '#316C72FF', - primaryColorHover: '#316C72E3', - primaryColorPressed: '#2B4C59FF', - primaryColorSuppl: '#316C72E3', +export const defaultLayout = 'normal' - infoColor: '#2080F0FF', - infoColorHover: '#4098FCFF', - infoColorPressed: '#1060C9FF', - infoColorSuppl: '#4098FCFF', +export const naiveThemeOverrides = { + common: { + primaryColor: '#316C72FF', + primaryColorHover: '#316C72E3', + primaryColorPressed: '#2B4C59FF', + primaryColorSuppl: '#316C72E3', - successColor: '#18A058FF', - successColorHover: '#36AD6AFF', - successColorPressed: '#0C7A43FF', - successColorSuppl: '#36AD6AFF', + infoColor: '#2080F0FF', + infoColorHover: '#4098FCFF', + infoColorPressed: '#1060C9FF', + infoColorSuppl: '#4098FCFF', - warningColor: '#F0A020FF', - warningColorHover: '#FCB040FF', - warningColorPressed: '#C97C10FF', - warningColorSuppl: '#FCB040FF', + successColor: '#18A058FF', + successColorHover: '#36AD6AFF', + successColorPressed: '#0C7A43FF', + successColorSuppl: '#36AD6AFF', - errorColor: '#D03050FF', - errorColorHover: '#DE576DFF', - errorColorPressed: '#AB1F3FFF', - errorColorSuppl: '#DE576DFF', - }, + warningColor: '#F0A020FF', + warningColorHover: '#FCB040FF', + warningColorPressed: '#C97C10FF', + warningColorSuppl: '#FCB040FF', + + errorColor: '#D03050FF', + errorColorHover: '#DE576DFF', + errorColorPressed: '#AB1F3FFF', + errorColorSuppl: '#DE576DFF', }, } diff --git a/src/store/modules/app.js b/src/store/modules/app.js index e251d8a..d620259 100644 --- a/src/store/modules/app.js +++ b/src/store/modules/app.js @@ -8,13 +8,14 @@ import { defineStore } from 'pinia' import { useDark } from '@vueuse/core' -import settings from '@/settings' +import { defaultLayout, naiveThemeOverrides } from '@/settings' export const useAppStore = defineStore('app', { state: () => ({ collapsed: false, isDark: useDark(), - layout: settings.defaultLayout, + layout: defaultLayout, + naiveThemeOverrides, }), actions: { switchCollapsed() { @@ -26,12 +27,12 @@ export const useAppStore = defineStore('app', { toggleDark() { this.isDark = !this.isDark }, - setDeaultLayout(v) { + setLayout(v) { this.layout = v }, }, persist: { - paths: ['layout', 'collapsed'], + paths: ['layout', 'collapsed', 'naiveThemeOverrides'], storage: localStorage, }, }) diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index c3b425e..4dbf0e0 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -64,7 +64,7 @@ export const usePermissionStore = defineStore('permission', { meta: { icon: item.icon, title: item.name, - layout: item.layout || 'default', + layout: item.layout, keepAlive: !!item.keepAlive, parentKey, btns: item.children diff --git a/src/utils/naiveTools.js b/src/utils/naiveTools.js index 754ef12..5f647d1 100644 --- a/src/utils/naiveTools.js +++ b/src/utils/naiveTools.js @@ -9,7 +9,6 @@ import * as NaiveUI from 'naive-ui' import { isNullOrUndef } from '@/utils' -import settings from '@/settings' import { useAppStore } from '@/store/modules/app' export function setupMessage(NMessage) { @@ -104,10 +103,9 @@ export function setupDialog(NDialog) { export function setupNaiveDiscreteApi() { const appStore = useAppStore() - const { naiveThemeOverrides: themeOverrides } = settings const configProviderProps = computed(() => ({ theme: appStore.isDark ? NaiveUI.darkTheme : undefined, - themeOverrides, + themeOverrides: useAppStore().naiveThemeOverrides, })) const { message, dialog, notification, loadingBar } = NaiveUI.createDiscreteApi( ['message', 'dialog', 'notification', 'loadingBar'], diff --git a/src/views/pms/resource/components/ResAddOrEdit.vue b/src/views/pms/resource/components/ResAddOrEdit.vue index 55dd4dd..9d85d75 100644 --- a/src/views/pms/resource/components/ResAddOrEdit.vue +++ b/src/views/pms/resource/components/ResAddOrEdit.vue @@ -155,7 +155,10 @@ const iconOptions = icons.map((item) => ({ value: item, })) const layoutOptions = [ - { label: '默认-default', value: 'default' }, + { label: '跟随系统', value: '' }, + { label: '简约-simple', value: 'simple' }, + { label: '通用-normal', value: 'normal' }, + { label: '全面-full', value: 'full' }, { label: '空白-empty', value: 'empty' }, ] const required = { diff --git a/src/views/pms/resource/index.vue b/src/views/pms/resource/index.vue index 63c2809..b34c9e5 100644 --- a/src/views/pms/resource/index.vue +++ b/src/views/pms/resource/index.vue @@ -49,7 +49,7 @@ - {{ currentMenu.layout ?? 'default' }} + {{ currentMenu.layout || '跟随系统' }} {{ currentMenu.show ? '是' : '否' }}