Skip to content

Rate 评分

介绍

用于对事物进行评分操作,支持半星、自定义图标、颜色及只读模式。

引入

typescript
import { TnRate } from "@tuniao/tn-ui";

代码演示

基础用法

通过 modelValue 属性绑定当前评分值,默认最大值为 5。

基础用法

点我查看代码
typescript
@Local rateValue: number = 3;

TnRate({
  modelValue: this.rateValue,
  onChange: (value: number) => {
    this.rateValue = value;
  },
})

半星

通过 allowHalf 属性开启半星选择。

半星

点我查看代码
typescript
@Local rateValue: number = 2.5;

TnRate({
  modelValue: this.rateValue,
  allowHalf: true,
  onChange: (value: number) => {
    this.rateValue = value;
  },
})

自定义图标

通过 activeIconinactiveIcon 属性自定义评分图标。

自定义图标

点我查看代码
typescript
@Local rateValue: number = 3;

TnRate({
  modelValue: this.rateValue,
  activeIcon: "heart-fill",
  inactiveIcon: "heart",
  onChange: (value: number) => {
    this.rateValue = value;
  },
})

自定义颜色

通过 activeColorinactiveColor 属性自定义评分颜色。

自定义颜色

点我查看代码
typescript
@Local rateValue: number = 3;

TnRate({
  modelValue: this.rateValue,
  activeColor: "danger",
  inactiveColor: "#E0E0E0",
  onChange: (value: number) => {
    this.rateValue = value;
  },
})
TnRate({
  modelValue: this.rateValue,
  activeColor: "success",
  onChange: (value: number) => {
    this.rateValue = value;
  },
})
TnRate({
  modelValue: this.rateValue,
  activeColor: "#ff6700",
  onChange: (value: number) => {
    this.rateValue = value;
  },
})

只读

通过 readonly 属性设置为只读模式,仅展示评分,不可操作。

点我查看代码
typescript
TnRate({
  modelValue: 4,
  readonly: true,
})

自定义尺寸

通过 rateSize 属性自定义评分图标大小,通过 gutter 属性自定义图标间距。

点我查看代码
typescript
Column({ space: 10 }) {
  // 小尺寸
  TnRate({
    modelValue: 3,
    rateSize: 16,
    gutter: 4,
  })
  // 默认尺寸
  TnRate({
    modelValue: 3,
  })
  // 大尺寸
  TnRate({
    modelValue: 3,
    rateSize: 36,
    gutter: 12,
  })
}

API

Props

参数说明类型默认值
modelValue当前评分值number-
max最大评分值number5
min最小评分值number0
allowHalf是否允许半星booleanfalse
readonly是否为只读模式booleanfalse
rateSize评分图标大小number-
gutter图标间距number-
activeIcon选中时的图标string-
inactiveIcon未选中时的图标string-
activeColor选中时的颜色string-
inactiveColor未选中时的颜色string-

Events

事件名说明回调参数
onChange评分变化时触发(value: number) => void