Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kadycui
game-admin
提交
0987cb38
game-admin
项目概览
kadycui
/
game-admin
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
game-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0987cb38
编写于
9月 02, 2023
作者:
kadycui
💻
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ADD: 封装关闭标签导航
上级
19450640
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
112 addition
and
89 deletion
+112
-89
src/composables/useTabList.js
src/composables/useTabList.js
+104
-0
src/layouts/components/FTagList.vue
src/layouts/components/FTagList.vue
+8
-89
未找到文件。
src/composables/useTabList.js
0 → 100644
浏览文件 @
0987cb38
import
{
ref
}
from
'
vue
'
import
{
onBeforeRouteUpdate
,
useRoute
,
useRouter
}
from
'
vue-router
'
import
{
useCookies
}
from
'
@vueuse/integrations/useCookies
'
import
{
router
}
from
'
@/router
'
export
function
useTabList
()
{
const
route
=
useRoute
()
const
cookie
=
useCookies
()
const
activeTab
=
ref
(
route
.
path
)
const
tabList
=
ref
([
{
title
:
'
后台首页
'
,
path
:
"
/
"
,
}
])
// 添加标签导航
function
addTab
(
tab
)
{
let
noTab
=
tabList
.
value
.
findIndex
(
t
=>
t
.
path
==
tab
.
path
)
==
-
1
if
(
noTab
)
{
tabList
.
value
.
push
(
tab
)
}
cookie
.
set
(
"
tabList
"
,
tabList
.
value
)
}
// 初始化标签导航列表
function
initTabList
()
{
let
tbs
=
cookie
.
get
(
"
tabList
"
)
if
(
tbs
)
{
tabList
.
value
=
tbs
}
}
initTabList
()
onBeforeRouteUpdate
((
to
,
from
)
=>
{
activeTab
.
value
=
to
.
path
addTab
({
title
:
to
.
meta
.
title
,
path
:
to
.
path
})
})
// 路由跳转
const
changeTab
=
(
t
)
=>
{
activeTab
.
value
=
t
router
.
push
(
t
)
}
const
removeTab
=
(
t
)
=>
{
let
tabs
=
tabList
.
value
let
a
=
activeTab
.
value
if
(
a
==
t
)
{
tabs
.
forEach
((
tab
,
index
)
=>
{
if
(
tab
.
path
==
t
)
{
const
nextTab
=
tabs
[
index
+
1
]
||
tabs
[
index
-
1
]
if
(
nextTab
)
{
a
=
nextTab
.
path
}
}
})
}
activeTab
.
value
=
a
tabList
.
value
=
tabList
.
value
.
filter
(
tab
=>
tab
.
path
!=
t
)
cookie
.
set
(
"
tabList
"
,
tabList
.
value
)
}
const
handeClose
=
(
c
)
=>
{
if
(
c
==
"
clearAll
"
)
{
// 切换首页
activeTab
.
value
=
"
/
"
// 过滤只剩下首页
tabList
.
value
=
[{
title
:
'
后台首页
'
,
path
:
"
/
"
}]
}
else
if
(
c
==
"
clearOther
"
)
{
// 过滤只剩下首页和当前激活
tabList
.
value
=
tabList
.
value
.
filter
(
tab
=>
tab
.
path
==
"
/
"
||
tab
.
path
==
activeTab
.
value
)
}
cookie
.
set
(
"
tabList
"
,
tabList
.
value
)
}
return
{
activeTab
,
tabList
,
changeTab
,
removeTab
,
handeClose
}
}
\ No newline at end of file
src/layouts/components/FTagList.vue
浏览文件 @
0987cb38
...
...
@@ -28,99 +28,18 @@
<
script
setup
>
import
{
ref
}
from
'
vue
'
import
{
onBeforeRouteUpdate
,
useRoute
,
useRouter
}
from
'
vue-router
'
import
{
useCookies
}
from
'
@vueuse/integrations/useCookies
'
import
{
useTabList
}
from
"
@/composables/useTabList.js
"
const
route
=
useRoute
()
const
cookie
=
useCookies
()
const
router
=
useRouter
()
const
{
activeTab
,
tabList
,
changeTab
,
removeTab
,
handeClose
}
=
useTabList
()
const
activeTab
=
ref
(
route
.
path
)
const
tabList
=
ref
([
{
title
:
'
后台首页
'
,
path
:
"
/
"
,
}
])
// 添加标签导航
function
addTab
(
tab
)
{
let
noTab
=
tabList
.
value
.
findIndex
(
t
=>
t
.
path
==
tab
.
path
)
==
-
1
if
(
noTab
)
{
tabList
.
value
.
push
(
tab
)
}
cookie
.
set
(
"
tabList
"
,
tabList
.
value
)
}
// 初始化标签导航列表
function
initTabList
()
{
let
tbs
=
cookie
.
get
(
"
tabList
"
)
if
(
tbs
)
{
tabList
.
value
=
tbs
}
}
initTabList
()
onBeforeRouteUpdate
((
to
,
from
)
=>
{
activeTab
.
value
=
to
.
path
addTab
({
title
:
to
.
meta
.
title
,
path
:
to
.
path
})
})
// 路由跳转
const
changeTab
=
(
t
)
=>
{
activeTab
.
value
=
t
router
.
push
(
t
)
}
const
removeTab
=
(
t
)
=>
{
let
tabs
=
tabList
.
value
let
a
=
activeTab
.
value
if
(
a
==
t
)
{
tabs
.
forEach
((
tab
,
index
)
=>
{
if
(
tab
.
path
==
t
)
{
const
nextTab
=
tabs
[
index
+
1
]
||
tabs
[
index
-
1
]
if
(
nextTab
)
{
a
=
nextTab
.
path
}
}
})
}
activeTab
.
value
=
a
tabList
.
value
=
tabList
.
value
.
filter
(
tab
=>
tab
.
path
!=
t
)
cookie
.
set
(
"
tabList
"
,
tabList
.
value
)
}
const
handeClose
=
()
=>
{
if
(
c
==
"
clearAll
"
)
{
// 切换首页
activeTab
.
value
=
"
/
"
// 过滤只剩下首页
tabList
.
value
=
[{
title
:
'
后台首页
'
,
path
:
"
/
"
}]
}
else
if
(
c
==
"
clearAll
"
)
{
// 过滤只剩下首页和当前激活
tabList
.
value
=
tabList
.
value
.
filter
(
tab
=>
tab
.
path
==
"
/
"
||
tab
.
path
==
activeTab
.
value
)
cookie
.
set
(
"
tabList
"
,
tabList
.
value
)
}
}
</
script
>
<
style
scoped
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录