Former-commit-id: f246662bbf830bd098145c0a71d80f67259a9583
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
import low from 'lowdb'
|
import low from 'lowdb'
|
||||||
import LocalStorage from 'lowdb/adapters/LocalStorage'
|
import LocalStorage from 'lowdb/adapters/LocalStorage'
|
||||||
|
import util from '@/libs/util'
|
||||||
|
import { cloneDeep } from 'lodash'
|
||||||
|
|
||||||
const adapter = new LocalStorage(`d2admin-${process.env.VUE_APP_VERSION}`)
|
const adapter = new LocalStorage(`d2admin-${process.env.VUE_APP_VERSION}`)
|
||||||
const db = low(adapter)
|
const db = low(adapter)
|
||||||
@@ -12,3 +14,93 @@ db
|
|||||||
.write()
|
.write()
|
||||||
|
|
||||||
export default db
|
export default db
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 检查路径是否存在 不存在的话初始化
|
||||||
|
* @param {Object} payload dbName {String} 数据库名称
|
||||||
|
* @param {Object} payload path {String} 路径
|
||||||
|
* @param {Object} payload user {Boolean} 区分用户
|
||||||
|
* @param {Object} payload validator {Function} 数据校验钩子 返回 true 表示验证通过
|
||||||
|
* @param {Object} payload defaultValue {*} 初始化默认值
|
||||||
|
* @returns {String} 可以直接使用的路径
|
||||||
|
*/
|
||||||
|
export function pathInit ({
|
||||||
|
dbName = 'database',
|
||||||
|
path = '',
|
||||||
|
user = true,
|
||||||
|
validator = () => true,
|
||||||
|
defaultValue = ''
|
||||||
|
}) {
|
||||||
|
const uuid = util.cookies.get('uuid') || 'ghost-uuid'
|
||||||
|
const currentPath = `${dbName}.${user ? `user.${uuid}` : 'public'}${path ? `.${path}` : ''}`
|
||||||
|
const value = db.get(currentPath).value()
|
||||||
|
if (!(value !== undefined && validator(value))) {
|
||||||
|
db
|
||||||
|
.set(currentPath, defaultValue)
|
||||||
|
.write()
|
||||||
|
}
|
||||||
|
return currentPath
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 将数据存储到指定位置 | 路径不存在会自动初始化
|
||||||
|
* @description 效果类似于取值 dbName.path = value
|
||||||
|
* @param {Object} payload dbName {String} 数据库名称
|
||||||
|
* @param {Object} payload path {String} 存储路径
|
||||||
|
* @param {Object} payload value {*} 需要存储的值
|
||||||
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
|
*/
|
||||||
|
export function dbSet ({
|
||||||
|
dbName = 'database',
|
||||||
|
path = '',
|
||||||
|
value = '',
|
||||||
|
user = false
|
||||||
|
}) {
|
||||||
|
db.set(pathInit({
|
||||||
|
dbName,
|
||||||
|
path,
|
||||||
|
user
|
||||||
|
}), value).write()
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 获取数据
|
||||||
|
* @description 效果类似于取值 dbName.path || defaultValue
|
||||||
|
* @param {Object} payload dbName {String} 数据库名称
|
||||||
|
* @param {Object} payload path {String} 存储路径
|
||||||
|
* @param {Object} payload defaultValue {*} 取值失败的默认值
|
||||||
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
|
*/
|
||||||
|
export function dbGet ({
|
||||||
|
dbName = 'database',
|
||||||
|
path = '',
|
||||||
|
defaultValue = '',
|
||||||
|
user = false
|
||||||
|
}) {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
resolve(cloneDeep(db.get(pathInit({
|
||||||
|
dbName,
|
||||||
|
path,
|
||||||
|
user,
|
||||||
|
defaultValue
|
||||||
|
})).value()))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 获取存储数据库对象
|
||||||
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
|
*/
|
||||||
|
export function database ({
|
||||||
|
dbName = 'database',
|
||||||
|
path = '',
|
||||||
|
user = false,
|
||||||
|
validator = () => true,
|
||||||
|
defaultValue = ''
|
||||||
|
} = {}) {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
resolve(db.get(pathInit({
|
||||||
|
dbName, path, user, validator, defaultValue
|
||||||
|
})))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 登录
|
* @description 登录
|
||||||
* @param {Object} param context
|
* @param {Object} context
|
||||||
* @param {Object} param username {String} 用户账号
|
* @param {Object} payload username {String} 用户账号
|
||||||
* @param {Object} param password {String} 密码
|
* @param {Object} payload password {String} 密码
|
||||||
* @param {Object} param route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式
|
* @param {Object} payload route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式
|
||||||
*/
|
*/
|
||||||
login ({ dispatch }, {
|
login ({ dispatch }, {
|
||||||
username = '',
|
username = '',
|
||||||
@@ -48,8 +48,8 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 注销用户并返回登录页面
|
* @description 注销用户并返回登录页面
|
||||||
* @param {Object} param context
|
* @param {Object} context
|
||||||
* @param {Object} param confirm {Boolean} 是否需要确认
|
* @param {Object} payload confirm {Boolean} 是否需要确认
|
||||||
*/
|
*/
|
||||||
logout ({ commit, dispatch }, { confirm = false } = {}) {
|
logout ({ commit, dispatch }, { confirm = false } = {}) {
|
||||||
/**
|
/**
|
||||||
@@ -69,9 +69,9 @@ export default {
|
|||||||
// 判断是否需要确认
|
// 判断是否需要确认
|
||||||
if (confirm) {
|
if (confirm) {
|
||||||
commit('d2admin/gray/set', true, { root: true })
|
commit('d2admin/gray/set', true, { root: true })
|
||||||
MessageBox.confirm('注销当前账户吗? 打开的标签页和用户设置将会被保存。', '确认操作', {
|
MessageBox.confirm('确定要注销当前用户吗', '注销用户', {
|
||||||
confirmButtonText: '确定注销',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '放弃',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@@ -81,7 +81,7 @@ export default {
|
|||||||
.catch(() => {
|
.catch(() => {
|
||||||
commit('d2admin/gray/set', false, { root: true })
|
commit('d2admin/gray/set', false, { root: true })
|
||||||
Message({
|
Message({
|
||||||
message: '放弃注销用户'
|
message: '取消注销操作'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@@ -90,7 +90,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 用户登录后从持久化数据加载一系列的设置
|
* @description 用户登录后从持久化数据加载一系列的设置
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
load ({ dispatch }) {
|
load ({ dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
|
|||||||
@@ -1,33 +1,6 @@
|
|||||||
import util from '@/libs/util'
|
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
import { cloneDeep } from 'lodash'
|
import { cloneDeep } from 'lodash'
|
||||||
|
import { database as getDatabase, dbGet, dbSet } from '@/libs/util.db'
|
||||||
/**
|
|
||||||
* @description 检查路径是否存在 不存在的话初始化
|
|
||||||
* @param {Object} param dbName {String} 数据库名称
|
|
||||||
* @param {Object} param path {String} 路径
|
|
||||||
* @param {Object} param user {Boolean} 区分用户
|
|
||||||
* @param {Object} param validator {Function} 数据校验钩子 返回 true 表示验证通过
|
|
||||||
* @param {Object} param defaultValue {*} 初始化默认值
|
|
||||||
* @returns {String} 可以直接使用的路径
|
|
||||||
*/
|
|
||||||
function pathInit ({
|
|
||||||
dbName = 'database',
|
|
||||||
path = '',
|
|
||||||
user = true,
|
|
||||||
validator = () => true,
|
|
||||||
defaultValue = ''
|
|
||||||
}) {
|
|
||||||
const uuid = util.cookies.get('uuid') || 'ghost-uuid'
|
|
||||||
const currentPath = `${dbName}.${user ? `user.${uuid}` : 'public'}${path ? `.${path}` : ''}`
|
|
||||||
const value = util.db.get(currentPath).value()
|
|
||||||
if (!(value !== undefined && validator(value))) {
|
|
||||||
util.db
|
|
||||||
.set(currentPath, defaultValue)
|
|
||||||
.write()
|
|
||||||
}
|
|
||||||
return currentPath
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
namespaced: true,
|
namespaced: true,
|
||||||
@@ -35,10 +8,11 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @description 将数据存储到指定位置 | 路径不存在会自动初始化
|
* @description 将数据存储到指定位置 | 路径不存在会自动初始化
|
||||||
* @description 效果类似于取值 dbName.path = value
|
* @description 效果类似于取值 dbName.path = value
|
||||||
* @param {Object} param dbName {String} 数据库名称
|
* @param {Object} context
|
||||||
* @param {Object} param path {String} 存储路径
|
* @param {Object} payload dbName {String} 数据库名称
|
||||||
* @param {Object} param value {*} 需要存储的值
|
* @param {Object} payload path {String} 存储路径
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload value {*} 需要存储的值
|
||||||
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
set (context, {
|
set (context, {
|
||||||
dbName = 'database',
|
dbName = 'database',
|
||||||
@@ -46,19 +20,16 @@ export default {
|
|||||||
value = '',
|
value = '',
|
||||||
user = false
|
user = false
|
||||||
}) {
|
}) {
|
||||||
util.db.set(pathInit({
|
dbSet({ dbName, path, value, user })
|
||||||
dbName,
|
|
||||||
path,
|
|
||||||
user
|
|
||||||
}), value).write()
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 获取数据
|
* @description 获取数据
|
||||||
* @description 效果类似于取值 dbName.path || defaultValue
|
* @description 效果类似于取值 dbName.path || defaultValue
|
||||||
* @param {Object} param dbName {String} 数据库名称
|
* @param {Object} context
|
||||||
* @param {Object} param path {String} 存储路径
|
* @param {Object} payload dbName {String} 数据库名称
|
||||||
* @param {Object} param defaultValue {*} 取值失败的默认值
|
* @param {Object} payload path {String} 存储路径
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload defaultValue {*} 取值失败的默认值
|
||||||
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
get (context, {
|
get (context, {
|
||||||
dbName = 'database',
|
dbName = 'database',
|
||||||
@@ -66,150 +37,120 @@ export default {
|
|||||||
defaultValue = '',
|
defaultValue = '',
|
||||||
user = false
|
user = false
|
||||||
}) {
|
}) {
|
||||||
return new Promise(resolve => {
|
return dbGet({ dbName, path, defaultValue, user })
|
||||||
resolve(cloneDeep(util.db.get(pathInit({
|
|
||||||
dbName,
|
|
||||||
path,
|
|
||||||
user,
|
|
||||||
defaultValue
|
|
||||||
})).value()))
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 获取存储数据库对象
|
* @description 获取存储数据库对象
|
||||||
* @param {Object} context context
|
* @param {Object} context
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
database (context, {
|
database (context, {
|
||||||
user = false
|
user = false
|
||||||
} = {}) {
|
} = {}) {
|
||||||
return new Promise(resolve => {
|
return getDatabase({
|
||||||
resolve(util.db.get(pathInit({
|
user,
|
||||||
dbName: 'database',
|
defaultValue: {}
|
||||||
path: '',
|
|
||||||
user,
|
|
||||||
defaultValue: {}
|
|
||||||
})))
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 清空存储数据库对象
|
* @description 清空存储数据库对象
|
||||||
* @param {Object} context context
|
* @param {Object} context
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
databaseClear (context, {
|
databaseClear (context, {
|
||||||
user = false
|
user = false
|
||||||
} = {}) {
|
} = {}) {
|
||||||
return new Promise(resolve => {
|
return getDatabase({
|
||||||
resolve(util.db.get(pathInit({
|
user,
|
||||||
dbName: 'database',
|
validator: () => false,
|
||||||
path: '',
|
defaultValue: {}
|
||||||
user,
|
|
||||||
validator: () => false,
|
|
||||||
defaultValue: {}
|
|
||||||
})))
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 获取存储数据库对象 [ 区分页面 ]
|
* @description 获取存储数据库对象 [ 区分页面 ]
|
||||||
* @param {Object} context context
|
* @param {Object} context
|
||||||
* @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]
|
* @param {Object} payload basis {String} 页面区分依据 [ name | path | fullPath ]
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
databasePage (context, {
|
databasePage (context, {
|
||||||
basis = 'fullPath',
|
basis = 'fullPath',
|
||||||
user = false
|
user = false
|
||||||
} = {}) {
|
} = {}) {
|
||||||
return new Promise(resolve => {
|
return getDatabase({
|
||||||
resolve(util.db.get(pathInit({
|
path: `$page.${router.app.$route[basis]}`,
|
||||||
dbName: 'database',
|
user,
|
||||||
path: `$page.${router.app.$route[basis]}`,
|
defaultValue: {}
|
||||||
user,
|
|
||||||
defaultValue: {}
|
|
||||||
})))
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 清空存储数据库对象 [ 区分页面 ]
|
* @description 清空存储数据库对象 [ 区分页面 ]
|
||||||
* @param {Object} context context
|
* @param {Object} context
|
||||||
* @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]
|
* @param {Object} payload basis {String} 页面区分依据 [ name | path | fullPath ]
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
databasePageClear (context, {
|
databasePageClear (context, {
|
||||||
basis = 'fullPath',
|
basis = 'fullPath',
|
||||||
user = false
|
user = false
|
||||||
} = {}) {
|
} = {}) {
|
||||||
return new Promise(resolve => {
|
return getDatabase({
|
||||||
resolve(util.db.get(pathInit({
|
path: `$page.${router.app.$route[basis]}`,
|
||||||
dbName: 'database',
|
user,
|
||||||
path: `$page.${router.app.$route[basis]}`,
|
validator: () => false,
|
||||||
user,
|
defaultValue: {}
|
||||||
validator: () => false,
|
|
||||||
defaultValue: {}
|
|
||||||
})))
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 快速将页面当前的数据 ( $data ) 持久化
|
* @description 快速将页面当前的数据 ( $data ) 持久化
|
||||||
* @param {Object} context context
|
* @param {Object} context
|
||||||
* @param {Object} param instance {Object} vue 实例
|
* @param {Object} payload instance {Object} vue 实例
|
||||||
* @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]
|
* @param {Object} payload basis {String} 页面区分依据 [ name | path | fullPath ]
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
pageSet (context, {
|
pageSet (context, {
|
||||||
instance,
|
instance,
|
||||||
basis = 'fullPath',
|
basis = 'fullPath',
|
||||||
user = false
|
user = false
|
||||||
}) {
|
}) {
|
||||||
return new Promise(resolve => {
|
return getDatabase({
|
||||||
resolve(util.db.get(pathInit({
|
path: `$page.${router.app.$route[basis]}.$data`,
|
||||||
dbName: 'database',
|
user,
|
||||||
path: `$page.${router.app.$route[basis]}.$data`,
|
validator: () => false,
|
||||||
user,
|
defaultValue: cloneDeep(instance.$data)
|
||||||
validator: () => false,
|
|
||||||
defaultValue: cloneDeep(instance.$data)
|
|
||||||
})))
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 快速获取页面快速持久化的数据
|
* @description 快速获取页面快速持久化的数据
|
||||||
* @param {Object} context context
|
* @param {Object} context
|
||||||
* @param {Object} param instance {Object} vue 实例
|
* @param {Object} payload instance {Object} vue 实例
|
||||||
* @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]
|
* @param {Object} payload basis {String} 页面区分依据 [ name | path | fullPath ]
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
pageGet (context, {
|
pageGet (context, {
|
||||||
instance,
|
instance,
|
||||||
basis = 'fullPath',
|
basis = 'fullPath',
|
||||||
user = false
|
user = false
|
||||||
}) {
|
}) {
|
||||||
return new Promise(resolve => {
|
return dbGet({
|
||||||
resolve(cloneDeep(util.db.get(pathInit({
|
path: `$page.${router.app.$route[basis]}.$data`,
|
||||||
dbName: 'database',
|
user,
|
||||||
path: `$page.${router.app.$route[basis]}.$data`,
|
defaultValue: cloneDeep(instance.$data)
|
||||||
user,
|
|
||||||
defaultValue: cloneDeep(instance.$data)
|
|
||||||
})).value()))
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 清空页面快照
|
* @description 清空页面快照
|
||||||
* @param {Object} context context
|
* @param {Object} context
|
||||||
* @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]
|
* @param {Object} payload basis {String} 页面区分依据 [ name | path | fullPath ]
|
||||||
* @param {Object} param user {Boolean} 是否区分用户
|
* @param {Object} payload user {Boolean} 是否区分用户
|
||||||
*/
|
*/
|
||||||
pageClear (context, {
|
pageClear (context, {
|
||||||
basis = 'fullPath',
|
basis = 'fullPath',
|
||||||
user = false
|
user = false
|
||||||
}) {
|
}) {
|
||||||
return new Promise(resolve => {
|
return getDatabase({
|
||||||
resolve(util.db.get(pathInit({
|
path: `$page.${router.app.$route[basis]}.$data`,
|
||||||
dbName: 'database',
|
user,
|
||||||
path: `$page.${router.app.$route[basis]}.$data`,
|
validator: () => false,
|
||||||
user,
|
defaultValue: {}
|
||||||
validator: () => false,
|
|
||||||
defaultValue: {}
|
|
||||||
})))
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 初始化监听
|
* @description 初始化监听
|
||||||
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
listen ({ commit }) {
|
listen ({ commit }) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
@@ -26,6 +27,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 切换全屏
|
* @description 切换全屏
|
||||||
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
toggle ({ commit }) {
|
toggle ({ commit }) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
@@ -44,7 +46,7 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 设置 store 里的全屏状态
|
* @description 设置 store 里的全屏状态
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Boolean} active active
|
* @param {Boolean} active active
|
||||||
*/
|
*/
|
||||||
set (state, active) {
|
set (state, active) {
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 切换灰度状态
|
* @description 切换灰度状态
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
toggle (state) {
|
toggle (state) {
|
||||||
state.active = !state.active
|
state.active = !state.active
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 设置灰度模式
|
* @description 设置灰度模式
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Boolean} active active
|
* @param {Boolean} active active
|
||||||
*/
|
*/
|
||||||
set (state, active) {
|
set (state, active) {
|
||||||
|
|||||||
@@ -32,9 +32,10 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 添加一个日志
|
* @description 添加一个日志
|
||||||
|
* @param {Object} context
|
||||||
* @param {String} param message {String} 信息
|
* @param {String} param message {String} 信息
|
||||||
* @param {String} param type {String} 类型
|
* @param {String} param type {String} 类型
|
||||||
* @param {Object} param meta {Object} 附带的信息
|
* @param {Object} payload meta {Object} 附带的信息
|
||||||
*/
|
*/
|
||||||
push ({ rootState, commit }, { message, type = 'info', meta }) {
|
push ({ rootState, commit }, { message, type = 'info', meta }) {
|
||||||
commit('push', {
|
commit('push', {
|
||||||
@@ -59,7 +60,7 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 添加日志
|
* @description 添加日志
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Object} log data
|
* @param {Object} log data
|
||||||
*/
|
*/
|
||||||
push (state, log) {
|
push (state, log) {
|
||||||
@@ -67,7 +68,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 清空日志
|
* @description 清空日志
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
clean (state) {
|
clean (state) {
|
||||||
// store 赋值
|
// store 赋值
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* 设置侧边栏展开或者收缩
|
* 设置侧边栏展开或者收缩
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Boolean} collapse is collapse
|
* @param {Boolean} collapse is collapse
|
||||||
*/
|
*/
|
||||||
asideCollapseSet ({ state, dispatch }, collapse) {
|
asideCollapseSet ({ state, dispatch }, collapse) {
|
||||||
@@ -50,7 +50,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 切换侧边栏展开和收缩
|
* 切换侧边栏展开和收缩
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
asideCollapseToggle ({ state, dispatch }) {
|
asideCollapseToggle ({ state, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -69,7 +69,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 从持久化数据读取侧边栏展开或者收缩
|
* 从持久化数据读取侧边栏展开或者收缩
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
asideCollapseLoad ({ state, dispatch }) {
|
asideCollapseLoad ({ state, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -88,7 +88,7 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 设置顶栏菜单
|
* @description 设置顶栏菜单
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Array} menu menu setting
|
* @param {Array} menu menu setting
|
||||||
*/
|
*/
|
||||||
headerSet (state, menu) {
|
headerSet (state, menu) {
|
||||||
@@ -97,7 +97,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 设置侧边栏菜单
|
* @description 设置侧边栏菜单
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Array} menu menu setting
|
* @param {Array} menu menu setting
|
||||||
*/
|
*/
|
||||||
asideSet (state, menu) {
|
asideSet (state, menu) {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 确认已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
|
* @description 确认已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
|
||||||
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
isLoaded ({ state }) {
|
isLoaded ({ state }) {
|
||||||
if (state.value) return Promise.resolve()
|
if (state.value) return Promise.resolve()
|
||||||
@@ -36,7 +37,7 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 从持久化数据载入标签页列表
|
* @description 从持久化数据载入标签页列表
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
openedLoad ({ state, commit, dispatch }) {
|
openedLoad ({ state, commit, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -77,7 +78,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 将 opened 属性赋值并持久化 在这之前请先确保已经更新了 state.opened
|
* 将 opened 属性赋值并持久化 在这之前请先确保已经更新了 state.opened
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
opend2db ({ state, dispatch }) {
|
opend2db ({ state, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -95,8 +96,8 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 更新页面列表上的某一项
|
* @description 更新页面列表上的某一项
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Object} param { index, params, query, fullPath } 路由信息
|
* @param {Object} payload { index, params, query, fullPath } 路由信息
|
||||||
*/
|
*/
|
||||||
openedUpdate ({ state, commit, dispatch }, { index, params, query, fullPath }) {
|
openedUpdate ({ state, commit, dispatch }, { index, params, query, fullPath }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -115,8 +116,8 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 新增一个 tag (打开一个页面)
|
* @description 新增一个 tag (打开一个页面)
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Object} param new tag info
|
* @param {Object} payload new tag info
|
||||||
*/
|
*/
|
||||||
add ({ state, commit, dispatch }, { tag, params, query, fullPath }) {
|
add ({ state, commit, dispatch }, { tag, params, query, fullPath }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -140,8 +141,8 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class current
|
* @class current
|
||||||
* @description 打开一个新的页面
|
* @description 打开一个新的页面
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Object} param 从路由钩子的 to 对象上获取 { name, params, query, fullPath } 路由信息
|
* @param {Object} payload 从路由钩子的 to 对象上获取 { name, params, query, fullPath } 路由信息
|
||||||
*/
|
*/
|
||||||
open ({ state, commit, dispatch }, { name, params, query, fullPath }) {
|
open ({ state, commit, dispatch }, { name, params, query, fullPath }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -183,8 +184,8 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 关闭一个 tag (关闭一个页面)
|
* @description 关闭一个 tag (关闭一个页面)
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Object} param { tagName: 要关闭的标签名字 }
|
* @param {Object} payload { tagName: 要关闭的标签名字 }
|
||||||
*/
|
*/
|
||||||
close ({ state, commit, dispatch }, { tagName }) {
|
close ({ state, commit, dispatch }, { tagName }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -233,8 +234,8 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 关闭当前标签左边的标签
|
* @description 关闭当前标签左边的标签
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Object} param { pageSelect: 当前选中的tagName }
|
* @param {Object} payload { pageSelect: 当前选中的tagName }
|
||||||
*/
|
*/
|
||||||
closeLeft ({ state, commit, dispatch }, { pageSelect } = {}) {
|
closeLeft ({ state, commit, dispatch }, { pageSelect } = {}) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -262,8 +263,8 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 关闭当前标签右边的标签
|
* @description 关闭当前标签右边的标签
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Object} param { pageSelect: 当前选中的tagName }
|
* @param {Object} payload { pageSelect: 当前选中的tagName }
|
||||||
*/
|
*/
|
||||||
closeRight ({ state, commit, dispatch }, { pageSelect } = {}) {
|
closeRight ({ state, commit, dispatch }, { pageSelect } = {}) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -290,8 +291,8 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 关闭当前激活之外的 tag
|
* @description 关闭当前激活之外的 tag
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Object} param { pageSelect: 当前选中的tagName }
|
* @param {Object} payload { pageSelect: 当前选中的tagName }
|
||||||
*/
|
*/
|
||||||
closeOther ({ state, commit, dispatch }, { pageSelect } = {}) {
|
closeOther ({ state, commit, dispatch }, { pageSelect } = {}) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -323,7 +324,7 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class opened
|
* @class opened
|
||||||
* @description 关闭所有 tag
|
* @description 关闭所有 tag
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
closeAll ({ state, commit, dispatch }) {
|
closeAll ({ state, commit, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -346,14 +347,14 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class keepAlive
|
* @class keepAlive
|
||||||
* @description 从已经打开的页面记录中更新需要缓存的页面记录
|
* @description 从已经打开的页面记录中更新需要缓存的页面记录
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
keepAliveRefresh (state) {
|
keepAliveRefresh (state) {
|
||||||
state.keepAlive = state.opened.filter(item => isKeepAlive(item)).map(e => e.name)
|
state.keepAlive = state.opened.filter(item => isKeepAlive(item)).map(e => e.name)
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 删除一个页面的缓存设置
|
* @description 删除一个页面的缓存设置
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {String} name name
|
* @param {String} name name
|
||||||
*/
|
*/
|
||||||
keepAliveRemove (state, name) {
|
keepAliveRemove (state, name) {
|
||||||
@@ -367,7 +368,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 增加一个页面的缓存设置
|
* @description 增加一个页面的缓存设置
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {String} name name
|
* @param {String} name name
|
||||||
*/
|
*/
|
||||||
keepAlivePush (state, name) {
|
keepAlivePush (state, name) {
|
||||||
@@ -377,7 +378,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 清空页面缓存设置
|
* @description 清空页面缓存设置
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
keepAliveClean (state) {
|
keepAliveClean (state) {
|
||||||
state.keepAlive = []
|
state.keepAlive = []
|
||||||
@@ -385,7 +386,7 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class current
|
* @class current
|
||||||
* @description 设置当前激活的页面 fullPath
|
* @description 设置当前激活的页面 fullPath
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {String} fullPath new fullPath
|
* @param {String} fullPath new fullPath
|
||||||
*/
|
*/
|
||||||
currentSet (state, fullPath) {
|
currentSet (state, fullPath) {
|
||||||
@@ -394,7 +395,7 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @class pool
|
* @class pool
|
||||||
* @description 保存 pool (候选池)
|
* @description 保存 pool (候选池)
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Array} routes routes
|
* @param {Array} routes routes
|
||||||
*/
|
*/
|
||||||
init (state, routes) {
|
init (state, routes) {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 显示版本信息
|
* @description 显示版本信息
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
versionShow () {
|
versionShow () {
|
||||||
util.log.capsule('D2Admin', `v${process.env.VUE_APP_VERSION}`)
|
util.log.capsule('D2Admin', `v${process.env.VUE_APP_VERSION}`)
|
||||||
|
|||||||
@@ -16,14 +16,14 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 切换激活状态
|
* @description 切换激活状态
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
toggle (state) {
|
toggle (state) {
|
||||||
state.active = !state.active
|
state.active = !state.active
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 设置激活模式
|
* @description 设置激活模式
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Boolean} active active
|
* @param {Boolean} active active
|
||||||
*/
|
*/
|
||||||
set (state, active) {
|
set (state, active) {
|
||||||
@@ -31,7 +31,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 初始化
|
* @description 初始化
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
* @param {Array} menu menu
|
* @param {Array} menu menu
|
||||||
*/
|
*/
|
||||||
init (state, menu) {
|
init (state, menu) {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 将当前的设置应用到 element
|
* @description 将当前的设置应用到 element
|
||||||
|
* @param {Object} context
|
||||||
* @param {Boolean} refresh 是否在设置之后刷新页面
|
* @param {Boolean} refresh 是否在设置之后刷新页面
|
||||||
*/
|
*/
|
||||||
apply ({ state, commit }, refresh) {
|
apply ({ state, commit }, refresh) {
|
||||||
@@ -21,6 +22,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 确认已经加载组件尺寸设置 https://github.com/d2-projects/d2-admin/issues/198
|
* @description 确认已经加载组件尺寸设置 https://github.com/d2-projects/d2-admin/issues/198
|
||||||
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
isLoaded ({ state }) {
|
isLoaded ({ state }) {
|
||||||
if (state.value) return Promise.resolve()
|
if (state.value) return Promise.resolve()
|
||||||
@@ -34,7 +36,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 设置尺寸
|
* @description 设置尺寸
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {String} size 尺寸
|
* @param {String} size 尺寸
|
||||||
*/
|
*/
|
||||||
set ({ state, dispatch }, size) {
|
set ({ state, dispatch }, size) {
|
||||||
@@ -56,7 +58,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 从持久化数据读取尺寸设置
|
* @description 从持久化数据读取尺寸设置
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
load ({ state, dispatch }) {
|
load ({ state, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export default {
|
|||||||
getters: {
|
getters: {
|
||||||
/**
|
/**
|
||||||
* @description 返回当前的主题信息 不是一个名字 而是当前激活主题的所有数据
|
* @description 返回当前的主题信息 不是一个名字 而是当前激活主题的所有数据
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
activeSetting (state) {
|
activeSetting (state) {
|
||||||
return state.list.find(theme => theme.name === state.activeName)
|
return state.list.find(theme => theme.name === state.activeName)
|
||||||
@@ -21,7 +21,6 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 激活一个主题
|
* @description 激活一个主题
|
||||||
* @param {Object} state vuex state
|
|
||||||
* @param {String} themeValue 需要激活的主题名称
|
* @param {String} themeValue 需要激活的主题名称
|
||||||
*/
|
*/
|
||||||
set ({ state, commit, dispatch }, themeName) {
|
set ({ state, commit, dispatch }, themeName) {
|
||||||
@@ -42,8 +41,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 从持久化数据加载主题设置
|
* @description 从持久化数据加载主题设置 * @param {Object} context
|
||||||
* @param {Object} state vuex state
|
|
||||||
*/
|
*/
|
||||||
load ({ state, commit, dispatch }) {
|
load ({ state, commit, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
@@ -77,7 +75,7 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 将 vuex 中的主题应用到 dom
|
* @description 将 vuex 中的主题应用到 dom
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
dom (state) {
|
dom (state) {
|
||||||
document.body.className = `theme-${state.activeName}`
|
document.body.className = `theme-${state.activeName}`
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 设置开启状态
|
* @description 设置开启状态
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {Boolean} active 新的状态
|
* @param {Boolean} active 新的状态
|
||||||
*/
|
*/
|
||||||
set ({ state, dispatch }, active) {
|
set ({ state, dispatch }, active) {
|
||||||
@@ -30,7 +30,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 从数据库读取页面过渡动画设置
|
* 从数据库读取页面过渡动画设置
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
load ({ state, dispatch }) {
|
load ({ state, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default {
|
|||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 记录 UA
|
* @description 记录 UA
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state state
|
||||||
*/
|
*/
|
||||||
get (state) {
|
get (state) {
|
||||||
state.data = new UaParser().getResult()
|
state.data = new UaParser().getResult()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default {
|
|||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 设置用户数据
|
* @description 设置用户数据
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
* @param {*} info info
|
* @param {*} info info
|
||||||
*/
|
*/
|
||||||
set ({ state, dispatch }, info) {
|
set ({ state, dispatch }, info) {
|
||||||
@@ -27,7 +27,7 @@ export default {
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 从数据库取用户数据
|
* @description 从数据库取用户数据
|
||||||
* @param {Object} state vuex state
|
* @param {Object} context
|
||||||
*/
|
*/
|
||||||
load ({ state, dispatch }) {
|
load ({ state, dispatch }) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
|
|||||||
Reference in New Issue
Block a user