实现ElementUI tab标签可拖拽

89 篇文章 7 订阅
8 篇文章 0 订阅

通过sortablejs实现

1.安装sortablejs

npm install sortablejs --save

2.设置 id="drag-tab"便于获取当前tab

    <el-tabs
      v-model="editableTabsValue"
      type="card"
      class="demo-tabs"
      closable
      @tab-remove="removeTab"
      @tab-click="switchTab"
      id="drag-tab"
    >
      <el-tab-pane
        v-for="item in editableTabs"
        :key="item.name"
        :label="item.title"
        :name="item.name"
      >
      </el-tab-pane>
    </el-tabs>

3.实现拖拽

onMounted(()=>{
  dragTab();
});

const dragTab = () =>{
    const tab = document.querySelector("#drag-tab .el-tabs__nav"); //获取需要拖拽的tab
    Sortable.create(tab, {
      //oldIIndex拖放前的位置, newIndex拖放后的位置 , editableTabs为遍历的tab签
      onEnd({ newIndex, oldIndex }) {
        const currTab = editableTabs.value.splice(oldIndex, 1)[0]; //鼠标拖拽当前的el-tabs-pane
        editableTabs.value.splice(newIndex, 0, currTab); 
        editableTabsValue.value = editableTabs.value[newIndex].name;// 设置当前活动tab名称
        router.push({path:editableTabsValue.value});//main区页面和tab标签联动
      },
    });
}

参考:https://blog.csdn.net/wangjiecsdn/article/details/121995534

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值