Merged
Merge Request #130 · created by 后端研发-苏明海


Dev


From dev into qa

Merged by 后端研发-苏明海

1 participants









app.js
... ... @@ -298,34 +298,45 @@ App({
298 298 //获取会员门店
299 299 get_user_store:function (func)
300 300 {
301   - var th=this;
302   - //---空会员的情况---
303   - if(!th.globalData.userInfo){
304   - return func(null);
305   - }
306   - if(!this.globalData.pk_store){
307   - var pick_id=0;
308   - //先找一个会员是否有设置默认的地址
309   - if(th.globalData.userInfo.def_pickup_id){
310   - pick_id= th.globalData.userInfo.def_pickup_id
311   - }
312   - //查找会员的注册的地址
313   - else if(th.globalData.userInfo.pickup_id){
314   - pick_id= th.globalData.userInfo.pickup_id
315   - }
316   - //---如果会员没有设置默认门店,同时也没有再注册的时候选择门店--
317   - if(pick_id==0) return func(null);
318   - //获取用户注册时候的门店
319   - th.request.get("/api/weshop/pickup/get/"+os.stoid+"/"+this.globalData.userInfo.pickup_id,{
320   - data:{},
321   - success:function (res) {
322   - th.globalData.pk_store=res.data.data;
323   - func(th.globalData.pk_store);
324   - }
325   - })
326   - }else{
327   - func(this.globalData.pk_store);
328   - }
  301 + var th=this;
  302 + this.getConfig2(function (conf) {
  303 + //---空会员的情况---
  304 + if(!th.globalData.userInfo){
  305 + return func(null);
  306 + }
  307 + if(!th.globalData.pk_store){
  308 + var pick_id=0;
  309 + //先找一个会员是否有设置默认的地址
  310 + if(th.globalData.userInfo.def_pickup_id){
  311 + pick_id= th.globalData.userInfo.def_pickup_id
  312 + }
  313 + //查找会员的注册的地址
  314 + else if(th.globalData.userInfo.pickup_id){
  315 + //--购买门店是否默认登记门店--
  316 + if(conf.switch_list){
  317 + var t_swi=JSON.parse(conf.switch_list);
  318 + if(t_swi.is_regstores){
  319 + pick_id= th.globalData.userInfo.pickup_id
  320 + }
  321 + }
  322 +
  323 + }
  324 + //---如果会员没有设置默认门店,同时也没有再注册的时候选择门店--
  325 + if(pick_id==0) return func(null);
  326 + //获取用户注册时候的门店
  327 + th.request.get("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{
  328 + data:{},
  329 + success:function (res) {
  330 + th.globalData.pk_store=res.data.data;
  331 + func(th.globalData.pk_store);
  332 + }
  333 + })
  334 + }else{
  335 + func(th.globalData.pk_store);
  336 + }
  337 + })
  338 +
  339 +
329 340 },
330 341  
331 342 //-------获取购物车数量----------
... ...
app.json
... ... @@ -69,8 +69,13 @@
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 + "pages/user/Detailed/Detailed",
  77 + "pages/user/Change_phone/Change_phone"
  78 +
74 79 ],
75 80 "permission": {
76 81 "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
... ...
components/diy_picMax/diy_picMax.js
... ... @@ -14,13 +14,14 @@ Component({
14 14 ready: function () {
15 15 //console.log(this.data.object.data)
16 16 //--计算图片组合占用的高度--
  17 + /*--
17 18 var height=0;
18 19 this.properties.object.data.forEach(function (val,ind) {
19 20 if(val.fir.x==0){
20 21 height+=val.y_span*187;
21 22 }
22 23 })
23   - this.setData({pic_height:height})
  24 + this.setData({pic_height:height})--*/
24 25  
25 26 },
26 27 methods: {
... ...
components/diy_picMax/diy_picMax.wxml
1 1 <!--图片组合-->
2   -<view class="picMax" style="height: {{pic_height}}rpx">
  2 +<!-- <view class="picMax" style="height: {{pic_height}}rpx"> -->
  3 +<view class="picMax" >
3 4 <view wx:for="{{object.data}}" class="pic_item width_{{item.x_span}} height_{{item.y_span}} mar_x{{item.fir.x}} mar_y{{item.fir.y}}">
4   - <image bindtap='gopage' data-url="{{item.wxapp_url}}" src="{{item.src}}" mode="widthFix"></image>
  5 + <image bindtap='gopage' data-url="{{item.wxapp_url}}" src="{{item.src}}" mode="widthFix" style="display: block;" ></image>
5 6 </view>
6 7 </view>
... ...
components/diy_picMax/diy_picMax.wxss
1 1 .picMax{width: 100%;position: relative;}
2   -.pic_item{position: absolute; top:0;left:0;}
  2 +.pic_item{display: inline-block; top:0;left:0;vertical-align: middle}
3 3 .pic_item image{width: 100%; height: 100%}
4 4 .width_1{width: 187.5rpx}.width_2{width: 375rpx;}.width_3{width: 562.5rpx}.width_4{width:748rpx;}
5   -.height_1{height: 187.5rpx;}.height_2{height: 375rpx;}.height_3{height: 562.5rpx}.height_4{height: 748rpx;}
6   -.mar_x1{margin-left:187.5rpx;}.mar_x2{margin-left:375rpx;}.mar_x3{margin-left:562.5rpx}.mar_x4{margin-left: 748rpx;}
7   -.mar_y1{margin-top: 187.5rpx;}.mar_y2{margin-top: 375rpx;}.mar_y3{margin-top: 562.5rpx}.mar_y4{margin-top: 748rpx;}
  5 +/* .height_1{height: 187.5rpx;}.height_2{height: 375rpx;}.height_3{height: 562.5rpx}.height_4{height: 748rpx;} */
  6 +/* .mar_x1{margin-left:187.5rpx;}.mar_x2{margin-left:375rpx;}.mar_x3{margin-left:562.5rpx}.mar_x4{margin-left: 748rpx;}
  7 +.mar_y1{margin-top: 187.5rpx;}.mar_y2{margin-top: 375rpx;}.mar_y3{margin-top: 562.5rpx}.mar_y4{margin-top: 748rpx;} */
8 8 .picMax-clear{clear: both;}
9 9 \ No newline at end of file
... ...
components/nav_box_card/nav_box.js 0 → 100644
  1 +var t = getApp(),os =t.globalData.setting;
  2 +Component({
  3 + properties: {
  4 + },
  5 + data: {
  6 + isopen:0,
  7 + iurl:os.imghost,
  8 + },
  9 +
  10 + ready: function() {
  11 + },
  12 + methods: {
  13 + //--点击打开事件--
  14 + open_box:function () {
  15 + this.setData({isopen:1});
  16 + },
  17 + //--关闭事件--
  18 + close_box:function(){
  19 + this.setData({isopen:0});
  20 + },
  21 + //--跳转--
  22 + goto:function (e) {
  23 + var url=e.currentTarget.dataset.url;
  24 + getApp().goto(url);
  25 + }
  26 +
  27 + }
  28 +
  29 +})
0 30 \ No newline at end of file
... ...
components/nav_box_card/nav_box.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/nav_box_card/nav_box.wxml 0 → 100644
  1 +
  2 +<view class="box_main {{isopen==1?'box_isopen':''}}" >
  3 + <view class="dian" bindtap="open_box">
  4 + <image src="{{iurl}}/miniapp/images/sheng_lue.png" ></image>
  5 + </view>
  6 + <view class="cl_list">
  7 + <view class="item" data-url="/pages/index/index/index" bindtap="goto">首页</view>
  8 + <view class="item" data-url="/pages/goods/categoryList/categoryList" bindtap="goto">分类</view>
  9 + <view class="item" data-url="/pages/user/index/index" bindtap="goto">我的</view>
  10 + <view class="item big" bindtap="close_box">×</view>
  11 + </view>
  12 +</view>
  13 +
... ...
components/nav_box_card/nav_box.wxss 0 → 100644
  1 +.box_main{
  2 + width:80rpx;
  3 + height:80rpx;
  4 + background:#272636;
  5 + transition:width 0.8s;
  6 + -moz-transition:width 0.8s; /* Firefox 4 */
  7 + -webkit-transition:width 0.8s; /* Safari and Chrome */
  8 + -o-transition:width 0.8s; /* Opera */
  9 + border-radius:50rpx ;
  10 + position: fixed;
  11 + right: 10rpx;
  12 + bottom:300rpx;
  13 + overflow: hidden;
  14 + z-index: 999999
  15 +
  16 +}
  17 +
  18 +.box_isopen{
  19 + width: 420rpx;
  20 +}
  21 +
  22 +.box_main .dian{
  23 + text-align: center;
  24 +width: 50rpx;
  25 +height: 50rpx;
  26 +color: #ffff;
  27 +font-size: 50rpx;
  28 +background: none;
  29 +
  30 +}
  31 +
  32 +.box_main .dian image{
  33 + width: 60rpx;
  34 +height: 20rpx;
  35 +margin: 0rpx 0 0 10rpx;
  36 +margin-bottom: 7rpx;
  37 +
  38 +}
  39 +
  40 +.box_main.box_isopen .dian{
  41 + display: none;
  42 +}
  43 +
  44 +.box_main .cl_list{
  45 + display: none;
  46 +}
  47 +
  48 +.box_main.box_isopen .cl_list{
  49 + display: block;
  50 + margin-left: 20rpx;
  51 +}
  52 +
  53 +.box_main .cl_list .item{
  54 + display: inline-block;
  55 + width:100rpx;
  56 + height:80rpx;
  57 + text-align: center;
  58 + line-height: 80rpx;
  59 + color: #fff;
  60 + vertical-align: top;
  61 + font-size: 32rpx;
  62 +
  63 +}
  64 +
  65 +.box_main .cl_list .item.big{
  66 + font-size: 70rpx;
  67 +line-height: 70rpx;
  68 +
  69 +}
  70 +
... ...
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/goods/categoryList/categoryList.wxml
... ... @@ -52,7 +52,7 @@
52 52 </view>
53 53 </scroll-view>
54 54 </swiper-item>
55   - <!-------品牌------->
  55 + <!-- 品牌 -->
56 56 <swiper-item>
57 57 <scroll-view scroll-y="true" class="fenlei-list"
58 58 style="height: {{abc}}rpx;" scroll-into-view="{{scrollIntoView}}">
... ... @@ -111,25 +111,25 @@
111 111 </view>
112 112 </view>
113 113 <!-- 分类项目内容 -->
114   - <view class="flex project_height">
  114 + <view class="flex project_height" style="margin-left:-10rpx">
115 115 <!-- 分类项目的类型 -->
116 116 <view class="project_type">
117 117 <view class="project_type-frame">
118 118 <view wx:if="{{is_show_gb}}">
119   - <view bindtap="click_classify" class="share_type fs32 flex-space-between xc-letter-spacing {{select_classify_on==223?'select_classify':''}}"data-index="223"data-name="国家" wx:if="{{is_country}}">
  119 + <view bindtap="click_classify" class="share_type fs30 flex-space-between xc-letter-spacing {{select_classify_on==223?'select_classify':''}}"data-index="223"data-name="国家" wx:if="{{is_country}}">
120 120 <text>国</text><text>家</text>
121 121  
122 122 </view>
123 123 </view>
124 124 <view wx:if="{{is_show_pp}}">
125   - <view bindtap="click_classify" class="{{select_classify_on==220?'select_classify':''}} share_type fs32 flex-space-between xc-letter-spacing" wx:if="{{is_brand}}"data-index="220"data-name="品牌">
  125 + <view bindtap="click_classify" class="{{select_classify_on==220?'select_classify':''}} share_type fs30 flex-space-between xc-letter-spacing" wx:if="{{is_brand}}"data-index="220"data-name="品牌">
126 126 <text>品</text><text>牌</text>
127 127 </view>
128 128 </view>
129 129 <view wx:if="{{is_show_pl}}">
130 130  
131 131 <view wx:for="{{one_level_classify}}" wx:for-item="ittms" >
132   - <view bindtap="click_classify" data-arr="{{ittms.array}}" data-cid="{{ittms.items.id}}" data-pid="0" class="{{select_classify_on==index?'select_classify width80':''}} share_type fs32 t-c {{ittms.items.name.length==2? 'world_sn':''}} {{select_classify_on==index&&ittms.items.name.length==2?'text-indent':''}} {{select_classify_on==index&&ittms.items.name.length==3?'text3':''}}"data-index="{{index}}"data-name="{{ittms.items.name}}">
  132 + <view bindtap="click_classify" data-arr="{{ittms.array}}" data-cid="{{ittms.items.id}}" data-pid="0" class="{{select_classify_on==index?'select_classify width80':''}} share_type fs30 t-c {{ittms.items.name.length==2? 'world_sn':''}} {{select_classify_on==index&&ittms.items.name.length==2?'text-indent':''}} {{select_classify_on==index&&ittms.items.name.length==3?'text3':''}}"data-index="{{index}}"data-name="{{ittms.items.name}}">
133 133 <view class="{{ittms.items.name.length==3?'flex-center-around':'flex-space-between'}}" wx:if="{{ittms.items.name.length<4}}">
134 134 <view wx:for="{{ittms.items.name}}" wx:for-item="name"wx:for-index="index">
135 135 <view>
... ... @@ -138,7 +138,7 @@
138 138 </view>
139 139  
140 140 </view>
141   - <view wx:else class="sort-name ellipsis-1">{{ittms.items.name}}
  141 + <view wx:else class="sort-name ellipsis-1">{{ittms.items.name}}
142 142 </view>
143 143 </view>
144 144  
... ... @@ -152,7 +152,7 @@
152 152 <view class="classify_content">
153 153 <!-- 国家的样式 -->
154 154 <block wx:if="{{select_classify_on==223&&is_show_gb}}">
155   - <view class="classify_name fs32 flex-space-between">
  155 + <view class="classify_name fs28 flex-space-between">
156 156 <view>{{ishaf_three==1?good_list.name:classify_name}}</view>
157 157  
158 158 </view>
... ... @@ -175,9 +175,8 @@
175 175 <!-- 品牌 -->
176 176 <block wx:if="{{select_classify_on==220&&is_show_pp}}">
177 177  
178   - <view class="classify_name fs32 flex-space-between">
179   - <view>{{classify_name}}</view>
180   -
  178 + <view class="classify_name fs28 flex-space-between">
  179 + <view>{{classify_name}}</view>
181 180 </view>
182 181  
183 182 <view class="classify_content-frame flex flex-wrap">
... ... @@ -199,7 +198,7 @@
199 198 <block wx:if="{{is_show_pl}}">
200 199 <block wx:if="{{select_classify_on!=220&&select_classify_on!=223&&is_level_three!=1}}">
201 200 <view>
202   - <view class="classify_name fs32 flex-space-between"data-pid="0"data-cid="{{cat_id}}" bindtap='select_more'>
  201 + <view class="classify_name fs28 flex-space-between"data-pid="0"data-cid="{{cat_id}}" bindtap='select_more'>
203 202 <view class="classify_title ellipsis-1">{{classify_name}}</view>
204 203 <view class="flex select_more" >
205 204 <view class="red-co fs24" >更多</view>
... ... @@ -229,8 +228,8 @@
229 228 <block wx:for="{{goodslist}}"wx:for-item="goods"wx:for-index="inds">
230 229 <view>
231 230  
232   - <view class="classify_name fs32 flex-space-between"data-pid="{{goods.items.parent_id}}" data-cid="{{goods.items.id}}" bindtap='select_more'>
233   - <view class="classify_title ellipsis-1">上帝是世界第四aaaaaaaaaa{{goods.items.name}}</view>
  231 + <view class="classify_name fs28 flex-space-between"data-pid="{{goods.items.parent_id}}" data-cid="{{goods.items.id}}" bindtap='select_more'>
  232 + <view class="classify_title ellipsis-1">{{goods.items.name}}</view>
234 233 <view class="flex select_more" >
235 234 <view class="red-co fs24" >更多</view>
236 235 <view class="bg_right width_height"></view>
... ...
pages/goods/categoryList/categoryList.wxss
... ... @@ -200,7 +200,7 @@ margin-top: 8rpx;
200 200  
201 201 }
202 202 .project_type{
203   - width: 33%;
  203 + width: 26%;
204 204 height: 100%;
205 205 border-right: 1rpx solid #eee;
206 206 white-space: nowrap;
... ... @@ -212,15 +212,14 @@ overflow-y: scroll;
212 212 margin: auto;
213 213 width: 58%;
214 214 margin-top: 40rpx;
215   -overflow: hidden;
216   -
217 215 }
218 216 .xc-letter-spacing{
219   -padding-left: 29rpx;
  217 +padding-left: 20rpx;
220 218 padding-right: 29rpx;
221   -width: 51%;
  219 +width: 58%;
222 220 margin: auto;
223 221 margin-top: 40rpx;
  222 +margin-left:28rpx;
224 223  
225 224  
226 225 }
... ... @@ -260,7 +259,7 @@ width: 60%;
260 259  
261 260 }
262 261 .classify_content{
263   - width: 67%
  262 + width: 72%
264 263  
265 264 }
266 265 .classify_content-frame{
... ... @@ -328,7 +327,7 @@ line-height: 65rpx;
328 327 height: 160rpx;
329 328 }
330 329 .brand_img{
331   - width:200rpx;
  330 + width:220rpx;
332 331 height:86rpx;
333 332 margin-bottom: 10rpx;
334 333 margin-top: 10rpx;
... ... @@ -389,4 +388,6 @@ margin: auto;
389 388 .no_child_lev{width: 100%; text-align: center; color: #adadad; padding-top: 30rpx}
390 389 .classify_title {
391 390 width: 80%;
392   -}
393 391 \ No newline at end of file
  392 +}
  393 +
  394 +.brand_img_name {color: #666;}
394 395 \ No newline at end of file
... ...
pages/index/index/index.wxml
... ... @@ -40,7 +40,7 @@
40 40 </view>
41 41 <view class="pd-view" wx:else></view>
42 42  
43   - <!---导航--->
  43 + <!---导航-->
44 44 <view class="venues_box" hidden='true'>
45 45 <view class="venues_list">
46 46 <view class="venues_item">
... ...
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
  1 +{
  2 + "navigationBarTitleText": "更换手机",
  3 +"usingComponents": {
  4 + "warn": "/components/long_warn/long_warn"
  5 +}
  6 +}
0 7 \ No newline at end of file
... ...
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 + var nickname = user.nickname;
  190 +
  191 + //---二微码---
  192 + var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" +
  193 + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/user/index/index";
  194 +
  195 + wx.getImageInfo({
  196 + src: path3,
  197 + success: function (res) {
  198 + th.get_head_temp(function(){
  199 + var vpath=res.path;
  200 + th.setData({ canvasHidden: false })
  201 + //开启画布
  202 + const ctx = wx.createCanvasContext('myCanvas');
  203 + //先画背景
  204 + ctx.drawImage("../../../images/share/mackground.png", 0, 0, 554 * unit, 899 * unit);
  205 + ctx.setFontSize(24 * unit);
  206 + ctx.setFillStyle("rgb(0,0,0)");
  207 + ctx.fillText(nickname, 152 * unit, 76 * unit);
  208 + var width = 24 * nickname.length * unit + 2 * unit;
  209 + var tj_path = "../../../images/share/q_tj.png";
  210 + ctx.drawImage(tj_path, 152 * unit + width, 54 * unit, 95 * unit, 30 * unit);
  211 + ctx.setFontSize(18 * unit);
  212 + ctx.setLineJoin('round'); //交点设置成圆角
  213 + ctx.setFillStyle("rgb(255,255,255)");
  214 + // ctx.fillText("强烈推荐", 265 * unit, 72 * unit);
  215 + ctx.fillText('强烈推荐', 149 * unit + width + 15 * unit, 76 * unit);
  216 + ctx.setStrokeStyle("rgb(255,255,255)");
  217 + ctx.setLineDash([5 * unit, 5 * unit], 5 * unit);
  218 + ctx.beginPath();
  219 + ctx.moveTo(0, 125 * unit);
  220 + ctx.lineTo(554 * unit, 125 * unit);
  221 + ctx.stroke();
  222 +
  223 + var x = 55 * unit, y = 165 * unit,w = 444 * unit, h = 220 * unit,r = 14 * unit;
  224 + ut.draw_randon_rect(ctx,x,y,r,w,h);
  225 + ctx.clip(); //一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内
  226 + ctx.drawImage(card_ming, x, y, 444 * unit, 220 * unit); // 推进去图片
  227 + ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制
  228 +
  229 + ctx.beginPath();
  230 + // 卡图片
  231 + // ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,);
  232 + ctx.setFontSize(26 * unit);
  233 + ctx.setFillStyle('rgb(218,194,169)');
  234 + ctx.fillText(big_card.CardName, 80 * unit, 215 * unit);
  235 + ctx.setFontSize(18 * unit);
  236 + ctx.setFillStyle('rgb(218,194,169)');
  237 + ctx.fillText("开通plus会员仅" + big_card.CardFee+"元", 80 * unit, 240 * unit);
  238 +
  239 + //zz ctx.drawImage(privilege_o, 80 * unit, 343 * unit, 20 * unit, 20 * unit);
  240 +
  241 + ctx.setFontSize(14 * unit);
  242 + ctx.setFillStyle('rgb(218,194,169)');
  243 + ctx.fillText("按去年用户消费计算,开卡后一年预计省¥3031", 85 * unit, 360 * unit);
  244 +
  245 + ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit);
  246 + ctx.setFillStyle('rgb(218,194,169)');
  247 + ctx.fill();
  248 +
  249 + ctx.drawImage(img_square, 267 * unit, 420 * unit, 13 * unit, 13 * unit);
  250 +
  251 + ctx.beginPath();
  252 + ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit);
  253 + ctx.setFillStyle('rgb(218,194,169)');
  254 + ctx.fill();
  255 +
  256 + ctx.drawImage(img_square, 80 * unit, 470 * unit, 10 * unit, 10 * unit);
  257 + ctx.setFontSize(24 * unit);
  258 + ctx.setFillStyle("rgb(198,165,126)");
  259 + ctx.fillText("PULS会员权益", 100 * unit, 475 * unit);
  260 +
  261 + ctx.setFontSize(20 * unit);
  262 + ctx.setFillStyle("rgb(198,165,126)");
  263 + ctx.fillText("PULS会员专属权益", 100 * unit, 505 * unit);
  264 + ctx.drawImage(img_Ancrown, 355 * unit, 440 * unit, 65 * unit, 65 * unit);
  265 +
  266 + ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit)
  267 + ctx.setFillStyle('rgb(218,194,169)')
  268 + ctx.fill();
  269 +
  270 + ctx.drawImage(img_square, 80 * unit, 575 * unit, 10 * unit, 10 * unit);
  271 + ctx.setFontSize(24 * unit);
  272 + ctx.setFillStyle("rgb(198,165,126)");
  273 + ctx.fillText("PULS会员标识", 100 * unit, 580 * unit);
  274 +
  275 + ctx.setFontSize(20 * unit);
  276 + ctx.setFillStyle("rgb(198,165,126)");
  277 + ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit);
  278 + ctx.drawImage(img_Identification, 355 * unit, 548 * unit, 65 * unit, 65 * unit);
  279 +
  280 + ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit);
  281 + ctx.setFillStyle('rgb(218,194,169)');
  282 + ctx.fill();
  283 +
  284 + ctx.drawImage(img_square, 80 * unit, 695 * unit, 10 * unit, 10 * unit);
  285 + ctx.setFontSize(24 * unit);
  286 + ctx.setFillStyle("rgb(198,165,126)");
  287 + ctx.fillText("PULS会员价格", 100 * unit, 695 * unit);
  288 +
  289 + ctx.setFontSize(20 * unit);
  290 + ctx.setFillStyle("rgb(198,165,126)");
  291 + ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit);
  292 + ctx.drawImage(img_money, 355 * unit, 660 * unit, 65 * unit, 65 * unit);
  293 +
  294 + ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit)
  295 + ctx.setFillStyle('rgb(218,194,169)')
  296 + ctx.fill();
  297 +
  298 + ctx.drawImage(vpath, 100 * unit, 780 * unit, 110 * unit, 110 * unit);
  299 +
  300 + ctx.setFontSize(20 * unit);
  301 + ctx.setFillStyle("#000");
  302 + ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit);
  303 +
  304 + ctx.setFontSize(20 * unit);
  305 + ctx.setFillStyle("#000");
  306 + ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit);
  307 +
  308 + //---绘制圆形要放在最后,头像----
  309 + ctx.save();
  310 + ctx.beginPath();
  311 + var h_x = 60 * unit;
  312 + var h_y = 24 * unit;
  313 + var h_r = 40 * unit;
  314 + var cx = h_x + h_r;
  315 + var cy = h_y + h_r;
  316 + ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false);
  317 + ctx.closePath();
  318 + ctx.fill();
  319 + ctx.clip();
  320 + ctx.drawImage(th.data.head_pic, h_x, h_y, h_r * 2, h_r * 2);
  321 + ctx.restore();
  322 +
  323 + x = 345 * unit, y = 190 * unit,
  324 + w = 105 * unit, h = 30 * unit,
  325 + r = 14 * unit;
  326 + ut.draw_randon_rect(ctx,x,y,r,w,h);
  327 + ctx.setFontSize(18 * unit);
  328 + ctx.setFillStyle("#000");
  329 + ctx.fillText("立即开通", 362 * unit, 212 * unit);
  330 +
  331 + //--绘制图片---
  332 + ctx.draw(false,
  333 + function(){
  334 + setTimeout(function(){
  335 + wx.canvasToTempFilePath({
  336 + x: 0,
  337 + y: 0,
  338 + width: 750,
  339 + height: 930,
  340 + destWidth: 1.2 * 750 * 750 / th.data.screenWidth,
  341 + destHeight: 1.2 * 1217 * 750 / th.data.screenWidth,
  342 + canvasId: 'myCanvas',
  343 + success: function (res) {
  344 + wx.hideLoading();//关闭生成中的方法
  345 + th.data.is_loading = 0;
  346 + console.log("生成的海报");
  347 + console.log(res.tempFilePath);
  348 + var tempFilePath = res.tempFilePath;
  349 + th.setData({
  350 + imagePath: tempFilePath,
  351 + maskHidden: false,
  352 + canvasHidden: true
  353 + });
  354 + wx.previewImage({
  355 + urls: [res.tempFilePath],
  356 + })
  357 + if (!res.tempFilePath) {
  358 + wx.showModal({
  359 + title: '提示',
  360 + content: '图片绘制中,请稍后重试',
  361 + showCancel: false
  362 + })
  363 + }
  364 +
  365 + }
  366 +
  367 + })
  368 + },300)
  369 + })
  370 + })
  371 +
  372 +
  373 +
  374 +
  375 + }
  376 +
  377 + })
  378 +
  379 + },
  380 +
  381 + //--获取头像的本地缓存,回调写法--
  382 + get_head_temp: function (tt) {
  383 + var ee = this;
  384 + if (ee.data.head_pic) {
  385 + tt();return false;
  386 + }
  387 + //---获取分享图片的本地地址,头像和商品图片----
  388 + var path2 = getApp().globalData.userInfo.head_pic;
  389 + if (path2 == "") {
  390 + ee.data.head_pic = "../../../images/share/hui_hear_pic.png";tt();
  391 + } else {
  392 + path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn");
  393 + wx.getImageInfo({
  394 + src: path2,
  395 + success: function (res) {
  396 + //res.path是网络图片的本地地址
  397 + ee.data.head_pic= res.path;tt();
  398 + },
  399 + fail: function (res) {
  400 + ee.data.head_pic= "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的
  401 + tt();
  402 + }
  403 + });
  404 + }
  405 + },
  406 +
  407 + //--- 获取卡类列表 ---
  408 + getPlusCardType: function (e) {
  409 + var storid = o.stoid;
  410 + var th = this;
  411 + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => {
  412 + var plusCard = res.data.data;
  413 + var arr = [1219, 2089, 3031];
  414 + var new_arr = new Array();
  415 + for (var i = 0; i < plusCard.length; i++) {
  416 + //plusCard[i].free=arr[i];
  417 + var item = {"fee": plusCard[i].CardFee, 'index': i}
  418 + new_arr.push(item);
  419 + }
  420 + //根據距離遠近排序,越近在前面,升序
  421 + new_arr.sort(function (a, b) {
  422 + if (a.fee < b.fee) { return -1; } else if (a.fee == b.fee) { return 0; } else { return 1;}
  423 + });
  424 +
  425 + var max_card=plusCard[new_arr[new_arr.length-1].index];
  426 + th.setData({big_card:max_card})
  427 +
  428 + //缓存分享卡的图片
  429 + wx.getImageInfo({
  430 + src: max_card.CardImg,
  431 + success: function (res) {
  432 + var bas_ming = res.path; th.setData({ bas_ming: bas_ming});
  433 + }
  434 + })
  435 +
  436 + })
  437 + },
  438 +
  439 +
  440 +
  441 +
  442 +
  443 +})
