mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-07 17:07:19 +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);
|
routerArrays.splice(start, end);
|
||||||
relativeStorage.routesInStorage = routerArrays;
|
relativeStorage.routesInStorage = routerArrays;
|
||||||
}
|
}
|
||||||
router.push(obj.path);
|
|
||||||
// 删除缓存路由
|
|
||||||
handleAliveRoute(route.matched, "delete");
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (tag === "other") {
|
if (tag === "other") {
|
||||||
@ -189,15 +186,32 @@ function deleteDynamicTag(obj: any, current: any, tag?: string) {
|
|||||||
// 从当前匹配到的路径中删除
|
// 从当前匹配到的路径中删除
|
||||||
spliceRoute(valueIndex, 1);
|
spliceRoute(valueIndex, 1);
|
||||||
}
|
}
|
||||||
|
let newRoute: any = routerArrays.slice(-1);
|
||||||
if (current === obj.path) {
|
if (current === route.path) {
|
||||||
|
// 删除缓存路由
|
||||||
|
handleAliveRoute(route.matched, "delete");
|
||||||
// 如果删除当前激活tag就自动切换到最后一个tag
|
// 如果删除当前激活tag就自动切换到最后一个tag
|
||||||
let newRoute: any = routerArrays.slice(-1);
|
if (tag === "left") return;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
router.push({
|
router.push({
|
||||||
path: newRoute[0].path
|
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,
|
createWebHashHistory,
|
||||||
RouteRecordNormalized
|
RouteRecordNormalized
|
||||||
} from "vue-router";
|
} from "vue-router";
|
||||||
import { split } from "lodash-es";
|
import { split, uniqBy } from "lodash-es";
|
||||||
import { i18n } from "/@/plugins/i18n";
|
import { i18n } from "/@/plugins/i18n";
|
||||||
import { openLink } from "/@/utils/link";
|
import { openLink } from "/@/utils/link";
|
||||||
import NProgress from "/@/utils/progress";
|
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();
|
next();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user