diff --git a/src/pages/demo/business/issues/142/edit-cache-db.vue b/src/pages/demo/business/issues/142/edit-cache-db.vue
new file mode 100644
index 00000000..e4af898f
--- /dev/null
+++ b/src/pages/demo/business/issues/142/edit-cache-db.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+ 修改
+
+
+
+
+
+
+
+
diff --git a/src/pages/demo/business/issues/142/edit.vue b/src/pages/demo/business/issues/142/edit.vue
index ca9ccdb4..48b96f63 100644
--- a/src/pages/demo/business/issues/142/edit.vue
+++ b/src/pages/demo/business/issues/142/edit.vue
@@ -1,13 +1,12 @@
- 编辑 id: {{id}}
+ class="page">
+ class="page--form">
@@ -22,22 +21,11 @@
diff --git a/src/pages/demo/business/issues/142/index.vue b/src/pages/demo/business/issues/142/index.vue
index ceb280e6..c52280ac 100644
--- a/src/pages/demo/business/issues/142/index.vue
+++ b/src/pages/demo/business/issues/142/index.vue
@@ -2,7 +2,8 @@
goToEditPage('demo-business-issues-142-edit', row.id)"
+ @edit-cache-db="({ index, row }) => goToEditPage('demo-business-issues-142-edit-cache-db', row.id)"
style="margin: -15px 0;"/>
{
+ // 重置表单
+ this.resetFormData()
+ // 请求数据
+ get(id)
+ .then(res => {
+ const { name, address } = res
+ this.form = { name, address }
+ this.$message.success('getFormData')
+ resolve()
+ })
+ .catch(err => {
+ console.log('err', err)
+ reject(err)
+ })
+ })
+ },
+ // [业务逻辑] 提交
+ handleSubmit () {
+ this.$notify({
+ title: 'Submit',
+ message: '提交了表单',
+ type: 'info'
+ })
+ }
+ }
+}
diff --git a/src/router/modules/business.js b/src/router/modules/business.js
index 7ba893a8..bf5a31af 100644
--- a/src/router/modules/business.js
+++ b/src/router/modules/business.js
@@ -45,6 +45,16 @@ export default {
...meta,
title: '无缓存编辑'
}
+ },
+ {
+ path: 'issues/142/edit-cache-db/:id',
+ name: `${pre}issues-142-edit-cache-db`,
+ component: () => import('@/pages/demo/business/issues/142/edit-cache-db'),
+ props: true,
+ meta: {
+ ...meta,
+ title: '带缓存编辑 DB'
+ }
}
])('demo-business-')
}
diff --git a/src/store/modules/d2admin/modules/db.js b/src/store/modules/d2admin/modules/db.js
index b8045c71..4bf6dd15 100644
--- a/src/store/modules/d2admin/modules/db.js
+++ b/src/store/modules/d2admin/modules/db.js
@@ -1,5 +1,6 @@
import db from '@/libs/db.js'
import util from '@/libs/util.js'
+import { cloneDeep } from 'lodash'
/**
* @description 检查路径是否存在 不存在的话初始化
@@ -20,6 +21,13 @@ 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()
+ console.group('pathInit')
+ console.log('dbName', dbName)
+ console.log('path', path)
+ console.log('user', user)
+ console.log('defaultValue', defaultValue)
+ console.log('value', value)
+ console.groupEnd()
if (!(value !== undefined && validator(value))) {
db
.set(currentPath, defaultValue)
@@ -66,12 +74,12 @@ export default {
user = false
}) {
return new Promise(resolve => {
- resolve(db.get(pathInit({
+ resolve(cloneDeep(db.get(pathInit({
dbName,
path,
user,
defaultValue
- })).value())
+ })).value()))
})
},
/**
@@ -118,7 +126,7 @@ export default {
*/
databasePage (context, {
vm,
- basis = 'name',
+ basis = 'fullPath',
user = false
} = {}) {
return new Promise(resolve => {
@@ -139,7 +147,7 @@ export default {
*/
databasePageClear (context, {
vm,
- basis = 'name',
+ basis = 'fullPath',
user = false
} = {}) {
return new Promise(resolve => {
@@ -161,7 +169,7 @@ export default {
*/
pageSet (context, {
vm,
- basis = 'name',
+ basis = 'fullPath',
user = false
}) {
return new Promise(resolve => {
@@ -170,7 +178,7 @@ export default {
path: `$page.${vm.$route[basis]}.$data`,
user,
validator: () => false,
- defaultValue: vm.$data
+ defaultValue: cloneDeep(vm.$data)
})))
})
},
@@ -183,16 +191,16 @@ export default {
*/
pageGet (context, {
vm,
- basis = 'name',
+ basis = 'fullPath',
user = false
}) {
return new Promise(resolve => {
- resolve(db.get(pathInit({
+ resolve(cloneDeep(db.get(pathInit({
dbName: 'database',
path: `$page.${vm.$route[basis]}.$data`,
user,
- defaultValue: vm.$data
- })).value())
+ defaultValue: cloneDeep(vm.$data)
+ })).value()))
})
},
/**
@@ -204,7 +212,7 @@ export default {
*/
pageClear (context, {
vm,
- basis = 'name',
+ basis = 'fullPath',
user = false
}) {
return new Promise(resolve => {