0 444 \ No newline at end of file
... ...
pages/user/Detailed/Detailed.json 0 → 100644
  1 +{
  2 + "navigationBarTitleText": "邀请明细",
  3 + "usingComponents": {
  4 + "warn": "/components/long_warn/long_warn"
  5 + }
  6 +}
0 7 \ No newline at end of file
... ...
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: 280rpx;
  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 + is_guoqi:0, //卡是不是过期
  45 +
  46 + yu_e_show:0,//装入余额的弹窗
  47 + },
  48 +
  49 +
  50 +
  51 +
  52 + /**
  53 + * 生命周期函数--监听页面加载
  54 + */
  55 + onLoad: function (options) {
  56 + var that = this,ee=this;
  57 +
  58 + //-----------等级卡说明-------------------
  59 + getApp().request.promiseGet("/api/weshop/storeconfig/get/" + os.stoid, {
  60 + }).then(res => {
  61 + var is_cardrule = res.data.data.cardrules;
  62 + w.wxParse("content", "html", is_cardrule, ee, 6);
  63 + ee.setData({
  64 + is_card_rule: is_cardrule
  65 + });
  66 + })
  67 +
  68 + //----------------------------获取最大的卡类-----------------------
  69 + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + o.stoid, {
  70 +
  71 + }).then(res => {
  72 + var plusCard = res.data.data;
  73 + var big_card = null;
  74 + var big_cards = null;
  75 + console.log(plusCard, "数据什么的", res);
  76 + for (var i = 0; i < plusCard.length; i++) {
  77 + big_cards = Math.max(plusCard[i].CardFee)
  78 + if (plusCard[i].CardFee == big_cards) {
  79 + big_card = plusCard[i]
  80 + }
  81 + }
  82 +
  83 + console.log(big_cards, "是什么东西", big_card);
  84 + ee.setData({
  85 + is_plusCard: plusCard,
  86 + big_card: big_card
  87 + })
  88 +
  89 + //缓存分享卡的图片
  90 + wx.getImageInfo({
  91 + src: big_card.CardImg,
  92 + success: function (res) {
  93 + //回调写法
  94 + var bas_ming = res.path;
  95 + ee.setData({ bas_ming: bas_ming });
  96 + }
  97 + })
  98 +
  99 + })
  100 +
  101 +
  102 + //获取用户设备信息,屏幕宽度
  103 + wx.getSystemInfo({
  104 + success: res => {
  105 + that.setData({
  106 + screenWidth: res.screenWidth
  107 + })
  108 + }
  109 + })
  110 + var goods_list = this.selectComponent("#goods_list"); //组件的id
  111 + goods_list.get_list();
  112 +
  113 +
  114 + },
  115 +
  116 +
  117 +//------------程序初始化入口 同步-------------
  118 + async init() {
  119 + var ee = this, th = ee;
  120 +
  121 + //-------------会员卡的获取-------------
  122 + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/list",
  123 + {
  124 + data: {
  125 + storeId: os.stoid,
  126 + userId: getApp().globalData.user_id,
  127 + },
  128 + }).then(res => {
  129 +
  130 + var GradeCardID = res.data.data[0].GradeCardID;
  131 + var expiryDate = res.data.data[0].ExpiryDate
  132 + console.log(GradeCardID, "卡的id", res.data.data[0]);
  133 + var now=ut.gettimestamp();
  134 + var str = expiryDate.replace(/-/g, '/');
  135 + var end = new Date(str);
  136 + end = Date.parse(end) / 1000;
  137 + var is_guoqi=0;
  138 + if(end<now) is_guoqi=1;
  139 +
  140 +
  141 + ee.setData({cardid: GradeCardID,
  142 + expiryDate: expiryDate,is_guoqi:is_guoqi,
  143 + });
  144 +
  145 +
  146 + })
  147 + //-----------会员分佣-------------------
  148 + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/freeze/money?userId=" + getApp().globalData.user_id + "&storeId=" + os.stoid, {
  149 + }).then(res => {
  150 + console.log("分佣的数据", res.data.data);
  151 + if (res.data.code==0){
  152 + ee.setData({ free:res.data.data});
  153 + }else{
  154 + ee.setData({ free: 0 });
  155 + }
  156 +
  157 + })
  158 + //-----------会员的卡类-------------------
  159 + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/get?storeId=" + os.stoid + "&CardId=" + ee.data.cardid, {
  160 + }).then(res => {
  161 + var user_card= res.data.data;
  162 + console.log(user_card,"会员的卡类");
  163 + ee.setData({user_card: user_card});
  164 + })
  165 +
  166 +
  167 +
  168 + //-----------------获取会员信息-------------------------------
  169 + await getApp().request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.user_id,{
  170 +
  171 + }).then(res => {
  172 + var user = res.data.data;
  173 + var url = ee.data.url;
  174 + console.log("是什么东西", url);
  175 + var img_money = url + "/miniapp/images/plus/share/money.png";
  176 + var img_Ancrown = url + "/miniapp/images/plus/share/Ancrown.png";
  177 + var img_Identification = url + "/miniapp/images/plus/share/Identification.png";
  178 + var img_square = url + "/miniapp/images/plus/share/square.png";
  179 + var privilege_o = url + "/miniapp/images/plus/share/privilege_o.png";
  180 + console.log("图片转换",img_money);
  181 + var big_card = ee.data.big_card;
  182 + ee.setData({
  183 + user: user,
  184 + img_money: img_money,
  185 + img_Ancrown: img_Ancrown ,
  186 + img_Identification: img_Identification,
  187 + img_square, img_square ,
  188 + privilege_o, privilege_o
  189 +
  190 + });
  191 +
  192 + //缓存会员头像的图片
  193 + wx.getImageInfo({
  194 + src: user.head_pic,
  195 + success: function (res) {
  196 + //回调写法
  197 + var user_head= res.path;
  198 + ee.setData({ head_pic: user_head });
  199 + }
  200 + })
  201 + })
  202 + //--------------------缓存vip价格的图片---------------
  203 + wx.getImageInfo({
  204 + src:ee.data.img_money,
  205 + success: function (res) {
  206 + //回调写法
  207 + var img_money = res.path;
  208 + ee.setData({ img_money: img_money});
  209 + }
  210 + })
  211 + //--------------------缓存权益的图片---------------
  212 + wx.getImageInfo({
  213 + src: ee.data.img_Ancrown,
  214 + success: function (res) {
  215 + //回调写法
  216 + var img_Ancrown = res.path;
  217 + ee.setData({ img_Ancrown: img_Ancrown });
  218 + }
  219 + })
  220 + //--------------------缓存标识的图片---------------
  221 + wx.getImageInfo({
  222 + src: ee.data.img_Identification,
  223 + success: function (res) {
  224 + //回调写法
  225 + var img_Identification = res.path;
  226 + ee.setData({ img_Identification: img_Identification });
  227 + }
  228 + })
  229 +
  230 + //--------------------卡的勋章---------------
  231 + wx.getImageInfo({
  232 + src: ee.data.privilege_o,
  233 + success: function (res) {
  234 + //回调写法
  235 + var privilege_o = res.path;
  236 + ee.setData({ privilege_o: privilege_o });
  237 + }
  238 + })
  239 +
  240 + //--------------------方块图---------------
  241 + wx.getImageInfo({
  242 + src: ee.data.img_square,
  243 + success: function (res) {
  244 + //回调写法
  245 + var img_square = res.path;
  246 + ee.setData({ img_square: img_square});
  247 + }
  248 + })
  249 +
  250 + },
  251 +
  252 +
  253 +
  254 +
  255 + //-----打开分享图片----
  256 + Share_pictures: function () {
  257 +
  258 + this.setData({
  259 + canvasHidden: false
  260 + })
  261 + this.saveImageToPhotosAlbum();
  262 + },
  263 +
  264 +
  265 + /**
  266 + * 生命周期函数--监听页面初次渲染完成
  267 + */
  268 + saveImageToPhotosAlbum: function () {
  269 + if (this.data.imagePath != "") {
  270 + wx.previewImage({
  271 + urls: [this.data.imagePath],
  272 + })
  273 + return;
  274 + }
  275 + // if(this.data.is_loading) return false ;
  276 + this.data.is_loading=1;
  277 +
  278 + wx.showLoading({
  279 + title: '生成中...',
  280 + })
  281 +
  282 + this.setData({
  283 + canvasHidden: false
  284 + })
  285 +
  286 + var th = this;
  287 + //设置画板显示,才能开始绘图
  288 + var card_ming=th.data.bas_ming;//卡的图片
  289 + var user = th.data.user;//会员资料;
  290 + var big_card= th.data.big_card;//获取最大的卡
  291 + var user_head = th.data.head_pic;//会员头像
  292 + var img_money = th.data.img_money;//缓存vip的价格
  293 + var img_Ancrown = th.data.img_Ancrown;//会员权益的图片
  294 + var img_Identification = th.data.img_Identification;//会员标识
  295 + var privilege_o = th.data.privilege_o;//勋章图片
  296 + var img_square=th.data.img_square;
  297 + var nickname = user.nickname;
  298 + var app = getApp();
  299 + var unit = th.data.screenWidth / 750 * 1.35;
  300 + var scene = getApp().globalData.user_id;
  301 + console.log("用户头像", th.data.head_pic);
  302 + ///二微码
  303 +
  304 + var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" +
  305 + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/user/index/index";
  306 + wx.getImageInfo({
  307 + src: path3,
  308 + success: function (res) {
  309 + //回调写法
  310 + th.get_head_temp(th.get_goods_temp, function () {
  311 + var vpath=res.path;
  312 +
  313 + console.log("生成二维码", path3);
  314 + //开启画布
  315 + const ctx = wx.createCanvasContext('myCanvas');
  316 +
  317 +
  318 + //先画背景 930
  319 + ctx.drawImage("../../../images/share/mackground.png", 0, 0, 554 * unit, 899 * unit);
  320 + ctx.setFontSize(24 * unit);
  321 + ctx.setFillStyle("rgb(0,0,0)");
  322 + // ctx.fillText(nickname, 152 * unit, 75 * unit, 200 * unit);
  323 + ctx.fillText(nickname, 152 * unit, 76 * unit);
  324 +
  325 + // var width = 24 * nickname.length * unit + 2 * unit;
  326 + var width = 24 * nickname.length * unit + 2 * unit;
  327 + console.log("强烈推荐的距离:", "nickname.length", nickname.length, "unit", unit, "width", width);
  328 + var tj_path = "../../../images/share/q_tj.png";
  329 + // ctx.drawImage(tj_path, 255 * unit + width, 50 * unit, 90 * unit, 30 * unit);
  330 + ctx.drawImage(tj_path, 152 * unit + width, 54 * unit, 95 * unit, 30 * unit);
  331 +
  332 + ctx.setFontSize(18 * unit);
  333 + ctx.setLineJoin('round'); //交点设置成圆角
  334 + ctx.setFillStyle("white");
  335 + ctx.fillText('强烈推荐', 149 * unit + width + 15 * unit, 76 * unit);
  336 + // ctx.fillText("强烈推荐", 265 * unit + width, 72 * unit);
  337 +
  338 + ctx.setStrokeStyle("rgb(255,255,255)");
  339 + ctx.setLineDash([5 * unit, 5 * unit], 5 * unit);
  340 + ctx.beginPath();
  341 + ctx.moveTo(0, 125 * unit);
  342 + ctx.lineTo(554 * unit, 125 * unit);
  343 + ctx.stroke();
  344 +
  345 + var x = 55 * unit,
  346 + y = 165 * unit,
  347 + w = 444 * unit,
  348 + h = 220 * unit,
  349 + r = 14 * unit;
  350 + ctx.save();
  351 + // 开始绘制
  352 + ctx.beginPath();
  353 + // 因为边缘描边存在锯齿,最好指定使用 transparent 填充
  354 + // 这里是使用 fill 还是 stroke都可以,二选一即可
  355 + ctx.setFillStyle('rgb(237,188,150)')
  356 + // ctx.setStrokeStyle('transparent')
  357 + // 左上角
  358 + ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)
  359 +
  360 + // border-top
  361 + ctx.moveTo(x + r, y)
  362 + ctx.lineTo(x + w - r, y)
  363 + ctx.lineTo(x + w, y + r)
  364 + // 右上角
  365 + ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)
  366 +
  367 + // border-right
  368 + ctx.lineTo(x + w, y + h - r)
  369 + ctx.lineTo(x + w - r, y + h)
  370 + // 右下角
  371 + ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)
  372 +
  373 + // border-bottom
  374 + ctx.lineTo(x + r, y + h)
  375 + ctx.lineTo(x, y + h - r)
  376 + // 左下角
  377 + ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)
  378 +
  379 + // border-left
  380 + ctx.lineTo(x, y + r)
  381 + ctx.lineTo(x + r, y)
  382 +
  383 + // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应
  384 + ctx.fill()
  385 +
  386 + ctx.clip(); //画了圆 再剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内
  387 + ctx.drawImage(card_ming, x, y, 444 * unit, 220 * unit); // 推进去图片
  388 + ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制
  389 +
  390 + ctx.beginPath();
  391 + // 卡图片
  392 + // ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,);
  393 + ctx.setFontSize(26 * unit);
  394 + ctx.setFillStyle('rgb(218,194,169)');
  395 + ctx.fillText(big_card.CardName, 80 * unit, 215 * unit);
  396 + ctx.setFontSize(18 * unit);
  397 + ctx.setFillStyle('rgb(218,194,169)');
  398 + ctx.fillText("开通plus会员仅" + big_card.CardFee+"元", 80 * unit, 240 * unit);
  399 +
  400 + // zzctx.drawImage(privilege_o, 80 * unit, 343 * unit, 20 * unit, 20 * unit);
  401 +
  402 + ctx.setFontSize(14 * unit);
  403 + ctx.setFillStyle('rgb(218,194,169)');
  404 + ctx.fillText("按去年用户消费计算,开卡后一年预计省¥3031",85 * unit, 360 * unit);
  405 +
  406 + ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit);
  407 + ctx.setFillStyle('rgb(218,194,169)');
  408 + ctx.fill();
  409 +
  410 + ctx.drawImage(img_square, 267 * unit, 420 * unit, 13 * unit, 13 * unit);
  411 +
  412 + ctx.beginPath();
  413 + ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit);
  414 + ctx.setFillStyle('rgb(218,194,169)');
  415 + ctx.fill();
  416 +
  417 + ctx.drawImage(img_square, 80 * unit, 470 * unit, 10 * unit, 10 * unit);
  418 + ctx.setFontSize(24 * unit);
  419 + ctx.setFillStyle("rgb(198,165,126)");
  420 + ctx.fillText("PULS会员权益", 100 * unit, 475 * unit);
  421 +
  422 + ctx.setFontSize(20 * unit);
  423 + ctx.setFillStyle("rgb(198,165,126)");
  424 + ctx.fillText("PULS会员专属权益", 100 * unit, 505 * unit);
  425 + ctx.drawImage(img_Ancrown, 355 * unit, 440 * unit, 65 * unit, 65 * unit);
  426 +
  427 + ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit)
  428 + ctx.setFillStyle('rgb(218,194,169)')
  429 + ctx.fill();
  430 +
  431 + ctx.drawImage(img_square, 80 * unit, 575 * unit, 10 * unit, 10 * unit);
  432 + ctx.setFontSize(24 * unit);
  433 + ctx.setFillStyle("rgb(198,165,126)");
  434 + ctx.fillText("PULS会员标识", 100 * unit, 580 * unit);
  435 +
  436 + ctx.setFontSize(20 * unit);
  437 + ctx.setFillStyle("rgb(198,165,126)");
  438 + ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit);
  439 + ctx.drawImage(img_Identification, 355 * unit, 548 * unit, 65 * unit, 65 * unit);
  440 +
  441 + ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit);
  442 + ctx.setFillStyle('rgb(218,194,169)');
  443 + ctx.fill();
  444 +
  445 + ctx.drawImage(img_square, 80 * unit, 695 * unit, 10 * unit, 10 * unit);
  446 + ctx.setFontSize(24 * unit);
  447 + ctx.setFillStyle("rgb(198,165,126)");
  448 + ctx.fillText("PULS会员价格", 100 * unit, 695 * unit);
  449 +
  450 + ctx.setFontSize(20 * unit);
  451 + ctx.setFillStyle("rgb(198,165,126)");
  452 + ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit);
  453 + ctx.drawImage(img_money, 355 * unit, 660 * unit, 65 * unit, 65 * unit);
  454 +
  455 + ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit)
  456 + ctx.setFillStyle('rgb(218,194,169)')
  457 + ctx.fill();
  458 +
  459 + ctx.drawImage(vpath, 100 * unit, 780 * unit, 110 * unit, 110 * unit);
  460 +
  461 + ctx.setFontSize(20 * unit);
  462 + ctx.setFillStyle("#000");
  463 + ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit);
  464 +
  465 + ctx.setFontSize(20 * unit);
  466 + ctx.setFillStyle("#000");
  467 + ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit);
  468 +
  469 + //---绘制圆形要放在最后----
  470 + ctx.save();
  471 + ctx.beginPath();
  472 + var h_x = 60 * unit;
  473 + var h_y = 24 * unit;
  474 + var h_r = 40 * unit;
  475 + var cx = h_x + h_r;
  476 + var cy = h_y + h_r;
  477 + ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false);
  478 + ctx.closePath();
  479 + ctx.fill();
  480 + ctx.clip();
  481 + ctx.drawImage(th.data.head_pic, h_x, h_y, h_r * 2, h_r * 2);
  482 + ctx.restore();
  483 +
  484 + var x = 345 * unit,
  485 + y = 190 * unit,
  486 + w = 105 * unit,
  487 + h = 30 * unit,
  488 + r = 14 * unit;
  489 + ctx.save();
  490 + // 开始绘制
  491 + ctx.beginPath();
  492 + // 因为边缘描边存在锯齿,最好指定使用 transparent 填充
  493 + // 这里是使用 fill 还是 stroke都可以,二选一即可
  494 + ctx.setFillStyle('rgb(237,188,150)')
  495 + // ctx.setStrokeStyle('transparent')
  496 + // 左上角
  497 + ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)
  498 +
  499 + // border-top
  500 + ctx.moveTo(x + r, y)
  501 + ctx.lineTo(x + w - r, y)
  502 + ctx.lineTo(x + w, y + r)
  503 + // 右上角
  504 + ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)
  505 +
  506 + // border-right
  507 + ctx.lineTo(x + w, y + h - r)
  508 + ctx.lineTo(x + w - r, y + h)
  509 + // 右下角
  510 + ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)
  511 +
  512 + // border-bottom
  513 + ctx.lineTo(x + r, y + h)
  514 + ctx.lineTo(x, y + h - r)
  515 + // 左下角
  516 + ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)
  517 +
  518 + // border-left
  519 + ctx.lineTo(x, y + r)
  520 + ctx.lineTo(x + r, y)
  521 +
  522 + // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应
  523 + ctx.fill()
  524 +
  525 + ctx.setFontSize(18 * unit);
  526 + ctx.setFillStyle("#000");
  527 + ctx.fillText("立即开通", 362 * unit, 212 * unit);
  528 +
  529 +
  530 + //绘制图片
  531 + ctx.draw(false,
  532 + function(){
  533 + setTimeout(function(){
  534 + wx.canvasToTempFilePath({
  535 + x: 0,
  536 + y: 0,
  537 + width: 750,
  538 + height: 930,
  539 + destWidth: 1.2 * 750 * 750 / th.data.screenWidth,
  540 + destHeight: 1.2 * 1217 * 750 / th.data.screenWidth,
  541 + canvasId: 'myCanvas',
  542 + success: function (res) {
  543 + wx.hideLoading();//关闭生成中的方法
  544 + th.data.is_loading = 0;
  545 + console.log("生成的海报");
  546 + console.log(res.tempFilePath);
  547 + var tempFilePath = res.tempFilePath;
  548 + th.setData({
  549 + imagePath: tempFilePath,
  550 + maskHidden: false,
  551 + canvasHidden: true
  552 + });
  553 + wx.previewImage({
  554 + urls: [res.tempFilePath],
  555 + })
  556 + if (!res.tempFilePath) {
  557 + wx.showModal({
  558 + title: '提示',
  559 + content: '图片绘制中,请稍后重试',
  560 + showCancel: false
  561 + })
  562 + }
  563 + }
  564 + })
  565 + },500)
  566 +
  567 + })
  568 +
  569 +
  570 + })
  571 + }
  572 + })
  573 +
  574 + },
  575 +
  576 + //--获取头像的本地缓存,回调写法--
  577 + get_head_temp: function (tt, func) {
  578 + var ee = this;
  579 + console.log("获取头像", ee.data.head_pic);
  580 + if (ee.data.head_pic) {
  581 + tt(func);
  582 + return false;
  583 + }
  584 + //---获取分享图片的本地地址,头像和商品图片----
  585 + var path2 = getApp().globalData.userInfo.head_pic;
  586 + if (path2 == "") {
  587 + ee.data.head_pic = "../../../images/share/hui_hear_pic.png";
  588 + tt(func);
  589 + } else {
  590 + path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn");
  591 + wx.getImageInfo({
  592 + src: path2,
  593 + success: function (res) {
  594 + //res.path是网络图片的本地地址
  595 + ee.data.head_pic= res.path;
  596 + tt(func);;
  597 + },
  598 + fail: function (res) {
  599 + ee.data.head_pic= "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的
  600 + tt(func);
  601 + }
  602 + });
  603 + }
  604 + },
  605 + //--获取商品图片的本地缓存,回调写法--
  606 + get_goods_temp: function (tt) {
  607 + var ee = this;
  608 + if (ee.data.head_pic) {
  609 + tt();
  610 + return false;
  611 + }
  612 + //获取商品是分享图信息
  613 + wx.getImageInfo({
  614 + src: ee.data.head_pic,
  615 + success: function (res) {
  616 + //res.path是网络图片的本地地址
  617 + ee.data.head_pic = res.path;
  618 + tt();
  619 + },
  620 + fail: function (res) {
  621 + ee.data.head_pic = "../../../images/share/default_g_img.gif"; //分享的图片不能用网络的
  622 + tt();
  623 + }
  624 + });
  625 + },
  626 + /**
  627 + * 生命周期函数--监听页面显示
  628 + */
  629 + onShow: function () {
  630 + //同步初始化
  631 + this.init();
  632 +
  633 +
  634 + },
  635 +
  636 + /**
  637 + * 生命周期函数--监听页面隐藏
  638 + */
  639 + onHide: function () {
  640 +
  641 + },
  642 +
  643 + /**
  644 + * 生命周期函数--监听页面卸载
  645 + */
  646 + onUnload: function () {
  647 +
  648 + },
  649 +
  650 + /**
  651 + * 页面相关事件处理函数--监听用户下拉动作
  652 + */
  653 + onPullDownRefresh: function () {
  654 +
  655 + },
  656 +
  657 + /**
  658 + * 页面上拉触底事件的处理函数
  659 + */
  660 + onReachBottom: function () {
  661 + var goods_list = this.selectComponent("#goods_list"); //组件的id
  662 + goods_list.get_list();
  663 +
  664 + },
  665 +
  666 +
  667 + //--转到用户余额--
  668 + to_user_money:function(){
  669 + this.setData({yu_e_show:1})
  670 + },
  671 + close_yu_e:function(){
  672 + this.setData({yu_e_show:0})
  673 + },
  674 + go_yu_e:function(){
  675 + var th=this,free=th.data.free;
  676 + if(!th.data.free.VIPRebate){
  677 + getApp().my_warnning("您没有转入余额",0,th); return false;
  678 + }
  679 + wx.showModal({
  680 + title: '提示',
  681 + content: '您确定要转入余额吗?',
  682 + success(res) {
  683 + if (res.confirm) {
  684 + getApp().request.post("/api/weshop/plus/withdrawal/referee/money",{
  685 + data:{storeId:os.stoid,userId:getApp().globalData.user_id},
  686 + success:function(res){
  687 + if(res.data.code==0){
  688 + getApp().my_warnning("转入成功",0,th);
  689 + free.VIPRebate=0;
  690 + th.setData({free:free});
  691 + }else{
  692 + getApp().my_warnning(res.data.msg ,0,th);
  693 + }
  694 + }
  695 + })
  696 + }
  697 + }
  698 + })
  699 + },
  700 +
  701 +
  702 + //-----立即续费的功能------
  703 + xufei:function(){
  704 + var th = this;
  705 + var is_card = 0;
  706 + var item = th.data.user_card;
  707 + var req = {};
  708 + req.cardId = item.CardId;
  709 + req.rechargeType = 4;
  710 + //如果不是你导购,也不是等级会员分享
  711 + req.storeId = os.stoid;
  712 + req.userId = getApp().globalData.user_id;
  713 + t_pay.pay(req, th.success, function () {
  714 + getApp().my_warnning("支付失败", 0, th);
  715 + });
  716 +
  717 + },
  718 +
  719 + //--支付成功,跳转到等级卡续费页面--
  720 + success:function () {
  721 + getApp().my_warnning("支付成功",0,this);
  722 + },
  723 +
  724 +})
