Rate 评分

用于评分

基础用法

评分默认被分为三个等级,可以利用颜色数组对分数及情感倾向进行分级(默认情况下不区分颜色)。 三个等级所对应的颜色用 colors 属性设置,而它们对应的两个阈值则通过 low-thresholdhigh-threshold 设定。

Rate 评分 - 图1

  1. <template>
  2. <div class="demo-rate-block">
  3. <span class="demonstration">Default</span>
  4. <el-rate v-model="value1" />
  5. </div>
  6. <div class="demo-rate-block">
  7. <span class="demonstration">Color for different levels</span>
  8. <el-rate v-model="value2" :colors="colors" />
  9. </div>
  10. </template>
  11. <script lang="ts" setup>
  12. import { ref } from 'vue'
  13. const value1 = ref(null)
  14. const value2 = ref(null)
  15. const colors = ref(['#99A9BF', '#F7BA2A', '#FF9900']) // same as { 2: '#99A9BF', 4: { value: '#F7BA2A', excluded: true }, 5: '#FF9900' }
  16. </script>
  17. <style scoped>
  18. .demo-rate-block {
  19. padding: 30px 0;
  20. text-align: center;
  21. border-right: solid 1px var(--el-border-color);
  22. display: inline-block;
  23. width: 49%;
  24. box-sizing: border-box;
  25. }
  26. .demo-rate-block:last-child {
  27. border-right: none;
  28. }
  29. .demo-rate-block .demonstration {
  30. display: block;
  31. color: var(--el-text-color-secondary);
  32. font-size: 14px;
  33. margin-bottom: 20px;
  34. }
  35. </style>

尺寸

Rate 评分 - 图2

  1. <template>
  2. <el-rate v-model="value" size="large" />
  3. <br />
  4. <el-rate v-model="value" />
  5. <br />
  6. <el-rate v-model="value" size="small" />
  7. </template>
  8. <script lang="ts" setup>
  9. import { ref } from 'vue'
  10. const value = ref(null)
  11. </script>

允许半选

属性 allow-half 允许出现半星

Rate 评分 - 图3

  1. <template>
  2. <el-rate v-model="value" allow-half />
  3. </template>
  4. <script lang="ts" setup>
  5. import { ref } from 'vue'
  6. const value = ref()
  7. </script>

辅助文字

用辅助文字直接地表达对应分数

为组件设置 show-text 属性会在右侧显示辅助文字。 通过设置 texts 可以为每一个分值指定对应的辅助文字。 texts 为一个数组,长度应等于最大值 max

Rate 评分 - 图4

  1. <template>
  2. <el-rate
  3. v-model="value"
  4. :texts="['oops', 'disappointed', 'normal', 'good', 'great']"
  5. show-text
  6. />
  7. </template>
  8. <script lang="ts" setup>
  9. import { ref } from 'vue'
  10. const value = ref()
  11. </script>

其它 icon

当有多层评价时,可以用不同类型的 icon 区分评分层级

设置icon-classes属性可以自定义不同分段的图标。 若传入数组,共有 3 个元素,为 3 个分段所对应的类名;若传入对象,可自定义分段,键名为分段的界限值,键值为对应的类名。 本例还使用 void-icon-class 指定了未选中时的图标类名。

Rate 评分 - 图5

  1. <template>
  2. <el-rate
  3. v-model="value"
  4. :icons="icons"
  5. :void-icon="ChatRound"
  6. :colors="['#409eff', '#67c23a', '#FF9900']"
  7. />
  8. </template>
  9. <script lang="ts" setup>
  10. import { ref } from 'vue'
  11. import { ChatDotRound, ChatLineRound, ChatRound } from '@element-plus/icons-vue'
  12. const value = ref()
  13. const icons = [ChatRound, ChatLineRound, ChatDotRound] // same as { 2: ChatRound, 4: { value: ChatLineRound, excluded: true }, 5: ChatDotRound }
  14. </script>

