亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue實現類似淘寶商品評價頁面星級評價及上傳多張圖片功能

2019-11-19 12:37:10
字體:
來源:轉載
供稿:網友

最近在寫一個關于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++   }   }   this.scoreStartNum = count  }  if (this.scoreStartNum === 1) {   this.scoreInfo = '很差'  } else if (this.scoreStartNum === 2) {   this.scoreInfo = '差'  } else if (this.scoreStartNum === 3) {   this.scoreInfo = '一般'  } else if (this.scoreStartNum === 4) {   this.scoreInfo = '滿意'  } else if (this.scoreStartNum === 5) {   this.scoreInfo = '很滿意'  }

2. 評價內容輸入

<textarea v-bind:maxlength="Surplus" @input="descArea" v-model="inputText" name="abstract" id="abstract" placeholder="寶貝滿足你的期待嗎?說說你的使用心得,分享給想買的他們吧!"></textarea>

Surplus 表示最大限制字數,v-model綁定輸入字體,去掉邊框可以設置:border: none;

上傳多張圖片功能

單獨寫了個uploadImages組件,用input來設置圖片上傳

<input type="file" class="input-file" multiple="multiple" name="avatar" ref="avatarInput" @change="changeImage($event)" accept="image/gif,image/jpeg,image/jpg,image/png">

在@change="handleChange"拿到圖片信息,有兩種方式展示:

圖片流形式展示圖片

let reader = new FileReader()   let that = this   reader.readAsDataURL(file)   reader.onload = function (e) {   console.log(this.result)   that.imgUrls.push(this.result)   }

2.上傳阿里云等第三方,直接拿到圖片url路徑,在此我用的第一種方式。

用mint-ui的錄播圖形式來做圖片的左右滑動功能。

<mt-swipe :auto="0" :show-indicators="false" @change="handleChange" :continuous="false" :defaultIndex="num">   <mt-swipe-item v-for="(item,index) in imgUrls" :key="item.id">    <div class="num" >{{index+1+'/'+imgUrls.length}}</div>    <img :src="imgUrls[index]" class="img"/>   </mt-swipe-item>   </mt-swipe>

:auto="0"為不自動播放,:show-indicators="false"表示不展示下面的圓點,:defaultIndex="num"默認展示第幾張圖片,:continuous="false" 是否重復播放。

關鍵代碼為:

