2018-08-08 16:04:10 +08:00
|
|
|
import db from '@/libs/db.js'
|
|
|
|
|
import util from '@/libs/util.js'
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 检查路径是否存在 不存在的话初始化
|
2018-08-09 14:12:34 +08:00
|
|
|
* @param {Object} param dbName {String} 数据库名称
|
|
|
|
|
* @param {Object} param path {String} 路径
|
|
|
|
|
* @param {Object} param defaultValue {*} 初始化默认值
|
2018-08-08 16:04:10 +08:00
|
|
|
*/
|
|
|
|
|
function pathInit ({
|
2018-08-09 22:48:22 +08:00
|
|
|
dbName = 'db',
|
2018-08-08 16:04:10 +08:00
|
|
|
path = '',
|
2018-08-09 22:48:22 +08:00
|
|
|
defaultValue = ''
|
2018-08-08 16:04:10 +08:00
|
|
|
}) {
|
|
|
|
|
const sys = db.get(dbName)
|
|
|
|
|
if (!sys.get(path).value()) {
|
|
|
|
|
sys
|
|
|
|
|
.set(path, defaultValue)
|
|
|
|
|
.write()
|
|
|
|
|
}
|
|
|
|
|
return sys.get(path)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description 检查路径下是否有当前用户的档案
|
2018-08-09 14:12:34 +08:00
|
|
|
* @param {Object} param dbName {String} 数据库名称
|
|
|
|
|
* @param {Object} param path {String} 路径
|
2018-08-08 16:04:10 +08:00
|
|
|
*/
|
|
|
|
|
function isRowExistByUser ({
|
|
|
|
|
dbName = 'sys',
|
|
|
|
|
path = ''
|
|
|
|
|
}) {
|
|
|
|
|
const sys = db.get(dbName)
|
|
|
|
|
const row = sys
|
|
|
|
|
.get(path)
|
|
|
|
|
.find({
|
|
|
|
|
uuid: util.cookies.get('uuid')
|
|
|
|
|
})
|
|
|
|
|
// 返回可以操作的 row 或者布尔值 false
|
|
|
|
|
// 外部判断返回值的时候建议使用 if (!isRowExistByUser({}))
|
|
|
|
|
if (row.value()) {
|
|
|
|
|
return row
|
|
|
|
|
} else {
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
namespaced: true,
|
|
|
|
|
mutations: {
|
|
|
|
|
/**
|
2018-08-09 22:48:22 +08:00
|
|
|
* @description 将数据存储到指定位置 [不区分用户]
|
|
|
|
|
* @param {Object} state vuex state
|
|
|
|
|
* @param {Object} param dbName {String} 数据库名称
|
|
|
|
|
* @param {Object} param path {String} 存储路径
|
|
|
|
|
* @param {Object} param value {*} 需要存储的值
|
|
|
|
|
*/
|
|
|
|
|
set (state, {
|
|
|
|
|
dbName = 'db',
|
|
|
|
|
path = '',
|
|
|
|
|
value = ''
|
|
|
|
|
}) {
|
|
|
|
|
db
|
|
|
|
|
.get(dbName)
|
|
|
|
|
.set(path, value)
|
|
|
|
|
.write()
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* @description 将数据存储到指定位置 [区分用户]
|
2018-08-08 16:04:10 +08:00
|
|
|
* @param {Object} state vuex state
|
2018-08-09 14:12:34 +08:00
|
|
|
* @param {Object} param dbName {String} 数据库名称
|
|
|
|
|
* @param {Object} param path {String} 存储路径
|
|
|
|
|
* @param {Object} param value {*} 需要存储的值
|
2018-08-08 16:04:10 +08:00
|
|
|
*/
|
2018-08-09 22:48:22 +08:00
|
|
|
setByUser (state, {
|
|
|
|
|
dbName = 'db',
|
2018-08-08 16:04:10 +08:00
|
|
|
path = '',
|
|
|
|
|
value = ''
|
|
|
|
|
}) {
|
|
|
|
|
// 得到路径在数据库中的对象 没有初始化会自动初始化
|
|
|
|
|
// ByUser 类型的默认值设置为数组
|
|
|
|
|
// 以后数组的每一项是一个用户的存档
|
|
|
|
|
const currentPath = pathInit({ dbName, path, defaultValue: [] })
|
|
|
|
|
// 得到当前用户在数据库此路径下的存档
|
|
|
|
|
const row = isRowExistByUser({ dbName, path })
|
|
|
|
|
// 合并 or 追加
|
|
|
|
|
if (!row) {
|
|
|
|
|
currentPath.push({
|
|
|
|
|
uuid: util.cookies.get('uuid'),
|
|
|
|
|
value
|
|
|
|
|
}).write()
|
|
|
|
|
} else {
|
|
|
|
|
row.assign({ value }).write()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
actions: {
|
|
|
|
|
/**
|
2018-08-09 22:48:22 +08:00
|
|
|
* @description 获取数据 [区分用户]
|
2018-08-08 16:04:10 +08:00
|
|
|
* @param {Object} state vuex state
|
2018-08-09 14:12:34 +08:00
|
|
|
* @param {Object} param dbName {String} 数据库名称
|
|
|
|
|
* @param {Object} param path {String} 存储路径
|
|
|
|
|
* @param {Object} param defaultValue {*} 取值失败的默认值
|
2018-08-08 16:04:10 +08:00
|
|
|
*/
|
2018-08-09 22:48:22 +08:00
|
|
|
getByUser (context, {
|
|
|
|
|
dbName = 'db',
|
2018-08-08 16:04:10 +08:00
|
|
|
path = '',
|
|
|
|
|
defaultValue = ''
|
|
|
|
|
}) {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
// 得到当前用户在数据库此路径下的存档
|
|
|
|
|
const row = isRowExistByUser({ path })
|
|
|
|
|
// 返回存档或者默认值
|
|
|
|
|
resolve(!row ? defaultValue : row.value().value)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|