微信小程序评价页面
<!--服务评价-->
<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
})
},
})
微信小程序评价页面的更多相关文章
- 微信小程序:页面配置 page.json
微信小程序:页面配置 page.json 一.页面配置 page.json 如果整个小程序的风格是蓝色调,那么可以在 app.json 里边声明顶部颜色是蓝色即可. 实际情况可能不是这样,可能你小程序 ...
- 微信小程序开发--页面结构
一.微信小程序开发--页面文件组成 [page.name].js 页面逻辑文件,用于创建页面对象,以及处理页面生命周期控制和数据处理 [page.name].wxml wxml指的是Wei Xin M ...
- 微信小程序前端页面书写
微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...
- 图解微信小程序---实现页面的跳转与返回操作
图解微信小程序---实现页面的跳转与返回操作 代码笔记 操作步骤 第一步:在app.json配置文件中,创建跳转页面 第二步:编写首页跳转(注意跳转方式,和设置点击样式类名) 第三步:编写首页样式 第 ...
- 微信小程序之页面路由
路由方式 简介 对于路由的触发方式以及页面生命周期函数如下: 路由方式 触发时机 路由前页面 路由后页面 初始化 小程序打开的第一个页面 onLoad, onSHow 打开新页面 调用 API w ...
- 微信小程序的页面渲染(if/for)
下面,粗略的介绍一下微信小程序的条件渲染.列表渲染.数据绑定等,详细的内容大家可以去看微信小程序的API,在此只做简单描述,希望能帮助到大家 条件渲染 <!--wxml--> <vi ...
- 微信小程序之页面传值(路由、页面栈、globalData、缓存)
1. 通过url带参数传递 1.1 固定参数传递 例如,从 list 页面到 detail 页面, 传递一个或多个固定值 list页面传值: <!--pages/list/list.js--&g ...
- 开发 | 如何在微信小程序的页面间传递数据?
我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法. 本期,知晓程序(微信号 zxcx0101)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...
- 微信小程序:页面跳转时传递数据到另一个页面
一.功能描述 页面跳转时,同时把当前页面的数据传递给跳转的目标页面,并在跳转后的目标页面进行展示 二.功能实现 1. 代码实现 test1页面 // pages/test1/test1.js Page ...
随机推荐
- MySQL 树形结构 根据指定节点 获取其所有父节点序列
背景说明 需求:MySQL树形结构, 根据指定的节点,获取其所有父节点序列. 问题分析 1.可以使用类似Java这种面向对象的语言,对节点集合进行逻辑处理,获取父节点. 2.直接自定义MySQL函数 ...
- 【ZT】Enhancement Framework – Introduction
Enhancement Framework – Introduction By Naimesh Patel | March 26, 2014 | Enhancement Implementation ...
- oracle 在sql中显示blob的字符串
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了. blob字段直接用 select * from table_name ...
- ffi模块——node调用动态链接库(.so/.dll文件)
参考资料1:[https://www.npmjs.com/package/ffi] 参考资料2:[http://imweb.io/topic/57732fbef0a5487b05f325bf] 参考资 ...
- KVM虚拟机管理(2)
一.virt-manager创建虚机 命令行需要下载下面的组件: CentOS7: 命令行界面升级为图形化界面 yum groupinstall "X Window System" ...
- 2 Java中常见集合
1)说说常见的集合有哪些吧? 答:集合有两个基本接口:Collection 和 Map. Collection 接口的子接口有:List 接口.Set 接口和 Queue 接口: List 接口的实现 ...
- python基础语法之集合set
1 概念 集合是一个无需的,不重复的数组组合,它的主要作用如下: 去重,将一个列表装换成集合,会将其去重 关系测试,测试两组数据的交集,差集,并集等关系. 集合对象是一组无需排列的可哈希的值,集合成员 ...
- zabbix 监控redis python3脚本
一:安装redis-python模块 wge thttps://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz tar xf r ...
- python之self的理解
一.self的位置是出现在哪里? 首先,self是在类的方法中的,在调用此方法时,不用给self赋值,Python会自动给他赋值,而且这个值就是类的实例--对象本身.也可以将self换成别的叫法例如s ...
- 如何减少程序间的耦合度?_DI与接口
spring 开发提倡接口编程,配合DI技术可以更好的减少层(程序)与层(程序)之间的解耦合例子说明: 任务:要求: 1.打印机依赖纸张和墨盒 2.纸张有A4和B5两种 ...