@@ -59,6 +59,15 @@ Page({ | |||||
}).then( | }).then( | ||||
function (res) { | function (res) { | ||||
app.globalData.phone = res.data.phone; | app.globalData.phone = res.data.phone; | ||||
/** | |||||
* 来自拼团详情 | |||||
*/ | |||||
if (that.path == 'spell') { | |||||
wx.redirectTo({ | |||||
url: "pages/spellGroup/mySpellGroup/index?couponChannelId=" + that.data.paramData.couponChannelId + "&couponId" + that.data.paramData.couponId | |||||
}) | |||||
return; | |||||
} | |||||
/** | /** | ||||
* fromId若存在来自卡转赠 | * fromId若存在来自卡转赠 | ||||
*/ | */ | ||||
@@ -45,6 +45,15 @@ Page({ | |||||
} | } | ||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
/** | |||||
* 来自拼团详情 | |||||
*/ | |||||
if (that.path == 'spell'){ | |||||
wx.redirectTo({ | |||||
url: "pages/spellGroup/mySpellGroup/index?couponChannelId=" + that.data.paramData.couponChannelId + "&couponId" + that.data.paramData.couponId | |||||
}) | |||||
return; | |||||
} | |||||
if (that.path != 'index'){ | if (that.path != 'index'){ | ||||
wx.redirectTo({ | wx.redirectTo({ | ||||
url: "/pages/game/index?url=" + that.data.paramData.url + "&id=" + that.data.paramData.id + "&gameId=" + that.data.paramData.gameId, | url: "/pages/game/index?url=" + that.data.paramData.url + "&id=" + that.data.paramData.id + "&gameId=" + that.data.paramData.gameId, | ||||
@@ -8,10 +8,13 @@ Page({ | |||||
* 页面的初始数据 | * 页面的初始数据 | ||||
*/ | */ | ||||
data: { | data: { | ||||
teljpgUrl: imgurl.teljpg.url, | |||||
couponChannelId:'', | couponChannelId:'', | ||||
couponId:'', | couponId:'', | ||||
detailData:[], | |||||
spellData:null | |||||
data:[], | |||||
spellData:null, | |||||
canSpell:true, | |||||
canBuyIf:true | |||||
}, | }, | ||||
/** | /** | ||||
@@ -25,6 +28,34 @@ Page({ | |||||
this.getDetail(options.couponChannelId); | this.getDetail(options.couponChannelId); | ||||
this.getOneSpell(options.couponId) | this.getOneSpell(options.couponId) | ||||
}, | }, | ||||
/** | |||||
* 拨打电话 | |||||
*/ | |||||
phone: function (e) { | |||||
let that = this; | |||||
wx.makePhoneCall({ | |||||
phoneNumber: e.target.dataset.merchantlinkphone | |||||
}); | |||||
}, | |||||
/** | |||||
* 直接购买 | |||||
*/ | |||||
gotoBuy(){ | |||||
console.log(22222) | |||||
this.setData({ | |||||
canBuyIf: false | |||||
}) | |||||
}, | |||||
/** | |||||
* 发起拼团 | |||||
*/ | |||||
gotoSpell(){ | |||||
console.log(111111111) | |||||
this.setData({ | |||||
canSpell:false | |||||
}) | |||||
this.orderFunc() | |||||
}, | |||||
/** | /** | ||||
* 获取一个拼团信息 | * 获取一个拼团信息 | ||||
*/ | */ | ||||
@@ -58,10 +89,219 @@ Page({ | |||||
data.price = (data.price / 100).toFixed(2) | data.price = (data.price / 100).toFixed(2) | ||||
data.salePrice = (data.salePrice / 100).toFixed(2) | data.salePrice = (data.salePrice / 100).toFixed(2) | ||||
that.setData({ | that.setData({ | ||||
detailData: data | |||||
data | |||||
}); | }); | ||||
}); | }); | ||||
}, | }, | ||||
/** | |||||
* 发起支付 | |||||
*/ | |||||
orderFunc(discount) { | |||||
var that = this; | |||||
Http.post({ | |||||
url: config.api.checkPhoneStatus, | |||||
data: {} | |||||
}) | |||||
.then(res => { | |||||
/** | |||||
* orderSave 下单 | |||||
*/ | |||||
debugger | |||||
// return Http.post({ | |||||
// url: config.api.orderSave, | |||||
// data: data | |||||
// }); | |||||
}) | |||||
.catch(err => { | |||||
console.log(err); | |||||
that.setData({ | |||||
showbutton: false, | |||||
showbutton1: false | |||||
}) | |||||
if (err.code == 2011) { | |||||
wx.showToast({ | |||||
title: "商户信息没找到", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 2013) { | |||||
wx.showToast({ | |||||
title: "商户信息禁用", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3000) { | |||||
wx.showToast({ | |||||
title: "库存不足", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3001) { | |||||
wx.showToast({ | |||||
title: "超过限购条件", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3002) { | |||||
wx.showToast({ | |||||
title: "订单失败", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3003) { | |||||
wx.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 3004) { | |||||
wx.showToast({ | |||||
title: "订单不存在", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 4003) { | |||||
wx.showToast({ | |||||
title: "卡券已作废", | |||||
image: './../../../assets/images/fail.png', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} else if (err.code == 11005) { | |||||
/** | |||||
* 将值传到用户手机号授权的页面 | |||||
* | |||||
*/ | |||||
wx.redirectTo({ | |||||
url: "/pages/getphoneInfo/index?path=spell&couponChannelId=" + | |||||
that.data.couponChannelId + '&couponId=' + that.data.couponId | |||||
}); | |||||
} else if (err.code == 11006) { | |||||
// 用户手机已加密 | |||||
wx.redirectTo({ | |||||
url: "/pages/phoneinput/phoneinput?path=spell&couponChannelId=" + | |||||
that.data.couponChannelId + '&couponId=' + that.data.couponId | |||||
}); | |||||
} else { | |||||
wx.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} | |||||
}) | |||||
.then(res => { | |||||
console.log(res) | |||||
if (discount != 'discount') { | |||||
if (typeof (res) != "undefined") { | |||||
let orderId = "" + res.data.id; | |||||
that.setData({ | |||||
orderId: orderId | |||||
}); | |||||
if (res.data.payment > 0) { | |||||
// 支付金额不为0 | |||||
/** | |||||
* 支付订单创建 | |||||
*/ | |||||
Http.post({ | |||||
url: config.api.payOrderCreate, | |||||
data: { | |||||
orderId: orderId | |||||
} | |||||
}) | |||||
.then(res => { | |||||
var payOrderId = "" + res.data.payOrderId; | |||||
wx.hideLoading(); | |||||
wx.requestPayment({ | |||||
timeStamp: res.data.timeStamp, | |||||
nonceStr: res.data.nonceStr, | |||||
package: res.data.package, | |||||
signType: (res.data.signType) ? res.data.signType : "MD5", | |||||
paySign: res.data.paySign, | |||||
success: res => { | |||||
wx.showLoading({ | |||||
title: '订单正在处理中...', | |||||
}) | |||||
setTimeout(function () { | |||||
wx.hideLoading() | |||||
}, 5000) | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); | |||||
if (res.errMsg == "requestPayment:ok") { | |||||
setTimeout(function () { | |||||
wx.hideLoading(); | |||||
}, 2000); | |||||
/** | |||||
* 用户支付成功以后跳转到券包列表 | |||||
*/ | |||||
if (that.data.cardType == 100) { | |||||
wx.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.data.type != 5) { | |||||
wx.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | |||||
}, | |||||
fail: res => { | |||||
/** | |||||
* 支付失败,需要更新订单的状态 | |||||
*/ | |||||
that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that); | |||||
that.setData({ | |||||
showbutton: false | |||||
}) | |||||
return; | |||||
}, | |||||
complete: res => { } | |||||
}); | |||||
/// End payment -------- | |||||
}) | |||||
.catch(err => { | |||||
wx.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
} else { | |||||
console.log(that.data.type) | |||||
// 免费券 | |||||
that.payOrderUpdate(orderId, "0", 1, '', 'free'); | |||||
if (that.data.cardType == 100) { | |||||
wx.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum2" | |||||
}) | |||||
} else if (that.data.data.type != "5") { | |||||
wx.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum" | |||||
}) | |||||
} | |||||
} | |||||
} | |||||
} else { | |||||
if (res) { | |||||
wx.navigateTo({ | |||||
url: `/pages/bargain/bargainDatail/bargainDatail?orderId=${res.data.id}`, | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
}, | |||||
/** | /** | ||||
* 生命周期函数--监听页面初次渲染完成 | * 生命周期函数--监听页面初次渲染完成 | ||||
*/ | */ | ||||
@@ -73,7 +313,10 @@ Page({ | |||||
* 生命周期函数--监听页面显示 | * 生命周期函数--监听页面显示 | ||||
*/ | */ | ||||
onShow: function () { | onShow: function () { | ||||
this.setData({ | |||||
canSpell:true, | |||||
canBuyIf:true | |||||
}) | |||||
}, | }, | ||||
/** | /** | ||||
@@ -102,12 +345,5 @@ Page({ | |||||
*/ | */ | ||||
onReachBottom: function () { | onReachBottom: function () { | ||||
}, | |||||
/** | |||||
* 用户点击右上角分享 | |||||
*/ | |||||
onShareAppMessage: function () { | |||||
} | } | ||||
}) | }) |
@@ -1,14 +1,14 @@ | |||||
<view class="content-box"> | <view class="content-box"> | ||||
<view class='content'> | <view class='content'> | ||||
<view class='top-img'> | <view class='top-img'> | ||||
<image src='{{detailData.coverImg}}'></image> | |||||
<image src='{{data.coverImg}}'></image> | |||||
</view> | </view> | ||||
<view class='title'>{{detailData.title}}</view> | |||||
<view class='title'>{{data.title}}</view> | |||||
<view class='text'> | <view class='text'> | ||||
<view class='remark'>{{detailData.subTitle}}</view> | |||||
<view class='remark'>{{data.subTitle}}</view> | |||||
<view class='des'> | <view class='des'> | ||||
<view class='des-peoplenum'>【拼团购】{{detailData.pressLimitNum}}人拼团成功,单价仅需</view> | |||||
<view class='des-saleprice'>{{detailData.salePriceStr}}元</view> | |||||
<view class='des-peoplenum'>【拼团购】{{data.pressLimitNum}}人拼团成功,单价仅需</view> | |||||
<view class='des-saleprice'>{{data.salePriceStr}}元</view> | |||||
</view> | </view> | ||||
<view class='status'> | <view class='status'> | ||||
<view class='status01 st'> | <view class='status01 st'> | ||||
@@ -26,19 +26,33 @@ | |||||
</view> | </view> | ||||
<view class='p-des'> | <view class='p-des'> | ||||
<view class='p-title'>商品详情:</view> | <view class='p-title'>商品详情:</view> | ||||
<view class='p-list'>{{detailData.remark}}</view> | |||||
<view class='p-list'>{{data.remark}}</view> | |||||
</view> | |||||
<view class='posi'> | |||||
<view class='applyshop'>适用门店</view> | |||||
<view class='posi_logo' wx:for="{{data.merchantVoList}}" wx:key="index"> | |||||
<view> | |||||
<image src='{{item.merchantImgUrl}}'></image> | |||||
</view> | |||||
<view> | |||||
<text>{{item.merchantName}}</text> | |||||
<text>{{item.addr}}{{item.buildingName}}{{item.floorName}}</text> | |||||
</view> | |||||
<image bindtap='phone' data-merchantLinkPhone='{{item.merchantLinkPhone}}' class="tel" src="{{teljpgUrl}}" mode="widthFix" /> | |||||
</view> | |||||
</view> | </view> | ||||
<view class='edit'> | <view class='edit'> | ||||
<view class='edit-left'> | |||||
<view class='edit-left' bindtap='{{canBuyIf?"gotoBuy":""}}'> | |||||
<view class='edit-left-top'> | <view class='edit-left-top'> | ||||
<view class='price'>{{detailData.price}}</view> | |||||
<view class='price'>{{data.price}}</view> | |||||
<view class='price-unit'>元</view> | <view class='price-unit'>元</view> | ||||
</view> | </view> | ||||
<view class='edit-left-bottom'>立即购买</view> | <view class='edit-left-bottom'>立即购买</view> | ||||
</view> | </view> | ||||
<view class='edit-right'> | |||||
<!-- <button class='edit-right' id="shareBtn" open-type="share"></button> --> | |||||
<view class='edit-right' bindtap='{{canSpell?"gotoSpell":""}}'> | |||||
<view class='edit-right-top'> | <view class='edit-right-top'> | ||||
<view class='real-price'>{{detailData.salePrice}}</view> | |||||
<view class='real-price'>{{data.salePrice}}</view> | |||||
<view class='real-price-unit'>元</view> | <view class='real-price-unit'>元</view> | ||||
</view> | </view> | ||||
<view class='edit-right-bottom'>发起拼团</view> | <view class='edit-right-bottom'>发起拼团</view> | ||||
@@ -171,6 +171,7 @@ | |||||
float: right; | float: right; | ||||
width: 330rpx; | width: 330rpx; | ||||
height: 95rpx; | height: 95rpx; | ||||
line-height: 46rpx; | |||||
background:linear-gradient(90deg,rgba(236,59,45,1) 0%,rgba(248,98,52,1) 100%); | background:linear-gradient(90deg,rgba(236,59,45,1) 0%,rgba(248,98,52,1) 100%); | ||||
box-shadow:0px 8rpx 8rpx 1rpx rgba(246,93,51,0.32); | box-shadow:0px 8rpx 8rpx 1rpx rgba(246,93,51,0.32); | ||||
border-radius:48rpx; | border-radius:48rpx; | ||||
@@ -207,17 +208,16 @@ | |||||
} | } | ||||
.edit-right-top{ | .edit-right-top{ | ||||
height: 46rpx; | |||||
line-height: 32rpx; | |||||
text-align: center; | text-align: center; | ||||
margin-top: 13rpx; | |||||
} | } | ||||
.real-price{ | .real-price{ | ||||
display: inline; | display: inline; | ||||
font-size:32rpx; | font-size:32rpx; | ||||
line-height: 32rpx; | |||||
font-family:PingFang-SC-Medium; | font-family:PingFang-SC-Medium; | ||||
font-weight:500; | font-weight:500; | ||||
color:rgba(254,254,254,1); | color:rgba(254,254,254,1); | ||||
margin-top: 6rpx; | |||||
} | } | ||||
.real-price-unit{ | .real-price-unit{ | ||||
display: inline; | display: inline; | ||||
@@ -235,4 +235,85 @@ | |||||
font-family:PingFang-SC-Medium; | font-family:PingFang-SC-Medium; | ||||
font-weight:500; | font-weight:500; | ||||
color:rgba(254,254,254,1); | color:rgba(254,254,254,1); | ||||
} | |||||
.posi { | |||||
position: relative; | |||||
} | |||||
.applyshop{ | |||||
font-size:32rpx; | |||||
font-family:PingFang-SC-Bold; | |||||
font-weight:bold; | |||||
color:rgba(51,51,51,1); | |||||
margin: 10rpx 0 20rpx 0; | |||||
} | |||||
.posi>view:nth-child(2) { | |||||
width: 100%; | |||||
height: 87rpx; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
line-height: 87rpx; | |||||
} | |||||
.posi>view:nth-child(2) text:nth-child(1) { | |||||
font-size: 30rpx; | |||||
color: #a9a9a9; | |||||
} | |||||
.posi>view:nth-child(2) text:nth-child(2) { | |||||
font-size: 30rpx; | |||||
color: #a9a9a9; | |||||
} | |||||
.posi_logo { | |||||
width: 100%; | |||||
display: flex; | |||||
padding: 20rpx 0; | |||||
background: #fff; | |||||
height: 100rpx; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.posi_logo view:nth-child(1) { | |||||
width: 100rpx; | |||||
height: 100rpx; | |||||
border-radius: 16rpx; | |||||
} | |||||
.posi_logo view:nth-child(1) image { | |||||
display: block; | |||||
width: 100rpx; | |||||
height: 100rpx; | |||||
border-radius: 16rpx; | |||||
border: 1px solid #e5e5e5; | |||||
} | |||||
.posi_logo view:nth-child(2) { | |||||
display: flex; | |||||
flex-direction: column; | |||||
flex: 8; | |||||
padding-left: 30rpx; | |||||
} | |||||
.posi_logo view:nth-child(2) text:nth-child(1) { | |||||
font-size: 32rpx; | |||||
color: #333; | |||||
letter-spacing: 0; | |||||
} | |||||
.posi_logo view:nth-child(2) text:nth-child(2) { | |||||
font-size: 24rpx; | |||||
color: #b8b8b8; | |||||
padding-top: 3rpx; | |||||
width: 450rpx; | |||||
height: 36rpx; | |||||
overflow: hidden; | |||||
} | |||||
.tel { | |||||
right: 0; | |||||
top: 0; | |||||
bottom: 0; | |||||
margin: auto; | |||||
width: 50rpx; | |||||
height: 50rpx; | |||||
} | } |