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