Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
e85649bd
提交
e85649bd
authored
9月 16, 2021
作者:
无木
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(tabs): close tab without navigation
修复多标签在某些情况下关闭页签不会跳转路由的问题 fixed: #1131
上级
cecdfbaf
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
35 行增加
和
11 行删除
+35
-11
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+1
-0
multipleTab.ts
src/store/modules/multipleTab.ts
+34
-11
没有找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
e85649bd
...
...
@@ -7,6 +7,7 @@
-
修复点击遮罩、按下
`Esc`
键都不能关闭
`Modal`
的问题
-
修复点击关闭按钮、最大化按钮旁边的空白区域也会导致
`Modal`
关闭的问题
-
**BasicTree**
修复节点插槽不起作用的问题
-
**其它**
修复多标签在某些情况下关闭页签不会跳转路由的问题
## 2.7.2(2021-09-14)
...
...
src/store/modules/multipleTab.ts
浏览文件 @
e85649bd
...
...
@@ -26,6 +26,15 @@ function handleGotoPage(router: Router) {
go
(
unref
(
router
.
currentRoute
).
path
,
true
);
}
const
getToTarget
=
(
tabItem
:
RouteLocationNormalized
)
=>
{
const
{
params
,
path
,
query
}
=
tabItem
;
return
{
params
:
params
||
{},
path
,
query
:
query
||
{},
};
};
const
cacheTab
=
projectSetting
.
multiTabsSetting
.
cache
;
export
const
useMultipleTabStore
=
defineStore
({
...
...
@@ -147,15 +156,6 @@ export const useMultipleTabStore = defineStore({
},
async
closeTab
(
tab
:
RouteLocationNormalized
,
router
:
Router
)
{
const
getToTarget
=
(
tabItem
:
RouteLocationNormalized
)
=>
{
const
{
params
,
path
,
query
}
=
tabItem
;
return
{
params
:
params
||
{},
path
,
query
:
query
||
{},
};
};
const
close
=
(
route
:
RouteLocationNormalized
)
=>
{
const
{
fullPath
,
meta
:
{
affix
}
=
{}
}
=
route
;
if
(
affix
)
{
...
...
@@ -196,13 +196,36 @@ export const useMultipleTabStore = defineStore({
toTarget
=
getToTarget
(
page
);
}
close
(
currentRoute
.
value
);
replace
(
toTarget
);
await
replace
(
toTarget
);
},
// Close according to key
async
closeTabByKey
(
key
:
string
,
router
:
Router
)
{
const
index
=
this
.
tabList
.
findIndex
((
item
)
=>
(
item
.
fullPath
||
item
.
path
)
===
key
);
index
!==
-
1
&&
this
.
closeTab
(
this
.
tabList
[
index
],
router
);
if
(
index
!==
-
1
)
{
await
this
.
closeTab
(
this
.
tabList
[
index
],
router
);
const
{
currentRoute
,
replace
}
=
router
;
// 检查当前路由是否存在于tabList中
const
isActivated
=
this
.
tabList
.
findIndex
((
item
)
=>
{
return
item
.
fullPath
===
currentRoute
.
value
.
fullPath
;
});
// 如果当前路由不存在于TabList中,尝试切换到其它路由
if
(
isActivated
===
-
1
)
{
let
pageIndex
;
if
(
index
>
0
)
{
pageIndex
=
index
-
1
;
}
else
if
(
index
<
this
.
tabList
.
length
-
1
)
{
pageIndex
=
index
+
1
;
}
else
{
pageIndex
=
-
1
;
}
if
(
pageIndex
>=
0
)
{
const
page
=
this
.
tabList
[
index
-
1
];
const
toTarget
=
getToTarget
(
page
);
await
replace
(
toTarget
);
}
}
}
},
// Sort the tabs
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论