Skip to content

Rate 评分组件

该组件一般用于满意度调查,星型评分的场景。

温馨提示

本项目参考了 uView-Plus 开源项目的组件开发方式,基于 Vue 3 和 TypeScript 实现了自定义组件。目前该组件仍处于测试阶段。
感谢 uView-Plus 开源项目及其团队成员的贡献,他们的组件开发思路为本项目提供了宝贵地参考。如果需要了解更多组件开发细节,可以参考uView-Plus的 rate组件 的代码实现。

平台差异说明

APP(vue)H5微信小程序

基本使用示例

html
<!-- 全局使用 -->
<hy-rate v-model="value"></hy-rate>
<!-- 单个组件引入 -->
<HyRate v-model="value"></HyRate>
ts
import { HyRate } from "hy-app";
import { ref } from "vue";

const value = ref(2);

自定义样式

  • 通过active-color设置选中的星星的颜色
  • 通过inactive-color设置未选中时星星的颜色
  • 通过gutter设置星星的间距,左右内边距各占gutter的一半
html
<hy-rate active-color="#FA3534" inactive-color="#b2b2b2" gutter="20"></hy-rate>

自定义图标

  • 通过active-icon设置激活的图标
  • 通过inactive-icon设置未激活的图标
html
<!-- icon自定义 -->
<hy-rate :activeIcon="IconConfig.CHECK_MASK" :inactiveIcon="IconConfig.CHECK_MASK"></hy-rate>
<!-- 图片地址 -->
<hy-rate activeIcon="https://pic1.imgdb.cn/item/67d6820788c538a9b5bf333a.png" inactiveIcon="https://pic1.imgdb.cn/item/67d6820788c538a9b5bf333b.png"></hy-rate>
javascript
import { IconConfig } from "hy-app";

最多评分数

html
<hy-rate :count="10"></hy-rate>

最少可以选中的数量

html
<hy-rate :minCount="5"></hy-rate>

允许半星

html
<hy-rate :value="2.5" allowHalf></hy-rate>

禁用状态

html
<hy-rate :value="2" disabled></hy-rate>

只读状态

html
<hy-rate :value="2" readonly></hy-rate>

API

参数说明类型默认值
v-model双向绑定选择星星的数量number1
count最多可选的星星数量number5
disabled是否禁止用户操作booleanfalse
readonly是否只读booleanfalse
size星星的大小,单位rpxnumber | string18
inactiveColor未选中星星的颜色string#b2b2b2
activeColor选中的星星颜色stringColorConfig.primary
gutter星星之间的距离number4
minCount最少选中星星的个数number1
allowHalf是否允许半星选择booleanfalse
activeIcon选中时的图标名stringIconConfig.STAR_FILL
inactiveIcon未选中时的图标名stringIconConfig.STAR
touchable是否可以通过滑动手势选择评分booleantrue
customStyle自定义样式CSSProperties-

Events

事件名说明回调参数
change选中的星星发生变化时触发value:当前选中的星星的数量,如果使用v-model双向绑定方式,无需监听此事件
00:46