zoukankan      html  css  js  c++  java
  • 微信小程序评价页面

     1 <!--服务评价-->
     2 <view class="service">
     3   <!--评分-->
     4   <view class='score'>
     5     <view class='left'>
     6       评分
     7     </view>
     8     <view class='right'>
     9        <view bindtap="starTap" data-index="{{index}}"  class="star" wx:for="{{userStars}}" wx:key="index">
    10         <image src="{{item}}"></image>
    11       </view>
    12       <text class='rtxt'>{{wjxScore}}.0分</text>
    13     </view>
    14   </view>
    15   <!--内容-->
    16   <view class='content'>
    17     <view class='left'>
    18       内容
    19     </view>
    20     <view class='right'>
    21       <text bindtap='label' class="{{attitude===true ? 'labelColor':''}}" data-index="{{attitude}}">服务态度好</text>
    22       <text bindtap='label1' class="{{time===false? 'labelColor':''}}" data-index="{{time}}">排队时间短</text>
    23       <text bindtap='label2' class="{{efficiency===false?'labelColor':''}}" data-index="{{efficiency}}">效率高</text>
    24       <text bindtap='label3' class="{{environment===false?'labelColor':''}}" data-index="{{environment}}">门店环境好</text>
    25       <text bindtap='label4' class="{{professional===false?'labelColor':''}}" data-index="{{professional}}">很专业</text> 
    26     </view>
    27   </view>
    28   <!--图片-->
    29   <view class='picture'>
    30     <view class='left'>
    31       图片
    32     </view>
    33     <view class='right'>
    34        <view class="parcel" wx:for="{{pics}}" wx:key="{{index}}">
    35        <image src="{{pics[index]}}" class="According" data-index="{{index}}" mode="aspectFill" bindtap="previewImg"></image>
    36        <image src="{{staticImg}}home/order/apply/error.png" class='deleteimg' catchtap="deleteImg" data-index="{{index}}"></image>
    37        </view>
    38       <image src='/pages/service/img/add.png' class='add' bindtap='choose'></image>
    39     </view>
    40   </view>
    41 </view>
    42 <!--textarea-->
    43 <view class="conts">
    44     <textarea class="areas" placeholder='更多评价请写在这里(最多300字)' minlength="{{min}}" maxlength="{{max}}" bindinput="inputs"> 
    45         <!-- <text class="currentWordNumber">{{currentWordNumber|0}}/{{max}}</text> -->
    46     </textarea>
    47 </view>
    48 <!--提交评价-->
    49 <button class='btn'>提交评价</button>
      1 page {
      2   width: 100%;
      3   height: 100%;
      4   background: #f0f0f0;
      5 }
      6 .service {
      7   width: 100%;
      8   overflow: hidden;
      9   box-sizing: border-box;
     10   padding: 0 20rpx;
     11   background: #fff;
     12 }
     13 .score {
     14   width: 100%;
     15   height: 100rpx;
     16   border-bottom: 1px solid #ccc;
     17 }
     18 .star {
     19   float: left;
     20   width: 54rpx;
     21   height: 100rpx;
     22   text-align: center;
     23   line-height: 100rpx;
     24 }
     25 .star image{
     26   width: 40rpx;
     27   height: 40rpx;
     28   margin-top: 30rpx;
     29 }
     30 .score .left {
     31   width: 100rpx;
     32   line-height: 100rpx;
     33   font-size: 30rpx;
     34   float: left;
     35 }
     36 .score .right {
     37   width: 610rpx;
     38   font-size: 30rpx;
     39   float: left;
     40   color: #888;
     41 }
     42 
     43 .score .right .rtxt {
     44   display: inline-block;
     45   height: 100rpx;
     46   line-height: 100rpx;
     47   margin-left: 15rpx;
     48   color: #c00;
     49   font-weight: bold;
     50 }
     51 .labelColor {
     52   color: #c00;
     53   border: 1px solid #c00 !important;
     54 }
     55 .content {
     56   width: 100%;
     57   overflow: hidden;
     58   border-bottom:1px solid #ccc;
     59   padding:0 0 26rpx 0;
     60   box-sizing: border-box;
     61 } 
     62 .content .left {
     63   width: 100rpx;
     64   font-size: 30rpx;
     65   float: left;
     66   padding-top: 20rpx;
     67 }
     68 .content .right {
     69   width: 610rpx;
     70   font-size: 24rpx;
     71   float: left;
     72   color: #888;
     73 }
     74 .content .right text {
     75   font-size: 24rpx;
     76   padding: 13rpx 24rpx;
     77   float: left;
     78   border: 1px solid #888;
     79   border-radius: 10rpx;
     80   margin-right: 34rpx;
     81   margin-top: 20rpx;
     82 }
     83 .picture {
     84   width: 100%;
     85   overflow: hidden;
     86   background: #fff;
     87   border-bottom: 1px solid #ccc;
     88 }
     89 .picture .left {
     90   width: 100rpx;
     91   font-size: 30rpx;
     92   float: left;
     93   padding-top: 20rpx;
     94 }
     95 .picture .right {
     96   width: 610rpx;
     97   font-size: 24rpx;
     98   float: left;
     99   color: #888;
    100   box-sizing: border-box;
    101   padding-top:36rpx; 
    102 }
    103 .picture .right .add {
    104   width: 120rpx;
    105   height: 120rpx;
    106   margin-right: 10rpx;
    107 }
    108 .According{
    109   width:120rpx;
    110   height:120rpx;
    111   float:left;
    112   margin-right:10rpx;
    113   margin-bottom: 10rpx;
    114 }
    115 .parcel{
    116  width:120rpx;
    117   height:120rpx;
    118   float:left;
    119   margin-right:10rpx;
    120    margin-bottom: 10rpx;
    121   position: relative;
    122 }
    123 .deleteimg{
    124   width:30rpx;
    125   height:30rpx;
    126   position: absolute;
    127   right:0;
    128   top:0;
    129   z-index: 2;
    130 }
    131 .conts{
    132   width: 100%;
    133   height: auto;
    134   background: #fff;
    135 }
    136 textarea {
    137   width: 687rpx;
    138 }
    139 .areas{
    140   height:315rpx;
    141   font-size: 30rpx;
    142   padding-top: 30rpx;
    143   margin: 0 auto;
    144   overflow: hidden;   
    145   position: relative; 
    146 }
    147 .currentWordNumber{
    148   font-size: 28rpx;
    149   position: absolute;
    150   left: 0%;
    151   bottom: 0rpx;
    152   color: #c00;
    153 }
    154 .hint{
    155    font-size: 28rpx;
    156    position: absolute;
    157    top: 120rpx;
    158    left: 30rpx;
    159    color: #FF6600;
    160 }
    161 .btn {
    162   width: 600rpx;
    163   height: 80rpx;
    164   line-height: 80rpx;
    165   font-size: 30rpx;
    166   color: #fff;
    167   background: #c00;
    168   position: fixed;
    169   left:75rpx;
    170   bottom: 37rpx;
    171 } 
    172 button:after {
    173   border: 0;
    174 }
      1 const app = getApp();
      2 Page({
      3   data: {
      4     staticImg: app.globalData.staticImg,
      5     current:0,
      6     attitude:true,
      7     time: true,
      8     efficiency: true,
      9     environment:true,
     10     professional:true,
     11     userStars: [
     12       "/pages/service/img/rwjx.png",
     13       "/pages/service/img/rwjx.png",
     14       "/pages/service/img/rwjx.png",
     15       "/pages/service/img/rwjx.png",
     16       "/pages/service/img/rwjx.png",
     17     ],
     18     wjxScore:5,
     19     // textarea
     20     min: 5,//最少字数
     21     max: 300, //最多字数 (根据自己需求改变) 
     22     pics:[],
     23   },
     24   // 星星点击事件
     25   starTap: function (e) {
     26     var that = this;
     27     var index = e.currentTarget.dataset.index; // 获取当前点击的是第几颗星星
     28     var tempUserStars = this.data.userStars; // 暂存星星数组
     29     var len = tempUserStars.length; // 获取星星数组的长度
     30     for (var i = 0; i < len; i++) {
     31       if (i <= index) { // 小于等于index的是满心
     32         tempUserStars[i] = "/pages/service/img/rwjx.png";
     33         that.setData({
     34           wjxScore:i+1,
     35         })
     36       } else { // 其他是空心
     37         tempUserStars[i] = "/pages/service/img/wjx.png"
     38       }
     39     }
     40     // 重新赋值就可以显示了
     41     that.setData({
     42       userStars: tempUserStars
     43     })
     44   },
     45   // 标签
     46   label:function(e){
     47     console.log(e)
     48     var that = this;
     49     that.setData({
     50       attitude:!e.currentTarget.dataset.index
     51     })
     52   },
     53    label1: function (e) {
     54     console.log(e)
     55     var that = this;
     56     that.setData({
     57       time: !e.currentTarget.dataset.index
     58     })
     59   },
     60    label2: function (e) {
     61      console.log(e)
     62      var that = this;
     63      that.setData({
     64        efficiency: !e.currentTarget.dataset.index
     65      })
     66    },
     67     label3: function (e) {
     68      console.log(e)
     69      var that = this;
     70      that.setData({
     71        environment: !e.currentTarget.dataset.index
     72      })
     73    },
     74     label4: function (e) {
     75       console.log(e)
     76       var that = this;
     77       that.setData({
     78         professional: !e.currentTarget.dataset.index
     79       })
     80     },
     81     // 留言
     82     //字数限制  
     83   inputs: function (e) {
     84       // 获取输入框的内容
     85       var value = e.detail.value;
     86       // 获取输入框内容的长度
     87       var len = parseInt(value.length);
     88       //最多字数限制
     89       if (len > this.data.max) return;
     90       // 当输入框内容的长度大于最大长度限制(max)时,终止setData()的执行
     91       this.setData({
     92         currentWordNumber: len //当前字数  
     93       });
     94     },
     95     // 图片
     96     choose: function (e) {//这里是选取图片的方法
     97     var that = this;
     98     var pics = that.data.pics;
     99     wx.chooseImage({
    100       count: 5 - pics.length, // 最多可以选择的图片张数,默认9
    101       sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
    102       sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
    103       success: function (res) {
    104 
    105         var imgsrc = res.tempFilePaths;
    106         pics = pics.concat(imgsrc);
    107         console.log(pics);
    108         // console.log(imgsrc);
    109         that.setData({
    110           pics: pics,
    111           // console.log(pics),
    112         });
    113       },
    114       fail: function () {
    115         // fail
    116       },
    117       complete: function () {
    118         // complete
    119       }
    120     })
    121 
    122   },
    123   uploadimg: function () {//这里触发图片上传的方法
    124     var pics = this.data.pics;
    125     console.log(pics);
    126     app.uploadimg({
    127       url: 'https://........',//这里是你图片上传的接口
    128       path: pics//这里是选取的图片的地址数组
    129     });
    130   },
    131   onLoad: function (options) {
    132 
    133   },
    134   // 删除图片
    135   deleteImg: function (e) {
    136     var pics = this.data.pics;
    137     var index = e.currentTarget.dataset.index;
    138     pics.splice(index, 1);
    139     this.setData({
    140       pics: pics
    141     });
    142   },
    143   // 预览图片
    144   previewImg: function (e) {
    145     //获取当前图片的下标
    146     var index = e.currentTarget.dataset.index;
    147     //所有图片
    148     var pics = this.data.pics;
    149     wx.previewImage({
    150       //当前显示图片
    151       current: pics[index],
    152       //所有图片
    153       urls: pics
    154     })
    155   },
    156 })

  • 相关阅读:
    泛海精灵Alpha阶段回顾
    [Scrum]1.6
    【Scrum】1.5
    泛海精灵 Beta计划 (草案)
    【scrum】1.7
    学术搜索的Bug
    Linux下查看文件和文件夹大小
    求7的34次方
    去除给定的字符串中左边、右边、中间的所有空格的实现
    身份证18位验证
  • 原文地址:https://www.cnblogs.com/xinheng/p/9516843.html
Copyright © 2011-2022 走看看