Commit 63ac30e4886adf5946d8463534711c924f6dd4fb

Authored by season
2 parents ba0a3d82 55d2a986

合并会员权益

app.json
@@ -69,8 +69,11 @@ @@ -69,8 +69,11 @@
69 "pages/user/user_fw/user_fw", 69 "pages/user/user_fw/user_fw",
70 "pages/user/user_coupon/user_coupon", 70 "pages/user/user_coupon/user_coupon",
71 "pages/user/grow_value/grow_value", 71 "pages/user/grow_value/grow_value",
72 - "pages/payment/pay_success/pay_success" 72 + "pages/payment/pay_success/pay_success",
73 73
  74 + "pages/user/plus/plus",
  75 + "pages/user/cardinfo/cardinfo"
  76 +
74 ], 77 ],
75 "permission": { 78 "permission": {
76 "scope.userLocation": { 79 "scope.userLocation": {
app.wxss
@@ -145,6 +145,12 @@ justify-content:flex-start; @@ -145,6 +145,12 @@ justify-content:flex-start;
145 align-items:center; 145 align-items:center;
146 } 146 }
147 .flex{display: flex} 147 .flex{display: flex}
  148 +.ai-center{
  149 + align-items: center;
  150 +}
  151 +.jc-center{
  152 + justify-content: center;
  153 +}
148 /* 水平左对齐 */ 154 /* 水平左对齐 */
149 .flex-level-left{ 155 .flex-level-left{
150 display:flex; 156 display:flex;
@@ -262,29 +268,7 @@ justify-content:space-around; @@ -262,29 +268,7 @@ justify-content:space-around;
262 font-style: normal; 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 /* 7.26 */ 274 /* 7.26 */
@@ -356,19 +340,33 @@ position: fixed; @@ -356,19 +340,33 @@ position: fixed;
356 background: #ffe3e2; 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 .fs20{ 343 .fs20{
367 font-size: 20rpx; 344 font-size: 20rpx;
368 } 345 }
  346 +.fs22{
  347 + font-size: 22rpx;
  348 +}
369 .fs24{ 349 .fs24{
370 font-size: 24rpx; 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 .fs36 { 370 .fs36 {
373 font-size: 36rpx; 371 font-size: 36rpx;
374 } 372 }
@@ -378,6 +376,13 @@ background: #ffe3e2; @@ -378,6 +376,13 @@ background: #ffe3e2;
378 .ai_end{ 376 .ai_end{
379 align-items: flex-end; 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 .flex-wrap{ 386 .flex-wrap{
382 flex-wrap:wrap; 387 flex-wrap:wrap;
383 } 388 }
384 \ No newline at end of file 389 \ No newline at end of file
images/share/mackground.png 0 → 100644

10.4 KB

pages/getphone/getphone.js
@@ -4,6 +4,13 @@ Page({ @@ -4,6 +4,13 @@ Page({
4 store:null, 4 store:null,
5 imghots: os.imghost, 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 onShow:function(){ 14 onShow:function(){
8 var th=this,app = getApp(); 15 var th=this,app = getApp();
9 var sessionKey = getApp().globalData.sessionKey; 16 var sessionKey = getApp().globalData.sessionKey;
@@ -16,11 +23,8 @@ Page({ @@ -16,11 +23,8 @@ Page({
16 wx.navigateTo({ url: '/pages/togoin/togoin', }) 23 wx.navigateTo({ url: '/pages/togoin/togoin', })
17 return false; 24 return false;
18 } 25 }
19 -  
20 var user_info=getApp().globalData.userInfo; 26 var user_info=getApp().globalData.userInfo;
21 -  
22 console.log("getphone"); 27 console.log("getphone");
23 - console.log(user_info);  
24 28
25 if(user_info!=null && user_info.mobile!=undefined && user_info.mobile!="" && user_info.mobile!=null){ 29 if(user_info!=null && user_info.mobile!=undefined && user_info.mobile!="" && user_info.mobile!=null){
26 wx.navigateBack({ 30 wx.navigateBack({
@@ -72,6 +76,11 @@ Page({ @@ -72,6 +76,11 @@ Page({
72 iv: e.iv, 76 iv: e.iv,
73 store_id: getApp().globalData.setting.stoid, 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 console.log(dd); 84 console.log(dd);
76 app.request.get("/api/weshop/users/thirdLogin", { 85 app.request.get("/api/weshop/users/thirdLogin", {
77 data: dd, 86 data: dd,
pages/user/Change_phone/Change_phone.js 0 → 100644
  1 +var a = getApp(),
  2 + o = a.globalData,
  3 + r = a.globalData.setting,
  4 + t = a.request,
  5 + s = require("../../../utils/common.js"),
  6 + util = require("../../../utils/util.js");
  7 +Page({
  8 +
  9 + /**
  10 + * 页面的初始数据
  11 + */
  12 + data: {
  13 + iurl: r.imghost,
  14 + inputxphone: 0,
  15 + mobile: 17359580658, //旧手机号码
  16 + currentTime: "", //验证码发送倒计时
  17 + getvcode: "获取验证码",
  18 + wxopenid: "2",
  19 + isver: 0, //是否有发送验证码
  20 + code: "", //验证码
  21 + url: "", //确认更换手机号码跳转路径
  22 + change_phone: "", //新手机号码
  23 + },
  24 + /**
  25 + * 生命周期函数--监听页面加载
  26 + */
  27 + onLoad: function(options) {
  28 + this.setData({
  29 + // mobile: options.mobile,
  30 + //wxOpneId: options.openid
  31 + })
  32 + },
  33 + //获取手机验证码
  34 + Ver_phone: function() {
  35 + var th = this;
  36 + var mobile = th.data.mobile;
  37 + var wxopenid = th.data.wxopenid;
  38 + var change_phone = th.data.change_phone;
  39 + var isver = th.data.isver;
  40 + console.log("iiiiiiiiiiiiii" + change_phone + mobile);
  41 + var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
  42 + if (mobile.length < 11) {
  43 + getApp().my_warnning("请输入11位的手机号码", 0, th);
  44 + } else if (!myreg.test(mobile)) {
  45 + getApp().my_warnning("手机号有误", 0, th);
  46 + return false;
  47 + }
  48 + if (change_phone == mobile) {
  49 + getApp().my_warnning("新手机号码和旧手机号码不能一样", 0, th);
  50 + return false;
  51 + }
  52 + if (change_phone != "") {
  53 + mobile = change_phone;
  54 + }
  55 + if (isver == 0) {
  56 + th.setData({
  57 + isver: 1
  58 + })
  59 + } else {
  60 + return false
  61 + }
  62 + getApp().request.post("/api/weshop/smslog/sendsms", {
  63 + data: {
  64 + store_id: r.stoid,
  65 + scene: 1, //发送类型(1短信 2语音)
  66 + mobile: mobile,
  67 + wxopenid: wxopenid
  68 + },
  69 + success: function(res) {
  70 + if (res.data.code == 0) {
  71 + th.setData({
  72 + isver: 0,
  73 + getvcode: 60,
  74 + currentTime: setInterval(th.gettime, 1000),
  75 + })
  76 + } else {
  77 + getApp().my_warnning(res.data.msg, 0, th);
  78 + th.setData({
  79 + isver: 0,
  80 + getvcode: "重新获取"
  81 + })
  82 + return false;
  83 + }
  84 + }
  85 + })
  86 +
  87 + },
  88 + gettime: function() {
  89 + var that = this;
  90 + if (that.data.getvcode == 1) {
  91 + //清除js定时器  
  92 + clearInterval(that.data.currentTime);
  93 + that.setData({
  94 + getvcode: "重新获取",
  95 + });
  96 + } else {
  97 + that.setData({
  98 + getvcode: --that.data.getvcode,
  99 + });
  100 + }
  101 + },
  102 + change_phone: function() {
  103 + var th = this;
  104 + var code = th.data.code;
  105 + var mobile = th.data.mobile;
  106 + if (th.ver_code() == false) return false;
  107 + getApp().request.put("/api/weshop/users/updateMobile/" + r.stoid + '/' + o.user_id + '/' + code + '/' + mobile, {
  108 + success: function(res) {
  109 + if (res.data.code == 0) {
  110 + getApp().my_warnning("更换成功", 0, th);
  111 + // th.setData({
  112 + // url: "/pages/user/userinfo/userinfo?change_phone" + change_phone
  113 + // })
  114 + } else {
  115 + getApp().my_warnning("更换失败", 0, th);
  116 + return false;
  117 + }
  118 + }
  119 + })
  120 +
  121 + },
  122 + //判断验证码是否正确
  123 + ver_code: function(e) {
  124 + var th = this;
  125 + var code = th.data.code,
  126 + mobile = th.data.mobile,
  127 + wxopenid = th.data.wxopenid,
  128 + getvcode = th.data.getvcode,
  129 + chang_phone = th.data.change_phone;
  130 + if (code.length < 3 && code == "") {
  131 + getApp().my_warnning("请输入正确的验证码", 0, th);
  132 + return false;
  133 + } else if (getvcode.length<3){
  134 + getApp().my_warnning("验证超时", 0, th);
  135 + return false;
  136 + }else {
  137 + getApp().request.put("/api/weshop/users/updateMobileFirst/" + r.stoid + '/' + o.user_id + '/' + code, {
  138 + success: function(res) {
  139 + if (res.data.code == 0) {
  140 + th.setData({
  141 + inputxphone: 1,
  142 + getvcode: "获取验证码",
  143 + code: ""
  144 + })
  145 + clearInterval(th.data.currentTime);
  146 + } else {
  147 + getApp().my_warnning(res.data.msg, 0, th);
  148 + return false;
  149 + }
  150 + }
  151 + })
  152 + }
  153 + },
  154 + getCodeValue: function(e) {
  155 + this.setData({
  156 + code: e.detail.value
  157 + })
  158 + },
  159 + getphoneValue: function(e) {
  160 + var th = this;
  161 + th.setData({
  162 + change_phone: e.detail.value,
  163 + })
  164 + },
  165 + /**
  166 + * 生命周期函数--监听页面初次渲染完成
  167 + */
  168 + onReady: function() {
  169 +
  170 + },
  171 +
  172 + /**
  173 + * 生命周期函数--监听页面显示
  174 + */
  175 + onShow: function() {
  176 +
  177 + },
  178 +
  179 + /**
  180 + * 生命周期函数--监听页面隐藏
  181 + */
  182 + onHide: function() {
  183 +
  184 + },
  185 +
  186 + /**
  187 + * 生命周期函数--监听页面卸载
  188 + */
  189 + onUnload: function() {
  190 +
  191 + },
  192 +
  193 + /**
  194 + * 页面相关事件处理函数--监听用户下拉动作
  195 + */
  196 + onPullDownRefresh: function() {
  197 +
  198 + },
  199 +
  200 + /**
  201 + * 页面上拉触底事件的处理函数
  202 + */
  203 + onReachBottom: function() {
  204 +
  205 + },
  206 +
  207 + /**
  208 + * 用户点击右上角分享
  209 + */
  210 + onShareAppMessage: function() {
  211 +
  212 + }
  213 +})
0 \ No newline at end of file 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 \ No newline at end of file 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 \ No newline at end of file 61 \ No newline at end of file
pages/user/Change_phone/Change_phone.wxss 0 → 100644
  1 +page {
  2 + height: 100%;
  3 +}
  4 +
  5 +.container {
  6 + padding: 0rpx 55rpx;
  7 + border-top: 6rpx solid rgb(245, 245, 245);
  8 +}
  9 +
  10 +.phone_logo {
  11 + height: 400rpx;
  12 +}
  13 +
  14 +.phone_logo image {
  15 + width: 145rpx;
  16 + height: 230rpx;
  17 +}
  18 +
  19 +.phone,.code{
  20 + border-bottom: 2rpx solid rgb(234, 234, 234);
  21 + height: 95rpx;
  22 +}
  23 +
  24 +.phone image {
  25 + width: 60rpx;
  26 + height: 60rpx;
  27 +}
  28 +
  29 +.phone .inphone {
  30 + margin-left: 50rpx;
  31 + color: rgb(153, 153, 153);
  32 +}
  33 +
  34 +.code image {
  35 + width: 70rpx;
  36 + height: 60rpx;
  37 +}
  38 +
  39 +.code input {
  40 + margin-left: 50rpx;
  41 + color: rgb(153, 153, 153);
  42 +}
  43 +
  44 +.code .Obtain {
  45 + width: 250rpx;
  46 + height: 60rpx;
  47 + border-left: 2rpx solid rgb(234, 234, 234);
  48 +}
  49 +
  50 +.phone, .code, .Tips {
  51 + padding-left: 30rpx;
  52 +}
  53 +
  54 +.Tips {
  55 + margin-top: 50rpx;
  56 + line-height: 50rpx;
  57 + color: rgb(153, 153, 153);
  58 +}
  59 +
  60 +.go {
  61 + width: 100%;
  62 + margin-top: 90rpx;
  63 +}
  64 +
  65 +.lower {
  66 + width: 430rpx;
  67 + height: 75rpx;
  68 + background-color: rgb(214, 1, 33);
  69 + border-radius: 40rpx;
  70 + color: rgb(255, 255, 255);
  71 +}
pages/user/Detailed/Detailed.js 0 → 100644
  1 +var t = getApp(),
  2 + r = t.globalData,
  3 + a = t.request,
  4 + o = t.globalData.setting,
  5 + os = o,
  6 + i = require("../../../utils/util.js"),
  7 + ut = i,
  8 + s = require("../../../utils/common.js");
  9 +
  10 +Page({
  11 + /**
  12 + * 页面的初始数据
  13 + */
  14 + data: {
  15 + url: o.imghost,
  16 + arrayDetailed: [],//明细数组
  17 + page: 1,
  18 + pageSize: 20,
  19 + isDetailed: 0,
  20 + total: 0,
  21 + ismore: 0,//数据是否加载完毕
  22 + screenWidth:0,
  23 +
  24 + head_pic:"",//会员头像
  25 + img_money:"",//缓存VIP的图片
  26 + img_Ancrown:"",//会员权益
  27 + img_Identification:"",//缓存标识的图片
  28 + img_square:"",//缓存方块的图片
  29 + privilege_o:"",//卡的勋章图
  30 + bas_ming:"", //卡的图片
  31 + big_card:null, //最大卡的信息
  32 +
  33 + imagePath:"", //分享的生成图片
  34 +
  35 + canvasHidden:true,
  36 + },
  37 +
  38 + /**
  39 + * 生命周期函数--监听页面加载
  40 + */
  41 + onLoad: function(options) {
  42 + var ee=this;
  43 + var img_money = this.data.url + "/miniapp/images/plus/share/money.png";
  44 + var img_Ancrown = this.data.url + "/miniapp/images/plus/share/Ancrown.png";
  45 + var img_Identification = this.data.url + "/miniapp/images/plus/share/Identification.png";
  46 + var img_square = this.data.url + "/miniapp/images/plus/share/square.png";
  47 + var privilege_o = this.data.url + "/miniapp/images/plus/share/privilege_o.png";
  48 + var user=getApp().globalData.userInfo;
  49 + //--获取用户设备信息,屏幕宽度--
  50 + wx.getSystemInfo({
  51 + success: res => {
  52 + ee.data.screenWidth=res.screenWidth;
  53 + }
  54 + })
  55 +
  56 + //--------------------缓存vip价格的图片---------------
  57 + wx.getImageInfo({
  58 + src:img_money,
  59 + success: function (res) {
  60 + //回调写法
  61 + var img_money = res.path;
  62 + ee.setData({ img_money: img_money});
  63 + }
  64 + })
  65 + //--------------------缓存权益的图片---------------
  66 + wx.getImageInfo({
  67 + src: img_Ancrown,
  68 + success: function (res) {
  69 + //回调写法
  70 + var img_Ancrown = res.path;
  71 + ee.setData({ img_Ancrown: img_Ancrown });
  72 + }
  73 + })
  74 + //--------------------缓存标识的图片---------------
  75 + wx.getImageInfo({
  76 + src: img_Identification,
  77 + success: function (res) {
  78 + //回调写法
  79 + var img_Identification = res.path;
  80 + ee.setData({ img_Identification: img_Identification });
  81 + }
  82 + })
  83 +
  84 + //--------------------卡的勋章---------------
  85 + wx.getImageInfo({
  86 + src: privilege_o,
  87 + success: function (res) {
  88 + //回调写法
  89 + var privilege_o = res.path;
  90 + ee.setData({ privilege_o: privilege_o });
  91 + }
  92 + })
  93 +
  94 + //--------------------方块图---------------
  95 + wx.getImageInfo({
  96 + src: img_square,
  97 + success: function (res) {
  98 + //回调写法
  99 + var img_square = res.path;
  100 + ee.setData({ img_square: img_square});
  101 + }
  102 + })
  103 +
  104 + //-----------获取最大值的卡--------------
  105 + ee.getPlusCardType();
  106 +
  107 + },
  108 +
  109 + selectDetailed: function() {
  110 + var th = this, e = th;
  111 + getApp().request.promiseGet("/api/weshop/plus/vip/mem/referee/page", {
  112 + data: {
  113 + storeId: o.stoid,
  114 + userId: r.user_id,
  115 + page: th.data.page,
  116 + pageSize: th.data.pageSize
  117 + }
  118 + }).then(res => {
  119 +
  120 + th.setData({isDetailed:1})
  121 + if(res.data.code==0 && res.data.data.pageData && res.data.data.pageData.length>0) {
  122 + th.data.page++;//当前页数+1
  123 + var arr1 = th.data.arrayDetailed;//获取明细数组
  124 + var arr2 = res.data.data.pageData;//获取当前查询数据
  125 + var arr3 = [...arr1, ...arr2];//把当前查询数组拼接到原本数组后面
  126 + var ismore = 0;
  127 + if (arr3.length == res.data.data.total) ismore = 1 //数据已加载完判断
  128 + th.setData({
  129 + arrayDetailed: arr3,
  130 + total: res.data.data.total,
  131 + ismore: ismore,
  132 + isDetailed: 1
  133 + })
  134 + }
  135 + })
  136 +
  137 + },
  138 + /**
  139 + * 生命周期函数--监听页面初次渲染完成
  140 + */
  141 + onReady: function() {
  142 +
  143 + },
  144 +
  145 + /**
  146 + * 生命周期函数--监听页面显示
  147 + */
  148 + onShow: function() {
  149 + this.selectDetailed();
  150 + },
  151 + /**
  152 + * 页面上拉触底事件的处理函数
  153 + */
  154 + onReachBottom: function() {
  155 +
  156 + if (this.data.total <= this.data.pageSize) return;
  157 + if (this.data.ismore) {
  158 + t.my_warnning("加载完啦!", 0, this);
  159 + return
  160 + };
  161 + this.selectDetailed();
  162 + },
  163 +
  164 +
  165 + saveImageToPhotosAlbum: function () {
  166 + if (this.data.imagePath != "") {
  167 + wx.previewImage({ urls: [this.data.imagePath], })
  168 + return;
  169 + }
  170 +
  171 + this.data.is_loading=1;
  172 + wx.showLoading({ title: '生成中...',})
  173 +
  174 + var th = this;
  175 +
  176 + //设置画板显示,才能开始绘图
  177 + var card_ming=th.data.bas_ming;//卡的图片
  178 + var big_card= th.data.big_card;//获取最大的卡
  179 + var user_head = th.data.head_pic;//会员头像
  180 + var img_money = th.data.img_money;//缓存vip的价格
  181 + var img_Ancrown = th.data.img_Ancrown;//会员权益的图片
  182 + var img_Identification = th.data.img_Identification;//会员标识
  183 + var privilege_o = th.data.privilege_o;//勋章图片
  184 + var img_square=th.data.img_square;
  185 + var app = getApp();
  186 + var user=app.globalData.userInfo;
  187 + var unit = th.data.screenWidth / 750 * 1.35;
  188 + var scene = getApp().globalData.user_id;
  189 +
  190 + //---二微码---
  191 + var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" +
  192 + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/user/index/index";
  193 +
  194 + wx.getImageInfo({
  195 + src: path3,
  196 + success: function (res) {
  197 + th.get_head_temp(function(){
  198 + var vpath=res.path;
  199 + th.setData({ canvasHidden: false })
  200 + //开启画布
  201 + const ctx = wx.createCanvasContext('myCanvas');
  202 + //先画背景
  203 + ctx.drawImage("../../../images/share/mackground.png", 0, 0, 554 * unit, 930 * unit);
  204 + ctx.setFontSize(26 * unit);
  205 + ctx.setFillStyle("rgb(0,0,0)");
  206 + ctx.fillText(user.nickname, 155 * unit, 75 * unit, 200 * unit);
  207 +
  208 + var tj_path = "../../../images/share/q_tj.png";
  209 + ctx.drawImage(tj_path, 385 * unit, 45 * unit, 90 * unit, 30 * unit);
  210 + ctx.setFontSize(18 * unit);
  211 + ctx.setFillStyle("rgb(255,255,255)");
  212 + ctx.fillText("强烈推荐", 394 * unit, 65 * unit);
  213 +
  214 + ctx.setStrokeStyle("rgb(255,255,255)");
  215 + ctx.setLineDash([5 * unit, 5 * unit], 5 * unit);
  216 + ctx.beginPath();
  217 + ctx.moveTo(0, 125 * unit);
  218 + ctx.lineTo(554 * unit, 125 * unit);
  219 + ctx.stroke();
  220 +
  221 + var x = 55 * unit, y = 165 * unit,w = 444 * unit, h = 220 * unit,r = 14 * unit;
  222 + ut.draw_randon_rect(ctx,x,y,r,w,h);
  223 + ctx.clip(); //一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内
  224 + ctx.drawImage(card_ming, x, y, 444 * unit, 220 * unit); // 推进去图片
  225 + ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制
  226 +
  227 + ctx.beginPath();
  228 + // 卡图片
  229 + // ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,);
  230 + ctx.setFontSize(26 * unit);
  231 + ctx.setFillStyle('rgb(218,194,169)');
  232 + ctx.fillText(big_card.CardName, 80 * unit, 215 * unit);
  233 + ctx.setFontSize(18 * unit);
  234 + ctx.setFillStyle('rgb(218,194,169)');
  235 + ctx.fillText("开通会员年卡仅" + big_card.CardFee+"元", 80 * unit, 240 * unit);
  236 +
  237 + ctx.drawImage(privilege_o, 80 * unit, 343 * unit, 20 * unit, 20 * unit);
  238 +
  239 + ctx.setFontSize(14 * unit);
  240 + ctx.setFillStyle('rgb(218,194,169)');
  241 + ctx.fillText("根据大家购买数据,您成为超级会员预计可省¥3031元", 105 * unit, 360 * unit);
  242 +
  243 + ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit);
  244 + ctx.setFillStyle('rgb(218,194,169)');
  245 + ctx.fill();
  246 +
  247 + ctx.drawImage(img_square, 267 * unit, 420 * unit, 13 * unit, 13 * unit);
  248 +
  249 + ctx.beginPath();
  250 + ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit);
  251 + ctx.setFillStyle('rgb(218,194,169)');
  252 + ctx.fill();
  253 +
  254 + ctx.drawImage(img_square, 80 * unit, 470 * unit, 10 * unit, 10 * unit);
  255 + ctx.setFontSize(24 * unit);
  256 + ctx.setFillStyle("rgb(198,165,126)");
  257 + ctx.fillText("超级VIP权益", 100 * unit, 475 * unit);
  258 +
  259 + ctx.setFontSize(20 * unit);
  260 + ctx.setFillStyle("rgb(198,165,126)");
  261 + ctx.fillText("超级会员专属权益", 100 * unit, 505 * unit);
  262 + ctx.drawImage(img_Ancrown, 355 * unit, 440 * unit, 65 * unit, 65 * unit);
  263 +
  264 + ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit)
  265 + ctx.setFillStyle('rgb(218,194,169)')
  266 + ctx.fill();
  267 +
  268 + ctx.drawImage(img_square, 80 * unit, 575 * unit, 10 * unit, 10 * unit);
  269 + ctx.setFontSize(24 * unit);
  270 + ctx.setFillStyle("rgb(198,165,126)");
  271 + ctx.fillText("超级VIP标识", 100 * unit, 580 * unit);
  272 +
  273 + ctx.setFontSize(20 * unit);
  274 + ctx.setFillStyle("rgb(198,165,126)");
  275 + ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit);
  276 + ctx.drawImage(img_Identification, 355 * unit, 548 * unit, 65 * unit, 65 * unit);
  277 +
  278 + ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit);
  279 + ctx.setFillStyle('rgb(218,194,169)');
  280 + ctx.fill();
  281 +
  282 + ctx.drawImage(img_square, 80 * unit, 695 * unit, 10 * unit, 10 * unit);
  283 + ctx.setFontSize(24 * unit);
  284 + ctx.setFillStyle("rgb(198,165,126)");
  285 + ctx.fillText("超级VIP价格", 100 * unit, 695 * unit);
  286 +
  287 + ctx.setFontSize(20 * unit);
  288 + ctx.setFillStyle("rgb(198,165,126)");
  289 + ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit);
  290 + ctx.drawImage(img_money, 355 * unit, 660 * unit, 65 * unit, 65 * unit);
  291 +
  292 + ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit)
  293 + ctx.setFillStyle('rgb(218,194,169)')
  294 + ctx.fill();
  295 +
  296 + ctx.drawImage(vpath, 100 * unit, 780 * unit, 110 * unit, 110 * unit);
  297 +
  298 + ctx.setFontSize(20 * unit);
  299 + ctx.setFillStyle("#000");
  300 + ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit);
  301 +
  302 + ctx.setFontSize(20 * unit);
  303 + ctx.setFillStyle("#000");
  304 + ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit);
  305 +
  306 + //---绘制圆形要放在最后,头像----
  307 + ctx.save();
  308 + ctx.beginPath();
  309 + var h_x = 60 * unit;
  310 + var h_y = 24 * unit;
  311 + var h_r = 40 * unit;
  312 + var cx = h_x + h_r;
  313 + var cy = h_y + h_r;
  314 + ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false);
  315 + ctx.closePath();
  316 + ctx.fill();
  317 + ctx.clip();
  318 + ctx.drawImage(th.data.head_pic, h_x, h_y, h_r * 2, h_r * 2);
  319 + ctx.restore();
  320 +
  321 + x = 345 * unit, y = 190 * unit,
  322 + w = 105 * unit, h = 30 * unit,
  323 + r = 14 * unit;
  324 + ut.draw_randon_rect(ctx,x,y,r,w,h);
  325 + ctx.setFontSize(18 * unit);
  326 + ctx.setFillStyle("#000");
  327 + ctx.fillText("立即开通", 362 * unit, 212 * unit);
  328 +
  329 + //--绘制图片---
  330 + ctx.draw(false,
  331 + function(){
  332 + setTimeout(function(){
  333 + wx.canvasToTempFilePath({
  334 + x: 0,
  335 + y: 0,
  336 + width: 750,
  337 + height: 930,
  338 + destWidth: 1.2 * 750 * 750 / th.data.screenWidth,
  339 + destHeight: 1.2 * 1217 * 750 / th.data.screenWidth,
  340 + canvasId: 'myCanvas',
  341 + success: function (res) {
  342 + wx.hideLoading();//关闭生成中的方法
  343 + th.data.is_loading = 0;
  344 + console.log("生成的海报");
  345 + console.log(res.tempFilePath);
  346 + var tempFilePath = res.tempFilePath;
  347 + th.setData({
  348 + imagePath: tempFilePath,
  349 + maskHidden: false,
  350 + canvasHidden: true
  351 + });
  352 + wx.previewImage({
  353 + urls: [res.tempFilePath],
  354 + })
  355 + if (!res.tempFilePath) {
  356 + wx.showModal({
  357 + title: '提示',
  358 + content: '图片绘制中,请稍后重试',
  359 + showCancel: false
  360 + })
  361 + }
  362 +
  363 + }
  364 +
  365 + })
  366 + },300)
  367 + })
  368 + })
  369 +
  370 +
  371 +
  372 +
  373 + }
  374 +
  375 + })
  376 +
  377 + },
  378 +
  379 + //--获取头像的本地缓存,回调写法--
  380 + get_head_temp: function (tt) {
  381 + var ee = this;
  382 + if (ee.data.head_pic) {
  383 + tt();return false;
  384 + }
  385 + //---获取分享图片的本地地址,头像和商品图片----
  386 + var path2 = getApp().globalData.userInfo.head_pic;
  387 + if (path2 == "") {
  388 + ee.data.head_pic = "../../../images/share/hui_hear_pic.png";tt();
  389 + } else {
  390 + path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn");
  391 + wx.getImageInfo({
  392 + src: path2,
  393 + success: function (res) {
  394 + //res.path是网络图片的本地地址
  395 + ee.data.head_pic= res.path;tt();
  396 + },
  397 + fail: function (res) {
  398 + ee.data.head_pic= "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的
  399 + tt();
  400 + }
  401 + });
  402 + }
  403 + },
  404 +
  405 + //--- 获取卡类列表 ---
  406 + getPlusCardType: function (e) {
  407 + var storid = o.stoid;
  408 + var th = this;
  409 + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => {
  410 + var plusCard = res.data.data;
  411 + var arr = [1219, 2089, 3031];
  412 + var new_arr = new Array();
  413 + for (var i = 0; i < plusCard.length; i++) {
  414 + //plusCard[i].free=arr[i];
  415 + var item = {"fee": plusCard[i].CardFee, 'index': i}
  416 + new_arr.push(item);
  417 + }
  418 + //根據距離遠近排序,越近在前面,升序
  419 + new_arr.sort(function (a, b) {
  420 + if (a.fee < b.fee) { return -1; } else if (a.fee == b.fee) { return 0; } else { return 1;}
  421 + });
  422 +
  423 + var max_card=plusCard[new_arr[new_arr.length-1].index];
  424 + th.setData({big_card:max_card})
  425 +
  426 + //缓存分享卡的图片
  427 + wx.getImageInfo({
  428 + src: max_card.CardImg,
  429 + success: function (res) {
  430 + var bas_ming = res.path; th.setData({ bas_ming: bas_ming});
  431 + }
  432 + })
  433 +
  434 + })
  435 + },
  436 +
  437 +
  438 +
  439 +
  440 +
  441 +})
0 \ No newline at end of file 442 \ 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 \ No newline at end of file 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 \ No newline at end of file 53 \ No newline at end of file
pages/user/Detailed/Detailed.wxss 0 → 100644
  1 +.title {
  2 + background-color: rgb(238, 238, 238);
  3 + height: 65rpx;
  4 + color: rgb(153, 153, 153);
  5 +}
  6 +
  7 +.Nickname {
  8 + width: 200rpx;
  9 + padding-left: 50rpx;
  10 +}
  11 +
  12 +.reward {
  13 + width: 250rpx;
  14 +}
  15 +
  16 +
  17 +
  18 +.phone {
  19 + width: 250rpx;
  20 +}
  21 +
  22 +.maxvalue {
  23 + border-bottom: 1rpx solid rgb(242, 242, 242);
  24 +}
  25 +
  26 +.Nicknamevalue {
  27 + height: 85rpx;
  28 + width: 190rpx;
  29 + padding-left: 60rpx;
  30 +}
  31 +
  32 +.phonevalue {
  33 + width: 250rpx;
  34 +}
  35 +
  36 +.rewardvalue {
  37 + width: 250rpx;
  38 + color: rgb(215, 0, 38);
  39 +}
  40 +/*无明细*/
  41 +.empty_order image {
  42 + width: 329rpx;
  43 + height: 229rpx;
  44 + margin-top: 202rpx;
  45 +}
  46 +
  47 +.empty_order .xc-ash {
  48 + margin-top: 10rpx;
  49 + font-weight: 600px;
  50 +}
  51 +
  52 +.empty_order navigator {
  53 + margin-top: 60rpx;
  54 + border-radius: 40rpx;
  55 +}
  56 +
  57 +.empty_order navigator view {
  58 + width: 247rpx;
  59 + height: 56rpx;
  60 + background-color: rgb(255, 72, 72);
  61 + border-radius: 40rpx;
  62 +}
0 \ No newline at end of file 63 \ No newline at end of file
pages/user/cardinfo/cardinfo.js 0 → 100644
  1 +var t = getApp(),
  2 + a = t.request,
  3 + o = t.globalData.setting,
  4 + os = o,
  5 + i = require("../../../utils/util.js"),
  6 + ut = i,
  7 + s = require("../../../utils/common.js"),t_pay = require("../../../utils/pay2.js"),
  8 + w = require("../../../utils/wxParse/wxParse.js");
  9 +var regeneratorRuntime = require('../../../utils/runtime.js');
  10 +//wx.downloadFile把线上地址设为本地地址
  11 +Page({
  12 +
  13 + /**
  14 + * 页面的初始数据
  15 + */
  16 + data: {
  17 + images: [o.imghost + "/miniapp/images/plus/card_one.jpg", o.imghost + "/miniapp/images/plus/card_two.jpg", o.imghost + "/miniapp/images/plus/card_three.jpg"],
  18 +
  19 + url: o.imghost,
  20 + screenWidth: 0,
  21 + screenheight: 0,
  22 + canvasHidden:1,
  23 + shareImgPath: null,
  24 + is_plusCard: "",//卡的列表
  25 + imagePath: "",
  26 + user: null,//会员的数据
  27 + is_card: 0,//用于判断是否是续费页和购买页面 0不是puls会员
  28 + content: "",//等级卡规则
  29 + is_card_rule: "",//等级卡规则判断用
  30 + big_card: null,//最大的卡
  31 + divide_into:"",//分佣
  32 + is_loading:"",//判断分享只执行一次
  33 + bas_ming:"",//分享的卡的图片
  34 + head_pic:"",//会员头像
  35 + img_money:"",//缓存VIP的图片
  36 + img_Ancrown:"",//会员权益
  37 + img_Identification:"",//缓存标识的图片
  38 + img_square:"",//缓存方块的图片
  39 + privilege_o:"",//卡的勋章图
  40 + cardid: "",//会员卡的id
  41 + user_card: null,//会员买的卡
  42 + free:null,//分佣的数据
  43 + expiryDate:"",//卡到期时间
  44 +
  45 + },
  46 +
  47 +
  48 +
  49 +
  50 + /**
  51 + * 生命周期函数--监听页面加载
  52 + */
  53 + onLoad: function (options) {
  54 + var that = this,ee=this;
  55 +
  56 + //-----------等级卡说明-------------------
  57 + getApp().request.promiseGet("/api/weshop/storeconfig/get/" + os.stoid, {
  58 + }).then(res => {
  59 + var is_cardrule = res.data.data.cardrules;
  60 + w.wxParse("content", "html", is_cardrule, ee, 6);
  61 + ee.setData({
  62 + is_card_rule: is_cardrule
  63 + });
  64 + })
  65 +
  66 + //----------------------------获取最大的卡类-----------------------
  67 + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + o.stoid, {
  68 +
  69 + }).then(res => {
  70 + var plusCard = res.data.data;
  71 + var big_card = null;
  72 + var big_cards = null;
  73 + console.log(plusCard, "数据什么的", res);
  74 + for (var i = 0; i < plusCard.length; i++) {
  75 + big_cards = Math.max(plusCard[i].CardFee)
  76 + if (plusCard[i].CardFee == big_cards) {
  77 + big_card = plusCard[i]
  78 + }
  79 + }
  80 + console.log(big_cards, "是什么东西", big_card);
  81 +
  82 + ee.setData({
  83 + is_plusCard: plusCard,
  84 + big_card: big_card
  85 + })
  86 +
  87 + //缓存分享卡的图片
  88 + wx.getImageInfo({
  89 + src: big_card.CardImg,
  90 + success: function (res) {
  91 + //回调写法
  92 + var bas_ming = res.path;
  93 + ee.setData({ bas_ming: bas_ming });
  94 + }
  95 + })
  96 +
  97 + })
  98 +
  99 +
  100 + //获取用户设备信息,屏幕宽度
  101 + wx.getSystemInfo({
  102 + success: res => {
  103 + that.setData({
  104 + screenWidth: res.screenWidth
  105 + })
  106 + }
  107 + })
  108 + var goods_list = this.selectComponent("#goods_list"); //组件的id
  109 + goods_list.get_list();
  110 +
  111 +
  112 + },
  113 +
  114 +
  115 +//------------程序初始化入口 同步-------------
  116 + async init() {
  117 + var ee = this, th = ee;
  118 +
  119 + //-------------会员卡的获取-------------
  120 + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/list",
  121 + {
  122 + data: {
  123 + storeId: os.stoid,
  124 + userId: getApp().globalData.user_id,
  125 + },
  126 + }).then(res => {
  127 +
  128 + var GradeCardID = res.data.data[0].GradeCardID;
  129 + var expiryDate = res.data.data[0].ExpiryDate
  130 + console.log(GradeCardID, "卡的id", res.data.data[0]);
  131 + ee.setData({cardid: GradeCardID,
  132 + expiryDate: expiryDate
  133 + });
  134 +
  135 +
  136 + })
  137 + //-----------会员分佣-------------------
  138 + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/freeze/money?userId=" + getApp().globalData.user_id + "&storeId=" + os.stoid, {
  139 + }).then(res => {
  140 + console.log("分佣的数据", res.data.data);
  141 + if (res.data.code==0){
  142 + ee.setData({ free:res.data.data});
  143 + }else{
  144 + ee.setData({ free: 0 });
  145 + }
  146 +
  147 + })
  148 + //-----------会员的卡类-------------------
  149 + await getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/get?storeId=" + os.stoid + "&CardId=" + ee.data.cardid, {
  150 + }).then(res => {
  151 + var user_card= res.data.data;
  152 + console.log(user_card,"会员的卡类");
  153 + ee.setData({user_card: user_card});
  154 + })
  155 +
  156 +
  157 +
  158 + //-----------------获取会员信息-------------------------------
  159 + await getApp().request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.user_id,{
  160 +
  161 + }).then(res => {
  162 + var user = res.data.data;
  163 + var url = ee.data.url;
  164 + console.log("是什么东西", url);
  165 + var img_money = url + "/miniapp/images/plus/share/money.png";
  166 + var img_Ancrown = url + "/miniapp/images/plus/share/Ancrown.png";
  167 + var img_Identification = url + "/miniapp/images/plus/share/Identification.png";
  168 + var img_square = url + "/miniapp/images/plus/share/square.png";
  169 + var privilege_o = url + "/miniapp/images/plus/share/privilege_o.png";
  170 + console.log("图片转换",img_money);
  171 + var big_card = ee.data.big_card;
  172 + ee.setData({
  173 + user: user,
  174 + img_money: img_money,
  175 + img_Ancrown: img_Ancrown ,
  176 + img_Identification: img_Identification,
  177 + img_square, img_square ,
  178 + privilege_o, privilege_o
  179 +
  180 + });
  181 +
  182 + //缓存会员头像的图片
  183 + wx.getImageInfo({
  184 + src: user.head_pic,
  185 + success: function (res) {
  186 + //回调写法
  187 + var user_head= res.path;
  188 + ee.setData({ head_pic: user_head });
  189 + }
  190 + })
  191 + })
  192 + //--------------------缓存vip价格的图片---------------
  193 + wx.getImageInfo({
  194 + src:ee.data.img_money,
  195 + success: function (res) {
  196 + //回调写法
  197 + var img_money = res.path;
  198 + ee.setData({ img_money: img_money});
  199 + }
  200 + })
  201 + //--------------------缓存权益的图片---------------
  202 + wx.getImageInfo({
  203 + src: ee.data.img_Ancrown,
  204 + success: function (res) {
  205 + //回调写法
  206 + var img_Ancrown = res.path;
  207 + ee.setData({ img_Ancrown: img_Ancrown });
  208 + }
  209 + })
  210 + //--------------------缓存标识的图片---------------
  211 + wx.getImageInfo({
  212 + src: ee.data.img_Identification,
  213 + success: function (res) {
  214 + //回调写法
  215 + var img_Identification = res.path;
  216 + ee.setData({ img_Identification: img_Identification });
  217 + }
  218 + })
  219 +
  220 + //--------------------卡的勋章---------------
  221 + wx.getImageInfo({
  222 + src: ee.data.privilege_o,
  223 + success: function (res) {
  224 + //回调写法
  225 + var privilege_o = res.path;
  226 + ee.setData({ privilege_o: privilege_o });
  227 + }
  228 + })
  229 +
  230 + //--------------------方块图---------------
  231 + wx.getImageInfo({
  232 + src: ee.data.img_square,
  233 + success: function (res) {
  234 + //回调写法
  235 + var img_square = res.path;
  236 + ee.setData({ img_square: img_square});
  237 + }
  238 + })
  239 +
  240 + },
  241 +
  242 +
  243 +
  244 +
  245 + //-----打开分享图片----
  246 + Share_pictures: function () {
  247 +
  248 + this.setData({
  249 + canvasHidden: false
  250 + })
  251 + this.saveImageToPhotosAlbum();
  252 + },
  253 +
  254 +
  255 + /**
  256 + * 生命周期函数--监听页面初次渲染完成
  257 + */
  258 + saveImageToPhotosAlbum: function () {
  259 + if (this.data.imagePath != "") {
  260 + wx.previewImage({
  261 + urls: [this.data.imagePath],
  262 + })
  263 + return;
  264 + }
  265 + // if(this.data.is_loading) return false ;
  266 + this.data.is_loading=1;
  267 +
  268 + wx.showLoading({
  269 + title: '生成中...',
  270 + })
  271 +
  272 + this.setData({
  273 + canvasHidden: false
  274 + })
  275 +
  276 + var th = this;
  277 + //设置画板显示,才能开始绘图
  278 + var card_ming=th.data.bas_ming;//卡的图片
  279 + var user = th.data.user;//会员资料;
  280 + var big_card= th.data.big_card;//获取最大的卡
  281 + var user_head = th.data.head_pic;//会员头像
  282 + var img_money = th.data.img_money;//缓存vip的价格
  283 + var img_Ancrown = th.data.img_Ancrown;//会员权益的图片
  284 + var img_Identification = th.data.img_Identification;//会员标识
  285 + var privilege_o = th.data.privilege_o;//勋章图片
  286 + var img_square=th.data.img_square;
  287 +
  288 + var app = getApp();
  289 + var unit = th.data.screenWidth / 750 * 1.35;
  290 + var scene = getApp().globalData.user_id;
  291 + console.log("用户头像", th.data.head_pic);
  292 + ///二微码
  293 +
  294 + var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" +
  295 + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/user/index/index";
  296 + wx.getImageInfo({
  297 + src: path3,
  298 + success: function (res) {
  299 + //回调写法
  300 + th.get_head_temp(th.get_goods_temp, function () {
  301 + var vpath=res.path;
  302 +
  303 + console.log("生成二维码", path3);
  304 + //开启画布
  305 + const ctx = wx.createCanvasContext('myCanvas');
  306 +
  307 +
  308 + //先画背景
  309 + ctx.drawImage("../../../images/share/mackground.png", 0, 0, 554 * unit, 930 * unit);
  310 + ctx.setFontSize(26 * unit);
  311 + ctx.setFillStyle("rgb(0,0,0)");
  312 + ctx.fillText(user.nickname, 155 * unit, 75 * unit, 200 * unit);
  313 +
  314 + var tj_path = "../../../images/share/q_tj.png";
  315 + ctx.drawImage(tj_path, 385 * unit, 45 * unit, 90 * unit, 30 * unit);
  316 + ctx.setFontSize(18 * unit);
  317 + ctx.setFillStyle("rgb(255,255,255)");
  318 + ctx.fillText("强烈推荐", 394 * unit, 65 * unit);
  319 +
  320 + ctx.setStrokeStyle("rgb(255,255,255)");
  321 + ctx.setLineDash([5 * unit, 5 * unit], 5 * unit);
  322 + ctx.beginPath();
  323 + ctx.moveTo(0, 125 * unit);
  324 + ctx.lineTo(554 * unit, 125 * unit);
  325 + ctx.stroke();
  326 +
  327 + var x = 55 * unit,
  328 + y = 165 * unit,
  329 + w = 444 * unit,
  330 + h = 220 * unit,
  331 + r = 14 * unit;
  332 + ctx.save();
  333 + // 开始绘制
  334 + ctx.beginPath();
  335 + // 因为边缘描边存在锯齿,最好指定使用 transparent 填充
  336 + // 这里是使用 fill 还是 stroke都可以,二选一即可
  337 + ctx.setFillStyle('rgb(237,188,150)')
  338 + // ctx.setStrokeStyle('transparent')
  339 + // 左上角
  340 + ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)
  341 +
  342 + // border-top
  343 + ctx.moveTo(x + r, y)
  344 + ctx.lineTo(x + w - r, y)
  345 + ctx.lineTo(x + w, y + r)
  346 + // 右上角
  347 + ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)
  348 +
  349 + // border-right
  350 + ctx.lineTo(x + w, y + h - r)
  351 + ctx.lineTo(x + w - r, y + h)
  352 + // 右下角
  353 + ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)
  354 +
  355 + // border-bottom
  356 + ctx.lineTo(x + r, y + h)
  357 + ctx.lineTo(x, y + h - r)
  358 + // 左下角
  359 + ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)
  360 +
  361 + // border-left
  362 + ctx.lineTo(x, y + r)
  363 + ctx.lineTo(x + r, y)
  364 +
  365 + // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应
  366 + ctx.fill()
  367 +
  368 + ctx.clip(); //画了圆 再剪切 原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内
  369 + ctx.drawImage(card_ming, x, y, 444 * unit, 220 * unit); // 推进去图片
  370 + ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制
  371 +
  372 + ctx.beginPath();
  373 + // 卡图片
  374 + // ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,);
  375 + ctx.setFontSize(26 * unit);
  376 + ctx.setFillStyle('rgb(218,194,169)');
  377 + ctx.fillText(big_card.CardName, 80 * unit, 215 * unit);
  378 + ctx.setFontSize(18 * unit);
  379 + ctx.setFillStyle('rgb(218,194,169)');
  380 + ctx.fillText("开通会员年卡仅" + big_card.CardFee+"元", 80 * unit, 240 * unit);
  381 +
  382 + ctx.drawImage(privilege_o, 80 * unit, 343 * unit, 20 * unit, 20 * unit);
  383 +
  384 + ctx.setFontSize(14 * unit);
  385 + ctx.setFillStyle('rgb(218,194,169)');
  386 + ctx.fillText("根据大家购买数据,您成为超级会员预计可省¥3031元", 105 * unit, 360 * unit);
  387 +
  388 + ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit);
  389 + ctx.setFillStyle('rgb(218,194,169)');
  390 + ctx.fill();
  391 +
  392 + ctx.drawImage(img_square, 267 * unit, 420 * unit, 13 * unit, 13 * unit);
  393 +
  394 + ctx.beginPath();
  395 + ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit);
  396 + ctx.setFillStyle('rgb(218,194,169)');
  397 + ctx.fill();
  398 +
  399 + ctx.drawImage(img_square, 80 * unit, 470 * unit, 10 * unit, 10 * unit);
  400 + ctx.setFontSize(24 * unit);
  401 + ctx.setFillStyle("rgb(198,165,126)");
  402 + ctx.fillText("超级VIP权益", 100 * unit, 475 * unit);
  403 +
  404 + ctx.setFontSize(20 * unit);
  405 + ctx.setFillStyle("rgb(198,165,126)");
  406 + ctx.fillText("超级会员专属权益", 100 * unit, 505 * unit);
  407 + ctx.drawImage(img_Ancrown, 355 * unit, 440 * unit, 65 * unit, 65 * unit);
  408 +
  409 + ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit)
  410 + ctx.setFillStyle('rgb(218,194,169)')
  411 + ctx.fill();
  412 +
  413 + ctx.drawImage(img_square, 80 * unit, 575 * unit, 10 * unit, 10 * unit);
  414 + ctx.setFontSize(24 * unit);
  415 + ctx.setFillStyle("rgb(198,165,126)");
  416 + ctx.fillText("超级VIP标识", 100 * unit, 580 * unit);
  417 +
  418 + ctx.setFontSize(20 * unit);
  419 + ctx.setFillStyle("rgb(198,165,126)");
  420 + ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit);
  421 + ctx.drawImage(img_Identification, 355 * unit, 548 * unit, 65 * unit, 65 * unit);
  422 +
  423 + ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit);
  424 + ctx.setFillStyle('rgb(218,194,169)');
  425 + ctx.fill();
  426 +
  427 + ctx.drawImage(img_square, 80 * unit, 695 * unit, 10 * unit, 10 * unit);
  428 + ctx.setFontSize(24 * unit);
  429 + ctx.setFillStyle("rgb(198,165,126)");
  430 + ctx.fillText("超级VIP价格", 100 * unit, 695 * unit);
  431 +
  432 + ctx.setFontSize(20 * unit);
  433 + ctx.setFillStyle("rgb(198,165,126)");
  434 + ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit);
  435 + ctx.drawImage(img_money, 355 * unit, 660 * unit, 65 * unit, 65 * unit);
  436 +
  437 + ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit)
  438 + ctx.setFillStyle('rgb(218,194,169)')
  439 + ctx.fill();
  440 +
  441 + ctx.drawImage(vpath, 100 * unit, 780 * unit, 110 * unit, 110 * unit);
  442 +
  443 + ctx.setFontSize(20 * unit);
  444 + ctx.setFillStyle("#000");
  445 + ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit);
  446 +
  447 + ctx.setFontSize(20 * unit);
  448 + ctx.setFillStyle("#000");
  449 + ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit);
  450 +
  451 + //---绘制圆形要放在最后----
  452 + ctx.save();
  453 + ctx.beginPath();
  454 + var h_x = 60 * unit;
  455 + var h_y = 24 * unit;
  456 + var h_r = 40 * unit;
  457 + var cx = h_x + h_r;
  458 + var cy = h_y + h_r;
  459 + ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false);
  460 + ctx.closePath();
  461 + ctx.fill();
  462 + ctx.clip();
  463 + ctx.drawImage(th.data.head_pic, h_x, h_y, h_r * 2, h_r * 2);
  464 + ctx.restore();
  465 +
  466 + var x = 345 * unit,
  467 + y = 190 * unit,
  468 + w = 105 * unit,
  469 + h = 30 * unit,
  470 + r = 14 * unit;
  471 + ctx.save();
  472 + // 开始绘制
  473 + ctx.beginPath();
  474 + // 因为边缘描边存在锯齿,最好指定使用 transparent 填充
  475 + // 这里是使用 fill 还是 stroke都可以,二选一即可
  476 + ctx.setFillStyle('rgb(237,188,150)')
  477 + // ctx.setStrokeStyle('transparent')
  478 + // 左上角
  479 + ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5)
  480 +
  481 + // border-top
  482 + ctx.moveTo(x + r, y)
  483 + ctx.lineTo(x + w - r, y)
  484 + ctx.lineTo(x + w, y + r)
  485 + // 右上角
  486 + ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2)
  487 +
  488 + // border-right
  489 + ctx.lineTo(x + w, y + h - r)
  490 + ctx.lineTo(x + w - r, y + h)
  491 + // 右下角
  492 + ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5)
  493 +
  494 + // border-bottom
  495 + ctx.lineTo(x + r, y + h)
  496 + ctx.lineTo(x, y + h - r)
  497 + // 左下角
  498 + ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI)
  499 +
  500 + // border-left
  501 + ctx.lineTo(x, y + r)
  502 + ctx.lineTo(x + r, y)
  503 +
  504 + // 这里是使用 fill 还是 stroke都可以,二选一即可,但是需要与上面对应
  505 + ctx.fill()
  506 +
  507 + ctx.setFontSize(18 * unit);
  508 + ctx.setFillStyle("#000");
  509 + ctx.fillText("立即开通", 362 * unit, 212 * unit);
  510 +
  511 +
  512 + //绘制图片
  513 + ctx.draw(false,
  514 + function(){
  515 + setTimeout(function(){
  516 + wx.canvasToTempFilePath({
  517 + x: 0,
  518 + y: 0,
  519 + width: 750,
  520 + height: 930,
  521 + destWidth: 1.2 * 750 * 750 / th.data.screenWidth,
  522 + destHeight: 1.2 * 1217 * 750 / th.data.screenWidth,
  523 + canvasId: 'myCanvas',
  524 + success: function (res) {
  525 + wx.hideLoading();//关闭生成中的方法
  526 + th.data.is_loading = 0;
  527 + console.log("生成的海报");
  528 + console.log(res.tempFilePath);
  529 + var tempFilePath = res.tempFilePath;
  530 + th.setData({
  531 + imagePath: tempFilePath,
  532 + maskHidden: false,
  533 + canvasHidden: true
  534 + });
  535 + wx.previewImage({
  536 + urls: [res.tempFilePath],
  537 + })
  538 + if (!res.tempFilePath) {
  539 + wx.showModal({
  540 + title: '提示',
  541 + content: '图片绘制中,请稍后重试',
  542 + showCancel: false
  543 + })
  544 + }
  545 + }
  546 + })
  547 + },500)
  548 +
  549 + })
  550 +
  551 +
  552 + })
  553 + }
  554 + })
  555 +
  556 + },
  557 +
  558 + //--获取头像的本地缓存,回调写法--
  559 + get_head_temp: function (tt, func) {
  560 + var ee = this;
  561 + console.log("获取头像", ee.data.head_pic);
  562 + if (ee.data.head_pic) {
  563 + tt(func);
  564 + return false;
  565 + }
  566 + //---获取分享图片的本地地址,头像和商品图片----
  567 + var path2 = getApp().globalData.userInfo.head_pic;
  568 + if (path2 == "") {
  569 + ee.data.head_pic = "../../../images/share/hui_hear_pic.png";
  570 + tt(func);
  571 + } else {
  572 + path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn");
  573 + wx.getImageInfo({
  574 + src: path2,
  575 + success: function (res) {
  576 + //res.path是网络图片的本地地址
  577 + ee.data.head_pic= res.path;
  578 + tt(func);;
  579 + },
  580 + fail: function (res) {
  581 + ee.data.head_pic= "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的
  582 + tt(func);
  583 + }
  584 + });
  585 + }
  586 + },
  587 + //--获取商品图片的本地缓存,回调写法--
  588 + get_goods_temp: function (tt) {
  589 + var ee = this;
  590 + if (ee.data.head_pic) {
  591 + tt();
  592 + return false;
  593 + }
  594 + //获取商品是分享图信息
  595 + wx.getImageInfo({
  596 + src: ee.data.head_pic,
  597 + success: function (res) {
  598 + //res.path是网络图片的本地地址
  599 + ee.data.head_pic = res.path;
  600 + tt();
  601 + },
  602 + fail: function (res) {
  603 + ee.data.head_pic = "../../../images/share/default_g_img.gif"; //分享的图片不能用网络的
  604 + tt();
  605 + }
  606 + });
  607 + },
  608 + /**
  609 + * 生命周期函数--监听页面显示
  610 + */
  611 + onShow: function () {
  612 + //同步初始化
  613 + this.init();
  614 +
  615 +
  616 + },
  617 +
  618 + /**
  619 + * 生命周期函数--监听页面隐藏
  620 + */
  621 + onHide: function () {
  622 +
  623 + },
  624 +
  625 + /**
  626 + * 生命周期函数--监听页面卸载
  627 + */
  628 + onUnload: function () {
  629 +
  630 + },
  631 +
  632 + /**
  633 + * 页面相关事件处理函数--监听用户下拉动作
  634 + */
  635 + onPullDownRefresh: function () {
  636 +
  637 + },
  638 +
  639 + /**
  640 + * 页面上拉触底事件的处理函数
  641 + */
  642 + onReachBottom: function () {
  643 + var goods_list = this.selectComponent("#goods_list"); //组件的id
  644 + goods_list.get_list();
  645 + this.setData({
  646 + j: true
  647 + })
  648 + },
  649 +
  650 +
  651 +
  652 + //--转到用户余额--
  653 + to_user_money:function(){
  654 + var th=this,free=th.data.free;
  655 + if(!th.data.free.RefereeMoney){
  656 + getApp().my_warnning("您没有转入余额",0,th); return false;
  657 + }
  658 +
  659 + wx.showModal({
  660 + title: '提示',
  661 + content: '您确定要转入余额吗?',
  662 + success(res) {
  663 + if (res.confirm) {
  664 + getApp().request.post("/api/weshop/plus/withdrawal/referee/money",{
  665 + data:{storeId:os.stoid,userId:getApp().globalData.user_id},
  666 + success:function(res){
  667 + if(res.data.code==0){
  668 + getApp().my_warnning("转入成功",0,th);
  669 + free.RefereeMoney=0;
  670 + th.setData({free:free});
  671 + }else{
  672 + getApp().my_warnning(res.data.msg ,0,th);
  673 + }
  674 + }
  675 + })
  676 + }
  677 + }
  678 + })
  679 + },
  680 +
  681 + //-----立即续费的功能------
  682 + xufei:function(){
  683 + var th = this;
  684 + var is_card = 0;
  685 + var item = th.data.user_card;
  686 + var req = {};
  687 + req.cardId = item.CardId;
  688 + req.rechargeType = 4;
  689 + //如果不是你导购,也不是等级会员分享
  690 + req.storeId = os.stoid;
  691 + req.userId = getApp().globalData.user_id;
  692 + t_pay.pay(req, th.success, function () {
  693 + getApp().my_warnning("支付失败", 0, th);
  694 + });
  695 +
  696 + },
  697 +
  698 + //--支付成功,跳转到等级卡续费页面--
  699 + success:function () {
  700 + getApp().my_warnning("支付成功",0,this);
  701 + },
  702 +
  703 +})