只读

只读的评分用来展示分数, 允许出现半星

为组件设置 disabled 属性表示组件为只读,支持小数分值。 此时若设置 show-score,则会在右侧显示目前的分值。 可以提供 score-template 作为显示模板,模板为一个包含了 {value} 的字符串,{value} 会被解析为分值。 模板为一个包含了 {value} 的字符串,{value} 会被解析为分值。

Rate 评分 - 图6

  1. <template>
  2. <el-rate
  3. v-model="value"
  4. disabled
  5. show-score
  6. text-color="#ff9900"
  7. score-template="{value} points"
  8. />
  9. </template>
  10. <script lang="ts" setup>
  11. import { ref } from 'vue'
  12. const value = ref(3.7)
  13. </script>

自定义样式

您可以为rate组件设置自定义样式。 使用 css/scss 语言来更改全局或局部颜色。 我们设置了一些全局颜色变量:--el-rate-void-color--el-rate-fill-color--el-rate-disabled-void-color--el-rate-text-color。 您可以像这样使用::root { --el-rate-void-color: red; --el-rate-fill-color: blue; }.

默认变量

变量默认颜色
—el-rate-void-colorvar(—el-border-color-darker)
—el-rate-fill-color#f7ba2a
—el-rate-disabled-void-colorvar(—el-fill-color)
—el-rate-text-colorvar(—el-text-color-primary)

Rate 属性

属性说明类型可选值默认值
model-value / v-model选中项绑定值number0
max最大分值number5
size尺寸stringlarge / default / smalldefault
disabled是否为只读booleanfalse
allow-half是否允许半选booleanfalse
low-threshold低分和中等分数的界限值, 值本身被划分在低分中number2
high-threshold高分和中等分数的界限值, 值本身被划分在高分中number4
colorsicon 的颜色。 若传入数组,共有 3 个元素,为 3 个分段所对应的颜色;若传入对象,可自定义分段,键名为分段的界限值,键值为对应的颜色array/object[‘#F7BA2A’, ‘#F7BA2A’, ‘#F7BA2A’]
void-color未选中 icon 的颜色string#C6D1DE
disabled-void-color只读时未选中 icon 的颜色string#EFF2F7
icons图标组件 若传入数组,共有 3 个元素,为 3 个分段所对应的类名;若传入对象,可自定义分段,键名为分段的界限值,键值为对应的类名array/object[StarFilled, StarFilled, StarFilled]
void-icon未被选中的图标组件string/componentStar
disabled-void-icon禁用状态的未选择图标string/componentStarFilled
show-text是否显示辅助文字,若为真,则会从 texts 数组中选取当前分数对应的文字内容booleanfalse
show-score是否显示当前分数, show-score 和 show-text 不能同时为真booleanfalse
text-color辅助文字的颜色string#1F2D3D
texts辅助文字数组array[‘Extremely bad’, ‘Disappointed’, ‘Fair’, ‘Satisfied’, ‘Surprise’]
score-template分数显示模板string

Rate 事件

事件名描述说明参数
change分值改变时触发val,改变后的值

源代码

组件 Rate 评分 - 图7 文档 Rate 评分 - 图8

贡献者

Rate 评分 - 图9 三咲智子

Rate 评分 - 图10 云游君

Rate 评分 - 图11 jeremywu

Rate 评分 - 图12 Chen

Rate 评分 - 图13 btea

Rate 评分 - 图14 LIUCHAO

Rate 评分 - 图15 류한경

Rate 评分 - 图16 opengraphica

Rate 评分 - 图17 Shana-AE

Rate 评分 - 图18 MoConWu

Rate 评分 - 图19 kooriookami

Rate 评分 - 图20 SongWuKong

Rate 评分 - 图21 Aex

Rate 评分 - 图22 Alan Wang

Rate 评分 - 图23 tryag

Rate 评分 - 图24 Xc

Rate 评分 - 图25 Hades-li