Commit 3f3633c1113852f1630d4164beee3bfcae2f31bd
1 parent
6d3288d9
我的礼包
Showing
7 changed files
with
459 additions
and
7 deletions
app.json
... | ... | @@ -137,8 +137,9 @@ |
137 | 137 | "pages/my_service/tment_order_list", |
138 | 138 | "pages/my_service/beauty_deta", |
139 | 139 | "pages/profile/profile", |
140 | - "pages/parseHtml/parseHtml" | |
141 | - | |
140 | + "pages/parseHtml/parseHtml", | |
141 | + "pages/myGift/myGift", | |
142 | + "pages/myGiftDetails/myGiftDetails" | |
142 | 143 | ] |
143 | 144 | |
144 | 145 | }, | ... | ... |
app.wxss
... | ... | @@ -50,6 +50,11 @@ |
50 | 50 | .pdr40 { |
51 | 51 | padding-right: 40rpx; |
52 | 52 | } |
53 | + | |
54 | +.pdr80 { | |
55 | + padding-right: 80rpx; | |
56 | +} | |
57 | + | |
53 | 58 | .pdh10 { |
54 | 59 | padding-left: 10rpx; |
55 | 60 | padding-right: 10rpx; |
... | ... | @@ -58,9 +63,13 @@ |
58 | 63 | padding-left: 20rpx; |
59 | 64 | padding-right: 20rpx; |
60 | 65 | } |
66 | +.pdv10 { | |
67 | + padding-top: 10rpx; | |
68 | + padding-bottom: 10rpx; | |
69 | +} | |
61 | 70 | .pdv20 { |
62 | - padding-top: 30rpx; | |
63 | - padding-bottom: 30rpx; | |
71 | + padding-top: 20rpx; | |
72 | + padding-bottom: 20rpx; | |
64 | 73 | } |
65 | 74 | .pdv30 { |
66 | 75 | padding-top: 30rpx; |
... | ... | @@ -140,6 +149,14 @@ |
140 | 149 | font-weight: bold; |
141 | 150 | } |
142 | 151 | |
152 | +.mgl10 { | |
153 | + margin-left: 10rpx; | |
154 | +} | |
155 | + | |
156 | +.mgb10 { | |
157 | + margin-bottom: 10rpx; | |
158 | +} | |
159 | + | |
143 | 160 | .mgl20 { |
144 | 161 | margin-left: 20rpx; |
145 | 162 | } |
... | ... | @@ -635,6 +652,10 @@ background: #ffe3e2; |
635 | 652 | line-height: 1; |
636 | 653 | } |
637 | 654 | |
655 | +.lh { | |
656 | + line-height: 1.4; | |
657 | +} | |
658 | + | |
638 | 659 | |
639 | 660 | |
640 | 661 | |
... | ... | @@ -646,9 +667,9 @@ background: #ffe3e2; |
646 | 667 | /* 图标字体(ty) */ |
647 | 668 | @font-face { |
648 | 669 | font-family: 'iconfont'; /* Project id 2054717 */ |
649 | - src: url('//at.alicdn.com/t/font_2054717_hcnqrwwkh97.woff2?t=1620986106765') format('woff2'), | |
650 | - url('//at.alicdn.com/t/font_2054717_hcnqrwwkh97.woff?t=1620986106765') format('woff'), | |
651 | - url('//at.alicdn.com/t/font_2054717_hcnqrwwkh97.ttf?t=1620986106765') format('truetype'); | |
670 | + src: url('//at.alicdn.com/t/font_2054717_f0lv6m3iryg.woff2?t=1621240949872') format('woff2'), | |
671 | + url('//at.alicdn.com/t/font_2054717_f0lv6m3iryg.woff?t=1621240949872') format('woff'), | |
672 | + url('//at.alicdn.com/t/font_2054717_f0lv6m3iryg.ttf?t=1621240949872') format('truetype'); | |
652 | 673 | } |
653 | 674 | |
654 | 675 | .iconfont { | ... | ... |
packageA/pages/myGift/myGift.js
0 → 100644
1 | +// packageA//pages/myGift/myGift.js | |
2 | +const app = getApp(); | |
3 | +let self = null; | |
4 | + | |
5 | +Page({ | |
6 | + | |
7 | + /** | |
8 | + * 页面的初始数据 | |
9 | + */ | |
10 | + data: { | |
11 | + tabArr: ['礼包列表', '我的礼包'], | |
12 | + currentIndex: 0, | |
13 | + | |
14 | + list: null, | |
15 | + isLoading: false, // 检测是否已经发送请求,防止重复发送请求 | |
16 | + noMore: false, // 检测是否有更多数据,true为没有更多数据,false为还有数据 | |
17 | + pageNum: 1, // 当前页数 | |
18 | + }, | |
19 | + | |
20 | + clickTab(e) { | |
21 | + let index = e.target.dataset.index; | |
22 | + let url = ''; | |
23 | + let data = { | |
24 | + store_id: app.globalData.setting.stoid, | |
25 | + }; | |
26 | + | |
27 | + this.setData({ | |
28 | + list: null, | |
29 | + pageNum: 1, | |
30 | + noMore: false, | |
31 | + currentIndex: index, | |
32 | + }); | |
33 | + | |
34 | + if(index == 0) { | |
35 | + url = '/api/weshop/libao/libaoFormvip/page'; | |
36 | + data.user_id = app.globalData.user_id; | |
37 | + } else if(index == 1) { | |
38 | + url = '/api/weshop/libao/libaoForm/page'; | |
39 | + }; | |
40 | + | |
41 | + this.getData(true, url, data); | |
42 | + }, | |
43 | + | |
44 | + /** | |
45 | + * 生命周期函数--监听页面加载 | |
46 | + */ | |
47 | + onLoad: function (options) { | |
48 | + self = this; | |
49 | + app.isLogin().then(function(data) {//进入页面前已经授权登录成功 | |
50 | + self.setData({ | |
51 | + userInfo: data, | |
52 | + }); | |
53 | + }); | |
54 | + }, | |
55 | + | |
56 | + /** | |
57 | + * 生命周期函数--监听页面初次渲染完成 | |
58 | + */ | |
59 | + onReady: function () { | |
60 | + | |
61 | + }, | |
62 | + | |
63 | + /** | |
64 | + * 生命周期函数--监听页面显示 | |
65 | + */ | |
66 | + onShow: function () { | |
67 | + if(app.globalData.userInfo) { | |
68 | + if(!this.data.isLogin) { | |
69 | + this.setData({ | |
70 | + userInfo: app.globalData.userInfo, | |
71 | + imghost: app.globalData.setting.imghost, | |
72 | + isLogin: true, | |
73 | + }); | |
74 | + | |
75 | + this.getData(true, '/api/weshop/libao/libaoFormvip/page', { | |
76 | + store_id: app.globalData.setting.stoid, | |
77 | + user_id: app.globalData.user_id, | |
78 | + }); | |
79 | + }; | |
80 | + }; | |
81 | + }, | |
82 | + | |
83 | + /** | |
84 | + * 生命周期函数--监听页面隐藏 | |
85 | + */ | |
86 | + onHide: function () { | |
87 | + | |
88 | + }, | |
89 | + | |
90 | + /** | |
91 | + * 生命周期函数--监听页面卸载 | |
92 | + */ | |
93 | + onUnload: function () { | |
94 | + | |
95 | + }, | |
96 | + | |
97 | + /** | |
98 | + * 页面相关事件处理函数--监听用户下拉动作 | |
99 | + */ | |
100 | + onPullDownRefresh: function () { | |
101 | + | |
102 | + }, | |
103 | + | |
104 | + /** | |
105 | + * 页面上拉触底事件的处理函数 | |
106 | + */ | |
107 | + onReachBottom: function () { | |
108 | + this.scrollToLower('/api/weshop/libao/libaoFormvip/page', { | |
109 | + store_id: app.globalData.setting.stoid, | |
110 | + user_id: app.globalData.user_id, | |
111 | + }); | |
112 | + }, | |
113 | + | |
114 | + /** | |
115 | + * 用户点击右上角分享 | |
116 | + */ | |
117 | + onShareAppMessage: function () { | |
118 | + | |
119 | + }, | |
120 | + | |
121 | + /** | |
122 | + * 请求数据 | |
123 | + */ | |
124 | + getData: function(isInit, url, data) { | |
125 | + app.request.promiseGet(url, { | |
126 | + data: data, | |
127 | + isShowLoading: true, | |
128 | + }) | |
129 | + .then(function(res) { | |
130 | + if(res.data.code == 0) { | |
131 | + | |
132 | + self.setData({ | |
133 | + isLoading: false | |
134 | + }); | |
135 | + | |
136 | + if(isInit) {// 第一次加载 | |
137 | + self.setData({ | |
138 | + list: res.data.data | |
139 | + }); | |
140 | + } else { | |
141 | + self.setData({ | |
142 | + 'list.pageData': self.data.list.pageData.concat(res.data.data.pageData) | |
143 | + }); | |
144 | + }; | |
145 | + | |
146 | + if((res.data.data.pageData.length == 0) || (res.data.data.pageSize * res.data.data.page >= res.data.data.total)) { | |
147 | + self.setData({ | |
148 | + noMore: true | |
149 | + }); | |
150 | + }; | |
151 | + | |
152 | + } else { | |
153 | + self.setData({ | |
154 | + 'list.pageData': [] | |
155 | + }); | |
156 | + }; | |
157 | + | |
158 | + }) | |
159 | + .catch(function(err) { | |
160 | + console.log('出错拉!!!!',err); | |
161 | + self.setData({ | |
162 | + 'list.pageData': [] | |
163 | + }); | |
164 | + }); | |
165 | + }, | |
166 | + | |
167 | + | |
168 | + /** | |
169 | + * 上拉加载 | |
170 | + */ | |
171 | + scrollToLower(url, requestData) { | |
172 | + // 数据总量 | |
173 | + let total = this.data.list.total; | |
174 | + // 单页最大数据量 | |
175 | + let pageSize = this.data.list.pageSize; | |
176 | + // 如果数据总量不为0且小于或等于单页最大数据量,说明数据已全部加载,显示‘没有更多了’ | |
177 | + if((total != 0)&&(total <= pageSize)) { | |
178 | + this.setData({ | |
179 | + noMore: true | |
180 | + }); | |
181 | + }; | |
182 | + | |
183 | + if(!this.data.isLoading && !this.data.noMore) { | |
184 | + this.setData({ | |
185 | + isLoading: true, | |
186 | + pageNum: this.data.pageNum + 1 | |
187 | + }); | |
188 | + requestData.page = this.data.pageNum; | |
189 | + this.getData(false, url, requestData); | |
190 | + }; | |
191 | + }, | |
192 | + | |
193 | + /** | |
194 | + * 点击跳转 | |
195 | + */ | |
196 | + goto(e) { | |
197 | + let url = ''; | |
198 | + if(e.target.dataset.url) { | |
199 | + url = e.target.dataset.url; | |
200 | + } else { | |
201 | + url = e.currentTarget.dataset.url; | |
202 | + } | |
203 | + app.goto(url); | |
204 | + }, | |
205 | +}) | |
0 | 206 | \ No newline at end of file | ... | ... |
packageA/pages/myGift/myGift.json
0 → 100644
packageA/pages/myGift/myGift.wxml
0 → 100644
1 | +<wxs module="filter" src="../../../utils/filter.wxs"></wxs> | |
2 | +<view> | |
3 | + <view class="tab-title" bindtap="clickTab"> | |
4 | + <view class="tab-title-item {{currentIndex == index ? 'active':''}}" wx:for="{{tabArr}}" data-index="{{index}}">{{item}}</view> | |
5 | + </view> | |
6 | + <view class="tab-content"> | |
7 | + <block wx:if="{{currentIndex == 0}}"> | |
8 | + <view class="tab-item" wx:for="{{list.pageData}}"> | |
9 | + <!-- 图片 --> | |
10 | + <view class="img-container"><image src="{{imghost + item.lburl}}" class="img" mode="aspectFit"/></view> | |
11 | + <view class="desc-container"> | |
12 | + <!-- 标题 --> | |
13 | + <view class="mgb10 ellipsis-2 lh taj">{{item.lbtitle}}</view> | |
14 | + <!-- 价格 --> | |
15 | + <view class="flex jc_sb ai-center pdb10"> | |
16 | + <view class="flex ai-center"> | |
17 | + <view class="c-red fs28"><text class="rmb">{{item.lbprice}}</text>/{{item.lbintegral}}积分</view> | |
18 | + <view class="fs22 c-a4 line-through mgl10">零售价{{item.oldprice}}</view> | |
19 | + </view> | |
20 | + <view class="fs24 c-a4">已售{{item.salenum}}件</view> | |
21 | + </view> | |
22 | + <!-- 时间 --> | |
23 | + <view class="date pdb20">活动截止日期{{filter.format_time(item.expdate)}}</view> | |
24 | + <!-- 按钮 --> | |
25 | + <view class="btn-container"> | |
26 | + <view class="btn exchange">立即兑换</view> | |
27 | + <view class="btn buy">立即购买</view> | |
28 | + </view> | |
29 | + </view> | |
30 | + </view> | |
31 | + </block> | |
32 | + | |
33 | + <block wx:else> | |
34 | + <view class="tab-item flex pd20" wx:for="{{list.pageData}}"> | |
35 | + <view class="img-container2"><image src="{{imghost + item.lburl}}" class="img" mode="aspectFit"/></view> | |
36 | + <view class="flex fdc jc_sb"> | |
37 | + <view> | |
38 | + <!-- 标题 --> | |
39 | + <view class="mgb10 ellipsis-2 lh taj">{{item.lbtitle}}</view> | |
40 | + <!-- 时间 --> | |
41 | + <view class="date pdb20">活动截止日期{{filter.format_time(item.endtime)}}</view> | |
42 | + </view> | |
43 | + <!-- 说明 --> | |
44 | + <view class="c-red fs24">*请到线下门店兑换</view> | |
45 | + </view> | |
46 | + </view> | |
47 | + </block> | |
48 | + | |
49 | + <view class="noMore" hidden="{{!noMore}}" wx:if="{{list.pageData.length !== 0}}">—— 已经到底了 ——</view> | |
50 | + </view> | |
51 | +</view> | ... | ... |
packageA/pages/myGift/myGift.wxss
0 → 100644
1 | +@charset "utf-8"; | |
2 | + | |
3 | +.c-a4 { | |
4 | + color: #a4a4a4; | |
5 | +} | |
6 | + | |
7 | +.c-red { | |
8 | + color: #FF6768; | |
9 | +} | |
10 | + | |
11 | +.h88 { | |
12 | + height: 88rpx; | |
13 | +} | |
14 | + | |
15 | + | |
16 | +page { | |
17 | + background-color: #f0f0f0; | |
18 | +} | |
19 | + | |
20 | +.tab-title { | |
21 | + display: flex; | |
22 | + position: sticky; | |
23 | + background-color: white; | |
24 | + top: 0; | |
25 | + font-size: 30rpx; | |
26 | +} | |
27 | + | |
28 | +.tab-title::after { | |
29 | + position: absolute; | |
30 | + content: ''; | |
31 | + width: 2rpx; | |
32 | + height: 40%; | |
33 | + background-color: #f0f0f0; | |
34 | + top: 0; | |
35 | + bottom: 0; | |
36 | + left: 0; | |
37 | + right: 0; | |
38 | + margin: auto; | |
39 | +} | |
40 | + | |
41 | +.tab-title-item { | |
42 | + flex: 1; | |
43 | + text-align: center; | |
44 | + padding-top: 20rpx; | |
45 | + padding-bottom: 20rpx; | |
46 | + position: relative; | |
47 | +} | |
48 | + | |
49 | +.tab-title-item.active { | |
50 | + color: #FF6768; | |
51 | + font-weight: bold; | |
52 | + | |
53 | +} | |
54 | + | |
55 | +.tab-title-item::after { | |
56 | + position: absolute; | |
57 | + content: ''; | |
58 | + left: 100%; | |
59 | + bottom: 0; | |
60 | + width: 0; | |
61 | + border-bottom: 2rpx solid #FF6768; | |
62 | + /* height: 3rpx; */ | |
63 | + transition: 0.2s all linear; | |
64 | +} | |
65 | + | |
66 | +.tab-title-item.active::after { | |
67 | + /* left: 100%; */ | |
68 | + width: 100%; | |
69 | + left: 0; | |
70 | + /* background-color: #FF6768; */ | |
71 | + /* transition-delay: 0.1s; */ | |
72 | +} | |
73 | + | |
74 | +.tab-title-item.active ~ .tab-title-item::after { | |
75 | + /* width: 100%; */ | |
76 | + left: 0; | |
77 | +} | |
78 | + | |
79 | +.tab-content { | |
80 | + padding-top: 20rpx; | |
81 | + padding-left: 20rpx; | |
82 | + padding-right: 20rpx; | |
83 | +} | |
84 | + | |
85 | +.tab-item { | |
86 | + background-color: white; | |
87 | + border-radius: 10rpx; | |
88 | + overflow: hidden; | |
89 | +} | |
90 | + | |
91 | +.tab-item ~ .tab-item { | |
92 | + margin-top: 20rpx; | |
93 | +} | |
94 | + | |
95 | +.img-container { | |
96 | + background-color: #dedede; | |
97 | + height: 300rpx; | |
98 | +} | |
99 | + | |
100 | +.img-container2 { | |
101 | + width: 200rpx; | |
102 | + height: 200rpx; | |
103 | + background-color: #dedede; | |
104 | + margin-right: 20rpx; | |
105 | + flex-shrink: 0; | |
106 | +} | |
107 | + | |
108 | +.img { | |
109 | + display: block; | |
110 | + width: 100%; | |
111 | + height: 100%; | |
112 | +} | |
113 | + | |
114 | +.desc-container { | |
115 | + padding: 20rpx; | |
116 | +} | |
117 | + | |
118 | + | |
119 | + | |
120 | +.rmb::before { | |
121 | + content: '¥'; | |
122 | +} | |
123 | + | |
124 | +.date { | |
125 | + color: #a4a4a4; | |
126 | + font-size: 24rpx; | |
127 | +} | |
128 | + | |
129 | +.btn-container { | |
130 | + display: flex; | |
131 | + justify-content: space-around; | |
132 | + font-size: 26rpx; | |
133 | +} | |
134 | + | |
135 | +.btn { | |
136 | + padding: 20rpx; | |
137 | + flex: 1; | |
138 | + text-align: center; | |
139 | +} | |
140 | + | |
141 | +.btn.exchange { | |
142 | + background-color: #FF6768; | |
143 | + color: white; | |
144 | +} | |
145 | + | |
146 | +.btn.buy { | |
147 | + background-color: #FACAD6; | |
148 | + color: #FF6768; | |
149 | +} | |
150 | + | |
151 | +.noMore { | |
152 | + padding: 20rpx; | |
153 | + color: #bbb; | |
154 | + text-align: center; | |
155 | + font-size: 22rpx; | |
156 | +} | |
0 | 157 | \ No newline at end of file | ... | ... |
utils/filter.wxs
... | ... | @@ -118,6 +118,15 @@ var filters = { |
118 | 118 | }, |
119 | 119 | |
120 | 120 | |
121 | + in_arr: function(index, arr) { | |
122 | + if(arr.indexOf(index) != -1) { | |
123 | + return true; | |
124 | + } else { | |
125 | + return false; | |
126 | + }; | |
127 | + }, | |
128 | + | |
129 | + | |
121 | 130 | |
122 | 131 | |
123 | 132 | }; |
... | ... | @@ -131,4 +140,5 @@ module.exports = { |
131 | 140 | show_gui_ge: filters.show_gui_ge, |
132 | 141 | show_default: filters.show_default, |
133 | 142 | status: filters.status, |
143 | + in_arr: filters.in_arr, | |
134 | 144 | } |
135 | 145 | \ No newline at end of file | ... | ... |