| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import store from "@/store";
- import router from "@/router";
- export default {
- // 刷新当前tab页签
- refreshPage(obj) {
- const { path, query, matched } = router.currentRoute;
- if (obj === undefined) {
- matched.forEach((m) => {
- if (m.components && m.components.default && m.components.default.name) {
- if (!["Layout", "ParentView"].includes(m.components.default.name)) {
- obj = { name: m.components.default.name, path: path, query: query };
- }
- }
- });
- }
- return store.dispatch("tagsView/delCachedView", obj).then(() => {
- const { path, query } = obj;
- router.replace({
- path: "/redirect" + path,
- query: query,
- });
- });
- },
- // 关闭当前tab页签,打开新页签
- closeOpenPage(obj) {
- store.dispatch("tagsView/delView", router.currentRoute);
- if (obj !== undefined) {
- return router.push(obj);
- }
- },
- // 关闭指定tab页签
- closePage(obj) {
- if (obj === undefined) {
- return store
- .dispatch("tagsView/delView", router.currentRoute)
- .then(({ visitedViews }) => {
- const latestView = visitedViews.slice(-1)[0];
- if (latestView) {
- return router.push(latestView.fullPath);
- }
- return router.push("/");
- });
- }
- return store.dispatch("tagsView/delView", obj);
- },
- closePageAndPushPrev(obj) {
- if (obj === undefined) {
- obj = router.currentRoute;
- }
- return store.dispatch("tagsView/delView", obj).then(({ visitedViews }) => {
- //因为首页一直会存在
- if (visitedViews.length === 1) {
- return router.push("/");
- }
- router.go(-1);
- });
- },
- // 关闭所有tab页签
- closeAllPage() {
- return store.dispatch("tagsView/delAllViews");
- },
- // 关闭左侧tab页签
- closeLeftPage(obj) {
- return store.dispatch("tagsView/delLeftTags", obj || router.currentRoute);
- },
- // 关闭右侧tab页签
- closeRightPage(obj) {
- return store.dispatch("tagsView/delRightTags", obj || router.currentRoute);
- },
- // 关闭其他tab页签
- closeOtherPage(obj) {
- return store.dispatch(
- "tagsView/delOthersViews",
- obj || router.currentRoute
- );
- },
- // 添加tab页签
- openPage(title, url, params) {
- var obj = { path: url, meta: { title: title } };
- store.dispatch("tagsView/addView", obj);
- return router.push({ path: url, query: params });
- },
- // 修改tab页签
- updatePage(obj) {
- return store.dispatch("tagsView/updateVisitedView", obj);
- },
- getCurrentTabName(){
- let route= router.currentRoute;
- if(route){
- return route.meta.title;
- }else{
- return "";
- }
- }
- };
|