0 725 \ No newline at end of file
... ...
pages/user/cardinfo/cardinfo.json 0 → 100644
  1 + {
  2 + "usingComponents": {
  3 + "pop_txt": "/components/userqy_pop_up/userqy_pop_up",
  4 + "goods_recommend": "/components/goods_list/goods_list",
  5 + "warn": "/components/long_warn/long_warn",
  6 + "nav_box": "/components/nav_box_card/nav_box"
  7 + },
  8 + "navigationBarTitleText": "plus会员"
  9 +}
0 10 \ No newline at end of file
... ...
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 + <view class="Opening_bk">
  9 + <image src="{{url}}/miniapp/images/plus/card_bk.png"></image>
  10 + </view>
  11 +
  12 + <view class="MemberPlus rel"style="background-image:url('{{user_card.CardImg}}');background-size: 100% 100%;background-repead:no-repead;">
  13 +
  14 + <view class="flex-space-between">
  15 + <view style="color:{{user_card.CardColor}}">
  16 + <view class="fs36 h36" style="font-weight:bold">{{user_card.CardName}}</view>
  17 + <view wx:if="{{!is_guoqi}}" class="fs22 h22" style="margin-top:15rpx">会员将在{{filters.replace_time2(expiryDate)}}到期</view>
  18 + <view wx:else class="fs22 h22" style="margin-top:15rpx">会员已在{{filters.replace_time2(expiryDate)}}过期</view>
  19 + </view>
  20 + <view bindtap="xufei" class="renew fs28" style="background:{{user_card.CardColor}}">立即续费
  21 + </view>
  22 + </view>
  23 +
  24 + <view class="flex-vertical-between xs fs28">
  25 + <view class="flex ai-center" style=" overflow:hidden">
  26 + <view class="Member"
  27 + style="background-image:url('{{url}}/miniapp/images/plus/privilege_o.png'); filter: drop-shadow(40px 0 0 {{user_card.CardColor}});">
  28 + </view>
  29 + <view wx:if="{{!is_guoqi}}" style="color:{{user_card.CardColor}}">正在享受{{user_card.CardName}}会员特权</view>
  30 + <view wx:else style="color:{{user_card.CardColor}}">享受更低价格,请续费哦</view>
  31 + </view>
  32 + <view wx:if="{{!is_guoqi}}" class="flex-vertical" bindtap="Share_pictures">
  33 + <view style="color:{{user_card.CardColor}};border-bottom:3rpx solid {{user_card.CardColor}}">邀请新朋友</view>
  34 +
  35 + <view style="overflow: hidden; margin-left: 10rpx;">
  36 +
  37 + </view>
  38 + </view>
  39 + </view>
  40 +
  41 + </view>
  42 + <view class="flex-vertical-between Invitation fs30">
  43 +
  44 + <view class="flex">
  45 + 已邀请
  46 + <view class="Invitation_count">{{free==0?"0":free.RefereeNumber}}人</view>
  47 + 可提现
  48 + <view class="Invitation_my">{{free==0?"0":free.VIPRebate}}元</view>
  49 + </view>
  50 +
  51 + <view class="flex">
  52 + <view class="Detailed flex-center">
  53 + <navigator url="/pages/user/Detailed/Detailed">明细</navigator>
  54 + </view>
  55 + <view class="Invitation_Cash" bindtap="to_user_money">转到余额</view>
  56 + </view>
  57 + </view>
  58 + <!-- 制作一个圆球导航 -->
  59 + <nav_box></nav_box>
  60 + <!-- 会员礼遇 -->
  61 + <view class="Courtesy">
  62 +
  63 + <!-- 标题 -->
  64 + <view class="flex-center" style="width:100%;height:200rpx;">
  65 + <view>
  66 + <view wx:if="{{false}}" class="Courtesy_title flex-center fs36">开通PLUS会员尊享礼遇
  67 + </view>
  68 + <view wx:else class="Courtesy_title flex-center fs36">PLUS会员尊享礼遇 </view>
  69 +
  70 +
  71 + <view class="flex-center">
  72 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  73 +
  74 + <view class="Courtesy_can fs24">PLUS会员可享以下特权
  75 + </view>
  76 +
  77 +
  78 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  79 + </view>
  80 + </view>
  81 + </view>
  82 +
  83 +
  84 +
  85 + <!-- 会员权益内容 -->
  86 + <view class="Courtesy_comment" style="padding:0 20rpx">
  87 + <view class="wxParse">
  88 + <template is="wxParse" data="{{wxParseData:content.nodes}}"></template>
  89 + </view>
  90 + </view>
  91 + </view>
  92 +
  93 +
  94 +<!-- 好物推荐 -->
  95 + <!-- 好物推荐 -->
  96 + <view class="title">
  97 + <!-- 标题 -->
  98 + <view>
  99 + <!-- 中文名标题 -->
  100 + <view class="China flex-level">
  101 + <view class="line flex-vertical">
  102 + <view class="one"></view>
  103 + <view class="two"></view>
  104 + <view class="three"></view>
  105 + </view>
  106 +
  107 + <view class="Recommend flex-level" bindtap="requestList">好物推荐</view>
  108 +
  109 + <view class="line flex-vertical">
  110 + <view class="three"></view>
  111 + <view class="two"></view>
  112 + <view class="one"></view>
  113 + </view>
  114 + </view>
  115 +
  116 + <!-- 英文标题 -->
  117 + <view class="english flex-center">
  118 + <view class="silk"></view>
  119 + <view class="esh five-level-word">GOOD HOT THING</view>
  120 + <view class="silk"></view>
  121 + </view>
  122 +
  123 + </view>
  124 + </view>
  125 +
  126 +
  127 +<!-- 转入余额提示 -->
  128 +<view class="xc-pop-up" wx:if="{{yu_e_show}}">
  129 + <!-- -->
  130 + <view class="xc-obscuration" bindtap='close_yu_e' catchtouchmove="ture"></view>
  131 + <view>
  132 + <view class="xc-qr-frame">
  133 + <view class="shut" bindtap="close_yu_e">ⅹ</view>
  134 + <view class="fs36 xc-black3 flex jc-center ai-center" style="width:100%;height:200rpx;">确定把所有奖励金转入余额</view>
  135 + <view class="flex jc-center ai_center" style="width: 100%;height: 75rpx;">
  136 + <view bindtap="go_yu_e" class="fs36 white flex jc-center ai-center"
  137 + style="width:40%;height:60rpx;line-height:60rpx;background:#f35e73;border-radius:10rpx;margin-right: 20rpx;">是的</view>
  138 + <view bindtap='close_yu_e' class="fs36 xc-ash flex jc-center ai-center"style="width:40%;height:60rpx;line-height:60rpx;border-radius:10rpx;background:#ececea;">再看看</view>
  139 + </view>
  140 + </view>
  141 + </view>
  142 +</view>
  143 +
  144 +
  145 + <!-- 商品列表组件 -->
  146 + <goods_recommend id="goods_list"></goods_recommend>
  147 + <!-- 商品列表 -->
  148 + <!-- 画布 -->
  149 +<canvas canvas-id='myCanvas' style="width:750rpx;height:1260rpx;"wx:if='{{!canvasHidden}}'></canvas>
  150 +
  151 +<warn id="warn"></warn>
