同步更新完整版

Former-commit-id: 9db14cdffadfbc1c96163d7c1e8ad4c368e9925c
This commit is contained in:
FairyEver
2019-07-16 21:01:42 +08:00
3 changed files with 51 additions and 11 deletions
+6 -10
View File
@@ -23,7 +23,11 @@ const router = new VueRouter({
* 路由拦截 * 路由拦截
* 权限验证 * 权限验证
*/ */
router.beforeEach((to, from, next) => { router.beforeEach(async (to, from, next) => {
// 确认已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
await store.dispatch('d2admin/page/isLoaded')
// 确认已经加载组件尺寸设置 https://github.com/d2-projects/d2-admin/issues/198
await store.dispatch('d2admin/size/isLoaded')
// 进度条 // 进度条
NProgress.start() NProgress.start()
// 关闭搜索面板 // 关闭搜索面板
@@ -53,17 +57,9 @@ router.beforeEach((to, from, next) => {
} }
}) })
router.afterEach(async to => { router.afterEach(to => {
// 进度条 // 进度条
NProgress.done() NProgress.done()
// 等待数据加载 https://github.com/d2-projects/d2-admin/issues/201
await new Promise (resolve => {
const timer = setInterval(() => {
if (store.state.d2admin.page.openedLoaded) {
resolve(clearInterval(timer))
}
}, 10)
})
// 多页控制 打开新的页面 // 多页控制 打开新的页面
store.dispatch('d2admin/page/open', to) store.dispatch('d2admin/page/open', to)
// 更改标题 // 更改标题
+14 -1
View File
@@ -12,7 +12,7 @@ export default {
pool: [], pool: [],
// 当前显示的多页面列表 // 当前显示的多页面列表
opened: setting.page.opened, opened: setting.page.opened,
// 标记已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201 // 已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
openedLoaded: false, openedLoaded: false,
// 当前页面 // 当前页面
current: '', current: '',
@@ -20,6 +20,19 @@ export default {
keepAlive: [] keepAlive: []
}, },
actions: { actions: {
/**
* @description 确认已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
*/
isLoaded ({ state }) {
if (state.value) return Promise.resolve()
return new Promise(resolve => {
const timer = setInterval(() => {
if (state.openedLoaded) {
resolve(clearInterval(timer))
}
}, 10)
})
},
/** /**
* @class opened * @class opened
* @description 从持久化数据载入标签页列表 * @description 从持久化数据载入标签页列表
+31
View File
@@ -1,3 +1,6 @@
import Vue from 'vue'
import router from '@/router'
export default { export default {
namespaced: true, namespaced: true,
state: { state: {
@@ -5,6 +8,30 @@ export default {
value: '' // medium small mini value: '' // medium small mini
}, },
actions: { actions: {
/**
* @description 将当前的设置应用到 element
* @param {Boolean} refresh 是否在设置之后刷新页面
*/
apply ({ state, commit }, refresh) {
Vue.prototype.$ELEMENT.size = state.value
if (refresh) {
commit('d2admin/page/keepAliveClean', null, { root: true })
router.replace('/refresh')
}
},
/**
* @description 确认已经加载组件尺寸设置 https://github.com/d2-projects/d2-admin/issues/198
*/
isLoaded ({ state }) {
if (state.value) return Promise.resolve()
return new Promise(resolve => {
const timer = setInterval(() => {
if (state.value) {
resolve(clearInterval(timer))
}
}, 10)
})
},
/** /**
* @description 设置尺寸 * @description 设置尺寸
* @param {Object} state vuex state * @param {Object} state vuex state
@@ -14,6 +41,8 @@ export default {
return new Promise(async resolve => { return new Promise(async resolve => {
// store 赋值 // store 赋值
state.value = size state.value = size
// 应用
dispatch('apply', true)
// 持久化 // 持久化
await dispatch('d2admin/db/set', { await dispatch('d2admin/db/set', {
dbName: 'sys', dbName: 'sys',
@@ -38,6 +67,8 @@ export default {
defaultValue: 'default', defaultValue: 'default',
user: true user: true
}, { root: true }) }, { root: true })
// 应用
dispatch('apply')
// end // end
resolve() resolve()
}) })