methods: { //拿到圖片信息轉化為圖片流 changeImage: function (e) {  if (e.target.files.length <= (this.maxImages - this.imgUrls.length)) {  for (var i = 0; i < e.target.files.length; i++) {   let file = e.target.files[i]   this.file = file   console.log(this.file)   let reader = new FileReader()   let that = this   reader.readAsDataURL(file)   reader.onload = function (e) {   console.log(this.result)   that.imgUrls.push(this.result)   }  }  // 剩余張數  this.leftImages = this.maxImages - (this.imgUrls.length + e.target.files.length)  this.pictureNums = String(this.maxImages - (this.imgUrls.length + e.target.files.length)) + '/' + String(this.maxImages)  } else {  Toast('只能選擇' + (this.maxImages - this.imgUrls.length) + '張了')  } }, //刪除 delect (index) {  this.imgUrls.splice(index, 1)  this.leftImages++  console.log('數量' + this.leftImages)  if (this.leftImages == this.maxImages) {  this.pictureNums = '上傳圖片'  } else {  this.pictureNums = String(this.leftImages) + '/' + String(this.maxImages)  } }, //輪播圖滑動改變index handleChange(index){  this.num = index }, //看大圖 bigImg (index) {  this.showBigImg = true  this.num = index } }

樣式如下

<template> <div class="avatar">  <!--展示圖片-->  <div class="hasPic" v-if="imgUrls.length>0" v-for="(item,index) in imgUrls">  <img class="seledPic" ref="picture" :src="item?item:require('../../static/images/imagebj.jpg')" name="avatar" @click="bigImg(index)">  <img class="delect" src="../../static/images/del.png" @click="delect(index)">  </div>  <!--點擊方法圖左右滑動-->  <div class="imgMask" v-if="showBigImg" @click.stop="showBigImg=!showBigImg">  <div class="showImg">   <mt-swipe :auto="0" :show-indicators="false" @change="handleChange" :continuous="false" :defaultIndex="num">   <mt-swipe-item v-for="(item,index) in imgUrls" :key="item.id">    <div class="num" >{{index+1+'/'+imgUrls.length}}</div>    <img :src="imgUrls[index]" class="img"/>   </mt-swipe-item>   </mt-swipe>  </div>  </div>  <!--默認圖片-->  <div class="selPic" v-if="imgUrls.length<6">  <img src="../../static/images/imagebj.jpg" name="avatar">  <span>{{pictureNums}}</span>  <input type="file" class="input-file" multiple="multiple" name="avatar" ref="avatarInput" @change="changeImage($event)" accept="image/gif,image/jpeg,image/jpg,image/png">  </div> </div> </template>

完整項目地址為:https://github.com/dt8888/publicComment

注意點:

1.項目中用到了mint -ui,轉移項目中錄播圖代碼時,會報錯,在終端項目中輸入:npm i mint-ui -S

 用到了px和rem自動轉化  http://www.49028c.com/article/149721.htm

總結

以上所述是小編給大家介紹的vue實現類似淘寶商品評價頁面星級評價及上傳多張圖片功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲日本中文字幕免费在线不卡| 岛国av一区二区在线在线观看| 午夜精品久久久久久久男人的天堂| 国产精品中文字幕在线| 亚洲少妇激情视频| 久久久久一本一区二区青青蜜月| 久久激情视频免费观看| 夜夜躁日日躁狠狠久久88av| 777午夜精品福利在线观看| 亚洲一区二区三区777| 亚洲第一av在线| 国产欧美精品一区二区| 亚洲第一区在线| 黑人与娇小精品av专区| 成人做爰www免费看视频网站| 欧美人与性动交a欧美精品| 青青草99啪国产免费| 精品久久久久久中文字幕大豆网| 97婷婷大伊香蕉精品视频| 欧美成人精品一区二区三区| 97久久久久久| 欧美另类极品videosbestfree| 日韩电影在线观看免费| 色偷偷噜噜噜亚洲男人的天堂| 中文字幕国产精品久久| 亚洲最大成人网色| 国产欧美日韩最新| 97avcom| 国产精品一区久久| 亚洲黄色av网站| 久久久久久久一区二区三区| 国产精品av电影| 欧美国产日韩精品| 国产精品久久久久久久7电影| 亚洲免费电影在线观看| 久久精品最新地址| 国产精品欧美风情| 日本伊人精品一区二区三区介绍| 热久久这里只有精品| 一区二区三区无码高清视频| 欧美成人免费全部| 伊人伊人伊人久久| 欧美亚洲国产另类| 亚洲乱码国产乱码精品精天堂| 日韩精品中文字幕在线观看| 亚洲视频在线播放| 国产一区二区美女视频| 久久亚洲精品一区二区| 亚洲日本中文字幕免费在线不卡| 中文字幕亚洲欧美日韩高清| 欧美激情一级二级| 久久天天躁狠狠躁夜夜爽蜜月| 国产做受69高潮| 色黄久久久久久| 中国china体内裑精亚洲片| 久久中文久久字幕| 欧美日韩高清在线观看| 正在播放亚洲1区| 91福利视频网| 国产精品女人网站| 国产精品日韩av| 日本亚洲欧美成人| 91视频免费网站| 97在线精品国自产拍中文| 久久久国产一区二区三区| 日本精品中文字幕| 在线观看91久久久久久| 成人午夜黄色影院| 欧美成aaa人片免费看| 国产又爽又黄的激情精品视频| 亚洲人成电影网站色…| 日韩的一区二区| 国产精品狼人色视频一区| 亚洲国产精品久久久久| 国产婷婷色综合av蜜臀av| 精品久久久国产精品999| 亚州av一区二区| 亚洲毛茸茸少妇高潮呻吟| 国产精品久久久久久久av电影| 欧洲中文字幕国产精品| 亚洲欧美日韩国产中文| 97视频在线观看播放| 精品成人av一区| 国产亚洲成精品久久| 日韩av在线最新| 欧美激情xxxx| 久国内精品在线| 国产精品国产自产拍高清av水多| 亚洲成成品网站| 国产ts一区二区| 秋霞av国产精品一区| 日韩成人中文电影| 日本一区二区在线播放| 最近2019年手机中文字幕| 精品女同一区二区三区在线播放| 91亚洲精品久久久久久久久久久久| 日韩成人中文字幕在线观看| 国产日本欧美视频| 亚洲黄色免费三级| 久久精品色欧美aⅴ一区二区| 欧美性极品xxxx做受| 97激碰免费视频| 中文字幕在线观看亚洲| 成人亚洲欧美一区二区三区| 国产精品青青在线观看爽香蕉| 97视频在线观看成人| 日韩在线视频导航| 成人网在线视频| 国产精品成人观看视频国产奇米| 中文字幕亚洲欧美日韩高清| 色噜噜国产精品视频一区二区| 亚洲午夜精品久久久久久性色| 狠狠躁夜夜躁久久躁别揉| 国产精品亚洲视频在线观看| 日日狠狠久久偷偷四色综合免费| 成人精品一区二区三区电影黑人| 欧美性猛交丰臀xxxxx网站| 欧美专区在线观看| 992tv成人免费视频| 国产精品人人做人人爽| 成人黄色在线免费| 欧美日韩一区二区三区| 国产精品va在线播放| 精品久久久久久国产91| 国产精品亚洲аv天堂网| 欧美精品在线免费| 欧美午夜久久久| 亚洲精品影视在线观看| 亚洲免费av片| 国产精品亚洲一区二区三区| 在线观看日韩专区| 亚洲已满18点击进入在线看片| 日韩精品免费看| 欧美午夜片欧美片在线观看| 久久综合免费视频影院| 国内精品小视频在线观看| 日韩精品在线视频| 国产精品夜间视频香蕉| 欧美精品免费在线| 久久久精品美女| 久久综合伊人77777蜜臀| 最新69国产成人精品视频免费| 欧美老女人www| 久久这里只有精品99| 九九热视频这里只有精品| 亚洲精品国产成人| 欧美日韩亚洲系列| 2019日本中文字幕| 欧美一区二区.| 亚洲人成电影网站色www| 日本精品久久电影| 欧美日韩激情网| 欧美日韩国产色| 九九热r在线视频精品| 日本亚洲欧美三级| 国产精品一区二区av影院萌芽| 国产丝袜一区视频在线观看| 亚洲无限乱码一二三四麻| 日韩av综合中文字幕| 亚洲精品成人av| 成人免费看吃奶视频网站| 国产成人激情小视频| 亚洲精品少妇网址| 国产乱肥老妇国产一区二|