0 152 \ 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 +.box--box_main .box--dian wx-image {
  9 + margin: 0px 0 0 4px;
  10 +
  11 + margin-bottom: 4px;
  12 +
  13 +}
  14 +.MemberPlus {
  15 + width: 618rpx;
  16 + height: 285rpx;
  17 + /* border-radius: 18rpx; */
  18 + box-shadow: 0rpx 0rpx 10rpx #888;
  19 + margin: 0rpx 35rpx;
  20 + color: #ffa786;
  21 + padding: 0rpx 31rpx;
  22 + padding-top: 40rpx;
  23 + background-size: 100%;
  24 + border-top-left-radius: 18rpx;
  25 + border-top-right-radius: 18rpx;
  26 +
  27 +}
  28 +.renew {
  29 + width: 190rpx;
  30 + height: 50rpx;
  31 + border-radius: 18rpx;
  32 + background-color: rgb(237, 189, 150);
  33 + text-align: center;
  34 + line-height: 50rpx;
  35 + color: #000;
  36 + margin-top: 7rpx;
  37 +
  38 +}
  39 +.xs {
  40 + position: absolute; bottom: 30rpx; width: 91%;
  41 +}
  42 +.MemberPlus .privilege {
  43 + width: 30rpx;
  44 + height: 30rpx;
  45 + margin-right: 7rpx;
  46 +}
  47 +.MemberPlus .share {
  48 + width: 30rpx;
  49 + height: 30rpx;
  50 + margin-left: 7rpx;
  51 +}
  52 +.Invitation {
  53 + padding: 0rpx 31rpx;
  54 + box-shadow: 0rpx 0rpx 10rpx #888;
  55 + height: 95rpx;
  56 + background-color: rgb(255, 255, 255);
  57 + z-index: 6;
  58 +}
  59 +.Invitation .Invitation_count, .Invitation_my {
  60 + color: rgb(237, 189, 153);
  61 +}
  62 +.Invitation .Detailed {
  63 + color: rgb(237, 189, 150);
  64 + text-decoration: underline;
  65 +}
  66 +.Invitation .Invitation_Cash {
  67 + width: 150rpx;
  68 + height: 45rpx;
  69 + line-height: 45rpx;
  70 + text-align: center;
  71 + border-radius: 25rpx;
  72 + margin-left: 30rpx;
  73 + background-color: rgb(237, 189, 150);
  74 + color: rgb(255, 255, 255);
  75 +}
  76 +.swiper, .Courtesy, .title {
  77 + position: relative;
  78 + z-index:-3;
  79 +}
  80 +.Courtesy_title {
  81 + color: rgb(173, 137, 79);
  82 + font-weight: bold;
  83 + margin-bottom: 10rpx;
  84 + letter-spacing: 2rpx;
  85 +}
  86 +.Courtesy_image {
  87 + width: 50rpx;
  88 + height: 25rpx;
  89 + margin-top: 8rpx;
  90 +}
  91 +.Courtesy_can {
  92 + margin: 0rpx 7rpx;
  93 + color: rgb(94, 93, 91);
  94 + font-weight: bold;
  95 +}
  96 +
  97 +
  98 +/* 热门好物 */
  99 +
  100 +.title .China {
  101 + width: 100%;
  102 + margin-top: 60rpx;
  103 + margin-bottom: 10rpx;
  104 + line-height: 0rpx;
  105 +}
  106 +
  107 +.title .China .line view {
  108 + width: 2rpx;
  109 +}
  110 +
  111 +.title .China .line {
  112 + height: 40rpx;
  113 + color: rgb(51, 51, 51);
  114 +}
  115 +
  116 +.title .China .line view {
  117 + border-left: 3rpx solid #000;
  118 + margin-left: 5rpx;
  119 +}
  120 +
  121 +.title .China .line .one {
  122 + height: 23rpx;
  123 +}
  124 +
  125 +.title .China .line .two {
  126 + height: 15rpx;
  127 +}
  128 +
  129 +.title .China .line .three {
  130 + height: 18rpx;
  131 +}
  132 +
  133 +.title .China .Recommend {
  134 + margin: 0rpx 20rpx;
  135 + font-size: 28rpx;
  136 + line-height: 39rpx;
  137 + font-weight: bold;
  138 +}
  139 +
  140 +.title .english .silk {
  141 + width: 214rpx;
  142 + height: 2rpx;
  143 + background-color: #000;
  144 +}
  145 +
  146 +.title .english .esh {
  147 + margin: 0rpx 15rpx;
  148 +}
  149 +.Member {
  150 + width: 30rpx;
  151 + height: 30rpx;
  152 + margin-right: 5rpx;
  153 + background-size: 100% 100%;
  154 + background-blend-mode: lighten;
  155 + transform: translateX(-280%);
  156 + vertical-align: top;
  157 +}
  158 +
  159 +.h36{ height:36rpx; line-height: 36rpx;}
  160 +.h22{ height:22rpx; line-height: 22rpx;}
  161 +
  162 +
  163 +
  164 +
  165 +/* 弹窗样式 */
  166 +.xc-pop-up{
  167 + width: 100%;
  168 + height: 100%;
  169 + position:fixed;
  170 + z-index:5;
  171 + display:flex;
  172 +justify-content:center;
  173 +align-items:center;
  174 +
  175 +}
  176 +.xc-obscuration{
  177 + position: fixed;
  178 + left: 0;
  179 + top: 0;
  180 + right: 0;
  181 + bottom: 0;
  182 + z-index: 11;
  183 + background: rgba(0,0,0,0.4);
  184 + width: 100%;
  185 + height: 100%;
  186 +
  187 +}
  188 +
  189 +.shut{
  190 + display: block;
  191 + width: 54rpx;
  192 + height: 54rpx;
  193 +
  194 + font-size: 50rpx;
  195 +
  196 + line-height:47rpx;
  197 + border-radius: 50%;
  198 + -moz-border-radius: 50%;
  199 + -webkit-border-radius: 50%;
  200 + color: #fff;
  201 + text-align: center;
  202 + position: fixed;
  203 +margin-top: -23rpx;
  204 +z-index: 66666;
  205 + right: 20rpx;
  206 + background: #c8162c;
  207 +}
  208 +.xc-qr-frame{
  209 + width:90%;
  210 +height: 260rpx;
  211 + background: #fff;
  212 + z-index: 55;
  213 + position: fixed;
  214 + top:40%;
  215 +
  216 + padding-bottom:20rpx;
  217 + right: 4.5%;
  218 + overflow: hidden;
  219 +
  220 +}
  221 +.fs36{
  222 + font-size: 36rpx;
  223 +}
  224 +.Opening_bk image {
  225 + position: absolute;
  226 +
  227 + width: 100%;
  228 + height: 320rpx;
  229 +}