0 \ No newline at end of file 704 \ 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 + },
  7 + "navigationBarTitleText": "plus会员"
  8 +}
0 \ No newline at end of file 9 \ 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 +
  9 +
  10 + <view class="MemberPlus rel"style="background-image:url('{{user_card.CardImg}}');background-size: 100% 100%;background-repead:no-repead;">
  11 +
  12 + <view class="flex-space-between">
  13 + <view style="color:{{user_card.CardColor}}">
  14 + <view class="fs36 h36" style="font-weight:bold">{{user_card.CardName}}</view>
  15 + <view class="fs22 h22" style="margin-top:15rpx">会员将在{{filters.replace_time2(expiryDate)}}到期</view>
  16 + </view>
  17 + <view bindtap="xufei" class="renew fs28" style="background:{{user_card.CardColor}}">立即续费
  18 + </view>
  19 + </view>
  20 +
  21 + <view class="flex-vertical-between xs fs28">
  22 + <view class="flex ai-center" style=" overflow:hidden">
  23 + <view class="Member"
  24 + style="background-image:url('{{url}}/miniapp/images/plus/privilege_o.png'); filter: drop-shadow(40px 0 0 {{user_card.CardColor}});">
  25 + </view>
  26 + <view style="color:{{user_card.CardColor}}">正在享受{{user_card.CardName}}会员特权
  27 + </view>
  28 + </view>
  29 + <view class="flex-vertical" bindtap="Share_pictures">
  30 + <view style="color:{{user_card.CardColor}}">邀请新朋友</view>
  31 + <image class="share" src="{{url}}/miniapp/images/plus/Forward.png"></image>
  32 + </view>
  33 + </view>
  34 +
  35 + </view>
  36 + <view class="flex-vertical-between Invitation fs30">
  37 +
  38 + <view class="flex">
  39 + 已邀请
  40 + <view class="Invitation_count">{{free==0?"0":free.RefereeNumber}}人</view>
  41 + 可提现
  42 + <view class="Invitation_my">{{free==0?"0":free.VIPRebate}}元</view>
  43 + </view>
  44 +
  45 + <view class="flex">
  46 + <view class="Detailed flex-center">
  47 + <navigator url="/pages/user/Detailed/Detailed">明细</navigator>
  48 + </view>
  49 + <view class="Invitation_Cash" bindtap="to_user_money">转到余额</view>
  50 + </view>
  51 + </view>
  52 +
  53 + <!-- 会员礼遇 -->
  54 + <view class="Courtesy">
  55 +
  56 + <!-- 标题 -->
  57 + <view class="flex-center" style="width:100%;height:200rpx;">
  58 + <view>
  59 + <view wx:if="{{false}}" class="Courtesy_title flex-center fs36">开通PLUS会员尊享礼遇
  60 + </view>
  61 + <view wx:else class="Courtesy_title flex-center fs36">PLUS会员尊享礼遇 </view>
  62 +
  63 +
  64 + <view class="flex-center">
  65 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  66 +
  67 + <view wx:if="{{false}}" class="Courtesy_can fs24">PLUS会员可享以下特权
  68 + </view>
  69 + <view wx:else class="Courtesy_can fs24">解锁新权益 精彩享不停
  70 + </view>
  71 +
  72 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  73 + </view>
  74 + </view>
  75 + </view>
  76 +
  77 + <!-- 会员权益内容 -->
  78 + <view class="Courtesy_comment" style="padding:0 20rpx">
  79 + <view class="wxParse">
  80 + <template is="wxParse" data="{{wxParseData:content.nodes}}"></template>
  81 + </view>
  82 + </view>
  83 + </view>
  84 +
  85 +
  86 +<!-- 好物推荐 -->
  87 + <!-- 好物推荐 -->
  88 + <view class="title">
  89 + <!-- 标题 -->
  90 + <view>
  91 + <!-- 中文名标题 -->
  92 + <view class="China flex-level">
  93 + <view class="line flex-vertical">
  94 + <view class="one"></view>
  95 + <view class="two"></view>
  96 + <view class="three"></view>
  97 + </view>
  98 +
  99 + <view class="Recommend flex-level" bindtap="requestList">好物推荐</view>
  100 +
  101 + <view class="line flex-vertical">
  102 + <view class="three"></view>
  103 + <view class="two"></view>
  104 + <view class="one"></view>
  105 + </view>
  106 + </view>
  107 +
  108 + <!-- 英文标题 -->
  109 + <view class="english flex-center">
  110 + <view class="silk"></view>
  111 + <view class="esh five-level-word">GOOD HOT THING</view>
  112 + <view class="silk"></view>
  113 + </view>
  114 +
  115 + </view>
  116 + <!-- 商品列表组件 -->
  117 + <goods_recommend id="goods_list"></goods_recommend>
  118 + <!-- 商品列表 -->
  119 +
  120 + </view>
  121 +
  122 +
  123 + <!-- 画布 -->
  124 +<canvas canvas-id='myCanvas' style="width:750rpx;height:1260rpx;"wx:if='{{!canvasHidden}}'></canvas>
  125 +
  126 +<warn id="warn"></warn>
