<template>
<div>
<p>
<el-button type="primary" size="small" @click="addTab(tabs.length)">添加</el-button>
</p>
<el-tabs v-model="activeTab" type="card" closable @tab-remove="removeTab">
<el-tab-pane ref="tabs" v-for="(item, index) in tabs" :key="index" :label="'Tab' + tabs[index].sort"
:name="index + ''">
<InputSort :tabs="item" @changeSort="changeSort" :maxInput="tabs.length">
</InputSort>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import InputSort from "../components/InputSort";
export default {
name: "tabs",
components: {
InputSort
},
data() {
return {
activeTab: '0',
tabs: [{
sort: 1,
content: ''
}]
};
},
methods: {
changeSort(e) {
// 例如:1234 2改为4 则顺序变为1342;4改为2 则顺序变为1423
this.$nextTick(() => {
let currentIndex = this.activeTab * 1 // 当前的序号
let changeIndex = e.sort - 1 // 改变后序号
let tabs = this.tabs;
// 改变tabs数组对象顺序(索引)
let [a] = tabs.splice(currentIndex, 1)
tabs.splice(changeIndex, 0, a)
console.log(this.activeTab)
this.activeTab = changeIndex + ''
// 改变sort数值
tabs.map((item, index) => {
item.sort = index + 1
})
// 手动把序号删除为空的时候视为无效修改,依然是原数值
if (e.sort == undefined) {
tabs[currentIndex].sort = currentIndex + 1
return
}
})
// 替换顺序
this.$nextTick(() => {
[this.tabs[e.sort - 1], this.tabs[this.activeTab * 1]] = [this.tabs[this.activeTab * 1], this.tabs[e.sort - 1]]
this.tabs[this.activeTab * 1].sort = this.activeTab * 1 + 1;
this.activeTab = e.sort - 1 + ''
})
console.log(e, this.activeTab);
},
addTab(val) {
console.log(val)
if (this.tabs.length >= 10) {
alert("最多支持10个Tab")
} else {
this.tabs.push({
sort: val + 1,
content: ''
})
}
this.activeTab = (this.tabs.length - 1) + ''
},
removeTab(targetName) { // targetName读取的是name的值
if (confirm("确认要删除吗?")) {
// 需要保留至少一个Tab
if (this.tabs.length > 1) {
let tabs = this.tabs;
let activeName = this.activeTab; //当前位置
if (activeName >= targetName) {
activeName = (activeName - 1) + ''
}
tabs.splice(targetName * 1, 1)
this.activeTab = activeName;
tabs.map((item, index) => {
if (index >= (targetName * 1)) {
item.sort = item.sort - 1
}
})
this.tabs = tabs
} else {
alert("请至少保留一个Tab")
}
}
},
}
};
</script>
手动动态改变el-tabs标签页顺序
需积分: 50 189 浏览量
2022-06-28
17:23:09
上传
评论 1
收藏 3KB ZIP 举报
朝朝&暮暮
- 粉丝: 655
- 资源: 2
最新资源
- 基于matlab实现配电网三相潮流计算方法,对几种常用的配电网潮流计算方法进行了对比分析.rar
- 基于matlab实现配电网潮流 经典33节点 前推回代法潮流计算 回代电流 前推电压 带注释.rar
- 基于matlab实现模拟退火遗传算法的车辆调度问题研究,用MATLAB语言加以实现.rar
- 基于matlab实现蒙特卡洛的的移动传感器节点定位算法仿真代码.rar
- 华中数控系统818用户说明书
- 基于matlab实现卡尔曼滤波器完成多传感器数据融合 对多个机器人的不同传感器数据进行融合估计足球精确位置.rar
- 基于matlab实现进行简单车辆识别-车辆检测.rar
- 基于JSP物流信息网的设计与实现
- 基于matlab实现车牌识别程序,和论文,自己做的,做毕业设计的可以看看 .rar
- Windows系统下安装与配置Neo4j的步骤
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0