From c98f43a92da48dbf893c130d31b3cff0299f2253 Mon Sep 17 00:00:00 2001 From: limqhz <540344226@qq.com> Date: Tue, 16 Jan 2024 00:06:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E5=90=8E=E8=B7=B3=E8=BD=AC=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E6=88=96=E8=80=85=E6=8F=90=E7=A4=BA=E8=B6=85=E6=97=B6?= =?UTF-8?q?=20&=20=E4=BD=99=E9=A2=9D=E6=8F=90=E7=8E=B0=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 1 + images/reload.png | Bin 0 -> 4902 bytes pages/basketballGym/index.js | 68 +++++++++++++++- pages/basketballGym/index.wxml | 11 ++- pages/basketballGym/index.wxss | 9 +++ pages/currentEnter/index.js | 133 +++++++++++++++++++++++++++++++ pages/currentEnter/index.json | 7 ++ pages/currentEnter/index.wxml | 44 +++++++++++ pages/currentEnter/index.wxss | 139 +++++++++++++++++++++++++++++++++ pages/withdrawal/index.js | 8 +- utils/api.js | 4 + 11 files changed, 414 insertions(+), 10 deletions(-) create mode 100644 images/reload.png create mode 100644 pages/currentEnter/index.js create mode 100644 pages/currentEnter/index.json create mode 100644 pages/currentEnter/index.wxml create mode 100644 pages/currentEnter/index.wxss diff --git a/app.json b/app.json index 25c4d0b..d6face0 100644 --- a/app.json +++ b/app.json @@ -17,6 +17,7 @@ "pages/myBookingsList/index", "pages/myEnters/index", "pages/myEnterList/index", + "pages/currentEnter/index", "pages/myMembershipCard/index", "pages/notice/index", "pages/questions/index", diff --git a/images/reload.png b/images/reload.png new file mode 100644 index 0000000000000000000000000000000000000000..e2861030c03543be4dc71f917aca16c5e517131b GIT binary patch literal 4902 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 Y0D}`;Vy#g7b^rhX07*qoM6N<$g3Vt%9RL6T literal 0 HcmV?d00001 diff --git a/pages/basketballGym/index.js b/pages/basketballGym/index.js index 251119d..effc592 100644 --- a/pages/basketballGym/index.js +++ b/pages/basketballGym/index.js @@ -20,10 +20,13 @@ Page({ * 页面的初始数据 */ data: { + barcodeClock: null, + clockTime: 0, venues: {}, // isShowBuyVip: false, // buyVipObj: {}, showUnclickMask: false, + barcodeTimeOut: false, // showCardMask: false, orderSn: '000', payMoney: 0, @@ -66,7 +69,6 @@ Page({ showUnclickMask: false // flg: 100 }) - this.initPage() }, @@ -74,14 +76,14 @@ Page({ * 生命周期函数--监听页面隐藏 */ onHide: function() { - + this.endInter() }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { - + this.endInter() }, /** @@ -98,6 +100,46 @@ Page({ }, + /** + * 启动定时器 + */ + startInter : function(barcode){ + var that = this; + that.data.barcodeClock= setInterval( + function () { + console.log('setInterval 每过500毫秒执行一次任务' + that.data.clockTime) + app.$api.memberBarcodeIsUsed({ + barcode: barcode + }).then(res => { + if (res) { + // 二维码被使用过了 + if (res.barcodeDTO.used){ + that.closeInStep() + wx.navigateTo({ + url: `/pages/currentEnter/index?id=${res.barcodeDTO.enterId}`, + }) + } + } + }) + that.setData({ + clockTime: that.data.clockTime+1 + }) + if (that.data.clockTime > 10){ + that.showTimeOutBarcode(); + } + }, 2000); + }, + /** + * 结束定时器 + */ + endInter: function(){ + if (this.data.barcodeClock) { + clearInterval(this.data.barcodeClock) + this.setData({ + clockTime: 0 + }) + } + }, /** * 用户点击右上角分享 */ @@ -125,6 +167,17 @@ Page({ }); }, + showTimeOutBarcode() { + this.endInter() + this.setData({ + barcodeTimeOut: true + }) + }, + + reloadBarcode() { + this.showBarcode('000') + }, + checkIsPayed(orderSn) { this.setData({ flg: 777, @@ -284,6 +337,7 @@ Page({ this.setData({ flg: 100 }) + this.endInter() this.initPage() }, @@ -393,6 +447,13 @@ Page({ }, showBarcode(orderSn) { + this.setData({ + barcodeTimeOut: false + }) + wx.showLoading({ + title: '加载中...', + mask: true, + }) app.$api.generateBarcode({ venueId: this.data.venues.id, enterFlag: this.data.venues.enterFlag, @@ -411,6 +472,7 @@ Page({ typeNumber: 10, text: res.barcode }) + this.startInter(res.barcode) }, err => { console.log(err) this.setData({ diff --git a/pages/basketballGym/index.wxml b/pages/basketballGym/index.wxml index 5c7cd4e..3081f11 100644 --- a/pages/basketballGym/index.wxml +++ b/pages/basketballGym/index.wxml @@ -89,10 +89,15 @@ - 扫码开门 + 二维码超时 + 扫码开门 - - + + + 点击刷新 + + + diff --git a/pages/basketballGym/index.wxss b/pages/basketballGym/index.wxss index 7d28aec..442a474 100644 --- a/pages/basketballGym/index.wxss +++ b/pages/basketballGym/index.wxss @@ -436,3 +436,12 @@ height: 200rpx; margin-top: -200rpx; } + +.timeout { + display: flex; + flex-direction: column; + align-items: center; + color: #1a191e; + padding: 20rpx; + font-size: 28rpx; +} diff --git a/pages/currentEnter/index.js b/pages/currentEnter/index.js new file mode 100644 index 0000000..af21931 --- /dev/null +++ b/pages/currentEnter/index.js @@ -0,0 +1,133 @@ +// pages/currentEnter/index.js +const app = getApp(); +let enterId = "" +Page({ + + /** + * 页面的初始数据 + */ + data: { + isSignIn: false, + memberEnterDetail: {}, + showDeleteDialog: false, + isGoHome: false, + endDate: false, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function(options) { + enterId = options.id; + this.getData(); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function() { + let pages = getCurrentPages(); + this.setData({ + isGoHome: pages.length == 1 + }) + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function() { + return { + title: '智慧云馆' + } + }, + + // 获取数据 + getData() { + app.$api.memberEntersDetail({ + enterId: enterId + }).then(res => { + if (!res.memberEnterDetail) { + wx.navigateBack({ + delta: 1, + }) + } + this.setData({ + memberEnterDetail: res.memberEnterDetail + }) + }, err => { + + }) + }, + + // 取消弹框 + cancelDeleteDialog() { + this.setData({ + showDeleteDialog: false + }) + }, + + // // 确认删除 + // confirmDeleteDialog() { + // app.$api.memberEnterDetailsCancel({ + // orderSn: this.data.memberEnterDetail.orderSn + // }).then(res => { + // wx.showToast({ + // title: '取消成功', + // }) + // this.setData({ + // showDeleteDialog: false + // }) + // this.getData(); + // }, err => { + // this.setData({ + // showDeleteDialog: false + // }) + // }); + // }, + + // 打开导航, + opnGPS() { + wx.openLocation({ + latitude: Number(this.data.memberEnterDetail.latitude), + longitude: Number(this.data.memberEnterDetail.longitude), + name: this.data.memberEnterDetail.lessonName, + address: this.data.memberEnterDetail.address, + }) + } + +}) diff --git a/pages/currentEnter/index.json b/pages/currentEnter/index.json new file mode 100644 index 0000000..a9cf9b1 --- /dev/null +++ b/pages/currentEnter/index.json @@ -0,0 +1,7 @@ +{ + "navigationBarTitleText": "篮球订单", + "usingComponents": { + "confirm-dialog": "/component/confirmDialog/confirmDialog", + "header": "/component/header/header" + } +} diff --git a/pages/currentEnter/index.wxml b/pages/currentEnter/index.wxml new file mode 100644 index 0000000..8709866 --- /dev/null +++ b/pages/currentEnter/index.wxml @@ -0,0 +1,44 @@ + +
+ + + + 扫码成功 + + + + + {{memberEnterDetail.lessonName}} + + + 使用中 + 待结算 + 已结算 + + + + 开始时间 + {{memberEnterDetail.startTime}} + + + + 出场时间 + {{memberEnterDetail.endTime}} + + + + 运动时长 + {{memberEnterDetail.lessonCount}} + + + + 费用 + ¥{{memberEnterDetail.price}} + + + + 退款金额 + ¥{{memberEnterDetail.payMoney}} + + + diff --git a/pages/currentEnter/index.wxss b/pages/currentEnter/index.wxss new file mode 100644 index 0000000..2b5a120 --- /dev/null +++ b/pages/currentEnter/index.wxss @@ -0,0 +1,139 @@ +/* pages/currentEnter/index.wxss */ + +.container { + min-height: calc(100vh - 290rpx); + padding: 160rpx 30rpx 130rpx 30rpx; +} + +.cell-box { + background: #1a191e; + border-radius: 10rpx; + margin-top: 250rpx; +} + +.cell-box .cell { + display: flex; + justify-content: space-between; + align-items: center; + height: 90rpx; + padding: 0 20rpx; + border-bottom: 2rpx solid #212025; +} + +.cell-box .cell.unline { + border: none; +} + +.cell-box .cell>image { + width: 34rpx; + height: 34rpx; + margin-right: 26rpx; +} + +.cell-box .cell>text { + flex: 1; + font-size: 24rpx; + color: rgba(255, 255, 255, 0.6); +} + +.cell-box .cell .title { + flex: 1; + display: flex; + align-items: center; + color: #fff; + font-size: 26rpx; +} + +.cell-box .cell .cell-right { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: rgba(255, 255, 255, 0.6); + font-size: 20rpx; +} + +.cell-box .cell .cell-right .gps-img { + width: 50rpx; + height: 50rpx; + border-radius: 50%; +} + +.cell-box .cell .cell-right>text { + height: 20rpx; + margin-top: 6rpx; + line-height: 20rpx; +} + +.cell-box .cell .state { + font-size: 22rpx; + color: #ffda2e; +} + +.cell-box .cell .cell-right-white { + color: #fff; + font-size: 24rpx; +} + +.cell-box .qrCode-box { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 300rpx; +} + +.cell-box .qrCode-box>image { + width: 200rpx; + height: 200rpx; +} + +.cell-box .qrCode-box>text { + margin-top: 20rpx; + font-size: 22rpx; + line-height: 22rpx; + color: rgba(255, 255, 255, 0.6); +} + +.footer-box { + position: fixed; + bottom: 0; + left: 0; + display: flex; + width: 100%; + height: 100rpx; +} + +.footer-btn { + flex: 1; + background: #767578; + color: #1a191e; + font-size: 32rpx; + text-align: center; + line-height: 100rpx; +} + +.footer-btn.isActive { + background: #ffda2e; +} + +.newplot { + position: fixed; + top: 200rpx; + bottom: 0; + left: 0; + right: 0; + display: flex; + flex-direction: column; + align-items: center; + color: #FFF; + font-size: 28rpx; +} + +.newplot>image { + width: 100rpx; + height: 100rpx; +} +.newplot>text { + margin-top: 20rpx; +} diff --git a/pages/withdrawal/index.js b/pages/withdrawal/index.js index 79261b2..e608efc 100644 --- a/pages/withdrawal/index.js +++ b/pages/withdrawal/index.js @@ -95,7 +95,7 @@ Page({ this.data.money = e.detail.value; }, - // 确认提现 + // 确认提现 withdrawalClick(e) { if (!this.data.cardholder) { wx.showToast({ @@ -111,9 +111,9 @@ Page({ }) return; } - if (this.data.bankCard.length != 16) { + if (this.data.bankCard.length < 13 || this.data.bankCard.length > 19) { wx.showToast({ - title: '请输入16位银行卡号', + title: '请输入正确银行卡号', icon: 'none', }) return; @@ -175,4 +175,4 @@ Page({ }) } -}) \ No newline at end of file +}) diff --git a/utils/api.js b/utils/api.js index b0c68cb..7118fa0 100644 --- a/utils/api.js +++ b/utils/api.js @@ -313,6 +313,10 @@ export default { memberIsPayed(params) { return fetchPost('/member/isPayed', params, true); }, + // 判断数据是否 + memberBarcodeIsUsed(params) { + return fetchPost('/member/barcode/isUsed', params, true); + }, /** * 个人中心