多页签添加移除方法
编辑src/store/fastnav.ts
,添加removeData
方法。
removeData(path: string): string {
if (this.datas.length <= 1) return ''
for (let i = 0; i < this.datas.length; i++) {
const item = this.datas[i]
if (item.path != path) continue
this.datas.splice(i, 1)
if (item.path != this.currPath) return ''
return i == 0 ? this.datas[0].path : this.datas[i - 1].path
}
return ''
},
可移除功能
设置tab
可移除但当只有一个tab
时不能移除,添加移除事件监听。
编辑src/views/Main.vue
,template
段多页签修改如下。
<el-scrollbar>
<div class="navbar">
<el-tag v-for="item in fastnavStore.datas" :type="item.path == fastnavStore.currPath ? 'primary' : 'info'" size="large" :closable="fastnavStore.datas.length != 1" @close="onTagClose(item.path)">
{{ item.desc }}
</el-tag>
</div>
</el-scrollbar>
script
段添加onTagClose
方法。
const onCollapseSwitch = () => {
menuStore.collapse = !menuStore.collapse
}
const onTagClose = (path: string) => {
const pathNew = fastnavStore.removeData(path)
if (!pathNew) return
router.push(pathNew)
}
浏览器测试应该可以正常关闭页签,关闭后会跳转前一个页签的路由,并且当只有一个页签时不会显示关闭按钮。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。