diff --git a/src/menu/modules/demo-playground.js b/src/menu/modules/demo-playground.js
index acc3c425..2694de35 100644
--- a/src/menu/modules/demo-playground.js
+++ b/src/menu/modules/demo-playground.js
@@ -40,7 +40,9 @@ export default {
title: '数据持久化',
icon: 'database',
children: [
- { path: `${pre}db/util`, title: 'db.util', icon: 'cube' }
+ { path: `${pre}db/all`, title: '全部数据', icon: 'table' },
+ { path: `${pre}db/user`, title: '用户数据', icon: 'user' },
+ { path: `${pre}db/public`, title: '公用数据', icon: 'users' }
]
},
{
diff --git a/src/pages/demo/playground/db/all/index.vue b/src/pages/demo/playground/db/all/index.vue
new file mode 100644
index 00000000..93ecdf33
--- /dev/null
+++ b/src/pages/demo/playground/db/all/index.vue
@@ -0,0 +1,29 @@
+
+
+
+
+ 重新获取本地数据
+
+
+
+
+
+
+
diff --git a/src/pages/demo/playground/db/public/index.vue b/src/pages/demo/playground/db/public/index.vue
new file mode 100644
index 00000000..5178f9ee
--- /dev/null
+++ b/src/pages/demo/playground/db/public/index.vue
@@ -0,0 +1,118 @@
+
+
+ 持久化存储公用数据(所有用户共享)
+
+
+ 增加不重复字段
+ 增加
+ 增加自定义字段
+
+
+ 增加
+ 删除字段
+
+
+
+
+ 清空当前用户数据
+ 清空
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/demo/playground/db/user/index.vue b/src/pages/demo/playground/db/user/index.vue
new file mode 100644
index 00000000..aaf60a8d
--- /dev/null
+++ b/src/pages/demo/playground/db/user/index.vue
@@ -0,0 +1,118 @@
+
+
+ 持久化存储用户数据(用户区分存储)
+
+
+ 增加不重复字段
+ 增加
+ 增加自定义字段
+
+
+ 增加
+ 删除字段
+
+
+
+
+ 清空当前用户数据
+ 清空
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/demo/playground/db/util/index.vue b/src/pages/demo/playground/db/util/index.vue
deleted file mode 100644
index 93efcb3b..00000000
--- a/src/pages/demo/playground/db/util/index.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
- header
-
-
-
-
-
- dbName
-
-
-
- path
-
-
-
-
-
- key
-
-
-
- value
-
-
-
- 存储
- 保存 {{key}} = "{{value}}"
-
- 保存 {{key}} = "{{value}}" 当前用户
- 取值
- 取值 key = "{{key}}"
-
- 取值 key = "{{key}}" 当前用户
-
-
-
- db.get('{{dbName}}').value()
-
-
-
-
-
-
-
-
-
diff --git a/src/router/routes.js.REMOVED.git-id b/src/router/routes.js.REMOVED.git-id
index 87fea966..66314f5e 100644
--- a/src/router/routes.js.REMOVED.git-id
+++ b/src/router/routes.js.REMOVED.git-id
@@ -1 +1 @@
-16b7e123957b7e4ef7d5c6270616b8f00d2dd381
\ No newline at end of file
+ca12a11b6d9d0552250eb2da1e7bac555902f68d
\ 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 0e596a69..c6c8d8c3 100644
--- a/src/store/modules/d2admin/modules/db.js
+++ b/src/store/modules/d2admin/modules/db.js
@@ -17,16 +17,15 @@ function pathInit ({
validator = () => true,
defaultValue = ''
}) {
- const sys = db.get(dbName)
const uuid = util.cookies.get('uuid') || 'ghost-uuid'
- const currentPath = `${user ? `user.${uuid}` : 'public'}.${path}`
- const value = sys.get(currentPath).value()
+ const currentPath = `${dbName}.${user ? `user.${uuid}` : 'public'}${path ? `.${path}` : ''}`
+ const value = db.get(currentPath).value()
if (!(value && validator(value))) {
- sys
+ db
.set(currentPath, defaultValue)
.write()
}
- return `${dbName}.${currentPath}`
+ return currentPath
}
export default {
@@ -71,6 +70,56 @@ export default {
}
},
actions: {
+ /**
+ * @description 获取存储数据库对象
+ */
+ database () {
+ return new Promise(resolve => {
+ resolve(db.get(pathInit({
+ dbName: 'database',
+ user: false,
+ defaultValue: {}
+ })))
+ })
+ },
+ /**
+ * @description 清空存储数据库对象
+ */
+ databaseClear () {
+ return new Promise(resolve => {
+ resolve(db.get(pathInit({
+ dbName: 'database',
+ user: false,
+ validator: () => false,
+ defaultValue: {}
+ })))
+ })
+ },
+ /**
+ * @description 获取存储数据库对象 [区分用户]
+ */
+ databaseByUser () {
+ return new Promise(resolve => {
+ resolve(db.get(pathInit({
+ dbName: 'database',
+ user: true,
+ defaultValue: {}
+ })))
+ })
+ },
+ /**
+ * @description 清空存储数据库对象 [区分用户]
+ */
+ databaseByUserClear () {
+ return new Promise(resolve => {
+ resolve(db.get(pathInit({
+ dbName: 'database',
+ user: true,
+ validator: () => false,
+ defaultValue: {}
+ })))
+ })
+ },
/**
* @description 获取数据
* @description 效果类似于 dbName.path || defaultValue
@@ -84,7 +133,7 @@ export default {
path = '',
defaultValue = ''
}) {
- return new Promise((resolve, reject) => {
+ return new Promise(resolve => {
resolve(db.get(pathInit({
dbName,
path,