<!--服务评价-->
<view class="service">
<!--评分-->
<view class='score'>
<view class='left'>
评分
</view>
<view class='right'>
<view bindtap="starTap" data-index="{{index}}" class="star" wx:for="{{userStars}}" wx:key="index">
<image src="{{item}}"></image>
</view>
<text class='rtxt'>{{wjxScore}}.0分</text>
</view>
</view>
<!--内容-->
<view class='content'>
<view class='left'>
内容
</view>
<view class='right'>
<text bindtap='label' class="{{attitude===true ? 'labelColor':''}}" data-index="{{attitude}}">服务态度好</text>
<text bindtap='label1' class="{{time===false? 'labelColor':''}}" data-index="{{time}}">排队时间短</text>
<text bindtap='label2' class="{{efficiency===false?'labelColor':''}}" data-index="{{efficiency}}">效率高</text>
<text bindtap='label3' class="{{environment===false?'labelColor':''}}" data-index="{{environment}}">门店环境好</text>
<text bindtap='label4' class="{{professional===false?'labelColor':''}}" data-index="{{professional}}">很专业</text>
</view>
</view>
<!--图片-->
<view class='picture'>
<view class='left'>
图片
</view>
<view class='right'>
<view class="parcel" wx:for="{{pics}}" wx:key="{{index}}">
<image src="{{pics[index]}}" class="According" data-index="{{index}}" mode="aspectFill" bindtap="previewImg"></image>
<image src="{{staticImg}}home/order/apply/error.png" class='deleteimg' catchtap="deleteImg" data-index="{{index}}"></image>
</view>
<image src='/pages/service/img/add.png' class='add' bindtap='choose'></image>
</view>
</view>
</view>
<!--textarea-->
<view class="conts">
<textarea class="areas" placeholder='更多评价请写在这里(最多300字)' minlength="{{min}}" maxlength="{{max}}" bindinput="inputs">
<!-- <text class="currentWordNumber">{{currentWordNumber|0}}/{{max}}</text> -->
</textarea>
</view>
<!--提交评价-->
<button class='btn'>提交评价</button>
 page {
width: 100%;
height: 100%;
background: #f0f0f0;
}
.service {
width: 100%;
overflow: hidden;
box-sizing: border-box;
padding: 0 20rpx;
background: #fff;
}
.score {
width: 100%;
height: 100rpx;
border-bottom: 1px solid #ccc;
}
.star {
float: left;
width: 54rpx;
height: 100rpx;
text-align: center;
line-height: 100rpx;
}
.star image{
width: 40rpx;
height: 40rpx;
margin-top: 30rpx;
}
.score .left {
width: 100rpx;
line-height: 100rpx;
font-size: 30rpx;
float: left;
}
.score .right {
width: 610rpx;
font-size: 30rpx;
float: left;
color: #888;
} .score .right .rtxt {
display: inline-block;
height: 100rpx;
line-height: 100rpx;
margin-left: 15rpx;
color: #c00;
font-weight: bold;
}
.labelColor {
color: #c00;
border: 1px solid #c00 !important;
}
.content {
width: 100%;
overflow: hidden;
border-bottom:1px solid #ccc;
padding:0 0 26rpx 0;
box-sizing: border-box;
}
.content .left {
width: 100rpx;
font-size: 30rpx;
float: left;
padding-top: 20rpx;
}
.content .right {
width: 610rpx;
font-size: 24rpx;
float: left;
color: #888;
}
.content .right text {
font-size: 24rpx;
padding: 13rpx 24rpx;
float: left;
border: 1px solid #888;
border-radius: 10rpx;
margin-right: 34rpx;
margin-top: 20rpx;
}
.picture {
width: 100%;
overflow: hidden;
background: #fff;
border-bottom: 1px solid #ccc;
}
.picture .left {
width: 100rpx;
font-size: 30rpx;
float: left;
padding-top: 20rpx;
}
.picture .right {
width: 610rpx;
font-size: 24rpx;
float: left;
color: #888;
box-sizing: border-box;
padding-top:36rpx;
}
.picture .right .add {
width: 120rpx;
height: 120rpx;
margin-right: 10rpx;
}
.According{
width:120rpx;
height:120rpx;
float:left;
margin-right:10rpx;
margin-bottom: 10rpx;
}
.parcel{
width:120rpx;
height:120rpx;
float:left;
margin-right:10rpx;
margin-bottom: 10rpx;
position: relative;
}
.deleteimg{
width:30rpx;
height:30rpx;
position: absolute;
right:;
top:;
z-index:;
}
.conts{
width: 100%;
height: auto;
background: #fff;
}
textarea {
width: 687rpx;
}
.areas{
height:315rpx;
font-size: 30rpx;
padding-top: 30rpx;
margin: 0 auto;
overflow: hidden;
position: relative;
}
.currentWordNumber{
font-size: 28rpx;
position: absolute;
left: 0%;
bottom: 0rpx;
color: #c00;
}
.hint{
font-size: 28rpx;
position: absolute;
top: 120rpx;
left: 30rpx;
color: #FF6600;
}
.btn {
width: 600rpx;
height: 80rpx;
line-height: 80rpx;
font-size: 30rpx;
color: #fff;
background: #c00;
position: fixed;
left:75rpx;
bottom: 37rpx;
}
button:after {
border:;
}
 const app = getApp();
