diff --git a/src/layout/header-aside/layout.vue b/src/layout/header-aside/layout.vue index e79dea7a..5c249a89 100644 --- a/src/layout/header-aside/layout.vue +++ b/src/layout/header-aside/layout.vue @@ -43,7 +43,7 @@
- + @@ -80,6 +80,7 @@ export default { computed: { ...mapState('d2admin', { grayActive: state => state.gray.active, + transitionActive: state => state.transition.active, asideCollapse: state => state.menu.asideCollapse }), ...mapGetters('d2admin', { diff --git a/src/menu/modules/demo-playground.js b/src/menu/modules/demo-playground.js index 8b898b3d..97cb54be 100644 --- a/src/menu/modules/demo-playground.js +++ b/src/menu/modules/demo-playground.js @@ -32,7 +32,8 @@ export default { { path: `${pre}store/ua`, title: '浏览器信息', icon: 'info-circle' }, { path: `${pre}store/gray`, title: '灰度模式', icon: 'eye' }, { path: `${pre}store/fullscreen`, title: '全屏', icon: 'arrows-alt' }, - { path: `${pre}store/theme`, title: '主题', icon: 'diamond' } + { path: `${pre}store/theme`, title: '主题', icon: 'diamond' }, + { path: `${pre}store/transition`, title: '页面过渡开关', icon: 'toggle-on' } ] }, { diff --git a/src/pages/demo/playground/store/transition/index.vue b/src/pages/demo/playground/store/transition/index.vue new file mode 100644 index 00000000..9cb8dc52 --- /dev/null +++ b/src/pages/demo/playground/store/transition/index.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/router/routes.js.REMOVED.git-id b/src/router/routes.js.REMOVED.git-id index bbbcc5b3..704e7e21 100644 --- a/src/router/routes.js.REMOVED.git-id +++ b/src/router/routes.js.REMOVED.git-id @@ -1 +1 @@ -2414e68d302f8c63a5f472513a885d93860227aa \ No newline at end of file +3f797ef981679608bad178b6a1a748bfa08e6ade \ No newline at end of file diff --git a/src/store/modules/d2admin/index.js b/src/store/modules/d2admin/index.js index bcf4fcb4..6ad3350b 100644 --- a/src/store/modules/d2admin/index.js +++ b/src/store/modules/d2admin/index.js @@ -9,6 +9,7 @@ import fullscreen from './modules/fullscreen' import ua from './modules/ua' import gray from './modules/gray' import page from './modules/page' +import transition from './modules/transition' export default { namespaced: true, @@ -23,6 +24,7 @@ export default { fullscreen, ua, gray, - page + page, + transition } } diff --git a/src/store/modules/d2admin/modules/account.js b/src/store/modules/d2admin/modules/account.js index 6db6da07..927188b4 100644 --- a/src/store/modules/d2admin/modules/account.js +++ b/src/store/modules/d2admin/modules/account.js @@ -96,6 +96,8 @@ export default { this.commit('d2admin/user/load') // DB -> store 加载主题 this.commit('d2admin/theme/load') + // DB -> store 加载页面过渡效果设置 + this.commit('d2admin/transition/load') // DB -> store 数据库加载上次退出时的多页列表 this.commit('d2admin/page/openedLoad') // DB -> store 数据库加载这个用户之前设置的侧边栏折叠状态 diff --git a/src/store/modules/d2admin/modules/db.js b/src/store/modules/d2admin/modules/db.js index 4af8d587..bcaa637c 100644 --- a/src/store/modules/d2admin/modules/db.js +++ b/src/store/modules/d2admin/modules/db.js @@ -20,7 +20,7 @@ function pathInit ({ const uuid = util.cookies.get('uuid') || 'ghost-uuid' const currentPath = `${dbName}.${user ? `user.${uuid}` : 'public'}${path ? `.${path}` : ''}` const value = db.get(currentPath).value() - if (!(value && validator(value))) { + if (!(value !== undefined && validator(value))) { db .set(currentPath, defaultValue) .write() diff --git a/src/store/modules/d2admin/modules/transition.js b/src/store/modules/d2admin/modules/transition.js new file mode 100644 index 00000000..17a3a73d --- /dev/null +++ b/src/store/modules/d2admin/modules/transition.js @@ -0,0 +1,36 @@ +export default { + namespaced: true, + state: { + // 是否开启页面过度动画 + active: true + }, + mutations: { + /** + * @description 设置开启状态 + * @param {Object} state vuex state + * @param {Boolean} active 新的状态 + */ + set (state, active) { + // store 赋值 + state.active = active + // 持久化 + this.commit('d2admin/db/setByUser', { + dbName: 'sys', + path: 'transition.active', + value: state.active + }) + }, + /** + * 从数据库读取页面过渡动画设置 + * @param {Object} state vuex state + */ + async load (state) { + // store 赋值 + state.active = await this.dispatch('d2admin/db/getByUser', { + dbName: 'sys', + path: 'transition.active', + defaultValue: true + }) + } + } +}