TnRate-评分
评分组件一般用户设置评分,如评价等。
组件位置
typescript
import TnRate from '@tuniao/tnui-vue3-uniapp/components/rate/src/rate.vue'
import TnRate from '@tuniao/tnui-vue3-uniapp/components/rate/src/rate.vue'
typescript
import TnRate from '@/uni_modules/tuniaoui-vue3/components/rate/src/rate.vue'
import TnRate from '@/uni_modules/tuniaoui-vue3/components/rate/src/rate.vue'
平台差异说明
App(vue) | H5 | 微信小程序 | 支付宝小程序 | ... |
---|---|---|---|---|
√ | √ | √ | √ | 适配中 |
基础使用
- 通过
v-model
绑定评分的值 - 设置
allow-half
为true
,则以 0.5 为一个刻度进行选择评分 - 通过
min
参数设置最小评分,默认为 0 - 通过
max
参数设置最大评分,默认为 5,即星星显示的数量
vue
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" />
</template>
修改最小、最大值
vue
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" :min="1" :max="6" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" :min="1" :max="6" />
</template>
允许选中一半
vue
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" allow-half />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" allow-half />
</template>
设置尺寸
可以通过size
参数设置组件的尺寸,默认有sm
、lg
、xl
三种尺寸,也可以通过size
参数传递自定义的尺寸
vue
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" size="sm" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" size="sm" />
</template>
vue
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" size="80rpx" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate v-model="rateValue" size="80rpx" />
</template>
修改选中和未选中的图标、颜色
- 通过
active-icon
参数设置选中的图标 - 通过
inactive-icon
参数设置未选中的图标 - 通过
active-color
参数设置选中的颜色,可以传递hex
、rgb
、rgba
和图鸟内置颜色的值字体颜色 - 通过
inactive-color
参数设置未选中的颜色,可以传递hex
、rgb
、rgba
和图鸟内置颜色的值字体颜色
vue
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate
v-model="rateValue"
inactive-icon="like"
active-icon="like-fill"
inactive-color="#ccc"
active-color="tn-red"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const rateValue = ref(0)
</script>
<template>
<TnRate
v-model="rateValue"
inactive-icon="like"
active-icon="like-fill"
inactive-color="#ccc"
active-color="tn-red"
/>
</template>
自定义指定位置的图标颜色信息
通过给custom-data
传递一个对象,其中key
是需要修改哪个位置的图标颜色信息,value
是需要修改的图标颜色信息,可以传递hex
、rgb
、rgba
和图鸟内置颜色的值字体颜色,value
包含active-icon
、inactive-icon
、active-color
、inactive-color
四个参数
vue
<script lang="ts" setup>
import { ref } from 'vue'
import type { RateCustomDataMap } from '@tuniao/tnui-vue3-uniapp'
const rateValue = ref(0)
const customRateData: RateCustomDataMap = {
1: {
inactiveIcon: 'like',
activeIcon: 'like-fill',
inactiveColor: 'tn-red-light',
activeColor: 'tn-red',
},
2: {
inactiveColor: 'tn-grey-disabled',
activeColor: '#784532',
},
}
</script>
<template>
<TnRate v-model="rateValue" :custom-data="customRateData" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import type { RateCustomDataMap } from '@tuniao/tnui-vue3-uniapp'
const rateValue = ref(0)
const customRateData: RateCustomDataMap = {
1: {
inactiveIcon: 'like',
activeIcon: 'like-fill',
inactiveColor: 'tn-red-light',
activeColor: 'tn-red',
},
2: {
inactiveColor: 'tn-grey-disabled',
activeColor: '#784532',
},
}
</script>
<template>
<TnRate v-model="rateValue" :custom-data="customRateData" />
</template>
vue
<script lang="ts" setup>
import { ref } from 'vue'
import type { RateCustomDataMap } from '@/uni_modules/tuniaoui-vue3'
const rateValue = ref(0)
const customRateData: RateCustomDataMap = {
1: {
inactiveIcon: 'like',
activeIcon: 'like-fill',
inactiveColor: 'tn-red-light',
activeColor: 'tn-red',
},
2: {
inactiveColor: 'tn-grey-disabled',
activeColor: '#784532',
},
}
</script>
<template>
<tn-rate v-model="rateValue" :custom-data="customRateData" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import type { RateCustomDataMap } from '@/uni_modules/tuniaoui-vue3'
const rateValue = ref(0)
const customRateData: RateCustomDataMap = {
1: {
inactiveIcon: 'like',
activeIcon: 'like-fill',
inactiveColor: 'tn-red-light',
activeColor: 'tn-red',
},
2: {
inactiveColor: 'tn-grey-disabled',
activeColor: '#784532',
},
}
</script>
<template>
<tn-rate v-model="rateValue" :custom-data="customRateData" />
</template>
API
Props
属性名 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
model-value/v-model | rate 评分绑定的值 | Number | 0 | - |
min | 最小值 | Number | 0 | - |
max | 最大值 | Number | 5 | - |
allow-half | 是否允许半选 | Boolean | false | true |
readonly | 是否只读 | Boolean | false | true |
size | 尺寸,可以传递带单位的尺寸值 | String | - | sm / lg / xl |
inactive-icon | 未选中时的图标 | String | star | 图标有效值 |
active-icon | 选中时的图标 | String | star-fill | 图标有效值 |
inactive-color | 未选中时的颜色,支持图鸟内置的颜色值、hex、rgb、rgba | String | - | - |
active-color | 选中时的颜色,支持图鸟内置的颜色值、hex、rgb、rgba | String | - | - |
gutter | 每个图标的间距,默认单位 rpx | String | - | - |
custom-data | 自定义指定位置的图标颜色信息 | RateCustomDataMap | - | - |
validate-event | 值发生修改时是否触发表单验证 | Boolean | true | false |
Events
事件名 | 说明 | 类型 |
---|---|---|
change | 选中的值发生改变 | (value: number) => void |
RateCustomDataMap
参数 | 说明 | 必填 |
---|---|---|
inactiveIcon | 未选中时的图标 | 否 |
activeIcon | 选中时的图标 | 否 |
inactiveColor | 未选中时的颜色,支持图鸟内置的颜色值、hex、rgb、rgba | 否 |
activeColor | 选中时的颜色,支持图鸟内置的颜色值、hex、rgb、rgba | 否 |