0 \ No newline at end of file 127 \ No newline at end of file
pages/user/cardinfo/cardinfo.wxss 0 → 100644
  1 + @import "../../../utils/wxParse/wxParse.wxss";
  2 + .Member_bk {
  3 + position:relative;
  4 + z-index: 0;
  5 + width: 100%;
  6 + height: 100%;
  7 +}
  8 +.MemberPlus {
  9 + width: 618rpx;
  10 + height: 285rpx;
  11 + /* border-radius: 18rpx; */
  12 + box-shadow: 0rpx 0rpx 10rpx #888;
  13 + margin: 0rpx 35rpx;
  14 + color: #ffa786;
  15 + padding: 0rpx 31rpx;
  16 + padding-top: 40rpx;
  17 + background-size: 100%;
  18 + border-top-left-radius: 18rpx;
  19 + border-top-right-radius: 18rpx;
  20 +
  21 +}
  22 +.renew {
  23 + width: 190rpx;
  24 + height: 50rpx;
  25 + border-radius: 18rpx;
  26 + background-color: rgb(237, 189, 150);
  27 + text-align: center;
  28 + line-height: 50rpx;
  29 + color: #000;
  30 + margin-top: 7rpx;
  31 +
  32 +}
  33 +.xs {
  34 + position: absolute; bottom: 30rpx; width: 91%;
  35 +}
  36 +.MemberPlus .privilege {
  37 + width: 30rpx;
  38 + height: 30rpx;
  39 + margin-right: 7rpx;
  40 +}
  41 +.MemberPlus .share {
  42 + width: 30rpx;
  43 + height: 30rpx;
  44 + margin-left: 7rpx;
  45 +}
  46 +.Invitation {
  47 + padding: 0rpx 31rpx;
  48 + box-shadow: 0rpx 0rpx 10rpx #888;
  49 + height: 95rpx;
  50 + background-color: rgb(255, 255, 255);
  51 + z-index: 6;
  52 +}
  53 +.Invitation .Invitation_count, .Invitation_my {
  54 + color: rgb(237, 189, 153);
  55 +}
  56 +.Invitation .Detailed {
  57 + color: rgb(237, 189, 150);
  58 + text-decoration: underline;
  59 +}
  60 +.Invitation .Invitation_Cash {
  61 + width: 150rpx;
  62 + height: 45rpx;
  63 + line-height: 45rpx;
  64 + text-align: center;
  65 + border-radius: 25rpx;
  66 + margin-left: 30rpx;
  67 + background-color: rgb(237, 189, 150);
  68 + color: rgb(255, 255, 255);
  69 +}
  70 +.swiper, .Courtesy, .title {
  71 + position: relative;
  72 + z-index: 3;
  73 +}
  74 +.Courtesy_title {
  75 + color: rgb(173, 137, 79);
  76 + font-weight: bold;
  77 + margin-bottom: 10rpx;
  78 + letter-spacing: 2rpx;
  79 +}
  80 +.Courtesy_image {
  81 + width: 50rpx;
  82 + height: 25rpx;
  83 + margin-top: 8rpx;
  84 +}
  85 +.Courtesy_can {
  86 + margin: 0rpx 7rpx;
  87 + color: rgb(94, 93, 91);
  88 + font-weight: bold;
  89 +}
  90 +
  91 +
  92 +/* 热门好物 */
  93 +
  94 +.title .China {
  95 + width: 100%;
  96 + margin-top: 60rpx;
  97 + margin-bottom: 10rpx;
  98 + line-height: 0rpx;
  99 +}
  100 +
  101 +.title .China .line view {
  102 + width: 2rpx;
  103 +}
  104 +
  105 +.title .China .line {
  106 + height: 40rpx;
  107 + color: rgb(51, 51, 51);
  108 +}
  109 +
  110 +.title .China .line view {
  111 + border-left: 3rpx solid #000;
  112 + margin-left: 5rpx;
  113 +}
  114 +
  115 +.title .China .line .one {
  116 + height: 23rpx;
  117 +}
  118 +
  119 +.title .China .line .two {
  120 + height: 15rpx;
  121 +}
  122 +
  123 +.title .China .line .three {
  124 + height: 18rpx;
  125 +}
  126 +
  127 +.title .China .Recommend {
  128 + margin: 0rpx 20rpx;
  129 + font-size: 28rpx;
  130 + line-height: 39rpx;
  131 + font-weight: bold;
  132 +}
  133 +
  134 +.title .english .silk {
  135 + width: 214rpx;
  136 + height: 2rpx;
  137 + background-color: #000;
  138 +}
  139 +
  140 +.title .english .esh {
  141 + margin: 0rpx 15rpx;
  142 +}
  143 +.Member {
  144 + width: 30rpx;
  145 + height: 30rpx;
  146 + margin-right: 5rpx;
  147 + background-size: 100% 100%;
  148 + background-blend-mode: lighten;
  149 + transform: translateX(-280%);
  150 + vertical-align: top;
  151 +}
  152 +
  153 +.h36{ height:36rpx; line-height: 36rpx;}
  154 +.h22{ height:22rpx; line-height: 22rpx;}
