From 1907fcf7b2a4fcf143d0c61c4ff97326188360f0 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 22:59:19 +0800 Subject: [PATCH] db actions Former-commit-id: 2b09617e93a7a76be76112f361e0c6635bde8c46 [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062] [formerly 2b09617e93a7a76be76112f361e0c6635bde8c46 [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062] [formerly 2b09617e93a7a76be76112f361e0c6635bde8c46 [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062] [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062 [formerly d94a48297dc50b082165969ec72f6dafb49bf694 [formerly 50cc227c8b86ecdf64c7dff28e089b6963a6a5c3]]]]] Former-commit-id: d5d61acd1aa0e9335fcac37900dfb18cf7d9a3d8 Former-commit-id: a490c1d36c2631b316a9af2596a89887321b7d93 Former-commit-id: b3012f888349f0cdad641e0988e0de21df928955 [formerly 8a4be822b9526059131f28530c2ad89d945258cd] Former-commit-id: a24c1f17605c335c9b504a954c5c3b0a23bc6a84 Former-commit-id: 03bff2a157c90e3a306d09bd4aded713d9b78f23 Former-commit-id: 38569629e15a50051e3b687f4e650cf77c391b63 Former-commit-id: 22bfdd418b736df02d3b4d4717a760cbc8c948e9 Former-commit-id: ea7774773cb467e890c1fb456ad6f076815a44b1 --- docs/zh/sys-db/README.md | 12 +++--------- docs/zh/sys-vuex/README.md.REMOVED.git-id | 2 +- src/store/modules/d2admin/modules/db.js | 14 ++++---------- src/store/modules/d2admin/modules/menu.js | 4 ++-- src/store/modules/d2admin/modules/page.js | 2 +- src/store/modules/d2admin/modules/theme.js | 2 +- src/store/modules/d2admin/modules/transition.js | 2 +- src/store/modules/d2admin/modules/user.js | 2 +- 8 files changed, 14 insertions(+), 26 deletions(-) diff --git a/docs/zh/sys-db/README.md b/docs/zh/sys-db/README.md index bfabe98e..1f94cb12 100644 --- a/docs/zh/sys-db/README.md +++ b/docs/zh/sys-db/README.md @@ -4,14 +4,7 @@ sidebar: auto # 数据持久化 -D2Admin 对数据持久化做了更贴心的包装。 - -数据持久化在 D2Admin 中主要体现在两个方面: - -* 系统设置持久化 -* 用户数据持久化 - -系统设置持久化已经在核心模块中写好,这里主要介绍用户数据持久化。 +D2Admin 对数据持久化做了更清晰的包装,您可以通过 ## 公用存储 @@ -59,4 +52,5 @@ await this.$store.dispatch('d2admin/db/databasePage', { vm: this, user: true }) ## 私有路由快照 -私有路由快照相当于私有路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部根据用户区分持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 \ No newline at end of file +私有路由快照相当于私有路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部根据用户区分持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 + diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id index ee4ad296..7e5ba358 100644 --- a/docs/zh/sys-vuex/README.md.REMOVED.git-id +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -1 +1 @@ -080facc2ab1ba35272b9f62ff92efc9a31687b86 \ No newline at end of file +78fa73fc382c9d9c7950f10e3a5b7b7064f647b6 \ No newline at end of file diff --git a/src/store/modules/d2admin/modules/db.js b/src/store/modules/d2admin/modules/db.js index d6a3e733..bbaa9dfe 100644 --- a/src/store/modules/d2admin/modules/db.js +++ b/src/store/modules/d2admin/modules/db.js @@ -30,16 +30,15 @@ function pathInit ({ export default { namespaced: true, - mutations: { + actions: { /** * @description 将数据存储到指定位置 | 路径不存在会自动初始化 * @description 效果类似于取值 dbName.path = value - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param value {*} 需要存储的值 */ - set (state, { + set (context, { dbName = 'database', path = '', value = '' @@ -53,12 +52,11 @@ export default { /** * @description 将数据存储到指定位置 | 路径不存在会自动初始化 [ 区分用户 ] * @description 效果类似于取值 dbName.path[user] = value - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param value {*} 需要存储的值 */ - setByUser (state, { + setByUser (context, { dbName = 'database', path = '', value = '' @@ -67,13 +65,10 @@ export default { dbName, path }), value).write() - } - }, - actions: { + }, /** * @description 获取数据 * @description 效果类似于取值 dbName.path || defaultValue - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param defaultValue {*} 取值失败的默认值 @@ -95,7 +90,6 @@ export default { /** * @description 获取数据 [ 区分用户 ] * @description 效果类似于取值 dbName.path[user] || defaultValue - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param defaultValue {*} 取值失败的默认值 diff --git a/src/store/modules/d2admin/modules/menu.js b/src/store/modules/d2admin/modules/menu.js index 8a9a7272..ee3c85d7 100644 --- a/src/store/modules/d2admin/modules/menu.js +++ b/src/store/modules/d2admin/modules/menu.js @@ -39,7 +39,7 @@ export default { // store 赋值 state.asideCollapse = collapse // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'menu.asideCollapse', value: state.asideCollapse @@ -53,7 +53,7 @@ export default { // store 赋值 state.asideCollapse = !state.asideCollapse // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'menu.asideCollapse', value: state.asideCollapse diff --git a/src/store/modules/d2admin/modules/page.js b/src/store/modules/d2admin/modules/page.js index e373ea74..63e8d844 100644 --- a/src/store/modules/d2admin/modules/page.js +++ b/src/store/modules/d2admin/modules/page.js @@ -93,7 +93,7 @@ export default { * @param {Object} state vuex state */ opend2db (state) { - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'page.opened', value: state.opened diff --git a/src/store/modules/d2admin/modules/theme.js b/src/store/modules/d2admin/modules/theme.js index 3bd2adb0..f5920baf 100644 --- a/src/store/modules/d2admin/modules/theme.js +++ b/src/store/modules/d2admin/modules/theme.js @@ -30,7 +30,7 @@ export default { // 将 vuex 中的主题应用到 dom this.commit('d2admin/theme/dom') // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'theme.activeName', value: state.activeName diff --git a/src/store/modules/d2admin/modules/transition.js b/src/store/modules/d2admin/modules/transition.js index 566da7ac..b08ce975 100644 --- a/src/store/modules/d2admin/modules/transition.js +++ b/src/store/modules/d2admin/modules/transition.js @@ -17,7 +17,7 @@ export default { // store 赋值 state.active = active // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'transition.active', value: state.active diff --git a/src/store/modules/d2admin/modules/user.js b/src/store/modules/d2admin/modules/user.js index 5b2728bd..51b1be25 100644 --- a/src/store/modules/d2admin/modules/user.js +++ b/src/store/modules/d2admin/modules/user.js @@ -17,7 +17,7 @@ export default { // store 赋值 state.info = info // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'user.info', value: info