39 lines
692 B
TypeScript
39 lines
692 B
TypeScript
Component({
|
||
properties: {
|
||
/** 评分 0-10,内部转换为 0-5 星 */
|
||
score: {
|
||
type: Number,
|
||
value: 0,
|
||
},
|
||
/** 星星尺寸 */
|
||
size: {
|
||
type: String,
|
||
value: '40rpx',
|
||
},
|
||
/** 是否只读 */
|
||
readonly: {
|
||
type: Boolean,
|
||
value: true,
|
||
},
|
||
},
|
||
|
||
observers: {
|
||
score(val: number) {
|
||
// score(0-10) → star(0-5)
|
||
const clamped = Math.max(0, Math.min(10, val))
|
||
this.setData({ starValue: clamped / 2 })
|
||
},
|
||
},
|
||
|
||
data: {
|
||
starValue: 0,
|
||
},
|
||
|
||
lifetimes: {
|
||
attached() {
|
||
const clamped = Math.max(0, Math.min(10, this.data.score))
|
||
this.setData({ starValue: clamped / 2 })
|
||
},
|
||
},
|
||
})
|