@@ -1,7 +1,7 @@ | |||||
{ | { | ||||
"pages": [ | "pages": [ | ||||
"pages/scanPay/scanPay", | |||||
"pages/index/index", | "pages/index/index", | ||||
"pages/scanPay/scanPay", | |||||
"pages/edit/edit", | "pages/edit/edit", | ||||
"pages/cartest/cartest", | "pages/cartest/cartest", | ||||
"pages/actdetail/actdetail", | "pages/actdetail/actdetail", | ||||
@@ -16,7 +16,7 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view> | <view> | ||||
<text class='title'>使用门店:</text> | |||||
<text class='title'>适用门店:</text> | |||||
<view class='posi'> | <view class='posi'> | ||||
<view class='posi_logo' wx:for="{{cardDetail.merchantVoList}}" wx:key="index"> | <view class='posi_logo' wx:for="{{cardDetail.merchantVoList}}" wx:key="index"> | ||||
<view> | <view> | ||||
@@ -31,7 +31,7 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view> | <view> | ||||
<text class="title">交易明细:</text> | |||||
<text wx:if="{{data.length>0}}" class="title">交易明细:</text> | |||||
<view wx:for="{{data}}" wx:key="{{index}}"> | <view wx:for="{{data}}" wx:key="{{index}}"> | ||||
<view class='record clearfix record1'> | <view class='record clearfix record1'> | ||||
<text>{{item.merchantName}}</text> | <text>{{item.merchantName}}</text> | ||||
@@ -30,7 +30,7 @@ | |||||
<view hover-class='active' bindtap='gotoPay' data-remainingAmount="{{item.remainingAmount/100}}" data-cardId="{{item.id}}" data-couponorderstatus="{{item.couponOrderStatus}}" wx:if="{{item.couponOrderStatus==4}}" class="btns">扫一扫付款</view> | <view hover-class='active' bindtap='gotoPay' data-remainingAmount="{{item.remainingAmount/100}}" data-cardId="{{item.id}}" data-couponorderstatus="{{item.couponOrderStatus}}" wx:if="{{item.couponOrderStatus==4}}" class="btns">扫一扫付款</view> | ||||
<view hover-class='active' wx:if="{{item.couponOrderStatus!=4}}" class="btns clearfix"> | <view hover-class='active' wx:if="{{item.couponOrderStatus!=4}}" class="btns clearfix"> | ||||
<text class='txtstatus fl' wx:if="{{item.couponOrderStatus == 5}}">已过期</text> | <text class='txtstatus fl' wx:if="{{item.couponOrderStatus == 5}}">已过期</text> | ||||
<text class='txtstatus fl' wx:if="{{item.couponOrderStatus == 6}}">余额不足</text> | |||||
<text class='txtstatus fl' wx:if="{{item.couponOrderStatus == 6}}">余额已用完</text> | |||||
<text class='txtstatus fl' wx:if="{{item.couponOrderStatus == 7}}">已线下退款</text> | <text class='txtstatus fl' wx:if="{{item.couponOrderStatus == 7}}">已线下退款</text> | ||||
<button class='buyagain fr' bindtap='gotoBuy'>再次购买</button> | <button class='buyagain fr' bindtap='gotoBuy'>再次购买</button> | ||||
</view> | </view> | ||||
@@ -37,7 +37,7 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class='expect' wx:if="{{list.length==0}}"> | <view class='expect' wx:if="{{list.length==0}}"> | ||||
<image src='./../../assets/images/shixiao.png' mode='widthFix'></image> | |||||
<image src='./../../assets/images/gift.png' mode='widthFix'></image> | |||||
<text>请您敬请期待</text> | <text>请您敬请期待</text> | ||||
<text>我们正在筹备一大堆优惠活动</text> | <text>我们正在筹备一大堆优惠活动</text> | ||||
</view> | </view> | ||||
@@ -10,7 +10,9 @@ Page({ | |||||
data: { | data: { | ||||
merChant: {}, | merChant: {}, | ||||
focus: true, | focus: true, | ||||
inputValue: '' | |||||
inputValue: '', | |||||
cardList: [], | |||||
showModel: false, | |||||
}, | }, | ||||
/** | /** | ||||
@@ -23,8 +25,6 @@ Page({ | |||||
cardid: options.cardid, | cardid: options.cardid, | ||||
remainingAmount: options.remainingAmount | remainingAmount: options.remainingAmount | ||||
}) | }) | ||||
console.log(that.data.remainingAmount) | |||||
console.log("------------------remainingAmount-------------------") | |||||
}, | }, | ||||
bindKeyInput(e) { | bindKeyInput(e) { | ||||
console.log(e) | console.log(e) | ||||
@@ -34,99 +34,160 @@ Page({ | |||||
}, | }, | ||||
gotoPayMoney: function() { | gotoPayMoney: function() { | ||||
let that = this; | let that = this; | ||||
Http.post({ | |||||
url: config.api.cardPayOrder, | |||||
data: { | |||||
cardId: that.data.cardid, | |||||
merchantCode: that.data.merChant.merchant_id, | |||||
totalFee: that.data.inputValue | |||||
} | |||||
}) | |||||
.then(res => { | |||||
console.log(res); | |||||
wx.navigateTo({ | |||||
url: '/pages/paySuccess/paySuccess', | |||||
// 卡余额充足的时候,才可以付钱 | |||||
console.log(Number(that.data.remainingAmount) >= Number(that.data.inputValue)) | |||||
if (that.data.inputValue != "" && Number(that.data.remainingAmount) >= Number(that.data.inputValue)) { | |||||
Http.post({ | |||||
url: config.api.cardPayOrder, | |||||
data: { | |||||
cardId: that.data.cardid, | |||||
merchantCode: that.data.merChant.merchant_id, | |||||
totalFee: that.data.inputValue | |||||
} | |||||
}) | }) | ||||
}) | |||||
.catch(err => { | |||||
wx.showModal({ | |||||
title: "抱歉", | |||||
content: err.message, | |||||
showCancel: false | |||||
.then(res => { | |||||
console.log(res); | |||||
if(res.code==200){ | |||||
that.startAuth(); | |||||
} | |||||
}) | }) | ||||
.catch(err => { | |||||
wx.showModal({ | |||||
title: "抱歉", | |||||
content: err.message, | |||||
showCancel: false | |||||
}) | |||||
}) | |||||
} else if (that.data.inputValue == "") { | |||||
wx.showModal({ | |||||
title: '抱歉', | |||||
content: '请输入金额', | |||||
showCancel: false | |||||
}) | |||||
} else if (that.data.inputValue != "" && Number(that.data.remainingAmount) < Number(that.data.inputValue)) { | |||||
// wx.showModal({ | |||||
// title: '抱歉', | |||||
// content: '余额不足', | |||||
// showCancel: false | |||||
// }) | |||||
that.setData({ | |||||
showModel: true | |||||
}) | }) | ||||
that.getList(); | |||||
} | |||||
}, | }, | ||||
// 指纹识别 | // 指纹识别 | ||||
startAuth() { | startAuth() { | ||||
let that = this; | let that = this; | ||||
// 卡余额充足的时候,才可以付钱 | |||||
if (that.data.inputValue != "" && that.data.remainingAmount >= that.data.inputValue) { | |||||
const startSoterAuthentication = () => { | |||||
wx.startSoterAuthentication({ | |||||
requestAuthModes: [AUTH_MODE], | |||||
challenge: 'test', | |||||
authContent: '小程序支付', | |||||
success: (res) => { | |||||
this.gotoPayMoney(); | |||||
}, | |||||
fail: (err) => { | |||||
const startSoterAuthentication = () => { | |||||
wx.startSoterAuthentication({ | |||||
requestAuthModes: [AUTH_MODE], | |||||
challenge: 'test', | |||||
authContent: '请验证已有的指纹以继续', | |||||
success: (res) => { | |||||
wx.navigateTo({ | |||||
url: '/pages/paySuccess/paySuccess', | |||||
}) | |||||
}, | |||||
fail: (err) => { | |||||
} | |||||
}) | |||||
} | |||||
const checkIsEnrolled = () => { | |||||
wx.checkIsSoterEnrolledInDevice({ | |||||
checkAuthMode: AUTH_MODE, | |||||
success: (res) => { | |||||
console.log(res) | |||||
if (parseInt(res.isEnrolled) <= 0) { | |||||
wx.showModal({ | |||||
title: '错误', | |||||
content: '您暂未录入指纹信息,请录入后重试', | |||||
showCancel: false | |||||
}) | |||||
return | |||||
} | |||||
startSoterAuthentication(); | |||||
}, | |||||
fail: (err) => { | |||||
console.error(err) | |||||
} | |||||
}) | |||||
} | |||||
wx.checkIsSupportSoterAuthentication({ | |||||
} | |||||
}) | |||||
} | |||||
const checkIsEnrolled = () => { | |||||
wx.checkIsSoterEnrolledInDevice({ | |||||
checkAuthMode: AUTH_MODE, | |||||
success: (res) => { | success: (res) => { | ||||
console.log(res) | console.log(res) | ||||
checkIsEnrolled() | |||||
if (parseInt(res.isEnrolled) <= 0) { | |||||
wx.showModal({ | |||||
title: '错误', | |||||
content: '您暂未录入指纹信息,请录入后重试', | |||||
showCancel: false | |||||
}) | |||||
return | |||||
} | |||||
startSoterAuthentication(); | |||||
}, | }, | ||||
fail: (err) => { | fail: (err) => { | ||||
console.error(err); | |||||
wx.showModal({ | |||||
title: '错误', | |||||
content: '您的设备不支持指纹识别', | |||||
showCancel: false | |||||
}) | |||||
console.error(err) | |||||
} | } | ||||
}) | }) | ||||
} else if (that.data.inputValue == ""){ | |||||
wx.showModal({ | |||||
title: '抱歉', | |||||
content: '请输入金额', | |||||
showCancel: false | |||||
} | |||||
wx.checkIsSupportSoterAuthentication({ | |||||
success: (res) => { | |||||
console.log(res) | |||||
checkIsEnrolled() | |||||
}, | |||||
fail: (err) => { | |||||
console.error(err); | |||||
wx.showModal({ | |||||
title: '抱歉', | |||||
content: '您的设备不支持指纹识别', | |||||
showCancel: false | |||||
}) | |||||
} | |||||
}) | |||||
}, | |||||
gotonewcard: function() { | |||||
wx.navigateTo({ | |||||
url: '/pages/discountCardList/discountCardList' | |||||
}) | |||||
this.setData({ | |||||
showModel: false | |||||
}) | |||||
}, | |||||
getList() { | |||||
var that = this; | |||||
var data = { | |||||
pageNum: 1, | |||||
pageSize: 100, | |||||
couponType: "7", | |||||
couponOrderStatus: 4 | |||||
} | |||||
Http.get({ | |||||
url: config.api.cardorderList, | |||||
data: data | |||||
}) | }) | ||||
} else if (that.data.inputValue != ""&&that.data.remainingAmount < that.data.inputValue){ | |||||
wx.showModal({ | |||||
title: '抱歉', | |||||
content: '余额不足', | |||||
showCancel:false | |||||
.then(res => { | |||||
console.log(res) | |||||
if (res.code == 200) { | |||||
res.data.list.map(file => { | |||||
file.merchantVoList.map(files => { | |||||
console.log(files.id) | |||||
if (files.id == that.data.merChant.merchant_id) { | |||||
file.flag = true | |||||
} | |||||
}) | |||||
}) | |||||
that.setData({ | |||||
showPage: true, | |||||
cardList: res.data.list | |||||
}) | |||||
} | |||||
}) | |||||
.catch(err => { | |||||
wx.showModal({ | |||||
title: '提示', | |||||
content: err.errMsg, | |||||
showCancel: false | |||||
}) | |||||
}) | }) | ||||
} | |||||
}, | }, | ||||
/** | |||||
* 生命周期函数--监听页面显示 | |||||
*/ | |||||
onShow: function() { | |||||
check: function(e) { | |||||
let ids = e.currentTarget.dataset.id; | |||||
this.setData({ | |||||
ids: ids, | |||||
cardId: ids, | |||||
remainingAmount: e.currentTarget.dataset.remainingamount | |||||
}) | |||||
}, | |||||
showModel: function() { | |||||
this.setData({ | |||||
showModel: false | |||||
}) | |||||
}, | }, | ||||
/** | /** | ||||
@@ -8,88 +8,35 @@ | |||||
<view class='money'> | <view class='money'> | ||||
<text class='icon'>¥</text> | <text class='icon'>¥</text> | ||||
<input bindinput="bindKeyInput" class='num' type="digit" focus placeholder="" /> | <input bindinput="bindKeyInput" class='num' type="digit" focus placeholder="" /> | ||||
<button bindtap='startAuth' hover-class='active'>确认付款</button> | |||||
<button bindtap='gotoPayMoney' hover-class='active'>确认付款</button> | |||||
</view> | </view> | ||||
<view class='model'> | |||||
<view class='model' wx:if="{{showModel}}"> | |||||
<view class='zhezhao'></view> | <view class='zhezhao'></view> | ||||
<view class='card-model'> | <view class='card-model'> | ||||
<view class='card-top'> | |||||
<view class='card-top' bindtap='showModel'> | |||||
余额不足,请选择其他优惠卡支付 | 余额不足,请选择其他优惠卡支付 | ||||
</view> | </view> | ||||
<view class='card-content'> | <view class='card-content'> | ||||
<scroll-view | |||||
scroll-y | |||||
style="height: 500rpx;" | |||||
bindscrolltoupper="upper" | |||||
bindscrolltolower="lower" | |||||
bindscroll="scroll" | |||||
scroll-into-view="{{toView}}" | |||||
scroll-top="{{scrollTop}}" | |||||
> | |||||
<view class='card-items'> | |||||
<scroll-view scroll-y style="height: 500rpx;" bindscroll="scroll" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}"> | |||||
<view class='card-items {{item.remainingAmount/100>=inputValue&&item.flag?"":"opcacity"}}' wx:for="{{cardList}}" wx:key="{{index}}" data-remainingAmount='{{item.remainingAmount/100}}' data-id="{{item.id}}" bindtap='check'> | |||||
<view class='card-items-left'> | <view class='card-items-left'> | ||||
<view class='card-items-left-img'><image src=''></image></view> | |||||
<view class='card-items-left-text'>万达标准卡</view> | |||||
<view class='card-items-left-img'> | |||||
<image src='{{item.coverImg}}'></image> | |||||
</view> | |||||
<view class='card-items-left-text'>{{item.title}}</view> | |||||
</view> | </view> | ||||
<view class='card-items-right'> | <view class='card-items-right'> | ||||
<view class='card-items-right-text'>余额:2000</view> | |||||
<view class='card-items-right-radio'><image src=''></image></view> | |||||
</view> | |||||
</view> | |||||
<view class='card-items'> | |||||
<view class='card-items-left'> | |||||
<view class='card-items-left-img'><image src=''></image></view> | |||||
<view class='card-items-left-text'>万达标准卡</view> | |||||
</view> | |||||
<view class='card-items-right'> | |||||
<view class='card-items-right-text'>余额:2000</view> | |||||
<view class='card-items-right-radio'><image src=''></image></view> | |||||
</view> | |||||
</view> | |||||
<view class='card-items'> | |||||
<view class='card-items-left'> | |||||
<view class='card-items-left-img'><image src=''></image></view> | |||||
<view class='card-items-left-text'>万达标准卡</view> | |||||
</view> | |||||
<view class='card-items-right'> | |||||
<view class='card-items-right-text'>余额:2000</view> | |||||
<view class='card-items-right-radio'><image src=''></image></view> | |||||
</view> | |||||
</view> | |||||
<view class='card-items'> | |||||
<view class='card-items-left'> | |||||
<view class='card-items-left-img'><image src=''></image></view> | |||||
<view class='card-items-left-text'>万达标准卡</view> | |||||
</view> | |||||
<view class='card-items-right'> | |||||
<view class='card-items-right-text'>余额:2000</view> | |||||
<view class='card-items-right-radio'><image src=''></image></view> | |||||
</view> | |||||
</view> | |||||
<view class='card-items'> | |||||
<view class='card-items-left'> | |||||
<view class='card-items-left-img'><image src=''></image></view> | |||||
<view class='card-items-left-text'>万达标准卡</view> | |||||
</view> | |||||
<view class='card-items-right'> | |||||
<view class='card-items-right-text'>余额:2000</view> | |||||
<view class='card-items-right-radio'><image src=''></image></view> | |||||
</view> | |||||
</view> | |||||
<view class='card-items'> | |||||
<view class='card-items-left'> | |||||
<view class='card-items-left-img'><image src=''></image></view> | |||||
<view class='card-items-left-text'>万达标准卡</view> | |||||
</view> | |||||
<view class='card-items-right'> | |||||
<view class='card-items-right-text'>余额:2000</view> | |||||
<view class='card-items-right-radio'><image src=''></image></view> | |||||
<view class='card-items-right-text'>余额:{{item.remainingAmount/100}}元</view> | |||||
<view class='card-items-right-radio' class='icons'> | |||||
<image wx:if="{{item.id != ids}}" src='./../../assets/images/no.png' mode='widthFix'></image> | |||||
<image wx:if="{{item.id == ids&&item.remainingAmount/100>=inputValue&&item.flag}}" src='./../../assets/images/yes.png' mode='widthFix'></image> | |||||
</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</scroll-view> | </scroll-view> | ||||
</view> | </view> | ||||
<view class='card-bottom'> | <view class='card-bottom'> | ||||
<button type='primary' class='checkcard-box'>购买新卡</button> | |||||
<button type='primary' bindtap='gotonewcard' class='checkcard-box'>购买新卡</button> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> |
@@ -81,7 +81,7 @@ | |||||
.card-top{ | .card-top{ | ||||
height: 75rpx; | height: 75rpx; | ||||
width: 100%; | width: 100%; | ||||
background: rgb(200, 89, 99); | |||||
background: #E67663; | |||||
line-height: 75rpx; | line-height: 75rpx; | ||||
text-align: center; | text-align: center; | ||||
font-size:30rpx; | font-size:30rpx; | ||||
@@ -96,22 +96,31 @@ | |||||
.card-content image{ | .card-content image{ | ||||
width: 64rpx; | width: 64rpx; | ||||
height: 64rpx; | height: 64rpx; | ||||
border-radius:10rpx; | |||||
position: absolute; | |||||
left: 20rpx; | |||||
top: 0; | |||||
bottom: 0; | |||||
margin: auto; | |||||
} | } | ||||
.card-items{ | .card-items{ | ||||
position: relative; | |||||
height: 130rpx; | height: 130rpx; | ||||
line-height: 130rpx; | line-height: 130rpx; | ||||
overflow: hidden; | overflow: hidden; | ||||
width: 94%; | width: 94%; | ||||
margin: 0 auto; | margin: 0 auto; | ||||
border-bottom: 1rpx solid #cecece; | |||||
border-bottom: 1rpx solid #eee; | |||||
} | } | ||||
.card-items-left{ | .card-items-left{ | ||||
width: 50%; | width: 50%; | ||||
float: left; | float: left; | ||||
font-size: 30rpx; | |||||
} | } | ||||
.card-items-right{ | .card-items-right{ | ||||
width: 50%; | width: 50%; | ||||
float: left; | |||||
float: right; | |||||
font-size: 30rpx; | |||||
} | } | ||||
.card-items-left-img{ | .card-items-left-img{ | ||||
width: 30%; | width: 30%; | ||||
@@ -133,6 +142,21 @@ | |||||
width: 20%; | width: 20%; | ||||
} | } | ||||
.checkcard-box{ | .checkcard-box{ | ||||
width: 80%; | |||||
width: 84%; | |||||
background: #02C0FF!important; | background: #02C0FF!important; | ||||
} | |||||
.opcacity{ | |||||
opacity: .2!important; | |||||
} | |||||
.icons{ | |||||
width: 40rpx; | |||||
height: 40rpx; | |||||
position: absolute; | |||||
top: 0; | |||||
bottom: 0; | |||||
right: 20rpx; | |||||
margin: auto; | |||||
} | |||||
.icons image{ | |||||
width:100%; | |||||
} | } |
@@ -5,7 +5,7 @@ | |||||
<view class="title">以下为商城会员对应门店的优惠折扣</view> | <view class="title">以下为商城会员对应门店的优惠折扣</view> | ||||
</view> | </view> | ||||
<view class='cards clearfix'> | <view class='cards clearfix'> | ||||
<view class='card' wx:for="{{discountMerchantList}}" wx:key="{{index}}"> | |||||
<view class='card' wx:for="{{discountMerchantList}}" wx:key="{{index}}" wx:if="{{item.vipDiscountRate1/1000!=10}}"> | |||||
<view class='txt01'> | <view class='txt01'> | ||||
<view class="triangle"> | <view class="triangle"> | ||||
<text><i>></i></text> | <text><i>></i></text> | ||||