0 \ No newline at end of file 155 \ No newline at end of file
pages/user/deposit/prepaid/prepaid.wxml
@@ -10,8 +10,8 @@ @@ -10,8 +10,8 @@
10 <view class="bz">备注: 10 <view class="bz">备注:
11 <view class="yck">{{perpaid.ItemName}}</view> 11 <view class="yck">{{perpaid.ItemName}}</view>
12 </view> 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 </image> 15 </image>
16 </block> 16 </block>
17 17
pages/user/index/index.js
@@ -12,25 +12,26 @@ Page({ @@ -12,25 +12,26 @@ Page({
12 * 页面的初始数据 12 * 页面的初始数据
13 */ 13 */
14 data: { 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,7 +46,6 @@ Page({
45 var s = this,th=s,need_money=0,cur_g_num=0; 46 var s = this,th=s,need_money=0,cur_g_num=0;
46 getApp().get_isbuy(th.setappdata); 47 getApp().get_isbuy(th.setappdata);
47 if(getApp().globalData.user_id) getApp().requestCardNum(); 48 if(getApp().globalData.user_id) getApp().requestCardNum();
48 -  
49 /*------会员登录------*/ 49 /*------会员登录------*/
50 app.getUserFir(async function(e){ 50 app.getUserFir(async function(e){
51 if(e!=undefined && e!=null){ 51 if(e!=undefined && e!=null){
@@ -188,6 +188,21 @@ Page({ @@ -188,6 +188,21 @@ Page({
188 188
189 /*-- 获取 --*/ 189 /*-- 获取 --*/
190 th.requestRecommend(); 190 th.requestRecommend();
  191 +
  192 + /*-------系统是否开通等级卡,会员是等级卡-----*/
  193 + getApp().getConfig2(function (e) {
  194 + var t_swi=e.switch_list;
  195 + if(t_swi) t_swi=JSON.parse(t_swi)
  196 + if(parseInt(t_swi.rank_switch)==2){
  197 + var userInfo=th.data.userInfo;
  198 + if(userInfo.card_field!=null && userInfo.card_field!=undefined && userInfo.card_field!="" ){
  199 + th.setData({is_dengji:1})
  200 + }else{
  201 + th.setData({is_dengji:2})
  202 + }
  203 + }
  204 + })
  205 +
191 } 206 }
192 }); 207 });
193 208
pages/user/index/index.wxml
1 <view class="xc-page"> 1 <view class="xc-page">
2 -<view class="xc-user">  
3 - <view class="xc-head rel">  
4 - <image class="xc-background" src="{{iurl}}/miniapp/images/user_index_powder.jpg">  
5 - <view class="flex-space-between abs xc-user-frame">  
6 - <view class="xc-user-left flex" wx:if="{{userInfo}}">  
7 - <image class="xc-user-img circle"  
8 - bindtap="go_info"  
9 - src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image>  
10 - <view class="xc-uesr-name">  
11 - {{userInfo.nickname}} <view class="hvip" wx:if='{{GradeName && is_init}}'><image class="vip-mem" src="{{iurl}}/miniapp/images/vip_hg0.png"></image>{{GradeName}}</view>  
12 - <view class="flex fs24 xc-grow-ups" style="margin-left:8rpx;margin-top:6rpx" wx:if="{{is_init && gradeId}}" bindtap='jump'>  
13 - <block wx:if="{{cz_val<full_cz_val}}">  
14 - {{" "}}<text class="grow-up-val">成长值</text> <view style='margin-left:5rpx; '>{{cz_val}} / {{need_money}}</view>  
15 - </block>  
16 - <block wx:else>  
17 - {{" "}}<text class="grow-up-val">成长值</text> {{cz_val}}  
18 - </block>  
19 - </view>  
20 - </view> 2 + <view class="xc-user">
  3 + <view class="xc-head rel">
  4 + <image class="xc-background" src="{{iurl}}/miniapp/images/user_index_powder.jpg">
  5 + <view class="flex-space-between abs xc-user-frame">
  6 + <view class="xc-user-left flex" wx:if="{{userInfo}}">
  7 + <image class="xc-user-img circle" bindtap="go_info" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image>
  8 + <view class="xc-uesr-name">
  9 + {{userInfo.nickname}}
  10 + <view class="hvip" wx:if='{{GradeName && is_init}}'>
  11 + <image class="vip-mem" src="{{iurl}}/miniapp/images/vip_hg0.png"></image>{{GradeName}}</view>
  12 + <view class="flex fs24 xc-grow-ups" style="margin-left:8rpx;margin-top:6rpx" wx:if="{{is_init && gradeId}}" bindtap='jump'>
  13 + <block wx:if="{{cz_val<full_cz_val}}">
  14 + {{" "}}
  15 + <text class="grow-up-val">成长值</text>
  16 + <view style='margin-left:5rpx; '>{{cz_val}} / {{need_money}}</view>
  17 + </block>
  18 + <block wx:else>
  19 + {{" "}}
  20 + <text class="grow-up-val">成长值</text> {{cz_val}}
  21 + </block>
  22 + </view>
  23 + </view>
21 24
22 - </view> 25 + </view>
23 26
24 - <view class="xc-user-left flex" wx:else bindtap="gobindtel">  
25 - <image class="xc-user-img circle" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image>  
26 - <view class="xc-uesr-name">请点击注册</view>  
27 - </view> 27 + <view class="xc-user-left flex" wx:else bindtap="gobindtel">
  28 + <image class="xc-user-img circle" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image>
  29 + <view class="xc-uesr-name">请点击注册</view>
  30 + </view>
28 31
29 32
30 - </view>  
31 - <view wx:if="{{userInfo}}" class="xc-qrcode-frame abs flex-center ">  
32 - <!-- {{iurl}}/miniapp -->  
33 - <image bindtap='show_tc' class=" xc-qrcode "src="{{iurl}}/miniapp/images/qrcode1.png"></image>  
34 - </view>  
35 - <view class="flex-vertical abs xc-grow-frame rel" style="display: none">  
36 - <view class="xc-grow-up">成长值</view> 33 + </view>
  34 + <view wx:if="{{userInfo}}" class="xc-qrcode-frame abs flex-center ">
  35 + <!-- {{iurl}}/miniapp -->
  36 + <image bindtap='show_tc' class=" xc-qrcode " src="{{iurl}}/miniapp/images/qrcode1.png"></image>
  37 + </view>
  38 + <view class="flex-vertical abs xc-grow-frame rel" style="display: none">
  39 + <view class="xc-grow-up">成长值</view>
37 40
38 - <view class="xc-line-not rel">  
39 - <image class="xc-bj-img abs" src="{{iurl}}/miniapp/images/baijing.png"></image>  
40 - <image class="xc-zs-img abs" src="{{iurl}}/miniapp/images/zhuangshi.png"></image>  
41 - <view class="xc-line-Yes abs" style="width:{{length}}rpx;"></view>  
42 - </view>  
43 -  
44 - <view class="xc-grow-val">5000/10000</view>  
45 - </view>  
46 - <view class="flex-equality abs xc-assets">  
47 - <view class="t-c typefont" bindtap='balance'>{{yuer?yuer:0}}<view class='numfont'>余额</view></view>  
48 - <view class="t-c typefont" bindtap='deposit'>{{udata.Balance?udata.Balance:0}}<view class='numfont'>预存款</view></view>  
49 - <view class="t-c typefont" bindtap='integral'>{{udata.Integral?udata.Integral:0}}<view class='numfont'>积分</view></view>  
50 - <view class="t-c typefont" bindtap='coupon'>{{udata.CashCount+byquan?udata.CashCount+byquan:0}}<view class='numfont'>优惠券</view></view>  
51 - </view>  
52 - </image>  
53 -  
54 - </view>  
55 - <view class="xc-add-member-frame flex-level">  
56 - <view class="xc-add-member flex-vertical four-level-word">  
57 - <image class="xc-icon" src="{{iurl}}/miniapp/images/add.png" ></image>  
58 - <view class="member"> 加入会员</view>  
59 - <view class="t-c xc-save-money"> 预计可省345元</view>  
60 - <view class="xc-opening-button t-c">  
61 - <view class="xc-opening four-level-word">立即开通</view>  
62 - </view>  
63 - </view>  
64 -</view> 41 + <view class="xc-line-not rel">
  42 + <image class="xc-bj-img abs" src="{{iurl}}/miniapp/images/baijing.png"></image>
  43 + <image class="xc-zs-img abs" src="{{iurl}}/miniapp/images/zhuangshi.png"></image>
  44 + <view class="xc-line-Yes abs" style="width:{{length}}rpx;"></view>
  45 + </view>
  46 +
  47 + <view class="xc-grow-val">5000/10000</view>
  48 + </view>
  49 + <view class="flex-equality abs xc-assets">
  50 + <view class="t-c typefont" bindtap='balance'>{{yuer?yuer:0}}
  51 + <view class='numfont'>余额</view>
  52 + </view>
  53 + <view class="t-c typefont" bindtap='deposit'>{{udata.Balance?udata.Balance:0}}
  54 + <view class='numfont'>预存款</view>
  55 + </view>
  56 + <view class="t-c typefont" bindtap='integral'>{{udata.Integral?udata.Integral:0}}
  57 + <view class='numfont'>积分</view>
  58 + </view>
  59 + <view class="t-c typefont" bindtap='coupon'>{{udata.CashCount+byquan?udata.CashCount+byquan:0}}
  60 + <view class='numfont'>优惠券</view>
  61 + </view>
  62 + </view>
  63 + </image>
  64 +
  65 + </view>
  66 + <view class="xc-add-member-frame flex-level rel addplus" wx:if="{{is_dengji==2}}">
  67 + <view class="xc-add-member flex-vertical four-level-word">
  68 + <image class="xc-icon" src="{{iurl}}/miniapp/images/user/user_vip.png"></image>
  69 + <view class="member"> 加入plus会员</view>
  70 + <view class="t-c xc-save-money"> 预计可省3031元</view>
  71 + <view class="xc-opening-button t-c" data-url="/pages/user/plus/plus" bindtap="goto">
  72 + <view class="xc-opening fs20">立即开通</view>
  73 + </view>
  74 + </view>
  75 + </view>
65 76
66 - </view>  
67 - <view class="xc-after-sale rel">  
68 - <view class="xc-after-sale-left flex-center-around">  
69 - <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=1">  
70 - <image class="xc-no-money" src="{{iurl}}/miniapp/images/daifuk.png"></image>  
71 - <view class=" xc-word-color four-level-word">待付款</view>  
72 - <text class="order-num" hidden='{{toji.wait_pay>0?"":"true"}}'>{{toji.wait_pay}}</text>  
73 - </view>  
74 - <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=3">  
75 - <image class="xc-await" src="{{iurl}}/miniapp/images/shouhuo1.png"></image>  
76 - <view class="xc-word-color four-level-word">待收货</view>  
77 - <text class="order-num" hidden='{{toji.wait_receive>0?"":"true"}}'>{{toji.wait_receive}}</text>  
78 - </view>  
79 - <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=4">  
80 - <image class="xc-no-money" src="{{iurl}}/miniapp/images/dpr1.png"></image>  
81 - <view class="xc-word-color four-level-word">待评论</view>  
82 - <text class="order-num" hidden='{{toji.wait_pj>0?"":"true"}}'>{{toji.wait_pj}}</text>  
83 - </view>  
84 - <view class="t-c margin-auto rel" style='margin-left:30rpx;' bindtap="go_order" data-url="/pages/user/return_goods_list/return_goods_list" >  
85 - <image class="xc-no-money" src="{{iurl}}/miniapp/images/shouh1.png"></image>  
86 - <view style='height:36rpx;'> </view>  
87 - <view class="xc-word-color four-level-word abs">售后/退款</view>  
88 - <!--<text class="order-num" hidden='{{toji.wait_return>0>0?"":"true"}}' style="right: -20rpx">{{toji.wait_return}}</text>-->  
89 - </view> 77 + </view>
  78 + <view class="xc-after-sale rel">
  79 + <view class="xc-after-sale-left flex-center-around">
  80 + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=1">
  81 + <image class="xc-no-money" src="{{iurl}}/miniapp/images/daifuk.png"></image>
  82 + <view class=" xc-word-color four-level-word">待付款</view>
  83 + <text class="order-num" hidden='{{toji.wait_pay>0?"":"true"}}'>{{toji.wait_pay}}</text>
  84 + </view>
  85 + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=3">
  86 + <image class="xc-await" src="{{iurl}}/miniapp/images/shouhuo1.png"></image>
  87 + <view class="xc-word-color four-level-word">待收货</view>
  88 + <text class="order-num" hidden='{{toji.wait_receive>0?"":"true"}}'>{{toji.wait_receive}}</text>
  89 + </view>
  90 + <view class="t-c margin-auto rel" bindtap="go_order" data-url="/pages/user/order_list/order_list?type=4">
  91 + <image class="xc-no-money" src="{{iurl}}/miniapp/images/dpr1.png"></image>
  92 + <view class="xc-word-color four-level-word">待评论</view>
  93 + <text class="order-num" hidden='{{toji.wait_pj>0?"":"true"}}'>{{toji.wait_pj}}</text>
  94 + </view>
  95 + <view class="t-c margin-auto rel" style='margin-left:30rpx;' bindtap="go_order" data-url="/pages/user/return_goods_list/return_goods_list">
  96 + <image class="xc-no-money" src="{{iurl}}/miniapp/images/shouh1.png"></image>
  97 + <view style='height:36rpx;'> </view>
  98 + <view class="xc-word-color four-level-word abs">售后/退款</view>
  99 + <!--<text class="order-num" hidden='{{toji.wait_return>0>0?"":"true"}}' style="right: -20rpx">{{toji.wait_return}}</text>-->
  100 + </view>
90 101
91 - <view class='xc-hump abs'></view>  
92 - <view class="flex-verticalr xc-after-sale-right">  
93 - <view class=" xc-order t-c" bindtap="go_order" data-url="/pages/user/order_list/order_list" >  
94 - <image class="xc-no-money xc-my-order" src="{{iurl}}/miniapp/images/dindan.png"></image>  
95 - <view class="xc-word-color four-level-word" style='margin-left:20rpx;'>我的订单</view> 102 + <view class='xc-hump abs'></view>
  103 + <view class="flex-verticalr xc-after-sale-right">
  104 + <view class=" xc-order t-c" bindtap="go_order" data-url="/pages/user/order_list/order_list">
  105 + <image class="xc-no-money xc-my-order" src="{{iurl}}/miniapp/images/dindan.png"></image>
  106 + <view class="xc-word-color four-level-word" style='margin-left:20rpx;'>我的订单</view>
  107 + </view>
96 </view> 108 </view>
  109 +
97 </view> 110 </view>
98 111
99 - </view>  
100 -  
101 - </view> 112 + </view>
  113 +
  114 + <!-- 我的权益 -->
  115 + <view class="xc-my-equity-frame" wx:if="{{qy_list!=null && is_init && gradeId}}">
  116 + <view class="xc-equity-title flex-level" bindtap="go_qy">
  117 + <view class="xc-title-frame flex-space-between">
  118 + <view class="flex-vertical xc-title-content">
  119 + <image class="xc-title-img" src="{{iurl}}/miniapp/images/medal.png"></image>
  120 + <view class="three-level-word">
  121 + 我的权益
  122 + </view>
  123 + </view>
  124 + </view>
  125 + <view class="three-level-word xc-more-frame flex-vertical">
  126 + <view class="three-level-word xc-more">更多</view>
  127 + <view class="bg_right xc-more-click bcolor"></view>
  128 + </view>
  129 + </view>
  130 + <view class="xc-specific-more-frame flex-vertical">
102 131
103 - <!-- 我的权益 -->  
104 - <view class="xc-my-equity-frame" wx:if="{{qy_list!=null && is_init && gradeId}}">  
105 - <view class="xc-equity-title flex-level" bindtap="go_qy">  
106 - <view class="xc-title-frame flex-space-between">  
107 - <view class="flex-vertical xc-title-content">  
108 - <image class="xc-title-img" src="{{iurl}}/miniapp/images/medal.png"></image>  
109 - <view class="three-level-word" >  
110 - 我的权益  
111 - </view>  
112 - </view>  
113 - </view>  
114 - <view class="three-level-word xc-more-frame flex-vertical">  
115 - <view class="three-level-word xc-more">更多</view>  
116 - <view class="bg_right xc-more-click bcolor"></view>  
117 - </view>  
118 - </view>  
119 - <view class="xc-specific-more-frame flex-vertical">  
120 -  
121 <view bindtap="click_pre"> 132 <view bindtap="click_pre">
122 - <view class="bg_left xc-left bcolor" ></view> 133 + <view class="bg_left xc-left bcolor"></view>
123 </view> 134 </view>
124 135
125 - <swiper current="{{sw_index}}" style='width:82.7%; height:108rpx'  
126 - bindchange='onSli'  
127 - indicator-dots="{{false}}" autoplay="{{false}}" >  
128 -  
129 - <swiper-item wx:for="{{qy_list}}" wx:for-item="aitem" wx:for-index="pidx" >  
130 - <view class="flex xc-middle">  
131 -  
132 - <view class="xc-center-frame t-c" wx:for="{{aitem}}"  
133 - data-img="{{item.PrivilegeImageUrl}}"  
134 - data-no="{{item.PrivilegeType}}"  
135 - data-ind="{{index}}"  
136 - data-find="{{pidx}}"  
137 - bindtap="go_qy_url">  
138 - <!-- <text>qy_list.privilegeICOUrl</text> -->  
139 - <image class="xc-center-img {{item.ishas==1?'':'img_gray'}}"src="{{item.PrivilegeICOUrl}}"></image>  
140 - <view class="four-level-word">{{item.PrivilegeName}}</view>  
141 - </view>  
142 - </view>  
143 - </swiper-item> 136 + <swiper current="{{sw_index}}" style='width:82.7%; height:108rpx' bindchange='onSli' indicator-dots="{{false}}" autoplay="{{false}}">
  137 +
  138 + <swiper-item wx:for="{{qy_list}}" wx:for-item="aitem" wx:for-index="pidx">
  139 + <view class="flex xc-middle">
144 140
145 - </swiper> 141 + <view class="xc-center-frame t-c" wx:for="{{aitem}}" data-img="{{item.PrivilegeImageUrl}}" data-no="{{item.PrivilegeType}}" data-ind="{{index}}" data-find="{{pidx}}" bindtap="go_qy_url">
  142 + <!-- <text>qy_list.privilegeICOUrl</text> -->
  143 + <image class="xc-center-img {{item.ishas==1?'':'img_gray'}}" src="{{item.PrivilegeICOUrl}}"></image>
  144 + <view class="four-level-word">{{item.PrivilegeName}}</view>
  145 + </view>
  146 + </view>
  147 + </swiper-item>
  148 +
  149 + </swiper>
146 150
147 - <view bindtap="click_next">  
148 - <view class="bg_right xc-right bcolor mt" ></view> 151 + <view bindtap="click_next">
  152 + <view class="bg_right xc-right bcolor mt"></view>
149 </view> 153 </view>
150 - </view>  
151 - </view>  
152 - <!-- 工具与服务 -->  
153 - <view class="xc-tool-service">  
154 - <view class="xc-tool-service-title flex-vertical">  
155 - <image class="xc-tool-service-img" src="{{iurl}}/miniapp/images/gj.png"></image>  
156 - <view class="three-level-word xc-tool-service-word">工具与服务</view>  
157 - </view>  
158 - <view class="xc-project-frame">  
159 - <!-- 跳转页面 -->  
160 - <view class="center_v">  
161 - <view class="item t-c" data-url="/pages/team/team_ping/team_ping" bindtap="goto">  
162 - <image class="xc-center-img " src="{{iurl}}/miniapp/images/pindan.png"></image>  
163 - <view class="fs26">我的拼单</view>  
164 - </view>  
165 - <view class="item t-c" data-url="/pages/activity/seckill_list/seckill_list" bindtap="goto">  
166 - <image class="xc-center-img " src="{{iurl}}/miniapp/images/miaosha.png"></image>  
167 - <view class="fs26">秒杀活动</view>  
168 - </view>  
169 - <view class="item t-c" bindtap="go_qy" wx:if="{{qy_list!=null && is_init && gradeId}}">  
170 - <image class="xc-center-img " src="{{iurl}}/miniapp/images/quanyi2.png"></image>  
171 - <view class="fs26">我的权益</view>  
172 - </view> 154 + </view>
  155 + </view>
  156 + <!-- 工具与服务 -->
  157 + <view class="xc-tool-service">
  158 + <view class="xc-tool-service-title flex-vertical">
  159 + <image class="xc-tool-service-img" src="{{iurl}}/miniapp/images/gj.png"></image>
  160 + <view class="three-level-word xc-tool-service-word">工具与服务</view>
  161 + </view>
  162 + <view class="xc-project-frame">
  163 + <!-- 跳转页面 -->
  164 + <view class="center_v">
  165 + <view class="item t-c" data-url="/pages/team/team_ping/team_ping" bindtap="goto">
  166 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/pindan.png"></image>
  167 + <view class="fs26">我的拼单</view>
  168 + </view>
  169 + <view class="item t-c" data-url="/pages/activity/seckill_list/seckill_list" bindtap="goto">
  170 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/miaosha.png"></image>
  171 + <view class="fs26">秒杀活动</view>
  172 + </view>
  173 + <view class="item t-c" bindtap="go_qy" wx:if="{{qy_list!=null && is_init && gradeId}}">
  174 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/quanyi2.png"></image>
  175 + <view class="fs26">我的权益</view>
  176 + </view>
173 177
174 - <view class="item t-c" bindtap="contactService">  
175 - <image class="xc-center-img " src="{{iurl}}/miniapp/images/kefu.png"></image>  
176 - <view class="fs26">联系客服</view>  
177 - </view> 178 + <view class="item t-c" bindtap="contactService">
  179 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/kefu.png"></image>
  180 + <view class="fs26">联系客服</view>
  181 + </view>
178 182
  183 + <view class="item t-c" data-url="/pages/user/cardinfo/cardinfo" bindtap="goto" wx:if="{{is_dengji==1}}">
  184 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/plus/privilege_o.png"></image>
  185 + <view class="fs26">plus会员</view>
  186 + </view>
179 187
180 - <view class="item t-c" data-url="/pages/user/collect_list/collect_list" bindtap="goto">  
181 - <image class="xc-center-img " src="{{iurl}}/miniapp/images/collections.png"></image>  
182 - <view class="fs26">收藏夹</view>  
183 - </view> 188 + <view class="item t-c" data-url="/pages/user/collect_list/collect_list" bindtap="goto">
  189 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/collections.png"></image>
  190 + <view class="fs26">收藏夹</view>
  191 + </view>
184 192
185 - <view class="item t-c" data-url="/pages/user/comment/comment" bindtap="goto" >  
186 - <image class="xc-center-img " src="{{iurl}}/miniapp/images/evaluate.png"></image>  
187 - <view class="fs26">我的评价</view>  
188 - </view> 193 + <view class="item t-c" data-url="/pages/user/comment/comment" bindtap="goto">
  194 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/evaluate.png"></image>
  195 + <view class="fs26">我的评价</view>
  196 + </view>
189 197
190 - <view class="item t-c" data-url="/pages/user/address_list/address_list" bindtap="goto" >  
191 - <image class="xc-center-img " src="{{iurl}}/miniapp/images/add2.png"></image>  
192 - <view class="four-level-word">我的地址</view>  
193 - </view> 198 + <view class="item t-c" data-url="/pages/user/address_list/address_list" bindtap="goto">
  199 + <image class="xc-center-img " src="{{iurl}}/miniapp/images/add2.png"></image>
  200 + <view class="four-level-word">我的地址</view>
  201 + </view>
194 202
195 - </view> 203 + </view>
196 204
197 205
198 206
199 - </view>  
200 - </view>  
201 - <view style='width:100%;height:73rpx;'>  
202 - <view class="xc-recommend-goods flex-center">  
203 -  
204 - <view class="circle xc-small">  
205 - </view>  
206 - <view class="circle xc-zhong">  
207 - </view>  
208 - <view class="circle xc-big">  
209 - </view>  
210 - <view class="three-level-word xc-recommend">为你推荐</view>  
211 - <view class="circle xc-big">  
212 - </view>  
213 - <view class="circle xc-zhong">  
214 - </view>  
215 - <view class="circle xc-small"style='margin-left:15rpx;'>  
216 - <!-- </view> -->  
217 </view> 207 </view>
  208 + </view>
  209 + <view style='width:100%;height:73rpx;'>
  210 + <view class="xc-recommend-goods flex-center">
  211 +
  212 + <view class="circle xc-small">
  213 + </view>
  214 + <view class="circle xc-zhong">
  215 + </view>
  216 + <view class="circle xc-big">
  217 + </view>
  218 + <view class="three-level-word xc-recommend">为你推荐</view>
  219 + <view class="circle xc-big">
  220 + </view>
  221 + <view class="circle xc-zhong">
  222 + </view>
  223 + <view class="circle xc-small" style='margin-left:15rpx;'>
  224 + <!-- </view> -->
  225 + </view>
218 </view> 226 </view>
219 - </view>  
220 - <!-- 显示商品 -->  
221 - <view class="xc-goods ">  
222 - <view>  
223 - <view bindtap="go_goods" data-gid="{{item.goods_id}}" class="rel xc-goods-recommend {{index%2==0?'':'ml'}}" wx:for="{{recommend_list}}">  
224 - <image class="xc-goods-imgs" src="{{iurl+item.original_img}}"></image>  
225 - <view class='xc-goods-bottom abs'>  
226 - <view class="flex monry-frame"> 227 + </view>
  228 + <!-- 显示商品 -->
  229 + <view class="xc-goods ">
  230 + <view>
  231 + <view bindtap="go_goods" data-gid="{{item.goods_id}}" class="rel xc-goods-recommend {{index%2==0?'':'ml'}}" wx:for="{{recommend_list}}">
  232 + <image class="xc-goods-imgs" src="{{iurl+item.original_img}}"></image>
  233 + <view class='xc-goods-bottom abs'>
  234 + <view class="flex monry-frame">
227 <view class="flex"> 235 <view class="flex">
228 - <view class="three-level-word money-color-val rmb-symbol" >¥</view> 236 + <view class="three-level-word money-color-val rmb-symbol">¥</view>
229 <view class="two-level-word money-color-val">{{item.shop_price}}</view> 237 <view class="two-level-word money-color-val">{{item.shop_price}}</view>
230 - </view>  
231 - <view class="five-level-word word-line xc-original-price"> 原价¥{{item.market_price}}</view>  
232 - </view>  
233 - <view class="xc-good-explain fs26 ellipsis-2 ">{{item.goods_name}}</view>  
234 - </view>  
235 - </view>  
236 - </view>  
237 -  
238 - <view class="xc-content" wx:if="{{nomore}}">  
239 - <view class="xc-middle-line xc-frame">  
240 - <view class="xc-line-text">已经到底</view >  
241 - </view> 238 + </view>
  239 + <view class="five-level-word word-line xc-original-price"> 原价¥{{item.market_price}}</view>
242 </view> 240 </view>
243 - </view> 241 + <view class="xc-good-explain fs26 ellipsis-2 ">{{item.goods_name}}</view>
  242 + </view>
  243 + </view>
  244 + </view>
  245 +
  246 + <view class="xc-content" wx:if="{{nomore}}">
  247 + <view class="xc-middle-line xc-frame">
  248 + <view class="xc-line-text">已经到底</view>
  249 + </view>
  250 + </view>
244 </view> 251 </view>
  252 +</view>
245 253
246 <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"--> 254 <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"-->
247 <view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'> 255 <view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'>
248 - <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view>  
249 - <view class="modal-body">  
250 - <view class="modal-content">  
251 - <view class="flex">  
252 - <image src="{{userInfo.head_pic}}" class="hd_img"></image>  
253 - <view class="ctent_txt">  
254 - <view class='txt1'>{{userInfo.nickname}}  
255 - <image wx:if="{{userInfo.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image>  
256 - <image wx:else class="arrow-right fu" src="{{iurl}}/miniapp/images/user/man.png"></image>  
257 - </view>  
258 - <view wx:if="{{userInfo.address}}" class='txt2'>{{userInfo.address}}</view>  
259 - </view>  
260 - </view>  
261 - <view class="m_ta">  
262 - <!--<image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{userInfo.mobile}}'></image>-->  
263 - <canvas class="g_img" canvas-id="qrcode" />  
264 - </view>  
265 - <view class="s_sao">扫一扫上面的二维码图案,即可消费</view>  
266 - </view>  
267 - </view> 256 + <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view>
  257 + <view class="modal-body">
  258 + <view class="modal-content">
  259 + <view class="flex">
  260 + <image src="{{userInfo.head_pic}}" class="hd_img"></image>
  261 + <view class="ctent_txt">
  262 + <view class='txt1'>{{userInfo.nickname}}
  263 + <image wx:if="{{userInfo.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image>
  264 + <image wx:else class="arrow-right fu" src="{{iurl}}/miniapp/images/user/man.png"></image>
  265 + </view>
  266 + <view wx:if="{{userInfo.address}}" class='txt2'>{{userInfo.address}}</view>
  267 + </view>
  268 + </view>
  269 + <view class="m_ta">
  270 + <!--<image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{userInfo.mobile}}'></image>-->
  271 + <canvas class="g_img" canvas-id="qrcode" />
  272 + </view>
  273 + <view class="s_sao">扫一扫上面的二维码图案,即可消费</view>
  274 + </view>
  275 + </view>
268 </view> 276 </view>
269 277
270 <pop_txt id="pop_txt"></pop_txt> 278 <pop_txt id="pop_txt"></pop_txt>
271 \ No newline at end of file 279 \ No newline at end of file
pages/user/index/index.wxss
@@ -56,7 +56,9 @@ @@ -56,7 +56,9 @@
56 border-radius:20px 0 0 38rpx; 56 border-radius:20px 0 0 38rpx;
57 padding-right:12rpx; 57 padding-right:12rpx;
58 padding-left:12rpx; 58 padding-left:12rpx;
59 - 59 +}
  60 +.addplus{
  61 + width: 100%;
60 } 62 }
61 .xc-grade{ 63 .xc-grade{
62 width: 25rpx; 64 width: 25rpx;
@@ -143,18 +145,18 @@ height: 84rpx; @@ -143,18 +145,18 @@ height: 84rpx;
143 } 145 }
144 146
145 .xc-add-member{ 147 .xc-add-member{
146 - display:none; 148 + background-size: 100%;
147 margin-top:10rpx; 149 margin-top:10rpx;
148 - color: #fff; 150 + color: rgb(238, 205, 172);
149 width: 730rpx; 151 width: 730rpx;
150 - height: 74rpx; 152 + height: 75rpx;
151 border-radius: 15rpx 15rpx 0 0; 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+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgA2gPtAwERAAIRAQMRAf/EAIAAAQEBAQEAAwEBAQAAAAAAAAADBAIBBgcIBQkKAQEAAAAAAAAAAAAAAAAAAAAAEAABAwIDBgUDAwIFAwMFAQABABECITFBUQPwYXGBEgSRobHBBdHhBvEiMhMHQiMzFBVigkNSolOSsiQ0FggRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AP8AhnQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQfs7//AD9+Gj4j4XuPyzvNJvkPmo/0Pj+uI6tD4yEv3akerT64S7vVi9JEShGKD9CmbhsT6IJmXSH22ZBMycUxuK+qCMp1YYU80EZSuQRu9vRBnM+mla5fTKqCEpO58NuKDNLUIpdy/APh4IIzkDXIDjf6oMcpMQ3Pggzy1CXpXMW5IMWpK7YUQZJT6fevkgzzmCC2Plm6DJIud23JBn1JNy83QQnqBr33+TVLIMUzTeSgw6kjU5U4bFBh1JeXqUGKcm9TtdBmnqPuckcmoLXQY9SV/AIMMy54U5oMWocMTVBk1Dfd9AgwzOHigyzLnhT6oJTNOKDLM14beKDNM1OQ2KDHI0L4v5oM8iw3myDJqxhIfui5qxsfG5QYZ6Uo1FR5oJICD+t8H8VrfNfKdp8dogvr6sRqS/8Aj0Yl9XULkfxh5oP1n2vbaPZdtodn28RHQ7bSho6cRQdMAz8SaoKyLYs+N2QRQcTNAM/ZBJBGRcnwCCUywbNBJBCRckoIzNWy24IJTLD7sUECQA5QQQQJcughMvLyQQmatl6/oghM2HighMsGzQRJYOggaVQZybk8SggS5dBCZctSm10HKDiZYNnfNBJB9foCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg+Yfgf4trfmH5P8b8LDqGhqao1+/wBUOP6PY6BE+4n1AS6ZSj+yJYjqkEH+jGhpaPZaGh2fbacdLtu10NPQ7fRgBGOnpaUejTiAAAGiAg6lJzQ0FjxQcdYJZyfTkglObEkYebIJSlR3qfU18UGcyY86jlcIIzlcg3ttWtEGeUzENcHBBnnJ6vhSvizb0GWcmau8/VBGUwXL1OWbeyDFqTY8KDjigzzmDR7VL518aIMWoXvcl+CDLKRqOX6oOEGPUlhzOHoaFBi1J1o/P7YIM09QF87NfnwQZNSWFaVKDBqGo8fH9EGHVk77z5D9EGLUl5UHugzT1BQF6X4mg4fdBkmaXqcsc0GOcrl7W9kGLUl6uduaDHI3KDOgjqSDUqB62QZJGhPHxP3QZZmjZ7eqDLMuWy9UGeZq2SDNIuUEJmrIM82ffig4Qffn9r/gT2fY63zfcQbX77/K7R3Bj2sT+6bFv9WVjkg+1EEpnB6ZbxyQcIIG529yg5LAF9vCqCCCMqyO21UE5FhxogigzlBGRc8LIIzNhh7oITNGxKCJLAlBAlnJQZzmUEJFyTs36IM8i5JQSmcMroITNGz9kGeZYNmghIsP19kEUBBCRc3cYIOH/czYX2wQfAUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQftT+xf4h/wP45qfP8Ad6Zh8l8+Iz0eoSEtD4yBP9AN1EP3Uz1uAHiYg2QfePW7nHfign1GNXPrszoJyniGJdBIzf8AacKvtjVBKcq7hV0EDOlL70EJyIpXO59EEZyBetbb/dkGUzILPTEb8eaCGpK+9/AIMstTpN6Y8a+iDNqHyD8UGOcmrifZBCU3D0pl74oMxLAlBmM2o537kGec3BOdPC/JkGCcqEvWwb2QZJTYnIXxfHyQZZ6hLk8ftkgxzlQ5nb0QYtSV91Bx/VBh1Dv3nPmgwahtm7oM5mGIrkNnQZ9Q/XbFBi1JXONggyTNhzQRkWHkOKDLqHDn6oM2ocK2tmgyykCScN6DMTcmmKDNI0Js78n87oIE3OzlBmJYPtuQRJckoP7n438Nq/O/L9p2EAf6c9QT7iYBI09CB6tSUiBRxQbyg/V+jo6XbaOl2+hEQ0dDThpacRYQgOkIKGlUGdBzIsDtVBFBKdwglIsOOxQRQRmXO4bFBGZwzQRkWH1QR3lBnQRkXPCiCEzVsPdBCZsM0EZlhxp9UGeRYOEEUECXJKCEi5PggzzLnhRBCZq2A80HCDwlgSgggg5d8UHwZAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQfOv7dfic/zD8o7H42UZf7HSl/vPk9QAtDstAiU4EiUTGWvJtMEVBk+CD/AEDiNPR04aWlEaelpwjp6WnANGGnpxEYRAsBGIAQeSk7Mc39EHBm4Y3wwf2KCRmQTZtsigl1AuXtUkeKCJm/7Tc148UEZyYu7MgjKYLtQnd4oM0p9J3Cp+iCE5UoQSTu4oM0tRnfC1cbIM05PwuT5oMk9TDAkoIakrkYBhtxQZSWBKCcpOGCDHqyfe9H3XsgxzmxIo1vIoM+rJvXmgwzLBs0GGcmrmc/HxQQnJwSDYNwPiUGLUkwvvPsgw6kvOp4IMM5Y1qWG67UQZJyIOTY02CDOdQl8z5BBmmatgNq8EGUlySgjM4PQetcUGWcrmrcnQZNSRvmfD0QZpmjZ+n6oM8zQcfY4IMszgghM4eKDPM2HH6IJoP0N/bT4D/jvi5/K9xpt3XyYB0uqLS0+0j/AAqQCP6pPUeSD7KQcTNGz9mQSQSlIGz3QcGgJyQZ7oJTNWemPFBMlgSghepQQJckoIzNWyQRmaAIIyLDb6FBnJYOggc0ECXLoIzLlstigzzNW2dBGZYNmghIsPJBA2PAoIIM5Ll0BBKZLtggjMsGz9EEkHwdAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQftr+zX4kPxv8Zh8h3On0/K/Px0+71OqLT0exAJ7PQe464n+obfyY2QfbnXWpdrHd51qgn1kOcMkHEpipfk77BBI6hZj40Zhm+ZKCUp9NPHhxQSMgXlzugiZvSg90EZyY7hnmgzym9uJPjSwQZpanTwtzzCCGpKl6XPqPFBkOoRQm+7xQZpyufD0QZ324oOJmjeW5BjlM1Nn2ZwCUGfUlj4IMGoWzpt7oMxngTlh5+KDLqyuHd3ZrM6DDqSvutx/VBkM2LbeHBBm1D5knkgw6kr4vQbZIMepJuVeaDDqHDE1O3FBk1Js+VqZoJSkCDWpP3fgglapQZZmmb5+3BBmmaN7+2SDJMgnhtbcgzSLl8B6IM8i5JwHsgzk1JKCEi5O6iDPIueFEHyP8T+Dn8/812vZ9JPbwkNfu5ABo9vpkGQLuP8w/t5oP1TCENKENLSiIaelCOnpwiABGEAIxAAAYABB0ghIuSfDgg5JZBAly6DiZwzQSKDOgnM2D8fZBGRYeSCKCBLkmyCEi53IIzNhttRBnmbBBCZYNmgiSwJQZzQbBBBBGZc7gghMueGxQZ5mrc+aCMyw4oJIPCWBKCCCBLl0HD/ALmrb78bIPhKAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD7E/tj+Jn8s/J+17fWgT8b2Dd/8AJyZ4nt9GQ6dCoYnudVoNfpJOCD91GQAaLREQIxiAAIxiwjGIDACIsg46yzeaDk6jBiRXdVBOUmI80E5S6i4wp4cggiZu4euGZrfOwQSlNqN7IJSlV3o9N2zIIS1Oqn3oMNyDNKZDy/T03oIykCzHj5IMx1MKC/FmN6oMupK5G4DYoIEvflu3IJTNgOJ9kGczcY5cqtmgy6km4D1QYzNnGVd+TcAEGbULDdjyqgxSk37t428EGeUnBLkgUwx4UxQY9Q8AM/r4oMM5MCbE7FBl6xWm29Blma8B+qDFqSfia7mQY9SVSciw8UGPUPmX28UEkHEzRt/kgyTLnhTzKDLqEhzkaPx+iDNIsH2dBnkWBQZZmjZ+iCEiwO/9PdBnkWF2y5V82QRQfpH+3f4//wAP8MO87iHT3vygjrFwOrT7b/w6e7qieo8UHz9BzP8AiUEUHEzRn4jbggkghIuSgnM0Axd0EkEJVJ4oITNeCCUywx29EEJFh5bckECWqUESXLlBnJckoITLm7jbxQRmbBBnmcOaCRLAlBnNAeCCCCBLl0EJFycsNt6DlBxM0bNBCRYcfBBAlqlBFy74vtyQfDkBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACSAASSWAFSSbADNB+3P7V/io/FvxnQPcQ6fk/l46fyHfOP3acJQfte2NAR/S0ZOQaiUjkg+yZTIoNz+H3QcmbmlPXA+yDky6jvseWW6qCX9Tjt6l0EzIxYOa70EZFyglKdKGuG76IImTUOPmfq4QZ5yYkirnk2+yCUpdXi6DOZFyxZ6X9PBBmmak3w8LoM5JLbZ/VBOZIZkEZzcOMbbbkGOU2JrQbb8UENSViTvPsgwTkXpTHxdBDUk4fO3D6IMWrK92tzrVBilJjTC+W7egjqFwd5+/sgw60hbZ8UGKcmxIa6CEpAxxr7HFBi1JXOdBuQZJnDm+WzIMki5dBKUi7A8droJSnib2bHYoM8jQ1Y1KDHMuWy9UGeZr5efkXCDPM1bL3ZBlkXJQRmXLZfb3QZ533D6AoPln4T8CfnvnO30pxJ7TtSO67w1Y6enIGOm+erNhwdB+oWAaMR0xiBGMQGEYxDAAYAICCM747ZIOUECXJKDiZYcafVBFBAlySgnM0bP2QRNEEDWqCMi5pam3mghM1bJBGZYUz+qCEiw3nYoIEsCUECcSghIuSfDggzyLn04IJTOHNBnmbDdXbkghMsGz9EEZFg6CCAghIuUEZmrPb1QRmcPr4oJIPh6AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPs7+1X4r/8A0n5Lo63c6fV8Z8R0973jj9mpOEh/t+3yJ1NQOR/6QUH7Q6wTWn2sByQcibXc1ug562Bff5oODLpG1Q4dBOU3Zt/09EHEtQEVwNRvdkEDNgxN9vBBEzrSw8EEZzcUJqX4B/KyCRkLE2Fq0CDPKbF7PluCCE5XIfC+f2dBAyJDFBORZstvZBDUlcvu5eyDKZs4GD+KDNqSz4lBklqByCbtyy3IMs5Y52rbggyGdS1RggzaknJfCpPL2QYpyvmduSDPKd8xT7oMmpKpfCp4lBh1JEnjXf8Aogzmd91B7oMszVq5/ogxzljStG5IM5sUGeRYE76YoIIJTOG+nhUZXQZCbnmgzylc+iDNOVz4bbkGclgTdBAl6lBC5oCXNBjU0HFB+nPwT4D/AIL4LSnqwA775Dp7nuSR+6EZxfR0cx/Tga7yg+ZoPCW25oIIOJlg2J9EEkEp34IJyLAoIIIyLm9MEEpmjZoIksCUEEGcl8+dUEZFzRBCZdmP0/VBCZwQQmWDYlBCRYEoIoM5NzzQQJcnifVBCZc8KIITNQNq/og4QcyLDYIIoM6CMi5vTBBN/wBzbvO/og+IoCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDqMZTlGEImU5yEYxAcylItGIGJJKD9tf28/Gofiv432na6kBH5DvRHvfkpN+4a2pH/AC9EmhbQ0yA2BdB85Mw1L+iDgzdsCDnuyQeGb0JAbk/sUEzPpLYZPj90EzMhy+25BOU8QQSUEpTcPSjoJnUDNYnPHdmgz9d6PWlUEpSapxNeGJQQnMFyMA2F/wBUEHoBgEHEpdLbbVQR1JuHHAeaDKZAEg4fR0GbUlXm/DKqDPLU6hvty9EGLUkxPFhyQQnOgOQ8z7IMWpLpFzyvlmgzSm4Ob8dqoMupJuXIlBjlNiwrmgzahoBzQY5m5BZBjlJjStPOqCOpK+Z9EGSZctl6oIzLBs/RBlma7hv9Rmgy9Rd/0yQTmaXq7oM8ywbP7IM8zht93QZZly2ToIzJFKMUGeZYNifRB81/APx//nPm9PU1odXY/H9Pc9w4PTOcT/kaL/8AVMOdwQfpiRwFhTbgg5QcTNGz29kEkEZFyd23qg4kWDoIIJTNWy9UE5Fg/hxQQQRkXO7BBCZq2XqgjM0Az9kEJFonw8UECWDlBBBAlySghIuT4IITLlsvsgjMsGzQQmWHGiCBLAlBAlnJQZ0BBKZq2SCEzg/EIJSLB9ue5BnJYEoIPV8boPi6AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg+1v7Tfi/8Aznz4+R7rT6vjvhunuJ9QeGt3ZP8A+No1BiekjrIyCD9bf1CSSaufAe6DzrY0sWvhm1UHBkC8sMPQIOeoEP8Arv8AJBzKfUL1fxCDgyoz2ryqgl/UAvmwI8qFBGcmIaznbcglOWPD78wglKVm28EETPCrild1fBBF/V0HMpM3HyCCM5YncP0dBlM7h7YHNj9EGect9Tt7IM8pOHu9PLwQZDIufD78UGeZrhTY+iDIZAEh86l3Z/DBBk1T4EnysgzGRBLEF7VdsPFBn1DhlUoME5ZUc1bkb3xQQnKj428DWiDJqFtzB9ggw6h8y6CUpUrgLbnQZ0EJSeuAfbwQZdSQri7ttkgyyk1rlBMl6lBCRrVBnmandtuQZTWqCMi5PlwQQIlOYjEGUiRGMQHJJLAAYkkoP1P+GfAx/H/g9DRnEf7zuQO672X+L+rqAdOkammjBo8XQfJkBBAkkuUHJLBBBBKZq2SDhBAl6lBGZsNsvJkE5Fg6CBpVBnNaoISLl0EZmoCCMzQDM+iCEiw45bWQQkWBQZyWBKCBrVBGX8ighMuWy2KCE8BX2/UIITNGz9P1QSQEGdBAlycNsd6CUzgOaCEyw4oJIPi6AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCmlpamvq6ejpRM9XV1IaWnCNZTnOQjCI3ykWQftT8M/H9P8AGPx/svjYgf7qcR3PfzA/dPutUCUgf+nSB6RwQfLOsNvbzsg5OoWbHPnkg4Mmo98Pte4QeGYDb/RBwZ1cWGZ9UE5TIqDc2rWtfBBOUnHmQgl1jF3FGy3IImT/ALSd7IJGZelskHCCcpUo9fJkEZSYGtRQeFOSDPKbU8sAgzTOGzIITk4u70HjVBmlOhANfv7oMupJv+2vP2qgzym8fUcMkGPUk1d+NaYoM8pY+HhRBk1JX31NOdEEJycULvQnlaqDFqG55W5YMgy9QqMtm4oM2oXN71+iDJM1OQptzQZfdBzIsN7U8vqgzTNGxO1UGWZq2XugyzkHfB2FNqIJmYb2+u5BGVibenBBkmcOY4/RkEZFh5IISLAlB8+/tx+P/wDL/Mjvu40+rsvjDHWl1B4anck/5GncOxBlj/FB+kJmjZoJIOJlg2J9C6CSCczgNmQTtUoIEvUoOJlhxp9UEUECXLlBKZsPFBCZo2d0EJFggigzoIyLnhRBCZctl6oITItkgzzNhntRBIlgUGclhntzQQNaoIEuT5cEEJfyKDlBxM0bPbmghMsKbfRBHyQQJckoISLn2OBxQcoPi6AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD7c/tJ+N/8n8xP5nudPq7P4iukJAGOr38x/lhi7/0YHqszsg/TxkSXt9rPhRB4ZdWVMUHhk9CR41y9kHPWC4e2Zog86w5pb1yQT67xJv7nDig46w7Vvy9UEjqdJvQmgO1EEpSIIaoZBwS5JQeIJGbjLPggiZs4bhlxQZ5TY54nigz6ki++7+SCEpOCSXem2SDP1gFvNBlnMiRO6uRQQ1JPzL0QZDIuSNrD2QZdWV67h7oM70bAIMuoTXB+fKpeiDKZ3bkf1CDNqFuQJ28EGOUgKnEoITLubbMEGOZsEE0EpmrZeqDLOVTuttvQZJlhvOxQZJmrZIOEEp4Vw2PNBlkXKCM2enP28igmIT1tTT0dOJnPUlGEIgEmU5npiAAHJJKD9W/inwcPx/4XtexYf7iURr95Ojy7nUAMwSLjT/iNwQf3ZFycth7IPEEZlzZsPug5QQJdBOZo2zIJIIyL/TLPiglMsOPpigkggSSXKDPIufRBGZqBzQRmWDZ+iCEiw45bWQQJYOggTcoIEuSUGeRcv4IJTOGV/ZBnmcPFBCZYcfTFBCRYY8kEUBBCRc55cEEJlzemCCMzhmgkSwJQQQePVtzoPjCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILdvoavda+j22hAz1tfVho6UBeU9SQjEeJQfsz8X+F0vx34Tsvi9Lp/qaWl/U7qYZ9TudX92tMkXYlhuQf3wSLfZB51/wCJ7b8RTEoOTMVL1yte6DzrDP5Uf9EHJm7M4z9kE5agk5xA96HzQcdYY4FBNybklAQcGYBbxKCUpVqTWnLegjKZBvSwyz9kEZyYUO8tfcghOQIcG9/fggzmYILGu/bJBnMmLXp5oM85t6koM85PR3e/igzGdKXs+7xQZdSTF8Rbeb+6DPOT1wZ8eaDIZMXOJOzVQQ1JX8Bz5IMZmxphfbcgjqS832dBi1JMeFAPVBGUgWZBlkXLoIykeqmG3ugnKTOcSgyTJt47XQZZy8AgyEs5KDwSBG+tOAQZ5EgUugiafeiDOTclB9k/2y/H/wDkflJ/L9xB+1+MkDpdQBjqd5IPpgdUSCNGP7qEEFkH6GkWCCCDwlgggg5kWB3oIoIyLnba6Ccyw479nQRQSmatkgjMsGz+yCEiwKCNqlBAlySghIufJBCZctljighM2Dc0EJmgGfsghMsN52KCJLB0Gcm5KCMi5JQQmXLZIM8zVuaDhBzIsN5ttuQQJYEoIIIyLndhb2QQmcNvVBwgh1fu6t+w8EHx5AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEH3D/AGm/Hv8AdfIanz3cwfQ7AnS7MSdp93OP7tQWf+lplhvO5B+husOz38K58UHvU2ND4fRByZAMHv4ZIPDNiMR929kHhnWlQg56j68n9UHKAg4lJrVr6e6CZk9bNlu90E5SpTHFBGUnDvgw4oImRNCeW6iCMpuG4eHtZBnM3cDxdBAzY7h5lBDUlXLF3wyPJBDUkSBW/p90GaUgxGNkGaUiDTD3QZtSXNnJ4oMxkSG3+WSDNqSYvfBBCcwz4jZkGOUmfNBGcqEngNgyDDM1uCANqoJGQZwa4IImxQZpybiS6CcpO2DOgyyNztuQZJyIpm757FBmmcOb+yCaCMiDZ9skEZnBuBfxQeaWjq9zraPbaEDqa2vqw0tOEQSZTmRGIAFSSSg/WP458NpfA/Edp8dpiJnpwE+4mP8Ay9zMA6s3YEjqoHr0gIP68zUDL3QcIJTNWyQcIIzv+iCcjQ4YIIoIyLlsAg4kWDoIIIyLk7qIITNWy90EZmjZoISLA76IIEsHQQQQkXJOHsgzyLndggjMuWwHqghM2HNBGZYcUECWBKCBzQZ0BBGZctgPVBGZsP1QRmWHFBFBAlzd/JBOZo2e2aCSD4+gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINPZ9rrd93Xb9n28DPW7nVho6cQCSZTkIuQAT0xucgEH7B+C+J0fhPiuz+M0AOnt9KI1JD/ya0g+tqm9ZzJKD+sgICAgbbeKDxw7PVBwJ3fkg5M3DG90ETO4F89sUE3uHvdBMzP7hxA9CgiZgFr38UETKt26vNBGU2N2wzHFkGeUqu9Ba+zoIzlS4rUnbeghOQIu7tyCDOZ3GNQMkGYzIJA2KDNOWHiSghOTsHO++5roMpkXLcMDT0QZ9SV93r+qDOZEgDx3oMs53PgNnQZ5SPThS2CDJMsGzQSQcTNGzQY5SBJOAQTlINe9mQZZnDKpQZZFy708GH2QZyXPog5Joc2ogiS5dBnkam5alq+SD7S/tf8Aj/8Au+/1vnO4g/b9iTp9p1Cmp3cx+6YwI0Yf+4hB9+EsCUEEBBnNSg8JYGtWLIIIJzOHjT3QSJYEoIIJTOD02ugmSwJQZyWDoIkuSd6CEi54UQQmatkghM4ePsghP+PE/f2QQkWHGiCNqlBnOzoIEuXQRmatl7sghM4YbXQZ5mw5oJoPCWDoIGlUECXLoITLnhT6oJTLDigkghIuX29Sg5cOz1QfwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBB9y/2q/Hxqa+t+QdzD9mh1aHYCQpLWNNXWi9+gftG8lB979e7Hy+qB10314eqDzrLb9uOCAZkjLP7IPDMkN4nayDjqer/AKIODqPm+9B4ZuA1Dig4lN/3XwpsUEpSqCC33QTlIs5qUEpTxs36+qCMpZHbegnOVHx8sOd0EJzpm18HPmgjKTgBq4oM5m4Ia9uH1QQlK4HDmgzymxYYX23IM85NjVw/jTxKCE5Uvervh6MgzmQYsa+aDNM2HP6IITlhnUlBk6zhTz9UGfUJruFPBBm6ixG90EJFzwog5QZ9SVzxAbmyDJM0bNBElg6DPI0Jx+qDNItE76bckGeUukbyg4lIFmQSkW43HLDmg67Xtdfvu67fs+3iZ6/da0NHSiA5M5yAFyBS/BB+svg/itH4X4vtPjtABu30ojUkA39TWIfV1DUl5T8kH9OZo2aCSDiZYNn9kEkE5nDJtvBBM0CCBL70Epmw5oJGgJyCCCCUzVsAgjM0bf5IISLAoIEsCUEEECXJKCEy54IITIJAydBCZsM7+SCMywbPYoIEsHKCBNzxOxQQJckoM5Ll0HiCUzYZXQSmWHFBAlg6CBqdigjIuT9G8UE5Fhdjt5oIoJ9X7vK2+17oP4aAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDb8d2Ot8l33a9j28TLV7rWhpRarCR/dM/9MIgk7gg/WvxXYaPxPx/afH9tER0u10owsAZzZ56kmAHVORJO8oP6PWdyD0zyHig86y/ttZB4ZF3FNt+KDwyxdnyKDkyA22og5665jdyQcGZs7O7Wtkgn1gOHP1QT6jUHHy+yCcp3D4PnW3iyCXUWZ9tggl1itC+CCJncZVwqfsgiZ4E4454h+aCJkXLGhoPqN6CMplyBwxdBnlIiVMPPHgghORelHqfFBDUkSw58kGaUgxY7kEDIAttvwugy6sq3pfbkghOTi7v7IM8pEGmW9Bm1JVud9fXkgzdZrvtuQcE3PNBAlyTtsyCMzUBBlnK5uHt4B0EpSBjTc/qgzTJdqj3QZpmp8L3QZ5FzTbhuQcoJTNWy2dB9uf2t+A/ra2t8/3EAdPQM+27EEO+sQP62sK/+OJYUudyD7xQQkXJQeIIyLnhRByggakugnM0A2p+qCSCEi5dBOZo1N+f6IImgJyQQvUoISLkkIIzLlsB6oITNhz+iCMyw4oISLB/BBnJoTx8UEEEJXPE+qCMy54eqCEzhz4oITLBs0EJFgUEUBBAlySghIueFEEZnDO6CMiwpdBFBOZwQSJYPXl90EEH8dAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBB9zf2x+DEBrfPdzCp6u37ESeg/82sAz1I6RudB9xde9waHHA+yD0SIsabeKD3+oRcip25BA6yL7fog862DE3oNuaDnqDs9UHPWK7qDz8Ag563DWLCu96oODJw5LgbeKDiUqUY4Hdkg4lqY2CCR1K5uz5/SyCcp1d2wHBiglKTMxDXPrXcyCUpMXIv65MghKQd7Ph4IJTkxFaBvH3oghqSYu+b86PTegjOXiUGeUqE3f3+yDNKQYtXDx+yCLitbX9kGaRZq1eubc0ENQ332ptggz9QZ3cDb3QZZzL77lBDUk43n6oIoOJlg2aDOZsWZBGZoTiW28EGOZq23NBMkCpQZ5GhPHd4cEGeRLE0dBBB4dtigr8f2Ov8AJd923YdtEy1u61Y6UBk5rIlmAjGpQfrT4r47Q+J+P7T4/twBp9row03AbrkB+/UO+c3KDdIsD4IIoOZFgd9PFBFBxOTU97IJIIyLl0E5lhxogigjIufJBGZw2ZBGRYHfTxQRQZzmUECXJKCMy5bL1QQmbDmgzzOHMoIyLChY+qCBLB7oIHE390Gc1qgjIudwQZ5lzwog5QcTLDjigiSwPlxQQOZQQkXJ8BwQRmatkgmSwJQRJckoJTwH6oJoP46AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIP6PxPx2t8r8h2vYaIPV3GrGMpAUhpgvqahyEIAlB+o+x7XQ+P7Xt+y0IiGl22lDSgKWjGpJo5Juc0Gtw7Y5IOnLM9EHhm7B38MBiUB6M9B5bOgGVK4Ybvug46w3C4PtzQede79EHh1GrhtWiCZm37c77kHPXUjixw8sEHBkSGLIImYIN93sfFBN8HtvsglKZNNmQRlOjiuFsm4IOJScbr/AHQZ5SfcBtdBCUnFsUEZTcXfDkQSgjIsPTigzmQAz2H1QZ5SrXFygz6k8ccr0QRnOm12QZvRBnnK53sEEZFzt5oOUEZFya0DoMpqScyglqSblXnggyE4k3QTnLDm/oyCEzRtggyzNWwv6oOEE5tQYoPub+134+0db5/uYVPV23YCQ/w/+fWAIetIg5Og+5kEpmo4eqDhBKZq23LxQcIIyLncLIJysUEUEJFz6cEHEiw+7IIoIEuXQRmXLZIIzLDj6YoISLRO+m3JBA2PBBAlnJQZ71KCMi5O6iDPMucaUQRmTao9DRBGZYcUGeRYcaIIoM5rVAQRn/JBGZsOZ9kEJmnEoIksCUEEE5nDx9kE0ECXJOaDl6tudB/IQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBB9zf25+GHb9tqfMa8f83uX0u1cVjoRLTmHDj+pKxyCD7QEgX3IPQQbFA6xUu5x3+xFEDqBq+3BB6+INEHJmxuS92/WtEAyA8H23oOeu9OH3QcOSGeldjzQcGVHuXzrzyog5M7NxP0QTlNjUs/s30QTM60s3nnyQSMgLm4f382QT6zUYF23IImbOGrVvbxQT6iIkG3sggZEhtuCCRmGOeH1yQQMgxzGGKDOZByHrWu/wCqCJNd5qyCEpAnyCDPOVzgNigjKTs2Ww8kGYyJfI/b6IM8i54UQcoJTNWyQRmaAZ7e6DLKRehoG280EdQvzLoMszVsroOEEJGpOCDOS5JQeINnxPxut8z8l2vx+gHn3GrGEpB2hpiupqEsemMYgnJB+sex7PQ+P7Pt+y7eIjo9tpQ0YRH/AEipxrKTk7yg1EsHQQQEECXLoOJFonw8UEUEpmoGXuglIsNtrIIoJTLkDJBGZYNmgkgzkuXQRkXPkgzzLnhRBGZsPH2QZ5mw5oIyLBBA2PAoIIIEufTgghIueFEEJmvBBCZwzQTQeSLA7VQQQQJckoISLnDltdBGdgNqfqgmggS9UE5kMz33P+iCSCL/ALn9xwuzMyD+agICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIP6vwvxmp8v8l23ZQB6dSYOtIf4NGNdSRy/bQbyg/SGhp6fa6Gj2+hDo0tCEdOEcBCIAAo1UF+sYZ1cYbqoOjMCorXgUAzFN/l4OgdQDb+H1ZB71AY3Hl90HPWK3pbbJB5103+V0HJmdwxQcmVXJZ+W1EHPUASPNBx1mvkef0QcGRILl2wQSMywzxQTnOo8OQvlWqCZm5pRvdBMyANeKCJlWpu7c8EETOpaxDffzQRlJi3nkghKbGt2v6OggZAXxdBGRrU4sMkENQh72pzQRmQ19/KvK6CEpMKEPa/mgzddTlhtk6CaDwlgSgzmQdiaoITlchzk+1kGdBCUnJPIe3igzEuXQcTLDigzzNGzQZ5SZvr7IOTNxvx80H3h/bL4E9t2mr85rwbW7t9Hs+ofuj28T/makX/APlkG3hB9rAkWKD2WoLWONrfVByg4mWDYn0QSQSmXLZIJksHQQQSmatltyQcWqUECXLoISLkoJTNGfiEEZFg/ggzmgJyQQQQNSTvQZ5FyUEZly2SCEzhzKCMyw44oISLA8GQZyWBKCCCBLklB4gnM2HNBCZYcUEJFh6IIoISLn0QTmWDZoJIIyLk7t6CUyRbF9ggkg/noCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD7k/A/if8AZdjL5LVh/n98B/ScF4dsD+1q1/qmvBkHz8TbMvvsd25A6zWnDd5IOusP78vqgCYxog9EgSyDwzDOPDmgGYFqoPOutqeaDkzJJDs+FMkHhlSth+iCZlRxnb6oOTOzbj9sEEzJj0ve/KyDkzDnar80EDL+RxHr+qDiUnG2xQTlJq3KCEpYnBkEpyc8KvxQSlNjmTU8PqgjKQepZ0EJSc3pggjM1bL3r6IITNhh5/oghM0bE+mwQQkWFOF9qhBFBzIsHQTlJ42rfwHugzEuXQSmRbFBmMi5GFvIoIzLDj6Mgh1AFj9kE5FzemCDPIgknDNtwQZpXKD+x8B8Tq/N/K9p8fpg9OrMS1pgP/T0IV1Zn/tpxKD9Tdvp6Xa6Gj2ujAaej2+nHR04gACMYBhbh5oNAL2QRkXJZAEiLeCDyU4k5NSvigWqUECXO3nvQTmaNn7MgkS1SggS5dBOZo2aCEiw8kEUEJFz6cEEZmwyughM0bnyQRmSBTHFBnmWHGnkUECWBKCCCBZy2aCEy54UQRmcOaDPM4U90EZEgUQRQeGgJyQRJcvXmghIueFEEJmrZeqCUqRO21EEUEZfyKCciwNaoIoIzLnGhKDlB/PQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQf2PgvjJfLfJaHasf6XV/U7iWEdGBBm9Q3V/HiUH39pxjpwhp6YEYQiIRiLCMQIgcAEHbnba6DrrOXD7oPeum/wBUDrpkfHmg96xTl9/BA6w+7OqB1hyg56yzefNBwZYk2De3ig86g97/AF+oQeGYqPPDyQSMiQ2xqg5lJqnE123IJynlZjt5IOHvWuNfVBIzdw236IJk0JGHrkglKZI4V8EEZSeIY3uNt6CM5Gla25N9SglKQqTbBBGZqBlt7II6lhx9AgjOVCTewZ0ECSzmrA4oM/ugIJTLlskEZ2HFBAyYgbbkEJyLE47eyCCCMzfc/Cn1QZTUk5lBzIsDvp4oM8iw40QRQffH9t/hB2Px8/lu4gB3Hfj/ACDIVh2w/i2I/qyrwQfZDvXOvig8MumuPgg8jIG9/JB6SwJQQQJTIDEkv7IPAQbIJSLlBKZo2e1UEkEZlzhRBCZLtggjOyCJLAlBC9SgjIud2CCEzXGngghM2HNBCZoBn7IITLR40QQJYPlsfJBAkCpoEECXJKCEi5KCEy54UQcIOJlg2fogiSwJQQuggS5JQRmagYXQSkWBQRQSmagIJksCUEL1KAg/noCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPt/wDD/jB2HYf7nVi3cd8I6lRWGiK6cXf/ABO5QfMQcj4fZB65pW1tuSD3rO3NB117qY+6B11tTzQe9Y+lN3HNB4J0rUvs+CB17kHhmXpSjffig4fB+T+yDzqDO7t9fqg5MxhVBz1nLhtigmZXc238/N0EzM0amaDgyD1IBKCZmxIG2xQTfB97P5oIyk4ZBKUgxY1BQSnMs/IcW5XZBGUgdwGJQSmSGbH2ZBCci2808kEZSo5wQRlJ6Nig5QTMmkcrUQRmS16k/qgiTjkNuaCBLklBHUkBQ0A9UEyWBKDLM0bP0QSQSmas9sN6DNIudw2KD+3+OfET+a+W7bswD/S6v6vcyH+HQ0yDOpBDysOKD9ORhDR0tPR0hGOnpwjCEYswjAARAAoAGQeiRCBKb0pw2NkHKDmUyKYXQeiQP0N0EpFyUHBkRE182rnxCDkTGPkg4kXL4YIJyLC7ZIIoM5qSc0EpmrYcdqoIzNAM/ZBCRYcaeKCBoCgggzmtUEJFyeNEEJFzwp9+aCMzYc0EZlhhWiDPIsN+CCBLAlBBAQRkXPCn1QRmcPH6IITLDigkggS5dBKZsOaCdkGfyQcTsz8s0EkHHV+5vYv9PsgxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/t/AfGn5P5DS05B9DSI1tc4dECP2WY9cmDZIPumMoxiAAwiABEYAUAGFAg7EhgWzenig6citkHokQXu6DoTzCB10tVB51lrV8kHvX98fcIPOs132bBB51SzQeGRNbUA24lBz1AFnQcmdHF3b7oODImzjmg5Mq1uat9HQTM3DNdBMnEn3QcGbGlUEjIPXFygmZ1LcvrwQRMgziqCRkSKmgQSnKgbGqCMiw34bcEEZSxOA8/Z0EpSBZtnQcIPJWP67OggghIufQIJzIZtm37kEOoVrba6DNM+J2KCSCMi5O6iDlBmkaEnZ0EEH3z+AfCx+O+M/32tER7rv2nVuqHbj/TjYEdV+aD5z1F3dB0JjHxwQcc7WQe9ZiK1G9B4T1EkIOZFh6cUHEZ4Hx+qDyZBZq7fZBKRYHwQSBIL7WZB5LUBLUDPsSzIOJSDMMUESWBKCBNyeJQQJckoIzIfhdBGZoAgzzNGz9EEJFgd+x8kGeRYeSCKCBLklBCRJPCyCEpPTLFBCZw8UE0HhLCqCCCEi5PFBCZc8NvFBKZYNn6IJIM5Ll0E5mwwv9kE0ECXJKDklgSgl1F35Ng2TIMqAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPtj8Z+P/4/sI6k4tr9106uq4qIEf5cC8QQ0S5GZQfJescEHTg2IQevg/JB6CRQHb2QddZbfn9kDrOSB1n7bMg9691UHhmSzUQedUs0HJlmT45/qg86hd7+u9Bx11OW79UHJmSMqu74IOTIO5Iqg4M7t9kEnwfkg4lJhS/p7IJmTn0QTlJqDx+yCJIAJyQTMyQ1Pt9UEZEdN725GqCRkw3DBBKUnFMfr4IOEHhLAlBBBGRclvXJBGZsOaCUpYnggggjIuXQTkWG1N6CBkAz4oOJlxQiqDPM2HNB/e/F/iD8x8toaEg/b6RGv3Jw/pwIaJOc5U4Og/RTR04RhAGMYgRiBQAAMB4IPBMi9R5oEpAgM93QBM42zQdSkGLY0QTBIsg8Oo9CRT9PFB4SwJQRcgliblAlMSIGIuN/6IOSWDoIIJmdd21Qg8lIGgPFBGdtrIIksCUEL1KCBLklBnkXJQRmXLZIM8zVskEZlg2fogibHggzksCUEDWqCBqSUHiCczggjMsONPqggSwJQQQRkXJ3U8EEplg2aCSCEi5JCDiRYHP6oIoOJlhvQSQZ0BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBB/c+A+P/3/AH0OsPoaDauq4pLpP7YZful5Og+14yalxTkyDoTBvT0QeiYJyOG9B11PV+boOhM3dxyZAEyDnu+mSB1lB117qoPOs7vD7oPOonHa/FA6jTdtVBz1XD3qd+zoPHGY8UHJmzNV6oODIl605IOSTiXZBwZscxuQTJJet9hkg46gQTltvugnKTtfeMEE5TY8vs2DWQSJck5oIylcNzQTJYPs6CRk4a2aDlBzIsEEjIm+GxQSMwQW4Vb6oJOK1tdBA3ONboJTNWyQTkWDoIIJTNWy9UGaRc7sEHNkECSTvQfe34X8P/xnxcdXVj0913vTrar/AMoaZH+VpmpZol+aD5aZkEgGj24XQdCYO7j9UE+ouSMcEFBMHcUHEpF6HlSnHwQeidK0LX38M0EyXLoPDPpDGoPkzIHUGe7XQRJq+90Hkp4F61fBBzKQ6b3FOaCKCBJJdBM6hJrUPTAeQQeTkCwB4oITLDjsUEJFonw8UECWDoIEs5KCBLklBGZc8NigzzNWyQQmTbBBCZYNmgkg8JYOgiak8UEJlzw2KCMzhzfxQSlQFBBBGf8AIoJzLR40QRQRkXNEHKCMi5PgOCDlBnQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHzz8T/8A1e5/0/8AXjb/AFP4f4/+n/080HzGP8Re+HFB2gIPcMfbBB3/AITf+I42/wDt+6Do/wAf8WFv5fqg6QEBB4Lm+F7ckHn/ANX8tv8AtQTnfHnxKDk3N743570BB4bG/K/Legn/AID/ACwvbkg4QcyxvbC19uSCKAedxbj6IIy/kb3x2sgmbm/8cOJ80ETc3vjfnvQTn/HH+WPNBNAQTnz9sfNBGX8TfkgiggbnifVBycL3FvfcgzzxvfC/8sN6Dif8Re4vexvvQZpfyF74cv8A3IOTfHndBmQeS/ifZB12f/7fbf6f+vo/6v8Ap/6kf5/9GaD9KQ/hD+P8Y/x/jYfx/wCnJB2bm98b896DmVvC17iyD0WHvfmg9QEHM/4nl6hAjbHnww3IOJ3GwQcYi+NuBvuQEEp35e5QcIPDbHldBA3N743570GdBx/iP8r/APbYX3oOZ35e5QQnYXvy/VBGf8Ty9QgzT/jjfZ0EkEDc+9+aCEv5G98drIM0v5G98UEp2F78v1QTQcT/AI432dBE2N+V+W9BBBCX8je+O1kEtTDn7IJGxvyvy3oIIJz5+2PmgmggbnifVBybHgfRBBAQf//Z") no-repeat center;
153 } 155 }
154 .xc-add-member .xc-icon{ 156 .xc-add-member .xc-icon{
155 width: 30rpx; 157 width: 30rpx;
156 height: 30rpx; 158 height: 30rpx;
157 - margin-left:50rpx; 159 + margin-left:40rpx;
158 160
159 } 161 }
160 .xc-add-member .member{ 162 .xc-add-member .member{
@@ -162,23 +164,23 @@ height: 84rpx; @@ -162,23 +164,23 @@ height: 84rpx;
162 164
163 } 165 }
164 .xc-add-member .xc-save-money{ 166 .xc-add-member .xc-save-money{
165 - border-left: 2rpx solid #fff; 167 + border-left: 2rpx solid rgb(238, 205, 172);
166 padding-left: 15rpx; 168 padding-left: 15rpx;
167 margin-left: 15rpx; 169 margin-left: 15rpx;
168 170
169 } 171 }
170 172
171 .xc-add-member .xc-opening-button{ 173 .xc-add-member .xc-opening-button{
172 - width: 130rpx;  
173 - margin-left:180rpx; 174 + width: 120rpx;
  175 + margin-left:140rpx;
174 } 176 }
175 177
176 .xc-opening{ 178 .xc-opening{
177 border-radius: 20rpx; 179 border-radius: 20rpx;
178 - background: #fe547c;  
179 - color: #fff;  
180 - height:36rpx;  
181 - line-height: 36rpx; 180 + background: rgb(238, 205, 172);
  181 + height:34rpx;
  182 + line-height: 34rpx;
  183 + color:#000;
182 } 184 }
183 .xc-after-sale{ 185 .xc-after-sale{
184 width:100%; 186 width:100%;
pages/user/plus/plus.js 0 → 100644
  1 +var t = getApp(),
  2 + a = t.request,
  3 + o = t.globalData.setting,
  4 + os = o,
  5 + i = require("../../../utils/util.js"),
  6 + ut = i,
  7 + s = require("../../../utils/common.js"),
  8 + w = require("../../../utils/wxParse/wxParse.js"),t_pay = require("../../../utils/pay2.js");
  9 + var regeneratorRuntime = require('../../../utils/runtime.js');
  10 +
  11 +Page({
  12 + /**
  13 + * 页面的初始数据
  14 + */
  15 + data: {
  16 + currentId: 0,
  17 + url: o.imghost,
  18 + screenWidth: 0,
  19 + screenheight: 0,
  20 + canvasHidden: true,
  21 + shareImgPath: null,
  22 + is_plusCard: "",//卡的列表
  23 + imagePath: "",
  24 + is_pulscardname: "",//plus会员的名字
  25 + is_card: 0,//用于判断是否是续费页和购买页面 0不是puls会员
  26 + content: "",//等级卡规则
  27 + is_card_rule: "",//等级卡规则判断用
  28 + is_show: 0, //页面要加载完才能显示
  29 + open_yq: 0, //显示打开邀请码的弹窗
  30 + by_index:null, //购买卡的下班
  31 +
  32 + isyaoqingma:0, //是否邀请码
  33 + is_salesman:0, //是否营业员
  34 + inp_recommon: null, //输入的邀请码
  35 + inp_serviceman: null, //输入的营业员
  36 + is_fengxiang: 0, //是不是分享过来的
  37 + def_recommon: null, //分享人的手机号
  38 + def_serviceman: null, //分享人的营业员
  39 + fir_leader:0,
  40 +
  41 + },
  42 + swiperChange: function (e) {
  43 + var currentId = e.detail.current;
  44 + this.setData({
  45 + currentId: currentId
  46 + })
  47 + },
  48 + /**
  49 + * 生命周期函数--监听页面加载
  50 + */
  51 + onLoad: function (options) {
  52 + var that = this;
  53 + var store_id=getApp().globalData.setting.stoid;
  54 + //获取用户设备信息,屏幕宽度
  55 + wx.getSystemInfo({
  56 + success: res => {
  57 + that.setData({screenWidth: res.screenWidth})
  58 + }
  59 + })
  60 + var fir_leader = options.scene;
  61 + that.setData({fir_leader:fir_leader})
  62 + if (fir_leader != null && fir_leader != undefined && fir_leader != "") {
  63 + var r_url="/api/weshop/plus/vip/mem/list?storeId=" + store_id + "&userId=" + fir_leader
  64 + getApp().request.get(r_url, {
  65 + success: function (res) {
  66 + var is_ok = 1;
  67 + if (res.data.code == -1) {
  68 + getApp().my_warnning("未找到分享会员", 0, that);
  69 + is_ok = 0;
  70 + that.back_user();
  71 + }
  72 + var user_information = res.data.data[0];
  73 + if (user_information['GradeCardID'] == null || user_information['GradeCardID'] == "" || user_information['GradeCardID'] == undefined) {
  74 + getApp().my_warnning("分享会员不是plus会员", 0, that);
  75 + is_ok = 0;
  76 + that.back_user();
  77 + }
  78 + //--获取当前的时间--
  79 + var now = ut.gettimestamp();
  80 + if (user_information['ExpiryDate']) {
  81 + var str = user_information['ExpiryDate'].replace(/-/g, '/');
  82 + var end = new Date(str);
  83 + end = Date.parse(end) / 1000;
  84 + if (end < now) {
  85 + getApp().my_warnning("分享plus会员已经过期", 0, that);
  86 + is_ok = 0;
  87 + that.back_user();
  88 + }
  89 + } else {
  90 + getApp().my_warnning("分享plus会员已经过期", 0, that);
  91 + is_ok = 0;
  92 + that.back_user();
  93 + }
  94 + if (is_ok == 1) {
  95 + that.setData({def_recommon: user_information.MobileTel, def_serviceman: user_information.StaffNo,is_fengxiang:1})
  96 + //--先判断会员状态--
  97 + var user_info=getApp().globalData.userInfo;
  98 + if(user_info==null || user_info.mobile==undefined || user_info.mobile=="" || user_info.mobile==null){
  99 + wx.navigateTo({ url: '/pages/getphone/getphone?first_leader='+fir_leader, })
  100 + return false;
  101 + }
  102 + }
  103 + }
  104 + });
  105 + }
  106 +
  107 + //-----------商家配置信息----- 等级卡规则,是否又开邀请码,营业员------------
  108 + getApp().request.get("/api/weshop/storeconfig/get/" + store_id, {
  109 + success: function (res) {
  110 + var is_cardrule = res.data.data.cardrules;
  111 + var switch_list= res.data.data.switch_list;
  112 + var swi_arr=JSON.parse(switch_list);
  113 +
  114 + w.wxParse("content", "html", is_cardrule, that, 6);
  115 + that.setData({
  116 + is_card_rule: is_cardrule,
  117 + isyaoqingma:parseInt(swi_arr.isyaoqingma),
  118 + is_salesman:parseInt(swi_arr.is_staffno)
  119 + });
  120 + }
  121 + });
  122 + },
  123 +
  124 + /**
  125 + * 生命周期函数--监听页面显示
  126 + */
  127 + onShow: function () {
  128 + var th=this,app_d=getApp().globalData;
  129 + getApp().request.get("/api/weshop/users/get/" + os.stoid + "/" + app_d.user_id, {
  130 + success: function (e) {
  131 + var userInfo = e.data.data;
  132 + if(userInfo['card_field']){
  133 + var u_url = "/pages/user/cardinfo/cardinfo";
  134 + wx.reLaunch({url: u_url})
  135 + }
  136 + },
  137 + });
  138 +
  139 + this.getPlusCardType();
  140 + },
  141 +
  142 + /**
  143 + * 生命周期函数--监听页面隐藏
  144 + */
  145 + onHide: function () {
  146 +
  147 + },
  148 + /**
  149 + * 页面上拉触底事件的处理函数
  150 + */
  151 + onReachBottom: function () {
  152 + var goods_list = this.selectComponent("#goods_list"); //组件的id
  153 + goods_list.get_list();
  154 + },
  155 +
  156 + //--- 获取卡类列表 ---
  157 + getPlusCardType: function (e) {
  158 + var storid = o.stoid;
  159 + var th = this;
  160 + getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => {
  161 + var plusCard = res.data.data;
  162 + var arr = [1219, 2089, 3031];
  163 + var new_arr = new Array();
  164 + for (var i = 0; i < plusCard.length; i++) {
  165 + //plusCard[i].free=arr[i];
  166 + var item = {"fee": plusCard[i].CardFee, 'index': i}
  167 + new_arr.push(item);
  168 + }
  169 + //根據距離遠近排序,越近在前面,升序
  170 + new_arr.sort(function (a, b) {
  171 + if (a.fee < b.fee) {
  172 + return -1;
  173 + } else if (a.fee == b.fee) {
  174 + return 0;
  175 + } else {
  176 + return 1;
  177 + }
  178 + });
  179 + //---给数组添加立省多少钱---
  180 + for (i = 0; i < plusCard.length; i++) {
  181 + for (var j = 0; j < new_arr.length; j++) {
  182 + if (i == new_arr[j].index) {
  183 + plusCard[i].free = arr[j];
  184 + break;
  185 + }
  186 + }
  187 + }
  188 + th.setData({
  189 + is_plusCard: plusCard, is_show: 1
  190 + })
  191 + var goods_list = th.selectComponent("#goods_list"); //组件的id
  192 + goods_list.get_list();
  193 +
  194 + })
  195 + },
  196 +
  197 + //--开通会员---接受前端index,弹起窗口---
  198 + Opening: function (e) {
  199 + var th = this;
  200 + th.data.by_index = e.currentTarget.dataset.ind;
  201 +
  202 + if (th.data.is_fengxiang) {
  203 + th.buy_card();
  204 + } else {
  205 + //--如果后台都没有勾邀请码,营业员,立即购买--
  206 + if (!th.data.isyaoqingma && !th.data.is_salesman) {th.buy_card(); return false;}
  207 + th.setData({open_yq: 1})
  208 + }
  209 + },
  210 +
  211 + //--立即购买卡--
  212 + buy_card: async function () {
  213 + var th = this;
  214 + var is_card = 0;
  215 + //--商家是不是有等级卡功能,开通的人数是不是够用,开通是时间是不是到期--
  216 + await getApp().request.promiseGet("/api/weshop/plus/plus/card/register",
  217 + {data: {storeId: os.stoid}}).then(res => {
  218 + if (res.data.code == 0) is_card = 1;
  219 + })
  220 + if (is_card == 0) getApp().my_warnning("请联系商家升级plus功能", 0, th);
  221 + var item = th.data.is_plusCard[th.data.by_index];
  222 + var req = {};
  223 + req.cardId = item.CardId;
  224 + req.rechargeType = 3;
  225 + //如果不是你导购,也不是等级会员分享
  226 + if (th.data.is_fengxiang == 1) {
  227 + if (th.data.def_recommon) req.recommon = th.data.def_recommon
  228 + if (th.data.def_serviceman) req.serviceman = th.data.def_serviceman
  229 + } else {
  230 + //---后台要求要输入邀请码---
  231 + if (th.data.isyaoqingma) {
  232 + if (!th.data.inp_recommon) {
  233 + getApp().my_warnning("请输入邀请码", 0, th);
  234 + return false;
  235 + }
  236 + req.recommon = th.data.inp_recommon
  237 + }
  238 + //--后台要求要输入营业员--
  239 + if (th.data.is_salesman) {
  240 + if (!th.data.inp_serviceman) {
  241 + getApp().my_warnning("请输入营业员", 0, th);
  242 + return false;
  243 + }
  244 + req.serviceman = th.data.inp_serviceman
  245 + }
  246 + }
  247 + req.storeId = os.stoid;
  248 + req.userId = getApp().globalData.user_id;
  249 + //--如果有邀请码,和营业员的情况下--
  250 + if(req.recommon || req.serviceman ) {
  251 + var req_data = {storeId: os.stoid, userId: req.userId};
  252 + if(req.recommon) req_data.inviteCode=req.recommon;
  253 + if(req.serviceman) req_data.staffNo=req.serviceman;
  254 + getApp().request.get("/api/weshop/plus/vip/mem/referee/code/check", {
  255 + data:req_data,
  256 + success:function(res){
  257 + if(res.data.code==0) {
  258 + t_pay.pay(req, th.success, function () {
  259 + getApp().my_warnning("支付失败", 0, th);
  260 + });
  261 + }else{
  262 + getApp().my_warnning(res.data.msg, 0, th);
  263 + }
  264 + }
  265 + })
  266 + }else{
  267 + t_pay.pay(req, th.success, function () {
  268 + getApp().my_warnning("支付失败", 0, th);
  269 + });
  270 + }
  271 + },
  272 + //返回会员页面
  273 + OpeningClose: function() {
  274 + this.setData({open_yq:0});
  275 + },
  276 +
  277 + //返回会员中心
  278 + back_user:function () {
  279 + setTimeout(function () {
  280 + wx.reLaunch({url:"/pages/user/index/index"});
  281 + },1000)
  282 + },
  283 +
  284 + //--支付成功,跳转到等级卡续费页面--
  285 + success:function () {
  286 +
  287 + },
  288 +
  289 + //--绑定邀请码的输入--
  290 + b_input:function (e) {
  291 + var value=e.detail.value;
  292 + var name=e.currentTarget.dataset.name;
  293 + var ob={};
  294 + ob[name]=value
  295 + this.setData(ob);
  296 + }
  297 +
  298 +})
0 \ No newline at end of file 299 \ 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 \ No newline at end of file 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="55rpx" previous-margin="55rpx" bindchange="swiperChange">
  16 + <swiper-item class="flex" item-id="{{index}}" data-item-id="{{index}}" wx:for="{{is_plusCard}}">
  17 + <view class="Membership {{currentId==index?'enlarge':''}}" style=" background-image: url({{item.CardImg}});color:{{item.CardColor}}">
  18 + <view class="flex-space-between Membership_go">
  19 + <view>
  20 + <view class="fs32">{{item.CardName}}</view>
  21 + <view class="fs24 Membership_remarks">开通会员年卡仅{{item.CardFee}}元</view>
  22 + </view>
  23 + <view class="Opening fs24 xc-black" data-ind="{{index}}" style="background:{{item.CardColor}}" bindtap="Opening">立即开通
  24 + </view>
  25 +
  26 + </view>
  27 +
  28 + <view class="flex-vertical-between consumption">
  29 +
  30 + <view class="flex-vertical fs22" style="overflow:hidden">
  31 + <!-- <image class="Member" src="{{url}}/miniapp/images/plus/privilege_o.png" style="filter:drop-shadow( 20rpx 0 0px {{item.CardColor}});"></image> -->
  32 + <view class="Member"style="background-image:url('{{url}}/miniapp/images/plus/privilege_o.png');filter: drop-shadow( 40rpx 0rpx 0rpx {{item.CardColor}});"></view>
  33 + <view>根据大家购买数据,您成为超级会员预计可省¥{{item.free}}元
  34 + </view>
  35 + </view>
  36 + </view>
  37 + </view>
  38 + </swiper-item>
  39 + </swiper>
  40 + </view>
  41 +
  42 +
  43 + </view>
  44 +
  45 + <!-- 会员礼遇 -->
  46 + <view class="Courtesy">
  47 +
  48 + <!-- 标题 -->
  49 + <view class="flex-center" style="width:100%;height:200rpx;">
  50 + <view>
  51 + <view wx:if="{{false}}" class="Courtesy_title flex-center fs36">开通PLUSI会员尊享礼遇
  52 + </view>
  53 + <view wx:else class="Courtesy_title flex-center fs36">PLUS会员尊享礼遇 </view>
  54 +
  55 +
  56 + <view class="flex-center">
  57 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  58 +
  59 + <view wx:if="{{false}}" class="Courtesy_can fs24">PLUS会员可享以下特权
  60 + </view>
  61 + <view wx:else class="Courtesy_can fs24">解锁新权益 精彩享不停
  62 + </view>
  63 +
  64 + <image class="Courtesy_image" src="{{url}}/miniapp/images/plus/Courtesy.png"></image>
  65 + </view>
  66 + </view>
  67 + </view>
  68 +
  69 + <!-- 会员权益内容 -->
  70 + <view class="Courtesy_comment " style="padding:0 20rpx" wx:if="{{is_card_rule!=null&&is_card_rule!=''}}">
  71 + <view class="wxParse">
  72 + <template is="wxParse" data="{{wxParseData:content.nodes}}"></template>
  73 + </view>
  74 + </view>
  75 + </view>
  76 +
  77 + <!-- 好物推荐 -->
  78 + <!-- 好物推荐 -->
  79 + <view class="title">
  80 + <!-- 标题 -->
  81 + <view>
  82 + <!-- 中文名标题 -->
  83 + <view class="China flex-level">
  84 + <view class="line flex-vertical">
  85 + <view class="one"></view><view class="two"></view><view class="three"></view>
  86 + </view>
  87 +
  88 + <view class="Recommend flex-level" bindtap="requestList">好物推荐</view>
  89 +
  90 + <view class="line flex-vertical">
  91 + <view class="three"></view>
  92 + <view class="two"></view>
  93 + <view class="one"></view>
  94 + </view>
  95 + </view>
  96 +
  97 + <!-- 英文标题 -->
  98 + <view class="english flex-center">
  99 + <view class="silk"></view>
  100 + <view class="esh five-level-word">GOOD HOT THING</view>
  101 + <view class="silk"></view>
  102 + </view>
  103 +
  104 + </view>
  105 + <!-- 商品列表组件 -->
  106 + <goods_recommend id="goods_list"></goods_recommend>
  107 + <!-- 商品列表 -->
  108 +
  109 + </view>
  110 +
  111 +</view>
  112 +</block>
  113 +
  114 +<!-- 开通会员弹窗 -->
  115 +<view wx:if="{{open_yq}}" class="Disgraceful flex-center">
  116 + <!-- 蒙尘 -->
  117 + <view bindtap="OpeningClose"></view>
  118 +
  119 + <!-- 弹框 -->
  120 + <view class="Member_purchase">
  121 + <view class="rel purchase_Bk" style="background-image: url({{url}}/miniapp/images/plus/purchase_Bk.png);">
  122 + <image class="abs write" src="{{url}}/miniapp/images/plus/write.png"></image>
  123 + </view>
  124 + <view class="fs26 inf_com">
  125 + <view class="fs36 flex-level perfect">请完善下面信息</view>
  126 + <view class="fillin">
  127 + <!-- 输入推荐人手机号 -->
  128 + <view class="flex ai_and Enter_phone" wx:if="{{isyaoqingma}}" >
  129 + <image class="phone_image" src="{{url}}/miniapp/images/plus/Invitation_code.png"></image>
  130 + <view class="phone">
  131 + <input bindinput="b_input" data-name="inp_recommon" class="fs30" placeholder="请输入邀请码(推荐人手机号)" type="number" maxlength="20" />
  132 + </view>
  133 + </view>
  134 + <!-- 输入营业员 -->
  135 + <view class="flex ai_and enter_SalesClerk" wx:if="{{is_salesman}}">
  136 + <image class="SalesClerk_image" src="{{url}}/miniapp/images/plus/Sales_Clerk.png"></image>
  137 + <view class="SalesClerk">
  138 + <input bindinput="b_input" class="fs30" data-name="inp_serviceman" placeholder="请输入营业员" maxlength="30" />
  139 + </view>
  140 + </view>
  141 + <!-- 确认购买 -->
  142 + <view class="flex-center" bindtap="buy_card">
  143 + <view class="flex-center purchase"
  144 + style="background-image:url({{url}}/miniapp/images/plus/purchase_Bk.png);">
  145 + 确认购买
  146 + </view>
  147 + </view>
  148 + </view>
  149 + </view>
  150 + <view class="flex-level">
  151 + <image class="purchaseClose" bindtap="OpeningClose" src="{{url}}/miniapp/images/plus/Close.png"></image>
  152 + </view>
  153 + </view>
  154 +
  155 +</view>
  156 +<warn id="warn"></warn>
0 \ No newline at end of file 157 \ No newline at end of file
pages/user/plus/plus.wxss 0 → 100644
  1 +@import "../../../utils/wxParse/wxParse.wxss";
  2 +page {
  3 + width: 100%;
  4 + height: 100%;
  5 + z-index: 3;
  6 + overflow-x: hidden;
  7 +}
  8 +
  9 +.plus {
  10 + overflow-x: hidden;
  11 +}
  12 +
  13 +.Member_bk {
  14 + position: absolute;
  15 + z-index: 0;
  16 + width: 100%;
  17 + height: 100%;
  18 +}
  19 +
  20 +.Opening_bk image {
  21 + position: absolute;
  22 + z-index: 2;
  23 + width: 100%;
  24 + height: 320rpx;
  25 +}
  26 +
  27 +.swiper {
  28 + width: 100%;
  29 + padding-top: 60rpx;
  30 +}
  31 +
  32 +swiper {
  33 + align-items: center;
  34 + display: flex;
  35 + justify-content: center;
  36 + height: 275rpx;
  37 +}
  38 +
  39 +.swiper image {
  40 + width: 490rpx;
  41 + height: 100%;
  42 + border-radius: 20rpx;
  43 +}
  44 +
  45 +.swiper, .Courtesy, .title {
  46 + position: relative;
  47 + z-index: 3;
  48 +}
  49 +
  50 +.Courtesy_image {
  51 + width: 50rpx;
  52 + height: 25rpx;
  53 + margin-top: 8rpx;
  54 +}
  55 +
  56 +.Courtesy_title {
  57 + color: rgb(173, 137, 79);
  58 + font-weight: bold;
  59 + margin-bottom: 10rpx;
  60 + letter-spacing: 2rpx;
  61 +}
  62 +
  63 +.Courtesy_can {
  64 + margin: 0rpx 7rpx;
  65 + color: rgb(94, 93, 91);
  66 + font-weight: bold;
  67 +}
  68 +
  69 +.Courtesy_comment {
  70 + padding: 0rpx 31rpx;
  71 +}
  72 +
  73 +.Equity_image {
  74 + width: 490rpx;
  75 + height: 175rpx;
  76 + margin: 20rpx 0rpx;
  77 +}
  78 +
  79 +/* 热门好物 */
  80 +
  81 +.title .China {
  82 + width: 100%;
  83 + margin-top: 60rpx;
  84 + margin-bottom: 10rpx;
  85 + line-height: 0rpx;
  86 +}
  87 +
  88 +.title .China .line view {
  89 + width: 2rpx;
  90 +}
  91 +
  92 +.title .China .line {
  93 + height: 40rpx;
  94 + color: rgb(51, 51, 51);
  95 +}
  96 +
  97 +.title .China .line view {
  98 + border-left: 3rpx solid #000;
  99 + margin-left: 5rpx;
  100 +}
  101 +
  102 +.title .China .line .one {
  103 + height: 23rpx;
  104 +}
  105 +
  106 +.title .China .line .two {
  107 + height: 15rpx;
  108 +}
  109 +
  110 +.title .China .line .three {
  111 + height: 18rpx;
  112 +}
  113 +
  114 +.title .China .Recommend {
  115 + margin: 0rpx 20rpx;
  116 + font-size: 28rpx;
  117 + line-height: 39rpx;
  118 + font-weight: bold;
  119 +}
  120 +
  121 +.title .english .silk {
  122 + width: 214rpx;
  123 + height: 2rpx;
  124 + background-color: #000;
  125 +}
  126 +
  127 +.title .english .esh {
  128 + margin: 0rpx 15rpx;
  129 +}
  130 +
  131 +.Membership {
  132 + width: 575rpx;
  133 + height: 275rpx;
  134 + margin: 0 auto;
  135 + transform: scale(0.9);
  136 + border-radius: 18rpx;
  137 + box-shadow: 0rpx 0rpx 2rpx #888;
  138 + background-size: 100%;
  139 + padding: 0rpx 31rpx;
  140 + color: #ffa786;
  141 +}
  142 +
  143 +.enlarge {
  144 + transform: scale(1);
  145 +}
  146 +
  147 +.Membership_go {
  148 + margin-top: 50rpx;
  149 +}
  150 +
  151 +.Membership_Opening {
  152 + width: 150rpx;
  153 + height: 40rpx;
  154 + border-radius: 30rpx;
  155 + text-align: center;
  156 + line-height: 40rpx;
  157 + background-color: rgb(255, 167, 135);
  158 + color: #000;
  159 +}
  160 +
  161 +.Membership .Member {
  162 + width: 30rpx;
  163 + height: 30rpx;
  164 + margin-right: 5rpx;
  165 + background-size: 100% 100%;
  166 +position: relative;
  167 +left: -40rpx;
  168 +
  169 +}
  170 +
  171 +.Membership .Opening {
  172 + width: 160rpx;
  173 + height: 45rpx;
  174 + border-radius: 20rpx;
  175 + background-color: rgb(237, 189, 150);
  176 + line-height: 45rpx;
  177 + text-align: center;
  178 + margin-top: 2rpx;
  179 + color: #666
  180 +}
  181 +
  182 +.Invitation {
  183 + padding: 0rpx 31rpx;
  184 + box-shadow: 0rpx 0rpx 10rpx #888;
  185 + height: 95rpx;
  186 + background-color: rgb(255, 255, 255);
  187 + z-index: 6;
  188 + position: relative;
  189 + margin-top: -15rpx;
  190 +}
  191 +
  192 +.Invitation .Invitation_count, .Invitation_my {
  193 + color: rgb(237, 189, 153);
  194 +}
  195 +
  196 +.Invitation .Invitation_Cash {
  197 + width: 150rpx;
  198 + height: 45rpx;
  199 + line-height: 45rpx;
  200 + text-align: center;
  201 + border-radius: 25rpx;
  202 + margin-left: 30rpx;
  203 + background-color: rgb(237, 189, 150);
  204 + color: rgb(255, 255, 255);
  205 +}
  206 +
  207 +.Invitation .Detailed {
  208 + color: rgb(237, 189, 150);
  209 + text-decoration: underline;
  210 +}
  211 +
  212 +.consumption {
  213 + margin-top: 95rpx;
  214 + font-size: 18rpx;
  215 +}
  216 +
  217 +.Membership_remarks {
  218 + margin-top: 2rpx;
  219 +}
  220 +
  221 +.MemberPlus {
  222 + width: 618rpx;
  223 + height: 290rpx;
  224 + border-radius: 18rpx;
  225 + box-shadow: 0rpx 0rpx 10rpx #888;
  226 + margin: 0rpx 35rpx;
  227 + color: #ffa786;
  228 + padding: 0rpx 31rpx;
  229 + padding-top: 60rpx;
  230 + background-size: 100%;
  231 +}
  232 +
  233 +.Member_sp {
  234 + height: 325rpx;
  235 +}
  236 +
  237 +.renew {
  238 + width: 190rpx;
  239 + height: 50rpx;
  240 + border-radius: 18rpx;
  241 + background-color: rgb(237, 189, 150);
  242 + text-align: center;
  243 + line-height: 50rpx;
  244 + color: #000;
  245 + margin-top: 7rpx;
  246 +}
  247 +
  248 +.xs {
  249 + margin-top: 130rpx;
  250 +}
  251 +
  252 +.MemberPlus .share {
  253 + width: 30rpx;
  254 + height: 30rpx;
  255 + margin-left: 7rpx;
  256 +}
  257 +
  258 +.MemberPlus .privilege {
  259 + width: 30rpx;
  260 + height: 30rpx;
  261 + margin-right: 7rpx;
  262 +}
  263 +
  264 +.Disgraceful {
  265 + position: fixed;
  266 + left: 0;
  267 + top: 0;
  268 + right: 0;
  269 + bottom: 0;
  270 + z-index: 11;
  271 + background: rgba(0, 0, 0, 0.6);
  272 + width: 100%;
  273 + height: 100%;
  274 +}
  275 +.ddd {
  276 + border-radius: 20rpx;
  277 +}
  278 +
  279 +.Member_purchase {
  280 + width: 610rpx;
  281 + margin-top: 20rpx;
  282 +}
  283 +
  284 +.purchase_Bk {
  285 + width: 100%;
  286 + height: 225rpx;
  287 + background-size: 100%;
  288 +}
  289 +
  290 +.write {
  291 + width: 280rpx;
  292 + height: 275rpx;
  293 + bottom: 20rpx;
  294 + left: 185rpx;
  295 +}
  296 +
  297 +.inf_com {
  298 + background-color: rgb(255, 255, 255);
  299 + padding: 0rpx 85rpx;
  300 +}
  301 +
  302 +.perfect {
  303 + padding-top: 30rpx;
  304 + padding-bottom: 65rpx;
  305 +}
  306 +
  307 +.fillin {
  308 + color: rgb(208, 208, 208);
  309 +}
  310 +
  311 +.Enter_phone {
  312 + border-bottom: 1rpx solid rgb(153, 153, 153);
  313 + margin-bottom: 35rpx;
  314 +}
  315 +
  316 +.phone_image {
  317 + width: 60rpx;
  318 + height: 60rpx;
  319 + margin-bottom: 5rpx;
  320 +}
  321 +
  322 +.phone {
  323 + margin-left: 15rpx;
  324 + color: #000;
  325 +}
  326 +
  327 +.enter_SalesClerk {
  328 + border-bottom: 1rpx solid rgb(153, 153, 153);
  329 +}
  330 +
  331 +.SalesClerk_image {
  332 + width: 60rpx;
  333 + height: 60rpx;
  334 + margin-bottom: 5rpx;
  335 +}
  336 +
  337 +.SalesClerk {
  338 + margin-left: 15rpx;
  339 + color: #000;
  340 +}
  341 +
  342 +.purchase {
  343 + width: 250rpx;
  344 + height: 50rpx;
  345 + border-radius: 25rpx;
  346 + color: rgb(255, 255, 255);
  347 + margin: 55rpx 0rpx;
  348 + background-position: center;background-repeat: no-repeat;background-size: cover
  349 +}
  350 +
  351 +.purchaseClose {
  352 + width: 70rpx;
  353 + height: 70rpx;
  354 + border-radius: 50%;
  355 + margin-top: 60rpx;
  356 +}
  357 +
  358 +input {
  359 +
  360 + overflow: visible;
  361 + width: 360rpx;
  362 +}
  363 +
pages/user/userinfo/userinfo.js
1 function e(e, a, r) { 1 function e(e, a, r) {
2 - return a in e ? Object.defineProperty(e, a, {  
3 - value: r,  
4 - enumerable: !0,  
5 - configurable: !0,  
6 - writable: !0  
7 - }) : e[a] = r, e;  
8 -} 2 + return a in e ? Object.defineProperty(e, a, {
  3 + value: r,
  4 + enumerable: !0,
  5 + configurable: !0,
  6 + writable: !0
  7 + }) : e[a] = r, e;
  8 +}
9 9
10 -var a = getApp(), r = a.globalData.setting,  
11 - t = a.request, s = require("../../../utils/common.js"), util = require("../../../utils/util.js"); 10 +var a = getApp(),
  11 + r = a.globalData.setting,
  12 + t = a.request,
  13 + s = require("../../../utils/common.js"),
  14 + util = require("../../../utils/util.js");
  15 +
  16 +var timestamp = Date.parse(new Date());
  17 +var date = new Date(timestamp);
12 18
13 Page({ 19 Page({
14 - data: {  
15 - url: r.url,  
16 - resourceUrl: r.resourceUrl,  
17 - iurl: r.imghost,  
18 - defaultAvatar: r.resourceUrl + "/static/images/user68.jpg",  
19 - user: null,  
20 - tc_hide:true,  
21 - stoname:"",  
22 - },  
23 - onShow: function() {  
24 - var e = this; var req=t;  
25 - a.getUserInfo(function(a) {  
26 - var txt = util.formatTime(a.birthday,'yyyy-M-d'),arr = txt.split(' ');  
27 - a.birthday=arr[0];  
28 - var txt2 = util.formatTime(a.reg_time, 'yyyy-M-d'), arr2 = txt.split(' ');  
29 - a.reg_time = arr2[0];  
30 - req.get("/api/weshop/pickup/get/" + r.stoid + "/" + a.pickup_id, {  
31 - success: function (da) {  
32 - console.log('getsto');  
33 - console.log(da);  
34 - //设置门店  
35 - e.setData({ stoname: da.data.data.pickup_name});  
36 - }  
37 - })  
38 - e.setData({  
39 - user: a  
40 - });  
41 - }, !0);  
42 - },  
43 - editUserInfo: function(e) {  
44 - var r = e.currentTarget.dataset.type;  
45 - if (("password" == r || "paypwd" == r) && !this.data.user.mobile) return a.showWarning("请先绑定手机号码");  
46 - r && this.data.user && wx.navigateTo({  
47 - url: "/pages/user/userinfo_edit/userinfo_edit?type=" + r  
48 - });  
49 - },  
50 -  
51 - /*--------------------修改头像---------------------*/  
52 - changeAvatar: function() {  
53 - return false;  
54 - var r = this;  
55 - wx.chooseImage({  
56 - count: 1,  
57 - sizeType: [ "compressed", "original" ],  
58 - sourceType: [ "camera", "album" ],  
59 - success: function(u) {  
60 - t.uploadFile(r.data.url + "/api/user/upload_headpic", {  
61 - filePath: u.tempFilePaths[0],  
62 - name: "head_pic",  
63 - success: function(t) {  
64 - var u = s.getFullUrl(t.data.result);  
65 - r.setData(e({}, "user.head_pic", u)), a.globalData.userInfo.head_pic = u, a.showSuccess("设置头像成功"); 20 + data: {
  21 + phone:"",
  22 + url: r.url,
  23 + resourceUrl: r.resourceUrl,
  24 + iurl: r.imghost,
  25 + defaultAvatar: r.resourceUrl + "/static/images/user68.jpg",
  26 + user: null,
  27 + tc_hide: true,
  28 + stoname: "",
  29 + checkDate: false,
  30 + datet: "",
  31 + year: date.getFullYear(),
  32 + store: 0,
  33 + all_sto: "",
  34 + region_name: "",
  35 + def_pick_store: "",
  36 + sort_store: 0, //门店分类
  37 + sec_sto: "",
  38 + more_store: 0, //选择门店
  39 + choice_sort_store: 1, //选择分类门店
  40 + more_store: 0, //选择门店
  41 + lat: null, //维度
  42 + lon: null, //经度
  43 + fir_pick_index: 0,
  44 + sec_pick_index: 0,
  45 + is_gps: 1,
  46 + lon: 0,
  47 + only_pk: 0,
  48 + open_ind_store: 0, //哪里打开的门店列表的控制属性
  49 + ispwhid:1,//是否隐藏密码显示
  50 + isstcsp:1,//是否启动密码消费
  51 + isGender:1,//什么性别
  52 + iscalendar:1,//是否是农历
  53 + consumption:"",//消费密码
  54 + identity_card:"",//身份证值
  55 + address:"",//地址
  56 + openid:"",//openid
  57 + pulscardname:"",//puls会员的卡
  58 + gradename:"",//会员权益的卡
  59 + isBool:"",
  60 + sto_sele_id:"",//所属门店id
  61 + },
  62 + //是否启动密码消费
  63 + isstcsp:function(){
  64 + var th = this;
  65 + var isstcsp = th.data.isstcsp;
  66 + if (isstcsp==0){
  67 + th.setData({
  68 + isstcsp:1
  69 + })
  70 + }else{
  71 + th.setData({
  72 + isstcsp: 0
  73 + })
  74 + }
  75 + },
  76 + //出生日期是否是农历
  77 + iscalendar:function(){
  78 + var th = this;
  79 + var iscalendar = th.data.iscalendar;
  80 + if (iscalendar == 0) {
  81 + th.setData({
  82 + iscalendar: 1
  83 + })
  84 + } else {
  85 + th.setData({
  86 + iscalendar: 0
  87 + })
  88 + }
  89 + },
  90 + //性别
  91 + isGender:function(e){
  92 + var th = this;
  93 + var sex = e.currentTarget.dataset.sex;
  94 + console.log("点击选择性别",sex);
  95 + th.setData({
  96 + isGender:sex
  97 + })
  98 +
  99 +
  100 + },
  101 + //密码是否隐藏显示
  102 + ispwhid:function(){
  103 + var th = this;
  104 + var ispwhid = th.data.ispwhid;
  105 +
  106 + if (ispwhid == 0) {
  107 + th.setData({
  108 + ispwhid: 1
  109 + })
  110 + } else {
  111 + th.setData({
  112 + ispwhid: 0
  113 + })
  114 + }
  115 + },
  116 + checkDate: function() {
  117 + var th = this;
  118 + if (th.data.checkDate) {
  119 + th.setData({
  120 + checkDate: false
  121 + })
  122 + } else {
  123 + th.setData({
  124 + checkDate: true
  125 + })
  126 + }
  127 + },
  128 + bindChange: function(e) {
  129 + this.setData({
  130 + datet: e.detail.value,
  131 + });
  132 + },
  133 + //---点击二级之后的选择---
  134 + choose_for_store: function(e) {
  135 + var index_c = e.currentTarget.dataset.ind;
  136 +
  137 + this.setData({
  138 + sec_pick_index: index_c,
  139 + fir_pick_index: index_c
  140 + })
  141 + },
  142 + //确定def_pick为选择的门店
  143 + sure_pick: function(e) {
  144 + var th = this;
  145 + var item = null;
  146 + var openindstore = th.data.open_ind_store;
  147 + if (th.data.choice_sort_store == 0) {
  148 + var index = th.data.fir_pick_index;
  149 + if (th.data.is_show_sto_cat == 1) {
  150 + item = th.data.def_pickpu_list[index];
  151 + } else {
  152 + item = th.data.only_pk[index]; //当没有门店分类的时候
  153 + }
  154 +
  155 + } else {
  156 + var index = th.data.sec_pick_index;
  157 + item = th.data.sec_sto.s_arr[index];
  158 + }
  159 +
  160 + console.log("选择门店刷新", "def_pick_store", item);
  161 + th.setData({
  162 + def_pick_store: item,
  163 + stoname: item.pickup_name,
  164 + sto_sele_name: item.pickup_name,
  165 + sto_sele_id: item.pickup_id,
  166 + sto_sele_distr: item.distr_type,
  167 + store: 0,
  168 + choice_sort_store: 0,
  169 + fir_pick_index: 0
  170 + });
  171 +
  172 + if (openindstore == 1) {
  173 + th.setData({
  174 + openSpecModal: !0,
  175 + openSpecModal_ind: openindstore,
  176 + });
  177 + } else if (openindstore == 2) {
  178 + th.setData({
  179 + openSpecModal: !0,
  180 + openSpecModal_ind: openindstore,
  181 + openSpecModal_pt: 1
  182 + });
  183 + }
  184 + },
  185 + choose_for_store_fir: function(e) {
  186 + var index_c = e.currentTarget.dataset.ind;
  187 + this.setData({
  188 + fir_pick_index: index_c
  189 + })
  190 + },
  191 + wait_for_store_config: function() {
  192 + var th = this;
  193 + wx.getLocation({
  194 + type: 'wgs84',
  195 + success: function(res) {
  196 + th.data.lat = res.latitude;
  197 + th.data.lon = res.longitude;
  198 + th.data.is_get_local_ok = 1;
  199 + },
  200 + fail: function(res) {
  201 + if (res.errCode == 2) {
  202 + th.setData({
  203 + is_gps: 0
  204 + });
  205 + if (th.data.is_gps == 0) {
  206 + getApp().confirmBox("请开启GPS定位", null, 10000, !1);
  207 + }
  208 + } else {
  209 + th.setData({
  210 + is_gps: "3"
  211 + });
  212 + }
  213 + th.data.is_get_local_ok = 1;
  214 + }
  215 + })
  216 + },
  217 + onclickstore: function() {
  218 + var th = this;
  219 + if (th.data.store == 0) {
  220 + this.setData({
  221 + store: 1
  222 + })
  223 + } else {
  224 + this.setData({
  225 + store: 0
  226 + })
  227 + }
  228 + var dd = {
  229 + store_id: r.stoid,
  230 + isstop: 0,
  231 + pageSize: 300
  232 + }
  233 + th.setData({
  234 + sort_store: 1
  235 + });
  236 + var i = getApp().request;
  237 + //如果有距离的话
  238 + if (th.data.lat != null) {
  239 + dd.lat = th.data.lat;
  240 + dd.lon = th.data.lon;
  241 + }
  242 + //----------获取门店----------------
  243 + getApp().request.promiseGet("/api/weshop/pickup/list", {
  244 + data: dd,
  245 + }).then(res => {
  246 + var e = res;
  247 + if (e.data.code == 0) {
  248 + //-- 如果有默认选择门店的时候,要把默认门店放在第一位 --
  249 + if (th.data.def_pick_store) {
  250 + for (var k = 0; k < e.data.data.pageData.length; k++) {
  251 + if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) {
  252 + e.data.data.pageData.splice(k, 1); //删除
  253 + break;
  254 + }
  255 + }
  256 + e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加
  257 + }
  258 +
  259 + //单总量超出5个的时候
  260 + if (e.data.data.total > 5) {
  261 + i.get("/api/weshop/storagecategory/page", {
  262 + data: {
  263 + store_id: r.stoid,
  264 + is_show: 1,
  265 + pageSize: 300
  266 + },
  267 + success: function(ee) {
  268 + if (ee.data.code == 0) {
  269 + if (ee.data.data.pageData.length > 0) {
  270 + var def_arr = new Array();
  271 + var ishas = 0;
  272 + //-- 开始就看5个门店 --
  273 + for (var k = 0; k < 5; k++) {
  274 + if (k == e.data.data.pageData.length) break;
  275 + def_arr.push(e.data.data.pageData[k]);
  276 + }
  277 +
  278 + th.setData({
  279 + def_pickpu_list: def_arr,
  280 + pickpu_list: ee.data.data.pageData
  281 + });
  282 + var sto_cate = ee.data.data.pageData;
  283 + var sto_arr = e.data.data.pageData;
  284 + var newarr = new Array();
  285 + var qita = new Array();
  286 +
  287 + //----要进行门店分组--------
  288 + for (var i = 0; i < sto_arr.length; i++) {
  289 + //找一下这个门店有没有在分类数组内
  290 + var find2 = 0,
  291 + find2name = "";
  292 + for (var m = 0; m < sto_cate.length; m++) {
  293 + if (sto_arr[i].category_id == sto_cate[m].cat_id) {
  294 + find2 = sto_cate[m].cat_id;
  295 + find2name = sto_cate[m].cat_name;
  296 + break;
  297 + }
  298 + }
  299 +
  300 + if (newarr.length > 0) {
  301 + var find = 0;
  302 + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他
  303 + if (find2 != 0) {
  304 + for (var ii = 0; ii < newarr.length; ii++) {
  305 + if (sto_arr[i].category_id == newarr[ii].cat_id) {
  306 + newarr[ii].s_arr.push(sto_arr[i]);
  307 + find = 1;
  308 + break;
  309 + }
  310 + }
  311 + if (find == 0) {
  312 + var arr0 = new Array();
  313 + arr0.push(sto_arr[i]);
  314 + var item = {
  315 + cat_id: find2,
  316 + name: find2name,
  317 + s_arr: arr0
  318 + };
  319 + newarr.push(item);
  320 + }
  321 + } else {
  322 + qita.push(sto_arr[i]);
  323 + }
  324 + } else {
  325 + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他
  326 + if (find2 != 0) {
  327 + var arr0 = new Array();
  328 + arr0.push(sto_arr[i]);
  329 + var item = {
  330 + cat_id: find2,
  331 + name: find2name,
  332 + s_arr: arr0
  333 + };
  334 + newarr.push(item);
  335 + } else {
  336 + qita.push(sto_arr[i]);
  337 + }
66 } 338 }
  339 + }
  340 +
  341 + //----安排其他的分类-----
  342 + if (qita.length > 0) {
  343 + var item = {
  344 + cat_id: -1,
  345 + name: "其他",
  346 + s_arr: qita
  347 + };
  348 + newarr.push(item);
  349 + }
  350 + th.setData({
  351 + is_show_sto_cat: 1,
  352 + all_sto: newarr
  353 + });
  354 +
  355 + } else {
  356 + th.setData({
  357 + is_show_sto_cat: -1,
  358 + only_pk: e.data.data.pageData
  359 + });
  360 + }
  361 + } else {
  362 + th.setData({
  363 + is_show_sto_cat: -1,
  364 + only_pk: e.data.data.pageData
67 }); 365 });
  366 + }
68 } 367 }
  368 + });
  369 + } else {
  370 + th.setData({
  371 + is_show_sto_cat: 0,
  372 + only_pk: e.data.data.pageData
  373 + });
  374 + }
  375 + }
  376 + }, 200)
  377 + console.log(th.data.all_sto + 'eeee');
  378 + },
  379 + //选择更多门店
  380 + more_store: function() {
  381 + this.setData({
  382 + sort_store: 1
  383 + });
  384 + },
  385 + //---选择分类门店---
  386 + choice_sort_store: function(e) {
  387 + var index = e.currentTarget.dataset.index;
  388 + var region_name = e.currentTarget.dataset.region;
  389 + var item = this.data.all_sto[index];
  390 + this.setData({
  391 + region_name: region_name,
  392 + sort_store: 0,
  393 + choice_sort_store: 1,
  394 + sec_sto: item,
  395 + sec_pick_index: 0
  396 + });
  397 + },
  398 + // 返回按钮
  399 + returns: function() {
  400 + this.setData({
  401 + sort_store: 0,
  402 + choice_sort_store: 0
  403 + });
  404 + },
  405 + //身份证号严格校验
  406 + IdentityIDCard: function(e) {
  407 + var code = e.detail.value;
  408 + //身份证号前两位代表区域
  409 + var city = {
  410 + 11: "北京",
  411 + 12: "天津",
  412 + 13: "河北",
  413 + 14: "山西",
  414 + 15: "内蒙古",
  415 + 21: "辽宁",
  416 + 22: "吉林",
  417 + 23: "黑龙江 ",
  418 + 31: "上海",
  419 + 32: "江苏",
  420 + 33: "浙江",
  421 + 34: "安徽",
  422 + 35: "福建",
  423 + 36: "江西",
  424 + 37: "山东",
  425 + 41: "河南",
  426 + 42: "湖北 ",
  427 + 43: "湖南",
  428 + 44: "广东",
  429 + 45: "广西",
  430 + 46: "海南",
  431 + 50: "重庆",
  432 + 51: "四川",
  433 + 52: "贵州",
  434 + 53: "云南",
  435 + 54: "西藏 ",
  436 + 61: "陕西",
  437 + 62: "甘肃",
  438 + 63: "青海",
  439 + 64: "宁夏",
  440 + 65: "新疆",
  441 + 71: "台湾",
  442 + 81: "香港",
  443 + 82: "澳门",
  444 + 91: "国外 "
  445 + };
  446 + //身份证格式正则表达式
  447 + var idCardReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i;
  448 + var errorMess = ""; //错误提示信息
  449 + var isPass = true; //身份证验证是否通过(true通过、false未通过)
  450 +
  451 + //如果身份证不满足格式正则表达式
  452 + if (!code || !idCardReg.test(code)) {
  453 + console.log("您输入的身份证号格式有误!");
  454 + errorMess = "您输入的身份证号格式有误!";
  455 + isPass = false;
  456 + }
  457 +
  458 + //区域数组中不包含需验证的身份证前两位
  459 + else if (!city[code.substr(0, 2)]) {
  460 + errorMess = "您输入的身份证地址编码有误!";
  461 + isPass = false;
  462 + } else {
  463 + //18位身份证需要验证最后一位校验位
  464 + if (code.length == 18) {
  465 + code = code.split('');
  466 + //∑(ai×Wi)(mod 11)
  467 + //加权因子
  468 + var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  469 + //校验位
  470 + var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
  471 + var sum = 0;
  472 + var ai = 0;
  473 + var wi = 0;
  474 + for (var i = 0; i < 17; i++) {
  475 + ai = code[i];
  476 + wi = factor[i];
  477 + sum += ai * wi;
  478 + }
  479 + var last = parity[sum % 11];
  480 + if (parity[sum % 11] != code[17]) {
  481 + errorMess = "您输入的身份证号不存在!";
  482 + isPass = false;
  483 + }
  484 + }
  485 + }
  486 + var returnParam = {
  487 + 'errorMess': errorMess,
  488 + 'isPass': isPass
  489 + }
  490 + if (errorMess != "") {
  491 + wx.showModal({
  492 + title: errorMess,
  493 + content: '',
  494 + showCancel: false,
  495 + confirmText: '确定',
  496 + confirmColor: '',
  497 + success: function(res) {},
  498 + fail: function(res) {},
  499 + complete: function(res) {},
  500 + })
  501 + }
  502 + return returnParam;
  503 + },
  504 + //------初始化加载----------
  505 + onLoad: function(t) {
  506 + this.puls_user();
  507 + this.equity_user();
  508 + this.initial_user();
  509 + },
  510 + //-----------会员是否初始化---------------------
  511 + initial_user: function () {
  512 +
  513 + var th = this;
  514 + getApp().request.get("/api/weshop/users/grade/vip/init/get", {
  515 + data: {
  516 + storeId: r.stoid,
  517 + },
  518 + success: function (su) {
  519 + var isBool = su.data.data.isBool;
  520 + console.log("会员是否初始化", isBool);
  521 + th.setData({isBool:isBool});
  522 + }
  523 + });
  524 + },
  525 + //-----会员等级卡获取---------------
  526 + equity_user:function(){
  527 + var th = this;
  528 + getApp().request.get("/api/weshop/users/grade/aftervipinfo/get", {
  529 + data: {
  530 + storeId: r.stoid,
  531 + userId: getApp().globalData.user_id,
  532 + },
  533 + success: function (su) {
  534 + var gradename=su.data.data.GradeName;
  535 + th.setData({gradename: gradename});
  536 +
  537 + }
  538 + });
  539 + },
  540 +
  541 + //-----Plus会员获取-----------
  542 + puls_user:function(){
  543 + var th=this;
  544 + getApp().request.get("/api/weshop/plus/vip/mem/list", {
  545 + data: {
  546 + storeId: r.stoid,
  547 + userId: getApp().globalData.user_id, },
  548 + success: function (su) {
  549 +
  550 + if (su.data.code == 0) {
  551 + var cardname=su.data.data[0].MemCardName;
  552 + console.log("卡的名字", cardname);
  553 + th.setData({pulscardname:cardname});
  554 + }
  555 + }
  556 + });
  557 + },
  558 + onShow: function() {
  559 +
  560 + this.wait_for_store_config();
  561 + var e = this;
  562 + var req = t;
  563 + req.get("/api/weshop/users/getAndUpdateUser/" + r.stoid + "/" + getApp().globalData.user_id, {
  564 + success: function (src) {
  565 + var a=src.data.data;
  566 + console.log(a,"剩什么llllll",a.data);
  567 + var time = util.formatTime(a.reg_time,"'Y/M/D");
  568 + var birthday = util.formatTime(a.birthday, "'Y/M/D");
  569 + a.reg_time = time;
  570 + a.birthday = birthday
  571 + e.setData({
  572 + phone: a.mobile,
  573 + user: a,
  574 + openid: a.openid,
  575 + sto_sele_id: a.pickup_id,
  576 + consumption: a.paypwd,
  577 + identity_card:a.idcard,
  578 +
  579 + });
  580 + }
  581 + })
  582 + a.getUserInfo(function(a) {
  583 + var txt = util.formatTime(a.birthday, 'yyyy-M-d'),
  584 + arr = txt.split(' ');
  585 + a.birthday = arr[0];
  586 + var txt2 = util.formatTime(a.reg_time, 'yyyy-M-d'),
  587 + arr2 = txt.split(' ');
  588 + a.reg_time = arr2[0];
  589 + if (a.pickup_id!=null) {
  590 + req.get("/api/weshop/pickup/get/" + r.stoid + "/" + a.pickup_id, {
  591 + success: function(da) {
  592 +
  593 + //设置门店
  594 + e.setData({
  595 + stoname: da.data.data.pickup_name
  596 + });
  597 + }
  598 + })
  599 + }
  600 + // var phone = "";
  601 + // phone+=a.mobile.substr(0, 3)+"****";
  602 + // phone += a.mobile.substr(7, 12);
  603 +
  604 +
  605 +
  606 + // e.setData({
  607 + // isGender:e.data.user.sex
  608 + // })
  609 + }, !0);
  610 + },
  611 +
  612 + editUserInfo: function(e) {
  613 + var r = e.currentTarget.dataset.type;
  614 + if (("password" == r || "paypwd" == r) && !this.data.user.mobile) return a.showWarning("请先绑定手机号码");
  615 + r && this.data.user && wx.navigateTo({
  616 + url: "/pages/user/userinfo_edit/userinfo_edit?type=" + r
  617 + });
  618 + },
  619 +
  620 + /*--------------------修改头像---------------------*/
  621 + changeAvatar: function() {
  622 + return false;
  623 + var r = this;
  624 + wx.chooseImage({
  625 + count: 1,
  626 + sizeType: ["compressed", "original"],
  627 + sourceType: ["camera", "album"],
  628 + success: function(u) {
  629 + t.uploadFile(r.data.url + "/api/user/upload_headpic", {
  630 + filePath: u.tempFilePaths[0],
  631 + name: "head_pic",
  632 + success: function(t) {
  633 + var u = s.getFullUrl(t.data.result);
  634 + r.setData(e({}, "user.head_pic", u)), a.globalData.userInfo.head_pic = u, a.showSuccess("设置头像成功");
  635 + }
69 }); 636 });
70 - }, 637 + }
  638 + });
  639 + },
71 640
72 641
73 //------卡片的显示和关闭-------- 642 //------卡片的显示和关闭--------
74 - show_tc: function () { 643 + show_tc: function() {
75 this.setData({ 644 this.setData({
76 tc_hide: false, 645 tc_hide: false,
77 }); 646 });
78 }, 647 },
79 - hide_tc: function () { 648 + hide_tc: function() {
80 this.setData({ 649 this.setData({
81 tc_hide: true, 650 tc_hide: true,
82 }); 651 });
83 }, 652 },
  653 + //消费密码输入框失去焦点事件
  654 + lose_focus:function(e){
  655 + var th=this;
  656 + var val=e.detail.value;
  657 + console.log("是什么东西",val);
  658 + if (val.length > 6 || val!=""){
  659 +
  660 + this.setData({ consumption: val });
  661 + console.log("是什么东西", val);
  662 + }
  663 +
  664 +
  665 + },
  666 +
  667 +//地址
  668 + address:function(e){
  669 + var val = e.detail;
  670 + console.log("地址55555555", val.value);
  671 + this.setData({ address: val.value });
  672 + },
  673 +
  674 + //身份证验证
  675 + identity_card:function(e){
  676 + var val = e.detail;
  677 +
  678 + this.setData({ identity_card: val.value });
  679 +
  680 + },
  681 + //用户名字
  682 + user_name:function(e){
  683 + var name = e.detail.value;
  684 + if (name !=""||name!=null){
  685 +
  686 + this.setData({ user_name: name });
  687 +
  688 + }
  689 +
  690 + },
  691 +
  692 + //点击确认修改信息
  693 + confirm_revision:function(){
  694 + var th=this;
  695 + var isstcsp=th.data.isstcsp;//是否启用消费密码
  696 + var phone=th.data.phone;//手机号码
  697 + if (phone == "" || phone==null){
  698 + getApp().my_warnning("手机不能为空", 0, th);
  699 +
  700 + return false;
  701 + }
  702 +
  703 +
  704 + var consumption = th.data.consumption;//消费密码
  705 + var isstcsp = th.data.isstcsp;
  706 + if(isstcsp==1){
  707 +
  708 + if (consumption==null || consumption=="" || consumption==undefined ){
  709 + getApp().my_warnning("消费密码不能为空", 0, th); return false;
  710 + }
  711 + if (consumption.length < 6){
  712 + getApp().my_warnning("消费密码不能小于6位", 0, th); return false;
  713 + }
  714 + }
  715 + var sex = th.data.isGender;//性别
  716 +
  717 + if (sex!="1"&&sex!="2" ) {
  718 + getApp().my_warnning("请选择性别", 0, th);
  719 + return false;
  720 + }
  721 + var user_name = th.data.user.vipname;//用户姓名
  722 + console.log("名字77777",user_name);
  723 + if (user_name==""|| user_name== null) {
  724 + getApp().my_warnning("请输入名字", 0, th);
  725 + return false;
  726 + }
  727 + var identity_card = th.data.identity_card;//身份证
  728 + console.log("身份证",identity_card);
  729 +
  730 + if (identity_card == "" || identity_card == null ) {
  731 + getApp().my_warnning("请输入身份证", 0, th);
  732 + return false;
  733 + } else if (!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(identity_card))){
  734 + getApp().my_warnning("身份证号码错误",0, th);
  735 + return false;
  736 + }
  737 + var address = th.data.address;//地址
  738 + console.log("地址1010101", address)
  739 + if (address == "" || address == null) {
  740 + getApp().my_warnning("请输入地址", 0, th);
  741 + return false;
  742 + }
  743 + //保存所属门店的id
  744 + var sto_sele_id=th.data.sto_sele_id;
  745 + console.log("请输入所属门店的id", sto_sele_id);
  746 + if (sto_sele_id == null || sto_sele_id==""){
  747 + getApp().my_warnning("请输入所属门店", 0, th);
  748 + return false;
  749 + }
  750 + console.log("要保存的数据", sex, consumption, identity_card, address, user_name);
  751 + var datas = {
  752 + mobile: phone,//手机号码
  753 + store_id: r.stoid,
  754 + user_id: getApp().globalData.user_id,
  755 + vipnopwd: isstcsp,
  756 + vippass: consumption,//消费密码
  757 + sex: sex,//性别
  758 + nickname:user_name,//昵称
  759 + idcard:identity_card,//身份证
  760 + address:address,//地址
  761 + pickup_id: sto_sele_id//自提门店 所属门店
  762 + }
  763 + getApp().request.put("/api/weshop/users/updateUserInfo", {
  764 + data: datas,
  765 + success: function (res) {
  766 +
  767 + if (res.data.code==0){
  768 + getApp().showWarning("修改成功");
  769 + }else{
  770 + getApp().showWarning("修改失败");
  771 + }
  772 +
  773 + }
  774 + })
  775 + }
  776 +
84 }); 777 });
85 \ No newline at end of file 778 \ No newline at end of file
pages/user/userinfo/userinfo.json
1 { 1 {
2 "navigationBarTitleText": "个人资料", 2 "navigationBarTitleText": "个人资料",
3 - "enablePullDownRefresh": false 3 + "enablePullDownRefresh": false,
  4 + "usingComponents": {
  5 + "warn": "/components/long_warn/long_warn"
  6 + }
4 } 7 }
5 \ No newline at end of file 8 \ No newline at end of file
pages/user/userinfo/userinfo.wxml
  1 +<wxs module="filters" src="../../../utils/filter.wxs"></wxs>
1 <view class="container"> 2 <view class="container">
2 - <view class="user-container">  
3 - <view bindtap="changeAvatar" class="user-head">  
4 - <view class="user-txt">头像</view>  
5 - <image class="user_headimg" src="{{user.head_pic?user.head_pic:defaultAvatar}}"></image> 3 +
  4 + <!-- 头像,昵称,多个卡 -->
  5 + <view class="head flex-space-between">
  6 + <view class="flex-center">
  7 +
  8 + <view class="flex-center">
  9 + <image class="Headportrait" src="{{user.head_pic}}"></image>
  10 + </view>
  11 + <view class="flex-center vipmax">
  12 + <view>
  13 + <view class="fs32">
  14 + <view class="ellipsis-1 Nickname">{{user.nickname}}
  15 + </view>
  16 + </view>
  17 +
  18 + <view class="flex-center fs22 vip">
  19 + <block wx:if="{{isBool&&gradename}}">
  20 + <navigator url="">
  21 + <view class="flex-center AncrownMax">
  22 + <image class="Ancrown" src="{{iurl}}/miniapp/images/userqy/user_userqy_huang.png"></image>
  23 + <view>{{gradename}}</view>
  24 + </view>
  25 + </navigator>
  26 + </block>
  27 + <block wx:if="{{user.card_field!=''&& user.card_field!=null && user.card_expiredate!=null&&user.card_expiredate!=null}}">
  28 + <navigator url="/pages/user/plus/plus">
  29 + <view class="flex-center plusMax">
  30 + <image class="fuls" src="{{iurl}}/miniapp/images/userinfo/userinfo/privilege_t.png"></image>
  31 + <view>{{pulscardname}}</view>
  32 + </view>
  33 + </navigator>
  34 + </block>
  35 + </view>
6 </view> 36 </view>
7 - <view bindtap="editUserInfo1" class="user-name" data-type="nickname">  
8 - <view class="user-name-txt">昵称</view>  
9 - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> -->  
10 - <view class="user-txt-right one-line">{{user.nickname}}</view> 37 + </view>
  38 + </view>
  39 + <view class="flex ai_and">
  40 + <view class="flex-level ai_and" style="background-image:url({{iurl}}/miniapp/images/userinfo/userinfo/code.png);width:170rpx;height:140rpx;background-size:100%;" bindtap="show_tc">
  41 + <view class="fs26 code" style="color:rgb(255,255,255);margin-left:9rpx;">我的二维码</view>
  42 + </view>
  43 + </view>
  44 + </view>
  45 +
  46 + <view class="user-container">
  47 + <view class="Bbottom">
  48 + <view bindtap="changeAvatar" class="user-head flex-vertical-between">
  49 + <view class="user-txt">卡号</view>
  50 + <view class="user-txt-right">{{user.erpvipno}}
11 </view> 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 </view> 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 </view> 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 </view> 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 </view> 143 </view>
  144 + </view>
  145 + </view>
  146 + <view class="Bbottom">
  147 + <view bindtap="editUserInfo1" class="user-name mt flex-vertical-between" data-type="nickname">
  148 + <view class="user-name-txt">姓名</view>
  149 + <input bindblur="user_name" class="user-txt-right t-r" placeholder="*姓名" value='{{user.vipname}}'/>
  150 + </view>
46 151
47 - <view bindtap="editUserInfo1" class="user-name" data-type="email">  
48 - <view class="user-name-txt">所属门店</view>  
49 - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> -->  
50 - <view class="user-txt-right one-line">{{stoname}}</view>  
51 - </view>  
52 - <!-- <view bindtap="editUserInfo1" class="user-change" data-type="password">  
53 - <view class="user-name-txt">修改密码</view>  
54 - <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image>  
55 - </view>  
56 - <view bindtap="editUserInfo1" class="user-name" data-type="paypwd">  
57 - <view class="user-name-txt">支付密码</view>  
58 - <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image>  
59 - </view> -->  
60 - <navigator class="user-name mt" url="/pages/user/address_list/address_list">  
61 - <view class="user-name-txt">收货地址</view>  
62 - <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image>  
63 - </navigator>  
64 - <view bindtap='show_tc' class="user-name" data-type="email">  
65 - <view class="user-name-txt">我的二维码名片</view>  
66 - <image class="arrow-right" src="{{iurl}}/miniapp/images/user/code.png"></image> 152 + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="nickname">
  153 + <view class="user-name-txt">身份证</view>
  154 +
  155 + <input bindblur="identity_card" class="user-txt-right t-r" value="{{user.idcard}}" placeholder="*身份证"></input>
  156 +
  157 +
  158 + <!-- <block wx:else>
  159 + <input class="user-txt-right" bindblur="IdentityIDCard" value="" type="idcard" maxlength="18" placeholder="*身份证" />
  160 + </block> -->
  161 + </view>
  162 + <navigator url="/pages/user/Change_phone/Change_phone?mobile={{user.mobile}}" class="user-name flex-vertical-between" data-type="mobile">
  163 + <view class="user-name-txt">更换手机</view>
  164 + <view class="flex-center user-txt-right">
  165 + <view class="flex">{{phone}}</view>
  166 + <view class="angle">∟</view>
67 </view> 167 </view>
68 - <view bindtap="editUserInfo1" class="user-name" data-type="email">  
69 - <view class="user-name-txt">绑定的时间</view>  
70 - <!-- <image class="arrow-right" src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image> -->  
71 - <view class="user-txt-right one-line">{{user.reg_time}}</view> 168 + </navigator>
  169 + <view class="user-name flex-vertical-between" data-type="mobile">
  170 + <view class="user-name-txt">地址</view>
  171 + <!-- <block wx:if="{{user.address.length>0}}">
  172 + <view>{{user.address}}</view>
  173 + </block>
  174 + <block wx:else> -->
  175 + <input bindblur="address" maxlength="30" value="{{user.address}}" class="user-txt-right" placeholder="*地址" style="text-align:right" />
  176 + <!-- </block> -->
  177 + </view>
  178 +
  179 + <view bindtap="onclickstore" class="user-name flex-vertical-between" data-type="email">
  180 + <view class="user-name-txt">所属门店</view>
  181 + <view class="flex-center user-txt-right">
  182 + <view class="one-line">{{stoname}}
  183 + </view>
  184 +
  185 + <view class="angle">∟</view>
72 </view> 186 </view>
  187 + </view>
73 </view> 188 </view>
  189 + <navigator class="user-name mt flex-vertical-between" url="/pages/user/address_list/address_list">
  190 + <view class="user-name-txt">收货地址</view>
  191 + <view class="flex-center user-txt-right">
  192 + <!-- <view class="flex">{{user.address_id}}</view> -->
  193 + <view class="angle">∟</view>
  194 + </view>
  195 + </navigator>
  196 + <view bindtap="editUserInfo1" class="user-name flex-vertical-between" data-type="email">
  197 + <view class="user-name-txt">绑定的时间</view>
  198 + <view class="user-txt-right one-line">{{filters.replace_time2(user.reg_time)}}</view>
  199 + </view>
  200 + </view>
  201 +</view>
  202 +<!-- 确认修改按钮 -->
  203 +<view class="flex-center confirm">
  204 + <view class="flex-center fs30 confirmtext"bindtap="confirm_revision">
  205 + <view>确认修改</view>
  206 + </view>
74 </view> 207 </view>
75 208
76 <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"--> 209 <!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"-->
77 <view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'> 210 <view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'>
78 <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view> 211 <view class="modal-box" hidden="{{flag}}" bindtap="hide"></view>
79 <view class="modal-body"> 212 <view class="modal-body">
80 - <view class="modal-content">  
81 - <view class="flex">  
82 - <image src="{{user.head_pic}}" class="hd_img"></image>  
83 - <view class="ctent_txt">  
84 - <view class='txt1'>{{user.nickname}}  
85 - <image wx:if="{{user.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image>  
86 - <image wx:else class="arrow-right" src="{{iurl}}/miniapp/images/user/man.png"></image>  
87 - </view>  
88 - <view class='txt2' wx:if="{{user.address}}">{{user.address}}</view>  
89 - </view>  
90 - </view>  
91 - <view class="m_ta">  
92 - <image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{user.mobile}}'></image>  
93 - </view>  
94 - <view class="s_sao">扫一扫上面的二维码图案,即可消费</view> 213 + <view class="modal-content">
  214 + <view class="flex">
  215 + <image src="{{user.head_pic}}" class="hd_img"></image>
  216 + <view class="ctent_txt">
  217 + <view class='txt1'>{{user.nickname}}
  218 + <image wx:if="{{user.sex==2}}" class="arrow-right" src="{{iurl}}/miniapp/images/user/wum.png"></image>
  219 + <image wx:else class="arrow-right" src="{{iurl}}/miniapp/images/user/man.png"></image>
  220 + </view>
  221 + <view class='txt2' wx:if="{{user.address}}">{{user.address}}</view>
  222 + </view>
95 </view> 223 </view>
  224 + <view class="m_ta">
  225 + <image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{user.mobile}}'></image>
  226 + </view>
  227 + <view class="s_sao">扫一扫上面的二维码图案,即可消费</view>
  228 + </view>
96 </view> 229 </view>
97 </view> 230 </view>
  231 +
  232 +<!-- 选择门店的弹框,1.1版最新的 -->
  233 +<block wx:if="{{store==1}}">
  234 + <view class="mongolia-layer" bindtap="onclickstore"></view>
  235 + <view class="popup-frame">
  236 + <block wx:if="{{sort_store==0}}">
  237 + <!-- 头部 标题 -->
  238 + <view class="popup-top flex-space-between">
  239 + <text class="fs32 nearby_store">{{choice_sort_store==0?'附近的门店':region_name}}</text>
  240 + <view>
  241 + <view>
  242 + <icon bindtap="onclickstore" class="modal-closes" color="black" size="22" type="cancel"></icon>
  243 + </view>
  244 + <view class="felx choose_more" bindtap="more_store">
  245 + <text class="fs26 red-co" wx:if="{{is_show_sto_cat}}">{{choice_sort_store==0?'更多门店':'返回'}}</text>
  246 + <view class="bg_rights"></view>
  247 + </view>
  248 + </view>
  249 + </view>
  250 + <!-- 门店列表,最外层的门店列表,一开始 -->
  251 + <view class="store-list">
  252 + <!--如果还没有点击更多门店的时候 -->
  253 + <block wx:if="{{choice_sort_store==0}}">
  254 + <!-- 需要for循环 -->
  255 + <block wx:if="is_show_sto_cat==1">
  256 + <view class="store_choose flex" wx:for="{{def_pickpu_list}}" bindtap="choose_for_store_fir" data-ind="{{index}}">
  257 + <view class="store flex-vertical">
  258 + <!-- 需要点击事件 -->
  259 + <block wx:if="{{index==fir_pick_index}}">
  260 + <view class="circle white xc-hook fs20 red-b">Г</view>
  261 + </block>
  262 + <block wx:else>
  263 + <view class="circle xc-hooks"></view>
  264 + </block>
  265 + <view class="address-frame xc-ash">
  266 + <view class="flex-vertical-between butttem5">
  267 + <view class="flex xc-ash">
  268 + <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view>
  269 + </view>
  270 + <view>
  271 + <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}">
  272 + 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+'km':filters.toFix(item.distance,0)+"m"}}</view>
  273 + </view>
  274 + </view>
  275 + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view>
  276 + </view>
  277 + </view>
  278 + </view>
  279 + </block>
  280 + <block wx:else>
  281 + <view class="store_choose flex" wx:for="{{only_pk}}" bindtap="choose_for_store_fir" data-ind="{{index}}">
  282 + <view class="store flex-vertical">
  283 + <!-- 需要点击事件 -->
  284 + <block wx:if="{{index==fir_pick_index}}">
  285 + <view class="circle white xc-hook fs20 red-b">Г</view>
  286 + </block>
  287 + <block wx:else>
  288 + <view class="circle xc-hooks"></view>
  289 + </block>
  290 +
  291 + <view class="address-frame xc-ash">
  292 + <view class="flex-vertical-between ">
  293 + <view class="flex xc-ash">
  294 + <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view>
  295 + </view>
  296 + <view>
  297 + <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}">距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}}
  298 + </view>
  299 + </view>
  300 + </view>
  301 + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view>
  302 + </view>
  303 + </view>
  304 + </view>
  305 + </block>
  306 + </block>
  307 + <block wx:else>
  308 + <!-- 如果是点击选择门店分类后显示分类下的门店 -->
  309 + <view class="store_choose flex" wx:for="{{sec_sto.s_arr}}" data-ind="{{index}}" bindtap="choose_for_store">
  310 + <view class="store flex-vertical">
  311 + <!-- 需要点击事件 -->
  312 + <block wx:if="{{index==sec_pick_index}}">
  313 + <view class="circle white xc-hook fs20 red-b">Г</view>
  314 + </block>
  315 + <block wx:else>
  316 + <view class="circle xc-hooks"></view>
  317 + </block>
  318 +
  319 + <view class="address-frame xc-ash">
  320 + <view class="flex-vertical-between ">
  321 + <view class="flex xc-ash">
  322 + <view class="fs28 xc-black3 address_name">{{item.pickup_name}}</view>
  323 + </view>
  324 + <view>
  325 + <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}"> 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}}</view>
  326 + </view>
  327 + </view>
  328 + <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</view>
  329 + </view>
  330 + </view>
  331 + </view>
  332 + </block>
  333 +
  334 + </view>
  335 +
  336 + <!-- 门店列表底部 -->
  337 + <view class="store-bottom-frame">
  338 + <view class="store-bottom flex-center">
  339 + <view class="determine red-b fs30 white t-c" bindtap="sure_pick" data-openindstore="{{open_ind_store}}">确定</view>
  340 + <!-- <view class="default t-c fs28" bindtap="set_def_pick" data-openindstore="{{open_ind_store}}">设为默认</view> -->
  341 + </view>
  342 + </view>
  343 +
  344 + </block>
  345 +
  346 +
  347 + <block wx:else>
  348 + <view class="popup-top flex-space-between">
  349 + <text class="fs32 nearby_store">门店分类选择</text>
  350 + <view>
  351 + <view>
  352 + <icon bindtap="onclickstore" class="modal-closes" color="black" size="22" type="cancel"></icon>
  353 + </view>
  354 + </view>
  355 + </view>
  356 + <view class="sort_store_list">
  357 +
  358 + <view class="sort-store-frame" wx:for="{{all_sto}}" data-index="{{index}}" bindtap="choice_sort_store" data-region="{{item.name}}">
  359 + <view class="sort-store flex-vertical-between">
  360 + <view class="fs30" di>{{item.name}}</view>
  361 + <view class="black_rights-frame">
  362 + <view class="black_rights"></view>
  363 + </view>
  364 + </view>
  365 + </view>
  366 +
  367 + </view>
  368 + </block>
  369 + </view>
  370 +</block>
  371 +<warn id="warn"></warn>
