vue实现类似淘宝商品评价页面星级评价及上传多张图片功能

2020-06-14 06:22:45易采站长站整理

最近在写一个关于vue的商城项目,然后集成在移动端中,开发需求中有一界面,类似淘宝商城评价界面!实现效果图如下所示:

评价页

点击看大图,且可左右滑动

功能需求分析

1.默认为5颗星,为非常满意,4颗满意,根据不同星级显示不同满意程度。

 2.评价内容,最多为200字。

 3.上传图片最多上传6张,图片不可拉伸,可删除,可点击放大左右滑动展示

具体实现关键代码

 关于星级功能:

 写一个五星数组,默认数组中有亮的星级图片,用bool值判断是否变暗。 

     默认星级数组 

 点击实现的关键代码:


// 评分
rating: function (index, string) {
var total = this.stars.length // 星星总数
var idx = index + 1 // 这代表选的第idx颗星-也代表应该显示的星星数量
// 进入if说明页面为初始状态
if (this.scoreStartNum === 0) {
this.scoreStartNum = idx
for (var i = 0; i < idx; i++) {
this.stars[i].src = starOnImg
this.stars[i].active = true
}
} else {
// 如果再次点击当前选中的星级-仅取消掉当前星级,保留之前的。
if (idx == this.scoreStartNum) {
for (var i = index; i < total; i++) {
if (i != 0) {
this.stars[i].src = starOffImg
this.stars[i].active = false
}
}
}
// 如果小于当前最高星级,则直接保留当前星级
if (idx < this.scoreStartNum) {
for (var i = idx; i < this.scoreStartNum; i++) {
if (i != 0) {
this.stars[i].src = starOffImg
this.stars[i].active = false
}
}
}
// 如果大于当前星级,则直接选到该星级
if (idx > this.scoreStartNum) {
for (var i = 0; i < idx; i++) {
this.stars[i].src = starOnImg
this.stars[i].active = true
}
}

var count = 0 // 计数器-统计当前有几颗星
for (var i = 0; i < total; i++) {
if (this.stars[i].active) {
count++