util user menu releases

Former-commit-id: 236acdba4bc6cbd5921647fd5c1ee0258f43c143 [formerly 236acdba4bc6cbd5921647fd5c1ee0258f43c143 [formerly 236acdba4bc6cbd5921647fd5c1ee0258f43c143 [formerly 236acdba4bc6cbd5921647fd5c1ee0258f43c143 [formerly cd607a12b20a3d53a1967ee6012a35e03e3d31fe [formerly 645a010d0d8f84a370c509c39c560d93eaa8ae4f]]]]]
Former-commit-id: fd4e72b6a4dc7cb2731c0b5fbf343dab6c251d3f
Former-commit-id: 68305cd58cbd1927373a79c1b507de3c4f3d9924
Former-commit-id: 48312890868f48d5524b0de0dda489f2b2c57b0a [formerly fec91cd8f508ffe42c5e254dcee018c879f3d51e]
Former-commit-id: 9e300a2baafd1eae86bb69a052f15b904724856e
Former-commit-id: eaafbb0a410a49a286eb8e666b6784b96c9df371
Former-commit-id: ccef5438dddbe9762bd3574b33aab49bc1edee58
Former-commit-id: d2ca5c406860c43079d78a80d18ca2b1ed87f776
Former-commit-id: d4648c6865bff45b24aea999b60381b78417b802
This commit is contained in:
liyang
2018-08-08 16:04:10 +08:00
parent 8ef8ae0ca4
commit 5a91ab709f
15 changed files with 317 additions and 85 deletions

View File

@@ -1 +1 @@
523f1a7e36f1281a070291d62241d6cdc675d19e
a1c3d72ea5edb20e160908b56adff479dbc3446c

View File

@@ -0,0 +1,67 @@
export default {
namespaced: true,
state: {
// 顶栏菜单
header: [],
// 侧栏菜单
aside: [],
// 侧边栏收缩
asideCollapse: false
},
mutations: {
/**
* @param {Object} state vuex state
* @param {Array} menu menu setting
*/
headerSet (state, menu) {
state.header = menu
},
/**
* @param {Object} state vuex state
* @param {Array} menu menu setting
*/
asideSet (state, menu) {
state.aside = menu
},
/**
* 设置侧边栏展开或者收缩
* @param {Object} state vuex state
* @param {Boolean} collapse is collapse
*/
asideCollapseSet (state, collapse) {
// store 赋值
state.asideCollapse = collapse
// 持久化
this.commit('d2admin/util/dbValueSetByUser', {
dbName: 'sys',
path: 'menu.asideCollapse',
value: collapse
})
},
/**
* 切换侧边栏展开和收缩
* @param {Object} state vuex state
*/
asideCollapseToggle (state) {
state.asideCollapse = !state.asideCollapse
// 持久化
this.commit('d2admin/util/dbValueSetByUser', {
dbName: 'sys',
path: 'menu.asideCollapse',
value: state.asideCollapse
})
},
/**
* 从数据库读取侧边栏展开或者收缩
* @param {Object} state vuex state
*/
async asideCollapseLoad (state) {
// store 赋值
state.asideCollapse = await this.dispatch('d2admin/util/dbValueGetByUser', {
dbName: 'sys',
path: 'menu.asideCollapse',
defaultValue: false
})
}
}
}

View File

@@ -0,0 +1,31 @@
import { version } from '../../../../../package'
export default {
namespaced: true,
state: {
// D2Admin 版本
version,
// 最新版本的信息
latest: {},
// 有新版本
update: false
},
mutations: {
/**
* @description 设置是否有新的 D2Admin 版本
* @param {Object} state vuex state
* @param {Boolean} update can update
*/
updateSet (state, update) {
state.update = update
},
/**
* @description 设置最新版本的信息
* @param {Object} state vuex state
* @param {Object}} latest releases value
*/
latestSet (state, latest) {
state.latest = latest
}
}
}

View File

@@ -0,0 +1,36 @@
export default {
state: {
userInfo: {
name: ''
}
},
mutations: {
/**
* @description 设置用户数据
* @param {Object} state vuex state
* @param {*} userInfo userInfo
*/
userInfoSet (state, userInfo) {
// store 赋值
state.userInfo = userInfo
// 持久化
this.commit('d2admin/util/dbValueSetByUser', {
dbName: 'sys',
path: 'user.userInfo',
value: userInfo
})
},
/**
* @description 从数据库取用户数据
* @param {Object} state vuex state
*/
async userInfoLoad (state) {
// store 赋值
state.userInfo = await this.dispatch('d2admin/util/dbValueGetByUser', {
dbName: 'sys',
path: 'user.userInfo',
defaultValue: '请重新登陆'
})
}
}
}

View File

@@ -0,0 +1,101 @@
import db from '@/libs/db.js'
import util from '@/libs/util.js'
/**
* @description 检查路径是否存在 不存在的话初始化
* @param {Object} param dbName {String}: 数据库名称
* @param {Object} param path {String}: 路径
* @param {Object} param defaultValue {*}: 初始化默认值
*/
function pathInit ({
dbName = 'sys',
path = '',
defaultValue = []
}) {
const sys = db.get(dbName)
if (!sys.get(path).value()) {
sys
.set(path, defaultValue)
.write()
}
return sys.get(path)
}
/**
* @description 检查路径下是否有当前用户的档案
* @param {Object} param dbName {String}: 数据库名称
* @param {Object} param path {String}: 路径
*/
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: {
/**
* @description 将数据存储到指定位置 [用户存储区域]
* @param {Object} state vuex state
* @param {Object} param dbName {String}: 数据库名称
* @param {Object} param path {String}: 存储路径
* @param {Object} param value {*}: 需要存储的值
*/
dbValueSetByUser (state, {
dbName = 'sys',
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: {
/**
* @description 从系统存储中获取数据 [用户存储区域]
* @param {Object} state vuex state
* @param {Object} param dbName {String}: 数据库名称
* @param {Object} param path {String}: 存储路径
* @param {Object} param defaultValue {*}: 取值失败的默认值
*/
dbValueGetByUser (context, {
dbName = 'sys',
path = '',
defaultValue = ''
}) {
return new Promise((resolve, reject) => {
// 得到当前用户在数据库此路径下的存档
const row = isRowExistByUser({ path })
// 返回存档或者默认值
resolve(!row ? defaultValue : row.value().value)
})
}
}
}