0 230 \ 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
... ... @@ -4,33 +4,34 @@ var regeneratorRuntime = require(&#39;../../../utils/runtime.js&#39;);
4 4 const {
5 5 barcode,
6 6 qrcode
7   -} = require('../../../utils/index.js')
8   -
  7 +} = require('../../../utils/index.js');
  8 +var ut = require("../../../utils/util.js");
9 9  
10 10 Page({
11 11 /**
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,26 @@ 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 + var now=ut.gettimestamp();
  200 + var str= userInfo.card_expiredate;
  201 + var end = new Date(str);
  202 + end = Date.parse(end) / 1000;
  203 + //---判断是不是有过期---
  204 + if(now<end){ th.setData({is_dengji:1}) }else{ th.setData({is_dengji:3}) }
  205 + }else{
  206 + th.setData({is_dengji:2})
  207 + }
  208 + }
  209 + })
  210 +
191 211 }
192 212 });
193 213  
... ...
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>
  40 +
  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>
37 64  
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   -
  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-center-around ">
  68 + <view class="flex jc-center ai-center">
  69 + <image class="xc-icon" src="{{iurl}}/miniapp/images/user/user_vip.png"></image>
  70 + <view class="member fs28 "> 加入plus会员预计可省3031元</view>
  71 + </view>
  72 + <view class="xc-opening-button t-c" data-url="/pages/user/plus/plus" bindtap="goto">
  73 + <view class="xc-opening fs28">立即开通</view>
  74 + </view>
  75 + </view>
  76 + </view>
  77 +
  78 + <view class="xc-add-member-frame flex-level rel addplus" wx:if="{{is_dengji==3}}">
  79 + <view class="xc-add-member flex-vertical four-level-word">
  80 + <image class="xc-icon" src="{{iurl}}/miniapp/images/user/user_vip.png"></image>
  81 + <view class="member"> 加入plus会员</view>
  82 + <view class="t-c xc-save-money"> 预计可省3031元</view>
  83 + <view class="xc-opening-button t-c" data-url="/pages/user/cardinfo/cardinfo" bindtap="goto" style="margin-left: 186rpx;">
  84 + <view class="xc-opening fs20">立即续费</view>
  85 + </view>
  86 + </view>
54 87 </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>
65 88  
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>
  89 + </view>
  90 + <view class="xc-after-sale rel">
  91 + <view class="xc-after-sale-left flex-center-around">
  92 + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=1">
  93 + <image class="xc-no-money" src="{{iurl}}/miniapp/images/daifuk.png"></image>
  94 + <view class=" xc-word-color four-level-word">待付款</view>
  95 + <text class="order-num" hidden='{{toji.wait_pay>0?"":"true"}}'>{{toji.wait_pay}}</text>
  96 + </view>
  97 + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=3">
  98 + <image class="xc-await" src="{{iurl}}/miniapp/images/shouhuo1.png"></image>
  99 + <view class="xc-word-color four-level-word">待收货</view>
  100 + <text class="order-num" hidden='{{toji.wait_receive>0?"":"true"}}'>{{toji.wait_receive}}</text>
  101 + </view>
  102 + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=4">
  103 + <image class="xc-no-money" src="{{iurl}}/miniapp/images/dpr1.png"></image>
  104 + <view class="xc-word-color four-level-word">待评论</view>
  105 + <text class="order-num" hidden='{{toji.wait_pj>0?"":"true"}}'>{{toji.wait_pj}}</text>
  106 + </view>
  107 + <view class="t-c margin-auto rel" style='margin-left:30rpx;' bindtap="go_order" data-url="/pages/user/return_goods_list/return_goods_list">
  108 + <image class="xc-no-money" src="{{iurl}}/miniapp/images/shouh1.png"></image>
  109 + <view style='height:36rpx;'> </view>
  110 + <view class="xc-word-color four-level-word abs">售后/退款</view>
  111 + <!--<text class="order-num" hidden='{{toji.wait_return>0>0?"":"true"}}' style="right: -20rpx">{{toji.wait_return}}</text>-->
  112 + </view>
90 113  
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>
  114 + <view class='xc-hump abs'></view>
  115 + <view class="flex-verticalr xc-after-sale-right">
  116 + <view class=" xc-order t-c" bindtap="go_order" data-url="/pages/user/order_list/order_list">
  117 + <image class="xc-no-money xc-my-order" src="{{iurl}}/miniapp/images/dindan.png"></image>
  118 + <view class="xc-word-color four-level-word" style='margin-left:20rpx;'>我的订单</view>
  119 + </view>
96 120 </view>
  121 +
97 122 </view>
98 123  
99   - </view>
100   -
101   - </view>
  124 + </view>
  125 +
  126 + <!-- 我的权益 -->
  127 + <view class="xc-my-equity-frame" wx:if="{{qy_list!=null && is_init && gradeId}}">
  128 + <view class="xc-equity-title flex-level" bindtap="go_qy">
  129 + <view class="xc-title-frame flex-space-between">
  130 + <view class="flex-vertical xc-title-content">
  131 + <image class="xc-title-img" src="{{iurl}}/miniapp/images/medal.png"></image>
  132 + <view class="three-level-word">
  133 + 我的权益
  134 + </view>
  135 + </view>
  136 + </view>
  137 + <view class="three-level-word xc-more-frame flex-vertical">
  138 + <view class="three-level-word xc-more">更多</view>
  139 + <view class="bg_right xc-more-click bcolor"></view>
  140 + </view>
  141 + </view>
  142 + <view class="xc-specific-more-frame flex-vertical">
102 143  
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 144 <view bindtap="click_pre">
122   - <view class="bg_left xc-left bcolor" ></view>
  145 + <view class="bg_left xc-left bcolor"></view>
123 146 </view>
124 147  
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>
  148 + <swiper current="{{sw_index}}" style='width:82.7%; height:108rpx' bindchange='onSli' indicator-dots="{{false}}" autoplay="{{false}}">
  149 +
  150 + <swiper-item wx:for="{{qy_list}}" wx:for-item="aitem" wx:for-index="pidx">
  151 + <view class="flex xc-middle">
  152 +
  153 + <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">
  154 + <!-- <text>qy_list.privilegeICOUrl</text> -->
  155 + <image class="xc-center-img {{item.ishas==1?'':'img_gray'}}" src="{{item.PrivilegeICOUrl}}"></image>
  156 + <view class="four-level-word">{{item.PrivilegeName}}</view>
  157 + </view>
  158 + </view>
  159 + </swiper-item>
144 160  
145   - </swiper>
  161 + </swiper>
146 162  
147   - <view bindtap="click_next">
148   - <view class="bg_right xc-right bcolor mt" ></view>
  163 + <view bindtap="click_next">
  164 + <view class="bg_right xc-right bcolor mt"></view>
149 165 </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>
  166 + </view>
  167 + </view>
  168 + <!-- 工具与服务 -->
  169 + <view class="xc-tool-service">
  170 + <view class="xc-tool-service-title flex-vertical">
  171 + <image class="xc-tool-service-img" src="{{iurl}}/miniapp/images/gj.png"></image>
  172 + <view class="three-level-word xc-tool-service-word">工具与服务</view>
  173 + </view>
  174 + <view class="xc-project-frame">
  175 + <!-- 跳转页面 -->
  176 + <view class="center_v">
  177 + <view class="item t-c" data-url="/pages/team/team_ping/team_ping" bindtap="goto">
  178 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/pindan.png"></image>
  179 + <view class="fs26">我的拼单</view>
  180 + </view>
  181 + <view class="item t-c" data-url="/pages/activity/seckill_list/seckill_list" bindtap="goto">
  182 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/miaosha.png"></image>
  183 + <view class="fs26">秒杀活动</view>
  184 + </view>
  185 + <view class="item t-c" bindtap="go_qy" wx:if="{{qy_list!=null && is_init && gradeId}}">
  186 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/quanyi2.png"></image>
  187 + <view class="fs26">我的权益</view>
  188 + </view>
173 189  
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>
  190 + <view class="item t-c" bindtap="contactService">
  191 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/kefu.png"></image>
  192 + <view class="fs26">联系客服</view>
  193 + </view>
178 194  
  195 + <view class="item t-c" data-url="/pages/user/cardinfo/cardinfo" bindtap="goto" wx:if="{{is_dengji==1}}">
  196 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/plus/privilege_o.png"></image>
  197 + <view class="fs26">plus会员</view>
  198 + </view>
179 199  
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>
  200 + <view class="item t-c" data-url="/pages/user/collect_list/collect_list" bindtap="goto">
  201 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/collections.png"></image>
  202 + <view class="fs26">收藏夹</view>
  203 + </view>
184 204  
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>
  205 + <view class="item t-c" data-url="/pages/user/comment/comment" bindtap="goto">
  206 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/evaluate.png"></image>
  207 + <view class="fs26">我的评价</view>
  208 + </view>
189 209  
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>
  210 + <view class="item t-c" data-url="/pages/user/address_list/address_list" bindtap="goto">
  211 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/add2.png"></image>
  212 + <view class="four-level-word">我的地址</view>
  213 + </view>
194 214  
195   - </view>
  215 + </view>
196 216  
197 217  
198 218  
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 219 </view>
  220 + </view>
  221 + <view style='width:100%;height:73rpx;'>
  222 + <view class="xc-recommend-goods flex-center">
  223 +
  224 + <view class="circle xc-small">
  225 + </view>
  226 + <view class="circle xc-zhong">
  227 + </view>
  228 + <view class="circle xc-big">
  229 + </view>
  230 + <view class="three-level-word xc-recommend">为你推荐</view>
  231 + <view class="circle xc-big">
  232 + </view>
  233 + <view class="circle xc-zhong">
  234 + </view>
  235 + <view class="circle xc-small" style='margin-left:15rpx;'>
  236 + <!-- </view> -->
  237 + </view>
218 238 </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">
  239 + </view>
  240 + <!-- 显示商品 -->
  241 + <view class="xc-goods ">
  242 + <view>
  243 + <view bindtap="go_goods" data-gid="{{item.goods_id}}" class="rel xc-goods-recommend {{index%2==0?'':'ml'}}" wx:for="{{recommend_list}}">
  244 + <image class="xc-goods-imgs" src="{{iurl+item.original_img}}"></image>
  245 + <view class='xc-goods-bottom abs'>
  246 + <view class="flex monry-frame">
227 247 <view class="flex">
228   - <view class="three-level-word money-color-val rmb-symbol" >¥</view>
  248 + <view class="three-level-word money-color-val rmb-symbol">¥</view>
229 249 <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>
  250 + </view>
  251 + <view class="five-level-word word-line xc-original-price"> 原价¥{{item.market_price}}</view>
242 252 </view>
243   - </view>
  253 + <view class="xc-good-explain fs26 ellipsis-2 ">{{item.goods_name}}</view>
  254 + </view>
  255 + </view>
  256 + </view>
  257 +
  258 + <view class="xc-content" wx:if="{{nomore}}">
  259 + <view class="xc-middle-line xc-frame">
  260 + <view class="xc-line-text">已经到底</view>
  261 + </view>
  262 + </view>
244 263 </view>
  264 +</view>
245 265  
246 266 <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"-->
247 267 <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>
  268 + <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view>
  269 + <view class="modal-body">
  270 + <view class="modal-content">
  271 + <view class="flex">
  272 + <image src="{{userInfo.head_pic}}" class="hd_img"></image>
  273 + <view class="ctent_txt">
  274 + <view class='txt1'>{{userInfo.nickname}}
  275 + <image wx:if="{{userInfo.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image>
  276 + <image wx:else class="arrow-right fu" src="{{iurl}}/miniapp/images/user/man.png"></image>
  277 + </view>
  278 + <view wx:if="{{userInfo.address}}" class='txt2'>{{userInfo.address}}</view>
  279 + </view>
  280 + </view>
  281 + <view class="m_ta">
  282 + <!--<image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{userInfo.mobile}}'></image>-->
  283 + <canvas class="g_img" canvas-id="qrcode" />
  284 + </view>
  285 + <view class="s_sao">扫一扫上面的二维码图案,即可消费</view>
  286 + </view>
  287 + </view>
268 288 </view>
269 289  
270 290 <pop_txt id="pop_txt"></pop_txt>
271 291 \ 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,42 +145,42 @@ 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: 90rpx;
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;
158   -
159 159 }
160 160 .xc-add-member .member{
161   - margin-left: 15rpx;
  161 + margin-left: 10rpx;
162 162  
163 163 }
164 164 .xc-add-member .xc-save-money{
165   - border-left: 2rpx solid #fff;
  165 + border-left: 2rpx solid rgb(238, 205, 172);
166 166 padding-left: 15rpx;
167 167 margin-left: 15rpx;
168 168  
169 169 }
170 170  
171   -.xc-add-member .xc-opening-button{
172   - width: 130rpx;
173   - margin-left:180rpx;
174   -}
  171 +
175 172  
176 173 .xc-opening{
177 174 border-radius: 20rpx;
178   - background: #fe547c;
179   - color: #fff;
180   - height:36rpx;
181   - line-height: 36rpx;
  175 + background: rgb(238, 205, 172);
  176 + height:34rpx;
  177 + line-height: 34rpx;
  178 + color:#000;
  179 + padding-left: 15rpx;
  180 +padding-right: 17rpx;
  181 +padding: 5rpx 18rpx 5rpx 15rpx;
  182 +
  183 +
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 +
  237 + //--邀请人不能是自己的手机号--
  238 + if(th.data.inp_recommon==getApp().globalData.userInfo.mobile){
  239 + getApp().my_warnning("邀请人不能填自已", 0, th);
  240 + return false;
  241 + }
  242 +
  243 + req.recommon = th.data.inp_recommon
  244 + }
  245 + //--后台要求要输入营业员--
  246 + if (th.data.is_salesman) {
  247 + if (!th.data.inp_serviceman) {
  248 + getApp().my_warnning("请输入营业员", 0, th);
  249 + return false;
  250 + }
  251 + req.serviceman = th.data.inp_serviceman
  252 + }
  253 + }
  254 + req.storeId = os.stoid;
  255 + req.userId = getApp().globalData.user_id;
  256 + //--如果有邀请码,和营业员的情况下--
  257 + if(req.recommon || req.serviceman ) {
  258 + var req_data = {storeId: os.stoid, userId: req.userId};
  259 + if(req.recommon) req_data.inviteCode=req.recommon;
  260 + if(req.serviceman) req_data.staffNo=req.serviceman;
  261 + getApp().request.get("/api/weshop/plus/vip/mem/referee/code/check", {
  262 + data:req_data,
  263 + success:function(res){
  264 + if(res.data.code==0) {
  265 + t_pay.pay(req, th.success, function () {
  266 + getApp().my_warnning("支付失败", 0, th);
  267 + });
  268 + }else{
  269 + getApp().my_warnning(res.data.msg, 0, th);
  270 + }
  271 + }
  272 + })
  273 + }else{
  274 + t_pay.pay(req, th.success, function () {
  275 + getApp().my_warnning("支付失败", 0, th);
  276 + });
  277 + }
  278 + },
  279 + //返回会员页面
  280 + OpeningClose: function() {
  281 + this.setData({open_yq:0});
  282 + },
  283 +
  284 + //返回会员中心
  285 + back_user:function () {
  286 + setTimeout(function () {
  287 + wx.reLaunch({url:"/pages/user/index/index"});
  288 + },1000)
  289 + },
  290 +
  291 + //--支付成功,跳转到等级卡续费页面--
  292 + success:function () {
  293 +
  294 + },
  295 +
  296 + //--绑定邀请码的输入--
  297 + b_input:function (e) {
  298 + var value=e.detail.value;
  299 + var name=e.currentTarget.dataset.name;
  300 + var ob={};
  301 + ob[name]=value
  302 + this.setData(ob);
  303 + }
  304 +
  305 +})
0 306 \ No newline at end of file
... ...
pages/user/plus/plus.json 0 → 100644
  1 +{
  2 + "usingComponents": {
  3 + "pop_txt": "/components/userqy_pop_up/userqy_pop_up",
  4 + "goods_recommend": "/components/goods_list/goods_list",
  5 + "warn": "/components/long_warn/long_warn"
  6 + },
  7 + "navigationBarTitleText": "购买plus会员"
  8 +}
0 9 \ No newline at end of file
... ...
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="60rpx" previous-margin="60rpx" 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="fs36">{{item.CardName}}</view>
  21 + <view class="fs24 Membership_remarks">开通会员年卡仅{{item.CardFee}}元</view>
  22 + </view>
  23 + <view class="Opening fs28 xc-black" data-ind="{{index}}" style="background:{{item.CardColor}}" bindtap="Opening">立即购买
  24 + </view>
  25 +
  26 + </view>
  27 +
  28 + <view class="flex-vertical-between consumption" style="height: 40rpx;line-height:40rpx ">
  29 +
  30 + <view class="flex-vertical fs24" style="overflow:hidden">
  31 +
  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 style="margin-left:5rpx;white-space: nowrap;">按去年用户消费计算,开卡后一年预计省¥{{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 class="Courtesy_title flex-center fs36">开通PLUSI会员尊享礼遇
  52 + </view>
  53 +
  54 +
  55 +
  56 + <view class="flex-center">
  57 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  58 +
  59 +
  60 + <view class="Courtesy_can fs24">PLUS会员可享受以下特权
  61 + </view>
  62 +
  63 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  64 + </view>
  65 + </view>
  66 + </view>
  67 +
  68 + <!-- 会员权益内容 -->
  69 + <view class="Courtesy_comment " style="padding:0 20rpx" wx:if="{{is_card_rule!=null&&is_card_rule!=''}}">
  70 + <view class="wxParse">
  71 + <template is="wxParse" data="{{wxParseData:content.nodes}}"></template>
  72 + </view>
  73 + </view>
  74 + </view>
  75 +
  76 + <!-- 好物推荐 -->
  77 + <!-- 好物推荐 -->
  78 + <view class="title">
  79 + <!-- 标题 -->
  80 + <view>
  81 + <!-- 中文名标题 -->
  82 + <view class="China flex-level">
  83 + <view class="line flex-vertical">
  84 + <view class="one"></view><view class="two"></view><view class="three"></view>
  85 + </view>
  86 +
  87 + <view class="Recommend flex-level" bindtap="requestList">好物推荐</view>
  88 +
  89 + <view class="line flex-vertical">
  90 + <view class="three"></view>
  91 + <view class="two"></view>
  92 + <view class="one"></view>
  93 + </view>
  94 + </view>
  95 +
  96 + <!-- 英文标题 -->
  97 + <view class="english flex-center">
  98 + <view class="silk"></view>
  99 + <view class="esh five-level-word">GOOD HOT THING</view>
  100 + <view class="silk"></view>
  101 + </view>
  102 +
  103 + </view>
  104 + <!-- 商品列表组件 -->
  105 + <goods_recommend id="goods_list"></goods_recommend>
  106 + <!-- 商品列表 -->
  107 +
  108 + </view>
  109 +
  110 +</view>
  111 +</block>
  112 +
  113 +<!-- 开通会员弹窗 -->
  114 +<view wx:if="{{open_yq}}" class="Disgraceful flex-center">
  115 + <!-- 蒙尘 -->
  116 + <view bindtap="OpeningClose"></view>
  117 +
  118 + <!-- 弹框 -->
  119 + <view class="Member_purchase">
  120 + <view class="rel purchase_Bk" style="background-image: url({{url}}/miniapp/images/plus/purchase_Bk.png);">
  121 + <image class="abs write" src="{{url}}/miniapp/images/plus/write.png"></image>
  122 + </view>
  123 + <view class="fs26 inf_com">
  124 + <view class="fs36 flex-level perfect">请完善下面信息</view>
  125 + <view class="fillin">
  126 + <!-- 输入推荐人手机号 -->
  127 + <view class="flex ai_and Enter_phone" wx:if="{{isyaoqingma}}" >
  128 + <image class="phone_image" src="{{url}}/miniapp/images/plus/Invitation_code.png"></image>
  129 + <view class="phone">
  130 + <input bindinput="b_input" data-name="inp_recommon" class="fs30" placeholder="请输入邀请码(推荐人手机号)" type="number" maxlength="20" />
  131 + </view>
  132 + </view>
  133 + <!-- 输入营业员 -->
  134 + <view class="flex ai_and enter_SalesClerk" wx:if="{{is_salesman}}">
  135 + <image class="SalesClerk_image" src="{{url}}/miniapp/images/plus/Sales_Clerk.png"></image>
  136 + <view class="SalesClerk">
  137 + <input bindinput="b_input" class="fs30" data-name="inp_serviceman" placeholder="请输入营业员" maxlength="30" />
  138 + </view>
  139 + </view>
  140 + <!-- 确认购买 -->
  141 + <view class="flex-center" bindtap="buy_card">
  142 + <view class="flex-center purchase"
  143 + style="background-image:url({{url}}/miniapp/images/plus/purchase_Bk.png);">
  144 + 确认购买
  145 + </view>
  146 + </view>
  147 + </view>
  148 + </view>
  149 + <view class="flex-level">
  150 + <image class="purchaseClose" bindtap="OpeningClose" src="{{url}}/miniapp/images/plus/Close.png"></image>
  151 + </view>
  152 + </view>
  153 +
  154 +</view>
  155 +<warn id="warn"></warn>
0 156 \ 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 + transform: translateX(-130%);
  167 +
  168 +}
  169 +
  170 +.Membership .Opening {
  171 + width: 160rpx;
  172 + height: 50rpx;
  173 + line-height: 50rpx;
  174 + border-radius: 30rpx;
  175 + background-color: rgb(237, 189, 150);
  176 + text-align: center;
  177 + margin-top: 2rpx;
  178 + color: #666
  179 +}
  180 +
  181 +.Invitation {
  182 + padding: 0rpx 31rpx;
  183 + box-shadow: 0rpx 0rpx 10rpx #888;
  184 + height: 95rpx;
  185 + background-color: rgb(255, 255, 255);
  186 + z-index: 6;
  187 + position: relative;
  188 + margin-top: -15rpx;
  189 +}
  190 +
  191 +.Invitation .Invitation_count, .Invitation_my {
  192 + color: rgb(237, 189, 153);
  193 +}
  194 +
  195 +.Invitation .Invitation_Cash {
  196 + width: 150rpx;
  197 + height: 45rpx;
  198 + line-height: 45rpx;
  199 + text-align: center;
  200 + border-radius: 25rpx;
  201 + margin-left: 30rpx;
  202 + background-color: rgb(237, 189, 150);
  203 + color: rgb(255, 255, 255);
  204 +}
  205 +
  206 +.Invitation .Detailed {
  207 + color: rgb(237, 189, 150);
  208 + text-decoration: underline;
  209 +}
  210 +
  211 +.consumption {
  212 + margin-top: 88rpx;
  213 + font-size: 18rpx;
  214 +}
  215 +
  216 +.Membership_remarks {
  217 + margin-top: 2rpx;
  218 +}
  219 +
  220 +.MemberPlus {
  221 + width: 618rpx;
  222 + height: 290rpx;
  223 + border-radius: 18rpx;
  224 + box-shadow: 0rpx 0rpx 10rpx #888;
  225 + margin: 0rpx 35rpx;
  226 + color: #ffa786;
  227 + padding: 0rpx 31rpx;
  228 + padding-top: 60rpx;
  229 + background-size: 100%;
  230 +}
  231 +
  232 +.Member_sp {
  233 + height: 325rpx;
  234 +}
  235 +
  236 +.renew {
  237 + width: 190rpx;
  238 + height: 50rpx;
  239 + border-radius: 18rpx;
  240 + background-color: rgb(237, 189, 150);
  241 + text-align: center;
  242 + line-height: 50rpx;
  243 + color: #000;
  244 + margin-top: 7rpx;
  245 +}
  246 +
  247 +.xs {
  248 + margin-top: 130rpx;
  249 +}
  250 +
  251 +.MemberPlus .share {
  252 + width: 30rpx;
  253 + height: 30rpx;
  254 + margin-left: 7rpx;
  255 +}
  256 +
  257 +.MemberPlus .privilege {
  258 + width: 30rpx;
  259 + height: 30rpx;
  260 + margin-right: 7rpx;
  261 +}
  262 +
  263 +.Disgraceful {
  264 + position: fixed;
  265 + left: 0;
  266 + top: 0;
  267 + right: 0;
  268 + bottom: 0;
  269 + z-index: 11;
  270 + background: rgba(0, 0, 0, 0.6);
  271 + width: 100%;
  272 + height: 100%;
  273 +}
  274 +.ddd {
  275 + border-radius: 20rpx;
  276 +}
  277 +
  278 +.Member_purchase {
  279 + width: 610rpx;
  280 + margin-top: 20rpx;
  281 +}
  282 +
  283 +.purchase_Bk {
  284 + width: 100%;
  285 + height: 225rpx;
  286 + background-size: 100%;
  287 +}
  288 +
  289 +.write {
  290 + width: 280rpx;
  291 + height: 275rpx;
  292 + bottom: 20rpx;
  293 + left: 185rpx;
  294 +}
  295 +
  296 +.inf_com {
  297 + background-color: rgb(255, 255, 255);
  298 + padding: 0rpx 60rpx;
  299 +}
  300 +
  301 +.perfect {
  302 + padding-top: 30rpx;
  303 + padding-bottom: 65rpx;
  304 +}
  305 +
  306 +.fillin {
  307 + color: rgb(208, 208, 208);
  308 +}
  309 +
  310 +.Enter_phone {
  311 + border-bottom: 1rpx solid rgb(153, 153, 153);
  312 + margin-bottom: 35rpx;
  313 +}
  314 +
  315 +.phone_image {
  316 + width: 60rpx;
  317 + height: 60rpx;
  318 + margin-bottom: 5rpx;
  319 +}
  320 +
  321 +.phone {
  322 + margin-left: 15rpx;
  323 + color: #000;
  324 +}
  325 +
  326 +.enter_SalesClerk {
  327 + border-bottom: 1rpx solid rgb(153, 153, 153);
  328 +}
  329 +
  330 +.SalesClerk_image {
  331 + width: 60rpx;
  332 + height: 60rpx;
  333 + margin-bottom: 5rpx;
  334 +}
  335 +
  336 +.SalesClerk {
  337 + margin-left: 15rpx;
  338 + color: #000;
  339 +}
  340 +
  341 +.purchase {
  342 + width: 250rpx;
  343 + height: 50rpx;
  344 + border-radius: 25rpx;
  345 + color: rgb(255, 255, 255);
  346 + margin: 55rpx 0rpx;
  347 + background-position: center;background-repeat: no-repeat;background-size: cover
  348 +}
  349 +
  350 +.purchaseClose {
  351 + width: 70rpx;
  352 + height: 70rpx;
  353 + border-radius: 50%;
  354 + margin-top: 60rpx;
  355 +}
  356 +
  357 +input {
  358 +margin-top: 10rpx;
  359 +
  360 + overflow: visible;
  361 + width: 410rpx;
  362 +}
  363 +
  364 +swiper-item{
  365 + overflow: visible;
  366 +}
0 367 \ No newline at end of file
... ...
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"),ut=util;
  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 + is_zy:0,
  62 + },
  63 + //是否启动密码消费
  64 + isstcsp:function(){
  65 + var th = this;
  66 + var isstcsp = th.data.isstcsp;
  67 + if (isstcsp==0){
  68 + th.setData({
  69 + isstcsp:1
  70 + })
  71 + }else{
  72 + th.setData({
  73 + isstcsp: 0
  74 + })
  75 + }
  76 + },
  77 + //出生日期是否是农历
  78 + iscalendar:function(){
  79 + var th = this;
  80 + var iscalendar = th.data.iscalendar;
  81 + if (iscalendar == 0) {
  82 + th.setData({
  83 + iscalendar: 1
  84 + })
  85 + } else {
  86 + th.setData({
  87 + iscalendar: 0
  88 + })
  89 + }
  90 + },
  91 + //性别
  92 + isGender:function(e){
  93 + var th = this;
  94 + var sex = e.currentTarget.dataset.sex;
  95 + console.log("点击选择性别",sex);
  96 + th.setData({
  97 + isGender:sex
  98 + })
  99 +
  100 +
  101 + },
  102 + //密码是否隐藏显示
  103 + ispwhid:function(){
  104 + var th = this;
  105 + var ispwhid = th.data.ispwhid;
  106 +
  107 + if (ispwhid == 0) {
  108 + th.setData({
  109 + ispwhid: 1
  110 + })
  111 + } else {
  112 + th.setData({
  113 + ispwhid: 0
  114 + })
  115 + }
  116 + },
  117 + checkDate: function() {
  118 + var th = this;
  119 + if (th.data.checkDate) {
  120 + th.setData({
  121 + checkDate: false
  122 + })
  123 + } else {
  124 + th.setData({
  125 + checkDate: true
  126 + })
  127 + }
  128 + },
  129 + bindChange: function(e) {
  130 + this.setData({
  131 + datet: e.detail.value,
  132 + });
  133 + },
  134 + //---点击二级之后的选择---
  135 + choose_for_store: function(e) {
  136 + var index_c = e.currentTarget.dataset.ind;
  137 +
  138 + this.setData({
  139 + sec_pick_index: index_c,
  140 + fir_pick_index: index_c
  141 + })
  142 + },
  143 + //确定def_pick为选择的门店
  144 + sure_pick: function(e) {
  145 + var th = this;
  146 + var item = null;
  147 + var openindstore = th.data.open_ind_store;
  148 + if (th.data.choice_sort_store == 0) {
  149 + var index = th.data.fir_pick_index;
  150 + if (th.data.is_show_sto_cat == 1) {
  151 + item = th.data.def_pickpu_list[index];
  152 + } else {
  153 + item = th.data.only_pk[index]; //当没有门店分类的时候
  154 + }
  155 +
  156 + } else {
  157 + var index = th.data.sec_pick_index;
  158 + item = th.data.sec_sto.s_arr[index];
  159 + }
  160 +
  161 + console.log("选择门店刷新", "def_pick_store", item);
  162 + th.setData({
  163 + def_pick_store: item,
  164 + stoname: item.pickup_name,
  165 + sto_sele_name: item.pickup_name,
  166 + sto_sele_id: item.pickup_id,
  167 + sto_sele_distr: item.distr_type,
  168 + store: 0,
  169 + choice_sort_store: 0,
  170 + fir_pick_index: 0
  171 + });
  172 +
  173 + if (openindstore == 1) {
  174 + th.setData({
  175 + openSpecModal: !0,
  176 + openSpecModal_ind: openindstore,
  177 + });
  178 + } else if (openindstore == 2) {
  179 + th.setData({
  180 + openSpecModal: !0,
  181 + openSpecModal_ind: openindstore,
  182 + openSpecModal_pt: 1
  183 + });
  184 + }
  185 + },
  186 + choose_for_store_fir: function(e) {
  187 + var index_c = e.currentTarget.dataset.ind;
  188 + this.setData({
  189 + fir_pick_index: index_c
  190 + })
  191 + },
  192 + wait_for_store_config: function() {
  193 + var th = this;
  194 + wx.getLocation({
  195 + type: 'wgs84',
  196 + success: function(res) {
  197 + th.data.lat = res.latitude;
  198 + th.data.lon = res.longitude;
  199 + th.data.is_get_local_ok = 1;
  200 + },
  201 + fail: function(res) {
  202 + if (res.errCode == 2) {
  203 + th.setData({
  204 + is_gps: 0
  205 + });
  206 + if (th.data.is_gps == 0) {
  207 + getApp().confirmBox("请开启GPS定位", null, 10000, !1);
  208 + }
  209 + } else {
  210 + th.setData({
  211 + is_gps: "3"
  212 + });
  213 + }
  214 + th.data.is_get_local_ok = 1;
  215 + }
  216 + })
  217 + },
  218 + onclickstore: function() {
  219 + var th = this;
  220 + if (th.data.store == 0) {
  221 + this.setData({
  222 + store: 1
  223 + })
  224 + } else {
  225 + this.setData({
  226 + store: 0
  227 + })
  228 + }
  229 + var dd = {
  230 + store_id: r.stoid,
  231 + isstop: 0,
  232 + pageSize: 300
  233 + }
  234 + th.setData({
  235 + sort_store: 1
  236 + });
  237 + var i = getApp().request;
  238 + //如果有距离的话
  239 + if (th.data.lat != null) {
  240 + dd.lat = th.data.lat;
  241 + dd.lon = th.data.lon;
  242 + }
  243 + //----------获取门店----------------
  244 + getApp().request.promiseGet("/api/weshop/pickup/list", {
  245 + data: dd,
  246 + }).then(res => {
  247 + var e = res;
  248 + if (e.data.code == 0) {
  249 + //-- 如果有默认选择门店的时候,要把默认门店放在第一位 --
  250 + if (th.data.def_pick_store) {
  251 + for (var k = 0; k < e.data.data.pageData.length; k++) {
  252 + if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) {
  253 + e.data.data.pageData.splice(k, 1); //删除
  254 + break;
  255 + }
  256 + }
  257 + e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加
  258 + }
  259 +
  260 + //单总量超出5个的时候
  261 + if (e.data.data.total > 5) {
  262 + i.get("/api/weshop/storagecategory/page", {
  263 + data: {
  264 + store_id: r.stoid,
  265 + is_show: 1,
  266 + pageSize: 300
  267 + },
  268 + success: function(ee) {
  269 + if (ee.data.code == 0) {
  270 + if (ee.data.data.pageData.length > 0) {
  271 + var def_arr = new Array();
  272 + var ishas = 0;
  273 + //-- 开始就看5个门店 --
  274 + for (var k = 0; k < 5; k++) {
  275 + if (k == e.data.data.pageData.length) break;
  276 + def_arr.push(e.data.data.pageData[k]);
  277 + }
  278 +
  279 + th.setData({
  280 + def_pickpu_list: def_arr,
  281 + pickpu_list: ee.data.data.pageData
  282 + });
  283 + var sto_cate = ee.data.data.pageData;
  284 + var sto_arr = e.data.data.pageData;
  285 + var newarr = new Array();
  286 + var qita = new Array();
  287 +
  288 + //----要进行门店分组--------
  289 + for (var i = 0; i < sto_arr.length; i++) {
  290 + //找一下这个门店有没有在分类数组内
  291 + var find2 = 0,
  292 + find2name = "";
  293 + for (var m = 0; m < sto_cate.length; m++) {
  294 + if (sto_arr[i].category_id == sto_cate[m].cat_id) {
  295 + find2 = sto_cate[m].cat_id;
  296 + find2name = sto_cate[m].cat_name;
  297 + break;
  298 + }
66 299 }
  300 +
  301 + if (newarr.length > 0) {
  302 + var find = 0;
  303 + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他
  304 + if (find2 != 0) {
  305 + for (var ii = 0; ii < newarr.length; ii++) {
  306 + if (sto_arr[i].category_id == newarr[ii].cat_id) {
  307 + newarr[ii].s_arr.push(sto_arr[i]);
  308 + find = 1;
  309 + break;
  310 + }
  311 + }
  312 + if (find == 0) {
  313 + var arr0 = new Array();
  314 + arr0.push(sto_arr[i]);
  315 + var item = {
  316 + cat_id: find2,
  317 + name: find2name,
  318 + s_arr: arr0
  319 + };
  320 + newarr.push(item);
  321 + }
  322 + } else {
  323 + qita.push(sto_arr[i]);
  324 + }
  325 + } else {
  326 + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他
  327 + if (find2 != 0) {
  328 + var arr0 = new Array();
  329 + arr0.push(sto_arr[i]);
  330 + var item = {
  331 + cat_id: find2,
  332 + name: find2name,
  333 + s_arr: arr0
  334 + };
  335 + newarr.push(item);
  336 + } else {
  337 + qita.push(sto_arr[i]);
  338 + }
  339 + }
  340 + }
  341 +
  342 + //----安排其他的分类-----
  343 + if (qita.length > 0) {
  344 + var item = {
  345 + cat_id: -1,
  346 + name: "其他",
  347 + s_arr: qita
  348 + };
  349 + newarr.push(item);
  350 + }
  351 + th.setData({
  352 + is_show_sto_cat: 1,
  353 + all_sto: newarr
  354 + });
  355 +
  356 + } else {
  357 + th.setData({
  358 + is_show_sto_cat: -1,
  359 + only_pk: e.data.data.pageData
  360 + });
  361 + }
  362 + } else {
  363 + th.setData({
  364 + is_show_sto_cat: -1,
  365 + only_pk: e.data.data.pageData
67 366 });
  367 + }
68 368 }
  369 + });
  370 + } else {
  371 + th.setData({
  372 + is_show_sto_cat: 0,
  373 + only_pk: e.data.data.pageData
  374 + });
  375 + }
  376 + }
  377 + }, 200)
  378 + console.log(th.data.all_sto + 'eeee');
  379 + },
  380 + //选择更多门店
  381 + more_store: function() {
  382 + this.setData({
  383 + sort_store: 1
  384 + });
  385 + },
  386 + //---选择分类门店---
  387 + choice_sort_store: function(e) {
  388 + var index = e.currentTarget.dataset.index;
  389 + var region_name = e.currentTarget.dataset.region;
  390 + var item = this.data.all_sto[index];
  391 + this.setData({
  392 + region_name: region_name,
  393 + sort_store: 0,
  394 + choice_sort_store: 1,
  395 + sec_sto: item,
  396 + sec_pick_index: 0
  397 + });
  398 + },
  399 + // 返回按钮
  400 + returns: function() {
  401 + this.setData({
  402 + sort_store: 0,
  403 + choice_sort_store: 0
  404 + });
  405 + },
  406 + //身份证号严格校验
  407 + IdentityIDCard: function(e) {
  408 + var code = e.detail.value;
  409 + //身份证号前两位代表区域
  410 + var city = {
  411 + 11: "北京",
  412 + 12: "天津",
  413 + 13: "河北",
  414 + 14: "山西",
  415 + 15: "内蒙古",
  416 + 21: "辽宁",
  417 + 22: "吉林",
  418 + 23: "黑龙江 ",
  419 + 31: "上海",
  420 + 32: "江苏",
  421 + 33: "浙江",
  422 + 34: "安徽",
  423 + 35: "福建",
  424 + 36: "江西",
  425 + 37: "山东",
  426 + 41: "河南",
  427 + 42: "湖北 ",
  428 + 43: "湖南",
  429 + 44: "广东",
  430 + 45: "广西",
  431 + 46: "海南",
  432 + 50: "重庆",
  433 + 51: "四川",
  434 + 52: "贵州",
  435 + 53: "云南",
  436 + 54: "西藏 ",
  437 + 61: "陕西",
  438 + 62: "甘肃",
  439 + 63: "青海",
  440 + 64: "宁夏",
  441 + 65: "新疆",
  442 + 71: "台湾",
  443 + 81: "香港",
  444 + 82: "澳门",
  445 + 91: "国外 "
  446 + };
  447 + //身份证格式正则表达式
  448 + 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;
  449 + var errorMess = ""; //错误提示信息
  450 + var isPass = true; //身份证验证是否通过(true通过、false未通过)
  451 +
  452 + //如果身份证不满足格式正则表达式
  453 + if (!code || !idCardReg.test(code)) {
  454 + console.log("您输入的身份证号格式有误!");
  455 + errorMess = "您输入的身份证号格式有误!";
  456 + isPass = false;
  457 + }
  458 +
  459 + //区域数组中不包含需验证的身份证前两位
  460 + else if (!city[code.substr(0, 2)]) {
  461 + errorMess = "您输入的身份证地址编码有误!";
  462 + isPass = false;
  463 + } else {
  464 + //18位身份证需要验证最后一位校验位
  465 + if (code.length == 18) {
  466 + code = code.split('');
  467 + //∑(ai×Wi)(mod 11)
  468 + //加权因子
  469 + var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  470 + //校验位
  471 + var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
  472 + var sum = 0;
  473 + var ai = 0;
  474 + var wi = 0;
  475 + for (var i = 0; i < 17; i++) {
  476 + ai = code[i];
  477 + wi = factor[i];
  478 + sum += ai * wi;
  479 + }
  480 + var last = parity[sum % 11];
  481 + if (parity[sum % 11] != code[17]) {
  482 + errorMess = "您输入的身份证号不存在!";
  483 + isPass = false;
  484 + }
  485 + }
  486 + }
  487 + var returnParam = {
  488 + 'errorMess': errorMess,
  489 + 'isPass': isPass
  490 + }
  491 + if (errorMess != "") {
  492 + wx.showModal({
  493 + title: errorMess,
  494 + content: '',
  495 + showCancel: false,
  496 + confirmText: '确定',
  497 + confirmColor: '',
  498 + success: function(res) {},
  499 + fail: function(res) {},
  500 + complete: function(res) {},
  501 + })
  502 + }
  503 + return returnParam;
  504 + },
  505 + //------初始化加载----------
  506 + onLoad: function(t) {
  507 +
  508 + var user=getApp().globalData.userInfo;
  509 + if(user.card_field!=''&& user.card_field!=null && user.card_field!=undefined){
  510 + var now=ut.gettimestamp();
  511 + var str= user.card_expiredate;
  512 + var end = new Date(str);
  513 + end = Date.parse(end) / 1000;
  514 + if(now<end ){
  515 + this.puls_user();
  516 + }
  517 + }
  518 +
  519 + this.initial_user();
  520 + },
  521 + //-----------会员是否初始化---------------------
  522 + initial_user: function () {
  523 +
  524 + var th = this;
  525 + getApp().request.get("/api/weshop/users/grade/vip/init/get", {
  526 + data: {
  527 + storeId: r.stoid,
  528 + },
  529 + success: function (su) {
  530 + var isBool = su.data.data.isBool;
  531 + console.log("会员是否初始化", isBool);
  532 + th.setData({isBool:isBool});
  533 +
  534 + if(!isBool) return false;
  535 + //-----会员权益获取--------------
  536 + getApp().request.get("/api/weshop/users/grade/aftervipinfo/get", {
  537 + data: {
  538 + storeId: r.stoid,
  539 + userId: getApp().globalData.user_id,
  540 + },
  541 + success: function (su) {
  542 + var gradename=su.data.data.GradeName;
  543 + th.setData({gradename: gradename});
  544 + }
  545 + });
  546 +
  547 + }
  548 + });
  549 + },
  550 +
  551 +
  552 + //-----Plus会员获取-----------
  553 + puls_user:function(){
  554 + var th=this;
  555 + getApp().request.get("/api/weshop/plus/vip/mem/list", {
  556 + data: {
  557 + storeId: r.stoid,
  558 + userId: getApp().globalData.user_id, },
  559 + success: function (su) {
  560 +
  561 + if (su.data.code == 0) {
  562 + var cardname=su.data.data[0].MemCardName;
  563 + console.log("卡的名字", cardname);
  564 + th.setData({pulscardname:cardname});
  565 + }
  566 + }
  567 + });
  568 + },
  569 +
  570 + onShow: function() {
  571 + if(this.data.is_zy) return false;
  572 + this.wait_for_store_config();
  573 + var e = this;
  574 + var req = t;
  575 + req.get("/api/weshop/users/getAndUpdateUser/" + r.stoid + "/" + getApp().globalData.user_id, {
  576 + success: function (src) {
  577 + var a=src.data.data;
  578 + console.log(a,"剩什么llllll",a.data);
  579 + var time = util.formatTime(a.reg_time,"'Y/M/D");
  580 + var birthday = util.formatTime(a.birthday, "'Y/M/D");
  581 + a.reg_time = time;
  582 + a.birthday = birthday
  583 + e.setData({
  584 + phone: a.mobile,
  585 + user: a,
  586 + openid: a.openid,
  587 + sto_sele_id: a.pickup_id,
  588 + consumption: a.paypwd,
  589 + identity_card:a.idcard,
  590 + address:a.address,
  591 + });
  592 + }
  593 + })
  594 + a.getUserInfo(function(a) {
  595 + var txt = util.formatTime(a.birthday, 'yyyy-M-d'),
  596 + arr = txt.split(' ');
  597 + a.birthday = arr[0];
  598 + var txt2 = util.formatTime(a.reg_time, 'yyyy-M-d'),
  599 + arr2 = txt.split(' ');
  600 + a.reg_time = arr2[0];
  601 + if (a.pickup_id!=null) {
  602 + req.get("/api/weshop/pickup/get/" + r.stoid + "/" + a.pickup_id, {
  603 + success: function(da) {
  604 +
  605 + //设置门店
  606 + e.setData({
  607 + stoname: da.data.data.pickup_name
  608 + });
  609 + }
  610 + })
  611 + }
  612 + // var phone = "";
  613 + // phone+=a.mobile.substr(0, 3)+"****";
  614 + // phone += a.mobile.substr(7, 12);
  615 +
  616 +
  617 +
  618 + // e.setData({
  619 + // isGender:e.data.user.sex
  620 + // })
  621 + }, !0);
  622 + },
  623 +
  624 + editUserInfo: function(e) {
  625 + var r = e.currentTarget.dataset.type;
  626 + if (("password" == r || "paypwd" == r) && !this.data.user.mobile) return a.showWarning("请先绑定手机号码");
  627 + r && this.data.user && wx.navigateTo({
  628 + url: "/pages/user/userinfo_edit/userinfo_edit?type=" + r
  629 + });
  630 + },
  631 +
  632 + /*--------------------修改头像---------------------*/
  633 + changeAvatar: function() {
  634 + return false;
  635 + var r = this;
  636 + wx.chooseImage({
  637 + count: 1,
  638 + sizeType: ["compressed", "original"],
  639 + sourceType: ["camera", "album"],
  640 + success: function(u) {
  641 + t.uploadFile(r.data.url + "/api/user/upload_headpic", {
  642 + filePath: u.tempFilePaths[0],
  643 + name: "head_pic",
  644 + success: function(t) {
  645 + var u = s.getFullUrl(t.data.result);
  646 + r.setData(e({}, "user.head_pic", u)), a.globalData.userInfo.head_pic = u, a.showSuccess("设置头像成功");
  647 + }
69 648 });
70   - },
  649 + }
  650 + });
  651 + },
71 652  
72 653  
73 654 //------卡片的显示和关闭--------
74   - show_tc: function () {
  655 + show_tc: function() {
75 656 this.setData({
76 657 tc_hide: false,
77 658 });
78 659 },
79   - hide_tc: function () {
  660 + hide_tc: function() {
80 661 this.setData({
81 662 tc_hide: true,
82 663 });
83 664 },
  665 + //消费密码输入框失去焦点事件
  666 + lose_focus:function(e){
  667 + var th=this;
  668 + var val=e.detail.value;
  669 + console.log("是什么东西",val);
  670 + if (val.length > 6 || val!=""){
  671 +
  672 + this.setData({ consumption: val });
  673 + console.log("是什么东西", val);
  674 + }
  675 +
  676 +
  677 + },
  678 +
  679 +//地址
  680 + address:function(e){
  681 + var val = e.detail;
  682 + console.log("地址55555555", val.value);
  683 + this.setData({ address: val.value });
  684 + },
  685 +
  686 + //身份证验证
  687 + identity_card:function(e){
  688 + var val = e.detail;
  689 +
  690 + this.setData({ identity_card: val.value });
  691 +
  692 + },
  693 + //用户名字
  694 + user_name:function(e){
  695 + var name = e.detail.value;
  696 + if (name !=""||name!=null){
  697 +
  698 + this.setData({ user_name: name });
  699 +
  700 + }
  701 +
  702 + },
  703 +
  704 + //点击确认修改信息
  705 + confirm_revision:function(){
  706 + var th=this;
  707 + var isstcsp=th.data.isstcsp;//是否启用消费密码
  708 + var phone=th.data.phone;//手机号码
  709 + if (phone == "" || phone==null){
  710 + getApp().my_warnning("手机不能为空", 0, th);
  711 +
  712 + return false;
  713 + }
  714 +
  715 +
  716 + var consumption = th.data.consumption;//消费密码
  717 + var isstcsp = th.data.isstcsp;
  718 + if(isstcsp==1){
  719 +
  720 + if (consumption==null || consumption=="" || consumption==undefined ){
  721 + getApp().my_warnning("消费密码不能为空", 0, th); return false;
  722 + }
  723 + if (consumption.length < 6){
  724 + getApp().my_warnning("消费密码不能小于6位", 0, th); return false;
  725 + }
  726 + }
  727 + var sex = th.data.isGender;//性别
  728 +
  729 + if (sex!="1"&&sex!="2" ) {
  730 + getApp().my_warnning("请选择性别", 0, th);
  731 + return false;
  732 + }
  733 + var user_name = th.data.user.vipname;//用户姓名
  734 + console.log("名字77777",user_name);
  735 + if (user_name==""|| user_name== null) {
  736 + getApp().my_warnning("请输入名字", 0, th);
  737 + return false;
  738 + }
  739 + var identity_card = th.data.identity_card;//身份证
  740 + console.log("身份证",identity_card);
  741 +
  742 + if (identity_card == "" || identity_card == null ) {
  743 + getApp().my_warnning("请输入身份证", 0, th);
  744 + return false;
  745 + } else if (!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(identity_card))){
  746 + getApp().my_warnning("身份证号码错误",0, th);
  747 + return false;
  748 + }
  749 + var address = th.data.address;//地址
  750 + console.log("地址1010101", address)
  751 + if (address == "" || address == null) {
  752 + getApp().my_warnning("请输入地址", 0, th);
  753 + return false;
  754 + }
  755 + //保存所属门店的id
  756 + var sto_sele_id=th.data.sto_sele_id;
  757 + console.log("请输入所属门店的id", sto_sele_id);
  758 + if (sto_sele_id == null || sto_sele_id==""){
  759 + getApp().my_warnning("请输入所属门店", 0, th);
  760 + return false;
  761 + }
  762 + console.log("要保存的数据", sex, consumption, identity_card, address, user_name);
  763 + var datas = {
  764 + mobile: phone,//手机号码
  765 + store_id: r.stoid,
  766 + user_id: getApp().globalData.user_id,
  767 + vipnopwd: isstcsp,
  768 + vippass: consumption,//消费密码
  769 + sex: sex,//性别
  770 + nickname:user_name,//昵称
  771 + idcard:identity_card,//身份证
  772 + address:address,//地址
  773 + pickup_id: sto_sele_id//自提门店 所属门店
  774 + }
  775 + getApp().request.put("/api/weshop/users/updateUserInfo", {
  776 + data: datas,
  777 + success: function (res) {
  778 +
  779 + if (res.data.code==0){
  780 + getApp().showWarning("修改成功");
  781 + }else{
  782 + getApp().showWarning("修改失败");
  783 + }
  784 +
  785 + }
  786 + })
  787 + } ,
  788 +
  789 + go_phone:function(e){
  790 + var url=e.currentTarget.dataset.url;
  791 + this.setData({is_zy:1});
  792 + getApp().goto(url);
  793 + }
  794 +
84 795 });
85 796 \ No newline at end of file
... ...
pages/user/userinfo/userinfo.json
1 1 {
2 2 "navigationBarTitleText": "个人资料",
3   - "enablePullDownRefresh": false
  3 + "enablePullDownRefresh": false,
  4 + "usingComponents": {
  5 + "warn": "/components/long_warn/long_warn"
  6 + }
4 7 }
5 8 \ No newline at end of file
... ...
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="{{pulscardname}}">
  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;margin-top: 80rpx;background-size:100%;" bindtap="show_tc">
  41 + <view class="fs26 code" style="color:rgb(255,255,255);margin-left:9rpx;margin-top: 100rpx;">我的二维码</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 + <view data-url="/pages/user/Change_phone/Change_phone?mobile={{user.mobile}}" bindtap="go_phone" 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 + </view>
  169 +
  170 + <view class="user-name flex-vertical-between" data-type="mobile">
  171 + <view class="user-name-txt">地址</view>
  172 + <!-- <block wx:if="{{user.address.length>0}}">
  173 + <view>{{user.address}}</view>
  174 + </block>
  175 + <block wx:else> -->
  176 + <input bindblur="address" maxlength="30" value="{{user.address}}" class="user-txt-right" placeholder="*地址" style="text-align:right" />
  177 + <!-- </block> -->
  178 + </view>
  179 +
  180 + <view bindtap="onclickstore" class="user-name flex-vertical-between" data-type="email">
  181 + <view class="user-name-txt">所属门店</view>
  182 + <view class="flex-center user-txt-right">
  183 + <view class="one-line">{{stoname}}
  184 + </view>
  185 +
  186 + <view class="angle">∟</view>
