正在显示
11 个修改的文件
包含
413 行增加
和
17 行删除
... | ... | @@ -39,6 +39,7 @@ |
39 | 39 | "pages/main/rewardpoint/home", |
40 | 40 | "pages/main/rewardpoint/cashout/cashout", |
41 | 41 | "pages/main/rewardpoint/exchange/exchange", |
42 | + "pages/main/rewardpoint/bindcard/bindcard", | |
42 | 43 | |
43 | 44 | "pages/login/login", |
44 | 45 | "pages/main/advancepayment/adPayDetails/adPayDetails", | ... | ... |
images/clear.png
0 → 100644
1.3 KB
pages/main/rewardpoint/bindcard/bindcard.js
0 → 100644
1 | +// pages/main/rewardpoint/bindcard/bindcard.js | |
2 | +Page({ | |
3 | + | |
4 | + /** | |
5 | + * Page initial data | |
6 | + */ | |
7 | + data: { | |
8 | + | |
9 | + }, | |
10 | + | |
11 | + /** | |
12 | + * Lifecycle function--Called when page load | |
13 | + */ | |
14 | + onLoad: function (options) { | |
15 | + | |
16 | + }, | |
17 | + | |
18 | + /** | |
19 | + * Lifecycle function--Called when page is initially rendered | |
20 | + */ | |
21 | + onReady: function () { | |
22 | + | |
23 | + }, | |
24 | + | |
25 | + /** | |
26 | + * Lifecycle function--Called when page show | |
27 | + */ | |
28 | + onShow: function () { | |
29 | + | |
30 | + }, | |
31 | + | |
32 | + /** | |
33 | + * 下一步 | |
34 | + */ | |
35 | + nestStep:function(){ | |
36 | + | |
37 | + }, | |
38 | + | |
39 | + /** | |
40 | + * Lifecycle function--Called when page hide | |
41 | + */ | |
42 | + onHide: function () { | |
43 | + | |
44 | + }, | |
45 | + | |
46 | + /** | |
47 | + * Lifecycle function--Called when page unload | |
48 | + */ | |
49 | + onUnload: function () { | |
50 | + | |
51 | + }, | |
52 | + | |
53 | + /** | |
54 | + * Page event handler function--Called when user drop down | |
55 | + */ | |
56 | + onPullDownRefresh: function () { | |
57 | + | |
58 | + }, | |
59 | + | |
60 | + /** | |
61 | + * Called when page reach bottom | |
62 | + */ | |
63 | + onReachBottom: function () { | |
64 | + | |
65 | + }, | |
66 | + | |
67 | + /** | |
68 | + * Called when user click on the top right corner to share | |
69 | + */ | |
70 | + onShareAppMessage: function () { | |
71 | + | |
72 | + } | |
73 | +}) | |
\ No newline at end of file | ... | ... |
1 | +<!--pages/main/rewardpoint/bindcard/bindcard.wxml--> | |
2 | +<view> | |
3 | + | |
4 | +<view> | |
5 | + | |
6 | +</view> | |
7 | + | |
8 | +<view class="view_bottom"> | |
9 | + <button class="btn_blue_radius" style="margin:20rpx" bindtap='nextStep'> 下一步</button> | |
10 | + <!-- <button wx:else class="btn_gray_radius" style="margin:20rpx"> 提现</button> --> | |
11 | + </view> | |
12 | +</view> | |
\ No newline at end of file | ... | ... |
1 | +/* pages/main/rewardpoint/bindcard/bindcard.wxss */ | |
2 | +.view_bottom { | |
3 | + background: #fff; | |
4 | + width: 100%; | |
5 | + position: fixed; | |
6 | + bottom: 0; | |
7 | + display: flex; | |
8 | + flex-direction: row; | |
9 | +} | |
10 | + | |
11 | +.placeholder_input_wrap{ | |
12 | + color:#ccc; | |
13 | + font-size:30rpx; | |
14 | +} | |
15 | + | |
16 | +.input_wrap{ | |
17 | + width:356rpx; | |
18 | + color:#333; | |
19 | + font-size:56rpx; | |
20 | +} | |
21 | + | |
22 | +.btn_blue_radius { | |
23 | + background: #357aeb; | |
24 | + border-radius: 5px; | |
25 | + flex: 1; | |
26 | + color: #fff; | |
27 | +} | |
\ No newline at end of file | ... | ... |
... | ... | @@ -5,6 +5,17 @@ Page({ |
5 | 5 | * Page initial data |
6 | 6 | */ |
7 | 7 | data: { |
8 | + showModal:false, | |
9 | + hasBind:true, | |
10 | + cashNum:6989.88, | |
11 | + inputNum:"", | |
12 | + pwdList: [1, 2, 3, 4, 5, 6], | |
13 | + //输入框聚焦状态 | |
14 | + isFocus: false, | |
15 | + //输入框聚焦样式 是否自动获取焦点 | |
16 | + focusType: true, | |
17 | + valueData: '', //输入的值 | |
18 | + dataLength: '', | |
8 | 19 | |
9 | 20 | }, |
10 | 21 | |
... | ... | @@ -30,6 +41,66 @@ Page({ |
30 | 41 | }, |
31 | 42 | |
32 | 43 | /** |
44 | + * 绑定银行卡 | |
45 | + */ | |
46 | + bindCard:function(){ | |
47 | + wx.navigateTo({ | |
48 | + url: '../bindcard/bindcard', | |
49 | + }) | |
50 | + }, | |
51 | + | |
52 | + /** | |
53 | + * 实时监听输入框内容 | |
54 | + */ | |
55 | + getInput:function(e){ | |
56 | + var money; | |
57 | + if (/^(\d?)+(\.\d{0,2})?$/.test(e.detail.value)) { //正则验证,提现金额小数点后不能大于两位数字 | |
58 | + money = e.detail.value; | |
59 | + } else { | |
60 | + money = e.detail.value.substring(0, e.detail.value.length - 1); | |
61 | + } | |
62 | + this.setData({ | |
63 | + inputNum: money | |
64 | + }) | |
65 | + }, | |
66 | + | |
67 | + /** | |
68 | + * 清空输入内容 | |
69 | + */ | |
70 | + clear:function(){ | |
71 | + this.setData({ | |
72 | + inputNum: "" | |
73 | + }) | |
74 | + }, | |
75 | + | |
76 | + /** | |
77 | + * 全部提现 | |
78 | + */ | |
79 | + cashAll:function(){ | |
80 | + this.setData({ | |
81 | + inputNum: this.data.cashNum | |
82 | + }) | |
83 | + }, | |
84 | + | |
85 | + /** | |
86 | + * 提现 | |
87 | + */ | |
88 | + cashOut:function(){ | |
89 | + var inputnum = this.data.inputNum | |
90 | + var maxnum = this.data.cashNum | |
91 | + if(inputnum&&inputnum>0&&inputnum<=maxnum){ | |
92 | + this.setData({ | |
93 | + showModal: !this.data.showModal?true:this.data.showModal, | |
94 | + }) | |
95 | + }else{ | |
96 | + wx.showToast({ | |
97 | + title: '请输入正确提现金额', | |
98 | + icon:"none" | |
99 | + }) | |
100 | + } | |
101 | + }, | |
102 | + | |
103 | + /** | |
33 | 104 | * Lifecycle function--Called when page hide |
34 | 105 | */ |
35 | 106 | onHide: function () { |
... | ... | @@ -62,5 +133,47 @@ Page({ |
62 | 133 | */ |
63 | 134 | onShareAppMessage: function () { |
64 | 135 | |
136 | + }, | |
137 | + | |
138 | + // 获得焦点时 | |
139 | + handleUseFocus() { | |
140 | + this.setData({ | |
141 | + focusType: true | |
142 | + }) | |
143 | + }, | |
144 | + | |
145 | + // 失去焦点时 | |
146 | + handleUseBlur() { | |
147 | + this.setData({ | |
148 | + focusType: false | |
149 | + }) | |
150 | + }, | |
151 | + | |
152 | + // 点击6个框聚焦 | |
153 | + handleFocus() { | |
154 | + this.setData({ | |
155 | + isFocus: true | |
156 | + }) | |
157 | + }, | |
158 | + | |
159 | + // 获取输入框的值 | |
160 | + handleSetData(e) { | |
161 | + // 更新数据 | |
162 | + this.setData({ | |
163 | + dataLength: e.detail.value.length, | |
164 | + valueData: e.detail.value | |
165 | + }) | |
166 | + // 当输入框的值等于6时(发起支付等...) | |
167 | + if (e.detail.value.length === 6) { | |
168 | + // 通知用户输入数字达到6位数可以发送接口校验密码是否正确 | |
169 | + this.triggerEvent('initData', e.detail.value) | |
170 | + } | |
171 | + }, | |
172 | + | |
173 | + closeModal:function(){ | |
174 | + this.setData({ | |
175 | + showModal:false | |
176 | + }) | |
65 | 177 | } |
178 | + | |
66 | 179 | }) |
\ No newline at end of file | ... | ... |
1 | 1 | <view style="background:#f5f5f5;width:100%;height:1600rpx"> |
2 | 2 | |
3 | - <view class='card_rectangle_bg_row' style='padding:30rpx;flex-direction:column'> | |
4 | - <view style="flex-direction:row;padding-top:14rpx"> | |
3 | + <view style="height:26rpx"></view> | |
4 | + <view class='card_rectangle_bg_row' style='padding:26rpx;flex-direction:column'> | |
5 | + <view style="padding-top:10rpx"> | |
5 | 6 | <text style="font-size:28rpx;color:#333">到账银行卡:</text> |
6 | - <view style="float:right"> | |
7 | - <image src="/images/reward_point.png" style="width:64rpx;height:64rpx"></image> | |
8 | - <view style="font-size:30rpx;color:#333;line-height:64rpx">招商银行(9214)</view> | |
9 | - <image src="/images/arrow_right.png" style="width:64rpx;height:64rpx"></image> | |
7 | + <view wx:if="{{hasBind}}" style="display:flex;float:right"> | |
8 | + <image src="/images/reward_point.png" style="width:64rpx;height:64rpx;margin:0 14rpx"></image> | |
9 | + <view style="font-size:30rpx;color:#333;line-height:64rpx">招商银行(9214)</view> | |
10 | + <image hidden="{{true}}" src="/images/arrow_right.png" style="width:64rpx;height:64rpx"></image> | |
11 | + </view> | |
12 | + <view wx:else style="display:flex;float:right" bindtap="bindCard"> | |
13 | + <view style="font-size:30rpx;color: #FA4B4B;line-height:64rpx;margin-bottom:30rpx">未绑定银行卡</view> | |
14 | + <image src="/images/arrow_right.png" style="width:64rpx;height:64rpx"></image> | |
10 | 15 | </view> |
11 | 16 | </view> |
12 | - <view style="width:100%;float:right;margin-right:60rpx;font-size:28rpx;color:#333">2小时内到账</view> | |
17 | + <text wx:if="{{hasBind}}" style="text-align: right;margin-right:64rpx;font-size:28rpx;color:#999">2小时内到账</text> | |
18 | + <view style='background:#eee;height:1rpx;margin-top:14rpx'></view> | |
13 | 19 | <view style="font-size:28rpx;color:#999;line-height:96rpx">提现金额</view> |
14 | - <view></view> | |
20 | + <view style="height:112rpx;display:flex;align-items: center;"> | |
21 | + <text style="font-size:48rpx;color:#333;margin-right:6rpx">¥</text> | |
22 | + <input placeholder-class="placeholder_input_wrap" class="input_wrap" type="digit" maxlength="14" placeholder="当前余额{{cashNum}}元" value="{{inputNum}}" bindinput="getInput" /> | |
23 | + <image wx:if="{{inputNum&&inputNum>0}}" src="/images/clear.png" style="width:32rpx;height:32rpx;padding:36rpx" bindtap="clear"></image> | |
24 | + <text style="height:100%;font-size:30rpx;color: #357AEB;line-height:112rpx;margin: auto;" bindtap="cashAll">全部提现</text> | |
25 | + </view> | |
26 | + | |
27 | + <view wx:if="{{inputNum&&inputNum>cashNum}}"> | |
28 | + <view style='background:#eee;height:2rpx;margin:16rpx 0 26rpx 0'></view> | |
29 | + <view style="font-size:30rpx;color: #FA4B4B;line-height: 42rpx;">超过可提现金额</view> | |
30 | + </view> | |
31 | + | |
32 | + | |
15 | 33 | </view> |
16 | 34 | <view class="view_bottom"> |
17 | - <button wx:if="{true}" class="btn_white_radius" style="margin:20rpx" bindtap='cashout'> 提现</button> | |
18 | - <button wx:else class="btn_blue_radius" style="margin:20rpx" bindtap='goexchange'> 提现</button> | |
35 | + <button wx:if="{{hasBind}}" class="btn_blue_radius" style="margin:20rpx" bindtap='cashOut'> 提现</button> | |
36 | + <button wx:else class="btn_gray_radius" style="margin:20rpx"> 提现</button> | |
37 | + </view> | |
38 | + | |
39 | + <!-- 密码支付弹窗 --> | |
40 | + <view wx:if="{{showModal}}" class="mask"></view> | |
41 | + <view wx:if="{{showModal}}" class="modal_lg" style="padding:30rpx"> | |
42 | + <view style="width:100%;display:flex"> | |
43 | + <text style="font-size:36rpx;color:#333;width: 100%;text-align: center;">请输入支付密码</text> | |
44 | + <text style="font-size:36rpx;color:#333;float:right;width" bindtap='closeModal'>x</text> | |
45 | + </view> | |
46 | + <view style="font-size:28rpx;color:#999;margin-top:40rpx">提现</view> | |
47 | + <view style="font-size:54rpx;color:#333;margin-top:10rpx">300.00</view> | |
48 | + <view style="margin-top:30rpx;width: 100%;"> | |
49 | + <text style="font-size:28rpx;color:#333;float:left">服务费</text> | |
50 | + <text style="font-size:28rpx;color:#333;float:right">¥75.00</text> | |
51 | + </view> | |
52 | + <view style="margin-top:12rpx;width: 100%;"> | |
53 | + <text style="font-size:28rpx;color:#333;float:left">费率</text> | |
54 | + <text style="font-size:28rpx;color: #FA4B4B;float:right">25%</text> | |
55 | + </view> | |
56 | + | |
57 | + <view style="margin:26rpx 0;display:flex"> | |
58 | + <!-- <view wx:for="{{pwdList}}" wx:key="" wx:for-index="idx"> | |
59 | + | |
60 | + <input wx:if="{{idx==0}}" class="pwd_wrap_bg" length="1" type="number"></input> | |
61 | + <input wx:else class="pwd_wrap_bg b-l-n" length="1" type="number"></input> | |
62 | + </view> | |
63 | + </view> --> | |
64 | + | |
65 | + | |
66 | + | |
67 | + <!-- 模拟输入框 --> | |
68 | + <view class='pay-box {{focusType ? "focus-border" : ""}}' bindtap="handleFocus"> | |
69 | + <block wx:for="{{pwdList}}" wx:key="" wx:for-index="idx"> | |
70 | + <view class=' password-box' style='{{idx == 0 ? "":"border-left:none"}}'> | |
71 | + <view wx:if="{{(dataLength === item - 1)&& focusType}}" class="cursor"></view> | |
72 | + <view wx:if="{{dataLength >= item}}" class="input-black-dot"></view> | |
73 | + </view> | |
74 | + </block> | |
75 | + </view> | |
76 | + <!-- 隐藏input框 --> | |
77 | + <input focus="{{isFocus}}" maxlength="6" type="number" style="position:fixed;color:#fff;font-size:8rpx;height: 96rpx;padding-left: 2rpx;" bindinput="handleSetData" bindfocus="handleUseFocus" bindblur="handleUseFocus" /> | |
78 | + </view> | |
19 | 79 | </view> |
20 | 80 | </view> |
\ No newline at end of file | ... | ... |
... | ... | @@ -8,6 +8,17 @@ |
8 | 8 | flex-direction: row; |
9 | 9 | } |
10 | 10 | |
11 | +.placeholder_input_wrap{ | |
12 | + color:#ccc; | |
13 | + font-size:30rpx; | |
14 | +} | |
15 | + | |
16 | +.input_wrap{ | |
17 | + width:356rpx; | |
18 | + color:#333; | |
19 | + font-size:56rpx; | |
20 | +} | |
21 | + | |
11 | 22 | .btn_blue_radius { |
12 | 23 | background: #357aeb; |
13 | 24 | border-radius: 5px; |
... | ... | @@ -15,11 +26,107 @@ |
15 | 26 | color: #fff; |
16 | 27 | } |
17 | 28 | |
18 | -.btn_white_radius { | |
29 | +.btn_gray_radius { | |
19 | 30 | flex: 1; |
20 | 31 | height: 42px; |
21 | - background: #FFFFFF; | |
32 | + background: #D0D0D0; | |
22 | 33 | border-radius: 5px; |
23 | - border: 1px solid #EEEEEE; | |
24 | - color: #666666; | |
25 | -} | |
\ No newline at end of file | ||
34 | + color: #999; | |
35 | +} | |
36 | + | |
37 | +/* 遮罩层 */ | |
38 | + | |
39 | +.mask { | |
40 | + width: 100%; | |
41 | + height: 100%; | |
42 | + position: fixed; | |
43 | + top: 0; | |
44 | + left: 0; | |
45 | + background: #000; | |
46 | + opacity: 0.7; | |
47 | + z-index: 10; | |
48 | +} | |
49 | + | |
50 | +.modal_lg { | |
51 | + width: 80%; | |
52 | + position: fixed; | |
53 | + left: 0; | |
54 | + right: 0; | |
55 | + margin: 0 auto; | |
56 | + background-color: #fff; | |
57 | + border-radius: 16rpx; | |
58 | + display: flex; | |
59 | + flex-direction: column; | |
60 | + align-items: center; | |
61 | + top: 180rpx; | |
62 | + z-index: 10; | |
63 | +} | |
64 | + | |
65 | + | |
66 | +.pwd_wrap_bg{ | |
67 | + width: 96rpx; | |
68 | + height: 96rpx; | |
69 | + background: #FFFFFF; | |
70 | + border: 1px solid #E5E5E5; | |
71 | + text-align: center; | |
72 | + font-size: 50rpx; | |
73 | + | |
74 | +} | |
75 | + | |
76 | +.b-l-n { | |
77 | + border-left: none; | |
78 | +} | |
79 | + | |
80 | +.pay-box { | |
81 | + margin: 0 auto; | |
82 | + display: flex; | |
83 | + flex-direction: row; | |
84 | + background: #FFFFFF; | |
85 | + width: 582rpx; | |
86 | + height: 96rpx; | |
87 | +} | |
88 | + | |
89 | +/* 支付密码框聚焦的时候 */ | |
90 | + | |
91 | +.focus-border { | |
92 | + border-color: #E5E5E5; | |
93 | +} | |
94 | + | |
95 | +/* 单个格式样式(聚焦的时候) */ | |
96 | +.password-box { | |
97 | + flex: 1; | |
98 | + border: 1px solid #E5E5E5; | |
99 | + display: flex; | |
100 | + align-items: center; | |
101 | + justify-content: center; | |
102 | +} | |
103 | + | |
104 | +/* 模拟光标 */ | |
105 | + | |
106 | +.cursor { | |
107 | + width: 2rpx; | |
108 | + height: 36rpx; | |
109 | + background-color: #333; | |
110 | + animation: focus 1.2s infinite; | |
111 | +} | |
112 | + | |
113 | +/* 光标动画 */ | |
114 | + | |
115 | +@keyframes focus { | |
116 | + from { | |
117 | + opacity: 1; | |
118 | + } | |
119 | + | |
120 | + to { | |
121 | + opacity: 0; | |
122 | + } | |
123 | +} | |
124 | + | |
125 | +/* 模拟输入的password的黑点 */ | |
126 | + | |
127 | +.input-black-dot { | |
128 | + width: 24rpx; | |
129 | + height: 24rpx; | |
130 | + background-color: #000; | |
131 | + border-radius: 50%; | |
132 | +} | ... | ... |
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | <view class="text_gray_32">积分明细</view> |
12 | 12 | </view> |
13 | 13 | |
14 | -<view wx:if="{true}" wx:for="{'',''}" style="background:#fff;width:100%;height:140rpx"> | |
14 | +<view wx:if="{true}" wx:for="{{cashList}}" style="background:#fff;width:100%;height:140rpx"> | |
15 | 15 | <view style='background:#f5f5f5;height:2rpx;'></view> |
16 | 16 | <view style="margin:26rpx 40rpx"> |
17 | 17 | <view style="float:left;display:flex;flex-direction:column;"> | ... | ... |
请
注册
或
登录
后发表评论