zjk
2026-09-29 54dcf0a82e7490fa58b1c056d5c0b9cb739c2931
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import type { ExtractPropTypes, PropType } from 'vue';
import type { SubsectionListItem, SubsectionMode } from '../../types/global';
import { baseProps } from '../common/props';
 
/**
 * SubsectionProps 分段器 props 类型定义
 * @description 分段器,支持按钮/分段模式、动画、颜色等
 */
 
export const SubsectionProps = {
    ...baseProps,
    /** tab的数据 */
    list: { type: Array as PropType<Array<string | SubsectionListItem>>, default: () => [] },
    /** 当前活动的tab的index */
    current: { type: [Number, String] as PropType<number | string>, default: 0 },
    /** 激活的颜色 */
    activeColor: { type: String, default: 'var(--u-main-color)' },
    /** 未激活的颜色 */
    inactiveColor: { type: String, default: 'var(--u-content-color)' },
    /** 模式选择,mode=button为按钮形式,mode=subsection时为分段模式 */
    mode: { type: String as PropType<SubsectionMode>, default: 'button' },
    /** 字体大小,单位rpx */
    fontSize: { type: [Number, String] as PropType<number | string>, default: 28 },
    /** 是否开启动画效果 */
    animation: { type: Boolean, default: true },
    /** 组件的高度,单位rpx */
    height: { type: [Number, String] as PropType<number | string>, default: 70 },
    /** 激活tab的字体是否加粗 */
    bold: { type: Boolean, default: true },
    /** mode=button时,组件背景颜色 */
    bgColor: { type: String, default: 'var(--u-divider-color)' },
    /** mode = button时,滑块背景颜色 */
    buttonColor: { type: String, default: 'var(--u-bg-white)' },
    /** 在切换分段器的时候,是否让设备震一下 */
    vibrateShort: { type: Boolean, default: false }
};
 
export type SubsectionProps = ExtractPropTypes<typeof SubsectionProps>;