diff --git a/web/src/pathInfo.json b/web/src/pathInfo.json index bf0f0394..29da8415 100644 --- a/web/src/pathInfo.json +++ b/web/src/pathInfo.json @@ -32,6 +32,7 @@ "/src/view/layout/screenfull/index.vue": "Screenfull", "/src/view/layout/search/search.vue": "BtnBox", "/src/view/layout/setting/index.vue": "GvaSetting", + "/src/view/layout/setting/title.vue": "layoutSettingTitle", "/src/view/layout/tabs/index.vue": "HistoryComponent", "/src/view/login/index.vue": "Login", "/src/view/person/person.vue": "Person", diff --git a/web/src/pinia/modules/app.js b/web/src/pinia/modules/app.js index 45b22227..8b322353 100644 --- a/web/src/pinia/modules/app.js +++ b/web/src/pinia/modules/app.js @@ -17,14 +17,16 @@ export const useAppStore = defineStore('app', () => { layout_side_collapsed_width: 80, layout_side_item_height: 48, show_watermark: true, - side_mode: 'normal' + side_mode: 'normal', + // 页面过渡动画配置 + transition_type: 'slide' }) const isDark = useDark({ selector: 'html', attribute: 'class', valueDark: 'dark', - valueLight: 'light', + valueLight: 'light' }) const preferredDark = usePreferredDark() @@ -50,10 +52,10 @@ export const useAppStore = defineStore('app', () => { } const toggleDevice = (e) => { - if(e === 'mobile'){ + if (e === 'mobile') { drawerSize.value = '100%' operateMinWith.value = '80' - }else { + } else { drawerSize.value = '800' operateMinWith.value = '240' } @@ -93,7 +95,11 @@ export const useAppStore = defineStore('app', () => { config.side_mode = e } - // 监听色弱模式和灰色模式 + const toggleTransition = (e) => { + config.transition_type = e + } + + // 监听色弱模式和灰色模式 watchEffect(() => { document.documentElement.classList.toggle('html-weakenss', config.weakness) document.documentElement.classList.toggle('html-grey', config.grey) @@ -121,6 +127,7 @@ export const useAppStore = defineStore('app', () => { toggleConfigSideCollapsedWidth, toggleConfigSideItemHeight, toggleConfigWatermark, - toggleSideMode + toggleSideMode, + toggleTransition } }) diff --git a/web/src/pinia/modules/user.js b/web/src/pinia/modules/user.js index 2bcb7257..6246ca67 100644 --- a/web/src/pinia/modules/user.js +++ b/web/src/pinia/modules/user.js @@ -28,9 +28,12 @@ export const useUserStore = defineStore('user', () => { userInfo.value = val if (val.originSetting) { Object.keys(appStore.config).forEach((key) => { - appStore.config[key] = val.originSetting[key] + if (val.originSetting[key]) { + appStore.config[key] = val.originSetting[key] + } }) } + console.log(appStore.config) } const setToken = (val) => { @@ -66,7 +69,7 @@ export const useUserStore = defineStore('user', () => { }) const res = await login(loginInfo) - + if (res.code !== 0) { ElMessage.error(res.message || '登录失败') return false diff --git a/web/src/style/main.scss b/web/src/style/main.scss index ac5622d9..a213d481 100644 --- a/web/src/style/main.scss +++ b/web/src/style/main.scss @@ -1,4 +1,5 @@ @use '@/style/iconfont.css'; +@use "./transition.scss"; .html-grey { filter: grayscale(100%); diff --git a/web/src/style/transition.scss b/web/src/style/transition.scss new file mode 100644 index 00000000..09a25438 --- /dev/null +++ b/web/src/style/transition.scss @@ -0,0 +1,68 @@ + +// 淡入淡出动画 +.fade-enter-active, +.fade-leave-active { + transition: all 0.3s ease; +} + +.fade-enter-from, +.fade-leave-to { + opacity: 0; + transform: translateY(10px); +} + +.header { + border-radius: 0 0 10px 10px; +} + +.body { + height: calc(100% - 6rem); +} + +@keyframes slideDown { + from { + transform: translateY(-20px); + opacity: 0; + } + + to { + transform: translateY(0); + opacity: 1; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} +// 缩放动画 +.zoom-enter-active, +.zoom-leave-active { + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.zoom-enter-from, +.zoom-leave-to { + opacity: 0; + transform: scale(0.95); +} + + +/* fade-slide */ +.slide-leave-active, +.slide-enter-active { + transition: all 0.3s; +} +.slide-enter-from { + opacity: 0; + transform: translateX(-30px); +} +.slide-leave-to { + opacity: 0; + transform: translateX(30px); +} diff --git a/web/src/view/layout/index.vue b/web/src/view/layout/index.vue index da2009a1..8ce52a2d 100644 --- a/web/src/view/layout/index.vue +++ b/web/src/view/layout/index.vue @@ -23,7 +23,7 @@ v-if="config.side_mode === 'combination' && device !== 'mobile'" mode="normal" /> -