Skip to content

StarRating 星级评分

星级评分组件用于让用户通过点击星标来评价内容,支持多种图标变体和颜色定制。

基础用法

通过 v-model 双向绑定评分值。

vue
<TStarRating v-model="rating" />

预设评分

设置 modelValue 为指定数值即可预设评分。

vue
<TStarRating :model-value="4" />

只读模式

设置 readonly 禁用交互,仅用于展示。

vue
<TStarRating :model-value="4" readonly />

显示文字

设置 show-text 在评分右侧显示文字标签(很差/较差/一般/满意/非常满意)。

vue
<TStarRating v-model="rating" show-text />

尺寸变体

通过 size prop 控制图标尺寸:sm / default / md / lg

vue
<TStarRating v-model="rating" size="lg" />

颜色变体

通过 color prop 指定填充色,使用 Tabler 颜色类名。

vue
<TStarRating v-model="rating" color="text-red" />

图标变体

通过 icon prop 切换图标样式:star / heart / ghost / circle

vue
<TStarRating v-model="rating" icon="heart" color="text-red" />

半星评分

开启 allow-half 支持半星评分,鼠标悬停在星标左半侧可选择半星。

vue
<TStarRating v-model="rating" allow-half />

清除评分

开启 clearable(默认开启),点击已选中的星标可清除评分至 0。

vue
<TStarRating v-model="rating" clearable />

空星颜色与图标

通过 void-colorvoid-icon 分别控制未选中星标的颜色和图标。

vue
<TStarRating v-model="rating" void-color="text-muted" void-icon="circle" color="text-primary" />

数字分数

开启 show-score 显示数字分数,score-template 可自定义显示模板。

vue
<TStarRating v-model="rating" show-score score-template="得分:{value}/{max}" />

底部文字

开启 text-on-bottom,文字标签显示在每颗星下方。

vue
<TStarRating v-model="rating" show-text text-on-bottom :texts="['很差','较差','一般','满意']" />

自定义星数

通过 max 设置自定义星数。

vue
<TStarRating v-model="rating" :max="10" />

API

Props

Prop说明类型默认值
modelValue当前评分(v-model)number0
max最大星数number5
size图标尺寸'sm' | 'default' | 'md' | 'lg''default'
color选中星填充色string
icon选中星图标变体'star' | 'heart' | 'ghost' | 'circle''star'
readonly只读模式booleanfalse
showText显示文字标签booleanfalse
texts自定义提示文字数组string[]
clearable点击相同星可清除booleantrue
allowHalf允许半星评分booleanfalse
voidColor未选中星填充色string
voidIcon未选中星图标变体'star' | 'heart' | 'ghost' | 'circle'icon
showScore显示数字分数booleanfalse
scoreTemplate分数模板string'{value}/{max} 分'
textOnBottom文字在每颗星下方booleanfalse

Emits

事件参数说明
update:modelValue(value: number)评分变化