# 选项卡
# 基本用法
选项卡1的内容,使用 t-tab-pannel 渲染
选项卡2的内容,使用 t-tab-pannel 渲染
这是选项卡一的内容,使用 t-tabs 渲染
<template>
<div class="tdesign-demo-block-column-large">
<div class="tdesign-demo-block-column">
<!-- 方式一: t-tab-pannel 方式 -->
<t-tabs v-model="value">
<!-- 默认插槽 和 具名插槽(panel)都是用来渲染面板内容 -->
<t-tab-panel value="first" label="选项卡1" :destroyOnHide="false">
<p style="padding: 25px;">选项卡1的内容,使用 t-tab-pannel 渲染</p>
</t-tab-panel>
<t-tab-panel value="second" label="选项卡2" :destroyOnHide="false">
<p slot="panel" style="padding: 25px;">选项卡2的内容,使用 t-tab-pannel 渲染</p>
</t-tab-panel>
<t-tab-panel value="third" label="选项卡3" :panel="panelRender" />
</t-tabs>
<!-- 方式二:使用 list 定义 Tab -->
<t-tabs v-model="tab" :list="tabList" />
</div>
</div>
</template>
<script>
export default {
data() {
return {
value: 'first',
tab: 1,
tabList: [
{ label: '选项卡一', value: 1, panel: (h) => <p style="padding: 25px">这是选项卡一的内容,使用 t-tabs 渲染</p> },
// eslint-disable-next-line @typescript-eslint/no-unused-vars
{ label: '选项卡二', value: 2, panel: (h) => <p style="padding: 25px">这是选项卡二的内容,使用 t-tabs 渲染</p> },
// eslint-disable-next-line @typescript-eslint/no-unused-vars
{ label: '选项卡三', value: 3, panel: (h) => <p style="padding: 25px">这是选项卡三的内容,使用 t-tabs 渲染</p> },
],
};
},
methods: {
panelRender() {
return <p style="padding: 25px;">选项卡3的内容,使用 t-tab-pannel 渲染</p>;
},
},
};
</script>
显示代码 复制代码 复制代码
# 带图标的选项卡
首页的内容
<template>
<div class="tdesign-demo-block-column-large">
<t-tabs
:value="value"
@change="(newValue) => value = newValue"
>
<t-tab-panel value="first">
<template #label>
<i class="care-icon-home"></i>首页
</template>
<p style="padding: 25px;">首页的内容</p>
</t-tab-panel>
<t-tab-panel value="second">
<template #label>
<i class="care-icon-home"></i>日程
</template>
<p style="padding: 25px;">日程的内容</p>
</t-tab-panel>
<t-tab-panel value="third">
<template #label>
<i class="care-icon-home"></i>事项
</template>
<p style="padding: 25px;">事项的内容</p>
</t-tab-panel>
</t-tabs>
</div>
</template>
<script>
export default {
data() {
return {
value: 'first',
};
},
};
</script>
显示代码 复制代码 复制代码
# 不同位置的选项卡
选项卡1
<template>
<div class="tdesign-demo-block-column-large">
<div>
<t-radio-group variant="default-filled" v-model="placement">
<t-radio-button value="top">top</t-radio-button>
<t-radio-button value="right">right</t-radio-button>
<t-radio-button value="bottom">bottom</t-radio-button>
<t-radio-button value="left">left</t-radio-button>
</t-radio-group>
</div>
<t-tabs
:value="value"
:placement="placement"
@change="(newValue) => value = newValue"
>
<t-tab-panel value="first" label="选项卡1">
<p style="padding: 25px;">选项卡1</p>
</t-tab-panel>
<t-tab-panel value="second" label="选项卡2">
<p style="padding: 25px;">选项卡2</p>
</t-tab-panel>
<t-tab-panel value="third" label="选项卡3">
<p style="padding: 25px;">选项卡3</p>
</t-tab-panel>
</t-tabs>
</div>
</template>
<script>
export default {
data() {
return {
placement: 'top',
value: 'first',
};
},
};
</script>
显示代码 复制代码 复制代码