From d249c86406bd3d808a3ef83ac0fd6f8e3103e8c6 Mon Sep 17 00:00:00 2001 From: FairyEver <1711467488@qq.com> Date: Wed, 22 Apr 2020 10:22:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(store):=20=E4=BF=AE=E5=A4=8D=20keepAliveRem?= =?UTF-8?q?ove=20=E6=93=8D=E4=BD=9C=E5=90=8E=E4=B8=8D=E8=83=BD=E6=81=A2?= =?UTF-8?q?=E5=A4=8D=E9=A1=B5=E9=9D=A2=E7=BC=93=E5=AD=98=E7=9A=84=20bug=20?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E7=9B=B8=E5=85=B3=20demo=20=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/d2admin/modules/page.js | 15 ++++++++++----- src/views/demo/playground/store/page/index.vue | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/store/modules/d2admin/modules/page.js b/src/store/modules/d2admin/modules/page.js index 5022f593..70bc0da0 100644 --- a/src/store/modules/d2admin/modules/page.js +++ b/src/store/modules/d2admin/modules/page.js @@ -1,4 +1,4 @@ -import { get } from 'lodash' +import { cloneDeep, uniq, get } from 'lodash' import router from '@/router' import setting from '@/setting.js' @@ -160,9 +160,9 @@ export default { * @class current * @description 打开一个新的页面 * @param {Object} context - * @param {Object} payload 从路由钩子的 to 对象上获取 { name, params, query, fullPath } 路由信息 + * @param {Object} payload 从路由钩子的 to 对象上获取 { name, params, query, fullPath, meta } 路由信息 */ - open ({ state, commit, dispatch }, { name, params, query, fullPath }) { + open ({ state, commit, dispatch }, { name, params, query, fullPath, meta }) { return new Promise(async resolve => { // 已经打开的页面 let opened = state.opened @@ -194,6 +194,11 @@ export default { }) } } + // 如果这个页面需要缓存 将其添加到缓存设置 + if (isKeepAlive({ meta })) { + commit('keepAlivePush', name) + } + // 设置当前的页面 commit('currentSet', fullPath) // end resolve() @@ -390,9 +395,9 @@ export default { * @param {String} name name */ keepAlivePush (state, name) { - const keep = [ ...state.keepAlive ] + const keep = cloneDeep(state.keepAlive) keep.push(name) - state.keepAlive = keep + state.keepAlive = uniq(keep) }, /** * @description 清空页面缓存设置 diff --git a/src/views/demo/playground/store/page/index.vue b/src/views/demo/playground/store/page/index.vue index 5dd255ab..591344cc 100644 --- a/src/views/demo/playground/store/page/index.vue +++ b/src/views/demo/playground/store/page/index.vue @@ -83,7 +83,7 @@ export default { }, // 清空当前页缓存并刷新此页面 async handleCleanCacheAndRefreshCurrent () { - this.keepAliveRemove(this.$route.fullPath) + this.keepAliveRemove(this.$route.name) await this.$nextTick() this.$router.replace('/refresh') },