Vxe UI vue 使用 vxe-tabs 页签实现右侧操作按钮、关闭所有页签、关闭右侧、关闭左侧

Vxe UI vue 使用 vxe-tabs 页签实现右侧操作按钮、关闭所有页签、关闭右侧、关闭左侧

查看 github

<template>
  <div>
    <vxe-tabs v-model="selectTab" :options="tabList">
      <template #extra>
        <vxe-pulldown :options="tabOptions" trigger="click" show-popup-shadow transfer
          @option-click="tabOptionClickEvent">
          <template #default>
            <vxe-button mode="text" icon="vxe-icon-ellipsis-v"></vxe-button>
          </template>
        </vxe-pulldown>
      </template>
    </vxe-tabs>
  </div>
</template>

<script>
import Vue from 'vue'
import { VxeUI } from 'vxe-pc-ui'
import XEUtils from 'xe-utils'
export default {
  data () {
    const tabList = [
      { name: '1', title: '标题1标题1标题1' },
      { name: '2', title: '标题2' },
      { name: '3', title: '标题3标题3标题3' },
      { name: '4', title: '标题4标题4' },
      { name: '5', title: '标题5标题5标题5' },
      { name: '6', title: '标题6标题6标题6标题6标题6标题6' },
      { name: '7', title: '标题7标题7标题7' },
      { name: '8', title: '标题8标题8' },
      { name: '9', title: '标题9标题9标题9' },
      { name: '10', title: '标题10标题10标题10标题10' },
      { name: '11', title: '标题11标题11标题11' },
      { name: '12', title: '标题12标' },
      { name: '13', title: '标题13标题13标题13' },
      { name: '14', title: '标题14标题14' },
      { name: '15', title: '标题15标题15标题15' },
      { name: '16', title: '标题16标题16标题16标题16' }
    ]
    const tabOptions = [
      { label: '关闭其他页签', value: 'closeOther' },
      { label: '关闭左侧页签', value: 'closeLeft' },
      { label: '关闭右侧页签', value: 'closeRight' },
      { label: '刷新页面', value: 'refresh' }
    ]
    return {
      selectTab: '1',
      tabList,
      tabOptions
    }
  },
  methods: {
    tabOptionClickEvent ({ option }) {
      const index = XEUtils.findIndexOf(this.tabList, item => item.name === this.selectTab)
      switch (option.value) {
        case 'closeOther':
          this.tabList = this.tabList.filter(item => item.name === this.selectTab)
          break
        case 'closeLeft':
          this.tabList = this.tabList.slice(index)
          break
        case 'closeRight':
          this.tabList = this.tabList.slice(0, index + 1)
          break
        case 'refresh':
          VxeUI.modal.message({
            content: '刷新页面',
            status: 'success'
          })
          break
      }
    }
  }
}
</script>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值