评价星级功能实现

基于微信小程序实现

  • 功能实现:半星,全星,灰星
    全星标准:(如9分 除二等 4.5 全星就是 4颗)
    半星标准:当小数点大于等于5时 显示半星其余显示灰
    灰星标准:属于的显示灰星

星星模板

wxml

<!--stars.wxml-->
<template name="stars">
  <view class='star-container'>
    <view class='stars'>
      <block wx:for="{{arr}}" wx:for-index='xid' wx:key='xid'>
      <image src='{{item}}'></image>
     </block>
    </view>
    <text class='starsfont'>{{average}}</text>
  </view>
</template>

wxss

/* 星星样式 */
.star-container {
  display: flex;
  flex-direction: row;
}
.stars {
  display: flex;
  flex-direction: row;
  height: 17rpx;
  margin-right: 30rpx;
  margin-top: 10rpx;
}
.stars image {
  padding-left: 5rpx;
  width: 17rpx;
  height: 17rpx;
}
.starsfont {
  font-size: 22rpx;
  color: #999;
  margin-top: 4rpx;
}

js

const db = wx.cloud.database()
function star(data) {
  let index = data //获取数据长度
  for (var i = 0; i < index.length; i++) {
    let arr1 = []
    let average = index[i].rating.average / 2
    average = average.toFixed(1);
    let int = Math.floor(average)
    for (var j = 1; j <= int; j++) {
      arr1.push("/images/icon/star-full.png")
    }
    if (average * 10 % 10 > 5) {
      arr1.push("/images/icon/star-half.png")
    }
    let num = 5 - arr1.length
    for (let i = 0; i < num; i++) {
      arr1.push("/images/icon/star-empty.png")
    }
    index[i].rating.arr = arr1
  }
}

封装获取数据库方法

function data(database, index) {
  return db.collection(database).doc(index).get().then(function (res) {
    return Promise.resolve(res.data)
  })
}

module.exports = {  //导出方法
  star: star,
  data: data
}

使用星星组件
in_theaters 数据库表, 811e3512 _id

//
const utils = require('../../utils/utils.js')//引入utils 方法
   utils.data('in_theaters','811e3512').then(res => {
      utils.star(res.subjects)
      this.setData({movieItem:res})
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值