<template>
<div>
<el-tabs v-model="activeName" add-icon="custom-icon">
<template v-for="(tab, index) in tabs" :key="index">
<el-tab-pane :label="tab.label" :name="tab.name">
{{ tab.content }}
<template #label>
<span>{{ tab.label }}</span>
<el-button v-if="showButton" class="custom-button">自定义按钮</el-button>
</template>
</el-tab-pane>
</template>
</el-tabs>
<el-button @click="showButton = !showButton" class="custom-button">切换按钮显示</el-button>
</div>
</template>
<script>
export default {
data() {
return {
activeName: '1', // 初始激活的标签页名称
showButton: true, // 控制按钮的显示状态
tabs: [ // 示例的标签数据
{ label: '标签1', name: '1', content: '内容1' },
{ label: '标签2', name: '2', content: '内容2' },
// 其他标签数据...
]
};
}
};
</script>
<style scoped>
.custom-icon::before {
content: "\f067"; /* 自定义图标的字体图标代码 */
font-family: "Font Awesome 5 Free"; /* 字体图标字体家族 */
font-weight: 900; /* 字体图标权重 */
}
.custom-button {
margin-left: 10px; /* 设置按钮与标签的间距 */
/* 其他样式设置 */
}
</style>
在上述示例中,我们使用了v-for
指令来循环渲染<el-tab-pane>
组件。在循环中,我们通过tab.label
和tab.name
来绑定标签的文本和名称,并使用插值表达式{{ tab.content }}
来显示标签页的内容。同时,我们还在插槽中添加了自定义按钮,并通过v-if
指令和showButton
数据属性来控制按钮的显示和隐藏。这样,每个标签页后面都会显示一个自定义按钮,其位置紧随标签文本之后。请根据您的实际需求进行相应的调整和修改