Skip to content

Tabs 标签页

查看 sn-tabs 的 2.0 版本差异

基础用法

  • 标签页组件,可切换不同标签内容,一般用于顶部导航
  • 支持滚动(scrollable)与滑动式(swipe)/ 推压式(push)指示线动画
  • 支持子项单独禁用与徽标
  • 支持 left / right 插槽
vue
<template>
	<sn-tabs v-model="current" :data="tabs"></sn-tabs>
</template>

更多演示请下载 demo 查看

滚动与动画

scrollable 开启后标签可横向滚动,子项自动计算宽度并将选中项居中;mode 选择指示线动画方式:swipe 滑动式、push 推压式。

vue
<template>
	<sn-tabs v-model="current" scrollable mode="push" :data="tabs"></sn-tabs>
</template>

徽标

data 项通过 badgeConfig 配置徽标(value/max/size/offset/mode/text/showZero/textColor/bgColor),支持 number/text/dot 三种模式。

vue
<template>
	<sn-tabs v-model="current" :data="tabs"></sn-tabs>
</template>

<script setup>
const tabs = [
	{ id: 't1', text: '选项1' },
	{ id: 't2', text: '选项2', badgeConfig: { value: 6 } },
	{ id: 't3', text: '选项3', disabled: true }
] as SnTabParams[]
</script>

数据项 SnTabParams

字段说明类型
text标签文本(必需)String
id标签唯一标识(必需,用于指示线定位与滚动)String
disabled是否禁用该标签Boolean
badgeConfig徽标配置SnBadgeParams

内置 sn-badge 的组件可通过 badgeConfig 属性配置徽标参数。

名称类型必填描述
valueNumber显示的值(仅 number 模式)
maxNumber最大值,超过显示 max+
sizeString大小
offsetString偏移量(transform)
mode'number' | 'text' | 'dot'模式
textString文本内容(仅 text 模式)
showZeroBoolean是否显示 0
textColorString文字颜色
bgColorString背景颜色

类型中还声明了 icon、checked、showBadge 字段,当前渲染未使用。

属性

参数说明类型默认值可选值
v-model当前激活的标签页索引Number0-
scrollable标签是否可滚动Booleanfalsetrue | false
data标签页数据数组Array<SnTabParams>[]-
mode指示线动画模式String'swipe'swipe | push
width标签宽度String'100%'-
height标签高度String'40px'-
bgColor标签背景颜色,为空时取主题 $frontString''-
textColor标签文本颜色,为空时取主题 $titleString''-
textSize标签文本大小,为空时 14 × fontsizeFactorString | Number''-
borderRadius标签圆角,为空时 12 × radiusFactorString | Number''-
disabledTextColor禁用标签文本颜色,为空时取主题 $disabledTextString''-
activeTextColor选中标签文本颜色,为空时取主题 $primaryString''-
itemPadding标签内边距(可滚动时作为左右内边距)String'12px'-
lineColor指示线颜色,为空时取主题 $primaryString''-
lineWidth指示线宽度,为空时取标签宽度的 60%String''-
lineHeight指示线高度String'2px'-
aniTime标签及指示线动画时长(单位 ms,$ 简写乘动画乘数),为空时取 $snui.aniTimeNormalString | Number''-
itemStyle选中标签样式UTSJSONObject | String''-
itemClass选中标签外部样式类String''-
textStyle标签文本样式UTSJSONObject | String''-
textClass标签文本外部样式类String''-
activeItemStyle非选中标签样式UTSJSONObject | String''-
activeItemClass非选中标签外部样式类String''-
customStyle自定义样式UTSJSONObject | String''-

sn-tabs 标签项数据。

名称类型必填描述
textString标签文本
iconString图标名
idString标签唯一 id
disabledBoolean是否禁用
checkedBoolean是否选中
showBadgeBoolean是否显示徽标
badgeConfigSnBadgeParams | null徽标配置

内置 sn-badge 的组件可通过 badgeConfig 属性配置徽标参数。

名称类型必填描述
valueNumber显示的值(仅 number 模式)
maxNumber最大值,超过显示 max+
sizeString大小
offsetString偏移量(transform)
mode'number' | 'text' | 'dot'模式
textString文本内容(仅 text 模式)
showZeroBoolean是否显示 0
textColorString文字颜色
bgColorString背景颜色

事件

名称类型说明
change(index: number) => Void标签页切换时触发,index 为标签页索引

插槽

名称说明
left在标签页左侧放置内容
right在标签页右侧放置内容

使用 MIT 协议