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 | ... | ... |