同步更新完整版

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()
// 关闭搜索面板
@@ -53,17 +57,9 @@ router.beforeEach((to, from, next) => {
}
})
router.afterEach(async to => {
router.afterEach(to => {
// 进度条
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)
// 更改标题
+14 -1
View File
@@ -12,7 +12,7 @@ export default {
pool: [],
// 当前显示的多页面列表
opened: setting.page.opened,
// 标记已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
// 已经加载多标签页数据 https://github.com/d2-projects/d2-admin/issues/201
openedLoaded: false,
// 当前页面
current: '',
@@ -20,6 +20,19 @@ export default {
keepAlive: []
},
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
* @description 从持久化数据载入标签页列表
+31
View File
@@ -1,3 +1,6 @@
import Vue from 'vue'
import router from '@/router'
export default {
namespaced: true,
state: {
@@ -5,6 +8,30 @@ export default {
value: '' // medium small mini
},
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 设置尺寸
* @param {Object} state vuex state
@@ -14,6 +41,8 @@ export default {
return new Promise(async resolve => {
// store 赋值
state.value = size
// 应用
dispatch('apply', true)
// 持久化
await dispatch('d2admin/db/set', {
dbName: 'sys',
@@ -38,6 +67,8 @@ export default {
defaultValue: 'default',
user: true
}, { root: true })
// 应用
dispatch('apply')
// end
resolve()
})