72 187 </view>
  188 + </view>
73 189 </view>
  190 + <navigator class="user-name mt flex-vertical-between" url="/pages/user/address_list/address_list">
  191 + <view class="user-name-txt">收货地址</view>
  192 + <view class="flex-center user-txt-right">
  193 + <!-- <view class="flex">{{user.address_id}}</view> -->
  194 + <view class="angle">∟</view>
  195 + </view>
  196 + </navigator>
  197 + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="email">
  198 + <view class="user-name-txt">绑定时间</view>
  199 + <view class="user-txt-right one-line">{{user.reg_time?filters.replace_time2(user.reg_time):""}}</view>
  200 + </view>
  201 + </view>
  202 +</view>
  203 +<!-- 确认修改按钮 -->
  204 +<view class="flex-center confirm">
  205 + <view class="flex-center fs30 confirmtext"bindtap="confirm_revision">
  206 + <view>确认修改</view>
  207 + </view>
74 208 </view>
75 209  
76 210 <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"-->
77 211 <view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'>
78 212 <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view>
79 213 <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>
  214 + <view class="modal-content">
  215 + <view class="flex">
  216 + <image src="{{user.head_pic}}" class="hd_img"></image>
  217 + <view class="ctent_txt">
  218 + <view class='txt1'>{{user.nickname}}
  219 + <image wx:if="{{user.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image>
  220 + <image wx:else class="arrow-right" src="{{iurl}}/miniapp/images/user/man.png"></image>
  221 + </view>
  222 + <view class='txt2' wx:if="{{user.address}}">{{user.address}}</view>
  223 + </view>
