增加不重复字段
+增加自定义字段
+删除字段
+清空当前用户数据
+增加不重复字段
+增加自定义字段
+删除字段
+清空当前用户数据
+增加不重复字段
@@ -55,14 +55,14 @@ export default { }, methods: { ...mapActions('d2admin/db', [ - 'databaseByUser', - 'databaseByUserClear' + 'database', + 'databaseClear' ]), /** * 加载本地数据 */ async load () { - const db = await this.databaseByUser() + const db = await this.database({ user: true }) this.dataDisplay = JSON.stringify(db.value(), null, 2) this.keyNameList = Object.keys(db.value()).map(k => ({ value: k, @@ -73,7 +73,7 @@ export default { * 删除一个字段 */ async handleDelete (name) { - const db = await this.databaseByUser() + const db = await this.database({ user: true }) db .unset(name) .write() @@ -84,7 +84,7 @@ export default { * 清空当前用户的数据 */ async handleClear () { - await this.databaseByUserClear() + await this.databaseClear({ user: true }) this.load() }, /** @@ -95,7 +95,7 @@ export default { this.$message.error('字段名不能为空') return } - const db = await this.databaseByUser() + const db = await this.database({ user: true }) db .set(this.keyNameToSet, this.valueToSet) .write() @@ -106,7 +106,7 @@ export default { */ async handleSetRandom () { const id = day().valueOf() - const db = await this.databaseByUser() + const db = await this.database({ user: true }) db .set(id, Math.round(id * Math.random())) .write() diff --git a/src/router/routes.js.REMOVED.git-id b/src/router/routes.js.REMOVED.git-id index 704e7e21..b6a8e11e 100644 --- a/src/router/routes.js.REMOVED.git-id +++ b/src/router/routes.js.REMOVED.git-id @@ -1 +1 @@ -3f797ef981679608bad178b6a1a748bfa08e6ade \ No newline at end of file +7558a0da48296f987f92467e104ef3cd36eb2dde \ 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 bcaa637c..39a885ea 100644 --- a/src/store/modules/d2admin/modules/db.js +++ b/src/store/modules/d2admin/modules/db.js @@ -51,7 +51,7 @@ export default { }), value).write() }, /** - * @description 将数据存储到指定位置 | 路径不存在会自动初始化 [区分用户] + * @description 将数据存储到指定位置 | 路径不存在会自动初始化 [ 区分用户 ] * @description 效果类似于 dbName.path[user] = value * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 @@ -72,53 +72,142 @@ export default { actions: { /** * @description 获取存储数据库对象 + * @param {Object} context context + * @param {Object} param user {Boolean} 是否区分用户 */ - database () { + database (context, { + user = false + } = {}) { return new Promise(resolve => { resolve(db.get(pathInit({ dbName: 'database', path: '', - user: false, + user, defaultValue: {} }))) }) }, /** * @description 清空存储数据库对象 + * @param {Object} context context + * @param {Object} param user {Boolean} 是否区分用户 */ - databaseClear () { + databaseClear (context, { + user = false + } = {}) { return new Promise(resolve => { resolve(db.get(pathInit({ dbName: 'database', path: '', - user: false, + user, validator: () => false, defaultValue: {} }))) }) }, /** - * @description 获取存储数据库对象 [区分用户] + * @description 获取存储数据库对象 [ 区分页面 ] + * @param {Object} context context + * @param {Object} param vm {Object} vue + * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ] + * @param {Object} param user {Boolean} 是否区分用户 */ - databaseByUser () { + databasePage (context, { + vm, + basis = 'name', + user = false + } = {}) { return new Promise(resolve => { resolve(db.get(pathInit({ dbName: 'database', - path: '', - user: true, + path: vm.$route[basis], + user, defaultValue: {} }))) }) }, /** - * @description 清空存储数据库对象 [区分用户] + * @description 清空存储数据库对象 [ 区分页面 ] + * @param {Object} context context + * @param {Object} param vm {Object} vue + * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ] + * @param {Object} param user {Boolean} 是否区分用户 */ - databaseByUserClear () { + databasePageClear (context, { + vm, + basis = 'name', + user = false + } = {}) { return new Promise(resolve => { resolve(db.get(pathInit({ dbName: 'database', - path: '', - user: true, + path: vm.$route[basis], + user, + validator: () => false, + defaultValue: {} + }))) + }) + }, + /** + * @description 快速将页面当前的数据 ( $data ) 持久化 + * @param {Object} context context + * @param {Object} param vm {Object} vue + * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ] + * @param {Object} param user {Boolean} 是否区分用户 + */ + pageSet (context, { + vm, + basis = 'name', + user = false + }) { + return new Promise(resolve => { + resolve(db.get(pathInit({ + dbName: 'database', + path: `${vm.$route[basis]}.$data`, + user, + validator: () => false, + defaultValue: vm.$data + }))) + }) + }, + /** + * @description 快速获取页面快速持久化的数据 + * @param {Object} context context + * @param {Object} param vm {Object} vue + * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ] + * @param {Object} param user {Boolean} 是否区分用户 + */ + pageLoad (context, { + vm, + basis = 'name', + user = false + }) { + return new Promise(resolve => { + resolve(db.get(pathInit({ + dbName: 'database', + path: `${vm.$route[basis]}.$data`, + user, + defaultValue: vm.$data + })).value()) + }) + }, + /** + * @description 清空页面快照 + * @param {Object} context context + * @param {Object} param vm {Object} vue + * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ] + * @param {Object} param user {Boolean} 是否区分用户 + */ + pageClear (context, { + vm, + basis = 'name', + user = false + }) { + return new Promise(resolve => { + resolve(db.get(pathInit({ + dbName: 'database', + path: `${vm.$route[basis]}.$data`, + user, validator: () => false, defaultValue: {} }))) @@ -147,7 +236,7 @@ export default { }) }, /** - * @description 获取数据 [区分用户] + * @description 获取数据 [ 区分用户 ] * @description 效果类似于 dbName.path[user] || defaultValue * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称