Commit 32d41c0b79ef3b9255049d61ece2426425c366ed
1 parent
f325aca9
会员中心自定义模板的优化
Showing
14 changed files
with
1207 additions
and
83 deletions
components/diy_user_info/diy_user_info.js
1 | +const rq = require("../../utils/request.js"); | ||
2 | +const ut = require("../../utils/util.js"); | ||
3 | +const {qrcode} = require("../../utils/index.js"); | ||
1 | var s = getApp().globalData.setting; | 4 | var s = getApp().globalData.setting; |
5 | +var r=s; | ||
2 | Component({ | 6 | Component({ |
3 | properties: { | 7 | properties: { |
4 | object: { | 8 | object: { |
5 | type: Object, | 9 | type: Object, |
6 | value: null | 10 | value: null |
7 | }, | 11 | }, |
8 | - is_temp:{ | ||
9 | - type:Number, | ||
10 | - value:0 | ||
11 | - } | 12 | + qy_data:{ |
13 | + type: Object, | ||
14 | + value: null | ||
15 | + }, | ||
16 | + pulscardname:{ | ||
17 | + type:String, | ||
18 | + value:"--" | ||
19 | + }, | ||
20 | + rfmName:{ | ||
21 | + type:String, | ||
22 | + value:"--" | ||
23 | + }, | ||
12 | // 这里定义了innerText属性,属性值可以在组件使用时指定 | 24 | // 这里定义了innerText属性,属性值可以在组件使用时指定 |
13 | }, | 25 | }, |
14 | data: { | 26 | data: { |
15 | // 这里是一些组件内部数据 | 27 | // 这里是一些组件内部数据 |
16 | iurl: s.imghost, | 28 | iurl: s.imghost, |
17 | defaultAvatar: s.imghost + "/miniapp/images/no-head.jpg", | 29 | defaultAvatar: s.imghost + "/miniapp/images/no-head.jpg", |
18 | - userInfo:null | 30 | + userInfo:null, |
31 | + | ||
32 | + sys_switch:null, | ||
33 | + tc_hide:true, //会员卡的弹出层隐藏 | ||
19 | }, | 34 | }, |
20 | 35 | ||
21 | ready: function() { | 36 | ready: function() { |
22 | - if(this.properties.is_temp==1){ | 37 | + var th=this; |
38 | + | ||
39 | + if(getApp().globalData.userInfo){ | ||
40 | + this.setData({userInfo:getApp().globalData.userInfo}); | ||
41 | + } | ||
42 | + | ||
43 | + /*-------系统是否开通等级卡,会员是等级卡-----*/ | ||
44 | + getApp().getConfig2(function (e) { | ||
45 | + var t_swi = e.switch_list; | ||
46 | + if (t_swi) t_swi = JSON.parse(t_swi) | ||
47 | + if (t_swi) { | ||
48 | + th.setData({sys_switch: t_swi}); | ||
49 | + } | ||
50 | + }) | ||
23 | 51 | ||
24 | - }else{ | 52 | + }, |
25 | 53 | ||
26 | - } | 54 | + pageLifetimes: { |
55 | + //要处理一下,游客登录后的界面的变化,主要还该是改变会员 | ||
56 | + show: function () { | ||
57 | + if(!this.data.userInfo && getApp().globalData.userInfo){ | ||
58 | + this.setData({userInfo:getApp().globalData.userInfo}); | ||
59 | + } | ||
60 | + } | ||
27 | }, | 61 | }, |
28 | 62 | ||
63 | + | ||
29 | methods: { | 64 | methods: { |
65 | + //登陆会员 | ||
66 | + login_user(){ | ||
67 | + getApp().goto('/packageE/pages/togoin/togoin'); | ||
68 | + }, | ||
69 | + //------卡片的显示和关闭-------- | ||
70 | + show_tc: function () { | ||
71 | + var that=this; | ||
72 | + if (!this.data.userInfo) return false; | ||
73 | + var getnowtime; | ||
74 | + getApp().request.get("/api/weshop/users/getServerTime", { | ||
75 | + success: function (res) { | ||
76 | + if (res.data.code == 0) | ||
77 | + { | ||
78 | + getnowtime=res.data.data; | ||
79 | + if (!getnowtime) | ||
80 | + { | ||
81 | + ut.m_toast("获取服务时间失败"); | ||
82 | + return; | ||
83 | + } | ||
84 | + //base64_encode($user.mobile.'|'.date('Y-m-d H:i:s') | ||
85 | + var val = that.data.userInfo.mobile + "|" +getnowtime+"|"+that.data.getusercode_vailtime; | ||
86 | + val = "^" + ut.base64_encode(val); | ||
87 | + | ||
88 | + qrcode('qrcode', val, 480, 480, that); | ||
89 | + that.setData({ | ||
90 | + tc_hide: false, | ||
91 | + }); | ||
92 | + } | ||
93 | + } | ||
94 | + }) | ||
95 | + }, | ||
96 | + //隐藏会员卡 | ||
97 | + hide_tc: function () { | ||
98 | + this.setData({ | ||
99 | + tc_hide: true, | ||
100 | + }); | ||
101 | + }, | ||
102 | + | ||
103 | + //--跳转到预存款页面-- | ||
104 | + deposit: function () { | ||
105 | + if (!this.data.userInfo) | ||
106 | + { | ||
107 | + this.login_user(); | ||
108 | + return false; | ||
109 | + } | ||
110 | + wx.navigateTo({ | ||
111 | + url: '/packageD/pages/user/deposit/deposit', | ||
112 | + }) | ||
113 | + }, | ||
114 | + //--跳转到余额页面-- | ||
115 | + balance: function () { | ||
116 | + if (!this.data.userInfo) | ||
117 | + { | ||
118 | + this.login_user(); | ||
119 | + return false; | ||
120 | + }; | ||
121 | + wx.navigateTo({ | ||
122 | + url: '/packageD/pages/user/member/menber', | ||
123 | + }) | ||
124 | + }, | ||
125 | + //--跳转到优惠券-- | ||
126 | + coupon: function () { | ||
127 | + var th = this; | ||
128 | + if (!this.data.userInfo) | ||
129 | + { | ||
130 | + this.login_user(); | ||
131 | + return false; | ||
132 | + }; | ||
133 | + // th.sendsm(); | ||
134 | + wx.navigateTo({ | ||
135 | + url: '/packageD/pages/user/coupons/coupons', | ||
136 | + }) | ||
137 | + }, | ||
138 | + //--跳转到积分-- | ||
139 | + integral: function () { | ||
140 | + if (!this.data.userInfo) | ||
141 | + { | ||
142 | + this.login_user(); | ||
143 | + return false; | ||
144 | + } | ||
145 | + wx.navigateTo({ | ||
146 | + url: '/packageD/pages/user/integral/integral', | ||
147 | + }) | ||
148 | + }, | ||
149 | + | ||
150 | + jump: function () { | ||
151 | + let isRfm = wx.getStorageSync('isRfm') | ||
152 | + //升级为RFM就不跳转成长值详情 | ||
153 | + if (!isRfm) { | ||
154 | + getApp().goto("/packageE/pages/user/grow_value/grow_value") | ||
155 | + } | ||
156 | + }, | ||
157 | + | ||
158 | + //跳转到链接 | ||
159 | + goto: function (e) { | ||
160 | + console.log(e); | ||
161 | + console.log('跳转'); | ||
162 | + var url = e.currentTarget.dataset.url; | ||
163 | + wx.navigateTo({ url: url }) | ||
164 | + | ||
165 | + }, | ||
166 | + | ||
30 | 167 | ||
31 | } | 168 | } |
32 | }) | 169 | }) |
33 | \ No newline at end of file | 170 | \ No newline at end of file |
components/diy_user_info/diy_user_info.wxml
1 | <view class="xc-user" > | 1 | <view class="xc-user" > |
2 | <view class="xc-head rel"> | 2 | <view class="xc-head rel"> |
3 | - | ||
4 | - <block wx:if="{{object.bg_type==0}}"> | 3 | + <block wx:if="{{object.bg_type==1}}"> |
5 | <image class="xc-background" src="{{iurl}}{{ad_img?ad_img:'/miniapp/images/user_index_powder.jpg'}}"> | 4 | <image class="xc-background" src="{{iurl}}{{ad_img?ad_img:'/miniapp/images/user_index_powder.jpg'}}"> |
6 | - <include src="style1.wxml"></include> | 5 | + <block vw:if="{{object.style==0}}"> |
6 | + <include src="style1.wxml"></include>s | ||
7 | + </block> | ||
8 | + | ||
7 | </image> | 9 | </image> |
8 | </block> | 10 | </block> |
9 | - | ||
10 | <block wx:else> | 11 | <block wx:else> |
11 | - <view class="xc-background" style="background-color:"> | ||
12 | - | ||
13 | - | 12 | + <view class="xc-background" style="background-color:{{object.bg_color}}"> |
13 | + <block vw:if="{{object.style==0}}"> | ||
14 | + <include src="style1.wxml"></include> | ||
15 | + </block> | ||
14 | </view> | 16 | </view> |
15 | - | ||
16 | - | ||
17 | </block> | 17 | </block> |
18 | - | ||
19 | - | ||
20 | </view> | 18 | </view> |
21 | - | ||
22 | </view> | 19 | </view> |
23 | 20 | ||
24 | <block wx:if="{{is_no_plus}}"> | 21 | <block wx:if="{{is_no_plus}}"> |
@@ -45,4 +42,30 @@ | @@ -45,4 +42,30 @@ | ||
45 | </view> | 42 | </view> |
46 | </view> | 43 | </view> |
47 | </view> | 44 | </view> |
48 | -</block> | ||
49 | \ No newline at end of file | 45 | \ No newline at end of file |
46 | +</block> | ||
47 | + | ||
48 | + | ||
49 | + | ||
50 | +<!--弹出层内容,其中的“我知道”中绑定让弹出层消失的函数:bindtap="hide"--> | ||
51 | +<view class="tc_view" hidden='{{tc_hide}}' bindtap='hide_tc'> | ||
52 | + <view class="modal-box" hidden="{{flag}}" bindtap="hide" catchtouchmove="true"></view> | ||
53 | + <view class="modal-body" catchtouchmove="true"> | ||
54 | + <view class="modal-content"> | ||
55 | + <view class="flex"> | ||
56 | + <image src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}" class="hd_img"></image> | ||
57 | + <view class="ctent_txt"> | ||
58 | + <view class='txt1'>{{userInfo.nickname}} | ||
59 | + <image wx:if="{{userInfo.sex==2}}" class="arrow-right" style="width: 35rpx; height:35rpx; top: 5rpx" src="{{iurl}}/miniapp/images/user/wum.png"></image> | ||
60 | + <image wx:else class="arrow-right fu" style="width: 35rpx; height:35rpx;top:5rpx" src="{{iurl}}/miniapp/images/user/man.png"></image> | ||
61 | + </view> | ||
62 | + <view wx:if="{{userInfo.address}}" class='txt2'>{{userInfo.address}}</view> | ||
63 | + </view> | ||
64 | + </view> | ||
65 | + <view class="m_ta"> | ||
66 | + <!--<image class='g_img' src='https://mshop.yolipai.net//index.php?m=Home&c=Index&a=qr_code&data={{userInfo.mobile}}'></image>--> | ||
67 | + <canvas class="g_img" canvas-id="qrcode" /> | ||
68 | + </view> | ||
69 | + <view class="s_sao">前台收银扫此二维码,即可享受优惠!</view> | ||
70 | + </view> | ||
71 | + </view> | ||
72 | +</view> | ||
50 | \ No newline at end of file | 73 | \ No newline at end of file |
components/diy_user_info/diy_user_info.wxss
@@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
37 | 37 | ||
38 | /*-- 头部 --*/ | 38 | /*-- 头部 --*/ |
39 | .xc-user .xc-head { | 39 | .xc-user .xc-head { |
40 | - height: 335rpx; | 40 | + height: 370rpx; |
41 | } | 41 | } |
42 | 42 | ||
43 | .xc-background { | 43 | .xc-background { |
@@ -122,3 +122,99 @@ | @@ -122,3 +122,99 @@ | ||
122 | line-height: 46rpx; | 122 | line-height: 46rpx; |
123 | margin-left: 10rpx; | 123 | margin-left: 10rpx; |
124 | } | 124 | } |
125 | + | ||
126 | + | ||
127 | +.xc-qrcode-frame { | ||
128 | + /* border-radius: 10rpx; | ||
129 | + border: 5rpx solid #fe9db5; | ||
130 | + background: #fe9db5; | ||
131 | + width: 70rpx; | ||
132 | + height: 70rpx; */ | ||
133 | + top: 70rpx; | ||
134 | + right: 64rpx; | ||
135 | +} | ||
136 | + | ||
137 | +.xc-qrcode { | ||
138 | + border-radius: 10rpx; | ||
139 | + border: 5rpx solid #fe9db5; | ||
140 | + background: #fe9db5; | ||
141 | + width: 70rpx; | ||
142 | + height: 70rpx; | ||
143 | +} | ||
144 | + | ||
145 | +/*---弹出层---*/ | ||
146 | +.modal-box { | ||
147 | + position: fixed; | ||
148 | + width: 100%; | ||
149 | + height: 100%; | ||
150 | + top: 0px; | ||
151 | + background: rgba(0, 0, 0, 0.4); | ||
152 | + overflow: hidden; | ||
153 | +} | ||
154 | + | ||
155 | +.modal-body { | ||
156 | + position: fixed; | ||
157 | + top: 0; | ||
158 | + bottom: 0; | ||
159 | + left: 0; | ||
160 | + right: 0; | ||
161 | + margin: auto; | ||
162 | + z-index: 100; | ||
163 | + background: #fff; | ||
164 | + /* margin-left: 73rpx; */ | ||
165 | + width: 600rpx; | ||
166 | + height: 860rpx; | ||
167 | + border-radius: 8px; | ||
168 | + text-align: center; | ||
169 | +} | ||
170 | + | ||
171 | +.modal-content { | ||
172 | + width: 480rpx; | ||
173 | + margin: 0 auto; | ||
174 | + margin-top: 60rpx; | ||
175 | + overflow: hidden; | ||
176 | +} | ||
177 | + | ||
178 | +.modal-content .hd_img { | ||
179 | + width: 170rpx; | ||
180 | + height: 170rpx; | ||
181 | + border-radius: 5px; | ||
182 | +} | ||
183 | + | ||
184 | +.ctent_txt { | ||
185 | + margin-left: 30rpx; | ||
186 | + text-align: left; | ||
187 | +} | ||
188 | + | ||
189 | +.txt1 { | ||
190 | + font-size: 34rpx; | ||
191 | + font-weight: bold; | ||
192 | +} | ||
193 | + | ||
194 | +.txt2 { | ||
195 | + font-size: 30rpx; | ||
196 | + color: #999; | ||
197 | + margin-top: 20rpx; | ||
198 | +} | ||
199 | + | ||
200 | +.arrow-right { | ||
201 | + width: 20rpx; | ||
202 | + height: 40rpx; | ||
203 | + position: relative; | ||
204 | + top: 13rpx; | ||
205 | + margin-left: 20rpx; | ||
206 | +} | ||
207 | + | ||
208 | +.m_ta { | ||
209 | + margin-top: 50rpx; | ||
210 | +} | ||
211 | + | ||
212 | +.g_img { | ||
213 | + width: 480rpx; | ||
214 | + height: 480rpx; | ||
215 | +} | ||
216 | + | ||
217 | +.s_sao { | ||
218 | + font-size: 27rpx; | ||
219 | + margin-top: 25rpx; | ||
220 | +} |
components/diy_user_info/style1.wxml
@@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
6 | 6 | ||
7 | <view style="position:relative;"> | 7 | <view style="position:relative;"> |
8 | <image class="xc-user-img circle" bindtap="go_info" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image> | 8 | <image class="xc-user-img circle" bindtap="go_info" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image> |
9 | - <block wx:if="{{pulscardname && sys_switch.rank_switch > 0 }}"> | 9 | + <block wx:if="{{pulscardname && sys_switch.rank_switch > 0 && object.is_plus }}"> |
10 | <view data-url="/pages/user/plus/plus" catchtap="goto" class="flex-center plusMax"> | 10 | <view data-url="/pages/user/plus/plus" catchtap="goto" class="flex-center plusMax"> |
11 | <image class="fuls" src="{{iurl}}/miniapp/images/userinfo/userinfo/privilege_t.png"></image> | 11 | <image class="fuls" src="{{iurl}}/miniapp/images/userinfo/userinfo/privilege_t.png"></image> |
12 | <view>{{pulscardname}}</view> | 12 | <view>{{pulscardname}}</view> |
@@ -14,18 +14,19 @@ | @@ -14,18 +14,19 @@ | ||
14 | </block> | 14 | </block> |
15 | </view> | 15 | </view> |
16 | 16 | ||
17 | - <view class="xc-uesr-name"> | 17 | + <view class="xc-uesr-name" style="color:{{object.word_color}}"> |
18 | <view class="flex ai-center"> | 18 | <view class="flex ai-center"> |
19 | <text class="ellipsis-1" style="max-width: 290rpx;display: inline-block">{{userInfo.nickname}}</text> | 19 | <text class="ellipsis-1" style="max-width: 290rpx;display: inline-block">{{userInfo.nickname}}</text> |
20 | - <view class="hvip" wx:if='{{GradeName && is_init}}'> | ||
21 | - <image class="vip-mem" src="{{iurl}}/miniapp/images/vip_hg0.png"></image>{{GradeName}} | 20 | + |
21 | + <view class="hvip" wx:if='{{qy_data && qy_data.GradeName && qy_data.is_init && object.is_qy}}'> | ||
22 | + <image class="vip-mem" src="{{iurl}}/miniapp/images/vip_hg0.png"></image>{{qy_data.GradeName}} | ||
22 | </view> | 23 | </view> |
23 | </view> | 24 | </view> |
24 | - <view class="flex fs24 xc-grow-ups" style="margin-left:8rpx;margin-top:6rpx" wx:if="{{is_init && gradeId}}" bindtap='jump'> | ||
25 | - <block wx:if="{{cz_val<full_cz_val}}"> | 25 | + <view class="flex fs24 xc-grow-ups" style="margin-left:8rpx;margin-top:6rpx" wx:if="{{qy_data && qy_data.is_init && qy_data.gradeId && object.is_cz}}" bindtap='jump'> |
26 | + <block wx:if="{{qy_data.cz_val<qy_data.full_cz_val}}"> | ||
26 | {{" "}} | 27 | {{" "}} |
27 | <text class="grow-up-val" style="background:{{usertop_ad.bgcolor?usertop_ad.bgcolor:'#fe9db5'}};">{{rfmName}}</text> | 28 | <text class="grow-up-val" style="background:{{usertop_ad.bgcolor?usertop_ad.bgcolor:'#fe9db5'}};">{{rfmName}}</text> |
28 | - <view style='margin-left:5rpx; '>{{cz_val}} / {{need_money}}</view> | 29 | + <view style='margin-left:5rpx; '>{{qy_data.cz_val}} / {{qy_data.need_money}}</view> |
29 | </block> | 30 | </block> |
30 | <block wx:else> | 31 | <block wx:else> |
31 | {{" "}} | 32 | {{" "}} |
@@ -37,16 +38,16 @@ | @@ -37,16 +38,16 @@ | ||
37 | </view> | 38 | </view> |
38 | 39 | ||
39 | <!-- 会员没有登陆的情况 --> | 40 | <!-- 会员没有登陆的情况 --> |
40 | - <view class="xc-user-left flex" wx:else bindtap="gobindtel"> | ||
41 | - <image class="xc-user-img circle" src="{{userInfo.head_pic?userInfo.head_pic:defaultAvatar}}"></image> | ||
42 | - <view class="xc-uesr-name">请点击注册</view> | 41 | + <view class="xc-user-left flex" wx:else bindtap="login_user"> |
42 | + <image class="xc-user-img circle" src="{{defaultAvatar}}"></image> | ||
43 | + <view class="xc-uesr-name" style="color:{{object.word_color}}">请点击注册</view> | ||
43 | </view> | 44 | </view> |
44 | </view> | 45 | </view> |
45 | 46 | ||
46 | 47 | ||
47 | -<view wx:if="{{userInfo}}" class="xc-qrcode-frame abs "> | ||
48 | - <image bindtap='show_tc' class=" xc-qrcode " style="border: 5rpx solid {{usertop_ad.bgcolor?usertop_ad.bgcolor:'#fe9db5'}};background: {{usertop_ad.bgcolor?usertop_ad.bgcolor:'#fe9db5'}};" src="{{iurl}}/miniapp/images/qrcode1.png"></image> | ||
49 | - <view style="font-size:12px;color: #fff;">会员卡</view> | 48 | +<view wx:if="{{userInfo && object.is_user_card}}" class="xc-qrcode-frame abs "> |
49 | + <image bindtap='show_tc' class=" xc-qrcode " style="border: 5rpx solid #fe9db5;background: #fe9db5;" src="{{iurl}}/miniapp/images/qrcode1.png"></image> | ||
50 | + <view style="font-size:12px;color:{{object.word_color}}">会员卡</view> | ||
50 | </view> | 51 | </view> |
51 | 52 | ||
52 | <view class="flex-vertical abs xc-grow-frame rel" style="display: none"> | 53 | <view class="flex-vertical abs xc-grow-frame rel" style="display: none"> |
@@ -61,22 +62,32 @@ | @@ -61,22 +62,32 @@ | ||
61 | 62 | ||
62 | 63 | ||
63 | <!-- 底部显示余额,储值卡,积分,优惠券等 --> | 64 | <!-- 底部显示余额,储值卡,积分,优惠券等 --> |
64 | -<view class="flex-equality abs xc-assets"> | ||
65 | - <view class="t-c typefont" bindtap='balance'>{{yuer?yuer:0}} | ||
66 | - <view class='numfont'>余额</view> | ||
67 | - </view> | ||
68 | - <!-- 是否关闭 --> | ||
69 | - <block wx:if="{{!is_close_chuzhi}}"> | ||
70 | - <view class="t-c typefont" bindtap='deposit'>{{udata.Balance?udata.Balance:0}} | ||
71 | - <view class='numfont'>储值款</view> | ||
72 | - </view> | ||
73 | - </block> | 65 | +<view class="flex-equality abs xc-assets" style="color:{{object.word_color}}"> |
74 | 66 | ||
75 | - <view class="t-c typefont" bindtap='integral'>{{udata.Integral?udata.Integral:0}} | ||
76 | - <view class='numfont'>积分</view> | ||
77 | - </view> | 67 | + <block wx:for="{{object.show_arr}}"> |
68 | + <block wx:if="{{item.show}}"> | ||
69 | + <block wx:if="{{item.type=='user_money'}}"> | ||
70 | + <view class="t-c typefont" bindtap='balance'>{{yuer?yuer:0}} | ||
71 | + <view class='numfont'>余额</view> | ||
72 | + </view> | ||
73 | + </block> | ||
74 | + <block wx:if="{{item.type=='yc' && !is_close_chuzhi}}"> | ||
75 | + <view class="t-c typefont" bindtap='deposit'>{{udata.Balance?udata.Balance:0}} | ||
76 | + <view class='numfont'>储值款</view> | ||
77 | + </view> | ||
78 | + </block> | ||
79 | + <block wx:if="{{item.type=='jf'}}"> | ||
80 | + <view class="t-c typefont" bindtap='integral'>{{udata.Integral?udata.Integral:0}} | ||
81 | + <view class='numfont'>积分</view> | ||
82 | + </view> | ||
83 | + </block> | ||
84 | + <block wx:if="{{item.type=='quan'}}"> | ||
85 | + <view class="t-c typefont" bindtap='coupon'>{{udata.CashCount+byquan?udata.CashCount+byquan:0}} | ||
86 | + <view class='numfont'>优惠券</view> | ||
87 | + </view> | ||
88 | + </block> | ||
89 | + </block> | ||
78 | 90 | ||
79 | - <view class="t-c typefont" bindtap='coupon'>{{udata.CashCount+byquan?udata.CashCount+byquan:0}} | ||
80 | - <view class='numfont'>优惠券</view> | ||
81 | - </view> | 91 | + |
92 | + </block> | ||
82 | </view> | 93 | </view> |
83 | \ No newline at end of file | 94 | \ No newline at end of file |
components/diy_user_my_rights/diy_user_my_rights.js
1 | +var os = getApp().globalData.setting; | ||
1 | Component({ | 2 | Component({ |
2 | properties: { | 3 | properties: { |
3 | object: { | 4 | object: { |
4 | type: Object, | 5 | type: Object, |
5 | value: null | 6 | value: null |
6 | }, | 7 | }, |
7 | - // 这里定义了innerText属性,属性值可以在组件使用时指定 | 8 | + qy_data:{ |
9 | + type: Object, | ||
10 | + value: null | ||
11 | + }, | ||
8 | 12 | ||
9 | }, | 13 | }, |
10 | data: { | 14 | data: { |
11 | - // 这里是一些组件内部数据 | ||
12 | - someData: {} | 15 | + iurl:os.imghost, |
16 | + qy_list:[] | ||
13 | }, | 17 | }, |
14 | methods: { | 18 | methods: { |
15 | // 这里是一个自定义方法 | 19 | // 这里是一个自定义方法 |
16 | customMethod() { } | 20 | customMethod() { } |
17 | - } | 21 | + }, |
22 | + observers: { | ||
23 | + // 监听 num1 和 num2 数据的变化 | ||
24 | + 'qy_data': function(obj){ | ||
25 | + console.log(1111); | ||
26 | + console.log(obj); | ||
27 | + if(obj){ | ||
28 | + //4个4个一组 | ||
29 | + let arr = new Array(); | ||
30 | + let ater=this.properties.object.show_num; | ||
31 | + let arr_data= this.properties.qy_data.old_qy_list | ||
32 | + for (let i = 0; i < arr_data.length; i += ater) { | ||
33 | + arr.push(arr_data.slice(i, i + ater)); | ||
34 | + } | ||
35 | + this.setData({qy_list:arr}) | ||
36 | + } | ||
37 | + | ||
38 | + } | ||
39 | + }, | ||
40 | + | ||
18 | }) | 41 | }) |
19 | \ No newline at end of file | 42 | \ No newline at end of file |
components/diy_user_my_rights/diy_user_my_rights.wxml
1 | -<view class='assist' style='height:{{object.height*2}}rpx;background-color:{{object.bgcolor}}'></view> | ||
2 | \ No newline at end of file | 1 | \ No newline at end of file |
2 | +<!-- 我的权益 --> | ||
3 | +<view class="xc-my-equity-frame" wx:if="{{qy_data && qy_data.is_init}}"> | ||
4 | + <view class="xc-equity-title flex-level" bindtap="go_qy" wx:if="{{object.is_title}}"> | ||
5 | + <view class="xc-title-frame flex-space-between"> | ||
6 | + <view class="flex-vertical xc-title-content"> | ||
7 | + <image class="xc-title-img" src="{{iurl}}/miniapp/images/medal.png"></image> | ||
8 | + <view class="three-level-word">我的权益</view> | ||
9 | + </view> | ||
10 | + </view> | ||
11 | + <view wx:if="{{qy_data.is_grad_get}}" class="three-level-word xc-more-frame flex-vertical"> | ||
12 | + <view class="three-level-word xc-more">更多</view> | ||
13 | + <view class="bg_right xc-more-click bcolor"></view> | ||
14 | + </view> | ||
15 | + <view wx:else class="three-level-word xc-more-frame flex-vertical" style="justify-content: flex-end"> | ||
16 | + <image style="width: 40rpx; height: 40rpx; margin-right: 20rpx" src="{{iurl}}/miniapp/images/loader.gif"></image> | ||
17 | + </view> | ||
18 | + </view> | ||
19 | + | ||
20 | + <block wx:if="{{qy_data && qy_data.is_grad_get}}"> | ||
21 | + <block wx:if="{{qy_data && qy_data.qy_list && qy_data.gradeId}}"> | ||
22 | + <view class="xc-specific-more-frame flex-vertical" wx:if="{{qy_data.qy_list}}"> | ||
23 | + | ||
24 | + <view bindtap="click_pre"> | ||
25 | + <view class="bg_left xc-left bcolor"></view> | ||
26 | + </view> | ||
27 | + | ||
28 | + <swiper current="{{sw_index}}" style='width:82.7%; height:108rpx' bindchange='onSli' indicator-dots="{{false}}" autoplay="{{false}}"> | ||
29 | + <swiper-item wx:for="{{qy_list}}" wx:for-item="aitem" wx:for-index="pidx"> | ||
30 | + <view class="flex xc-middle"> | ||
31 | + | ||
32 | + <view class="xc-center-frame t-c" wx:for="{{aitem}}" data-img="{{item.PrivilegeImageUrl}}" data-no="{{item.PrivilegeType}}" | ||
33 | + data-ind="{{index}}" data-find="{{pidx}}" bindtap="go_qy_url"> | ||
34 | + <!-- <text>qy_list.privilegeICOUrl</text> --> | ||
35 | + <image wx:if="{{object.is_icon}}" class="xc-center-img {{item.ishas==1?'':'img_gray'}}" src="{{item.PrivilegeICOUrl}}"></image> | ||
36 | + <view class="four-level-word">{{item.PrivilegeName}}</view> | ||
37 | + </view> | ||
38 | + </view> | ||
39 | + </swiper-item> | ||
40 | + | ||
41 | + </swiper> | ||
42 | + | ||
43 | + <view bindtap="click_next"> | ||
44 | + <view class="bg_right xc-right bcolor mt"></view> | ||
45 | + </view> | ||
46 | + </view> | ||
47 | + </block> | ||
48 | + <view wx:else style="text-align: center"> | ||
49 | + 未找到数据 | ||
50 | + </view> | ||
51 | + </block> | ||
52 | +</view> | ||
3 | \ No newline at end of file | 53 | \ No newline at end of file |
components/diy_user_my_rights/diy_user_my_rights.wxss
1 | -.assist{ | 1 | +@import '../../app.wxss'; |
2 | +/* 我的权益 */ | ||
3 | +.xc-my-equity-frame { | ||
2 | width: 100%; | 4 | width: 100%; |
3 | - /*border:1px solid #00F;*/ | ||
4 | -} | ||
5 | \ No newline at end of file | 5 | \ No newline at end of file |
6 | + height: 248rpx; | ||
7 | +} | ||
8 | + | ||
9 | +.xc-equity-title { | ||
10 | + width: 100%; | ||
11 | + height: 79rpx; | ||
12 | + border-bottom: 1rpx solid #f2f2f2; | ||
13 | +} | ||
14 | + | ||
15 | +.xc-title-frame { | ||
16 | + width: 85%; | ||
17 | + height: 100%; | ||
18 | +} | ||
19 | + | ||
20 | +.xc-title-img { | ||
21 | + width: 50rpx; | ||
22 | + height: 50rpx; | ||
23 | + margin-left: 20rpx;s | ||
24 | +} | ||
25 | + | ||
26 | +.xc-title-content { | ||
27 | + height: 100%; | ||
28 | +} | ||
29 | + | ||
30 | +.xc-more { | ||
31 | + color: #878787; | ||
32 | +} | ||
33 | + | ||
34 | +.xc-more-frame { | ||
35 | + width: 16.1%; | ||
36 | + height: 100%; | ||
37 | +} | ||
38 | + | ||
39 | + | ||
40 | +.xc-more-click { | ||
41 | + width: 15rpx; | ||
42 | + height: 15rpx; | ||
43 | + margin-left: 10rpx; | ||
44 | + color: #898989; | ||
45 | +} | ||
46 | + | ||
47 | +.bg_right.bcolor, | ||
48 | +.bg_left.bcolor { | ||
49 | + border-color: #333; | ||
50 | +} | ||
51 | + | ||
52 | +.bg_right.mt { | ||
53 | + margin-top: -9rpx; | ||
54 | +} | ||
55 | + | ||
56 | +.bg_right.mt2 { | ||
57 | + margin-top: -5rpx; | ||
58 | +} | ||
59 | + | ||
60 | + | ||
61 | +.xc-specific-more-frame { | ||
62 | + width: 100%; | ||
63 | + height: 169rpx; | ||
64 | + padding-left: 43rpx; | ||
65 | +} | ||
66 | + | ||
67 | +.xc-specific-more-frame .xc-left { | ||
68 | + width: 20rpx; | ||
69 | + height: 20rpx; | ||
70 | +} | ||
71 | + | ||
72 | +.xc-specific-more-frame .xc-middle { | ||
73 | + width: 100%; | ||
74 | + margin-left: 2%; | ||
75 | + height:100%; | ||
76 | + align-items: center; | ||
77 | +} | ||
78 | +.xc-center-frame { | ||
79 | + width: 20%; | ||
80 | + margin-right: 5%; | ||
81 | +} | ||
82 | +.xc-center-img { | ||
83 | + width: 60rpx; | ||
84 | + height: 60rpx; | ||
85 | +} |
components/diy_user_tools_services/diy_user_tools_services.js
1 | +const ut = require("../../utils/util.js"); | ||
2 | +var os = getApp().globalData.setting; | ||
1 | Component({ | 3 | Component({ |
2 | properties: { | 4 | properties: { |
3 | object: { | 5 | object: { |
4 | type: Object, | 6 | type: Object, |
5 | value: null | 7 | value: null |
6 | }, | 8 | }, |
9 | + f_user_tool: { | ||
10 | + type: Object, | ||
11 | + value: null | ||
12 | + }, | ||
13 | + c_list: { | ||
14 | + type: Object, | ||
15 | + value: null | ||
16 | + }, | ||
7 | // 这里定义了innerText属性,属性值可以在组件使用时指定 | 17 | // 这里定义了innerText属性,属性值可以在组件使用时指定 |
18 | + //-- 是不是初始化了 -- | ||
19 | + is_dengji:{ | ||
20 | + type:Number, | ||
21 | + value:0 | ||
22 | + }, | ||
8 | 23 | ||
24 | + //-- 是不是有助力活动 -- | ||
25 | + is_assistance:{ | ||
26 | + type:Number, | ||
27 | + value:0 | ||
28 | + }, | ||
9 | }, | 29 | }, |
30 | + | ||
10 | data: { | 31 | data: { |
11 | - // 这里是一些组件内部数据 | ||
12 | - someData: {} | 32 | + iurl:os.imghost, |
33 | + sys_switch:null, | ||
34 | + userInfo:null, | ||
35 | + hiddenCS: true, | ||
13 | }, | 36 | }, |
37 | + | ||
38 | + ready: function() { | ||
39 | + | ||
40 | + var th=this; | ||
41 | + | ||
42 | + if(getApp().globalData.userInfo){ | ||
43 | + this.setData({userInfo:getApp().globalData.userInfo}); | ||
44 | + } | ||
45 | + | ||
46 | + /*-------系统是否开通等级卡,会员是等级卡-----*/ | ||
47 | + getApp().getConfig2(function (e) { | ||
48 | + var t_swi = e.switch_list; | ||
49 | + if (t_swi) t_swi = JSON.parse(t_swi) | ||
50 | + if (t_swi) { | ||
51 | + th.setData({sys_switch: t_swi}); | ||
52 | + } | ||
53 | + }) | ||
54 | + | ||
55 | + let img_host=this.data.iurl; | ||
56 | + if(this.properties.f_user_tool){ | ||
57 | + var f_user_tool=JSON.parse(JSON.stringify(this.properties.f_user_tool)); | ||
58 | + var list=this.properties.object.list; | ||
59 | + | ||
60 | + if(list && list.length) { | ||
61 | + //进行循环 | ||
62 | + for (let iu = 0; iu < list.length; iu++) { | ||
63 | + let fd = f_user_tool.find(function (e) { | ||
64 | + return e.id == list[iu].id; | ||
65 | + }) | ||
66 | + if (fd) { | ||
67 | + list[iu].icoimg = fd.icoimg; | ||
68 | + list[iu].new_weappurl = fd.new_weappurl; | ||
69 | + } else { | ||
70 | + list.splice(iu, 1); | ||
71 | + iu--; | ||
72 | + } | ||
73 | + } | ||
74 | + }else{ | ||
75 | + list=[]; | ||
76 | + } | ||
77 | + //-- 如果是有新的tool要添加进去 -- | ||
78 | + for (let ig = 0; ig <f_user_tool.length ; ig++) { | ||
79 | + let fd= list.find(function (e){ | ||
80 | + return e.id==f_user_tool[ig].id; | ||
81 | + }) | ||
82 | + if(fd) continue; | ||
83 | + let ob={ | ||
84 | + show:true,id:fd.id,icoimg:fd.icoimg,name:item.name,new_weappurl:item.new_weappurl | ||
85 | + } | ||
86 | + list.push(ob); | ||
87 | + } | ||
88 | + | ||
89 | + | ||
90 | + this.setData({user_tool:list}) | ||
91 | + } | ||
92 | + }, | ||
93 | + | ||
14 | methods: { | 94 | methods: { |
15 | - // 这里是一个自定义方法 | ||
16 | - customMethod() { } | 95 | + // 这里是一个自定义方法 |
96 | + goto_nav: function (e) { | ||
97 | + var th = this; | ||
98 | + var url = e.currentTarget.dataset.url; | ||
99 | + if (th.data.userInfo != null) { | ||
100 | + console.log('跳转'); | ||
101 | + getApp().goto(url); | ||
102 | + } else { | ||
103 | + wx.navigateTo({ | ||
104 | + url: '/packageE/pages/togoin/togoin', | ||
105 | + }) | ||
106 | + } | ||
107 | + }, | ||
108 | + //跳转到链接 | ||
109 | + goto: function (e) { | ||
110 | + console.log(e); | ||
111 | + console.log('跳转'); | ||
112 | + var url = e.currentTarget.dataset.url; | ||
113 | + wx.navigateTo({ url: url }) | ||
114 | + // getApp().goto(url); | ||
115 | + }, | ||
116 | + //--跳转到权益页面-- | ||
117 | + go_qy: function () { | ||
118 | + if (!this.data.userInfo) return false; | ||
119 | + var url = "/pages/user/userqy/userqy"; | ||
120 | + getApp().goto(url); | ||
121 | + }, | ||
122 | + | ||
123 | + openCS() { | ||
124 | + let self=this; | ||
125 | + // 判断会员状态 | ||
126 | + let user_info = getApp().globalData.userInfo; | ||
127 | + if (user_info == null || user_info.mobile == undefined || user_info.mobile == '' || user_info.mobile == null) { | ||
128 | + wx.navigateTo({ | ||
129 | + url: '/packageE/pages/togoin/togoin', | ||
130 | + }) | ||
131 | + return false; | ||
132 | + }; | ||
133 | + // csType/在线客服设置: | ||
134 | + // 0关闭(如果有设置热线电话,则显示拨打热线电话)、 | ||
135 | + // 1小程序客服、 | ||
136 | + // 2企业微信客服 | ||
137 | + if (this.data.sys_switch) { | ||
138 | + let csType = this.data.sys_switch.weapp_customertype; | ||
139 | + if (csType == 0) { | ||
140 | + // 拨打电话号码 | ||
141 | + this.contactService(); | ||
142 | + } else { | ||
143 | + this.getTel() | ||
144 | + .then(() => { | ||
145 | + self.setData({ | ||
146 | + hiddenCS: false, | ||
147 | + }); | ||
148 | + }); | ||
149 | + } | ||
150 | + } | ||
151 | + }, | ||
152 | + | ||
153 | + //---------联系客服------------ | ||
154 | + contactService: function () { | ||
155 | + getApp().com_call(this); | ||
156 | + }, | ||
157 | + | ||
158 | + //关闭客服操作菜单 | ||
159 | + closeCS() { | ||
160 | + this.setData({ | ||
161 | + hiddenCS: true, | ||
162 | + }); | ||
163 | + }, | ||
164 | + | ||
165 | + //添加卡包 | ||
166 | + addcard: function () { | ||
167 | + var res = this.data.add_card_data; | ||
168 | + if (!res) return false; | ||
169 | + | ||
170 | + var arr = new Array(6) | ||
171 | + arr[0] = res.code; | ||
172 | + arr[1] = res.timestamp; | ||
173 | + arr[2] = res.jsapiTicket; | ||
174 | + arr[3] = res.openid; | ||
175 | + arr[4] = res.cardid; | ||
176 | + arr[5] = res.nonceStr; | ||
177 | + var c = arr.sort(); | ||
178 | + var newstr = ""; | ||
179 | + for (var i = 0; i < c.length; i++) { | ||
180 | + newstr += c[i]; | ||
181 | + } | ||
182 | + | ||
183 | + var sh1 = ut.sha1(newstr); | ||
184 | + wx.addCard({ | ||
185 | + cardList: [ | ||
186 | + { | ||
187 | + cardId: res.cardid, | ||
188 | + cardExt: '{"code": "' + res.code + '", "openid": "' + res.openid + '","timestamp": "' + res.timestamp + '","nonce_str":"' + res.nonceStr + '","outer_str":"web", "signature":"' + sh1 + '"}' | ||
189 | + } | ||
190 | + | ||
191 | + ], | ||
192 | + success: function (res) { }, | ||
193 | + cancel: function (res) { } | ||
194 | + }); | ||
195 | + }, | ||
196 | + | ||
197 | + // 获取客服热线 | ||
198 | + getTel() { | ||
199 | + var self = this; | ||
200 | + return new Promise((resolve, reject) => { | ||
201 | + var s = getApp(); | ||
202 | + s.getConfig(function (t) { | ||
203 | + if (t.store_tel == undefined) { | ||
204 | + getApp().request.get("/api/weshop/store/get/" + os.stoid, { | ||
205 | + isShowLoading: 1, | ||
206 | + data: {}, | ||
207 | + success: function (rs) { | ||
208 | + getApp().globalData.config = rs.data.data; | ||
209 | + if (rs.data.data.store_tel == null && rs.data.data.store_tel == undefined) { | ||
210 | + getApp().showWarning("商家未设置电话"); | ||
211 | + return false; | ||
212 | + } else { | ||
213 | + self.setData({ | ||
214 | + store_tel: rs.data.data.store_tel, | ||
215 | + }); | ||
216 | + // s.confirmBox("客服热线:" + rs.data.data.store_tel); | ||
217 | + }; | ||
218 | + | ||
219 | + } | ||
220 | + }) | ||
221 | + } else { | ||
222 | + self.setData({ | ||
223 | + store_tel: t.store_tel, | ||
224 | + }); | ||
225 | + // s.confirmBox("客服热线:" + t.store_tel); | ||
226 | + } | ||
227 | + resolve(); | ||
228 | + }); | ||
229 | + }); | ||
230 | + }, | ||
231 | + | ||
232 | + | ||
233 | + | ||
17 | } | 234 | } |
18 | }) | 235 | }) |
19 | \ No newline at end of file | 236 | \ No newline at end of file |
components/diy_user_tools_services/diy_user_tools_services.wxml
1 | -<view class='assist' style='height:{{object.height*2}}rpx;background-color:{{object.bgcolor}}'></view> | ||
2 | \ No newline at end of file | 1 | \ No newline at end of file |
2 | +<wxs src="filter.wxs" module="util"></wxs> | ||
3 | +<!-- 工具与服务 --> | ||
4 | +<view class="xc-tool-service"> | ||
5 | + <view class="xc-tool-service-title flex-vertical" wx:if="{{object.is_title}}"> | ||
6 | + <image class="xc-tool-service-img" src="{{iurl}}/miniapp/images/gj.png"></image> | ||
7 | + <view class="three-level-word xc-tool-service-word">工具与服务</view> | ||
8 | + </view> | ||
9 | + <view class="xc-project-frame" wx:if="{{user_tool}}"> | ||
10 | + <!-- 跳转页面 --> | ||
11 | + <view class="center_v" style="display: flex;flex-wrap: wrap;align-items: center;"> | ||
12 | + <!-- 循环使用自定义菜单,显示和掩藏 --> | ||
13 | + <block wx:for="{{user_tool}}"> | ||
14 | + <!-- 判断自定义的判断显示--> | ||
15 | + <block wx:if="{{item.show}}"> | ||
16 | + <!-- 有链接地址的时候 --> | ||
17 | + <block wx:if="{{item.new_weappurl}}"> | ||
18 | + <block wx:if="{{item.name=='PLUS会员'}}"> | ||
19 | + <view class="item t-c" data-url="{{item.new_weappurl}}" bindtap="goto" wx:if="{{is_dengji==1}}"> | ||
20 | + <image wx:if="{{object.is_icon}}" class="xc-center-img " src="{{iurl+item.icoimg}}"></image> | ||
21 | + <view class="fs26">PLUS会员</view> | ||
22 | + </view> | ||
23 | + </block> | ||
24 | + <block wx:elif="{{item.name=='助力活动'}}"> | ||
25 | + <view class="item t-c" data-url="/pages/user/assistance/assistance" bindtap="goto_nav" wx:if="{{is_assistance==1}}"> | ||
26 | + <image wx:if="{{object.is_icon}}" class="xc-center-img" src="{{iurl}}/miniapp/images/friendhelp/icon-zl.png"></image> | ||
27 | + <view class="four-level-word">助力活动</view> | ||
28 | + </view> | ||
29 | + </block> | ||
30 | + <block wx:elif="{{item.name=='我的权益'}}"> | ||
31 | + <view class="item t-c" bindtap="go_qy" wx:if="{{qy_list!=null && is_init && gradeId}}"> | ||
32 | + <image wx:if="{{object.is_icon}}" class="xc-center-img" src="{{iurl+item.icoimg}}"></image> | ||
33 | + <view class="fs26">我的权益</view> | ||
34 | + </view> | ||
35 | + </block> | ||
36 | + <block wx:elif="{{item.name=='套盒商品'}}"> | ||
37 | + <view class="item t-c" data-url="{{item.new_weappurl}}" bindtap="goto" wx:if="{{enableMeiye}}"> | ||
38 | + <image wx:if="{{object.is_icon}}" class="xc-center-img" src="{{iurl+item.icoimg}}"></image> | ||
39 | + <view class="fs26">套盒商品</view> | ||
40 | + </view> | ||
41 | + </block> | ||
42 | + | ||
43 | + <block wx:elif="{{item.name=='瘦身日记'}}"> | ||
44 | + <view wx:if="{{has_rj>0}}" class="item t-c" data-url="{{item.new_weappurl}}" bindtap="goto_nav"> | ||
45 | + <image wx:if="{{object.is_icon}}" class="xc-center-img" src="{{iurl+item.icoimg}}"></image> | ||
46 | + <view class="fs26">{{item.name}}</view> | ||
47 | + </view> | ||
48 | + </block> | ||
49 | + | ||
50 | + <block wx:else> | ||
51 | + <view class="item t-c" data-url="{{item.new_weappurl}}" bindtap="goto_nav"> | ||
52 | + <image wx:if="{{object.is_icon}}" class="xc-center-img" src="{{iurl+item.icoimg}}"></image> | ||
53 | + <view class="fs26">{{item.name}}</view> | ||
54 | + </view> | ||
55 | + </block> | ||
56 | + </block> | ||
57 | + <!-- 没有链接地址的时候 --> | ||
58 | + <block wx:else> | ||
59 | + <block wx:if="{{item.name=='联系客服'}}"> | ||
60 | + | ||
61 | + <view class="item t-c" bindtap="openCS"> | ||
62 | + <image wx:if="{{object.is_icon}}" class="xc-center-img " src="{{iurl+item.icoimg}}"></image> | ||
63 | + <view class="fs26">联系客服</view> | ||
64 | + </view> | ||
65 | + | ||
66 | + </block> | ||
67 | + <block wx:elif="{{item.name=='收入卡包'}}"> | ||
68 | + <view class="item t-c" bindtap="addcard" wx:if="{{add_card_data}}"> | ||
69 | + <image wx:if="{{object.is_icon}}" class="xc-center-img " src="{{iurl+item.icoimg}}"></image> | ||
70 | + <view class="four-level-word">收入卡包</view> | ||
71 | + </view> | ||
72 | + </block> | ||
73 | + </block> | ||
74 | + </block> | ||
75 | + </block> | ||
76 | + </view> | ||
77 | + </view> | ||
78 | +</view> | ||
79 | + | ||
80 | +<include src="../../components/com_servicer/com_servicer.wxml"/> | ||
3 | \ No newline at end of file | 81 | \ No newline at end of file |
components/diy_user_tools_services/diy_user_tools_services.wxss
1 | -.assist{ | 1 | +@import '../../app.wxss'; |
2 | +.xc-center-img { | ||
3 | + width: 60rpx; | ||
4 | + height: 60rpx; | ||
5 | +} | ||
6 | + | ||
7 | +/* 工具与服务 */ | ||
8 | +.xc-tool-service { | ||
2 | width: 100%; | 9 | width: 100%; |
3 | - /*border:1px solid #00F;*/ | 10 | + border-bottom: 20rpx solid #f2f2f2; |
11 | + padding-bottom: 30rpx; | ||
12 | +} | ||
13 | + | ||
14 | +.xc-tool-service .xc-tool-service-title { | ||
15 | + width: 100%; | ||
16 | + height: 90rpx; | ||
17 | + | ||
18 | +} | ||
19 | + | ||
20 | + | ||
21 | +.xc-tool-service-img { | ||
22 | + width: 38rpx; | ||
23 | + height: 38rpx; | ||
24 | + margin-left: 30rpx; | ||
25 | +} | ||
26 | + | ||
27 | +.xc-tool-service-word { | ||
28 | + margin-left: 10rpx; | ||
29 | +} | ||
30 | + | ||
31 | +.xc-project-frame { | ||
32 | + width: 100%; | ||
33 | +} | ||
34 | + | ||
35 | +.xc-project-frame .item { | ||
36 | + width: 25%; | ||
37 | + margin-top: 30rpx; | ||
38 | + display: inline-block; | ||
39 | + line-height: 40rpx; | ||
40 | + margin-left: 0 !important; | ||
41 | + margin-right: 0 !important; | ||
4 | } | 42 | } |
5 | \ No newline at end of file | 43 | \ No newline at end of file |
packageG/pages/user_template/index.js
@@ -5,24 +5,31 @@ var t = getApp(), | @@ -5,24 +5,31 @@ var t = getApp(), | ||
5 | ut = require("../../../utils/util.js"), | 5 | ut = require("../../../utils/util.js"), |
6 | com = require("../../../utils/common.js"); | 6 | com = require("../../../utils/common.js"); |
7 | var regeneratorRuntime = require('../../../utils/runtime.js'); | 7 | var regeneratorRuntime = require('../../../utils/runtime.js'); |
8 | +const rq = require("../../../utils/request.js"); | ||
8 | var appd = getApp().globalData; | 9 | var appd = getApp().globalData; |
9 | 10 | ||
10 | Page({ | 11 | Page({ |
11 | data: { | 12 | data: { |
12 | url: os.imghost, | 13 | url: os.imghost, |
13 | temp_id:0, | 14 | temp_id:0, |
14 | - goodsGroupArr:[] | 15 | + goodsGroupArr:[], |
16 | + pulscardname:'', | ||
17 | + rfmName:'成长值', | ||
18 | + | ||
19 | + byquan: 0, | ||
20 | + yuer: 0, | ||
21 | + udata:{}, | ||
22 | + | ||
23 | + is_assistance: 0, //助力活动 | ||
15 | }, | 24 | }, |
16 | 25 | ||
17 | onLoad: function(e) { | 26 | onLoad: function(e) { |
18 | var th = this; | 27 | var th = this; |
19 | this.data.temp_id=e.scene; | 28 | this.data.temp_id=e.scene; |
20 | - if(!this.data.temp_id) | ||
21 | - this.data.temp_id=e.sence; | ||
22 | if(!this.data.temp_id) wx.showModal({ title:"未读取到模板ID" ,}) | 29 | if(!this.data.temp_id) wx.showModal({ title:"未读取到模板ID" ,}) |
23 | 30 | ||
24 | - var first_leader = e.first_leader; | ||
25 | - if (first_leader) { | 31 | + var first_leader = e.first_leader; |
32 | + if (first_leader) { | ||
26 | //-- user_id代过来免登录 -- | 33 | //-- user_id代过来免登录 -- |
27 | getApp().globalData.first_leader = first_leader; | 34 | getApp().globalData.first_leader = first_leader; |
28 | //调用接口判断是不是会员 | 35 | //调用接口判断是不是会员 |
@@ -32,20 +39,239 @@ Page({ | @@ -32,20 +39,239 @@ Page({ | ||
32 | getApp().globalData.guide_pick_id= res.data.data.pickup_id | 39 | getApp().globalData.guide_pick_id= res.data.data.pickup_id |
33 | } | 40 | } |
34 | }) | 41 | }) |
35 | - } | 42 | + } |
36 | 43 | ||
44 | + if(!getApp().globalData.userInfo) { | ||
45 | + getApp().goto('/packageE/pages/togoin/togoin'); | ||
46 | + } | ||
37 | 47 | ||
38 | - | ||
39 | }, | 48 | }, |
40 | 49 | ||
41 | async onShow() { | 50 | async onShow() { |
42 | getApp().check_can_share(); | 51 | getApp().check_can_share(); |
43 | - var th = this; | ||
44 | - await this.init_load(); | ||
45 | - //如果是自定义模板 | ||
46 | - if (this.data.isTemplate) { | ||
47 | - | ||
48 | - } | 52 | + var th = this; |
53 | + | ||
54 | + /*-------系统是否开通等级卡,会员是等级卡-----*/ | ||
55 | + getApp().getConfig2(function (e) { | ||
56 | + var t_swi = e.switch_list; | ||
57 | + if (t_swi) t_swi = JSON.parse(t_swi) | ||
58 | + if (t_swi) { | ||
59 | + th.setData({sys_switch: t_swi}); | ||
60 | + var user_tool = []; | ||
61 | + if (t_swi.usertool) user_tool = JSON.parse(t_swi.usertool); | ||
62 | + th.setData({c_list: user_tool}); | ||
63 | + | ||
64 | + if (parseInt(t_swi.rank_switch) == 2) { | ||
65 | + var userInfo = th.data.userInfo; | ||
66 | + if (userInfo && userInfo.card_field != null && userInfo.card_field != undefined && userInfo.card_field != "") { | ||
67 | + var now = ut.gettimestamp(); | ||
68 | + var str = userInfo.card_expiredate; | ||
69 | + var end = new Date(str); | ||
70 | + end = Date.parse(end) / 1000; | ||
71 | + //---判断是不是有过期--- | ||
72 | + if (now < end) { | ||
73 | + th.setData({ | ||
74 | + is_dengji: 1 | ||
75 | + }) | ||
76 | + } else { | ||
77 | + th.setData({ | ||
78 | + is_dengji: 3 | ||
79 | + }) | ||
80 | + } | ||
81 | + } else { | ||
82 | + th.setData({ | ||
83 | + is_dengji: 2 | ||
84 | + }) | ||
85 | + } | ||
86 | + } | ||
87 | + } | ||
88 | + }) | ||
89 | + | ||
90 | + //--初始化是否有打勾,-- | ||
91 | + getApp().request.get("/api/weshop/users/grade/vip/init/get", { | ||
92 | + data: { | ||
93 | + storeId: os.stoid | ||
94 | + }, | ||
95 | + success: function (rs) { | ||
96 | + if (rs.data.code == 0 && rs.data.data.isBool) { | ||
97 | + th.setData({ is_init: 1 }); | ||
98 | + /*-----获取会员权益列表-----*/ | ||
99 | + rq.get("/api/weshop/users/grade/vipprivilegeinfo/page", { | ||
100 | + isShowLoading: 0, | ||
101 | + data: { | ||
102 | + storeId: os.stoid, | ||
103 | + pageSize: 100 | ||
104 | + }, | ||
105 | + success: async function (res) { | ||
106 | + | ||
107 | + //判断有没有值,没有值返回 | ||
108 | + if (!ut.ajax_ok(res)) return false; | ||
109 | + | ||
110 | + var arr_data = res.data.data.pageData; | ||
111 | + var gid = null, | ||
112 | + g_qy_list = null, | ||
113 | + cz_vals = 0, | ||
114 | + need_money = 0, | ||
115 | + backClass = null, | ||
116 | + GradeName = ''; | ||
117 | + | ||
118 | + var app_d=getApp().globalData; | ||
119 | + | ||
120 | + //获取成长值 | ||
121 | + await getApp().request.promiseGet("/api/weshop/users/grade/aftervipinfo/get", { | ||
122 | + data: { | ||
123 | + storeId: os.stoid, | ||
124 | + userId: app_d.user_id | ||
125 | + } | ||
126 | + }).then(res => { | ||
127 | + if (res.data.code == 0 && res.data.data) { | ||
128 | + gid = res.data.data.GradeId; | ||
129 | + var cz_val = res.data.data.GradeSum; | ||
130 | + cz_vals = parseInt(cz_val); | ||
131 | + GradeName = res.data.data.GradeName; | ||
132 | + } | ||
133 | + //th.setData({ cz_val: cz_vals, GradeName: res.data.data.GradeName, is_init: is_init, gradeId: gid}); | ||
134 | + }) | ||
135 | + var obj = { | ||
136 | + cz_val: cz_vals, | ||
137 | + GradeName: GradeName, | ||
138 | + gradeId: gid, | ||
139 | + is_grad_get: 1 | ||
140 | + }; | ||
141 | + | ||
142 | + // 获取最大值 | ||
143 | + await getApp().request.promiseGet("/api/weshop/users/grade/vipgradeinfo/page", { | ||
144 | + data: { | ||
145 | + storeId: os.stoid | ||
146 | + } | ||
147 | + }).then(res => { | ||
148 | + if (res.data.data) | ||
149 | + backClass = res.data.data.pageData; | ||
150 | + if (backClass) { | ||
151 | + var full_cz_val = backClass[backClass.length - 1].BuyGradeSum; | ||
152 | + obj.full_cz_val = full_cz_val | ||
153 | + } | ||
154 | + }) | ||
155 | + | ||
156 | + //--会员权益中心页的修改-- | ||
157 | + for (var i in backClass) { | ||
158 | + var im = backClass[i]; | ||
159 | + if (cz_vals < im.BuyGradeSum && need_money == 0) { | ||
160 | + need_money = im.BuyGradeSum; | ||
161 | + obj.need_money = need_money; | ||
162 | + } | ||
163 | + } | ||
164 | + | ||
165 | + //获取当前等级的特权 | ||
166 | + await getApp().request.promiseGet("/api/weshop/users/grade/privilegeform/list/page", { | ||
167 | + data: { | ||
168 | + storeId: os.stoid, | ||
169 | + GradeId: gid, | ||
170 | + userId: app_d.user_id, | ||
171 | + pageSize: 100 | ||
172 | + } | ||
173 | + }).then(res => { | ||
174 | + if (res.data.data) | ||
175 | + g_qy_list = res.data.data.pageData; | ||
176 | + }); | ||
177 | + | ||
178 | + for (var i in arr_data) { | ||
179 | + var item = arr_data[i]; | ||
180 | + var FromId = th.check_is_has_qy(item, g_qy_list); | ||
181 | + arr_data[i].ishas = 0; | ||
182 | + if (FromId) { | ||
183 | + arr_data[i].ishas = 1; | ||
184 | + arr_data[i].FromId = FromId; | ||
185 | + } | ||
186 | + } | ||
187 | + arr_data.sort(function (a, b) { | ||
188 | + return b.ishas - a.ishas | ||
189 | + }) | ||
190 | + | ||
191 | + //4个4个一组 | ||
192 | + var arr = new Array(); | ||
193 | + for (var i = 0; i < arr_data.length; i += 4) { | ||
194 | + arr.push(arr_data.slice(i, i + 4)); | ||
195 | + } | ||
196 | + //th.setData({ qy_list: arr, need_money: need_money}); | ||
197 | + obj.qy_list = arr; | ||
198 | + obj.old_qy_list = arr_data; | ||
199 | + th.setData(obj); | ||
200 | + obj.is_init=1; | ||
201 | + th.setData({qy_data:obj}) | ||
202 | + } | ||
203 | + }) | ||
204 | + } | ||
205 | + } | ||
206 | + }) | ||
207 | + this.puls_user(); | ||
208 | + this.getVison(); | ||
209 | + | ||
210 | + //-----获取线下会员的预存款和优惠券的数量----- | ||
211 | + getApp().request.get("/api/weshop/users/getinfo/" + os.stoid + "/" +getApp().globalData.user_id, { | ||
212 | + isShowLoading: 0, | ||
213 | + success: function (su) { | ||
214 | + if (su.data.code == 0 && su.data.data) { | ||
215 | + var data = su.data.data; | ||
216 | + if (!data) data = {}; | ||
217 | + data.cashcount = parseInt(data.cashcount); | ||
218 | + th.setData({ | ||
219 | + udata: data, | ||
220 | + }); | ||
221 | + } | ||
222 | + | ||
223 | + } | ||
224 | + }) | ||
225 | + | ||
226 | + //-----获取会员提现金额----- | ||
227 | + getApp().request.get("/api/weshop/withdrawals/summoney", { | ||
228 | + isShowLoading: 0, | ||
229 | + data: { | ||
230 | + user_id: getApp().globalData.user_id, | ||
231 | + store_id: os.stoid, | ||
232 | + status: 0 | ||
233 | + }, | ||
234 | + success: function (su) { | ||
235 | + if (su.data.code == 0) { | ||
236 | + | ||
237 | + let user=getApp().globalData.userInfo; | ||
238 | + var yuer = parseFloat(user.user_money - user.frozen_money - su.data.data.summoney).toFixed(2); | ||
239 | + th.setData({ | ||
240 | + txmon: su.data.data.summoney, | ||
241 | + yuer: yuer | ||
242 | + }); | ||
243 | + } | ||
244 | + } | ||
245 | + }) | ||
246 | + | ||
247 | + /*-----获取会员包邮券的数量-----*/ | ||
248 | + getApp().request.get("/api/weshop/userfeemail/page", { | ||
249 | + isShowLoading: 0, | ||
250 | + data: { | ||
251 | + user_id:getApp().globalData.user_id, | ||
252 | + store_id: os.stoid, | ||
253 | + pageSize: 1, | ||
254 | + isuse: 0 | ||
255 | + }, | ||
256 | + success: function (su) { | ||
257 | + if (su.data.code == 0) { | ||
258 | + th.setData({ | ||
259 | + byquan: parseInt(su.data.data.total) | ||
260 | + }); | ||
261 | + } | ||
262 | + } | ||
263 | + }); | ||
264 | + | ||
265 | + //判断一下是不是助力活动 | ||
266 | + this.is_assistance(); | ||
267 | + //获取工具 | ||
268 | + await this.init_user_tool(); | ||
269 | + | ||
270 | + | ||
271 | + //获取自定义模板 | ||
272 | + await this.init_load(); | ||
273 | + | ||
274 | + | ||
49 | }, | 275 | }, |
50 | 276 | ||
51 | //获取商品模块实例 | 277 | //获取商品模块实例 |
@@ -190,6 +416,144 @@ Page({ | @@ -190,6 +416,144 @@ Page({ | ||
190 | this[item].automore() | 416 | this[item].automore() |
191 | }) | 417 | }) |
192 | } | 418 | } |
419 | + | ||
420 | + var e = getApp().globalData.userInfo; | ||
421 | + if (e != undefined && e != null && e.mobile) { | ||
422 | + var goods_list = this.selectComponent("#goods_recommend"); //组件的id | ||
423 | + goods_list.init(); | ||
424 | + setTimeout(function () { | ||
425 | + goods_list.get_list(); | ||
426 | + }, 300) | ||
427 | + } | ||
428 | + | ||
429 | + }, | ||
430 | + | ||
431 | + //-----Plus会员获取----------- | ||
432 | + puls_user: function() { | ||
433 | + var th = this; | ||
434 | + getApp().request.get("/api/weshop/plus/vip/mem/list", { | ||
435 | + data: { | ||
436 | + storeId: os.stoid, | ||
437 | + userId: getApp().globalData.user_id, | ||
438 | + }, | ||
439 | + success: function(su) { | ||
440 | + if (su.data.code == 0) { | ||
441 | + var cardname = su.data.data[0].MemCardName; | ||
442 | + th.setData({ | ||
443 | + pulscardname: cardname | ||
444 | + }); | ||
445 | + } | ||
446 | + } | ||
447 | + }); | ||
448 | + }, | ||
449 | + | ||
450 | + //判断会员是后有改服务项目 | ||
451 | + check_is_has_qy: function (item, g_qy_list) { | ||
452 | + if (!g_qy_list) return false; | ||
453 | + | ||
454 | + for (var i in g_qy_list) { | ||
455 | + var iter = g_qy_list[i]; | ||
456 | + if (iter.FormId == item.Id) return g_qy_list[i].FormId; | ||
457 | + } | ||
458 | + return false; | ||
459 | + }, | ||
460 | + | ||
461 | + //获取会员权益等级是否升级 | ||
462 | + getVison(){ | ||
463 | + let isRfm = wx.getStorageSync('isRfm') | ||
464 | + if (isRfm) { | ||
465 | + this.setData({ | ||
466 | + rfmName:'综合分' | ||
467 | + }) | ||
468 | + }else{ | ||
469 | + rq.get(`/api/weshop/users/grade/vip/getSysPara?storeId=${os.stoid}&classInfo=IsUpRMF`, { | ||
470 | + success: (res)=>{ | ||
471 | + console.log('会员权益等级升级查询-------'); | ||
472 | + console.log(res); | ||
473 | + if (res.data.code == 0 && res.data.data && res.data.data.IsBool){ | ||
474 | + this.setData({ | ||
475 | + rfmName:'综合分' | ||
476 | + }) | ||
477 | + wx.setStorageSync('isRfm', true) | ||
478 | + } | ||
479 | + } | ||
480 | + }) | ||
481 | + } | ||
482 | + }, | ||
483 | + | ||
484 | + | ||
485 | + //-- 初始话按钮图标,服务与工具的优化 --- | ||
486 | + init_user_tool: async function () { | ||
487 | + var d_list = null; | ||
488 | + //读取user_tool按钮图标 | ||
489 | + await getApp().promiseGet("/api/weshop/userTool/page?pageSize=100&store_id=" + os.stoid, { | ||
490 | + }).then(res => { | ||
491 | + if (ut.ajax_ok(res)) { | ||
492 | + d_list = res.data.data.pageData; | ||
493 | + } | ||
494 | + }) | ||
495 | + | ||
496 | + if (!d_list) return false; | ||
497 | + //过滤掉分销关闭的 | ||
498 | + let distribut_end_time = await getApp().user_tools_endTime(2);//过滤掉分销到期的 | ||
499 | + await getApp().promiseGet("/api/weshop/storeDistribut/get/" + os.stoid, {}).then(rs => { | ||
500 | + if (rs.data.code == 0 || !rs.data.data) { | ||
501 | + var is_ok=1; | ||
502 | + | ||
503 | + if(!distribut_end_time){ | ||
504 | + is_ok=0; | ||
505 | + } | ||
506 | + else if(!rs.data.data){ | ||
507 | + is_ok=0; | ||
508 | + }else{ | ||
509 | + var dis=rs.data.data; | ||
510 | + if(!dis || dis.switch == 0){ | ||
511 | + is_ok=0; | ||
512 | + } | ||
513 | + } | ||
514 | + | ||
515 | + for (var i in d_list) { | ||
516 | + if (d_list[i].name == '我的分销' && !is_ok) { | ||
517 | + d_list.splice(i, 1); | ||
518 | + } | ||
519 | + } | ||
520 | + } | ||
521 | + }) | ||
522 | + | ||
523 | + //判断有没有开AI测肤 | ||
524 | + await getApp().promiseGet("/api/weshop/wx/weappSkin/get/" + os.stoid, {}).then(rs => { | ||
525 | + if (rs.data.code != 0 || !rs.data.data) { | ||
526 | + for (var i in d_list) { | ||
527 | + if (d_list[i].name == 'AI测肤') { | ||
528 | + d_list.splice(i, 1); | ||
529 | + } | ||
530 | + } | ||
531 | + } | ||
532 | + }) | ||
533 | + this.setData({ user_tool: d_list }); | ||
534 | + }, | ||
535 | + | ||
536 | + // 判断助力活动是不是存在 | ||
537 | + is_assistance: function () { | ||
538 | + var th = this, r = Math.random() * 100; | ||
539 | + getApp().promiseGet("/api/weshop/marketing/help/act/judge", { | ||
540 | + data: { | ||
541 | + storeId: os.stoid, | ||
542 | + userId: getApp().globalData.user_id, | ||
543 | + r: r, | ||
544 | + } | ||
545 | + }).then(res=>{ | ||
546 | + var code = res.data.code; | ||
547 | + if (code == 0) { | ||
548 | + th.setData({ | ||
549 | + is_assistance: 1 | ||
550 | + }); | ||
551 | + } else { | ||
552 | + th.setData({ | ||
553 | + is_assistance: 0 | ||
554 | + }); | ||
555 | + } | ||
556 | + }) | ||
193 | }, | 557 | }, |
194 | 558 | ||
195 | 559 |
packageG/pages/user_template/index.json
@@ -7,7 +7,8 @@ | @@ -7,7 +7,8 @@ | ||
7 | "diy_user_info":"/components/diy_user_info/diy_user_info", | 7 | "diy_user_info":"/components/diy_user_info/diy_user_info", |
8 | "diy_user_order":"/components/diy_user_order/diy_user_order", | 8 | "diy_user_order":"/components/diy_user_order/diy_user_order", |
9 | "diy_user_my_rights":"/components/diy_user_my_rights/diy_user_my_rights", | 9 | "diy_user_my_rights":"/components/diy_user_my_rights/diy_user_my_rights", |
10 | - "diy_user_tools_services":"/components/diy_user_tools_services/diy_user_tools_services" | 10 | + "diy_user_tools_services":"/components/diy_user_tools_services/diy_user_tools_services", |
11 | + "diy_user_my_rights": "/components/diy_user_my_rights/diy_user_my_rights" | ||
11 | }, | 12 | }, |
12 | "enablePullDownRefresh": false, | 13 | "enablePullDownRefresh": false, |
13 | "onReachBottomDistance":300 | 14 | "onReachBottomDistance":300 |
packageG/pages/user_template/index.wxml
@@ -11,7 +11,9 @@ | @@ -11,7 +11,9 @@ | ||
11 | </block> | 11 | </block> |
12 | <!-- 会员信息 --> | 12 | <!-- 会员信息 --> |
13 | <block wx:if="{{item.ename=='userinfo'}}"> | 13 | <block wx:if="{{item.ename=='userinfo'}}"> |
14 | - <diy_user_info object="{{item.content}}"></diy_user_info> | 14 | + <diy_user_info object="{{item.content}}" |
15 | + byquan="{{byquan}}" yuer="{{yuer}}" udata="{{udata}}" | ||
16 | + qy_data="{{qy_data}}" pulscardname="{{pulscardname}}" rfmName="{{rfmName}}" ></diy_user_info> | ||
15 | </block> | 17 | </block> |
16 | <!-- 我的订单 --> | 18 | <!-- 我的订单 --> |
17 | <block wx:if="{{item.ename=='order'}}"> | 19 | <block wx:if="{{item.ename=='order'}}"> |
@@ -19,11 +21,12 @@ | @@ -19,11 +21,12 @@ | ||
19 | </block> | 21 | </block> |
20 | <!-- 我的权益 --> | 22 | <!-- 我的权益 --> |
21 | <block wx:if="{{item.ename=='my_rights'}}"> | 23 | <block wx:if="{{item.ename=='my_rights'}}"> |
22 | - <diy_user_order object="{{item.content}}"></diy_user_order> | 24 | + <diy_user_my_rights object="{{item.content}}" qy_data="{{qy_data}}" ></diy_user_my_rights> |
23 | </block> | 25 | </block> |
24 | <!-- 工具与服务 --> | 26 | <!-- 工具与服务 --> |
25 | <block wx:if="{{item.ename=='tools_services'}}"> | 27 | <block wx:if="{{item.ename=='tools_services'}}"> |
26 | - <diy_user_tools_services object="{{item.content}}"></diy_user_tools_services> | 28 | + <diy_user_tools_services object="{{item.content}}" is_dengji="{{is_dengji}}" |
29 | + f_user_tool="{{user_tool}}" c_list="{{c_list}}"></diy_user_tools_services> | ||
27 | </block> | 30 | </block> |
28 | 31 | ||
29 | </view> | 32 | </view> |
pages/user/index/index.js
@@ -475,6 +475,9 @@ Page({ | @@ -475,6 +475,9 @@ Page({ | ||
475 | //th.setData({ qy_list: arr, need_money: need_money}); | 475 | //th.setData({ qy_list: arr, need_money: need_money}); |
476 | obj.qy_list = arr; | 476 | obj.qy_list = arr; |
477 | th.setData(obj); | 477 | th.setData(obj); |
478 | + obj.is_init=1; | ||
479 | + obj.old_qy_list = arr_data; | ||
480 | + th.setData({qy_data:obj}) | ||
478 | } | 481 | } |
479 | }) | 482 | }) |
480 | } | 483 | } |