抽奖结果页以及填写地址
需求:用户进入该页面,判断是否已经开奖,如果未开奖等待开奖,如果已经开奖,则显示开奖结果,如果用户中将可以填写收货地址。
小程序端
1在开奖页面显示后端返回的数据显示开奖结果,根据不同的状态显示不同的信息,如果中奖用户可以填写收货地址。如果未中奖或者未开奖则显示相应的结果。
app.json
{
"pages": [
"pages/index/index",
"pages/list/list",
"pages/item/item",
"pages/login/login",
"pages/payment/payresult/payresult",
"pages/gift/join/join",
"pages/gift/openresult/openresult",
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#e50e38",
"navigationBarTitleText": "百步生活",
"navigationBarTextStyle": "#fff",
"enablePullDownRefresh": false,
"backgroundColor": "#e50e38"
},
}
openresult.wxml
<view class="container">
<view class="success-status">
<block wx:if="{{message=='200'}}">
<view class="tip">恭喜你,中奖了</view>
<view class="open-condition">获得"{{item_data[0].name}}"</view>
</block>
<block wx:elif="{{message=='201'}}">
<view class="tip">很遗憾,你未中奖</view>
<view class="open-condition">祝你下次好运</view>
</block>
<block wx:elif="{{message=='202'}}">
<view class="tip">参与成功,等待开奖</view>
<view class="open-condition">
<block wx:if="{{methodType.get_method=='满人开奖'}}">满{{methodType.open_number}}人开奖</block>
<block wx:if="{{methodType.get_method=='定时开奖'}}">{{methodType.opentime}}开奖</block>
</view>
</block>
<block wx:elif="{{message=='203'}}">
<view class="tip">礼包已过期</view>
</block>
</view>
<image class='avatar' src='{{buy_member.avatar}}'></image>
<scroll-view class="detail-box" scroll-y="true">
<view class="u-info">{{buy_member.name}}送出{{total_number}}份礼物</view>
<view class="wish">{{order_data.memo}}</view>
<block wx:if="{{message=='200'}}">
<view class="product-wrap">
<image src="{{item_data[0].image_id.m_url}}"></image>
<view class="name">{{item_data[0].name}}</view>
</view>
</block>
<block wx:if="{{message=='201'}}">
<block wx:for="{{item_data}}" wx:for-index="index" wx:key="key">
<view class="item-wrap">
<image class="item-img" src="{{item.image_id.m_url}}"></image>
<view class="text">
<view class="name">{{item.name}}</view>
<view class="num">共{{item.number}}份</view>
</view>
<view class="tip">未中奖</view>
</view>
</block>
</block>
<block wx:if="{{message=='202'}}">
<block wx:if="{{item_data.length>1}}">
<view class="product-wrap">
<image src="{{giftBox}}"></image>
</view>
</block>
<block wx:else>
<view class="product-wrap">
<image src="{{item_data[0].image_id.m_url}}"></image>
<view class="name">{{item_data[0].name}}</view>
</view>
</block>
<view class="join-total">已有{{join_member.length}}人参与</view>
<view class="avatarsLists">
<block wx:for="{{join_member}}" wx:for-index="index" wx:key="key">
<block wx:if="{{index<16}}">
<image class="join-avatar" src="{{item.member.avatar}}"></image>
</block>
</block>
</view>
</block>
<block wx:if="{{message=='203'}}">
<block wx:if="{{item_data.length>1}}">
<view class="product-wrap">
<image src="{{giftBox}}"></image>
</view>
</block>
<block wx:else>
<view class="product-wrap">
<image src="{{item_data[0].image_id.m_url}}"></image>
<view class="name">{{item_data[0].name}}</view>
</view>
</block>
</block>
<block wx:if="{{message=='200'||message=='201'}}">
<view class="record">
<view class="total">共{{join_member_count}}人参与,{{get_all_member.length}}人中奖</view>
<view wx:for="{{get_all_member}}" wx:for-index="index" wx:key="key">
<view class="record-item">
<image class="list-avatar" src="{{item.get_mermber_id.avatar}}"></image>
<text class="uname">{{item.get_mermber_id.name}}</text>
<text class="p-name">{{item.name}}</text>
</view>
</view>
</view>
</block>
<view class="padding-box"></view>
</scroll-view>
<block wx:if="{{message=='200' && !item_data[0].consignee_address}}">
<text bindtap='editAddr' class="btn-share">填写收货地址</text>
</block>
<block wx:elif="{{message!='200' && buy_member.member_id=='1'}}">
<button class="invite" open-type="share">邀请好友抽奖</button>
<text bindtap='toMore' class="join-more">参与更多抽奖</text>
</block>
<block wx:else>
<navigator class="btn-share" url="/pages/list/list">我也要送礼</navigator>
</block>
</view>
openresult.wxss
button::after{
border: none;
}
.btn-share{
width: 480rpx;
height: 88rpx;
border-radius: 44rpx;
background: #e50e38;
color: #fff;
line-height: 88rpx;
text-align: center;
margin-top: 40rpx;
letter-spacing: 2rpx;
font-size: 36rpx;
position: absolute;
bottom: 120rpx;
left: 145rpx;
}
.invite{
width: 240rpx;
height: 88rpx;
border-radius: 44rpx;
background: #e50e38;
color: #fff;
line-height: 88rpx;
text-align: center;
margin-top: 40rpx;
letter-spacing: 2rpx;
font-size: 28rpx;
position: absolute;
bottom: 120rpx;
left: 90rpx;
border: none;
}
.join-more{
width: 240rpx;
height: 88rpx;
border-radius: 44rpx;
background: #fff;
color: #e50e38;
line-height: 88rpx;
text-align: center;
margin-top: 40rpx;
letter-spacing: 2rpx;
font-size: 28rpx;
position: absolute;
bottom: 120rpx;
right: 90rpx;
box-shadow:0 0 4rpx 4rpx #ccc;
}
page{
background: #e50e38;
width: 100%;
height: 100%;
}
.container{
width: 100%;
height: 100%;
padding: 0;
}
.container .success-status{
padding: 36rpx 0;
color: #fff;
height: 20%;
}
.container .success-status .tip{
text-align: center;
line-height: 60rpx;
font-size: 36rpx;
}
.container .success-status .open-condition{
text-align: center;
line-height: 60rpx;
font-size: 28rpx;
}
.detail-box{
position: relative;
height: 80%;
background: #fff;
width: 718rpx;
margin: 0 16rpx;
border-top-left-radius: 16rpx;
border-top-right-radius: 16rpx;
text-align: center;
}
.avatar{
position:absolute;
width:120rpx;
height:120rpx;
top:20%;
left:50%;
margin-top:-60rpx;
margin-left:-60rpx;
border-radius: 50%;
z-index: 999;
}
.u-info{
text-align: center;
padding-top:80rpx;
font-size:28rpx;
}
.wish{
text-align: center;
padding-top:32rpx;
font-size:36rpx;
margin-bottom: 20rpx;
}
.detail-box .name{
text-align: center;
font-size: 28rpx;
margin-bottom: 20rpx;
}
.detail-box image{
width: 450rpx;
height: 450rpx;
text-align: center
}
.product-wrap{
border: 2rpx solid #aa924c;
width: 450rpx;
margin: 20rpx 134rpx;
}
.item-wrap{
border: 2rpx solid #aa924c;
border-radius: 10rpx;
margin: 20rpx 50rpx;
text-align: left;
padding: 8rpx;
overflow: hidden;
position: relative;
}
.item-wrap .item-img{
width: 136rpx;
height: 138rpx;
}
.item-wrap .text{
display: inline-block;
width: 360rpx;
text-align: left;
vertical-align: top;
}
.item-wrap .text .name,.num{
text-align: left;
font-size: 30rpx;
margin-bottom: 0rpx;
color: #aa924c;
padding-left: 16rpx;
line-height: 68rpx;
height: 68rpx;
word-break: break-all;
-webkit-box-orient: vertical;
-webkit-line-clamp:1;
overflow: hidden;
text-overflow:ellipsis;
display: -webkit-box;
}
.item-wrap .tip{
background: #aa924c;
color: #fff;
text-align: center;
font-size: 20rpx;
transform: rotate(45deg);
top:-20rpx;
right:-72rpx;
position:absolute;
padding:10rpx 60rpx;
padding-top:40rpx;
}
.record{
background: #f8f8f8;
width: 680rpx;
margin: 0 auto;
border-radius: 10rpx;
line-height: 96rpx;
}
.record .total{
line-height: 96rpx;
text-align: left;
font-size: 30rpx;
padding-left: 40rpx;
border-bottom: 2rpx solid #eeeeee;
}
.record .record-item{
border-bottom: 2rpx solid #eeeeee;
text-align: left;
line-height: 120rpx;
position: relative;
}
.record .record-item .list-avatar{
height: 76rpx;
width: 76rpx;
border-radius: 50%;
display: inline-block;
line-height: 120rpx;
vertical-align: middle;
margin-left: 40rpx;
}
.record .record-item .uname{
padding-left: 20rpx;
font-size: 24rpx;
}
.record .record-item .p-name{
position: absolute;
right: 20rpx;
top: 0;
font-size: 24rpx;
text-align: right;
width: 280rpx;
height: 120rpx;
line-height: 120rpx;
word-break: break-all;
-webkit-box-orient: vertical;
-webkit-line-clamp:1;
overflow: hidden;
text-overflow:ellipsis;
display: -webkit-box;
}
.padding-box{
height: 250rpx;
}
.avatarsLists{
width: 535rpx;
margin: 0 auto;
}
.avatarsLists image.join-avatar{
width: 58rpx;
height: 58rpx;
display: inline-block;
margin-right: 10rpx;
margin-bottom: 10rpx;
}
.avatarsLists image.join-avatar:nth-child(8n){
margin-right: 0rpx;
}
.join-total{
font-size: 30rpx;
line-height: 50rpx;
margin-bottom: 20rpx;
}
openresult.js
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
giftBox:'/images/purplebox.jpg'
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var _this = this;
//wx.hideShareMenu();//隐藏小程序头部的转发,必须使用按钮分享
wx.showShareMenu({
withShareTicket: true
});
this.setData({
orderId: options.orderId,
userInfo: app.globalData.userInfo
}, function () {
wx.request({//请求订单信息以及分享识别码
url: app.globalData.apiDomain + '/api/sharagift/checkIsGetGift',
data: {
'order_id': _this.data.orderId,
'login_key': wx.getStorageSync('login_key')
},
method: "POST",
header: {
'content-type': 'application/json' // 默认值
},
success: function (res) {
if (res.data.data.buy_member.member_id!='1'){
wx.hideShareMenu({});
};
_this.setData({
message: res.data.message,
buy_member: res.data.data.buy_member,
total_number: res.data.data.gift_number,
item_data: res.data.data.item_data,
order_data: res.data.data.order_data
});
if (res.data.data.order_methon){
_this.setData({
methodType: res.data.data.order_methon
})
};
if (res.data.data.join_member){
_this.setData({
join_member: res.data.data.join_member
})
};
if (res.data.data.get_all_member){
_this.setData({
get_all_member: res.data.data.get_all_member
})
};
if (res.data.data.join_member_count) {
_this.setData({
join_member_count: res.data.data.join_member_count
})
};
}
})
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
onShareAppMessage: function () {
var _this = this;
var _image = _this.data.item_data[0].image_id.m_url;
var showName = (app.globalData.userInfo && app.globalData.userInfo.nickName) ? app.globalData.userInfo.nickName : '';
return {
title: showName + '邀请你参与免费抽奖,快来试试手气吧!',
path: '/pages/gift/join/join?token=' + _this.data.order_data.order_id,
imageUrl: _image,
success: function (res) {
wx.showToast({
title: '分享成功',
icon: 'none',
duration: 2000
});
},
fail: function () {
wx.showToast({
title: '分享失败',
icon: 'none',
duration: 2000
});
}
}
},
toMore:function(){
wx.switchTab({
url: '/pages/daily/daily'
})
},
editAddr:function(){
var _this = this;
wx.chooseAddress({
success: function (res) {
console.log(res);
var userName = res.userName;
var postalCode = res.postalCode;
var provinceName = res.provinceName;
var cityName = res.cityName;
var countyName = res.countyName;
var detailInfo = res.detailInfo;
var nationalCode = res.nationalCode;
var telNumber = res.telNumber;
wx.request({
url: app.globalData.apiDomain + '/api/putdelivery/putAddress',
data: {
'login_key': wx.getStorageSync('login_key'),
'order_id': _this.data.orderId,
'userName': userName,
'postalCode': postalCode,
'provinceName': provinceName,
"cityName": cityName,
'countyName': countyName,
'detailInfo': detailInfo,
'nationalCode': nationalCode,
'telNumber': telNumber
},
method: "POST",
header: {
'content-type': 'application/json' // 默认值
},
success:function(res){
wx.reLaunch({
url: '/pages/index/index',
})
},
fail:function(){
//网络或者服务器异常
}
})
}
})
}
})