Commit 63ac30e4886adf5946d8463534711c924f6dd4fb
合并会员权益
Showing
30 changed files
with
4796 additions
and
512 deletions
app.json
... | ... | @@ -69,8 +69,11 @@ |
69 | 69 | "pages/user/user_fw/user_fw", |
70 | 70 | "pages/user/user_coupon/user_coupon", |
71 | 71 | "pages/user/grow_value/grow_value", |
72 | - "pages/payment/pay_success/pay_success" | |
72 | + "pages/payment/pay_success/pay_success", | |
73 | 73 | |
74 | + "pages/user/plus/plus", | |
75 | + "pages/user/cardinfo/cardinfo" | |
76 | + | |
74 | 77 | ], |
75 | 78 | "permission": { |
76 | 79 | "scope.userLocation": { | ... | ... |
app.wxss
... | ... | @@ -145,6 +145,12 @@ justify-content:flex-start; |
145 | 145 | align-items:center; |
146 | 146 | } |
147 | 147 | .flex{display: flex} |
148 | +.ai-center{ | |
149 | + align-items: center; | |
150 | +} | |
151 | +.jc-center{ | |
152 | + justify-content: center; | |
153 | +} | |
148 | 154 | /* 水平左对齐 */ |
149 | 155 | .flex-level-left{ |
150 | 156 | display:flex; |
... | ... | @@ -262,29 +268,7 @@ justify-content:space-around; |
262 | 268 | font-style: normal; |
263 | 269 | } |
264 | 270 | |
265 | -.fs22{ | |
266 | - font-size: 22rpx; | |
267 | -} | |
268 | - | |
269 | -.fs26{ | |
270 | - font-size: 26rpx; | |
271 | -} | |
272 | - | |
273 | - | |
274 | -.fs30{ | |
275 | - font-size:30rpx; | |
276 | -} | |
277 | - | |
278 | 271 | |
279 | -.fs35{ | |
280 | - font-size:35rpx; | |
281 | -} | |
282 | -.fs45{ | |
283 | - font-size: 45rpx; | |
284 | -} | |
285 | -.fs50{ | |
286 | - font-size: 50rpx; | |
287 | -} | |
288 | 272 | |
289 | 273 | |
290 | 274 | /* 7.26 */ |
... | ... | @@ -356,19 +340,33 @@ position: fixed; |
356 | 340 | background: #ffe3e2; |
357 | 341 | |
358 | 342 | } |
359 | -.fs32{ | |
360 | - font-size:32rpx; | |
361 | -} | |
362 | -.fs60{ font-size:60rpx;} | |
363 | -.fs28{ | |
364 | - font-size: 28rpx; | |
365 | -} | |
366 | 343 | .fs20{ |
367 | 344 | font-size: 20rpx; |
368 | 345 | } |
346 | +.fs22{ | |
347 | + font-size: 22rpx; | |
348 | +} | |
369 | 349 | .fs24{ |
370 | 350 | font-size: 24rpx; |
371 | 351 | } |
352 | + | |
353 | +.fs26{ | |
354 | + font-size: 26rpx; | |
355 | +} | |
356 | +.fs28{ | |
357 | + font-size: 28rpx; | |
358 | +} | |
359 | + | |
360 | +.fs30{ | |
361 | + font-size:30rpx; | |
362 | +} | |
363 | +.fs32{ | |
364 | + font-size:32rpx; | |
365 | +} | |
366 | + | |
367 | +.fs35{ | |
368 | + font-size:35rpx; | |
369 | +} | |
372 | 370 | .fs36 { |
373 | 371 | font-size: 36rpx; |
374 | 372 | } |
... | ... | @@ -378,6 +376,13 @@ background: #ffe3e2; |
378 | 376 | .ai_end{ |
379 | 377 | align-items: flex-end; |
380 | 378 | } |
379 | +.fs45{ | |
380 | + font-size: 45rpx; | |
381 | +} | |
382 | +.fs50{ | |
383 | + font-size: 50rpx; | |
384 | +} | |
385 | +.fs60{ font-size:60rpx;} | |
381 | 386 | .flex-wrap{ |
382 | 387 | flex-wrap:wrap; |
383 | 388 | } |
384 | 389 | \ No newline at end of file | ... | ... |
images/share/mackground.png
0 → 100644
10.4 KB
pages/getphone/getphone.js
... | ... | @@ -4,6 +4,13 @@ Page({ |
4 | 4 | store:null, |
5 | 5 | imghots: os.imghost, |
6 | 6 | }, |
7 | + | |
8 | + onLoad: function (options) { | |
9 | + //--判断是否有接受到邀请人的ID-- | |
10 | + if(options.first_leader){ | |
11 | + this.setData({first_leader:options.first_leader}); | |
12 | + } | |
13 | + }, | |
7 | 14 | onShow:function(){ |
8 | 15 | var th=this,app = getApp(); |
9 | 16 | var sessionKey = getApp().globalData.sessionKey; |
... | ... | @@ -16,11 +23,8 @@ Page({ |
16 | 23 | wx.navigateTo({ url: '/pages/togoin/togoin', }) |
17 | 24 | return false; |
18 | 25 | } |
19 | - | |
20 | 26 | var user_info=getApp().globalData.userInfo; |
21 | - | |
22 | 27 | console.log("getphone"); |
23 | - console.log(user_info); | |
24 | 28 | |
25 | 29 | if(user_info!=null && user_info.mobile!=undefined && user_info.mobile!="" && user_info.mobile!=null){ |
26 | 30 | wx.navigateBack({ |
... | ... | @@ -72,6 +76,11 @@ Page({ |
72 | 76 | iv: e.iv, |
73 | 77 | store_id: getApp().globalData.setting.stoid, |
74 | 78 | }; |
79 | + //--如果有邀请人的时候-- | |
80 | + if(th.data.first_leader){ | |
81 | + dd.first_leader=th.data.first_leader; | |
82 | + } | |
83 | + | |
75 | 84 | console.log(dd); |
76 | 85 | app.request.get("/api/weshop/users/thirdLogin", { |
77 | 86 | data: dd, | ... | ... |
pages/user/Change_phone/Change_phone.js
0 → 100644
1 | +var a = getApp(), | |
2 | + o = a.globalData, | |
3 | + r = a.globalData.setting, | |
4 | + t = a.request, | |
5 | + s = require("../../../utils/common.js"), | |
6 | + util = require("../../../utils/util.js"); | |
7 | +Page({ | |
8 | + | |
9 | + /** | |
10 | + * 页面的初始数据 | |
11 | + */ | |
12 | + data: { | |
13 | + iurl: r.imghost, | |
14 | + inputxphone: 0, | |
15 | + mobile: 17359580658, //旧手机号码 | |
16 | + currentTime: "", //验证码发送倒计时 | |
17 | + getvcode: "获取验证码", | |
18 | + wxopenid: "2", | |
19 | + isver: 0, //是否有发送验证码 | |
20 | + code: "", //验证码 | |
21 | + url: "", //确认更换手机号码跳转路径 | |
22 | + change_phone: "", //新手机号码 | |
23 | + }, | |
24 | + /** | |
25 | + * 生命周期函数--监听页面加载 | |
26 | + */ | |
27 | + onLoad: function(options) { | |
28 | + this.setData({ | |
29 | + // mobile: options.mobile, | |
30 | + //wxOpneId: options.openid | |
31 | + }) | |
32 | + }, | |
33 | + //获取手机验证码 | |
34 | + Ver_phone: function() { | |
35 | + var th = this; | |
36 | + var mobile = th.data.mobile; | |
37 | + var wxopenid = th.data.wxopenid; | |
38 | + var change_phone = th.data.change_phone; | |
39 | + var isver = th.data.isver; | |
40 | + console.log("iiiiiiiiiiiiii" + change_phone + mobile); | |
41 | + var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/; | |
42 | + if (mobile.length < 11) { | |
43 | + getApp().my_warnning("请输入11位的手机号码", 0, th); | |
44 | + } else if (!myreg.test(mobile)) { | |
45 | + getApp().my_warnning("手机号有误", 0, th); | |
46 | + return false; | |
47 | + } | |
48 | + if (change_phone == mobile) { | |
49 | + getApp().my_warnning("新手机号码和旧手机号码不能一样", 0, th); | |
50 | + return false; | |
51 | + } | |
52 | + if (change_phone != "") { | |
53 | + mobile = change_phone; | |
54 | + } | |
55 | + if (isver == 0) { | |
56 | + th.setData({ | |
57 | + isver: 1 | |
58 | + }) | |
59 | + } else { | |
60 | + return false | |
61 | + } | |
62 | + getApp().request.post("/api/weshop/smslog/sendsms", { | |
63 | + data: { | |
64 | + store_id: r.stoid, | |
65 | + scene: 1, //发送类型(1短信 2语音) | |
66 | + mobile: mobile, | |
67 | + wxopenid: wxopenid | |
68 | + }, | |
69 | + success: function(res) { | |
70 | + if (res.data.code == 0) { | |
71 | + th.setData({ | |
72 | + isver: 0, | |
73 | + getvcode: 60, | |
74 | + currentTime: setInterval(th.gettime, 1000), | |
75 | + }) | |
76 | + } else { | |
77 | + getApp().my_warnning(res.data.msg, 0, th); | |
78 | + th.setData({ | |
79 | + isver: 0, | |
80 | + getvcode: "重新获取" | |
81 | + }) | |
82 | + return false; | |
83 | + } | |
84 | + } | |
85 | + }) | |
86 | + | |
87 | + }, | |
88 | + gettime: function() { | |
89 | + var that = this; | |
90 | + if (that.data.getvcode == 1) { | |
91 | + //清除js定时器 | |
92 | + clearInterval(that.data.currentTime); | |
93 | + that.setData({ | |
94 | + getvcode: "重新获取", | |
95 | + }); | |
96 | + } else { | |
97 | + that.setData({ | |
98 | + getvcode: --that.data.getvcode, | |
99 | + }); | |
100 | + } | |
101 | + }, | |
102 | + change_phone: function() { | |
103 | + var th = this; | |
104 | + var code = th.data.code; | |
105 | + var mobile = th.data.mobile; | |
106 | + if (th.ver_code() == false) return false; | |
107 | + getApp().request.put("/api/weshop/users/updateMobile/" + r.stoid + '/' + o.user_id + '/' + code + '/' + mobile, { | |
108 | + success: function(res) { | |
109 | + if (res.data.code == 0) { | |
110 | + getApp().my_warnning("更换成功", 0, th); | |
111 | + // th.setData({ | |
112 | + // url: "/pages/user/userinfo/userinfo?change_phone" + change_phone | |
113 | + // }) | |
114 | + } else { | |
115 | + getApp().my_warnning("更换失败", 0, th); | |
116 | + return false; | |
117 | + } | |
118 | + } | |
119 | + }) | |
120 | + | |
121 | + }, | |
122 | + //判断验证码是否正确 | |
123 | + ver_code: function(e) { | |
124 | + var th = this; | |
125 | + var code = th.data.code, | |
126 | + mobile = th.data.mobile, | |
127 | + wxopenid = th.data.wxopenid, | |
128 | + getvcode = th.data.getvcode, | |
129 | + chang_phone = th.data.change_phone; | |
130 | + if (code.length < 3 && code == "") { | |
131 | + getApp().my_warnning("请输入正确的验证码", 0, th); | |
132 | + return false; | |
133 | + } else if (getvcode.length<3){ | |
134 | + getApp().my_warnning("验证超时", 0, th); | |
135 | + return false; | |
136 | + }else { | |
137 | + getApp().request.put("/api/weshop/users/updateMobileFirst/" + r.stoid + '/' + o.user_id + '/' + code, { | |
138 | + success: function(res) { | |
139 | + if (res.data.code == 0) { | |
140 | + th.setData({ | |
141 | + inputxphone: 1, | |
142 | + getvcode: "获取验证码", | |
143 | + code: "" | |
144 | + }) | |
145 | + clearInterval(th.data.currentTime); | |
146 | + } else { | |
147 | + getApp().my_warnning(res.data.msg, 0, th); | |
148 | + return false; | |
149 | + } | |
150 | + } | |
151 | + }) | |
152 | + } | |
153 | + }, | |
154 | + getCodeValue: function(e) { | |
155 | + this.setData({ | |
156 | + code: e.detail.value | |
157 | + }) | |
158 | + }, | |
159 | + getphoneValue: function(e) { | |
160 | + var th = this; | |
161 | + th.setData({ | |
162 | + change_phone: e.detail.value, | |
163 | + }) | |
164 | + }, | |
165 | + /** | |
166 | + * 生命周期函数--监听页面初次渲染完成 | |
167 | + */ | |
168 | + onReady: function() { | |
169 | + | |
170 | + }, | |
171 | + | |
172 | + /** | |
173 | + * 生命周期函数--监听页面显示 | |
174 | + */ | |
175 | + onShow: function() { | |
176 | + | |
177 | + }, | |
178 | + | |
179 | + /** | |
180 | + * 生命周期函数--监听页面隐藏 | |
181 | + */ | |
182 | + onHide: function() { | |
183 | + | |
184 | + }, | |
185 | + | |
186 | + /** | |
187 | + * 生命周期函数--监听页面卸载 | |
188 | + */ | |
189 | + onUnload: function() { | |
190 | + | |
191 | + }, | |
192 | + | |
193 | + /** | |
194 | + * 页面相关事件处理函数--监听用户下拉动作 | |
195 | + */ | |
196 | + onPullDownRefresh: function() { | |
197 | + | |
198 | + }, | |
199 | + | |
200 | + /** | |
201 | + * 页面上拉触底事件的处理函数 | |
202 | + */ | |
203 | + onReachBottom: function() { | |
204 | + | |
205 | + }, | |
206 | + | |
207 | + /** | |
208 | + * 用户点击右上角分享 | |
209 | + */ | |
210 | + onShareAppMessage: function() { | |
211 | + | |
212 | + } | |
213 | +}) | |
0 | 214 | \ No newline at end of file | ... | ... |
pages/user/Change_phone/Change_phone.json
0 → 100644
pages/user/Change_phone/Change_phone.wxml
0 → 100644
1 | +<view class="container"> | |
2 | + <!-- 手机logo --> | |
3 | + <view class="flex-center phone_logo"> | |
4 | + <image src="{{iurl}}/miniapp/images/userinfo/phone_logo.png"></image> | |
5 | + </view> | |
6 | + | |
7 | + <view class="fs30"> | |
8 | + <!-- 手机号码 --> | |
9 | + <view class="flex-vertical phone"> | |
10 | + <image src="{{iurl}}/miniapp/images/userinfo/phone.png"></image> | |
11 | + <block wx:if="{{inputxphone==0}}"> | |
12 | + <view class="inphone">{{mobile}}</view> | |
13 | + </block> | |
14 | + <block wx:else> | |
15 | + <input bindblur="getphoneValue" class="inphone" placeholder="输入新手机号" type="number" maxlength="11" value="{{change_phone}}"/> | |
16 | + </block> | |
17 | + </view> | |
18 | + | |
19 | + <!-- 发送手机验证码 --> | |
20 | + <view class="flex-vertical code"> | |
21 | + <image src="{{iurl}}/miniapp/images/userinfo/code.png"></image> | |
22 | + <input placeholder="请输入验证码" bindinput="getCodeValue" type="number" maxlength="6" value="{{code}}" /> | |
23 | + <view class="flex-center Obtain"> | |
24 | + <block wx:if="{{getvcode.length>3}}"> | |
25 | + <view bindtap="Ver_phone">{{getvcode}}</view> | |
26 | + </block> | |
27 | + <block wx:else> | |
28 | + <view>{{getvcode}}s</view> | |
29 | + </block> | |
30 | + </view> | |
31 | + </view> | |
32 | + </view> | |
33 | + | |
34 | + <!-- 提示语 --> | |
35 | + <view class="Tips fs28"> | |
36 | + <view>温馨提示:</view> | |
37 | + <view>1.更换手机号后下次可使用新手机号登录。 | |
38 | + </view> | |
39 | + <view>2.为保障数据安全,如遇旧手机遗失可联系商家进行解绑。 | |
40 | + </view> | |
41 | + <view>3.收到验证码而非本人操作时请及时更改密码。 | |
42 | + </view> | |
43 | + </view> | |
44 | + | |
45 | + <view class="flex-center go fs32"> | |
46 | + <block wx:if="{{inputxphone==0}}"> | |
47 | + <view class="flex-center lower" bindtap="ver_code"> | |
48 | + <view>下一步</view> | |
49 | + </view> | |
50 | + </block> | |
51 | + <block wx:else> | |
52 | + <navigator url="{{url}}" class="flex-center lower" bindtap="change_phone"> | |
53 | + <view>确定更换</view> | |
54 | + </navigator> | |
55 | + </block> | |
56 | + </view> | |
57 | + | |
58 | + | |
59 | +</view> | |
60 | +<warn id="warn"></warn> | |
0 | 61 | \ No newline at end of file | ... | ... |
pages/user/Change_phone/Change_phone.wxss
0 → 100644
1 | +page { | |
2 | + height: 100%; | |
3 | +} | |
4 | + | |
5 | +.container { | |
6 | + padding: 0rpx 55rpx; | |
7 | + border-top: 6rpx solid rgb(245, 245, 245); | |
8 | +} | |
9 | + | |
10 | +.phone_logo { | |
11 | + height: 400rpx; | |
12 | +} | |
13 | + | |
14 | +.phone_logo image { | |
15 | + width: 145rpx; | |
16 | + height: 230rpx; | |
17 | +} | |
18 | + | |
19 | +.phone,.code{ | |
20 | + border-bottom: 2rpx solid rgb(234, 234, 234); | |
21 | + height: 95rpx; | |
22 | +} | |
23 | + | |
24 | +.phone image { | |
25 | + width: 60rpx; | |
26 | + height: 60rpx; | |
27 | +} | |
28 | + | |
29 | +.phone .inphone { | |
30 | + margin-left: 50rpx; | |
31 | + color: rgb(153, 153, 153); | |
32 | +} | |
33 | + | |
34 | +.code image { | |
35 | + width: 70rpx; | |
36 | + height: 60rpx; | |
37 | +} | |
38 | + | |
39 | +.code input { | |
40 | + margin-left: 50rpx; | |
41 | + color: rgb(153, 153, 153); | |
42 | +} | |
43 | + | |
44 | +.code .Obtain { | |
45 | + width: 250rpx; | |
46 | + height: 60rpx; | |
47 | + border-left: 2rpx solid rgb(234, 234, 234); | |
48 | +} | |
49 | + | |
50 | +.phone, .code, .Tips { | |
51 | + padding-left: 30rpx; | |
52 | +} | |
53 | + | |
54 | +.Tips { | |
55 | + margin-top: 50rpx; | |
56 | + line-height: 50rpx; | |
57 | + color: rgb(153, 153, 153); | |
58 | +} | |
59 | + | |
60 | +.go { | |
61 | + width: 100%; | |
62 | + margin-top: 90rpx; | |
63 | +} | |
64 | + | |
65 | +.lower { | |
66 | + width: 430rpx; | |
67 | + height: 75rpx; | |
68 | + background-color: rgb(214, 1, 33); | |
69 | + border-radius: 40rpx; | |
70 | + color: rgb(255, 255, 255); | |
71 | +} | ... | ... |
pages/user/Detailed/Detailed.js
0 → 100644
1 | +var t = getApp(), | |
2 | + r = t.globalData, | |
3 | + a = t.request, | |
4 | + o = t.globalData.setting, | |
5 | + os = o, | |
6 | + i = require("../../../utils/util.js"), | |
7 | + ut = i, | |
8 | + s = require("../../../utils/common.js"); | |
9 | + | |
10 | +Page({ | |
11 | + /** | |
12 | + * 页面的初始数据 | |
13 | + */ | |
14 | + data: { | |
15 | + url: o.imghost, | |
16 | + arrayDetailed: [],//明细数组 | |
17 | + page: 1, | |
18 | + pageSize: 20, | |
19 | + isDetailed: 0, | |
20 | + total: 0, | |
21 | + ismore: 0,//数据是否加载完毕 | |
22 | + screenWidth:0, | |
23 | + | |
24 | + head_pic:"",//会员头像 | |
25 | + img_money:"",//缓存VIP的图片 | |
26 | + img_Ancrown:"",//会员权益 | |
27 | + img_Identification:"",//缓存标识的图片 | |
28 | + img_square:"",//缓存方块的图片 | |
29 | + privilege_o:"",//卡的勋章图 | |
30 | + bas_ming:"", //卡的图片 | |
31 | + big_card:null, //最大卡的信息 | |
32 | + | |
33 | + imagePath:"", //分享的生成图片 | |
34 | + | |
35 | + canvasHidden:true, | |
36 | + }, | |
37 | + | |
38 | + /** | |
39 | + * 生命周期函数--监听页面加载 | |
40 | + */ | |
41 | + onLoad: function(options) { | |
42 | + var ee=this; | |
43 | + var img_money = this.data.url + "/miniapp/images/plus/share/money.png"; | |
44 | + var img_Ancrown = this.data.url + "/miniapp/images/plus/share/Ancrown.png"; | |
45 | + var img_Identification = this.data.url + "/miniapp/images/plus/share/Identification.png"; | |
46 | + var img_square = this.data.url + "/miniapp/images/plus/share/square.png"; | |
47 | + var privilege_o = this.data.url + "/miniapp/images/plus/share/privilege_o.png"; | |
48 | + var user=getApp().globalData.userInfo; | |
49 | + //--获取用户设备信息,屏幕宽度-- | |
50 | + wx.getSystemInfo({ | |
51 | + success: res => { | |
52 | + ee.data.screenWidth=res.screenWidth; | |
53 | + } | |
54 | + }) | |
55 | + | |
56 | + //--------------------缓存vip价格的图片--------------- | |
57 | + wx.getImageInfo({ | |
58 | + src:img_money, | |
59 | + success: function (res) { | |
60 | + //回调写法 | |
61 | + var img_money = res.path; | |
62 | + ee.setData({ img_money: img_money}); | |
63 | + } | |
64 | + }) | |
65 | + //--------------------缓存权益的图片--------------- | |
66 | + wx.getImageInfo({ | |
67 | + src: img_Ancrown, | |
68 | + success: function (res) { | |
69 | + //回调写法 | |
70 | + var img_Ancrown = res.path; | |
71 | + ee.setData({ img_Ancrown: img_Ancrown }); | |
72 | + } | |
73 | + }) | |
74 | + //--------------------缓存标识的图片--------------- | |
75 | + wx.getImageInfo({ | |
76 | + src: img_Identification, | |
77 | + success: function (res) { | |
78 | + //回调写法 | |
79 | + var img_Identification = res.path; | |
80 | + ee.setData({ img_Identification: img_Identification }); | |
81 | + } | |
82 | + }) | |
83 | + | |
84 | + //--------------------卡的勋章--------------- | |
85 | + wx.getImageInfo({ | |
86 | + src: privilege_o, | |
87 | + success: function (res) { | |
88 | + //回调写法 | |
89 | + var privilege_o = res.path; | |
90 | + ee.setData({ privilege_o: privilege_o }); | |
91 | + } | |
92 | + }) | |
93 | + | |
94 | + //--------------------方块图--------------- | |
95 | + wx.getImageInfo({ | |
96 | + src: img_square, | |
97 | + success: function (res) { | |
98 | + //回调写法 | |
99 | + var img_square = res.path; | |
100 | + ee.setData({ img_square: img_square}); | |
101 | + } | |
102 | + }) | |
103 | + | |
104 | + //-----------获取最大值的卡-------------- | |
105 | + ee.getPlusCardType(); | |
106 | + | |
107 | + }, | |
108 | + | |
109 | + selectDetailed: function() { | |
110 | + var th = this, e = th; | |
111 | + getApp().request.promiseGet("/api/weshop/plus/vip/mem/referee/page", { | |
112 | + data: { | |
113 | + storeId: o.stoid, | |
114 | + userId: r.user_id, | |
115 | + page: th.data.page, | |
116 | + pageSize: th.data.pageSize | |
117 | + } | |
118 | + }).then(res => { | |
119 | + | |
120 | + th.setData({isDetailed:1}) | |
121 | + if(res.data.code==0 && res.data.data.pageData && res.data.data.pageData.length>0) { | |
122 | + th.data.page++;//当前页数+1 | |
123 | + var arr1 = th.data.arrayDetailed;//获取明细数组 | |
124 | + var arr2 = res.data.data.pageData;//获取当前查询数据 | |
125 | + var arr3 = [...arr1, ...arr2];//把当前查询数组拼接到原本数组后面 | |
126 | + var ismore = 0; | |
127 | + if (arr3.length == res.data.data.total) ismore = 1 //数据已加载完判断 | |
128 | + th.setData({ | |
129 | + arrayDetailed: arr3, | |
130 | + total: res.data.data.total, | |
131 | + ismore: ismore, | |
132 | + isDetailed: 1 | |
133 | + }) | |
134 | + } | |
135 | + }) | |
136 | + | |
137 | + }, | |
138 | + /** | |
139 | + * 生命周期函数--监听页面初次渲染完成 | |
140 | + */ | |
141 | + onReady: function() { | |
142 | + | |
143 | + }, | |
144 | + | |
145 | + /** | |
146 | + * 生命周期函数--监听页面显示 | |
147 | + */ | |
148 | + onShow: function() { | |
149 | + this.selectDetailed(); | |
150 | + }, | |
151 | + /** | |
152 | + * 页面上拉触底事件的处理函数 | |
153 | + */ | |
154 | + onReachBottom: function() { | |
155 | + | |
156 | + if (this.data.total <= this.data.pageSize) return; | |
157 | + if (this.data.ismore) { | |
158 | + t.my_warnning("加载完啦!", 0, this); | |
159 | + return | |
160 | + }; | |
161 | + this.selectDetailed(); | |
162 | + }, | |
163 | + | |
164 | + | |
165 | + saveImageToPhotosAlbum: function () { | |
166 | + if (this.data.imagePath != "") { | |
167 | + wx.previewImage({ urls: [this.data.imagePath], }) | |
168 | + return; | |
169 | + } | |
170 | + | |
171 | + this.data.is_loading=1; | |
172 | + wx.showLoading({ title: '生成中...',}) | |
173 | + | |
174 | + var th = this; | |
175 | + | |
176 | + //设置画板显示,才能开始绘图 | |
177 | + var card_ming=th.data.bas_ming;//卡的图片 | |
178 | + var big_card= th.data.big_card;//获取最大的卡 | |
179 | + var user_head = th.data.head_pic;//会员头像 | |
180 | + var img_money = th.data.img_money;//缓存vip的价格 | |
181 | + var img_Ancrown = th.data.img_Ancrown;//会员权益的图片 | |
182 | + var img_Identification = th.data.img_Identification;//会员标识 | |
183 | + var privilege_o = th.data.privilege_o;//勋章图片 | |
184 | + var img_square=th.data.img_square; | |
185 | + var app = getApp(); | |
186 | + var user=app.globalData.userInfo; | |
187 | + var unit = th.data.screenWidth / 750 * 1.35; | |
188 | + var scene = getApp().globalData.user_id; | |
189 | + | |
190 | + //---二微码--- | |
191 | + var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + | |
192 | + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/user/index/index"; | |
193 | + | |
194 | + wx.getImageInfo({ | |
195 | + src: path3, | |
196 | + success: function (res) { | |
197 | + th.get_head_temp(function(){ | |
198 | + var vpath=res.path; | |
199 | + th.setData({ canvasHidden: false }) | |
200 | + //开启画布 | |
201 | + const ctx = wx.createCanvasContext('myCanvas'); | |
202 | + //先画背景 | |
203 | + ctx.drawImage("../../../images/share/mackground.png", 0, 0, 554 * unit, 930 * unit); | |
204 | + ctx.setFontSize(26 * unit); | |
205 | + ctx.setFillStyle("rgb(0,0,0)"); | |
206 | + ctx.fillText(user.nickname, 155 * unit, 75 * unit, 200 * unit); | |
207 | + | |
208 | + var tj_path = "../../../images/share/q_tj.png"; | |
209 | + ctx.drawImage(tj_path, 385 * unit, 45 * unit, 90 * unit, 30 * unit); | |
210 | + ctx.setFontSize(18 * unit); | |
211 | + ctx.setFillStyle("rgb(255,255,255)"); | |
212 | + ctx.fillText("强烈推荐", 394 * unit, 65 * unit); | |
213 | + | |
214 | + ctx.setStrokeStyle("rgb(255,255,255)"); | |
215 | + ctx.setLineDash([5 * unit, 5 * unit], 5 * unit); | |
216 | + ctx.beginPath(); | |
217 | + ctx.moveTo(0, 125 * unit); | |
218 | + ctx.lineTo(554 * unit, 125 * unit); | |
219 | + ctx.stroke(); | |
220 | + | |
221 | + var x = 55 * unit, y = 165 * unit,w = 444 * unit, h = 220 * unit,r = 14 * unit; | |
222 | + ut.draw_randon_rect(ctx,x,y,r,w,h); | |
223 | + ctx.clip(); //一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 | |
224 | + ctx.drawImage(card_ming, x, y, 444 * unit, 220 * unit); // 推进去图片 | |
225 | + ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制 | |
226 | + | |
227 | + ctx.beginPath(); | |
228 | + // 卡图片 | |
229 | + // ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,); | |
230 | + ctx.setFontSize(26 * unit); | |
231 | + ctx.setFillStyle('rgb(218,194,169)'); | |
232 | + ctx.fillText(big_card.CardName, 80 * unit, 215 * unit); | |
233 | + ctx.setFontSize(18 * unit); | |
234 | + ctx.setFillStyle('rgb(218,194,169)'); | |
235 | + ctx.fillText("开通会员年卡仅" + big_card.CardFee+"元", 80 * unit, 240 * unit); | |
236 | + | |
237 | + ctx.drawImage(privilege_o, 80 * unit, 343 * unit, 20 * unit, 20 * unit); | |
238 | + | |
239 | + ctx.setFontSize(14 * unit); | |
240 | + ctx.setFillStyle('rgb(218,194,169)'); | |
241 | + ctx.fillText("根据大家购买数据,您成为超级会员预计可省¥3031元", 105 * unit, 360 * unit); | |
242 | + | |
243 | + ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit); | |
244 | + ctx.setFillStyle('rgb(218,194,169)'); | |
245 | + ctx.fill(); | |
246 | + | |
247 | + ctx.drawImage(img_square, 267 * unit, 420 * unit, 13 * unit, 13 * unit); | |
248 | + | |
249 | + ctx.beginPath(); | |
250 | + ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit); | |
251 | + ctx.setFillStyle('rgb(218,194,169)'); | |
252 | + ctx.fill(); | |
253 | + | |
254 | + ctx.drawImage(img_square, 80 * unit, 470 * unit, 10 * unit, 10 * unit); | |
255 | + ctx.setFontSize(24 * unit); | |
256 | + ctx.setFillStyle("rgb(198,165,126)"); | |
257 | + ctx.fillText("超级VIP权益", 100 * unit, 475 * unit); | |
258 | + | |
259 | + ctx.setFontSize(20 * unit); | |
260 | + ctx.setFillStyle("rgb(198,165,126)"); | |
261 | + ctx.fillText("超级会员专属权益", 100 * unit, 505 * unit); | |
262 | + ctx.drawImage(img_Ancrown, 355 * unit, 440 * unit, 65 * unit, 65 * unit); | |
263 | + | |
264 | + ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit) | |
265 | + ctx.setFillStyle('rgb(218,194,169)') | |
266 | + ctx.fill(); | |
267 | + | |
268 | + ctx.drawImage(img_square, 80 * unit, 575 * unit, 10 * unit, 10 * unit); | |
269 | + ctx.setFontSize(24 * unit); | |
270 | + ctx.setFillStyle("rgb(198,165,126)"); | |
271 | + ctx.fillText("超级VIP标识", 100 * unit, 580 * unit); | |
272 | + | |
273 | + ctx.setFontSize(20 * unit); | |
274 | + ctx.setFillStyle("rgb(198,165,126)"); | |
275 | + ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit); | |
276 | + ctx.drawImage(img_Identification, 355 * unit, 548 * unit, 65 * unit, 65 * unit); | |
277 | + | |
278 | + ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit); | |
279 | + ctx.setFillStyle('rgb(218,194,169)'); | |
280 | + ctx.fill(); | |
281 | + | |
282 | + ctx.drawImage(img_square, 80 * unit, 695 * unit, 10 * unit, 10 * unit); | |
283 | + ctx.setFontSize(24 * unit); | |
284 | + ctx.setFillStyle("rgb(198,165,126)"); | |
285 | + ctx.fillText("超级VIP价格", 100 * unit, 695 * unit); | |
286 | + | |
287 | + ctx.setFontSize(20 * unit); | |
288 | + ctx.setFillStyle("rgb(198,165,126)"); | |
289 | + ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit); | |
290 | + ctx.drawImage(img_money, 355 * unit, 660 * unit, 65 * unit, 65 * unit); | |
291 | + | |
292 | + ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit) | |
293 | + ctx.setFillStyle('rgb(218,194,169)') | |
294 | + ctx.fill(); | |
295 | + | |
296 | + ctx.drawImage(vpath, 100 * unit, 780 * unit, 110 * unit, 110 * unit); | |
297 | + | |
298 | + ctx.setFontSize(20 * unit); | |
299 | + ctx.setFillStyle("#000"); | |
300 | + ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit); | |
301 | + | |
302 | + ctx.setFontSize(20 * unit); | |
303 | + ctx.setFillStyle("#000"); | |
304 | + ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit); | |
305 | + | |
306 | + //---绘制圆形要放在最后,头像---- | |
307 | + ctx.save(); | |
308 | + ctx.beginPath(); | |
309 | + var h_x = 60 * unit; | |
310 | + var h_y = 24 * unit; | |
311 | + var h_r = 40 * unit; | |
312 | + var cx = h_x + h_r; | |
313 | + var cy = h_y + h_r; | |
314 | + ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false); | |
315 | + ctx.closePath(); | |
316 | + ctx.fill(); | |
317 | + ctx.clip(); | |
318 | + ctx.drawImage(th.data.head_pic, h_x, h_y, h_r * 2, h_r * 2); | |
319 | + ctx.restore(); | |
320 | + | |
321 | + x = 345 * unit, y = 190 * unit, | |
322 | + w = 105 * unit, h = 30 * unit, | |
323 | + r = 14 * unit; | |
324 | + ut.draw_randon_rect(ctx,x,y,r,w,h); | |
325 | + ctx.setFontSize(18 * unit); | |
326 | + ctx.setFillStyle("#000"); | |
327 | + ctx.fillText("立即开通", 362 * unit, 212 * unit); | |
328 | + | |
329 | + //--绘制图片--- | |
330 | + ctx.draw(false, | |
331 | + function(){ | |
332 | + setTimeout(function(){ | |
333 | + wx.canvasToTempFilePath({ | |
334 | + x: 0, | |
335 | + y: 0, | |
336 | + width: 750, | |
337 | + height: 930, | |
338 | + destWidth: 1.2 * 750 * 750 / th.data.screenWidth, | |
339 | + destHeight: 1.2 * 1217 * 750 / th.data.screenWidth, | |
340 | + canvasId: 'myCanvas', | |
341 | + success: function (res) { | |
342 | + wx.hideLoading();//关闭生成中的方法 | |
343 | + th.data.is_loading = 0; | |
344 | + console.log("生成的海报"); | |
345 | + console.log(res.tempFilePath); | |
346 | + var tempFilePath = res.tempFilePath; | |
347 | + th.setData({ | |
348 | + imagePath: tempFilePath, | |
349 | + maskHidden: false, | |
350 | + canvasHidden: true | |
351 | + }); | |
352 | + wx.previewImage({ | |
353 | + urls: [res.tempFilePath], | |
354 | + }) | |
355 | + if (!res.tempFilePath) { | |
356 | + wx.showModal({ | |
357 | + title: '提示', | |
358 | + content: '图片绘制中,请稍后重试', | |
359 | + showCancel: false | |
360 | + }) | |
361 | + } | |
362 | + | |
363 | + } | |
364 | + | |
365 | + }) | |
366 | + },300) | |
367 | + }) | |
368 | + }) | |
369 | + | |
370 | + | |
371 | + | |
372 | + | |
373 | + } | |
374 | + | |
375 | + }) | |
376 | + | |
377 | + }, | |
378 | + | |
379 | + //--获取头像的本地缓存,回调写法-- | |
380 | + get_head_temp: function (tt) { | |
381 | + var ee = this; | |
382 | + if (ee.data.head_pic) { | |
383 | + tt();return false; | |
384 | + } | |
385 | + //---获取分享图片的本地地址,头像和商品图片---- | |
386 | + var path2 = getApp().globalData.userInfo.head_pic; | |
387 | + if (path2 == "") { | |
388 | + ee.data.head_pic = "../../../images/share/hui_hear_pic.png";tt(); | |
389 | + } else { | |
390 | + path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); | |
391 | + wx.getImageInfo({ | |
392 | + src: path2, | |
393 | + success: function (res) { | |
394 | + //res.path是网络图片的本地地址 | |
395 | + ee.data.head_pic= res.path;tt(); | |
396 | + }, | |
397 | + fail: function (res) { | |
398 | + ee.data.head_pic= "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的 | |
399 | + tt(); | |
400 | + } | |
401 | + }); | |
402 | + } | |
403 | + }, | |
404 | + | |
405 | + //--- 获取卡类列表 --- | |
406 | + getPlusCardType: function (e) { | |
407 | + var storid = o.stoid; | |
408 | + var th = this; | |
409 | + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => { | |
410 | + var plusCard = res.data.data; | |
411 | + var arr = [1219, 2089, 3031]; | |
412 | + var new_arr = new Array(); | |
413 | + for (var i = 0; i < plusCard.length; i++) { | |
414 | + //plusCard[i].free=arr[i]; | |
415 | + var item = {"fee": plusCard[i].CardFee, 'index': i} | |
416 | + new_arr.push(item); | |
417 | + } | |
418 | + //根據距離遠近排序,越近在前面,升序 | |
419 | + new_arr.sort(function (a, b) { | |
420 | + if (a.fee < b.fee) { return -1; } else if (a.fee == b.fee) { return 0; } else { return 1;} | |
421 | + }); | |
422 | + | |
423 | + var max_card=plusCard[new_arr[new_arr.length-1].index]; | |
424 | + th.setData({big_card:max_card}) | |
425 | + | |
426 | + //缓存分享卡的图片 | |
427 | + wx.getImageInfo({ | |
428 | + src: max_card.CardImg, | |
429 | + success: function (res) { | |
430 | + var bas_ming = res.path; th.setData({ bas_ming: bas_ming}); | |
431 | + } | |
432 | + }) | |
433 | + | |
434 | + }) | |
435 | + }, | |
436 | + | |
437 | + | |
438 | + | |
439 | + | |
440 | + | |
441 | +}) | |
0 | 442 | \ No newline at end of file | ... | ... |
pages/user/Detailed/Detailed.json
0 → 100644
pages/user/Detailed/Detailed.wxml
0 → 100644
1 | +<view wx:if="{{arrayDetailed.length>0}}"> | |
2 | + <view class="flex-space-between fs28 title"> | |
3 | + <view class="flex-vertical Nickname"> | |
4 | + <view>会员昵称 | |
5 | + </view> | |
6 | + </view> | |
7 | + <view class="flex-center phone"> | |
8 | + <view>手机号码</view> | |
9 | + </view> | |
10 | + <view class="flex-center reward"> | |
11 | + <view>奖励明细</view> | |
12 | + </view> | |
13 | + </view> | |
14 | + | |
15 | + | |
16 | + | |
17 | + <!-- 奖励详情 --> | |
18 | + <view class="flex-space-between fs28 maxvalue" wx:for="{{arrayDetailed}}"> | |
19 | + | |
20 | + <view class="flex-vertical Nicknamevalue"> | |
21 | + <view class="ellipsis-1">{{item.VIPName}} | |
22 | + </view> | |
23 | + </view> | |
24 | + <view class="flex-center phonevalue"> | |
25 | + <view>{{item.MobileTel}} | |
26 | + </view> | |
27 | + </view> | |
28 | + <view class="flex-center rewardvalue"> | |
29 | + <view>+{{item.VIPRebate}} | |
30 | + </view> | |
31 | + </view> | |
32 | + </view> | |
33 | + | |
34 | +</view> | |
35 | + | |
36 | +<!-- 没有明细 --> | |
37 | +<view class="empty_order" wx:if="{{isDetailed && arrayDetailed.length<=0}}"> | |
38 | + <view class="flex-level"> | |
39 | + <image src="{{url}}miniapp/images/order/empty_order.png"></image> | |
40 | + </view> | |
41 | + <view class="flex-level fs30 xc-ash">暂无邀请明细</view> | |
42 | + <view class="flex-level"> | |
43 | + <navigator bindtap="saveImageToPhotosAlbum"> | |
44 | + <view class="flex-center fs30 white">去邀请</view> | |
45 | + </navigator> | |
46 | + </view> | |
47 | +</view> | |
48 | +<warn id="warn"></warn> | |
49 | + | |
50 | + <!-- 画布 --> | |
51 | +<canvas canvas-id='myCanvas' style="width:750rpx;height:1260rpx; position: absolute; top:1260rpx " wx:if='{{!canvasHidden}}'></canvas> | |
52 | +<warn id="warn"></warn> | |
0 | 53 | \ No newline at end of file | ... | ... |
pages/user/Detailed/Detailed.wxss
0 → 100644
1 | +.title { | |
2 | + background-color: rgb(238, 238, 238); | |
3 | + height: 65rpx; | |
4 | + color: rgb(153, 153, 153); | |
5 | +} | |
6 | + | |
7 | +.Nickname { | |
8 | + width: 200rpx; | |
9 | + padding-left: 50rpx; | |
10 | +} | |
11 | + | |
12 | +.reward { | |
13 | + width: 250rpx; | |
14 | +} | |
15 | + | |
16 | + | |
17 | + | |
18 | +.phone { | |
19 | + width: 250rpx; | |
20 | +} | |
21 | + | |
22 | +.maxvalue { | |
23 | + border-bottom: 1rpx solid rgb(242, 242, 242); | |
24 | +} | |
25 | + | |
26 | +.Nicknamevalue { | |
27 | + height: 85rpx; | |
28 | + width: 190rpx; | |
29 | + padding-left: 60rpx; | |
30 | +} | |
31 | + | |
32 | +.phonevalue { | |
33 | + width: 250rpx; | |
34 | +} | |
35 | + | |
36 | +.rewardvalue { | |
37 | + width: 250rpx; | |
38 | + color: rgb(215, 0, 38); | |
39 | +} | |
40 | +/*无明细*/ | |
41 | +.empty_order image { | |
42 | + width: 329rpx; | |
43 | + height: 229rpx; | |
44 | + margin-top: 202rpx; | |
45 | +} | |
46 | + | |
47 | +.empty_order .xc-ash { | |
48 | + margin-top: 10rpx; | |
49 | + font-weight: 600px; | |
50 | +} | |
51 | + | |
52 | +.empty_order navigator { | |
53 | + margin-top: 60rpx; | |
54 | + border-radius: 40rpx; | |
55 | +} | |
56 | + | |
57 | +.empty_order navigator view { | |
58 | + width: 247rpx; | |
59 | + height: 56rpx; | |
60 | + background-color: rgb(255, 72, 72); | |
61 | + border-radius: 40rpx; | |
62 | +} | |
0 | 63 | \ No newline at end of file | ... | ... |
pages/user/cardinfo/cardinfo.js
0 → 100644
1 | +var t = getApp(), | |
2 | + a = t.request, | |
3 | + o = t.globalData.setting, | |
4 | + os = o, | |
5 | + i = require("../../../utils/util.js"), | |
6 | + ut = i, | |
7 | + s = require("../../../utils/common.js"),t_pay = require("../../../utils/pay2.js"), | |
8 | + w = require("../../../utils/wxParse/wxParse.js"); | |
9 | +var regeneratorRuntime = require('../../../utils/runtime.js'); | |
10 | +//wx.downloadFile把线上地址设为本地地址 | |
11 | +Page({ | |
12 | + | |
13 | + /** | |
14 | + * 页面的初始数据 | |
15 | + */ | |
16 | + data: { | |
17 | + images: [o.imghost + "/miniapp/images/plus/card_one.jpg", o.imghost + "/miniapp/images/plus/card_two.jpg", o.imghost + "/miniapp/images/plus/card_three.jpg"], | |
18 | + | |
19 | + url: o.imghost, | |
20 | + screenWidth: 0, | |
21 | + screenheight: 0, | |
22 | + canvasHidden:1, | |
23 | + shareImgPath: null, | |
24 | + is_plusCard: "",//卡的列表 | |
25 | + imagePath: "", | |
26 | + user: null,//会员的数据 | |
27 | + is_card: 0,//用于判断是否是续费页和购买页面 0不是puls会员 | |
28 | + content: "",//等级卡规则 | |
29 | + is_card_rule: "",//等级卡规则判断用 | |
30 | + big_card: null,//最大的卡 | |
31 | + divide_into:"",//分佣 | |
32 | + is_loading:"",//判断分享只执行一次 | |
33 | + bas_ming:"",//分享的卡的图片 | |
34 | + head_pic:"",//会员头像 | |
35 | + img_money:"",//缓存VIP的图片 | |
36 | + img_Ancrown:"",//会员权益 | |
37 | + img_Identification:"",//缓存标识的图片 | |
38 | + img_square:"",//缓存方块的图片 | |
39 | + privilege_o:"",//卡的勋章图 | |
40 | + cardid: "",//会员卡的id | |
41 | + user_card: null,//会员买的卡 | |
42 | + free:null,//分佣的数据 | |
43 | + expiryDate:"",//卡到期时间 | |
44 | + | |
45 | + }, | |
46 | + | |
47 | + | |
48 | + | |
49 | + | |
50 | + /** | |
51 | + * 生命周期函数--监听页面加载 | |
52 | + */ | |
53 | + onLoad: function (options) { | |
54 | + var that = this,ee=this; | |
55 | + | |
56 | + //-----------等级卡说明------------------- | |
57 | + getApp().request.promiseGet("/api/weshop/storeconfig/get/" + os.stoid, { | |
58 | + }).then(res => { | |
59 | + var is_cardrule = res.data.data.cardrules; | |
60 | + w.wxParse("content", "html", is_cardrule, ee, 6); | |
61 | + ee.setData({ | |
62 | + is_card_rule: is_cardrule | |
63 | + }); | |
64 | + }) | |
65 | + | |
66 | + //----------------------------获取最大的卡类----------------------- | |
67 | + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + o.stoid, { | |
68 | + | |
69 | + }).then(res => { | |
70 | + var plusCard = res.data.data; | |
71 | + var big_card = null; | |
72 | + var big_cards = null; | |
73 | + console.log(plusCard, "数据什么的", res); | |
74 | + for (var i = 0; i < plusCard.length; i++) { | |
75 | + big_cards = Math.max(plusCard[i].CardFee) | |
76 | + if (plusCard[i].CardFee == big_cards) { | |
77 | + big_card = plusCard[i] | |
78 | + } | |
79 | + } | |
80 | + console.log(big_cards, "是什么东西", big_card); | |
81 | + | |
82 | + ee.setData({ | |
83 | + is_plusCard: plusCard, | |
84 | + big_card: big_card | |
85 | + }) | |
86 | + | |
87 | + //缓存分享卡的图片 | |
88 | + wx.getImageInfo({ | |
89 | + src: big_card.CardImg, | |
90 | + success: function (res) { | |
91 | + //回调写法 | |
92 | + var bas_ming = res.path; | |
93 | + ee.setData({ bas_ming: bas_ming }); | |
94 | + } | |
95 | + }) | |
96 | + | |
97 | + }) | |
98 | + | |
99 | + | |
100 | + //获取用户设备信息,屏幕宽度 | |
101 | + wx.getSystemInfo({ | |
102 | + success: res => { | |
103 | + that.setData({ | |
104 | + screenWidth: res.screenWidth | |
105 | + }) | |
106 | + } | |
107 | + }) | |
108 | + var goods_list = this.selectComponent("#goods_list"); //组件的id | |
109 | + goods_list.get_list(); | |
110 | + | |
111 | + | |
112 | + }, | |
113 | + | |
114 | + | |
115 | +//------------程序初始化入口 同步------------- | |
116 | + async init() { | |
117 | + var ee = this, th = ee; | |
118 | + | |
119 | + //-------------会员卡的获取------------- | |
120 | + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/list", | |
121 | + { | |
122 | + data: { | |
123 | + storeId: os.stoid, | |
124 | + userId: getApp().globalData.user_id, | |
125 | + }, | |
126 | + }).then(res => { | |
127 | + | |
128 | + var GradeCardID = res.data.data[0].GradeCardID; | |
129 | + var expiryDate = res.data.data[0].ExpiryDate | |
130 | + console.log(GradeCardID, "卡的id", res.data.data[0]); | |
131 | + ee.setData({cardid: GradeCardID, | |
132 | + expiryDate: expiryDate | |
133 | + }); | |
134 | + | |
135 | + | |
136 | + }) | |
137 | + //-----------会员分佣------------------- | |
138 | + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/freeze/money?userId=" + getApp().globalData.user_id + "&storeId=" + os.stoid, { | |
139 | + }).then(res => { | |
140 | + console.log("分佣的数据", res.data.data); | |
141 | + if (res.data.code==0){ | |
142 | + ee.setData({ free:res.data.data}); | |
143 | + }else{ | |
144 | + ee.setData({ free: 0 }); | |
145 | + } | |
146 | + | |
147 | + }) | |
148 | + //-----------会员的卡类------------------- | |
149 | + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/get?storeId=" + os.stoid + "&CardId=" + ee.data.cardid, { | |
150 | + }).then(res => { | |
151 | + var user_card= res.data.data; | |
152 | + console.log(user_card,"会员的卡类"); | |
153 | + ee.setData({user_card: user_card}); | |
154 | + }) | |
155 | + | |
156 | + | |
157 | + | |
158 | + //-----------------获取会员信息------------------------------- | |
159 | + await getApp().request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.user_id,{ | |
160 | + | |
161 | + }).then(res => { | |
162 | + var user = res.data.data; | |
163 | + var url = ee.data.url; | |
164 | + console.log("是什么东西", url); | |
165 | + var img_money = url + "/miniapp/images/plus/share/money.png"; | |
166 | + var img_Ancrown = url + "/miniapp/images/plus/share/Ancrown.png"; | |
167 | + var img_Identification = url + "/miniapp/images/plus/share/Identification.png"; | |
168 | + var img_square = url + "/miniapp/images/plus/share/square.png"; | |
169 | + var privilege_o = url + "/miniapp/images/plus/share/privilege_o.png"; | |
170 | + console.log("图片转换",img_money); | |
171 | + var big_card = ee.data.big_card; | |
172 | + ee.setData({ | |
173 | + user: user, | |
174 | + img_money: img_money, | |
175 | + img_Ancrown: img_Ancrown , | |
176 | + img_Identification: img_Identification, | |
177 | + img_square, img_square , | |
178 | + privilege_o, privilege_o | |
179 | + | |
180 | + }); | |
181 | + | |
182 | + //缓存会员头像的图片 | |
183 | + wx.getImageInfo({ | |
184 | + src: user.head_pic, | |
185 | + success: function (res) { | |
186 | + //回调写法 | |
187 | + var user_head= res.path; | |
188 | + ee.setData({ head_pic: user_head }); | |
189 | + } | |
190 | + }) | |
191 | + }) | |
192 | + //--------------------缓存vip价格的图片--------------- | |
193 | + wx.getImageInfo({ | |
194 | + src:ee.data.img_money, | |
195 | + success: function (res) { | |
196 | + //回调写法 | |
197 | + var img_money = res.path; | |
198 | + ee.setData({ img_money: img_money}); | |
199 | + } | |
200 | + }) | |
201 | + //--------------------缓存权益的图片--------------- | |
202 | + wx.getImageInfo({ | |
203 | + src: ee.data.img_Ancrown, | |
204 | + success: function (res) { | |
205 | + //回调写法 | |
206 | + var img_Ancrown = res.path; | |
207 | + ee.setData({ img_Ancrown: img_Ancrown }); | |
208 | + } | |
209 | + }) | |
210 | + //--------------------缓存标识的图片--------------- | |
211 | + wx.getImageInfo({ | |
212 | + src: ee.data.img_Identification, | |
213 | + success: function (res) { | |
214 | + //回调写法 | |
215 | + var img_Identification = res.path; | |
216 | + ee.setData({ img_Identification: img_Identification }); | |
217 | + } | |
218 | + }) | |
219 | + | |
220 | + //--------------------卡的勋章--------------- | |
221 | + wx.getImageInfo({ | |
222 | + src: ee.data.privilege_o, | |
223 | + success: function (res) { | |
224 | + //回调写法 | |
225 | + var privilege_o = res.path; | |
226 | + ee.setData({ privilege_o: privilege_o }); | |
227 | + } | |
228 | + }) | |
229 | + | |
230 | + //--------------------方块图--------------- | |
231 | + wx.getImageInfo({ | |
232 | + src: ee.data.img_square, | |
233 | + success: function (res) { | |
234 | + //回调写法 | |
235 | + var img_square = res.path; | |
236 | + ee.setData({ img_square: img_square}); | |
237 | + } | |
238 | + }) | |
239 | + | |
240 | + }, | |
241 | + | |
242 | + | |
243 | + | |
244 | + | |
245 | + //-----打开分享图片---- | |
246 | + Share_pictures: function () { | |
247 | + | |
248 | + this.setData({ | |
249 | + canvasHidden: false | |
250 | + }) | |
251 | + this.saveImageToPhotosAlbum(); | |
252 | + }, | |
253 | + | |
254 | + | |
255 | + /** | |
256 | + * 生命周期函数--监听页面初次渲染完成 | |
257 | + */ | |
258 | + saveImageToPhotosAlbum: function () { | |
259 | + if (this.data.imagePath != "") { | |
260 | + wx.previewImage({ | |
261 | + urls: [this.data.imagePath], | |
262 | + }) | |
263 | + return; | |
264 | + } | |
265 | + // if(this.data.is_loading) return false ; | |
266 | + this.data.is_loading=1; | |
267 | + | |
268 | + wx.showLoading({ | |
269 | + title: '生成中...', | |
270 | + }) | |
271 | + | |
272 | + this.setData({ | |
273 | + canvasHidden: false | |
274 | + }) | |
275 | + | |
276 | + var th = this; | |
277 | + //设置画板显示,才能开始绘图 | |
278 | + var card_ming=th.data.bas_ming;//卡的图片 | |
279 | + var user = th.data.user;//会员资料; | |
280 | + var big_card= th.data.big_card;//获取最大的卡 | |
281 | + var user_head = th.data.head_pic;//会员头像 | |
282 | + var img_money = th.data.img_money;//缓存vip的价格 | |
283 | + var img_Ancrown = th.data.img_Ancrown;//会员权益的图片 | |
284 | + var img_Identification = th.data.img_Identification;//会员标识 | |
285 | + var privilege_o = th.data.privilege_o;//勋章图片 | |
286 | + var img_square=th.data.img_square; | |
287 | + | |
288 | + var app = getApp(); | |
289 | + var unit = th.data.screenWidth / 750 * 1.35; | |
290 | + var scene = getApp().globalData.user_id; | |
291 | + console.log("用户头像", th.data.head_pic); | |
292 | + ///二微码 | |
293 | + | |
294 | + var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + | |
295 | + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/user/index/index"; | |
296 | + wx.getImageInfo({ | |
297 | + src: path3, | |
298 | + success: function (res) { | |
299 | + //回调写法 | |
300 | + th.get_head_temp(th.get_goods_temp, function () { | |
301 | + var vpath=res.path; | |
302 | + | |
303 | + console.log("生成二维码", path3); | |
304 | + //开启画布 | |
305 | + const ctx = wx.createCanvasContext('myCanvas'); | |
306 | + | |
307 | + | |
308 | + //先画背景 | |
309 | + ctx.drawImage("../../../images/share/mackground.png", 0, 0, 554 * unit, 930 * unit); | |
310 | + ctx.setFontSize(26 * unit); | |
311 | + ctx.setFillStyle("rgb(0,0,0)"); | |
312 | + ctx.fillText(user.nickname, 155 * unit, 75 * unit, 200 * unit); | |
313 | + | |
314 | + var tj_path = "../../../images/share/q_tj.png"; | |
315 | + ctx.drawImage(tj_path, 385 * unit, 45 * unit, 90 * unit, 30 * unit); | |
316 | + ctx.setFontSize(18 * unit); | |
317 | + ctx.setFillStyle("rgb(255,255,255)"); | |
318 | + ctx.fillText("强烈推荐", 394 * unit, 65 * unit); | |
319 | + | |
320 | + ctx.setStrokeStyle("rgb(255,255,255)"); | |
321 | + ctx.setLineDash([5 * unit, 5 * unit], 5 * unit); | |
322 | + ctx.beginPath(); | |
323 | + ctx.moveTo(0, 125 * unit); | |
324 | + ctx.lineTo(554 * unit, 125 * unit); | |
325 | + ctx.stroke(); | |
326 | + | |
327 | + var x = 55 * unit, | |
328 | + y = 165 * unit, | |
329 | + w = 444 * unit, | |
330 | + h = 220 * unit, | |
331 | + r = 14 * unit; | |
332 | + ctx.save(); | |
333 | + // 开始绘制 | |
334 | + ctx.beginPath(); | |
335 | + // 因为边缘描边存在锯齿,最好指定使用 transparent 填充 | |
336 | + // 这里是使用 fill 还是 stroke都可以,二选一即可 | |
337 | + ctx.setFillStyle('rgb(237,188,150)') | |
338 | + // ctx.setStrokeStyle('transparent') | |
339 | + // 左上角 | |
340 | + ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5) | |
341 | + | |
342 | + // border-top | |
343 | + ctx.moveTo(x + r, y) | |
344 | + ctx.lineTo(x + w - r, y) | |
345 | + ctx.lineTo(x + w, y + r) | |
346 | + // 右上角 | |
347 | + ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2) | |
348 | + | |
349 | + // border-right | |
350 | + ctx.lineTo(x + w, y + h - r) | |
351 | + ctx.lineTo(x + w - r, y + h) | |
352 | + // 右下角 | |
353 | + ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5) | |
354 | + | |
355 | + // border-bottom | |
356 | + ctx.lineTo(x + r, y + h) | |
357 | + ctx.lineTo(x, y + h - r) | |
358 | + // 左下角 | |
359 | + ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI) | |
360 | + | |
361 | + // border-left | |
362 | + ctx.lineTo(x, y + r) | |
363 | + ctx.lineTo(x + r, y) | |
364 | + | |
365 | + // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应 | |
366 | + ctx.fill() | |
367 | + | |
368 | + ctx.clip(); //画了圆 再剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 | |
369 | + ctx.drawImage(card_ming, x, y, 444 * unit, 220 * unit); // 推进去图片 | |
370 | + ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制 | |
371 | + | |
372 | + ctx.beginPath(); | |
373 | + // 卡图片 | |
374 | + // ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,); | |
375 | + ctx.setFontSize(26 * unit); | |
376 | + ctx.setFillStyle('rgb(218,194,169)'); | |
377 | + ctx.fillText(big_card.CardName, 80 * unit, 215 * unit); | |
378 | + ctx.setFontSize(18 * unit); | |
379 | + ctx.setFillStyle('rgb(218,194,169)'); | |
380 | + ctx.fillText("开通会员年卡仅" + big_card.CardFee+"元", 80 * unit, 240 * unit); | |
381 | + | |
382 | + ctx.drawImage(privilege_o, 80 * unit, 343 * unit, 20 * unit, 20 * unit); | |
383 | + | |
384 | + ctx.setFontSize(14 * unit); | |
385 | + ctx.setFillStyle('rgb(218,194,169)'); | |
386 | + ctx.fillText("根据大家购买数据,您成为超级会员预计可省¥3031元", 105 * unit, 360 * unit); | |
387 | + | |
388 | + ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit); | |
389 | + ctx.setFillStyle('rgb(218,194,169)'); | |
390 | + ctx.fill(); | |
391 | + | |
392 | + ctx.drawImage(img_square, 267 * unit, 420 * unit, 13 * unit, 13 * unit); | |
393 | + | |
394 | + ctx.beginPath(); | |
395 | + ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit); | |
396 | + ctx.setFillStyle('rgb(218,194,169)'); | |
397 | + ctx.fill(); | |
398 | + | |
399 | + ctx.drawImage(img_square, 80 * unit, 470 * unit, 10 * unit, 10 * unit); | |
400 | + ctx.setFontSize(24 * unit); | |
401 | + ctx.setFillStyle("rgb(198,165,126)"); | |
402 | + ctx.fillText("超级VIP权益", 100 * unit, 475 * unit); | |
403 | + | |
404 | + ctx.setFontSize(20 * unit); | |
405 | + ctx.setFillStyle("rgb(198,165,126)"); | |
406 | + ctx.fillText("超级会员专属权益", 100 * unit, 505 * unit); | |
407 | + ctx.drawImage(img_Ancrown, 355 * unit, 440 * unit, 65 * unit, 65 * unit); | |
408 | + | |
409 | + ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit) | |
410 | + ctx.setFillStyle('rgb(218,194,169)') | |
411 | + ctx.fill(); | |
412 | + | |
413 | + ctx.drawImage(img_square, 80 * unit, 575 * unit, 10 * unit, 10 * unit); | |
414 | + ctx.setFontSize(24 * unit); | |
415 | + ctx.setFillStyle("rgb(198,165,126)"); | |
416 | + ctx.fillText("超级VIP标识", 100 * unit, 580 * unit); | |
417 | + | |
418 | + ctx.setFontSize(20 * unit); | |
419 | + ctx.setFillStyle("rgb(198,165,126)"); | |
420 | + ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit); | |
421 | + ctx.drawImage(img_Identification, 355 * unit, 548 * unit, 65 * unit, 65 * unit); | |
422 | + | |
423 | + ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit); | |
424 | + ctx.setFillStyle('rgb(218,194,169)'); | |
425 | + ctx.fill(); | |
426 | + | |
427 | + ctx.drawImage(img_square, 80 * unit, 695 * unit, 10 * unit, 10 * unit); | |
428 | + ctx.setFontSize(24 * unit); | |
429 | + ctx.setFillStyle("rgb(198,165,126)"); | |
430 | + ctx.fillText("超级VIP价格", 100 * unit, 695 * unit); | |
431 | + | |
432 | + ctx.setFontSize(20 * unit); | |
433 | + ctx.setFillStyle("rgb(198,165,126)"); | |
434 | + ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit); | |
435 | + ctx.drawImage(img_money, 355 * unit, 660 * unit, 65 * unit, 65 * unit); | |
436 | + | |
437 | + ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit) | |
438 | + ctx.setFillStyle('rgb(218,194,169)') | |
439 | + ctx.fill(); | |
440 | + | |
441 | + ctx.drawImage(vpath, 100 * unit, 780 * unit, 110 * unit, 110 * unit); | |
442 | + | |
443 | + ctx.setFontSize(20 * unit); | |
444 | + ctx.setFillStyle("#000"); | |
445 | + ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit); | |
446 | + | |
447 | + ctx.setFontSize(20 * unit); | |
448 | + ctx.setFillStyle("#000"); | |
449 | + ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit); | |
450 | + | |
451 | + //---绘制圆形要放在最后---- | |
452 | + ctx.save(); | |
453 | + ctx.beginPath(); | |
454 | + var h_x = 60 * unit; | |
455 | + var h_y = 24 * unit; | |
456 | + var h_r = 40 * unit; | |
457 | + var cx = h_x + h_r; | |
458 | + var cy = h_y + h_r; | |
459 | + ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false); | |
460 | + ctx.closePath(); | |
461 | + ctx.fill(); | |
462 | + ctx.clip(); | |
463 | + ctx.drawImage(th.data.head_pic, h_x, h_y, h_r * 2, h_r * 2); | |
464 | + ctx.restore(); | |
465 | + | |
466 | + var x = 345 * unit, | |
467 | + y = 190 * unit, | |
468 | + w = 105 * unit, | |
469 | + h = 30 * unit, | |
470 | + r = 14 * unit; | |
471 | + ctx.save(); | |
472 | + // 开始绘制 | |
473 | + ctx.beginPath(); | |
474 | + // 因为边缘描边存在锯齿,最好指定使用 transparent 填充 | |
475 | + // 这里是使用 fill 还是 stroke都可以,二选一即可 | |
476 | + ctx.setFillStyle('rgb(237,188,150)') | |
477 | + // ctx.setStrokeStyle('transparent') | |
478 | + // 左上角 | |
479 | + ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5) | |
480 | + | |
481 | + // border-top | |
482 | + ctx.moveTo(x + r, y) | |
483 | + ctx.lineTo(x + w - r, y) | |
484 | + ctx.lineTo(x + w, y + r) | |
485 | + // 右上角 | |
486 | + ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2) | |
487 | + | |
488 | + // border-right | |
489 | + ctx.lineTo(x + w, y + h - r) | |
490 | + ctx.lineTo(x + w - r, y + h) | |
491 | + // 右下角 | |
492 | + ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5) | |
493 | + | |
494 | + // border-bottom | |
495 | + ctx.lineTo(x + r, y + h) | |
496 | + ctx.lineTo(x, y + h - r) | |
497 | + // 左下角 | |
498 | + ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI) | |
499 | + | |
500 | + // border-left | |
501 | + ctx.lineTo(x, y + r) | |
502 | + ctx.lineTo(x + r, y) | |
503 | + | |
504 | + // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应 | |
505 | + ctx.fill() | |
506 | + | |
507 | + ctx.setFontSize(18 * unit); | |
508 | + ctx.setFillStyle("#000"); | |
509 | + ctx.fillText("立即开通", 362 * unit, 212 * unit); | |
510 | + | |
511 | + | |
512 | + //绘制图片 | |
513 | + ctx.draw(false, | |
514 | + function(){ | |
515 | + setTimeout(function(){ | |
516 | + wx.canvasToTempFilePath({ | |
517 | + x: 0, | |
518 | + y: 0, | |
519 | + width: 750, | |
520 | + height: 930, | |
521 | + destWidth: 1.2 * 750 * 750 / th.data.screenWidth, | |
522 | + destHeight: 1.2 * 1217 * 750 / th.data.screenWidth, | |
523 | + canvasId: 'myCanvas', | |
524 | + success: function (res) { | |
525 | + wx.hideLoading();//关闭生成中的方法 | |
526 | + th.data.is_loading = 0; | |
527 | + console.log("生成的海报"); | |
528 | + console.log(res.tempFilePath); | |
529 | + var tempFilePath = res.tempFilePath; | |
530 | + th.setData({ | |
531 | + imagePath: tempFilePath, | |
532 | + maskHidden: false, | |
533 | + canvasHidden: true | |
534 | + }); | |
535 | + wx.previewImage({ | |
536 | + urls: [res.tempFilePath], | |
537 | + }) | |
538 | + if (!res.tempFilePath) { | |
539 | + wx.showModal({ | |
540 | + title: '提示', | |
541 | + content: '图片绘制中,请稍后重试', | |
542 | + showCancel: false | |
543 | + }) | |
544 | + } | |
545 | + } | |
546 | + }) | |
547 | + },500) | |
548 | + | |
549 | + }) | |
550 | + | |
551 | + | |
552 | + }) | |
553 | + } | |
554 | + }) | |
555 | + | |
556 | + }, | |
557 | + | |
558 | + //--获取头像的本地缓存,回调写法-- | |
559 | + get_head_temp: function (tt, func) { | |
560 | + var ee = this; | |
561 | + console.log("获取头像", ee.data.head_pic); | |
562 | + if (ee.data.head_pic) { | |
563 | + tt(func); | |
564 | + return false; | |
565 | + } | |
566 | + //---获取分享图片的本地地址,头像和商品图片---- | |
567 | + var path2 = getApp().globalData.userInfo.head_pic; | |
568 | + if (path2 == "") { | |
569 | + ee.data.head_pic = "../../../images/share/hui_hear_pic.png"; | |
570 | + tt(func); | |
571 | + } else { | |
572 | + path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); | |
573 | + wx.getImageInfo({ | |
574 | + src: path2, | |
575 | + success: function (res) { | |
576 | + //res.path是网络图片的本地地址 | |
577 | + ee.data.head_pic= res.path; | |
578 | + tt(func);; | |
579 | + }, | |
580 | + fail: function (res) { | |
581 | + ee.data.head_pic= "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的 | |
582 | + tt(func); | |
583 | + } | |
584 | + }); | |
585 | + } | |
586 | + }, | |
587 | + //--获取商品图片的本地缓存,回调写法-- | |
588 | + get_goods_temp: function (tt) { | |
589 | + var ee = this; | |
590 | + if (ee.data.head_pic) { | |
591 | + tt(); | |
592 | + return false; | |
593 | + } | |
594 | + //获取商品是分享图信息 | |
595 | + wx.getImageInfo({ | |
596 | + src: ee.data.head_pic, | |
597 | + success: function (res) { | |
598 | + //res.path是网络图片的本地地址 | |
599 | + ee.data.head_pic = res.path; | |
600 | + tt(); | |
601 | + }, | |
602 | + fail: function (res) { | |
603 | + ee.data.head_pic = "../../../images/share/default_g_img.gif"; //分享的图片不能用网络的 | |
604 | + tt(); | |
605 | + } | |
606 | + }); | |
607 | + }, | |
608 | + /** | |
609 | + * 生命周期函数--监听页面显示 | |
610 | + */ | |
611 | + onShow: function () { | |
612 | + //同步初始化 | |
613 | + this.init(); | |
614 | + | |
615 | + | |
616 | + }, | |
617 | + | |
618 | + /** | |
619 | + * 生命周期函数--监听页面隐藏 | |
620 | + */ | |
621 | + onHide: function () { | |
622 | + | |
623 | + }, | |
624 | + | |
625 | + /** | |
626 | + * 生命周期函数--监听页面卸载 | |
627 | + */ | |
628 | + onUnload: function () { | |
629 | + | |
630 | + }, | |
631 | + | |
632 | + /** | |
633 | + * 页面相关事件处理函数--监听用户下拉动作 | |
634 | + */ | |
635 | + onPullDownRefresh: function () { | |
636 | + | |
637 | + }, | |
638 | + | |
639 | + /** | |
640 | + * 页面上拉触底事件的处理函数 | |
641 | + */ | |
642 | + onReachBottom: function () { | |
643 | + var goods_list = this.selectComponent("#goods_list"); //组件的id | |
644 | + goods_list.get_list(); | |
645 | + this.setData({ | |
646 | + j: true | |
647 | + }) | |
648 | + }, | |
649 | + | |
650 | + | |
651 | + | |
652 | + //--转到用户余额-- | |
653 | + to_user_money:function(){ | |
654 | + var th=this,free=th.data.free; | |
655 | + if(!th.data.free.RefereeMoney){ | |
656 | + getApp().my_warnning("您没有转入余额",0,th); return false; | |
657 | + } | |
658 | + | |
659 | + wx.showModal({ | |
660 | + title: '提示', | |
661 | + content: '您确定要转入余额吗?', | |
662 | + success(res) { | |
663 | + if (res.confirm) { | |
664 | + getApp().request.post("/api/weshop/plus/withdrawal/referee/money",{ | |
665 | + data:{storeId:os.stoid,userId:getApp().globalData.user_id}, | |
666 | + success:function(res){ | |
667 | + if(res.data.code==0){ | |
668 | + getApp().my_warnning("转入成功",0,th); | |
669 | + free.RefereeMoney=0; | |
670 | + th.setData({free:free}); | |
671 | + }else{ | |
672 | + getApp().my_warnning(res.data.msg ,0,th); | |
673 | + } | |
674 | + } | |
675 | + }) | |
676 | + } | |
677 | + } | |
678 | + }) | |
679 | + }, | |
680 | + | |
681 | + //-----立即续费的功能------ | |
682 | + xufei:function(){ | |
683 | + var th = this; | |
684 | + var is_card = 0; | |
685 | + var item = th.data.user_card; | |
686 | + var req = {}; | |
687 | + req.cardId = item.CardId; | |
688 | + req.rechargeType = 4; | |
689 | + //如果不是你导购,也不是等级会员分享 | |
690 | + req.storeId = os.stoid; | |
691 | + req.userId = getApp().globalData.user_id; | |
692 | + t_pay.pay(req, th.success, function () { | |
693 | + getApp().my_warnning("支付失败", 0, th); | |
694 | + }); | |
695 | + | |
696 | + }, | |
697 | + | |
698 | + //--支付成功,跳转到等级卡续费页面-- | |
699 | + success:function () { | |
700 | + getApp().my_warnning("支付成功",0,this); | |
701 | + }, | |
702 | + | |
703 | +}) | |
0 | 704 | \ No newline at end of file | ... | ... |
pages/user/cardinfo/cardinfo.json
0 → 100644
pages/user/cardinfo/cardinfo.wxml
0 → 100644
1 | +<import src="../../../utils/wxParse/wxParse.wxml"></import> | |
2 | +<import src="../../../utils/filter.wxs"></import> | |
3 | +<wxs module="filters" src="../../../utils/filter.wxs"></wxs> | |
4 | + | |
5 | + <view> | |
6 | + <image class="Member_bk" src="{{url}}/miniapp/images/plus/page_bk.png"></image> | |
7 | +</view> | |
8 | + | |
9 | + | |
10 | + <view class="MemberPlus rel"style="background-image:url('{{user_card.CardImg}}');background-size: 100% 100%;background-repead:no-repead;"> | |
11 | + | |
12 | + <view class="flex-space-between"> | |
13 | + <view style="color:{{user_card.CardColor}}"> | |
14 | + <view class="fs36 h36" style="font-weight:bold">{{user_card.CardName}}</view> | |
15 | + <view class="fs22 h22" style="margin-top:15rpx">会员将在{{filters.replace_time2(expiryDate)}}到期</view> | |
16 | + </view> | |
17 | + <view bindtap="xufei" class="renew fs28" style="background:{{user_card.CardColor}}">立即续费 | |
18 | + </view> | |
19 | + </view> | |
20 | + | |
21 | + <view class="flex-vertical-between xs fs28"> | |
22 | + <view class="flex ai-center" style=" overflow:hidden"> | |
23 | + <view class="Member" | |
24 | + style="background-image:url('{{url}}/miniapp/images/plus/privilege_o.png'); filter: drop-shadow(40px 0 0 {{user_card.CardColor}});"> | |
25 | + </view> | |
26 | + <view style="color:{{user_card.CardColor}}">正在享受{{user_card.CardName}}会员特权 | |
27 | + </view> | |
28 | + </view> | |
29 | + <view class="flex-vertical" bindtap="Share_pictures"> | |
30 | + <view style="color:{{user_card.CardColor}}">邀请新朋友</view> | |
31 | + <image class="share" src="{{url}}/miniapp/images/plus/Forward.png"></image> | |
32 | + </view> | |
33 | + </view> | |
34 | + | |
35 | + </view> | |
36 | + <view class="flex-vertical-between Invitation fs30"> | |
37 | + | |
38 | + <view class="flex"> | |
39 | + 已邀请 | |
40 | + <view class="Invitation_count">{{free==0?"0":free.RefereeNumber}}人</view> | |
41 | + 可提现 | |
42 | + <view class="Invitation_my">{{free==0?"0":free.VIPRebate}}元</view> | |
43 | + </view> | |
44 | + | |
45 | + <view class="flex"> | |
46 | + <view class="Detailed flex-center"> | |
47 | + <navigator url="/pages/user/Detailed/Detailed">明细</navigator> | |
48 | + </view> | |
49 | + <view class="Invitation_Cash" bindtap="to_user_money">转到余额</view> | |
50 | + </view> | |
51 | + </view> | |
52 | + | |
53 | + <!-- 会员礼遇 --> | |
54 | + <view class="Courtesy"> | |
55 | + | |
56 | + <!-- 标题 --> | |
57 | + <view class="flex-center" style="width:100%;height:200rpx;"> | |
58 | + <view> | |
59 | + <view wx:if="{{false}}" class="Courtesy_title flex-center fs36">开通PLUS会员尊享礼遇 | |
60 | + </view> | |
61 | + <view wx:else class="Courtesy_title flex-center fs36">PLUS会员尊享礼遇 </view> | |
62 | + | |
63 | + | |
64 | + <view class="flex-center"> | |
65 | + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image> | |
66 | + | |
67 | + <view wx:if="{{false}}" class="Courtesy_can fs24">PLUS会员可享以下特权 | |
68 | + </view> | |
69 | + <view wx:else class="Courtesy_can fs24">解锁新权益 精彩享不停 | |
70 | + </view> | |
71 | + | |
72 | + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image> | |
73 | + </view> | |
74 | + </view> | |
75 | + </view> | |
76 | + | |
77 | + <!-- 会员权益内容 --> | |
78 | + <view class="Courtesy_comment" style="padding:0 20rpx"> | |
79 | + <view class="wxParse"> | |
80 | + <template is="wxParse" data="{{wxParseData:content.nodes}}"></template> | |
81 | + </view> | |
82 | + </view> | |
83 | + </view> | |
84 | + | |
85 | + | |
86 | +<!-- 好物推荐 --> | |
87 | + <!-- 好物推荐 --> | |
88 | + <view class="title"> | |
89 | + <!-- 标题 --> | |
90 | + <view> | |
91 | + <!-- 中文名标题 --> | |
92 | + <view class="China flex-level"> | |
93 | + <view class="line flex-vertical"> | |
94 | + <view class="one"></view> | |
95 | + <view class="two"></view> | |
96 | + <view class="three"></view> | |
97 | + </view> | |
98 | + | |
99 | + <view class="Recommend flex-level" bindtap="requestList">好物推荐</view> | |
100 | + | |
101 | + <view class="line flex-vertical"> | |
102 | + <view class="three"></view> | |
103 | + <view class="two"></view> | |
104 | + <view class="one"></view> | |
105 | + </view> | |
106 | + </view> | |
107 | + | |
108 | + <!-- 英文标题 --> | |
109 | + <view class="english flex-center"> | |
110 | + <view class="silk"></view> | |
111 | + <view class="esh five-level-word">GOOD HOT THING</view> | |
112 | + <view class="silk"></view> | |
113 | + </view> | |
114 | + | |
115 | + </view> | |
116 | + <!-- 商品列表组件 --> | |
117 | + <goods_recommend id="goods_list"></goods_recommend> | |
118 | + <!-- 商品列表 --> | |
119 | + | |
120 | + </view> | |
121 | + | |
122 | + | |
123 | + <!-- 画布 --> | |
124 | +<canvas canvas-id='myCanvas' style="width:750rpx;height:1260rpx;"wx:if='{{!canvasHidden}}'></canvas> | |
125 | + | |
126 | +<warn id="warn"></warn> | |
0 | 127 | \ No newline at end of file | ... | ... |
pages/user/cardinfo/cardinfo.wxss
0 → 100644
1 | + @import "../../../utils/wxParse/wxParse.wxss"; | |
2 | + .Member_bk { | |
3 | + position:relative; | |
4 | + z-index: 0; | |
5 | + width: 100%; | |
6 | + height: 100%; | |
7 | +} | |
8 | +.MemberPlus { | |
9 | + width: 618rpx; | |
10 | + height: 285rpx; | |
11 | + /* border-radius: 18rpx; */ | |
12 | + box-shadow: 0rpx 0rpx 10rpx #888; | |
13 | + margin: 0rpx 35rpx; | |
14 | + color: #ffa786; | |
15 | + padding: 0rpx 31rpx; | |
16 | + padding-top: 40rpx; | |
17 | + background-size: 100%; | |
18 | + border-top-left-radius: 18rpx; | |
19 | + border-top-right-radius: 18rpx; | |
20 | + | |
21 | +} | |
22 | +.renew { | |
23 | + width: 190rpx; | |
24 | + height: 50rpx; | |
25 | + border-radius: 18rpx; | |
26 | + background-color: rgb(237, 189, 150); | |
27 | + text-align: center; | |
28 | + line-height: 50rpx; | |
29 | + color: #000; | |
30 | + margin-top: 7rpx; | |
31 | + | |
32 | +} | |
33 | +.xs { | |
34 | + position: absolute; bottom: 30rpx; width: 91%; | |
35 | +} | |
36 | +.MemberPlus .privilege { | |
37 | + width: 30rpx; | |
38 | + height: 30rpx; | |
39 | + margin-right: 7rpx; | |
40 | +} | |
41 | +.MemberPlus .share { | |
42 | + width: 30rpx; | |
43 | + height: 30rpx; | |
44 | + margin-left: 7rpx; | |
45 | +} | |
46 | +.Invitation { | |
47 | + padding: 0rpx 31rpx; | |
48 | + box-shadow: 0rpx 0rpx 10rpx #888; | |
49 | + height: 95rpx; | |
50 | + background-color: rgb(255, 255, 255); | |
51 | + z-index: 6; | |
52 | +} | |
53 | +.Invitation .Invitation_count, .Invitation_my { | |
54 | + color: rgb(237, 189, 153); | |
55 | +} | |
56 | +.Invitation .Detailed { | |
57 | + color: rgb(237, 189, 150); | |
58 | + text-decoration: underline; | |
59 | +} | |
60 | +.Invitation .Invitation_Cash { | |
61 | + width: 150rpx; | |
62 | + height: 45rpx; | |
63 | + line-height: 45rpx; | |
64 | + text-align: center; | |
65 | + border-radius: 25rpx; | |
66 | + margin-left: 30rpx; | |
67 | + background-color: rgb(237, 189, 150); | |
68 | + color: rgb(255, 255, 255); | |
69 | +} | |
70 | +.swiper, .Courtesy, .title { | |
71 | + position: relative; | |
72 | + z-index: 3; | |
73 | +} | |
74 | +.Courtesy_title { | |
75 | + color: rgb(173, 137, 79); | |
76 | + font-weight: bold; | |
77 | + margin-bottom: 10rpx; | |
78 | + letter-spacing: 2rpx; | |
79 | +} | |
80 | +.Courtesy_image { | |
81 | + width: 50rpx; | |
82 | + height: 25rpx; | |
83 | + margin-top: 8rpx; | |
84 | +} | |
85 | +.Courtesy_can { | |
86 | + margin: 0rpx 7rpx; | |
87 | + color: rgb(94, 93, 91); | |
88 | + font-weight: bold; | |
89 | +} | |
90 | + | |
91 | + | |
92 | +/* 热门好物 */ | |
93 | + | |
94 | +.title .China { | |
95 | + width: 100%; | |
96 | + margin-top: 60rpx; | |
97 | + margin-bottom: 10rpx; | |
98 | + line-height: 0rpx; | |
99 | +} | |
100 | + | |
101 | +.title .China .line view { | |
102 | + width: 2rpx; | |
103 | +} | |
104 | + | |
105 | +.title .China .line { | |
106 | + height: 40rpx; | |
107 | + color: rgb(51, 51, 51); | |
108 | +} | |
109 | + | |
110 | +.title .China .line view { | |
111 | + border-left: 3rpx solid #000; | |
112 | + margin-left: 5rpx; | |
113 | +} | |
114 | + | |
115 | +.title .China .line .one { | |
116 | + height: 23rpx; | |
117 | +} | |
118 | + | |
119 | +.title .China .line .two { | |
120 | + height: 15rpx; | |
121 | +} | |
122 | + | |
123 | +.title .China .line .three { | |
124 | + height: 18rpx; | |
125 | +} | |
126 | + | |
127 | +.title .China .Recommend { | |
128 | + margin: 0rpx 20rpx; | |
129 | + font-size: 28rpx; | |
130 | + line-height: 39rpx; | |
131 | + font-weight: bold; | |
132 | +} | |
133 | + | |
134 | +.title .english .silk { | |
135 | + width: 214rpx; | |
136 | + height: 2rpx; | |
137 | + background-color: #000; | |
138 | +} | |
139 | + | |
140 | +.title .english .esh { | |
141 | + margin: 0rpx 15rpx; | |
142 | +} | |
143 | +.Member { | |
144 | + width: 30rpx; | |
145 | + height: 30rpx; | |
146 | + margin-right: 5rpx; | |
147 | + background-size: 100% 100%; | |
148 | + background-blend-mode: lighten; | |
149 | + transform: translateX(-280%); | |
150 | + vertical-align: top; | |
151 | +} | |
152 | + | |
153 | +.h36{ height:36rpx; line-height: 36rpx;} | |
154 | +.h22{ height:22rpx; line-height: 22rpx;} | |
0 | 155 | \ No newline at end of file | ... | ... |
pages/user/deposit/prepaid/prepaid.wxml
... | ... | @@ -10,8 +10,8 @@ |
10 | 10 | <view class="bz">备注: |
11 | 11 | <view class="yck">{{perpaid.ItemName}}</view> |
12 | 12 | </view> |
13 | - <view class="ljcz" bindtap="submit" data-name="{{perpaid.BeginSum}} | |
14 | - data-advance="{{perpaid.AdvanceItemId}}"data-money="{{perpaid.NewSum}}">立即充值</view> | |
13 | + <view class="ljcz" bindtap="submit" data-name="{{perpaid.BeginSum}}" | |
14 | + data-advance="{{perpaid.AdvanceItemId }}" data-money="{{perpaid.NewSum}}">立即充值</view> | |
15 | 15 | </image> |
16 | 16 | </block> |
17 | 17 | ... | ... |
pages/user/index/index.js
... | ... | @@ -12,25 +12,26 @@ Page({ |
12 | 12 | * 页面的初始数据 |
13 | 13 | */ |
14 | 14 | data: { |
15 | - length:150, | |
16 | - iurl: s.imghost, | |
17 | - defaultAvatar:s.imghost+"/miniapp/images/no-head.jpg", | |
18 | - userInfo:null, | |
19 | - toji:null, //统计相关 | |
20 | - txmon:0, | |
21 | - byquan: 0, | |
22 | - yuer: 0, | |
23 | - | |
24 | - currentPage:1, | |
25 | - recommend_list:[], | |
26 | - tc_hide: true, | |
27 | - sw_index:0, | |
28 | - qy_list:null, | |
29 | - gradeId:null, | |
30 | - is_init:0, | |
31 | - | |
32 | - cz_val:0, | |
33 | - full_cz_val:0, | |
15 | + length:150, | |
16 | + iurl: s.imghost, | |
17 | + defaultAvatar:s.imghost+"/miniapp/images/no-head.jpg", | |
18 | + userInfo:null, | |
19 | + toji:null, //统计相关 | |
20 | + txmon:0, | |
21 | + byquan: 0, | |
22 | + yuer: 0, | |
23 | + | |
24 | + currentPage:1, | |
25 | + recommend_list:[], | |
26 | + tc_hide: true, | |
27 | + sw_index:0, | |
28 | + qy_list:null, | |
29 | + gradeId:null, | |
30 | + is_init:0, | |
31 | + | |
32 | + cz_val:0, | |
33 | + full_cz_val:0, | |
34 | + is_dengji:0, //是不是等级 | |
34 | 35 | }, |
35 | 36 | |
36 | 37 | /** |
... | ... | @@ -45,7 +46,6 @@ Page({ |
45 | 46 | var s = this,th=s,need_money=0,cur_g_num=0; |
46 | 47 | getApp().get_isbuy(th.setappdata); |
47 | 48 | if(getApp().globalData.user_id) getApp().requestCardNum(); |
48 | - | |
49 | 49 | /*------会员登录------*/ |
50 | 50 | app.getUserFir(async function(e){ |
51 | 51 | if(e!=undefined && e!=null){ |
... | ... | @@ -188,6 +188,21 @@ Page({ |
188 | 188 | |
189 | 189 | /*-- 获取 --*/ |
190 | 190 | th.requestRecommend(); |
191 | + | |
192 | + /*-------系统是否开通等级卡,会员是等级卡-----*/ | |
193 | + getApp().getConfig2(function (e) { | |
194 | + var t_swi=e.switch_list; | |
195 | + if(t_swi) t_swi=JSON.parse(t_swi) | |
196 | + if(parseInt(t_swi.rank_switch)==2){ | |
197 | + var userInfo=th.data.userInfo; | |
198 | + if(userInfo.card_field!=null && userInfo.card_field!=undefined && userInfo.card_field!="" ){ | |
199 | + th.setData({is_dengji:1}) | |
200 | + }else{ | |
201 | + th.setData({is_dengji:2}) | |
202 | + } | |
203 | + } | |
204 | + }) | |
205 | + | |
191 | 206 | } |
192 | 207 | }); |
193 | 208 | ... | ... |
pages/user/index/index.wxml
1 | 1 | <view class="xc-page"> |
2 | -<view class="xc-user"> | |
3 | - <view class="xc-head rel"> | |
4 | - <image class="xc-background" src="{{iurl}}/miniapp/images/user_index_powder.jpg"> | |
5 | - <view class="flex-space-between abs xc-user-frame"> | |
6 | - <view class="xc-user-left flex" wx:if="{{userInfo}}"> | |
7 | - <image class="xc-user-img circle" | |
8 | - bindtap="go_info" | |
9 | - src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image> | |
10 | - <view class="xc-uesr-name"> | |
11 | - {{userInfo.nickname}} <view class="hvip" wx:if='{{GradeName && is_init}}'><image class="vip-mem" src="{{iurl}}/miniapp/images/vip_hg0.png"></image>{{GradeName}}</view> | |
12 | - <view class="flex fs24 xc-grow-ups" style="margin-left:8rpx;margin-top:6rpx" wx:if="{{is_init && gradeId}}" bindtap='jump'> | |
13 | - <block wx:if="{{cz_val<full_cz_val}}"> | |
14 | - {{" "}}<text class="grow-up-val">成长值</text> <view style='margin-left:5rpx; '>{{cz_val}} / {{need_money}}</view> | |
15 | - </block> | |
16 | - <block wx:else> | |
17 | - {{" "}}<text class="grow-up-val">成长值</text> {{cz_val}} | |
18 | - </block> | |
19 | - </view> | |
20 | - </view> | |
2 | + <view class="xc-user"> | |
3 | + <view class="xc-head rel"> | |
4 | + <image class="xc-background" src="{{iurl}}/miniapp/images/user_index_powder.jpg"> | |
5 | + <view class="flex-space-between abs xc-user-frame"> | |
6 | + <view class="xc-user-left flex" wx:if="{{userInfo}}"> | |
7 | + <image class="xc-user-img circle" bindtap="go_info" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image> | |
8 | + <view class="xc-uesr-name"> | |
9 | + {{userInfo.nickname}} | |
10 | + <view class="hvip" wx:if='{{GradeName && is_init}}'> | |
11 | + <image class="vip-mem" src="{{iurl}}/miniapp/images/vip_hg0.png"></image>{{GradeName}}</view> | |
12 | + <view class="flex fs24 xc-grow-ups" style="margin-left:8rpx;margin-top:6rpx" wx:if="{{is_init && gradeId}}" bindtap='jump'> | |
13 | + <block wx:if="{{cz_val<full_cz_val}}"> | |
14 | + {{" "}} | |
15 | + <text class="grow-up-val">成长值</text> | |
16 | + <view style='margin-left:5rpx; '>{{cz_val}} / {{need_money}}</view> | |
17 | + </block> | |
18 | + <block wx:else> | |
19 | + {{" "}} | |
20 | + <text class="grow-up-val">成长值</text> {{cz_val}} | |
21 | + </block> | |
22 | + </view> | |
23 | + </view> | |
21 | 24 | |
22 | - </view> | |
25 | + </view> | |
23 | 26 | |
24 | - <view class="xc-user-left flex" wx:else bindtap="gobindtel"> | |
25 | - <image class="xc-user-img circle" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image> | |
26 | - <view class="xc-uesr-name">请点击注册</view> | |
27 | - </view> | |
27 | + <view class="xc-user-left flex" wx:else bindtap="gobindtel"> | |
28 | + <image class="xc-user-img circle" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image> | |
29 | + <view class="xc-uesr-name">请点击注册</view> | |
30 | + </view> | |
28 | 31 | |
29 | 32 | |
30 | - </view> | |
31 | - <view wx:if="{{userInfo}}" class="xc-qrcode-frame abs flex-center "> | |
32 | - <!-- {{iurl}}/miniapp --> | |
33 | - <image bindtap='show_tc' class=" xc-qrcode "src="{{iurl}}/miniapp/images/qrcode1.png"></image> | |
34 | - </view> | |
35 | - <view class="flex-vertical abs xc-grow-frame rel" style="display: none"> | |
36 | - <view class="xc-grow-up">成长值</view> | |
33 | + </view> | |
34 | + <view wx:if="{{userInfo}}" class="xc-qrcode-frame abs flex-center "> | |
35 | + <!-- {{iurl}}/miniapp --> | |
36 | + <image bindtap='show_tc' class=" xc-qrcode " src="{{iurl}}/miniapp/images/qrcode1.png"></image> | |
37 | + </view> | |
38 | + <view class="flex-vertical abs xc-grow-frame rel" style="display: none"> | |
39 | + <view class="xc-grow-up">成长值</view> | |
37 | 40 | |
38 | - <view class="xc-line-not rel"> | |
39 | - <image class="xc-bj-img abs" src="{{iurl}}/miniapp/images/baijing.png"></image> | |
40 | - <image class="xc-zs-img abs" src="{{iurl}}/miniapp/images/zhuangshi.png"></image> | |
41 | - <view class="xc-line-Yes abs" style="width:{{length}}rpx;"></view> | |
42 | - </view> | |
43 | - | |
44 | - <view class="xc-grow-val">5000/10000</view> | |
45 | - </view> | |
46 | - <view class="flex-equality abs xc-assets"> | |
47 | - <view class="t-c typefont" bindtap='balance'>{{yuer?yuer:0}}<view class='numfont'>余额</view></view> | |
48 | - <view class="t-c typefont" bindtap='deposit'>{{udata.Balance?udata.Balance:0}}<view class='numfont'>预存款</view></view> | |
49 | - <view class="t-c typefont" bindtap='integral'>{{udata.Integral?udata.Integral:0}}<view class='numfont'>积分</view></view> | |
50 | - <view class="t-c typefont" bindtap='coupon'>{{udata.CashCount+byquan?udata.CashCount+byquan:0}}<view class='numfont'>优惠券</view></view> | |
51 | - </view> | |
52 | - </image> | |
53 | - | |
54 | - </view> | |
55 | - <view class="xc-add-member-frame flex-level"> | |
56 | - <view class="xc-add-member flex-vertical four-level-word"> | |
57 | - <image class="xc-icon" src="{{iurl}}/miniapp/images/add.png" ></image> | |
58 | - <view class="member"> 加入会员</view> | |
59 | - <view class="t-c xc-save-money"> 预计可省345元</view> | |
60 | - <view class="xc-opening-button t-c"> | |
61 | - <view class="xc-opening four-level-word">立即开通</view> | |
62 | - </view> | |
63 | - </view> | |
64 | -</view> | |
41 | + <view class="xc-line-not rel"> | |
42 | + <image class="xc-bj-img abs" src="{{iurl}}/miniapp/images/baijing.png"></image> | |
43 | + <image class="xc-zs-img abs" src="{{iurl}}/miniapp/images/zhuangshi.png"></image> | |
44 | + <view class="xc-line-Yes abs" style="width:{{length}}rpx;"></view> | |
45 | + </view> | |
46 | + | |
47 | + <view class="xc-grow-val">5000/10000</view> | |
48 | + </view> | |
49 | + <view class="flex-equality abs xc-assets"> | |
50 | + <view class="t-c typefont" bindtap='balance'>{{yuer?yuer:0}} | |
51 | + <view class='numfont'>余额</view> | |
52 | + </view> | |
53 | + <view class="t-c typefont" bindtap='deposit'>{{udata.Balance?udata.Balance:0}} | |
54 | + <view class='numfont'>预存款</view> | |
55 | + </view> | |
56 | + <view class="t-c typefont" bindtap='integral'>{{udata.Integral?udata.Integral:0}} | |
57 | + <view class='numfont'>积分</view> | |
58 | + </view> | |
59 | + <view class="t-c typefont" bindtap='coupon'>{{udata.CashCount+byquan?udata.CashCount+byquan:0}} | |
60 | + <view class='numfont'>优惠券</view> | |
61 | + </view> | |
62 | + </view> | |
63 | + </image> | |
64 | + | |
65 | + </view> | |
66 | + <view class="xc-add-member-frame flex-level rel addplus" wx:if="{{is_dengji==2}}"> | |
67 | + <view class="xc-add-member flex-vertical four-level-word"> | |
68 | + <image class="xc-icon" src="{{iurl}}/miniapp/images/user/user_vip.png"></image> | |
69 | + <view class="member"> 加入plus会员</view> | |
70 | + <view class="t-c xc-save-money"> 预计可省3031元</view> | |
71 | + <view class="xc-opening-button t-c" data-url="/pages/user/plus/plus" bindtap="goto"> | |
72 | + <view class="xc-opening fs20">立即开通</view> | |
73 | + </view> | |
74 | + </view> | |
75 | + </view> | |
65 | 76 | |
66 | - </view> | |
67 | - <view class="xc-after-sale rel"> | |
68 | - <view class="xc-after-sale-left flex-center-around"> | |
69 | - <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=1"> | |
70 | - <image class="xc-no-money" src="{{iurl}}/miniapp/images/daifuk.png"></image> | |
71 | - <view class=" xc-word-color four-level-word">待付款</view> | |
72 | - <text class="order-num" hidden='{{toji.wait_pay>0?"":"true"}}'>{{toji.wait_pay}}</text> | |
73 | - </view> | |
74 | - <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=3"> | |
75 | - <image class="xc-await" src="{{iurl}}/miniapp/images/shouhuo1.png"></image> | |
76 | - <view class="xc-word-color four-level-word">待收货</view> | |
77 | - <text class="order-num" hidden='{{toji.wait_receive>0?"":"true"}}'>{{toji.wait_receive}}</text> | |
78 | - </view> | |
79 | - <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=4"> | |
80 | - <image class="xc-no-money" src="{{iurl}}/miniapp/images/dpr1.png"></image> | |
81 | - <view class="xc-word-color four-level-word">待评论</view> | |
82 | - <text class="order-num" hidden='{{toji.wait_pj>0?"":"true"}}'>{{toji.wait_pj}}</text> | |
83 | - </view> | |
84 | - <view class="t-c margin-auto rel" style='margin-left:30rpx;' bindtap="go_order" data-url="/pages/user/return_goods_list/return_goods_list" > | |
85 | - <image class="xc-no-money" src="{{iurl}}/miniapp/images/shouh1.png"></image> | |
86 | - <view style='height:36rpx;'> </view> | |
87 | - <view class="xc-word-color four-level-word abs">售后/退款</view> | |
88 | - <!--<text class="order-num" hidden='{{toji.wait_return>0>0?"":"true"}}' style="right: -20rpx">{{toji.wait_return}}</text>--> | |
89 | - </view> | |
77 | + </view> | |
78 | + <view class="xc-after-sale rel"> | |
79 | + <view class="xc-after-sale-left flex-center-around"> | |
80 | + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=1"> | |
81 | + <image class="xc-no-money" src="{{iurl}}/miniapp/images/daifuk.png"></image> | |
82 | + <view class=" xc-word-color four-level-word">待付款</view> | |
83 | + <text class="order-num" hidden='{{toji.wait_pay>0?"":"true"}}'>{{toji.wait_pay}}</text> | |
84 | + </view> | |
85 | + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=3"> | |
86 | + <image class="xc-await" src="{{iurl}}/miniapp/images/shouhuo1.png"></image> | |
87 | + <view class="xc-word-color four-level-word">待收货</view> | |
88 | + <text class="order-num" hidden='{{toji.wait_receive>0?"":"true"}}'>{{toji.wait_receive}}</text> | |
89 | + </view> | |
90 | + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=4"> | |
91 | + <image class="xc-no-money" src="{{iurl}}/miniapp/images/dpr1.png"></image> | |
92 | + <view class="xc-word-color four-level-word">待评论</view> | |
93 | + <text class="order-num" hidden='{{toji.wait_pj>0?"":"true"}}'>{{toji.wait_pj}}</text> | |
94 | + </view> | |
95 | + <view class="t-c margin-auto rel" style='margin-left:30rpx;' bindtap="go_order" data-url="/pages/user/return_goods_list/return_goods_list"> | |
96 | + <image class="xc-no-money" src="{{iurl}}/miniapp/images/shouh1.png"></image> | |
97 | + <view style='height:36rpx;'> </view> | |
98 | + <view class="xc-word-color four-level-word abs">售后/退款</view> | |
99 | + <!--<text class="order-num" hidden='{{toji.wait_return>0>0?"":"true"}}' style="right: -20rpx">{{toji.wait_return}}</text>--> | |
100 | + </view> | |
90 | 101 | |
91 | - <view class='xc-hump abs'></view> | |
92 | - <view class="flex-verticalr xc-after-sale-right"> | |
93 | - <view class=" xc-order t-c" bindtap="go_order" data-url="/pages/user/order_list/order_list" > | |
94 | - <image class="xc-no-money xc-my-order" src="{{iurl}}/miniapp/images/dindan.png"></image> | |
95 | - <view class="xc-word-color four-level-word" style='margin-left:20rpx;'>我的订单</view> | |
102 | + <view class='xc-hump abs'></view> | |
103 | + <view class="flex-verticalr xc-after-sale-right"> | |
104 | + <view class=" xc-order t-c" bindtap="go_order" data-url="/pages/user/order_list/order_list"> | |
105 | + <image class="xc-no-money xc-my-order" src="{{iurl}}/miniapp/images/dindan.png"></image> | |
106 | + <view class="xc-word-color four-level-word" style='margin-left:20rpx;'>我的订单</view> | |
107 | + </view> | |
96 | 108 | </view> |
109 | + | |
97 | 110 | </view> |
98 | 111 | |
99 | - </view> | |
100 | - | |
101 | - </view> | |
112 | + </view> | |
113 | + | |
114 | + <!-- 我的权益 --> | |
115 | + <view class="xc-my-equity-frame" wx:if="{{qy_list!=null && is_init && gradeId}}"> | |
116 | + <view class="xc-equity-title flex-level" bindtap="go_qy"> | |
117 | + <view class="xc-title-frame flex-space-between"> | |
118 | + <view class="flex-vertical xc-title-content"> | |
119 | + <image class="xc-title-img" src="{{iurl}}/miniapp/images/medal.png"></image> | |
120 | + <view class="three-level-word"> | |
121 | + 我的权益 | |
122 | + </view> | |
123 | + </view> | |
124 | + </view> | |
125 | + <view class="three-level-word xc-more-frame flex-vertical"> | |
126 | + <view class="three-level-word xc-more">更多</view> | |
127 | + <view class="bg_right xc-more-click bcolor"></view> | |
128 | + </view> | |
129 | + </view> | |
130 | + <view class="xc-specific-more-frame flex-vertical"> | |
102 | 131 | |
103 | - <!-- 我的权益 --> | |
104 | - <view class="xc-my-equity-frame" wx:if="{{qy_list!=null && is_init && gradeId}}"> | |
105 | - <view class="xc-equity-title flex-level" bindtap="go_qy"> | |
106 | - <view class="xc-title-frame flex-space-between"> | |
107 | - <view class="flex-vertical xc-title-content"> | |
108 | - <image class="xc-title-img" src="{{iurl}}/miniapp/images/medal.png"></image> | |
109 | - <view class="three-level-word" > | |
110 | - 我的权益 | |
111 | - </view> | |
112 | - </view> | |
113 | - </view> | |
114 | - <view class="three-level-word xc-more-frame flex-vertical"> | |
115 | - <view class="three-level-word xc-more">更多</view> | |
116 | - <view class="bg_right xc-more-click bcolor"></view> | |
117 | - </view> | |
118 | - </view> | |
119 | - <view class="xc-specific-more-frame flex-vertical"> | |
120 | - | |
121 | 132 | <view bindtap="click_pre"> |
122 | - <view class="bg_left xc-left bcolor" ></view> | |
133 | + <view class="bg_left xc-left bcolor"></view> | |
123 | 134 | </view> |
124 | 135 | |
125 | - <swiper current="{{sw_index}}" style='width:82.7%; height:108rpx' | |
126 | - bindchange='onSli' | |
127 | - indicator-dots="{{false}}" autoplay="{{false}}" > | |
128 | - | |
129 | - <swiper-item wx:for="{{qy_list}}" wx:for-item="aitem" wx:for-index="pidx" > | |
130 | - <view class="flex xc-middle"> | |
131 | - | |
132 | - <view class="xc-center-frame t-c" wx:for="{{aitem}}" | |
133 | - data-img="{{item.PrivilegeImageUrl}}" | |
134 | - data-no="{{item.PrivilegeType}}" | |
135 | - data-ind="{{index}}" | |
136 | - data-find="{{pidx}}" | |
137 | - bindtap="go_qy_url"> | |
138 | - <!-- <text>qy_list.privilegeICOUrl</text> --> | |
139 | - <image class="xc-center-img {{item.ishas==1?'':'img_gray'}}"src="{{item.PrivilegeICOUrl}}"></image> | |
140 | - <view class="four-level-word">{{item.PrivilegeName}}</view> | |
141 | - </view> | |
142 | - </view> | |
143 | - </swiper-item> | |
136 | + <swiper current="{{sw_index}}" style='width:82.7%; height:108rpx' bindchange='onSli' indicator-dots="{{false}}" autoplay="{{false}}"> | |
137 | + | |
138 | + <swiper-item wx:for="{{qy_list}}" wx:for-item="aitem" wx:for-index="pidx"> | |
139 | + <view class="flex xc-middle"> | |
144 | 140 | |
145 | - </swiper> | |
141 | + <view class="xc-center-frame t-c" wx:for="{{aitem}}" data-img="{{item.PrivilegeImageUrl}}" data-no="{{item.PrivilegeType}}" data-ind="{{index}}" data-find="{{pidx}}" bindtap="go_qy_url"> | |
142 | + <!-- <text>qy_list.privilegeICOUrl</text> --> | |
143 | + <image class="xc-center-img {{item.ishas==1?'':'img_gray'}}" src="{{item.PrivilegeICOUrl}}"></image> | |
144 | + <view class="four-level-word">{{item.PrivilegeName}}</view> | |
145 | + </view> | |
146 | + </view> | |
147 | + </swiper-item> | |
148 | + | |
149 | + </swiper> | |
146 | 150 | |
147 | - <view bindtap="click_next"> | |
148 | - <view class="bg_right xc-right bcolor mt" ></view> | |
151 | + <view bindtap="click_next"> | |
152 | + <view class="bg_right xc-right bcolor mt"></view> | |
149 | 153 | </view> |
150 | - </view> | |
151 | - </view> | |
152 | - <!-- 工具与服务 --> | |
153 | - <view class="xc-tool-service"> | |
154 | - <view class="xc-tool-service-title flex-vertical"> | |
155 | - <image class="xc-tool-service-img" src="{{iurl}}/miniapp/images/gj.png"></image> | |
156 | - <view class="three-level-word xc-tool-service-word">工具与服务</view> | |
157 | - </view> | |
158 | - <view class="xc-project-frame"> | |
159 | - <!-- 跳转页面 --> | |
160 | - <view class="center_v"> | |
161 | - <view class="item t-c" data-url="/pages/team/team_ping/team_ping" bindtap="goto"> | |
162 | - <image class="xc-center-img " src="{{iurl}}/miniapp/images/pindan.png"></image> | |
163 | - <view class="fs26">我的拼单</view> | |
164 | - </view> | |
165 | - <view class="item t-c" data-url="/pages/activity/seckill_list/seckill_list" bindtap="goto"> | |
166 | - <image class="xc-center-img " src="{{iurl}}/miniapp/images/miaosha.png"></image> | |
167 | - <view class="fs26">秒杀活动</view> | |
168 | - </view> | |
169 | - <view class="item t-c" bindtap="go_qy" wx:if="{{qy_list!=null && is_init && gradeId}}"> | |
170 | - <image class="xc-center-img " src="{{iurl}}/miniapp/images/quanyi2.png"></image> | |
171 | - <view class="fs26">我的权益</view> | |
172 | - </view> | |
154 | + </view> | |
155 | + </view> | |
156 | + <!-- 工具与服务 --> | |
157 | + <view class="xc-tool-service"> | |
158 | + <view class="xc-tool-service-title flex-vertical"> | |
159 | + <image class="xc-tool-service-img" src="{{iurl}}/miniapp/images/gj.png"></image> | |
160 | + <view class="three-level-word xc-tool-service-word">工具与服务</view> | |
161 | + </view> | |
162 | + <view class="xc-project-frame"> | |
163 | + <!-- 跳转页面 --> | |
164 | + <view class="center_v"> | |
165 | + <view class="item t-c" data-url="/pages/team/team_ping/team_ping" bindtap="goto"> | |
166 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/pindan.png"></image> | |
167 | + <view class="fs26">我的拼单</view> | |
168 | + </view> | |
169 | + <view class="item t-c" data-url="/pages/activity/seckill_list/seckill_list" bindtap="goto"> | |
170 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/miaosha.png"></image> | |
171 | + <view class="fs26">秒杀活动</view> | |
172 | + </view> | |
173 | + <view class="item t-c" bindtap="go_qy" wx:if="{{qy_list!=null && is_init && gradeId}}"> | |
174 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/quanyi2.png"></image> | |
175 | + <view class="fs26">我的权益</view> | |
176 | + </view> | |
173 | 177 | |
174 | - <view class="item t-c" bindtap="contactService"> | |
175 | - <image class="xc-center-img " src="{{iurl}}/miniapp/images/kefu.png"></image> | |
176 | - <view class="fs26">联系客服</view> | |
177 | - </view> | |
178 | + <view class="item t-c" bindtap="contactService"> | |
179 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/kefu.png"></image> | |
180 | + <view class="fs26">联系客服</view> | |
181 | + </view> | |
178 | 182 | |
183 | + <view class="item t-c" data-url="/pages/user/cardinfo/cardinfo" bindtap="goto" wx:if="{{is_dengji==1}}"> | |
184 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/plus/privilege_o.png"></image> | |
185 | + <view class="fs26">plus会员</view> | |
186 | + </view> | |
179 | 187 | |
180 | - <view class="item t-c" data-url="/pages/user/collect_list/collect_list" bindtap="goto"> | |
181 | - <image class="xc-center-img " src="{{iurl}}/miniapp/images/collections.png"></image> | |
182 | - <view class="fs26">收藏夹</view> | |
183 | - </view> | |
188 | + <view class="item t-c" data-url="/pages/user/collect_list/collect_list" bindtap="goto"> | |
189 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/collections.png"></image> | |
190 | + <view class="fs26">收藏夹</view> | |
191 | + </view> | |
184 | 192 | |
185 | - <view class="item t-c" data-url="/pages/user/comment/comment" bindtap="goto" > | |
186 | - <image class="xc-center-img " src="{{iurl}}/miniapp/images/evaluate.png"></image> | |
187 | - <view class="fs26">我的评价</view> | |
188 | - </view> | |
193 | + <view class="item t-c" data-url="/pages/user/comment/comment" bindtap="goto"> | |
194 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/evaluate.png"></image> | |
195 | + <view class="fs26">我的评价</view> | |
196 | + </view> | |
189 | 197 | |
190 | - <view class="item t-c" data-url="/pages/user/address_list/address_list" bindtap="goto" > | |
191 | - <image class="xc-center-img " src="{{iurl}}/miniapp/images/add2.png"></image> | |
192 | - <view class="four-level-word">我的地址</view> | |
193 | - </view> | |
198 | + <view class="item t-c" data-url="/pages/user/address_list/address_list" bindtap="goto"> | |
199 | + <image class="xc-center-img " src="{{iurl}}/miniapp/images/add2.png"></image> | |
200 | + <view class="four-level-word">我的地址</view> | |
201 | + </view> | |
194 | 202 | |
195 | - </view> | |
203 | + </view> | |
196 | 204 | |
197 | 205 | |
198 | 206 | |
199 | - </view> | |
200 | - </view> | |
201 | - <view style='width:100%;height:73rpx;'> | |
202 | - <view class="xc-recommend-goods flex-center"> | |
203 | - | |
204 | - <view class="circle xc-small"> | |
205 | - </view> | |
206 | - <view class="circle xc-zhong"> | |
207 | - </view> | |
208 | - <view class="circle xc-big"> | |
209 | - </view> | |
210 | - <view class="three-level-word xc-recommend">为你推荐</view> | |
211 | - <view class="circle xc-big"> | |
212 | - </view> | |
213 | - <view class="circle xc-zhong"> | |
214 | - </view> | |
215 | - <view class="circle xc-small"style='margin-left:15rpx;'> | |
216 | - <!-- </view> --> | |
217 | 207 | </view> |
208 | + </view> | |
209 | + <view style='width:100%;height:73rpx;'> | |
210 | + <view class="xc-recommend-goods flex-center"> | |
211 | + | |
212 | + <view class="circle xc-small"> | |
213 | + </view> | |
214 | + <view class="circle xc-zhong"> | |
215 | + </view> | |
216 | + <view class="circle xc-big"> | |
217 | + </view> | |
218 | + <view class="three-level-word xc-recommend">为你推荐</view> | |
219 | + <view class="circle xc-big"> | |
220 | + </view> | |
221 | + <view class="circle xc-zhong"> | |
222 | + </view> | |
223 | + <view class="circle xc-small" style='margin-left:15rpx;'> | |
224 | + <!-- </view> --> | |
225 | + </view> | |
218 | 226 | </view> |
219 | - </view> | |
220 | - <!-- 显示商品 --> | |
221 | - <view class="xc-goods "> | |
222 | - <view> | |
223 | - <view bindtap="go_goods" data-gid="{{item.goods_id}}" class="rel xc-goods-recommend {{index%2==0?'':'ml'}}" wx:for="{{recommend_list}}"> | |
224 | - <image class="xc-goods-imgs" src="{{iurl+item.original_img}}"></image> | |
225 | - <view class='xc-goods-bottom abs'> | |
226 | - <view class="flex monry-frame"> | |
227 | + </view> | |
228 | + <!-- 显示商品 --> | |
229 | + <view class="xc-goods "> | |
230 | + <view> | |
231 | + <view bindtap="go_goods" data-gid="{{item.goods_id}}" class="rel xc-goods-recommend {{index%2==0?'':'ml'}}" wx:for="{{recommend_list}}"> | |
232 | + <image class="xc-goods-imgs" src="{{iurl+item.original_img}}"></image> | |
233 | + <view class='xc-goods-bottom abs'> | |
234 | + <view class="flex monry-frame"> | |
227 | 235 | <view class="flex"> |
228 | - <view class="three-level-word money-color-val rmb-symbol" >¥</view> | |
236 | + <view class="three-level-word money-color-val rmb-symbol">¥</view> | |
229 | 237 | <view class="two-level-word money-color-val">{{item.shop_price}}</view> |
230 | - </view> | |
231 | - <view class="five-level-word word-line xc-original-price"> 原价¥{{item.market_price}}</view> | |
232 | - </view> | |
233 | - <view class="xc-good-explain fs26 ellipsis-2 ">{{item.goods_name}}</view> | |
234 | - </view> | |
235 | - </view> | |
236 | - </view> | |
237 | - | |
238 | - <view class="xc-content" wx:if="{{nomore}}"> | |
239 | - <view class="xc-middle-line xc-frame"> | |
240 | - <view class="xc-line-text">已经到底</view > | |
241 | - </view> | |
238 | + </view> | |
239 | + <view class="five-level-word word-line xc-original-price"> 原价¥{{item.market_price}}</view> | |
242 | 240 | </view> |
243 | - </view> | |
241 | + <view class="xc-good-explain fs26 ellipsis-2 ">{{item.goods_name}}</view> | |
242 | + </view> | |
243 | + </view> | |
244 | + </view> | |
245 | + | |
246 | + <view class="xc-content" wx:if="{{nomore}}"> | |
247 | + <view class="xc-middle-line xc-frame"> | |
248 | + <view class="xc-line-text">已经到底</view> | |
249 | + </view> | |
250 | + </view> | |
244 | 251 | </view> |
252 | +</view> | |
245 | 253 | |
246 | 254 | <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"--> |
247 | 255 | <view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'> |
248 | - <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view> | |
249 | - <view class="modal-body"> | |
250 | - <view class="modal-content"> | |
251 | - <view class="flex"> | |
252 | - <image src="{{userInfo.head_pic}}" class="hd_img"></image> | |
253 | - <view class="ctent_txt"> | |
254 | - <view class='txt1'>{{userInfo.nickname}} | |
255 | - <image wx:if="{{userInfo.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image> | |
256 | - <image wx:else class="arrow-right fu" src="{{iurl}}/miniapp/images/user/man.png"></image> | |
257 | - </view> | |
258 | - <view wx:if="{{userInfo.address}}" class='txt2'>{{userInfo.address}}</view> | |
259 | - </view> | |
260 | - </view> | |
261 | - <view class="m_ta"> | |
262 | - <!--<image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{userInfo.mobile}}'></image>--> | |
263 | - <canvas class="g_img" canvas-id="qrcode" /> | |
264 | - </view> | |
265 | - <view class="s_sao">扫一扫上面的二维码图案,即可消费</view> | |
266 | - </view> | |
267 | - </view> | |
256 | + <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view> | |
257 | + <view class="modal-body"> | |
258 | + <view class="modal-content"> | |
259 | + <view class="flex"> | |
260 | + <image src="{{userInfo.head_pic}}" class="hd_img"></image> | |
261 | + <view class="ctent_txt"> | |
262 | + <view class='txt1'>{{userInfo.nickname}} | |
263 | + <image wx:if="{{userInfo.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image> | |
264 | + <image wx:else class="arrow-right fu" src="{{iurl}}/miniapp/images/user/man.png"></image> | |
265 | + </view> | |
266 | + <view wx:if="{{userInfo.address}}" class='txt2'>{{userInfo.address}}</view> | |
267 | + </view> | |
268 | + </view> | |
269 | + <view class="m_ta"> | |
270 | + <!--<image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{userInfo.mobile}}'></image>--> | |
271 | + <canvas class="g_img" canvas-id="qrcode" /> | |
272 | + </view> | |
273 | + <view class="s_sao">扫一扫上面的二维码图案,即可消费</view> | |
274 | + </view> | |
275 | + </view> | |
268 | 276 | </view> |
269 | 277 | |
270 | 278 | <pop_txt id="pop_txt"></pop_txt> |
271 | 279 | \ No newline at end of file | ... | ... |
pages/user/index/index.wxss
... | ... | @@ -56,7 +56,9 @@ |
56 | 56 | border-radius:20px 0 0 38rpx; |
57 | 57 | padding-right:12rpx; |
58 | 58 | padding-left:12rpx; |
59 | - | |
59 | +} | |
60 | +.addplus{ | |
61 | + width: 100%; | |
60 | 62 | } |
61 | 63 | .xc-grade{ |
62 | 64 | width: 25rpx; |
... | ... | @@ -143,18 +145,18 @@ height: 84rpx; |
143 | 145 | } |
144 | 146 | |
145 | 147 | .xc-add-member{ |
146 | - display:none; | |
148 | + background-size: 100%; | |
147 | 149 | margin-top:10rpx; |
148 | - color: #fff; | |
150 | + color: rgb(238, 205, 172); | |
149 | 151 | width: 730rpx; |
150 | - height: 74rpx; | |
152 | + height: 75rpx; | |
151 | 153 | border-radius: 15rpx 15rpx 0 0; |
152 | - background: url("https://mshopimg.yolipai.net/miniapp/images/user_index_gray.png") no-repeat center; | |
154 | + background: url("data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QN6aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAxNCA3OS4xNTE0ODEsIDIwMTMvMDMvMTMtMTI6MDk6MTUgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MDhlYTAxZTktZGVjMy00MTc1LWE4MzEtNWQ0NjFhNWIzOGRjIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdEMDAzN0JDRjNBQTExRTk4QjYzRjhEM0E3NkM1REQ0IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdEMDAzN0JCRjNBQTExRTk4QjYzRjhEM0E3NkM1REQ0IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NGY5ODE2MS1mMjVjLWIzNDItOGYxNi1lMTNkY2Q2ZDJiMDgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDhlYTAxZTktZGVjMy00MTc1LWE4MzEtNWQ0NjFhNWIzOGRjIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3Jk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") no-repeat center; | |
153 | 155 | } |
154 | 156 | .xc-add-member .xc-icon{ |
155 | 157 | width: 30rpx; |
156 | 158 | height: 30rpx; |
157 | - margin-left:50rpx; | |
159 | + margin-left:40rpx; | |
158 | 160 | |
159 | 161 | } |
160 | 162 | .xc-add-member .member{ |
... | ... | @@ -162,23 +164,23 @@ height: 84rpx; |
162 | 164 | |
163 | 165 | } |
164 | 166 | .xc-add-member .xc-save-money{ |
165 | - border-left: 2rpx solid #fff; | |
167 | + border-left: 2rpx solid rgb(238, 205, 172); | |
166 | 168 | padding-left: 15rpx; |
167 | 169 | margin-left: 15rpx; |
168 | 170 | |
169 | 171 | } |
170 | 172 | |
171 | 173 | .xc-add-member .xc-opening-button{ |
172 | - width: 130rpx; | |
173 | - margin-left:180rpx; | |
174 | + width: 120rpx; | |
175 | + margin-left:140rpx; | |
174 | 176 | } |
175 | 177 | |
176 | 178 | .xc-opening{ |
177 | 179 | border-radius: 20rpx; |
178 | - background: #fe547c; | |
179 | - color: #fff; | |
180 | - height:36rpx; | |
181 | - line-height: 36rpx; | |
180 | + background: rgb(238, 205, 172); | |
181 | + height:34rpx; | |
182 | + line-height: 34rpx; | |
183 | + color:#000; | |
182 | 184 | } |
183 | 185 | .xc-after-sale{ |
184 | 186 | width:100%; | ... | ... |
pages/user/plus/plus.js
0 → 100644
1 | +var t = getApp(), | |
2 | + a = t.request, | |
3 | + o = t.globalData.setting, | |
4 | + os = o, | |
5 | + i = require("../../../utils/util.js"), | |
6 | + ut = i, | |
7 | + s = require("../../../utils/common.js"), | |
8 | + w = require("../../../utils/wxParse/wxParse.js"),t_pay = require("../../../utils/pay2.js"); | |
9 | + var regeneratorRuntime = require('../../../utils/runtime.js'); | |
10 | + | |
11 | +Page({ | |
12 | + /** | |
13 | + * 页面的初始数据 | |
14 | + */ | |
15 | + data: { | |
16 | + currentId: 0, | |
17 | + url: o.imghost, | |
18 | + screenWidth: 0, | |
19 | + screenheight: 0, | |
20 | + canvasHidden: true, | |
21 | + shareImgPath: null, | |
22 | + is_plusCard: "",//卡的列表 | |
23 | + imagePath: "", | |
24 | + is_pulscardname: "",//plus会员的名字 | |
25 | + is_card: 0,//用于判断是否是续费页和购买页面 0不是puls会员 | |
26 | + content: "",//等级卡规则 | |
27 | + is_card_rule: "",//等级卡规则判断用 | |
28 | + is_show: 0, //页面要加载完才能显示 | |
29 | + open_yq: 0, //显示打开邀请码的弹窗 | |
30 | + by_index:null, //购买卡的下班 | |
31 | + | |
32 | + isyaoqingma:0, //是否邀请码 | |
33 | + is_salesman:0, //是否营业员 | |
34 | + inp_recommon: null, //输入的邀请码 | |
35 | + inp_serviceman: null, //输入的营业员 | |
36 | + is_fengxiang: 0, //是不是分享过来的 | |
37 | + def_recommon: null, //分享人的手机号 | |
38 | + def_serviceman: null, //分享人的营业员 | |
39 | + fir_leader:0, | |
40 | + | |
41 | + }, | |
42 | + swiperChange: function (e) { | |
43 | + var currentId = e.detail.current; | |
44 | + this.setData({ | |
45 | + currentId: currentId | |
46 | + }) | |
47 | + }, | |
48 | + /** | |
49 | + * 生命周期函数--监听页面加载 | |
50 | + */ | |
51 | + onLoad: function (options) { | |
52 | + var that = this; | |
53 | + var store_id=getApp().globalData.setting.stoid; | |
54 | + //获取用户设备信息,屏幕宽度 | |
55 | + wx.getSystemInfo({ | |
56 | + success: res => { | |
57 | + that.setData({screenWidth: res.screenWidth}) | |
58 | + } | |
59 | + }) | |
60 | + var fir_leader = options.scene; | |
61 | + that.setData({fir_leader:fir_leader}) | |
62 | + if (fir_leader != null && fir_leader != undefined && fir_leader != "") { | |
63 | + var r_url="/api/weshop/plus/vip/mem/list?storeId=" + store_id + "&userId=" + fir_leader | |
64 | + getApp().request.get(r_url, { | |
65 | + success: function (res) { | |
66 | + var is_ok = 1; | |
67 | + if (res.data.code == -1) { | |
68 | + getApp().my_warnning("未找到分享会员", 0, that); | |
69 | + is_ok = 0; | |
70 | + that.back_user(); | |
71 | + } | |
72 | + var user_information = res.data.data[0]; | |
73 | + if (user_information['GradeCardID'] == null || user_information['GradeCardID'] == "" || user_information['GradeCardID'] == undefined) { | |
74 | + getApp().my_warnning("分享会员不是plus会员", 0, that); | |
75 | + is_ok = 0; | |
76 | + that.back_user(); | |
77 | + } | |
78 | + //--获取当前的时间-- | |
79 | + var now = ut.gettimestamp(); | |
80 | + if (user_information['ExpiryDate']) { | |
81 | + var str = user_information['ExpiryDate'].replace(/-/g, '/'); | |
82 | + var end = new Date(str); | |
83 | + end = Date.parse(end) / 1000; | |
84 | + if (end < now) { | |
85 | + getApp().my_warnning("分享plus会员已经过期", 0, that); | |
86 | + is_ok = 0; | |
87 | + that.back_user(); | |
88 | + } | |
89 | + } else { | |
90 | + getApp().my_warnning("分享plus会员已经过期", 0, that); | |
91 | + is_ok = 0; | |
92 | + that.back_user(); | |
93 | + } | |
94 | + if (is_ok == 1) { | |
95 | + that.setData({def_recommon: user_information.MobileTel, def_serviceman: user_information.StaffNo,is_fengxiang:1}) | |
96 | + //--先判断会员状态-- | |
97 | + var user_info=getApp().globalData.userInfo; | |
98 | + if(user_info==null || user_info.mobile==undefined || user_info.mobile=="" || user_info.mobile==null){ | |
99 | + wx.navigateTo({ url: '/pages/getphone/getphone?first_leader='+fir_leader, }) | |
100 | + return false; | |
101 | + } | |
102 | + } | |
103 | + } | |
104 | + }); | |
105 | + } | |
106 | + | |
107 | + //-----------商家配置信息----- 等级卡规则,是否又开邀请码,营业员------------ | |
108 | + getApp().request.get("/api/weshop/storeconfig/get/" + store_id, { | |
109 | + success: function (res) { | |
110 | + var is_cardrule = res.data.data.cardrules; | |
111 | + var switch_list= res.data.data.switch_list; | |
112 | + var swi_arr=JSON.parse(switch_list); | |
113 | + | |
114 | + w.wxParse("content", "html", is_cardrule, that, 6); | |
115 | + that.setData({ | |
116 | + is_card_rule: is_cardrule, | |
117 | + isyaoqingma:parseInt(swi_arr.isyaoqingma), | |
118 | + is_salesman:parseInt(swi_arr.is_staffno) | |
119 | + }); | |
120 | + } | |
121 | + }); | |
122 | + }, | |
123 | + | |
124 | + /** | |
125 | + * 生命周期函数--监听页面显示 | |
126 | + */ | |
127 | + onShow: function () { | |
128 | + var th=this,app_d=getApp().globalData; | |
129 | + getApp().request.get("/api/weshop/users/get/" + os.stoid + "/" + app_d.user_id, { | |
130 | + success: function (e) { | |
131 | + var userInfo = e.data.data; | |
132 | + if(userInfo['card_field']){ | |
133 | + var u_url = "/pages/user/cardinfo/cardinfo"; | |
134 | + wx.reLaunch({url: u_url}) | |
135 | + } | |
136 | + }, | |
137 | + }); | |
138 | + | |
139 | + this.getPlusCardType(); | |
140 | + }, | |
141 | + | |
142 | + /** | |
143 | + * 生命周期函数--监听页面隐藏 | |
144 | + */ | |
145 | + onHide: function () { | |
146 | + | |
147 | + }, | |
148 | + /** | |
149 | + * 页面上拉触底事件的处理函数 | |
150 | + */ | |
151 | + onReachBottom: function () { | |
152 | + var goods_list = this.selectComponent("#goods_list"); //组件的id | |
153 | + goods_list.get_list(); | |
154 | + }, | |
155 | + | |
156 | + //--- 获取卡类列表 --- | |
157 | + getPlusCardType: function (e) { | |
158 | + var storid = o.stoid; | |
159 | + var th = this; | |
160 | + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => { | |
161 | + var plusCard = res.data.data; | |
162 | + var arr = [1219, 2089, 3031]; | |
163 | + var new_arr = new Array(); | |
164 | + for (var i = 0; i < plusCard.length; i++) { | |
165 | + //plusCard[i].free=arr[i]; | |
166 | + var item = {"fee": plusCard[i].CardFee, 'index': i} | |
167 | + new_arr.push(item); | |
168 | + } | |
169 | + //根據距離遠近排序,越近在前面,升序 | |
170 | + new_arr.sort(function (a, b) { | |
171 | + if (a.fee < b.fee) { | |
172 | + return -1; | |
173 | + } else if (a.fee == b.fee) { | |
174 | + return 0; | |
175 | + } else { | |
176 | + return 1; | |
177 | + } | |
178 | + }); | |
179 | + //---给数组添加立省多少钱--- | |
180 | + for (i = 0; i < plusCard.length; i++) { | |
181 | + for (var j = 0; j < new_arr.length; j++) { | |
182 | + if (i == new_arr[j].index) { | |
183 | + plusCard[i].free = arr[j]; | |
184 | + break; | |
185 | + } | |
186 | + } | |
187 | + } | |
188 | + th.setData({ | |
189 | + is_plusCard: plusCard, is_show: 1 | |
190 | + }) | |
191 | + var goods_list = th.selectComponent("#goods_list"); //组件的id | |
192 | + goods_list.get_list(); | |
193 | + | |
194 | + }) | |
195 | + }, | |
196 | + | |
197 | + //--开通会员---接受前端index,弹起窗口--- | |
198 | + Opening: function (e) { | |
199 | + var th = this; | |
200 | + th.data.by_index = e.currentTarget.dataset.ind; | |
201 | + | |
202 | + if (th.data.is_fengxiang) { | |
203 | + th.buy_card(); | |
204 | + } else { | |
205 | + //--如果后台都没有勾邀请码,营业员,立即购买-- | |
206 | + if (!th.data.isyaoqingma && !th.data.is_salesman) {th.buy_card(); return false;} | |
207 | + th.setData({open_yq: 1}) | |
208 | + } | |
209 | + }, | |
210 | + | |
211 | + //--立即购买卡-- | |
212 | + buy_card: async function () { | |
213 | + var th = this; | |
214 | + var is_card = 0; | |
215 | + //--商家是不是有等级卡功能,开通的人数是不是够用,开通是时间是不是到期-- | |
216 | + await getApp().request.promiseGet("/api/weshop/plus/plus/card/register", | |
217 | + {data: {storeId: os.stoid}}).then(res => { | |
218 | + if (res.data.code == 0) is_card = 1; | |
219 | + }) | |
220 | + if (is_card == 0) getApp().my_warnning("请联系商家升级plus功能", 0, th); | |
221 | + var item = th.data.is_plusCard[th.data.by_index]; | |
222 | + var req = {}; | |
223 | + req.cardId = item.CardId; | |
224 | + req.rechargeType = 3; | |
225 | + //如果不是你导购,也不是等级会员分享 | |
226 | + if (th.data.is_fengxiang == 1) { | |
227 | + if (th.data.def_recommon) req.recommon = th.data.def_recommon | |
228 | + if (th.data.def_serviceman) req.serviceman = th.data.def_serviceman | |
229 | + } else { | |
230 | + //---后台要求要输入邀请码--- | |
231 | + if (th.data.isyaoqingma) { | |
232 | + if (!th.data.inp_recommon) { | |
233 | + getApp().my_warnning("请输入邀请码", 0, th); | |
234 | + return false; | |
235 | + } | |
236 | + req.recommon = th.data.inp_recommon | |
237 | + } | |
238 | + //--后台要求要输入营业员-- | |
239 | + if (th.data.is_salesman) { | |
240 | + if (!th.data.inp_serviceman) { | |
241 | + getApp().my_warnning("请输入营业员", 0, th); | |
242 | + return false; | |
243 | + } | |
244 | + req.serviceman = th.data.inp_serviceman | |
245 | + } | |
246 | + } | |
247 | + req.storeId = os.stoid; | |
248 | + req.userId = getApp().globalData.user_id; | |
249 | + //--如果有邀请码,和营业员的情况下-- | |
250 | + if(req.recommon || req.serviceman ) { | |
251 | + var req_data = {storeId: os.stoid, userId: req.userId}; | |
252 | + if(req.recommon) req_data.inviteCode=req.recommon; | |
253 | + if(req.serviceman) req_data.staffNo=req.serviceman; | |
254 | + getApp().request.get("/api/weshop/plus/vip/mem/referee/code/check", { | |
255 | + data:req_data, | |
256 | + success:function(res){ | |
257 | + if(res.data.code==0) { | |
258 | + t_pay.pay(req, th.success, function () { | |
259 | + getApp().my_warnning("支付失败", 0, th); | |
260 | + }); | |
261 | + }else{ | |
262 | + getApp().my_warnning(res.data.msg, 0, th); | |
263 | + } | |
264 | + } | |
265 | + }) | |
266 | + }else{ | |
267 | + t_pay.pay(req, th.success, function () { | |
268 | + getApp().my_warnning("支付失败", 0, th); | |
269 | + }); | |
270 | + } | |
271 | + }, | |
272 | + //返回会员页面 | |
273 | + OpeningClose: function() { | |
274 | + this.setData({open_yq:0}); | |
275 | + }, | |
276 | + | |
277 | + //返回会员中心 | |
278 | + back_user:function () { | |
279 | + setTimeout(function () { | |
280 | + wx.reLaunch({url:"/pages/user/index/index"}); | |
281 | + },1000) | |
282 | + }, | |
283 | + | |
284 | + //--支付成功,跳转到等级卡续费页面-- | |
285 | + success:function () { | |
286 | + | |
287 | + }, | |
288 | + | |
289 | + //--绑定邀请码的输入-- | |
290 | + b_input:function (e) { | |
291 | + var value=e.detail.value; | |
292 | + var name=e.currentTarget.dataset.name; | |
293 | + var ob={}; | |
294 | + ob[name]=value | |
295 | + this.setData(ob); | |
296 | + } | |
297 | + | |
298 | +}) | |
0 | 299 | \ No newline at end of file | ... | ... |
pages/user/plus/plus.json
0 → 100644
pages/user/plus/plus.wxml
0 → 100644
1 | +<block wx:if="{{is_show && (fir_leader?is_fengxiang:1)}}"> | |
2 | +<!-- 我的会员背景图片 --> | |
3 | +<import src="../../../utils/wxParse/wxParse.wxml"></import> | |
4 | +<view> | |
5 | + <image class="Member_bk" src="{{url}}/miniapp/images/plus/page_bk.png"></image> | |
6 | +</view> | |
7 | +<view class="plus"> | |
8 | + <!-- 开通会员模块 --> | |
9 | + <view class="Opening_plus"> | |
10 | + <view class="Opening_bk"> | |
11 | + <image src="{{url}}/miniapp/images/plus/card_bk.png"></image> | |
12 | + </view> | |
13 | + <view class="swiper"> | |
14 | + <!-- 未开通会员swiper-item --> | |
15 | + <swiper current="{{currentId}}" current-item-id="{{currentId}}" next-margin="55rpx" previous-margin="55rpx" bindchange="swiperChange"> | |
16 | + <swiper-item class="flex" item-id="{{index}}" data-item-id="{{index}}" wx:for="{{is_plusCard}}"> | |
17 | + <view class="Membership {{currentId==index?'enlarge':''}}" style=" background-image: url({{item.CardImg}});color:{{item.CardColor}}"> | |
18 | + <view class="flex-space-between Membership_go"> | |
19 | + <view> | |
20 | + <view class="fs32">{{item.CardName}}</view> | |
21 | + <view class="fs24 Membership_remarks">开通会员年卡仅{{item.CardFee}}元</view> | |
22 | + </view> | |
23 | + <view class="Opening fs24 xc-black" data-ind="{{index}}" style="background:{{item.CardColor}}" bindtap="Opening">立即开通 | |
24 | + </view> | |
25 | + | |
26 | + </view> | |
27 | + | |
28 | + <view class="flex-vertical-between consumption"> | |
29 | + | |
30 | + <view class="flex-vertical fs22" style="overflow:hidden"> | |
31 | + <!-- <image class="Member" src="{{url}}/miniapp/images/plus/privilege_o.png" style="filter:drop-shadow( 20rpx 0 0px {{item.CardColor}});"></image> --> | |
32 | + <view class="Member"style="background-image:url('{{url}}/miniapp/images/plus/privilege_o.png');filter: drop-shadow( 40rpx 0rpx 0rpx {{item.CardColor}});"></view> | |
33 | + <view>根据大家购买数据,您成为超级会员预计可省¥{{item.free}}元 | |
34 | + </view> | |
35 | + </view> | |
36 | + </view> | |
37 | + </view> | |
38 | + </swiper-item> | |
39 | + </swiper> | |
40 | + </view> | |
41 | + | |
42 | + | |
43 | + </view> | |
44 | + | |
45 | + <!-- 会员礼遇 --> | |
46 | + <view class="Courtesy"> | |
47 | + | |
48 | + <!-- 标题 --> | |
49 | + <view class="flex-center" style="width:100%;height:200rpx;"> | |
50 | + <view> | |
51 | + <view wx:if="{{false}}" class="Courtesy_title flex-center fs36">开通PLUSI会员尊享礼遇 | |
52 | + </view> | |
53 | + <view wx:else class="Courtesy_title flex-center fs36">PLUS会员尊享礼遇 </view> | |
54 | + | |
55 | + | |
56 | + <view class="flex-center"> | |
57 | + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image> | |
58 | + | |
59 | + <view wx:if="{{false}}" class="Courtesy_can fs24">PLUS会员可享以下特权 | |
60 | + </view> | |
61 | + <view wx:else class="Courtesy_can fs24">解锁新权益 精彩享不停 | |
62 | + </view> | |
63 | + | |
64 | + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image> | |
65 | + </view> | |
66 | + </view> | |
67 | + </view> | |
68 | + | |
69 | + <!-- 会员权益内容 --> | |
70 | + <view class="Courtesy_comment " style="padding:0 20rpx" wx:if="{{is_card_rule!=null&&is_card_rule!=''}}"> | |
71 | + <view class="wxParse"> | |
72 | + <template is="wxParse" data="{{wxParseData:content.nodes}}"></template> | |
73 | + </view> | |
74 | + </view> | |
75 | + </view> | |
76 | + | |
77 | + <!-- 好物推荐 --> | |
78 | + <!-- 好物推荐 --> | |
79 | + <view class="title"> | |
80 | + <!-- 标题 --> | |
81 | + <view> | |
82 | + <!-- 中文名标题 --> | |
83 | + <view class="China flex-level"> | |
84 | + <view class="line flex-vertical"> | |
85 | + <view class="one"></view><view class="two"></view><view class="three"></view> | |
86 | + </view> | |
87 | + | |
88 | + <view class="Recommend flex-level" bindtap="requestList">好物推荐</view> | |
89 | + | |
90 | + <view class="line flex-vertical"> | |
91 | + <view class="three"></view> | |
92 | + <view class="two"></view> | |
93 | + <view class="one"></view> | |
94 | + </view> | |
95 | + </view> | |
96 | + | |
97 | + <!-- 英文标题 --> | |
98 | + <view class="english flex-center"> | |
99 | + <view class="silk"></view> | |
100 | + <view class="esh five-level-word">GOOD HOT THING</view> | |
101 | + <view class="silk"></view> | |
102 | + </view> | |
103 | + | |
104 | + </view> | |
105 | + <!-- 商品列表组件 --> | |
106 | + <goods_recommend id="goods_list"></goods_recommend> | |
107 | + <!-- 商品列表 --> | |
108 | + | |
109 | + </view> | |
110 | + | |
111 | +</view> | |
112 | +</block> | |
113 | + | |
114 | +<!-- 开通会员弹窗 --> | |
115 | +<view wx:if="{{open_yq}}" class="Disgraceful flex-center"> | |
116 | + <!-- 蒙尘 --> | |
117 | + <view bindtap="OpeningClose"></view> | |
118 | + | |
119 | + <!-- 弹框 --> | |
120 | + <view class="Member_purchase"> | |
121 | + <view class="rel purchase_Bk" style="background-image: url({{url}}/miniapp/images/plus/purchase_Bk.png);"> | |
122 | + <image class="abs write" src="{{url}}/miniapp/images/plus/write.png"></image> | |
123 | + </view> | |
124 | + <view class="fs26 inf_com"> | |
125 | + <view class="fs36 flex-level perfect">请完善下面信息</view> | |
126 | + <view class="fillin"> | |
127 | + <!-- 输入推荐人手机号 --> | |
128 | + <view class="flex ai_and Enter_phone" wx:if="{{isyaoqingma}}" > | |
129 | + <image class="phone_image" src="{{url}}/miniapp/images/plus/Invitation_code.png"></image> | |
130 | + <view class="phone"> | |
131 | + <input bindinput="b_input" data-name="inp_recommon" class="fs30" placeholder="请输入邀请码(推荐人手机号)" type="number" maxlength="20" /> | |
132 | + </view> | |
133 | + </view> | |
134 | + <!-- 输入营业员 --> | |
135 | + <view class="flex ai_and enter_SalesClerk" wx:if="{{is_salesman}}"> | |
136 | + <image class="SalesClerk_image" src="{{url}}/miniapp/images/plus/Sales_Clerk.png"></image> | |
137 | + <view class="SalesClerk"> | |
138 | + <input bindinput="b_input" class="fs30" data-name="inp_serviceman" placeholder="请输入营业员" maxlength="30" /> | |
139 | + </view> | |
140 | + </view> | |
141 | + <!-- 确认购买 --> | |
142 | + <view class="flex-center" bindtap="buy_card"> | |
143 | + <view class="flex-center purchase" | |
144 | + style="background-image:url({{url}}/miniapp/images/plus/purchase_Bk.png);"> | |
145 | + 确认购买 | |
146 | + </view> | |
147 | + </view> | |
148 | + </view> | |
149 | + </view> | |
150 | + <view class="flex-level"> | |
151 | + <image class="purchaseClose" bindtap="OpeningClose" src="{{url}}/miniapp/images/plus/Close.png"></image> | |
152 | + </view> | |
153 | + </view> | |
154 | + | |
155 | +</view> | |
156 | +<warn id="warn"></warn> | |
0 | 157 | \ No newline at end of file | ... | ... |
pages/user/plus/plus.wxss
0 → 100644
1 | +@import "../../../utils/wxParse/wxParse.wxss"; | |
2 | +page { | |
3 | + width: 100%; | |
4 | + height: 100%; | |
5 | + z-index: 3; | |
6 | + overflow-x: hidden; | |
7 | +} | |
8 | + | |
9 | +.plus { | |
10 | + overflow-x: hidden; | |
11 | +} | |
12 | + | |
13 | +.Member_bk { | |
14 | + position: absolute; | |
15 | + z-index: 0; | |
16 | + width: 100%; | |
17 | + height: 100%; | |
18 | +} | |
19 | + | |
20 | +.Opening_bk image { | |
21 | + position: absolute; | |
22 | + z-index: 2; | |
23 | + width: 100%; | |
24 | + height: 320rpx; | |
25 | +} | |
26 | + | |
27 | +.swiper { | |
28 | + width: 100%; | |
29 | + padding-top: 60rpx; | |
30 | +} | |
31 | + | |
32 | +swiper { | |
33 | + align-items: center; | |
34 | + display: flex; | |
35 | + justify-content: center; | |
36 | + height: 275rpx; | |
37 | +} | |
38 | + | |
39 | +.swiper image { | |
40 | + width: 490rpx; | |
41 | + height: 100%; | |
42 | + border-radius: 20rpx; | |
43 | +} | |
44 | + | |
45 | +.swiper, .Courtesy, .title { | |
46 | + position: relative; | |
47 | + z-index: 3; | |
48 | +} | |
49 | + | |
50 | +.Courtesy_image { | |
51 | + width: 50rpx; | |
52 | + height: 25rpx; | |
53 | + margin-top: 8rpx; | |
54 | +} | |
55 | + | |
56 | +.Courtesy_title { | |
57 | + color: rgb(173, 137, 79); | |
58 | + font-weight: bold; | |
59 | + margin-bottom: 10rpx; | |
60 | + letter-spacing: 2rpx; | |
61 | +} | |
62 | + | |
63 | +.Courtesy_can { | |
64 | + margin: 0rpx 7rpx; | |
65 | + color: rgb(94, 93, 91); | |
66 | + font-weight: bold; | |
67 | +} | |
68 | + | |
69 | +.Courtesy_comment { | |
70 | + padding: 0rpx 31rpx; | |
71 | +} | |
72 | + | |
73 | +.Equity_image { | |
74 | + width: 490rpx; | |
75 | + height: 175rpx; | |
76 | + margin: 20rpx 0rpx; | |
77 | +} | |
78 | + | |
79 | +/* 热门好物 */ | |
80 | + | |
81 | +.title .China { | |
82 | + width: 100%; | |
83 | + margin-top: 60rpx; | |
84 | + margin-bottom: 10rpx; | |
85 | + line-height: 0rpx; | |
86 | +} | |
87 | + | |
88 | +.title .China .line view { | |
89 | + width: 2rpx; | |
90 | +} | |
91 | + | |
92 | +.title .China .line { | |
93 | + height: 40rpx; | |
94 | + color: rgb(51, 51, 51); | |
95 | +} | |
96 | + | |
97 | +.title .China .line view { | |
98 | + border-left: 3rpx solid #000; | |
99 | + margin-left: 5rpx; | |
100 | +} | |
101 | + | |
102 | +.title .China .line .one { | |
103 | + height: 23rpx; | |
104 | +} | |
105 | + | |
106 | +.title .China .line .two { | |
107 | + height: 15rpx; | |
108 | +} | |
109 | + | |
110 | +.title .China .line .three { | |
111 | + height: 18rpx; | |
112 | +} | |
113 | + | |
114 | +.title .China .Recommend { | |
115 | + margin: 0rpx 20rpx; | |
116 | + font-size: 28rpx; | |
117 | + line-height: 39rpx; | |
118 | + font-weight: bold; | |
119 | +} | |
120 | + | |
121 | +.title .english .silk { | |
122 | + width: 214rpx; | |
123 | + height: 2rpx; | |
124 | + background-color: #000; | |
125 | +} | |
126 | + | |
127 | +.title .english .esh { | |
128 | + margin: 0rpx 15rpx; | |
129 | +} | |
130 | + | |
131 | +.Membership { | |
132 | + width: 575rpx; | |
133 | + height: 275rpx; | |
134 | + margin: 0 auto; | |
135 | + transform: scale(0.9); | |
136 | + border-radius: 18rpx; | |
137 | + box-shadow: 0rpx 0rpx 2rpx #888; | |
138 | + background-size: 100%; | |
139 | + padding: 0rpx 31rpx; | |
140 | + color: #ffa786; | |
141 | +} | |
142 | + | |
143 | +.enlarge { | |
144 | + transform: scale(1); | |
145 | +} | |
146 | + | |
147 | +.Membership_go { | |
148 | + margin-top: 50rpx; | |
149 | +} | |
150 | + | |
151 | +.Membership_Opening { | |
152 | + width: 150rpx; | |
153 | + height: 40rpx; | |
154 | + border-radius: 30rpx; | |
155 | + text-align: center; | |
156 | + line-height: 40rpx; | |
157 | + background-color: rgb(255, 167, 135); | |
158 | + color: #000; | |
159 | +} | |
160 | + | |
161 | +.Membership .Member { | |
162 | + width: 30rpx; | |
163 | + height: 30rpx; | |
164 | + margin-right: 5rpx; | |
165 | + background-size: 100% 100%; | |
166 | +position: relative; | |
167 | +left: -40rpx; | |
168 | + | |
169 | +} | |
170 | + | |
171 | +.Membership .Opening { | |
172 | + width: 160rpx; | |
173 | + height: 45rpx; | |
174 | + border-radius: 20rpx; | |
175 | + background-color: rgb(237, 189, 150); | |
176 | + line-height: 45rpx; | |
177 | + text-align: center; | |
178 | + margin-top: 2rpx; | |
179 | + color: #666 | |
180 | +} | |
181 | + | |
182 | +.Invitation { | |
183 | + padding: 0rpx 31rpx; | |
184 | + box-shadow: 0rpx 0rpx 10rpx #888; | |
185 | + height: 95rpx; | |
186 | + background-color: rgb(255, 255, 255); | |
187 | + z-index: 6; | |
188 | + position: relative; | |
189 | + margin-top: -15rpx; | |
190 | +} | |
191 | + | |
192 | +.Invitation .Invitation_count, .Invitation_my { | |
193 | + color: rgb(237, 189, 153); | |
194 | +} | |
195 | + | |
196 | +.Invitation .Invitation_Cash { | |
197 | + width: 150rpx; | |
198 | + height: 45rpx; | |
199 | + line-height: 45rpx; | |
200 | + text-align: center; | |
201 | + border-radius: 25rpx; | |
202 | + margin-left: 30rpx; | |
203 | + background-color: rgb(237, 189, 150); | |
204 | + color: rgb(255, 255, 255); | |
205 | +} | |
206 | + | |
207 | +.Invitation .Detailed { | |
208 | + color: rgb(237, 189, 150); | |
209 | + text-decoration: underline; | |
210 | +} | |
211 | + | |
212 | +.consumption { | |
213 | + margin-top: 95rpx; | |
214 | + font-size: 18rpx; | |
215 | +} | |
216 | + | |
217 | +.Membership_remarks { | |
218 | + margin-top: 2rpx; | |
219 | +} | |
220 | + | |
221 | +.MemberPlus { | |
222 | + width: 618rpx; | |
223 | + height: 290rpx; | |
224 | + border-radius: 18rpx; | |
225 | + box-shadow: 0rpx 0rpx 10rpx #888; | |
226 | + margin: 0rpx 35rpx; | |
227 | + color: #ffa786; | |
228 | + padding: 0rpx 31rpx; | |
229 | + padding-top: 60rpx; | |
230 | + background-size: 100%; | |
231 | +} | |
232 | + | |
233 | +.Member_sp { | |
234 | + height: 325rpx; | |
235 | +} | |
236 | + | |
237 | +.renew { | |
238 | + width: 190rpx; | |
239 | + height: 50rpx; | |
240 | + border-radius: 18rpx; | |
241 | + background-color: rgb(237, 189, 150); | |
242 | + text-align: center; | |
243 | + line-height: 50rpx; | |
244 | + color: #000; | |
245 | + margin-top: 7rpx; | |
246 | +} | |
247 | + | |
248 | +.xs { | |
249 | + margin-top: 130rpx; | |
250 | +} | |
251 | + | |
252 | +.MemberPlus .share { | |
253 | + width: 30rpx; | |
254 | + height: 30rpx; | |
255 | + margin-left: 7rpx; | |
256 | +} | |
257 | + | |
258 | +.MemberPlus .privilege { | |
259 | + width: 30rpx; | |
260 | + height: 30rpx; | |
261 | + margin-right: 7rpx; | |
262 | +} | |
263 | + | |
264 | +.Disgraceful { | |
265 | + position: fixed; | |
266 | + left: 0; | |
267 | + top: 0; | |
268 | + right: 0; | |
269 | + bottom: 0; | |
270 | + z-index: 11; | |
271 | + background: rgba(0, 0, 0, 0.6); | |
272 | + width: 100%; | |
273 | + height: 100%; | |
274 | +} | |
275 | +.ddd { | |
276 | + border-radius: 20rpx; | |
277 | +} | |
278 | + | |
279 | +.Member_purchase { | |
280 | + width: 610rpx; | |
281 | + margin-top: 20rpx; | |
282 | +} | |
283 | + | |
284 | +.purchase_Bk { | |
285 | + width: 100%; | |
286 | + height: 225rpx; | |
287 | + background-size: 100%; | |
288 | +} | |
289 | + | |
290 | +.write { | |
291 | + width: 280rpx; | |
292 | + height: 275rpx; | |
293 | + bottom: 20rpx; | |
294 | + left: 185rpx; | |
295 | +} | |
296 | + | |
297 | +.inf_com { | |
298 | + background-color: rgb(255, 255, 255); | |
299 | + padding: 0rpx 85rpx; | |
300 | +} | |
301 | + | |
302 | +.perfect { | |
303 | + padding-top: 30rpx; | |
304 | + padding-bottom: 65rpx; | |
305 | +} | |
306 | + | |
307 | +.fillin { | |
308 | + color: rgb(208, 208, 208); | |
309 | +} | |
310 | + | |
311 | +.Enter_phone { | |
312 | + border-bottom: 1rpx solid rgb(153, 153, 153); | |
313 | + margin-bottom: 35rpx; | |
314 | +} | |
315 | + | |
316 | +.phone_image { | |
317 | + width: 60rpx; | |
318 | + height: 60rpx; | |
319 | + margin-bottom: 5rpx; | |
320 | +} | |
321 | + | |
322 | +.phone { | |
323 | + margin-left: 15rpx; | |
324 | + color: #000; | |
325 | +} | |
326 | + | |
327 | +.enter_SalesClerk { | |
328 | + border-bottom: 1rpx solid rgb(153, 153, 153); | |
329 | +} | |
330 | + | |
331 | +.SalesClerk_image { | |
332 | + width: 60rpx; | |
333 | + height: 60rpx; | |
334 | + margin-bottom: 5rpx; | |
335 | +} | |
336 | + | |
337 | +.SalesClerk { | |
338 | + margin-left: 15rpx; | |
339 | + color: #000; | |
340 | +} | |
341 | + | |
342 | +.purchase { | |
343 | + width: 250rpx; | |
344 | + height: 50rpx; | |
345 | + border-radius: 25rpx; | |
346 | + color: rgb(255, 255, 255); | |
347 | + margin: 55rpx 0rpx; | |
348 | + background-position: center;background-repeat: no-repeat;background-size: cover | |
349 | +} | |
350 | + | |
351 | +.purchaseClose { | |
352 | + width: 70rpx; | |
353 | + height: 70rpx; | |
354 | + border-radius: 50%; | |
355 | + margin-top: 60rpx; | |
356 | +} | |
357 | + | |
358 | +input { | |
359 | + | |
360 | + overflow: visible; | |
361 | + width: 360rpx; | |
362 | +} | |
363 | + | ... | ... |
pages/user/userinfo/userinfo.js
1 | 1 | function e(e, a, r) { |
2 | - return a in e ? Object.defineProperty(e, a, { | |
3 | - value: r, | |
4 | - enumerable: !0, | |
5 | - configurable: !0, | |
6 | - writable: !0 | |
7 | - }) : e[a] = r, e; | |
8 | -} | |
2 | + return a in e ? Object.defineProperty(e, a, { | |
3 | + value: r, | |
4 | + enumerable: !0, | |
5 | + configurable: !0, | |
6 | + writable: !0 | |
7 | + }) : e[a] = r, e; | |
8 | +} | |
9 | 9 | |
10 | -var a = getApp(), r = a.globalData.setting, | |
11 | - t = a.request, s = require("../../../utils/common.js"), util = require("../../../utils/util.js"); | |
10 | +var a = getApp(), | |
11 | + r = a.globalData.setting, | |
12 | + t = a.request, | |
13 | + s = require("../../../utils/common.js"), | |
14 | + util = require("../../../utils/util.js"); | |
15 | + | |
16 | +var timestamp = Date.parse(new Date()); | |
17 | +var date = new Date(timestamp); | |
12 | 18 | |
13 | 19 | Page({ |
14 | - data: { | |
15 | - url: r.url, | |
16 | - resourceUrl: r.resourceUrl, | |
17 | - iurl: r.imghost, | |
18 | - defaultAvatar: r.resourceUrl + "/static/images/user68.jpg", | |
19 | - user: null, | |
20 | - tc_hide:true, | |
21 | - stoname:"", | |
22 | - }, | |
23 | - onShow: function() { | |
24 | - var e = this; var req=t; | |
25 | - a.getUserInfo(function(a) { | |
26 | - var txt = util.formatTime(a.birthday,'yyyy-M-d'),arr = txt.split(' '); | |
27 | - a.birthday=arr[0]; | |
28 | - var txt2 = util.formatTime(a.reg_time, 'yyyy-M-d'), arr2 = txt.split(' '); | |
29 | - a.reg_time = arr2[0]; | |
30 | - req.get("/api/weshop/pickup/get/" + r.stoid + "/" + a.pickup_id, { | |
31 | - success: function (da) { | |
32 | - console.log('getsto'); | |
33 | - console.log(da); | |
34 | - //设置门店 | |
35 | - e.setData({ stoname: da.data.data.pickup_name}); | |
36 | - } | |
37 | - }) | |
38 | - e.setData({ | |
39 | - user: a | |
40 | - }); | |
41 | - }, !0); | |
42 | - }, | |
43 | - editUserInfo: function(e) { | |
44 | - var r = e.currentTarget.dataset.type; | |
45 | - if (("password" == r || "paypwd" == r) && !this.data.user.mobile) return a.showWarning("请先绑定手机号码"); | |
46 | - r && this.data.user && wx.navigateTo({ | |
47 | - url: "/pages/user/userinfo_edit/userinfo_edit?type=" + r | |
48 | - }); | |
49 | - }, | |
50 | - | |
51 | - /*--------------------修改头像---------------------*/ | |
52 | - changeAvatar: function() { | |
53 | - return false; | |
54 | - var r = this; | |
55 | - wx.chooseImage({ | |
56 | - count: 1, | |
57 | - sizeType: [ "compressed", "original" ], | |
58 | - sourceType: [ "camera", "album" ], | |
59 | - success: function(u) { | |
60 | - t.uploadFile(r.data.url + "/api/user/upload_headpic", { | |
61 | - filePath: u.tempFilePaths[0], | |
62 | - name: "head_pic", | |
63 | - success: function(t) { | |
64 | - var u = s.getFullUrl(t.data.result); | |
65 | - r.setData(e({}, "user.head_pic", u)), a.globalData.userInfo.head_pic = u, a.showSuccess("设置头像成功"); | |
20 | + data: { | |
21 | + phone:"", | |
22 | + url: r.url, | |
23 | + resourceUrl: r.resourceUrl, | |
24 | + iurl: r.imghost, | |
25 | + defaultAvatar: r.resourceUrl + "/static/images/user68.jpg", | |
26 | + user: null, | |
27 | + tc_hide: true, | |
28 | + stoname: "", | |
29 | + checkDate: false, | |
30 | + datet: "", | |
31 | + year: date.getFullYear(), | |
32 | + store: 0, | |
33 | + all_sto: "", | |
34 | + region_name: "", | |
35 | + def_pick_store: "", | |
36 | + sort_store: 0, //门店分类 | |
37 | + sec_sto: "", | |
38 | + more_store: 0, //选择门店 | |
39 | + choice_sort_store: 1, //选择分类门店 | |
40 | + more_store: 0, //选择门店 | |
41 | + lat: null, //维度 | |
42 | + lon: null, //经度 | |
43 | + fir_pick_index: 0, | |
44 | + sec_pick_index: 0, | |
45 | + is_gps: 1, | |
46 | + lon: 0, | |
47 | + only_pk: 0, | |
48 | + open_ind_store: 0, //哪里打开的门店列表的控制属性 | |
49 | + ispwhid:1,//是否隐藏密码显示 | |
50 | + isstcsp:1,//是否启动密码消费 | |
51 | + isGender:1,//什么性别 | |
52 | + iscalendar:1,//是否是农历 | |
53 | + consumption:"",//消费密码 | |
54 | + identity_card:"",//身份证值 | |
55 | + address:"",//地址 | |
56 | + openid:"",//openid | |
57 | + pulscardname:"",//puls会员的卡 | |
58 | + gradename:"",//会员权益的卡 | |
59 | + isBool:"", | |
60 | + sto_sele_id:"",//所属门店id | |
61 | + }, | |
62 | + //是否启动密码消费 | |
63 | + isstcsp:function(){ | |
64 | + var th = this; | |
65 | + var isstcsp = th.data.isstcsp; | |
66 | + if (isstcsp==0){ | |
67 | + th.setData({ | |
68 | + isstcsp:1 | |
69 | + }) | |
70 | + }else{ | |
71 | + th.setData({ | |
72 | + isstcsp: 0 | |
73 | + }) | |
74 | + } | |
75 | + }, | |
76 | + //出生日期是否是农历 | |
77 | + iscalendar:function(){ | |
78 | + var th = this; | |
79 | + var iscalendar = th.data.iscalendar; | |
80 | + if (iscalendar == 0) { | |
81 | + th.setData({ | |
82 | + iscalendar: 1 | |
83 | + }) | |
84 | + } else { | |
85 | + th.setData({ | |
86 | + iscalendar: 0 | |
87 | + }) | |
88 | + } | |
89 | + }, | |
90 | + //性别 | |
91 | + isGender:function(e){ | |
92 | + var th = this; | |
93 | + var sex = e.currentTarget.dataset.sex; | |
94 | + console.log("点击选择性别",sex); | |
95 | + th.setData({ | |
96 | + isGender:sex | |
97 | + }) | |
98 | + | |
99 | + | |
100 | + }, | |
101 | + //密码是否隐藏显示 | |
102 | + ispwhid:function(){ | |
103 | + var th = this; | |
104 | + var ispwhid = th.data.ispwhid; | |
105 | + | |
106 | + if (ispwhid == 0) { | |
107 | + th.setData({ | |
108 | + ispwhid: 1 | |
109 | + }) | |
110 | + } else { | |
111 | + th.setData({ | |
112 | + ispwhid: 0 | |
113 | + }) | |
114 | + } | |
115 | + }, | |
116 | + checkDate: function() { | |
117 | + var th = this; | |
118 | + if (th.data.checkDate) { | |
119 | + th.setData({ | |
120 | + checkDate: false | |
121 | + }) | |
122 | + } else { | |
123 | + th.setData({ | |
124 | + checkDate: true | |
125 | + }) | |
126 | + } | |
127 | + }, | |
128 | + bindChange: function(e) { | |
129 | + this.setData({ | |
130 | + datet: e.detail.value, | |
131 | + }); | |
132 | + }, | |
133 | + //---点击二级之后的选择--- | |
134 | + choose_for_store: function(e) { | |
135 | + var index_c = e.currentTarget.dataset.ind; | |
136 | + | |
137 | + this.setData({ | |
138 | + sec_pick_index: index_c, | |
139 | + fir_pick_index: index_c | |
140 | + }) | |
141 | + }, | |
142 | + //确定def_pick为选择的门店 | |
143 | + sure_pick: function(e) { | |
144 | + var th = this; | |
145 | + var item = null; | |
146 | + var openindstore = th.data.open_ind_store; | |
147 | + if (th.data.choice_sort_store == 0) { | |
148 | + var index = th.data.fir_pick_index; | |
149 | + if (th.data.is_show_sto_cat == 1) { | |
150 | + item = th.data.def_pickpu_list[index]; | |
151 | + } else { | |
152 | + item = th.data.only_pk[index]; //当没有门店分类的时候 | |
153 | + } | |
154 | + | |
155 | + } else { | |
156 | + var index = th.data.sec_pick_index; | |
157 | + item = th.data.sec_sto.s_arr[index]; | |
158 | + } | |
159 | + | |
160 | + console.log("选择门店刷新", "def_pick_store", item); | |
161 | + th.setData({ | |
162 | + def_pick_store: item, | |
163 | + stoname: item.pickup_name, | |
164 | + sto_sele_name: item.pickup_name, | |
165 | + sto_sele_id: item.pickup_id, | |
166 | + sto_sele_distr: item.distr_type, | |
167 | + store: 0, | |
168 | + choice_sort_store: 0, | |
169 | + fir_pick_index: 0 | |
170 | + }); | |
171 | + | |
172 | + if (openindstore == 1) { | |
173 | + th.setData({ | |
174 | + openSpecModal: !0, | |
175 | + openSpecModal_ind: openindstore, | |
176 | + }); | |
177 | + } else if (openindstore == 2) { | |
178 | + th.setData({ | |
179 | + openSpecModal: !0, | |
180 | + openSpecModal_ind: openindstore, | |
181 | + openSpecModal_pt: 1 | |
182 | + }); | |
183 | + } | |
184 | + }, | |
185 | + choose_for_store_fir: function(e) { | |
186 | + var index_c = e.currentTarget.dataset.ind; | |
187 | + this.setData({ | |
188 | + fir_pick_index: index_c | |
189 | + }) | |
190 | + }, | |
191 | + wait_for_store_config: function() { | |
192 | + var th = this; | |
193 | + wx.getLocation({ | |
194 | + type: 'wgs84', | |
195 | + success: function(res) { | |
196 | + th.data.lat = res.latitude; | |
197 | + th.data.lon = res.longitude; | |
198 | + th.data.is_get_local_ok = 1; | |
199 | + }, | |
200 | + fail: function(res) { | |
201 | + if (res.errCode == 2) { | |
202 | + th.setData({ | |
203 | + is_gps: 0 | |
204 | + }); | |
205 | + if (th.data.is_gps == 0) { | |
206 | + getApp().confirmBox("请开启GPS定位", null, 10000, !1); | |
207 | + } | |
208 | + } else { | |
209 | + th.setData({ | |
210 | + is_gps: "3" | |
211 | + }); | |
212 | + } | |
213 | + th.data.is_get_local_ok = 1; | |
214 | + } | |
215 | + }) | |
216 | + }, | |
217 | + onclickstore: function() { | |
218 | + var th = this; | |
219 | + if (th.data.store == 0) { | |
220 | + this.setData({ | |
221 | + store: 1 | |
222 | + }) | |
223 | + } else { | |
224 | + this.setData({ | |
225 | + store: 0 | |
226 | + }) | |
227 | + } | |
228 | + var dd = { | |
229 | + store_id: r.stoid, | |
230 | + isstop: 0, | |
231 | + pageSize: 300 | |
232 | + } | |
233 | + th.setData({ | |
234 | + sort_store: 1 | |
235 | + }); | |
236 | + var i = getApp().request; | |
237 | + //如果有距离的话 | |
238 | + if (th.data.lat != null) { | |
239 | + dd.lat = th.data.lat; | |
240 | + dd.lon = th.data.lon; | |
241 | + } | |
242 | + //----------获取门店---------------- | |
243 | + getApp().request.promiseGet("/api/weshop/pickup/list", { | |
244 | + data: dd, | |
245 | + }).then(res => { | |
246 | + var e = res; | |
247 | + if (e.data.code == 0) { | |
248 | + //-- 如果有默认选择门店的时候,要把默认门店放在第一位 -- | |
249 | + if (th.data.def_pick_store) { | |
250 | + for (var k = 0; k < e.data.data.pageData.length; k++) { | |
251 | + if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { | |
252 | + e.data.data.pageData.splice(k, 1); //删除 | |
253 | + break; | |
254 | + } | |
255 | + } | |
256 | + e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 | |
257 | + } | |
258 | + | |
259 | + //单总量超出5个的时候 | |
260 | + if (e.data.data.total > 5) { | |
261 | + i.get("/api/weshop/storagecategory/page", { | |
262 | + data: { | |
263 | + store_id: r.stoid, | |
264 | + is_show: 1, | |
265 | + pageSize: 300 | |
266 | + }, | |
267 | + success: function(ee) { | |
268 | + if (ee.data.code == 0) { | |
269 | + if (ee.data.data.pageData.length > 0) { | |
270 | + var def_arr = new Array(); | |
271 | + var ishas = 0; | |
272 | + //-- 开始就看5个门店 -- | |
273 | + for (var k = 0; k < 5; k++) { | |
274 | + if (k == e.data.data.pageData.length) break; | |
275 | + def_arr.push(e.data.data.pageData[k]); | |
276 | + } | |
277 | + | |
278 | + th.setData({ | |
279 | + def_pickpu_list: def_arr, | |
280 | + pickpu_list: ee.data.data.pageData | |
281 | + }); | |
282 | + var sto_cate = ee.data.data.pageData; | |
283 | + var sto_arr = e.data.data.pageData; | |
284 | + var newarr = new Array(); | |
285 | + var qita = new Array(); | |
286 | + | |
287 | + //----要进行门店分组-------- | |
288 | + for (var i = 0; i < sto_arr.length; i++) { | |
289 | + //找一下这个门店有没有在分类数组内 | |
290 | + var find2 = 0, | |
291 | + find2name = ""; | |
292 | + for (var m = 0; m < sto_cate.length; m++) { | |
293 | + if (sto_arr[i].category_id == sto_cate[m].cat_id) { | |
294 | + find2 = sto_cate[m].cat_id; | |
295 | + find2name = sto_cate[m].cat_name; | |
296 | + break; | |
297 | + } | |
298 | + } | |
299 | + | |
300 | + if (newarr.length > 0) { | |
301 | + var find = 0; | |
302 | + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
303 | + if (find2 != 0) { | |
304 | + for (var ii = 0; ii < newarr.length; ii++) { | |
305 | + if (sto_arr[i].category_id == newarr[ii].cat_id) { | |
306 | + newarr[ii].s_arr.push(sto_arr[i]); | |
307 | + find = 1; | |
308 | + break; | |
309 | + } | |
310 | + } | |
311 | + if (find == 0) { | |
312 | + var arr0 = new Array(); | |
313 | + arr0.push(sto_arr[i]); | |
314 | + var item = { | |
315 | + cat_id: find2, | |
316 | + name: find2name, | |
317 | + s_arr: arr0 | |
318 | + }; | |
319 | + newarr.push(item); | |
320 | + } | |
321 | + } else { | |
322 | + qita.push(sto_arr[i]); | |
323 | + } | |
324 | + } else { | |
325 | + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
326 | + if (find2 != 0) { | |
327 | + var arr0 = new Array(); | |
328 | + arr0.push(sto_arr[i]); | |
329 | + var item = { | |
330 | + cat_id: find2, | |
331 | + name: find2name, | |
332 | + s_arr: arr0 | |
333 | + }; | |
334 | + newarr.push(item); | |
335 | + } else { | |
336 | + qita.push(sto_arr[i]); | |
337 | + } | |
66 | 338 | } |
339 | + } | |
340 | + | |
341 | + //----安排其他的分类----- | |
342 | + if (qita.length > 0) { | |
343 | + var item = { | |
344 | + cat_id: -1, | |
345 | + name: "其他", | |
346 | + s_arr: qita | |
347 | + }; | |
348 | + newarr.push(item); | |
349 | + } | |
350 | + th.setData({ | |
351 | + is_show_sto_cat: 1, | |
352 | + all_sto: newarr | |
353 | + }); | |
354 | + | |
355 | + } else { | |
356 | + th.setData({ | |
357 | + is_show_sto_cat: -1, | |
358 | + only_pk: e.data.data.pageData | |
359 | + }); | |
360 | + } | |
361 | + } else { | |
362 | + th.setData({ | |
363 | + is_show_sto_cat: -1, | |
364 | + only_pk: e.data.data.pageData | |
67 | 365 | }); |
366 | + } | |
68 | 367 | } |
368 | + }); | |
369 | + } else { | |
370 | + th.setData({ | |
371 | + is_show_sto_cat: 0, | |
372 | + only_pk: e.data.data.pageData | |
373 | + }); | |
374 | + } | |
375 | + } | |
376 | + }, 200) | |
377 | + console.log(th.data.all_sto + 'eeee'); | |
378 | + }, | |
379 | + //选择更多门店 | |
380 | + more_store: function() { | |
381 | + this.setData({ | |
382 | + sort_store: 1 | |
383 | + }); | |
384 | + }, | |
385 | + //---选择分类门店--- | |
386 | + choice_sort_store: function(e) { | |
387 | + var index = e.currentTarget.dataset.index; | |
388 | + var region_name = e.currentTarget.dataset.region; | |
389 | + var item = this.data.all_sto[index]; | |
390 | + this.setData({ | |
391 | + region_name: region_name, | |
392 | + sort_store: 0, | |
393 | + choice_sort_store: 1, | |
394 | + sec_sto: item, | |
395 | + sec_pick_index: 0 | |
396 | + }); | |
397 | + }, | |
398 | + // 返回按钮 | |
399 | + returns: function() { | |
400 | + this.setData({ | |
401 | + sort_store: 0, | |
402 | + choice_sort_store: 0 | |
403 | + }); | |
404 | + }, | |
405 | + //身份证号严格校验 | |
406 | + IdentityIDCard: function(e) { | |
407 | + var code = e.detail.value; | |
408 | + //身份证号前两位代表区域 | |
409 | + var city = { | |
410 | + 11: "北京", | |
411 | + 12: "天津", | |
412 | + 13: "河北", | |
413 | + 14: "山西", | |
414 | + 15: "内蒙古", | |
415 | + 21: "辽宁", | |
416 | + 22: "吉林", | |
417 | + 23: "黑龙江 ", | |
418 | + 31: "上海", | |
419 | + 32: "江苏", | |
420 | + 33: "浙江", | |
421 | + 34: "安徽", | |
422 | + 35: "福建", | |
423 | + 36: "江西", | |
424 | + 37: "山东", | |
425 | + 41: "河南", | |
426 | + 42: "湖北 ", | |
427 | + 43: "湖南", | |
428 | + 44: "广东", | |
429 | + 45: "广西", | |
430 | + 46: "海南", | |
431 | + 50: "重庆", | |
432 | + 51: "四川", | |
433 | + 52: "贵州", | |
434 | + 53: "云南", | |
435 | + 54: "西藏 ", | |
436 | + 61: "陕西", | |
437 | + 62: "甘肃", | |
438 | + 63: "青海", | |
439 | + 64: "宁夏", | |
440 | + 65: "新疆", | |
441 | + 71: "台湾", | |
442 | + 81: "香港", | |
443 | + 82: "澳门", | |
444 | + 91: "国外 " | |
445 | + }; | |
446 | + //身份证格式正则表达式 | |
447 | + var idCardReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i; | |
448 | + var errorMess = ""; //错误提示信息 | |
449 | + var isPass = true; //身份证验证是否通过(true通过、false未通过) | |
450 | + | |
451 | + //如果身份证不满足格式正则表达式 | |
452 | + if (!code || !idCardReg.test(code)) { | |
453 | + console.log("您输入的身份证号格式有误!"); | |
454 | + errorMess = "您输入的身份证号格式有误!"; | |
455 | + isPass = false; | |
456 | + } | |
457 | + | |
458 | + //区域数组中不包含需验证的身份证前两位 | |
459 | + else if (!city[code.substr(0, 2)]) { | |
460 | + errorMess = "您输入的身份证地址编码有误!"; | |
461 | + isPass = false; | |
462 | + } else { | |
463 | + //18位身份证需要验证最后一位校验位 | |
464 | + if (code.length == 18) { | |
465 | + code = code.split(''); | |
466 | + //∑(ai×Wi)(mod 11) | |
467 | + //加权因子 | |
468 | + var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; | |
469 | + //校验位 | |
470 | + var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]; | |
471 | + var sum = 0; | |
472 | + var ai = 0; | |
473 | + var wi = 0; | |
474 | + for (var i = 0; i < 17; i++) { | |
475 | + ai = code[i]; | |
476 | + wi = factor[i]; | |
477 | + sum += ai * wi; | |
478 | + } | |
479 | + var last = parity[sum % 11]; | |
480 | + if (parity[sum % 11] != code[17]) { | |
481 | + errorMess = "您输入的身份证号不存在!"; | |
482 | + isPass = false; | |
483 | + } | |
484 | + } | |
485 | + } | |
486 | + var returnParam = { | |
487 | + 'errorMess': errorMess, | |
488 | + 'isPass': isPass | |
489 | + } | |
490 | + if (errorMess != "") { | |
491 | + wx.showModal({ | |
492 | + title: errorMess, | |
493 | + content: '', | |
494 | + showCancel: false, | |
495 | + confirmText: '确定', | |
496 | + confirmColor: '', | |
497 | + success: function(res) {}, | |
498 | + fail: function(res) {}, | |
499 | + complete: function(res) {}, | |
500 | + }) | |
501 | + } | |
502 | + return returnParam; | |
503 | + }, | |
504 | + //------初始化加载---------- | |
505 | + onLoad: function(t) { | |
506 | + this.puls_user(); | |
507 | + this.equity_user(); | |
508 | + this.initial_user(); | |
509 | + }, | |
510 | + //-----------会员是否初始化--------------------- | |
511 | + initial_user: function () { | |
512 | + | |
513 | + var th = this; | |
514 | + getApp().request.get("/api/weshop/users/grade/vip/init/get", { | |
515 | + data: { | |
516 | + storeId: r.stoid, | |
517 | + }, | |
518 | + success: function (su) { | |
519 | + var isBool = su.data.data.isBool; | |
520 | + console.log("会员是否初始化", isBool); | |
521 | + th.setData({isBool:isBool}); | |
522 | + } | |
523 | + }); | |
524 | + }, | |
525 | + //-----会员等级卡获取--------------- | |
526 | + equity_user:function(){ | |
527 | + var th = this; | |
528 | + getApp().request.get("/api/weshop/users/grade/aftervipinfo/get", { | |
529 | + data: { | |
530 | + storeId: r.stoid, | |
531 | + userId: getApp().globalData.user_id, | |
532 | + }, | |
533 | + success: function (su) { | |
534 | + var gradename=su.data.data.GradeName; | |
535 | + th.setData({gradename: gradename}); | |
536 | + | |
537 | + } | |
538 | + }); | |
539 | + }, | |
540 | + | |
541 | + //-----Plus会员获取----------- | |
542 | + puls_user:function(){ | |
543 | + var th=this; | |
544 | + getApp().request.get("/api/weshop/plus/vip/mem/list", { | |
545 | + data: { | |
546 | + storeId: r.stoid, | |
547 | + userId: getApp().globalData.user_id, }, | |
548 | + success: function (su) { | |
549 | + | |
550 | + if (su.data.code == 0) { | |
551 | + var cardname=su.data.data[0].MemCardName; | |
552 | + console.log("卡的名字", cardname); | |
553 | + th.setData({pulscardname:cardname}); | |
554 | + } | |
555 | + } | |
556 | + }); | |
557 | + }, | |
558 | + onShow: function() { | |
559 | + | |
560 | + this.wait_for_store_config(); | |
561 | + var e = this; | |
562 | + var req = t; | |
563 | + req.get("/api/weshop/users/getAndUpdateUser/" + r.stoid + "/" + getApp().globalData.user_id, { | |
564 | + success: function (src) { | |
565 | + var a=src.data.data; | |
566 | + console.log(a,"剩什么llllll",a.data); | |
567 | + var time = util.formatTime(a.reg_time,"'Y/M/D"); | |
568 | + var birthday = util.formatTime(a.birthday, "'Y/M/D"); | |
569 | + a.reg_time = time; | |
570 | + a.birthday = birthday | |
571 | + e.setData({ | |
572 | + phone: a.mobile, | |
573 | + user: a, | |
574 | + openid: a.openid, | |
575 | + sto_sele_id: a.pickup_id, | |
576 | + consumption: a.paypwd, | |
577 | + identity_card:a.idcard, | |
578 | + | |
579 | + }); | |
580 | + } | |
581 | + }) | |
582 | + a.getUserInfo(function(a) { | |
583 | + var txt = util.formatTime(a.birthday, 'yyyy-M-d'), | |
584 | + arr = txt.split(' '); | |
585 | + a.birthday = arr[0]; | |
586 | + var txt2 = util.formatTime(a.reg_time, 'yyyy-M-d'), | |
587 | + arr2 = txt.split(' '); | |
588 | + a.reg_time = arr2[0]; | |
589 | + if (a.pickup_id!=null) { | |
590 | + req.get("/api/weshop/pickup/get/" + r.stoid + "/" + a.pickup_id, { | |
591 | + success: function(da) { | |
592 | + | |
593 | + //设置门店 | |
594 | + e.setData({ | |
595 | + stoname: da.data.data.pickup_name | |
596 | + }); | |
597 | + } | |
598 | + }) | |
599 | + } | |
600 | + // var phone = ""; | |
601 | + // phone+=a.mobile.substr(0, 3)+"****"; | |
602 | + // phone += a.mobile.substr(7, 12); | |
603 | + | |
604 | + | |
605 | + | |
606 | + // e.setData({ | |
607 | + // isGender:e.data.user.sex | |
608 | + // }) | |
609 | + }, !0); | |
610 | + }, | |
611 | + | |
612 | + editUserInfo: function(e) { | |
613 | + var r = e.currentTarget.dataset.type; | |
614 | + if (("password" == r || "paypwd" == r) && !this.data.user.mobile) return a.showWarning("请先绑定手机号码"); | |
615 | + r && this.data.user && wx.navigateTo({ | |
616 | + url: "/pages/user/userinfo_edit/userinfo_edit?type=" + r | |
617 | + }); | |
618 | + }, | |
619 | + | |
620 | + /*--------------------修改头像---------------------*/ | |
621 | + changeAvatar: function() { | |
622 | + return false; | |
623 | + var r = this; | |
624 | + wx.chooseImage({ | |
625 | + count: 1, | |
626 | + sizeType: ["compressed", "original"], | |
627 | + sourceType: ["camera", "album"], | |
628 | + success: function(u) { | |
629 | + t.uploadFile(r.data.url + "/api/user/upload_headpic", { | |
630 | + filePath: u.tempFilePaths[0], | |
631 | + name: "head_pic", | |
632 | + success: function(t) { | |
633 | + var u = s.getFullUrl(t.data.result); | |
634 | + r.setData(e({}, "user.head_pic", u)), a.globalData.userInfo.head_pic = u, a.showSuccess("设置头像成功"); | |
635 | + } | |
69 | 636 | }); |
70 | - }, | |
637 | + } | |
638 | + }); | |
639 | + }, | |
71 | 640 | |
72 | 641 | |
73 | 642 | //------卡片的显示和关闭-------- |
74 | - show_tc: function () { | |
643 | + show_tc: function() { | |
75 | 644 | this.setData({ |
76 | 645 | tc_hide: false, |
77 | 646 | }); |
78 | 647 | }, |
79 | - hide_tc: function () { | |
648 | + hide_tc: function() { | |
80 | 649 | this.setData({ |
81 | 650 | tc_hide: true, |
82 | 651 | }); |
83 | 652 | }, |
653 | + //消费密码输入框失去焦点事件 | |
654 | + lose_focus:function(e){ | |
655 | + var th=this; | |
656 | + var val=e.detail.value; | |
657 | + console.log("是什么东西",val); | |
658 | + if (val.length > 6 || val!=""){ | |
659 | + | |
660 | + this.setData({ consumption: val }); | |
661 | + console.log("是什么东西", val); | |
662 | + } | |
663 | + | |
664 | + | |
665 | + }, | |
666 | + | |
667 | +//地址 | |
668 | + address:function(e){ | |
669 | + var val = e.detail; | |
670 | + console.log("地址55555555", val.value); | |
671 | + this.setData({ address: val.value }); | |
672 | + }, | |
673 | + | |
674 | + //身份证验证 | |
675 | + identity_card:function(e){ | |
676 | + var val = e.detail; | |
677 | + | |
678 | + this.setData({ identity_card: val.value }); | |
679 | + | |
680 | + }, | |
681 | + //用户名字 | |
682 | + user_name:function(e){ | |
683 | + var name = e.detail.value; | |
684 | + if (name !=""||name!=null){ | |
685 | + | |
686 | + this.setData({ user_name: name }); | |
687 | + | |
688 | + } | |
689 | + | |
690 | + }, | |
691 | + | |
692 | + //点击确认修改信息 | |
693 | + confirm_revision:function(){ | |
694 | + var th=this; | |
695 | + var isstcsp=th.data.isstcsp;//是否启用消费密码 | |
696 | + var phone=th.data.phone;//手机号码 | |
697 | + if (phone == "" || phone==null){ | |
698 | + getApp().my_warnning("手机不能为空", 0, th); | |
699 | + | |
700 | + return false; | |
701 | + } | |
702 | + | |
703 | + | |
704 | + var consumption = th.data.consumption;//消费密码 | |
705 | + var isstcsp = th.data.isstcsp; | |
706 | + if(isstcsp==1){ | |
707 | + | |
708 | + if (consumption==null || consumption=="" || consumption==undefined ){ | |
709 | + getApp().my_warnning("消费密码不能为空", 0, th); return false; | |
710 | + } | |
711 | + if (consumption.length < 6){ | |
712 | + getApp().my_warnning("消费密码不能小于6位", 0, th); return false; | |
713 | + } | |
714 | + } | |
715 | + var sex = th.data.isGender;//性别 | |
716 | + | |
717 | + if (sex!="1"&&sex!="2" ) { | |
718 | + getApp().my_warnning("请选择性别", 0, th); | |
719 | + return false; | |
720 | + } | |
721 | + var user_name = th.data.user.vipname;//用户姓名 | |
722 | + console.log("名字77777",user_name); | |
723 | + if (user_name==""|| user_name== null) { | |
724 | + getApp().my_warnning("请输入名字", 0, th); | |
725 | + return false; | |
726 | + } | |
727 | + var identity_card = th.data.identity_card;//身份证 | |
728 | + console.log("身份证",identity_card); | |
729 | + | |
730 | + if (identity_card == "" || identity_card == null ) { | |
731 | + getApp().my_warnning("请输入身份证", 0, th); | |
732 | + return false; | |
733 | + } else if (!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(identity_card))){ | |
734 | + getApp().my_warnning("身份证号码错误",0, th); | |
735 | + return false; | |
736 | + } | |
737 | + var address = th.data.address;//地址 | |
738 | + console.log("地址1010101", address) | |
739 | + if (address == "" || address == null) { | |
740 | + getApp().my_warnning("请输入地址", 0, th); | |
741 | + return false; | |
742 | + } | |
743 | + //保存所属门店的id | |
744 | + var sto_sele_id=th.data.sto_sele_id; | |
745 | + console.log("请输入所属门店的id", sto_sele_id); | |
746 | + if (sto_sele_id == null || sto_sele_id==""){ | |
747 | + getApp().my_warnning("请输入所属门店", 0, th); | |
748 | + return false; | |
749 | + } | |
750 | + console.log("要保存的数据", sex, consumption, identity_card, address, user_name); | |
751 | + var datas = { | |
752 | + mobile: phone,//手机号码 | |
753 | + store_id: r.stoid, | |
754 | + user_id: getApp().globalData.user_id, | |
755 | + vipnopwd: isstcsp, | |
756 | + vippass: consumption,//消费密码 | |
757 | + sex: sex,//性别 | |
758 | + nickname:user_name,//昵称 | |
759 | + idcard:identity_card,//身份证 | |
760 | + address:address,//地址 | |
761 | + pickup_id: sto_sele_id//自提门店 所属门店 | |
762 | + } | |
763 | + getApp().request.put("/api/weshop/users/updateUserInfo", { | |
764 | + data: datas, | |
765 | + success: function (res) { | |
766 | + | |
767 | + if (res.data.code==0){ | |
768 | + getApp().showWarning("修改成功"); | |
769 | + }else{ | |
770 | + getApp().showWarning("修改失败"); | |
771 | + } | |
772 | + | |
773 | + } | |
774 | + }) | |
775 | + } | |
776 | + | |
84 | 777 | }); |
85 | 778 | \ No newline at end of file | ... | ... |
pages/user/userinfo/userinfo.json
pages/user/userinfo/userinfo.wxml
1 | +<wxs module="filters" src="../../../utils/filter.wxs"></wxs> | |
1 | 2 | <view class="container"> |
2 | - <view class="user-container"> | |
3 | - <view bindtap="changeAvatar" class="user-head"> | |
4 | - <view class="user-txt">头像</view> | |
5 | - <image class="user_headimg" src="{{user.head_pic?user.head_pic:defaultAvatar}}"></image> | |
3 | + | |
4 | + <!-- 头像,昵称,多个卡 --> | |
5 | + <view class="head flex-space-between"> | |
6 | + <view class="flex-center"> | |
7 | + | |
8 | + <view class="flex-center"> | |
9 | + <image class="Headportrait" src="{{user.head_pic}}"></image> | |
10 | + </view> | |
11 | + <view class="flex-center vipmax"> | |
12 | + <view> | |
13 | + <view class="fs32"> | |
14 | + <view class="ellipsis-1 Nickname">{{user.nickname}} | |
15 | + </view> | |
16 | + </view> | |
17 | + | |
18 | + <view class="flex-center fs22 vip"> | |
19 | + <block wx:if="{{isBool&&gradename}}"> | |
20 | + <navigator url=""> | |
21 | + <view class="flex-center AncrownMax"> | |
22 | + <image class="Ancrown" src="{{iurl}}/miniapp/images/userqy/user_userqy_huang.png"></image> | |
23 | + <view>{{gradename}}</view> | |
24 | + </view> | |
25 | + </navigator> | |
26 | + </block> | |
27 | + <block wx:if="{{user.card_field!=''&& user.card_field!=null && user.card_expiredate!=null&&user.card_expiredate!=null}}"> | |
28 | + <navigator url="/pages/user/plus/plus"> | |
29 | + <view class="flex-center plusMax"> | |
30 | + <image class="fuls" src="{{iurl}}/miniapp/images/userinfo/userinfo/privilege_t.png"></image> | |
31 | + <view>{{pulscardname}}</view> | |
32 | + </view> | |
33 | + </navigator> | |
34 | + </block> | |
35 | + </view> | |
6 | 36 | </view> |
7 | - <view bindtap="editUserInfo1" class="user-name" data-type="nickname"> | |
8 | - <view class="user-name-txt">昵称</view> | |
9 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
10 | - <view class="user-txt-right one-line">{{user.nickname}}</view> | |
37 | + </view> | |
38 | + </view> | |
39 | + <view class="flex ai_and"> | |
40 | + <view class="flex-level ai_and" style="background-image:url({{iurl}}/miniapp/images/userinfo/userinfo/code.png);width:170rpx;height:140rpx;background-size:100%;" bindtap="show_tc"> | |
41 | + <view class="fs26 code" style="color:rgb(255,255,255);margin-left:9rpx;">我的二维码</view> | |
42 | + </view> | |
43 | + </view> | |
44 | + </view> | |
45 | + | |
46 | + <view class="user-container"> | |
47 | + <view class="Bbottom"> | |
48 | + <view bindtap="changeAvatar" class="user-head flex-vertical-between"> | |
49 | + <view class="user-txt">卡号</view> | |
50 | + <view class="user-txt-right">{{user.erpvipno}} | |
11 | 51 | </view> |
12 | - <view bindtap="editUserInfo1" class="user-name" data-type="sex"> | |
13 | - <view class="user-name-txt">性别</view> | |
14 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
15 | - <view class="user-txt-right">{{user.sex?user.sex==1?'男':'女':'保密'}}</view> | |
52 | + </view> | |
53 | + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="nickname"> | |
54 | + <view>是否启用消费密码</view> | |
55 | + <view class="flex-center" bindtap="isstcsp" > | |
56 | + <view class="flex-center cmleft"> | |
57 | + <block wx:if="{{isstcsp}}"> | |
58 | + <icon size="20" type="success" color="rgb(212,2,31)"></icon> | |
59 | + </block> | |
60 | + <block wx:else> | |
61 | + <icon size="20" type="success" color="rgb(0, 0, 0, 0.4)"></icon> | |
62 | + </block> | |
63 | + <view class="Mleft">启动密码消费</view> | |
64 | + </view> | |
16 | 65 | </view> |
66 | + | |
67 | + </view> | |
68 | + <!-- 是否显示密码 --> | |
69 | + <view class="flex-vertical-between user-name" wx:if="{{isstcsp==1}}"> | |
70 | + <view class="user-txt">消费密码</view> | |
71 | + <view class="flex"> | |
72 | + <block wx:if="{{ispwhid}}"> | |
73 | + <input bindblur="lose_focus" class="fs28 hion user-txt-right"value="{{consumption}}" password="true"/> | |
74 | + </block> | |
75 | + <block wx:else> | |
76 | + <input bindblur="lose_focus" class="fs28 hion user-txt-right"value="{{consumption}}"/> | |
77 | + </block> | |
17 | 78 | |
18 | - <view bindtap="editUserInfo1" class="user-name" data-type="sex"> | |
19 | - <view class="user-name-txt">生日</view> | |
20 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
21 | - <view class="user-txt-right">{{user.birthday}}</view> | |
79 | + <block wx:if="{{ispwhid}}"> | |
80 | + <image class="eye" src="{{iurl}}/miniapp/images/userinfo/userinfo/Eye.png" bindtap="ispwhid"></image> | |
81 | + </block> | |
82 | + <block wx:else> | |
83 | + <image class="eye" src="{{iurl}}/miniapp/images/userinfo/open_eye.png" bindtap="ispwhid"></image> | |
84 | + </block> | |
85 | + | |
86 | +</view> | |
22 | 87 | </view> |
23 | 88 | |
24 | 89 | |
25 | - <view bindtap="editUserInfo1" class="user-name mt" data-type="nickname"> | |
26 | - <view class="user-name-txt">姓名</view> | |
27 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
28 | - <view class="user-txt-right one-line" wx:if="{{user.vipname}}">{{user.vipname}}</view> | |
90 | + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="sex"> | |
91 | + <view>性别</view> | |
92 | + <view class="flex"> | |
93 | + <view class="flex-center {{isGender==1?'Gendercheck':'Gender'}}" data-sex="1" bindtap="isGender"> | |
94 | + <block wx:if="{{isGender==1}}"> | |
95 | + <image class="GenderImage" src="{{iurl}}/miniapp/images/userinfo/userinfo/malealready.png"></image> | |
96 | + </block> | |
97 | + <block wx:else> | |
98 | + <image class="GenderImage" src="{{iurl}}/miniapp/images/userinfo/userinfo/malenot.png"></image> | |
99 | + </block> | |
100 | + <view class="fs24">男</view> | |
101 | + </view> | |
102 | + <view class="flex-center {{isGender==2?'Gendercheck':'Gender'}}" data-sex="2"bindtap="isGender" > | |
103 | + <block wx:if="{{isGender==2}}"> | |
104 | + <image class="GenderImage" src="{{iurl}}/miniapp/images/userinfo/userinfo/femalealready.png"></image> | |
105 | + </block> | |
106 | + <block wx:else> | |
107 | + <image class="GenderImage" src="{{iurl}}/miniapp/images/userinfo/userinfo/femalenot.png"></image> | |
108 | + </block> | |
109 | + <view class="fs26">女</view> | |
110 | + </view> | |
29 | 111 | </view> |
112 | + | |
113 | + </view> | |
30 | 114 | |
31 | - <view bindtap="editUserInfo1" class="user-name" data-type="nickname"> | |
32 | - <view class="user-name-txt">身份证</view> | |
33 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
34 | - <view class="user-txt-right one-line" wx:if="{{user.idcard}}">{{user.idcard}}</view> | |
35 | - </view> | |
36 | - <view bindtap="editUserInfo1" class="user-name" data-type="mobile"> | |
37 | - <view class="user-name-txt">电话</view> | |
38 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
39 | - <view class="user-txt-right">{{user.mobile}}</view> | |
40 | - </view> | |
41 | - <view bindtap="editUserInfo1" class="user-name" data-type="mobile"> | |
42 | - <view class="user-name-txt">地址</view> | |
43 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
44 | - <view class="user-txt-right" wx:if="{{user.address}}">{{user.address}}</view> | |
115 | + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="sex"> | |
116 | + <view>出生日期</view> | |
117 | + <view class="flex flex-vertical-between fs28 Birth"> | |
118 | + <view class="flex" bindtap="iscalendar"> | |
119 | + <block wx:if="{{iscalendar&&user.birthday==null&&user.birthday==''}}"> | |
120 | + <view class="flex-center"> | |
121 | + <icon size="20" type="success" color="rgb(212,2,31)"></icon> | |
122 | + </view> | |
123 | + </block> | |
124 | + <block wx:else> | |
125 | + <icon size="20" type="success" color="rgb(0, 0, 0, 0.4)"></icon> | |
126 | + </block> | |
127 | + <view class="flex-center"> | |
128 | + <view class="Mleft">农历</view> | |
129 | + </view> | |
130 | + </view> | |
131 | + <view class="user-txt-right"> | |
132 | + <!-- 填充数据的时候要判断是否已经有出生日期,有值的话就不可修改 --> | |
133 | + <block wx:if="{{user.birthday==''||user.birthday==null}}"> | |
134 | + <picker bindchange='bindChange' value="{{datet}}" mode="date" | |
135 | + start="{{year-70}}-1-1" end="{{year}}-12-31"> | |
136 | + </picker> | |
137 | + </block> | |
138 | + <block wx:else> | |
139 | + <view>{{datet==""? user.birthday==""?"":filters.replace_time2(user.birthday):datet}}</view> | |
140 | + </block> | |
141 | + | |
142 | + </view> | |
45 | 143 | </view> |
144 | + </view> | |
145 | + </view> | |
146 | + <view class="Bbottom"> | |
147 | + <view bindtap="editUserInfo1" class="user-name mt flex-vertical-between" data-type="nickname"> | |
148 | + <view class="user-name-txt">姓名</view> | |
149 | + <input bindblur="user_name" class="user-txt-right t-r" placeholder="*姓名" value='{{user.vipname}}'/> | |
150 | + </view> | |
46 | 151 | |
47 | - <view bindtap="editUserInfo1" class="user-name" data-type="email"> | |
48 | - <view class="user-name-txt">所属门店</view> | |
49 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
50 | - <view class="user-txt-right one-line">{{stoname}}</view> | |
51 | - </view> | |
52 | - <!-- <view bindtap="editUserInfo1" class="user-change" data-type="password"> | |
53 | - <view class="user-name-txt">修改密码</view> | |
54 | - <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> | |
55 | - </view> | |
56 | - <view bindtap="editUserInfo1" class="user-name" data-type="paypwd"> | |
57 | - <view class="user-name-txt">支付密码</view> | |
58 | - <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> | |
59 | - </view> --> | |
60 | - <navigator class="user-name mt" url="/pages/user/address_list/address_list"> | |
61 | - <view class="user-name-txt">收货地址</view> | |
62 | - <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> | |
63 | - </navigator> | |
64 | - <view bindtap='show_tc' class="user-name" data-type="email"> | |
65 | - <view class="user-name-txt">我的二维码名片</view> | |
66 | - <image class="arrow-right" src="{{iurl}}/miniapp/images/user/code.png"></image> | |
152 | + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="nickname"> | |
153 | + <view class="user-name-txt">身份证</view> | |
154 | + | |
155 | + <input bindblur="identity_card" class="user-txt-right t-r" value="{{user.idcard}}" placeholder="*身份证"></input> | |
156 | + | |
157 | + | |
158 | + <!-- <block wx:else> | |
159 | + <input class="user-txt-right" bindblur="IdentityIDCard" value="" type="idcard" maxlength="18" placeholder="*身份证" /> | |
160 | + </block> --> | |
161 | + </view> | |
162 | + <navigator url="/pages/user/Change_phone/Change_phone?mobile={{user.mobile}}" class="user-name flex-vertical-between" data-type="mobile"> | |
163 | + <view class="user-name-txt">更换手机</view> | |
164 | + <view class="flex-center user-txt-right"> | |
165 | + <view class="flex">{{phone}}</view> | |
166 | + <view class="angle">∟</view> | |
67 | 167 | </view> |
68 | - <view bindtap="editUserInfo1" class="user-name" data-type="email"> | |
69 | - <view class="user-name-txt">绑定的时间</view> | |
70 | - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> --> | |
71 | - <view class="user-txt-right one-line">{{user.reg_time}}</view> | |
168 | + </navigator> | |
169 | + <view class="user-name flex-vertical-between" data-type="mobile"> | |
170 | + <view class="user-name-txt">地址</view> | |
171 | + <!-- <block wx:if="{{user.address.length>0}}"> | |
172 | + <view>{{user.address}}</view> | |
173 | + </block> | |
174 | + <block wx:else> --> | |
175 | + <input bindblur="address" maxlength="30" value="{{user.address}}" class="user-txt-right" placeholder="*地址" style="text-align:right" /> | |
176 | + <!-- </block> --> | |
177 | + </view> | |
178 | + | |
179 | + <view bindtap="onclickstore" class="user-name flex-vertical-between" data-type="email"> | |
180 | + <view class="user-name-txt">所属门店</view> | |
181 | + <view class="flex-center user-txt-right"> | |
182 | + <view class="one-line">{{stoname}} | |
183 | + </view> | |
184 | + | |
185 | + <view class="angle">∟</view> | |
72 | 186 | </view> |
187 | + </view> | |
73 | 188 | </view> |
189 | + <navigator class="user-name mt flex-vertical-between" url="/pages/user/address_list/address_list"> | |
190 | + <view class="user-name-txt">收货地址</view> | |
191 | + <view class="flex-center user-txt-right"> | |
192 | + <!-- <view class="flex">{{user.address_id}}</view> --> | |
193 | + <view class="angle">∟</view> | |
194 | + </view> | |
195 | + </navigator> | |
196 | + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="email"> | |
197 | + <view class="user-name-txt">绑定的时间</view> | |
198 | + <view class="user-txt-right one-line">{{filters.replace_time2(user.reg_time)}}</view> | |
199 | + </view> | |
200 | + </view> | |
201 | +</view> | |
202 | +<!-- 确认修改按钮 --> | |
203 | +<view class="flex-center confirm"> | |
204 | + <view class="flex-center fs30 confirmtext"bindtap="confirm_revision"> | |
205 | + <view>确认修改</view> | |
206 | + </view> | |
74 | 207 | </view> |
75 | 208 | |
76 | 209 | <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"--> |
77 | 210 | <view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'> |
78 | 211 | <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view> |
79 | 212 | <view class="modal-body"> |
80 | - <view class="modal-content"> | |
81 | - <view class="flex"> | |
82 | - <image src="{{user.head_pic}}" class="hd_img"></image> | |
83 | - <view class="ctent_txt"> | |
84 | - <view class='txt1'>{{user.nickname}} | |
85 | - <image wx:if="{{user.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image> | |
86 | - <image wx:else class="arrow-right" src="{{iurl}}/miniapp/images/user/man.png"></image> | |
87 | - </view> | |
88 | - <view class='txt2' wx:if="{{user.address}}">{{user.address}}</view> | |
89 | - </view> | |
90 | - </view> | |
91 | - <view class="m_ta"> | |
92 | - <image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{user.mobile}}'></image> | |
93 | - </view> | |
94 | - <view class="s_sao">扫一扫上面的二维码图案,即可消费</view> | |
213 | + <view class="modal-content"> | |
214 | + <view class="flex"> | |
215 | + <image src="{{user.head_pic}}" class="hd_img"></image> | |
216 | + <view class="ctent_txt"> | |
217 | + <view class='txt1'>{{user.nickname}} | |
218 | + <image wx:if="{{user.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image> | |
219 | + <image wx:else class="arrow-right" src="{{iurl}}/miniapp/images/user/man.png"></image> | |
220 | + </view> | |
221 | + <view class='txt2' wx:if="{{user.address}}">{{user.address}}</view> | |
222 | + </view> | |
95 | 223 | </view> |
224 | + <view class="m_ta"> | |
225 | + <image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{user.mobile}}'></image> | |
226 | + </view> | |
227 | + <view class="s_sao">扫一扫上面的二维码图案,即可消费</view> | |
228 | + </view> | |
96 | 229 | </view> |
97 | 230 | </view> |
231 | + | |
232 | +<!-- 选择门店的弹框,1.1版最新的 --> | |
233 | +<block wx:if="{{store==1}}"> | |
234 | + <view class="mongolia-layer" bindtap="onclickstore"></view> | |
235 | + <view class="popup-frame"> | |
236 | + <block wx:if="{{sort_store==0}}"> | |
237 | + <!-- 头部 标题 --> | |
238 | + <view class="popup-top flex-space-between"> | |
239 | + <text class="fs32 nearby_store">{{choice_sort_store==0?'附近的门店':region_name}}</text> | |
240 | + <view> | |
241 | + <view> | |
242 | + <icon bindtap="onclickstore" class="modal-closes" color="black" size="22" type="cancel"></icon> | |
243 | + </view> | |
244 | + <view class="felx choose_more" bindtap="more_store"> | |
245 | + <text class="fs26 red-co" wx:if="{{is_show_sto_cat}}">{{choice_sort_store==0?'更多门店':'返回'}}</text> | |
246 | + <view class="bg_rights"></view> | |
247 | + </view> | |
248 | + </view> | |
249 | + </view> | |
250 | + <!-- 门店列表,最外层的门店列表,一开始 --> | |
251 | + <view class="store-list"> | |
252 | + <!--如果还没有点击更多门店的时候 --> | |
253 | + <block wx:if="{{choice_sort_store==0}}"> | |
254 | + <!-- 需要for循环 --> | |
255 | + <block wx:if="is_show_sto_cat==1"> | |
256 | + <view class="store_choose flex" wx:for="{{def_pickpu_list}}" bindtap="choose_for_store_fir" data-ind="{{index}}"> | |
257 | + <view class="store flex-vertical"> | |
258 | + <!-- 需要点击事件 --> | |
259 | + <block wx:if="{{index==fir_pick_index}}"> | |
260 | + <view class="circle white xc-hook fs20 red-b">Г</view> | |
261 | + </block> | |
262 | + <block wx:else> | |
263 | + <view class="circle xc-hooks"></view> | |
264 | + </block> | |
265 | + <view class="address-frame xc-ash"> | |
266 | + <view class="flex-vertical-between butttem5"> | |
267 | + <view class="flex xc-ash"> | |
268 | + <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view> | |
269 | + </view> | |
270 | + <view> | |
271 | + <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}"> | |
272 | + 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+'km':filters.toFix(item.distance,0)+"m"}}</view> | |
273 | + </view> | |
274 | + </view> | |
275 | + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view> | |
276 | + </view> | |
277 | + </view> | |
278 | + </view> | |
279 | + </block> | |
280 | + <block wx:else> | |
281 | + <view class="store_choose flex" wx:for="{{only_pk}}" bindtap="choose_for_store_fir" data-ind="{{index}}"> | |
282 | + <view class="store flex-vertical"> | |
283 | + <!-- 需要点击事件 --> | |
284 | + <block wx:if="{{index==fir_pick_index}}"> | |
285 | + <view class="circle white xc-hook fs20 red-b">Г</view> | |
286 | + </block> | |
287 | + <block wx:else> | |
288 | + <view class="circle xc-hooks"></view> | |
289 | + </block> | |
290 | + | |
291 | + <view class="address-frame xc-ash"> | |
292 | + <view class="flex-vertical-between "> | |
293 | + <view class="flex xc-ash"> | |
294 | + <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view> | |
295 | + </view> | |
296 | + <view> | |
297 | + <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}">距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}} | |
298 | + </view> | |
299 | + </view> | |
300 | + </view> | |
301 | + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view> | |
302 | + </view> | |
303 | + </view> | |
304 | + </view> | |
305 | + </block> | |
306 | + </block> | |
307 | + <block wx:else> | |
308 | + <!-- 如果是点击选择门店分类后显示分类下的门店 --> | |
309 | + <view class="store_choose flex" wx:for="{{sec_sto.s_arr}}" data-ind="{{index}}" bindtap="choose_for_store"> | |
310 | + <view class="store flex-vertical"> | |
311 | + <!-- 需要点击事件 --> | |
312 | + <block wx:if="{{index==sec_pick_index}}"> | |
313 | + <view class="circle white xc-hook fs20 red-b">Г</view> | |
314 | + </block> | |
315 | + <block wx:else> | |
316 | + <view class="circle xc-hooks"></view> | |
317 | + </block> | |
318 | + | |
319 | + <view class="address-frame xc-ash"> | |
320 | + <view class="flex-vertical-between "> | |
321 | + <view class="flex xc-ash"> | |
322 | + <view class="fs28 xc-black3 address_name">{{item.pickup_name}}</view> | |
323 | + </view> | |
324 | + <view> | |
325 | + <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}"> 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}}</view> | |
326 | + </view> | |
327 | + </view> | |
328 | + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view> | |
329 | + </view> | |
330 | + </view> | |
331 | + </view> | |
332 | + </block> | |
333 | + | |
334 | + </view> | |
335 | + | |
336 | + <!-- 门店列表底部 --> | |
337 | + <view class="store-bottom-frame"> | |
338 | + <view class="store-bottom flex-center"> | |
339 | + <view class="determine red-b fs30 white t-c" bindtap="sure_pick" data-openindstore="{{open_ind_store}}">确定</view> | |
340 | + <!-- <view class="default t-c fs28" bindtap="set_def_pick" data-openindstore="{{open_ind_store}}">设为默认</view> --> | |
341 | + </view> | |
342 | + </view> | |
343 | + | |
344 | + </block> | |
345 | + | |
346 | + | |
347 | + <block wx:else> | |
348 | + <view class="popup-top flex-space-between"> | |
349 | + <text class="fs32 nearby_store">门店分类选择</text> | |
350 | + <view> | |
351 | + <view> | |
352 | + <icon bindtap="onclickstore" class="modal-closes" color="black" size="22" type="cancel"></icon> | |
353 | + </view> | |
354 | + </view> | |
355 | + </view> | |
356 | + <view class="sort_store_list"> | |
357 | + | |
358 | + <view class="sort-store-frame" wx:for="{{all_sto}}" data-index="{{index}}" bindtap="choice_sort_store" data-region="{{item.name}}"> | |
359 | + <view class="sort-store flex-vertical-between"> | |
360 | + <view class="fs30" di>{{item.name}}</view> | |
361 | + <view class="black_rights-frame"> | |
362 | + <view class="black_rights"></view> | |
363 | + </view> | |
364 | + </view> | |
365 | + </view> | |
366 | + | |
367 | + </view> | |
368 | + </block> | |
369 | + </view> | |
370 | +</block> | |
371 | +<warn id="warn"></warn> | |
98 | 372 | \ No newline at end of file | ... | ... |
pages/user/userinfo/userinfo.wxss
1 | +.container{ | |
2 | + padding-bottom:165rpx; | |
3 | + transform: translate() | |
4 | +} | |
1 | 5 | .user-container { |
2 | - font-size: 30rpx; | |
6 | + font-size: 30rpx; | |
7 | +} | |
8 | +input{ | |
9 | + width: 450rpx; | |
10 | +} | |
11 | +.head { | |
12 | + height: 220rpx; | |
13 | + border-bottom: 6rpx solid rgb(245, 245, 245); | |
14 | + border-top: 2rpx solid rgb(245, 245, 245); | |
15 | + background-size: 100%; | |
16 | +} | |
17 | +.angle{ | |
18 | + transform: rotate(225deg); | |
19 | + font-size: 24rpx; | |
20 | + margin-top: 2rpx; | |
21 | +} | |
22 | +.Headportrait { | |
23 | + width: 145rpx; | |
24 | + height: 145rpx; | |
25 | + border-radius: 50%; | |
26 | + margin-left: 40rpx; | |
3 | 27 | } |
4 | 28 | |
5 | -.user-head { | |
6 | - width: 100%; | |
7 | - height: 200rpx; | |
8 | - position: relative; | |
9 | - background-color: white; | |
29 | +.vip { | |
30 | + margin-top: 30rpx; | |
31 | + color: rgb(255, 255, 255); | |
10 | 32 | } |
11 | 33 | |
12 | -.user-txt { | |
13 | - float: left; | |
14 | - margin-left: 40rpx; | |
15 | - margin-top: 80rpx; | |
16 | - color: #666; | |
34 | +.AncrownMax { | |
35 | + background-color: rgb(57, 57, 57); | |
36 | + | |
37 | + height: 36rpx; | |
38 | + border-radius: 20rpx; | |
39 | + margin-right: 20rpx; | |
40 | + line-height: 36rpx; | |
41 | + padding-right: 14rpx; | |
42 | +padding-left: 10rpx; | |
43 | + | |
44 | +} | |
45 | +.Nickname{ | |
46 | + max-width:170rpx; | |
47 | +} | |
48 | +.Ancrown { | |
49 | + width: 30rpx; | |
50 | + height: 30rpx; | |
51 | + margin-right: 5rpx; | |
52 | +} | |
53 | + | |
54 | +.plusMax { | |
55 | + background-color: rgb(212, 58, 30); | |
56 | + height: 36rpx; | |
57 | + border-radius: 20rpx; | |
58 | + line-height: 36rpx; | |
59 | + padding-left: 10rpx; | |
60 | +padding-right: 14rpx; | |
61 | + | |
62 | +} | |
63 | + | |
64 | +.fuls { | |
65 | + width: 25rpx; | |
66 | + height: 25rpx; | |
67 | + margin-right: 5rpx; | |
68 | +} | |
69 | + | |
70 | +.Bbottom { | |
71 | + border-bottom: 6rpx solid rgb(245, 245, 245); | |
72 | +} | |
73 | + | |
74 | +.Mleft { | |
75 | + margin-left: 8rpx; | |
76 | +} | |
77 | + | |
78 | +.Birth { | |
79 | + width: 500rpx; | |
80 | +} | |
81 | + | |
82 | +.Gendercheck { | |
83 | + width: 90rpx; | |
84 | + height: 35rpx; | |
85 | + border: 2rpx solid rgb(212, 2, 31); | |
86 | + color: rgb(212, 2, 31); | |
87 | + border-radius: 20rpx; | |
88 | + margin-left: 15rpx; | |
89 | +} | |
90 | + | |
91 | +.Gender { | |
92 | + width: 90rpx; | |
93 | + height: 35rpx; | |
94 | + border: 2rpx solid rgb(153, 153, 153); | |
95 | + color: rgb(153, 153, 153); | |
96 | + border-radius: 20rpx; | |
97 | + margin-left: 15rpx; | |
98 | +} | |
99 | + | |
100 | +.GenderImage { | |
101 | + width: 25rpx; | |
102 | + height: 25rpx; | |
103 | + margin-right: 10rpx; | |
104 | +} | |
105 | +.confirm{ | |
106 | + width: 100%; | |
107 | + position:fixed; | |
108 | + left: 0rpx; | |
109 | + bottom: 0rpx; | |
110 | + height: 130rpx; | |
111 | + background-color: rgb(255,255,255); | |
112 | +} | |
113 | + | |
114 | +.confirmtext { | |
115 | + width: 495rpx; | |
116 | + height: 65rpx; | |
117 | + color: rgb(255, 255, 255); | |
118 | + background-color: rgb(214, 1, 33); | |
119 | + border-radius: 35rpx; | |
120 | +} | |
121 | + | |
122 | +.cmleft { | |
123 | + margin-left: 45rpx; | |
124 | +} | |
125 | + | |
126 | +.hion { | |
127 | + width:300rpx ; | |
128 | + text-align: right; | |
129 | + margin-top: 3rpx; | |
130 | + margin-right: 5rpx; | |
131 | +} | |
132 | + | |
133 | +.eye { | |
134 | + width: 50rpx; | |
135 | + height: 50rpx; | |
136 | +} | |
137 | + | |
138 | +.user-head { | |
139 | + height: 95rpx; | |
140 | + background-color: white; | |
141 | + margin: 0rpx 20rpx; | |
142 | + border-bottom: 2rpx solid rgb(245, 245, 245); | |
143 | + padding: 0rpx 20rpx; | |
144 | + padding-top: 20rpx; | |
17 | 145 | } |
18 | 146 | |
19 | 147 | .user_headimg { |
20 | - height: 140rpx; | |
21 | - width: 140rpx; | |
22 | - border-radius: 70rpx; | |
23 | - float: right; | |
24 | - margin-right: 30rpx; | |
25 | - margin-top: 25rpx; | |
148 | + height: 140rpx; | |
149 | + width: 140rpx; | |
150 | + border-radius: 70rpx; | |
26 | 151 | } |
27 | 152 | |
28 | 153 | .user-name { |
29 | - width: 100%; | |
30 | - height: 100rpx; | |
31 | - margin-top: 2rpx; | |
32 | - background-color: white; | |
154 | + height: 95rpx; | |
155 | + margin-top: 2rpx; | |
156 | + background-color: white; | |
157 | + margin: 0rpx 20rpx; | |
158 | + border-bottom: 2rpx solid rgb(245, 245, 245); | |
159 | + padding: 0rpx 20rpx; | |
33 | 160 | } |
34 | -.user-name.mt{ margin-top: 20rpx;} | |
35 | 161 | |
36 | -.user-name-txt { | |
37 | - float: left; | |
38 | - margin-left: 40rpx; | |
39 | - margin-top: 30rpx; | |
40 | - color: #666; | |
162 | +.user-name.mt { | |
163 | + margin-top: 20rpx; | |
41 | 164 | } |
42 | 165 | |
43 | -.user-txt-right { | |
44 | - float: right; | |
45 | - margin-top: 30rpx; | |
46 | - margin-right: 30rpx; | |
47 | - font-sise:34rpx | |
166 | +.address { | |
167 | + max-width: 300rpx; | |
168 | +} | |
169 | + | |
170 | +.Receiving_goods { | |
171 | + width: 330rpx; | |
48 | 172 | } |
49 | 173 | |
50 | 174 | .user-change { |
51 | - width: 100%; | |
52 | - height: 100rpx; | |
53 | - margin-top: 20rpx; | |
54 | - background-color: white; | |
175 | + width: 100%; | |
176 | + height: 100rpx; | |
177 | + margin-top: 20rpx; | |
178 | + background-color: white; | |
55 | 179 | } |
56 | 180 | |
57 | 181 | .one-line { |
58 | - white-space: nowrap; | |
59 | - word-break: keep-all; | |
60 | - overflow: hidden; | |
182 | + white-space: nowrap; | |
183 | + word-break: keep-all; | |
184 | + overflow: hidden; | |
185 | +} | |
186 | + | |
187 | +/*---弹出层---*/ | |
188 | + | |
189 | +.modal-box { | |
190 | + position: fixed; | |
191 | + width: 100%; | |
192 | + height: 100%; | |
193 | + top: 0px; | |
194 | + background: rgba(0, 0, 0, 0.4); | |
195 | + overflow: hidden; | |
196 | +} | |
197 | + | |
198 | +.modal-body { | |
199 | + position: fixed; | |
200 | + top: 80rpx; | |
201 | + left: 0; | |
202 | + z-index: 100; | |
203 | + background: #fff; | |
204 | + margin-left: 73rpx; | |
205 | + width: 600rpx; | |
206 | + height: 860rpx; | |
207 | + border-radius: 8px; | |
208 | + text-align: center; | |
209 | +} | |
210 | + | |
211 | +.modal-content { | |
212 | + width: 480rpx; | |
213 | + margin: 0 auto; | |
214 | + margin-top: 60rpx; | |
215 | + overflow: hidden; | |
216 | +} | |
217 | + | |
218 | +.modal-content .hd_img { | |
219 | + width: 170rpx; | |
220 | + height: 170rpx; | |
221 | + border-radius: 5px; | |
222 | +} | |
223 | + | |
224 | +.ctent_txt { | |
225 | + margin-left: 30rpx; | |
226 | + text-align: left; | |
227 | +} | |
228 | + | |
229 | +.txt1 { | |
230 | + font-size: 34rpx; | |
231 | + font-weight: bold; | |
232 | +} | |
233 | + | |
234 | +.txt2 { | |
235 | + font-size: 30rpx; | |
236 | + color: #999; | |
237 | + margin-top: 20rpx; | |
61 | 238 | } |
62 | 239 | |
63 | 240 | .arrow-right { |
64 | - width: 30rpx; | |
65 | - height: 30rpx; | |
66 | - margin-right: 30rpx; | |
67 | - float: right; | |
68 | - margin-top: 20rpx; | |
241 | + width: 30rpx; | |
242 | + height: 30rpx; | |
243 | + margin-left: 10rpx; | |
69 | 244 | } |
70 | 245 | |
246 | +.code { | |
247 | + margin-bottom: 10rpx; | |
248 | +} | |
71 | 249 | |
72 | -/*---弹出层---*/ | |
73 | -.modal-box{ | |
74 | - position:fixed; width:100%;height:100%; | |
75 | - top:0px; background:rgba(0,0,0,0.4); | |
250 | +.user-txt-right { | |
251 | + color: rgb(153, 153, 153); | |
252 | + font-size: 28rpx; | |
253 | +} | |
254 | + | |
255 | +.user-txt { | |
256 | + font-size: 32rpx; | |
257 | +} | |
258 | + | |
259 | +.m_ta { | |
260 | + margin-top: 50rpx; | |
261 | +} | |
262 | + | |
263 | +.g_img { | |
264 | + width: 480rpx; | |
265 | + height: 480rpx; | |
266 | +} | |
267 | + | |
268 | +.s_sao { | |
269 | + font-size: 27rpx; | |
270 | + margin-top: 25rpx; | |
271 | +} | |
272 | + | |
273 | +.order-ico1 { | |
274 | + width: 80rpx; | |
275 | + height: 46rpx; | |
276 | + margin-left: 40rpx; | |
277 | + margin-right: 20rpx; | |
278 | + color: rgba(0, 0, 0, 0.4); | |
279 | +} | |
280 | + | |
281 | +.f_btn { | |
282 | + font-size: 24rpx; | |
283 | + padding: 0 12rpx; | |
284 | + margin-right: 26rpx; | |
285 | + margin-top: -10rpx; | |
286 | +} | |
287 | + | |
288 | +.order-ico3 { | |
289 | + width: 54rpx; | |
290 | + height: 40rpx; | |
291 | + margin-left: 40rpx; | |
292 | + margin-right: 20rpx; | |
293 | +} | |
294 | + | |
295 | +.wh1001 { | |
296 | + width: 62rpx; | |
297 | + height: 100%; | |
298 | +} | |
299 | + | |
300 | +.wh1002 { | |
301 | + width: 76rpx; | |
302 | + height: 100%; | |
303 | +} | |
304 | + | |
305 | +.order-ico.cla { | |
306 | + width: 32rpx; | |
307 | +} | |
308 | + | |
309 | +.order-ico.cla2 { | |
310 | + width: 42rpx; | |
311 | + margin-left: 34rpx; | |
312 | +} | |
313 | + | |
314 | +.order-ico.cla3 { | |
315 | + width: 40rpx; | |
316 | + margin-left: 36rpx; | |
317 | +} | |
318 | +/* 日期控件 */ | |
319 | +.pi{ | |
320 | + width:200rpx; | |
321 | + height:auto; | |
322 | + margin-left:10rpx; | |
323 | +} | |
324 | +.vipmax{ | |
325 | + margin-left: 20rpx; | |
326 | +} | |
327 | + | |
328 | + | |
329 | +/* 门店地址 */ | |
330 | +.xc-address_frame{ | |
331 | + border-top:1rpx solid #eee; | |
332 | + width: 100%; | |
333 | + height: auto; | |
334 | +} | |
335 | +.on_height{ | |
336 | +height: 90rpx; | |
337 | +} | |
338 | +.sn_height{ | |
339 | + height: 170rpx; | |
340 | +} | |
341 | +.xc-address_frame .address_frame{ | |
342 | + width: 92%; | |
343 | +padding-left: 10rpx; | |
344 | +margin: auto; | |
345 | + | |
346 | +} | |
347 | +.stores-img{ | |
348 | +width: 40rpx; | |
349 | + height: 35rpx; | |
350 | + margin-right: 10rpx; | |
351 | +} | |
352 | +.shop_name{ | |
353 | + margin-right: 10rpx; | |
354 | +} | |
355 | +.address{ | |
356 | + width: 87%; | |
357 | + margin-top: 5rpx; | |
358 | + margin-bottom: 5rpx; | |
359 | +} | |
360 | +.distance{ | |
361 | + padding-left: 15rpx; | |
362 | + padding-right: 15rpx; | |
363 | + background: #eee; | |
364 | + border-radius: 20rpx; | |
365 | + margin-right: 5rpx; | |
366 | + color: #999; | |
367 | + height: 38rpx; | |
368 | +line-height: 38rpx; | |
369 | + | |
370 | +} | |
371 | +/* 选择门店的弹窗 */ | |
372 | +.mongolia-layer{ | |
373 | + position: fixed; | |
374 | +left: 0; | |
375 | +top: 0; | |
376 | +right: 0; | |
377 | +bottom: 0; | |
378 | +z-index: 11; | |
379 | +background: rgba(0,0,0,0.4); | |
380 | +width: 100%; | |
381 | +height: 91.9%; | |
382 | + | |
383 | +} | |
384 | +.popup-frame{ | |
385 | + position: fixed; | |
386 | +bottom:-1rpx; | |
387 | +z-index: 20; | |
388 | +background: white; | |
389 | +width: 100%; | |
390 | +border-radius: 20rpx 20rpx 0 0; | |
391 | +height: 72%; | |
392 | +} | |
393 | +.popup-top{ | |
394 | + border-bottom: 1rpx solid #eee; | |
395 | + height: 155rpx; | |
396 | + width: 95%; | |
397 | + margin: auto; | |
398 | + line-height: 155rpx; | |
399 | + | |
400 | +} | |
401 | +.bg_rights{ | |
402 | + border-top: 2rpx solid ; | |
403 | + border-right: 2rpx solid ; | |
404 | + transform: rotate(45deg); | |
405 | + display:inline-block; | |
406 | + width:15rpx;height:15rpx; | |
407 | + border-color:#da0b31; | |
408 | +} | |
409 | +.modal-closes { | |
410 | + position: absolute; | |
411 | + right: 30rpx; | |
412 | + top: 20rpx; | |
413 | + height: 50rpx; | |
414 | + line-height: 50rpx; | |
415 | +} | |
416 | +.choose_more{ | |
417 | + margin-top: 40rpx; | |
418 | + padding-right: 20rpx; | |
419 | + | |
420 | +} | |
421 | +.choose_mores{ | |
422 | + margin-top: 30rpx; | |
423 | + margin-right: 15rpx; | |
424 | + | |
425 | +} | |
426 | +.store-list{ | |
427 | + width: 95%; | |
428 | + height: 72%; | |
429 | + overflow-y: scroll; | |
430 | + margin: auto; | |
431 | +} | |
432 | +.store-list .store_choose{ | |
433 | + width: 100%; | |
434 | + height: 120rpx; | |
435 | + line-height: 125rpx; | |
436 | + border-bottom: 1rpx solid #eee; | |
437 | + | |
438 | +} | |
439 | +.store-list .store_choose .store{ | |
440 | +width: 100%; | |
441 | +margin: auto; | |
442 | +line-height: 37rpx; | |
443 | +padding-left: 20rpx; | |
444 | + | |
445 | +} | |
446 | +.xc-hook{ | |
447 | + width: 33rpx; | |
448 | + height: 33rpx; | |
449 | + transform: rotate(-145deg); | |
450 | +line-height: 37rpx; | |
451 | +text-align: center; | |
452 | +} | |
453 | + .xc-hooks{ | |
454 | + width: 30rpx; | |
455 | + height: 30rpx; | |
456 | + border: 1rpx solid #999; | |
457 | + } | |
458 | + .address-frame{ | |
459 | + width: 93%; | |
460 | +margin-left: 7rpx; | |
461 | + | |
462 | + } | |
463 | + .nearby_store{ | |
464 | +margin-left: 17rpx; | |
465 | + } | |
466 | + .address_name{ | |
467 | + margin-right: 10rpx; | |
468 | + | |
469 | + } | |
470 | + .address-val{ | |
471 | + height: 38rpx; | |
472 | +line-height: 38rpx; | |
473 | + | |
474 | + } | |
475 | + .store-bottom{ | |
476 | + width: 85%; | |
477 | + margin: auto; | |
478 | + height: 70rpx; | |
479 | + } | |
480 | + .determine{ | |
481 | + width: 320rpx; | |
482 | + height: 55rpx; | |
483 | + border-radius: 50rpx; | |
484 | + line-height: 55rpx; | |
485 | + } | |
486 | + .default{ | |
487 | + width: 260rpx; | |
488 | + height: 55rpx; | |
489 | + border:3rpx solid #c8c8c8; | |
490 | + border-radius: 50rpx; | |
491 | + line-height: 55rpx; | |
492 | + } | |
493 | + .store-bottom-frame{ | |
494 | + width: 95%; | |
495 | + margin: auto; | |
496 | + | |
497 | + } | |
498 | + /* 门店分类列表 */ | |
499 | +.sort_store_list{ | |
500 | + height: 82%; | |
76 | 501 | overflow: hidden; |
502 | + overflow-y: scroll; | |
503 | + width: 95%; | |
504 | + margin: auto; | |
77 | 505 | } |
78 | -.modal-body{ | |
79 | - position:fixed;top:80rpx;left: 0; z-index: 100; | |
80 | - background: #fff; margin-left: 73rpx; | |
81 | - width: 600rpx; | |
82 | - height: 860rpx; | |
83 | - border-radius: 8px; text-align: center; | |
84 | -} | |
85 | -.modal-content{width: 480rpx; margin: 0 auto; margin-top: 60rpx; overflow: hidden } | |
86 | -.modal-content .hd_img{ width:170rpx; height: 170rpx;border-radius:5px } | |
87 | -.ctent_txt{ margin-left: 30rpx; text-align: left} | |
88 | -.txt1{font-size: 34rpx; font-weight: bold} | |
89 | -.txt2{font-size: 30rpx; color:#999; margin-top: 20rpx } | |
90 | -.arrow-right{ width: 40rpx; height: 40rpx; position: relative;top:10rpx; margin-left: 20rpx;} | |
91 | - | |
92 | -.m_ta{margin-top:50rpx; } | |
93 | -.g_img{ width: 480rpx; height: 480rpx} | |
94 | -.s_sao{font-size: 27rpx; margin-top: 25rpx} | |
95 | -.order-ico1{ width: 80rpx;height: 46rpx; margin-left: 40rpx;margin-right: 20rpx;} | |
96 | -.f_btn{font-size:24rpx; padding: 0 12rpx; margin-right: 26rpx; margin-top: -10rpx} | |
97 | -.order-ico3{ width: 54rpx;height: 40rpx; margin-left: 40rpx;margin-right: 20rpx;} | |
98 | - | |
99 | -.wh1001{ width: 62rpx; height: 100%;} | |
100 | -.wh1002{ width: 76rpx; height: 100%;} | |
101 | -.order-ico.cla{width: 32rpx;} | |
102 | -.order-ico.cla2{width: 42rpx;margin-left: 34rpx;} | |
103 | -.order-ico.cla3{width: 40rpx; margin-left: 36rpx;} | |
506 | +.sort_store_list .sort-store-frame{ | |
507 | + width: 100%; | |
508 | +height: 100rpx; | |
509 | +line-height:100rpx; | |
510 | +border-bottom: 1rpx solid #eee; | |
511 | + | |
512 | +} | |
513 | +.sort_store_list .sort-store-frame .sort-store{ | |
514 | + width: 94.5%; | |
515 | + margin: auto; | |
516 | +} | |
517 | +.black_rights-frame{ | |
518 | +width: 50%; | |
519 | +} | |
520 | +.black_rights-frame .black_rights{ | |
521 | + border-top: 3rpx solid; | |
522 | +border-right: 3rpx solid; | |
523 | +transform: rotate(45deg); | |
524 | +display: inline-block; | |
525 | +width: 20rpx; | |
526 | +height: 20rpx; | |
527 | +} | |
528 | +.xc-val-money{ | |
529 | + height:80rpx; | |
530 | +} | |
531 | + | |
532 | +.xc-distance-bottom{ | |
533 | + margin-bottom: 40rpx; | |
534 | +} | |
535 | +.xc-distance-top{ | |
536 | +margin-top: 10rpx; | |
537 | +} | |
538 | +.xc-width{ | |
539 | + width: 100%; | |
540 | +} | |
541 | +.right-arrow{ width: 15rpx; height:15rpx; | |
542 | + border-top: 2rpx solid #d70026; | |
543 | + border-right: 2rpx solid #d70026; | |
544 | + transform: rotate(45deg);display:inline-block; | |
545 | + margin-bottom:3rpx; | |
546 | +} | |
547 | +.xc-goods-attribute{ | |
548 | + border-bottom: 1px solid #eee; | |
549 | +padding-bottom: 15px; | |
550 | +margin-bottom:40rpx; | |
551 | +} | |
552 | +.xc-val-fream{ | |
553 | + width: 105rpx; | |
554 | +} | |
555 | +.is_stock{ | |
556 | +width: 58%; | |
557 | +height: 70rpx; | |
558 | +border-radius: 55rpx; | |
559 | +} | |
560 | +.select_store_height{ | |
561 | + height: 50rpx; | |
562 | +} | |
563 | +.butttem5{ | |
564 | + margin-bottom: 5rpx; | |
565 | +} | |
566 | + | |
567 | +.s_btn{ margin-top: 25rpx; } | |
104 | 568 | \ No newline at end of file | ... | ... |
utils/pay2.js
0 → 100644
1 | +var t = getApp(), n = t.request; | |
2 | + | |
3 | +module.exports = { | |
4 | + url: "/api/weshop/plus/create/plus/order", | |
5 | + pay: function(dd, succ,fail) { | |
6 | + var i = this; | |
7 | + n.post(this.url, { | |
8 | + data: dd, | |
9 | + success: function(t) { | |
10 | + if(t.data.code==0){ | |
11 | + i.weixinPay(t.data.data, succ,fail); | |
12 | + }else{ | |
13 | + "function" == typeof fail && fail(); | |
14 | + } | |
15 | + return false; | |
16 | + }, | |
17 | + fail: function() { | |
18 | + "function" == typeof fail && fail(); | |
19 | + }, | |
20 | + failStatus: function() { | |
21 | + "function" == typeof fail && fail(); | |
22 | + } | |
23 | + }); | |
24 | + }, | |
25 | + weixinPay: function(n, succ,fail) { | |
26 | + wx.requestPayment({ | |
27 | + timeStamp: String(n.timeStamp), | |
28 | + nonceStr: n.nonceStr, | |
29 | + package: n.packageValue, | |
30 | + signType: n.signType, | |
31 | + paySign: n.paySign, | |
32 | + success: function(n) { | |
33 | + "function" == typeof succ && succ(); | |
34 | + }, | |
35 | + fail: function(n) { | |
36 | + "function" == typeof fail && fail(); | |
37 | + } | |
38 | + }); | |
39 | + } | |
40 | +}; | |
0 | 41 | \ No newline at end of file | ... | ... |
utils/util.js
... | ... | @@ -258,6 +258,7 @@ function get_rand_item(arr){ |
258 | 258 | return arr[ind]; |
259 | 259 | } |
260 | 260 | |
261 | + | |
261 | 262 | function getDistance(lat1, lng1, lat2, lng2){ |
262 | 263 | var radLat1 = lat1*Math.PI / 180.0; |
263 | 264 | var radLat2 = lat2*Math.PI / 180.0; |
... | ... | @@ -269,6 +270,45 @@ function getDistance(lat1, lng1, lat2, lng2){ |
269 | 270 | return s; |
270 | 271 | } |
271 | 272 | |
273 | +//画布画椭圆矩形 | |
274 | +function draw_randon_rect(ctx,x,y,r,w,h){ | |
275 | + ctx.save(); | |
276 | + // 开始绘制 | |
277 | + ctx.beginPath(); | |
278 | + // 因为边缘描边存在锯齿,最好指定使用 transparent 填充 | |
279 | + // 这里是使用 fill 还是 stroke都可以,二选一即可 | |
280 | + ctx.setFillStyle('rgb(237,188,150)') | |
281 | + // ctx.setStrokeStyle('transparent') | |
282 | + // 左上角 | |
283 | + ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5) | |
284 | + | |
285 | + // border-top | |
286 | + ctx.moveTo(x + r, y) | |
287 | + ctx.lineTo(x + w - r, y) | |
288 | + ctx.lineTo(x + w, y + r) | |
289 | + // 右上角 | |
290 | + ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2) | |
291 | + | |
292 | + // border-right | |
293 | + ctx.lineTo(x + w, y + h - r) | |
294 | + ctx.lineTo(x + w - r, y + h) | |
295 | + // 右下角 | |
296 | + ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5) | |
297 | + | |
298 | + // border-bottom | |
299 | + ctx.lineTo(x + r, y + h) | |
300 | + ctx.lineTo(x, y + h - r) | |
301 | + // 左下角 | |
302 | + ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI) | |
303 | + | |
304 | + // border-left | |
305 | + ctx.lineTo(x, y + r) | |
306 | + ctx.lineTo(x + r, y) | |
307 | + // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应 | |
308 | + ctx.fill(); | |
309 | + | |
310 | +} | |
311 | + | |
272 | 312 | module.exports = { |
273 | 313 | formatTime: function(e, r) { |
274 | 314 | var t = e ? new Date(1e3 * e) : new Date(), n = t.getFullYear(), o = t.getMonth() + 1, a = t.getDate(), u = t.getHours(), i = t.getMinutes(), f = t.getSeconds(), s = function(e) { |
... | ... | @@ -359,5 +399,6 @@ module.exports = { |
359 | 399 | measureText: measureText,//画布需要的函数 |
360 | 400 | check_mobile: check_mobile,//验证手机 |
361 | 401 | get_rand_item:get_rand_item, //随机获取元素 |
362 | - getDistance:getDistance //获取俩个经纬网度之间的距离 | |
402 | + getDistance:getDistance, //获取俩个经纬网度之间的距离 | |
403 | + draw_randon_rect:draw_randon_rect //画图画圆角矩形 | |
363 | 404 | }; | ... | ... |