95 224 </view>
  225 + <view class="m_ta">
  226 + <image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{user.mobile}}'></image>
  227 + </view>
  228 + <view class="s_sao">扫一扫上面的二维码图案,即可消费</view>
  229 + </view>
96 230 </view>
97 231 </view>
  232 +
  233 +<!-- 选择门店的弹框,1.1版最新的 -->
  234 +<block wx:if="{{store==1}}">
  235 + <view class="mongolia-layer" bindtap="onclickstore"></view>
  236 + <view class="popup-frame">
  237 + <block wx:if="{{sort_store==0}}">
  238 + <!-- 头部 标题 -->
  239 + <view class="popup-top flex-space-between">
  240 + <text class="fs32 nearby_store">{{choice_sort_store==0?'附近的门店':region_name}}</text>
  241 + <view>
  242 + <view>
  243 + <icon bindtap="onclickstore" class="modal-closes" color="black" size="22" type="cancel"></icon>
  244 + </view>
  245 + <view class="felx choose_more" bindtap="more_store">
  246 + <text class="fs26 red-co" wx:if="{{is_show_sto_cat}}">{{choice_sort_store==0?'更多门店':'返回'}}</text>
  247 + <view class="bg_rights"></view>
  248 + </view>
  249 + </view>
  250 + </view>
  251 + <!-- 门店列表,最外层的门店列表,一开始 -->
  252 + <view class="store-list">
  253 + <!--如果还没有点击更多门店的时候 -->
  254 + <block wx:if="{{choice_sort_store==0}}">
  255 + <!-- 需要for循环 -->
  256 + <block wx:if="is_show_sto_cat==1">
  257 + <view class="store_choose flex" wx:for="{{def_pickpu_list}}" bindtap="choose_for_store_fir" data-ind="{{index}}">
  258 + <view class="store flex-vertical">
  259 + <!-- 需要点击事件 -->
  260 + <block wx:if="{{index==fir_pick_index}}">
  261 + <view class="circle white xc-hook fs20 red-b">Г</view>
  262 + </block>
  263 + <block wx:else>
  264 + <view class="circle xc-hooks"></view>
  265 + </block>
  266 + <view class="address-frame xc-ash">
  267 + <view class="flex-vertical-between butttem5">
  268 + <view class="flex xc-ash">
  269 + <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view>
  270 + </view>
  271 + <view>
  272 + <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}">
  273 + 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+'km':filters.toFix(item.distance,0)+"m"}}</view>
  274 + </view>
  275 + </view>
  276 + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view>
  277 + </view>
  278 + </view>
  279 + </view>
  280 + </block>
  281 + <block wx:else>
  282 + <view class="store_choose flex" wx:for="{{only_pk}}" bindtap="choose_for_store_fir" data-ind="{{index}}">
  283 + <view class="store flex-vertical">
  284 + <!-- 需要点击事件 -->
  285 + <block wx:if="{{index==fir_pick_index}}">
  286 + <view class="circle white xc-hook fs20 red-b">Г</view>
  287 + </block>
  288 + <block wx:else>
  289 + <view class="circle xc-hooks"></view>
  290 + </block>
  291 +
  292 + <view class="address-frame xc-ash">
  293 + <view class="flex-vertical-between ">
  294 + <view class="flex xc-ash">
  295 + <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view>
  296 + </view>
  297 + <view>
  298 + <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"}}
  299 + </view>
  300 + </view>
  301 + </view>
  302 + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view>
  303 + </view>
  304 + </view>
  305 + </view>
  306 + </block>
  307 + </block>
  308 + <block wx:else>
  309 + <!-- 如果是点击选择门店分类后显示分类下的门店 -->
  310 + <view class="store_choose flex" wx:for="{{sec_sto.s_arr}}" data-ind="{{index}}" bindtap="choose_for_store">
  311 + <view class="store flex-vertical">
  312 + <!-- 需要点击事件 -->
  313 + <block wx:if="{{index==sec_pick_index}}">
  314 + <view class="circle white xc-hook fs20 red-b">Г</view>
  315 + </block>
  316 + <block wx:else>
  317 + <view class="circle xc-hooks"></view>
  318 + </block>
  319 +
  320 + <view class="address-frame xc-ash">
  321 + <view class="flex-vertical-between ">
  322 + <view class="flex xc-ash">
  323 + <view class="fs28 xc-black3 address_name">{{item.pickup_name}}</view>
  324 + </view>
  325 + <view>
  326 + <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>
  327 + </view>
  328 + </view>
  329 + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view>
  330 + </view>
  331 + </view>
  332 + </view>
  333 + </block>
  334 +
  335 + </view>
  336 +
  337 + <!-- 门店列表底部 -->
  338 + <view class="store-bottom-frame">
  339 + <view class="store-bottom flex-center">
  340 + <view class="determine red-b fs30 white t-c" bindtap="sure_pick" data-openindstore="{{open_ind_store}}">确定</view>
  341 + <!-- <view class="default t-c fs28" bindtap="set_def_pick" data-openindstore="{{open_ind_store}}">设为默认</view> -->
  342 + </view>
  343 + </view>
  344 +
  345 + </block>
  346 +
  347 +
  348 + <block wx:else>
  349 + <view class="popup-top flex-space-between">
  350 + <text class="fs32 nearby_store">门店分类选择</text>
  351 + <view>
  352 + <view>
  353 + <icon bindtap="onclickstore" class="modal-closes" color="black" size="22" type="cancel"></icon>
  354 + </view>
  355 + </view>
  356 + </view>
  357 + <view class="sort_store_list">
  358 +
  359 + <view class="sort-store-frame" wx:for="{{all_sto}}" data-index="{{index}}" bindtap="choice_sort_store" data-region="{{item.name}}">
  360 + <view class="sort-store flex-vertical-between">
  361 + <view class="fs30" di>{{item.name}}</view>
  362 + <view class="black_rights-frame">
  363 + <view class="black_rights"></view>
  364 + </view>
  365 + </view>
  366 + </view>
  367 +
  368 + </view>
  369 + </block>
  370 + </view>
  371 +</block>
  372 +<warn id="warn"></warn>
98 373 \ 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 };
... ...