Page({
data: {
staticImg: app.globalData.staticImg,
current:0,
attitude:true,
time: true,
efficiency: true,
environment:true,
professional:true,
userStars: [
"/pages/service/img/rwjx.png",
"/pages/service/img/rwjx.png",
"/pages/service/img/rwjx.png",
"/pages/service/img/rwjx.png",
"/pages/service/img/rwjx.png",
],
wjxScore:5,
// textarea
min: 5,//最少字数
max: 300, //最多字数 (根据自己需求改变)
pics:[],
},
// 星星点击事件
starTap: function (e) {
var that = this;
var index = e.currentTarget.dataset.index; // 获取当前点击的是第几颗星星
var tempUserStars = this.data.userStars; // 暂存星星数组
var len = tempUserStars.length; // 获取星星数组的长度
for (var i = 0; i < len; i++) {
if (i <= index) { // 小于等于index的是满心
tempUserStars[i] = "/pages/service/img/rwjx.png";
that.setData({
wjxScore:i+1,
})
} else { // 其他是空心
tempUserStars[i] = "/pages/service/img/wjx.png"
}
}
// 重新赋值就可以显示了
that.setData({
userStars: tempUserStars
})
},
// 标签
label:function(e){
console.log(e)
var that = this;
that.setData({
attitude:!e.currentTarget.dataset.index
})
},
label1: function (e) {
console.log(e)
var that = this;
that.setData({
time: !e.currentTarget.dataset.index
})
},
label2: function (e) {
console.log(e)
var that = this;
that.setData({
efficiency: !e.currentTarget.dataset.index
})
},
label3: function (e) {
console.log(e)
var that = this;
that.setData({
environment: !e.currentTarget.dataset.index
})
},
label4: function (e) {
console.log(e)
var that = this;
that.setData({
professional: !e.currentTarget.dataset.index
})
},
// 留言
//字数限制
inputs: function (e) {
// 获取输入框的内容
var value = e.detail.value;
// 获取输入框内容的长度
var len = parseInt(value.length);
//最多字数限制
if (len > this.data.max) return;
// 当输入框内容的长度大于最大长度限制(max)时,终止setData()的执行
this.setData({
currentWordNumber: len //当前字数
});
},
// 图片
choose: function (e) {//这里是选取图片的方法
var that = this;
var pics = that.data.pics;
wx.chooseImage({
count: 5 - pics.length, // 最多可以选择的图片张数,默认9
sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
success: function (res) { var imgsrc = res.tempFilePaths;
pics = pics.concat(imgsrc);
console.log(pics);
// console.log(imgsrc);
that.setData({
pics: pics,
// console.log(pics),
});
},
fail: function () {
// fail
},
complete: function () {
// complete
}
}) },
uploadimg: function () {//这里触发图片上传的方法
var pics = this.data.pics;
console.log(pics);
app.uploadimg({
url: 'https://........',//这里是你图片上传的接口
path: pics//这里是选取的图片的地址数组
});
},
onLoad: function (options) { },
// 删除图片
deleteImg: function (e) {
var pics = this.data.pics;
var index = e.currentTarget.dataset.index;
pics.splice(index, 1);
this.setData({
pics: pics
});
},
// 预览图片
previewImg: function (e) {
//获取当前图片的下标
var index = e.currentTarget.dataset.index;
//所有图片
var pics = this.data.pics;
wx.previewImage({
//当前显示图片
current: pics[index],
//所有图片
urls: pics
})
},
})

