mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-06 00:18:51 +08:00
fix(tag): 删除非当前激活tag时不切换tag (#60)
* fix(tag): 删除非当前激活tag时不切换tag * fix(tag): 修复在激活菜单时选择关闭左侧标签后当前激活的菜单非选择菜单 * perf: 自定义去重函数更改为lodash-es的uniqBy
This commit is contained in:
parent
b2c05e4397
commit
639a69d579
@ -174,9 +174,6 @@ function deleteDynamicTag(obj: any, current: any, tag?: string) {
|
||||
routerArrays.splice(start, end);
|
||||
relativeStorage.routesInStorage = routerArrays;
|
||||
}
|
||||
router.push(obj.path);
|
||||
// 删除缓存路由
|
||||
handleAliveRoute(route.matched, "delete");
|
||||
};
|
||||
|
||||
if (tag === "other") {
|
||||
@ -189,15 +186,32 @@ function deleteDynamicTag(obj: any, current: any, tag?: string) {
|
||||
// 从当前匹配到的路径中删除
|
||||
spliceRoute(valueIndex, 1);
|
||||
}
|
||||
|
||||
if (current === obj.path) {
|
||||
let newRoute: any = routerArrays.slice(-1);
|
||||
if (current === route.path) {
|
||||
// 删除缓存路由
|
||||
handleAliveRoute(route.matched, "delete");
|
||||
// 如果删除当前激活tag就自动切换到最后一个tag
|
||||
let newRoute: any = routerArrays.slice(-1);
|
||||
if (tag === "left") return;
|
||||
nextTick(() => {
|
||||
router.push({
|
||||
path: newRoute[0].path
|
||||
});
|
||||
});
|
||||
} else {
|
||||
//保存跳转之前的路径
|
||||
let oldPath = route.path;
|
||||
router.push(obj.path);
|
||||
// 删除缓存路由
|
||||
handleAliveRoute(route.matched, "delete");
|
||||
if (!routerArrays.length) return;
|
||||
let isHasOldPath = routerArrays.some(item => {
|
||||
return item.path === oldPath;
|
||||
});
|
||||
isHasOldPath
|
||||
? router.push(oldPath)
|
||||
: router.push({
|
||||
path: newRoute[0].path
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ import {
|
||||
createWebHashHistory,
|
||||
RouteRecordNormalized
|
||||
} from "vue-router";
|
||||
import { split } from "lodash-es";
|
||||
import { split, uniqBy } from "lodash-es";
|
||||
import { i18n } from "/@/plugins/i18n";
|
||||
import { openLink } from "/@/utils/link";
|
||||
import NProgress from "/@/utils/progress";
|
||||
@ -228,7 +228,10 @@ router.beforeEach((to, _from, next) => {
|
||||
}
|
||||
});
|
||||
});
|
||||
storageLocal.setItem("responsive-routesInStorage", newLocalRoutes);
|
||||
storageLocal.setItem(
|
||||
"responsive-routesInStorage",
|
||||
uniqBy(newLocalRoutes, "path")
|
||||
);
|
||||
});
|
||||
next();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user