98 \ No newline at end of file 372 \ No newline at end of file
pages/user/userinfo/userinfo.wxss
  1 +.container{
  2 + padding-bottom:165rpx;
  3 + transform: translate()
  4 +}
1 .user-container { 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 .user_headimg { 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 .user-name { 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 .user-change { 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 .one-line { 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 .arrow-right { 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 overflow: hidden; 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 \ No newline at end of file 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 \ No newline at end of file 41 \ No newline at end of file
utils/util.js
@@ -258,6 +258,7 @@ function get_rand_item(arr){ @@ -258,6 +258,7 @@ function get_rand_item(arr){
258 return arr[ind]; 258 return arr[ind];
259 } 259 }
260 260
  261 +
261 function getDistance(lat1, lng1, lat2, lng2){ 262 function getDistance(lat1, lng1, lat2, lng2){
262 var radLat1 = lat1*Math.PI / 180.0; 263 var radLat1 = lat1*Math.PI / 180.0;
263 var radLat2 = lat2*Math.PI / 180.0; 264 var radLat2 = lat2*Math.PI / 180.0;
@@ -269,6 +270,45 @@ function getDistance(lat1, lng1, lat2, lng2){ @@ -269,6 +270,45 @@ function getDistance(lat1, lng1, lat2, lng2){
269 return s; 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 module.exports = { 312 module.exports = {
273 formatTime: function(e, r) { 313 formatTime: function(e, r) {
274 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) { 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,5 +399,6 @@ module.exports = {
359 measureText: measureText,//画布需要的函数 399 measureText: measureText,//画布需要的函数
360 check_mobile: check_mobile,//验证手机 400 check_mobile: check_mobile,//验证手机
361 get_rand_item:get_rand_item, //随机获取元素 401 get_rand_item:get_rand_item, //随机获取元素
362 - getDistance:getDistance //获取俩个经纬网度之间的距离 402 + getDistance:getDistance, //获取俩个经纬网度之间的距离
  403 + draw_randon_rect:draw_randon_rect //画图画圆角矩形
363 }; 404 };