微信小程序评价页面的更多相关文章

  1. 微信小程序:页面配置 page.json

    微信小程序:页面配置 page.json 一.页面配置 page.json 如果整个小程序的风格是蓝色调,那么可以在 app.json 里边声明顶部颜色是蓝色即可. 实际情况可能不是这样,可能你小程序 ...

  2. 微信小程序开发--页面结构

    一.微信小程序开发--页面文件组成 [page.name].js 页面逻辑文件,用于创建页面对象,以及处理页面生命周期控制和数据处理 [page.name].wxml wxml指的是Wei Xin M ...

  3. 微信小程序前端页面书写

    微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...

  4. 图解微信小程序---实现页面的跳转与返回操作

    图解微信小程序---实现页面的跳转与返回操作 代码笔记 操作步骤 第一步:在app.json配置文件中,创建跳转页面 第二步:编写首页跳转(注意跳转方式,和设置点击样式类名) 第三步:编写首页样式 第 ...

  5. 微信小程序之页面路由

    路由方式 简介 对于路由的触发方式以及页面生命周期函数如下: 路由方式 触发时机 路由前页面 路由后页面 初始化 小程序打开的第一个页面   onLoad, onSHow 打开新页面 调用 API w ...

  6. 微信小程序的页面渲染(if/for)

    下面,粗略的介绍一下微信小程序的条件渲染.列表渲染.数据绑定等,详细的内容大家可以去看微信小程序的API,在此只做简单描述,希望能帮助到大家 条件渲染 <!--wxml--> <vi ...

  7. 微信小程序之页面传值(路由、页面栈、globalData、缓存)

    1. 通过url带参数传递 1.1 固定参数传递 例如,从 list 页面到 detail 页面, 传递一个或多个固定值 list页面传值: <!--pages/list/list.js--&g ...

  8. 开发 | 如何在微信小程序的页面间传递数据?

    我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法. 本期,知晓程序(微信号 zxcx0101)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...

  9. 微信小程序:页面跳转时传递数据到另一个页面

    一.功能描述 页面跳转时,同时把当前页面的数据传递给跳转的目标页面,并在跳转后的目标页面进行展示 二.功能实现 1. 代码实现 test1页面 // pages/test1/test1.js Page ...

随机推荐

  1. vsftp软件安装部署

    1.安装vsftp yum install -y vsftpd db4-utils2.默认可以支持系统用户账号远程登录.不安全,建立虚拟账号体系为好.或者在服务器端对vsftpd.conf配置文件进行 ...

  2. linux常用命令(22)gzip命令

    减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间.gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用.gzip不仅可以用 ...

  3. CTF—攻防练习之SMB私钥泄露

    攻击机:192.168.32.152 靶机 :192.168.32.155 打开靶机 nmap一下 我们看到了开放了 ssh,smb,mysql这些端口,还有一个大端口 对smb服务我们可以1.使用空 ...

  4. c++面向对象 —— 类和对象

    类和对象 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法.类中的数据和方法称为类的成员.函数在一个类中被称为类的成员. 一.类定义 实际上并没有定义任何数据,但它定义了类的名称意味着什么 ...

  5. c++ 运算符 循环

    运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 一.算术运算符 二.关系运算符 三.逻辑运算符 四.位运算符 位运算符作用于位,并逐位执行操作 假设如果 A = 60,且 ...

  6. Django 中 ModelForm 的使用

    定义 ModelForm 定制 ModelForm Meta 在 Form 中另外定义 Field 值得一提的一些 Field 转化 AutoField BooleanField ForeignKey ...

  7. [SHOI2009] 舞会

    OItown要举办了一年一度的超级舞会了,作为主办方的Constantine为了使今年的舞会规模空前,他邀请了许多他的好友和同学去.舞会那天,恰好来了n个男生n个女生.Constantine发现,一般 ...

  8. 【Qt开发】Qt在QLabel(QWidget)鼠标绘制直线和矩形框

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/243546 说实话, ...

  9. Java中的享元设计模式,涨姿势了!

    首先来看一段代码: public class ShareTest {   public static void main(String[] args) {     Integer a = 127;   ...

  10. java 不可变对象 final Collections guava 简单样例

    本地环境 jdk1.8 连接 Google Guava官方教程(中文版) journaldev 说明 java的final关键字大家都了解,但是final修饰的如果是引用类型,那么不可修改的其实只是重 ...