Commit 7ebd45112bc2759943655fc48c48e20a4bf42c84
1 parent
323374f5
套盒商品
Showing
11 changed files
with
270 additions
and
603 deletions
packageA/pages/goodsInfo/goodsInfo.js
| @@ -555,6 +555,8 @@ Page({ | @@ -555,6 +555,8 @@ Page({ | ||
| 555 | if (fir_com[ind].weapp_img) fir_com[ind].weapp_img = JSON.parse(fir_com[ind].weapp_img); | 555 | if (fir_com[ind].weapp_img) fir_com[ind].weapp_img = JSON.parse(fir_com[ind].weapp_img); |
| 556 | } | 556 | } |
| 557 | } | 557 | } |
| 558 | + | ||
| 559 | + this.getTaohe(); | ||
| 558 | 560 | ||
| 559 | // if (th.data.is_closecoupon != 1 && (!th.data.fir_quan || th.data.fir_quan.length<=0)) { | 561 | // if (th.data.is_closecoupon != 1 && (!th.data.fir_quan || th.data.fir_quan.length<=0)) { |
| 560 | // //----获取详情页的券的数量---- | 562 | // //----获取详情页的券的数量---- |
| @@ -2705,6 +2707,43 @@ Page({ | @@ -2705,6 +2707,43 @@ Page({ | ||
| 2705 | }); | 2707 | }); |
| 2706 | }, | 2708 | }, |
| 2707 | 2709 | ||
| 2710 | + | ||
| 2711 | + // 判断是否开启美业,获取套盒列表 | ||
| 2712 | + getTaohe() { | ||
| 2713 | + // 判断是否开启美业 | ||
| 2714 | + getApp().promiseGet('/api/weshop/store/getTabSys/' + os.stoid, {}).then(res => { | ||
| 2715 | + if(res.data.code == 0) { | ||
| 2716 | + let enableMeiye = res.data.data.EnableMeiye; | ||
| 2717 | + self.setData({ | ||
| 2718 | + enableMeiye, | ||
| 2719 | + }); | ||
| 2720 | + | ||
| 2721 | + if(enableMeiye) { // 开启美业 | ||
| 2722 | + // 获取套盒列表 | ||
| 2723 | + let url = '/api/weshop/serviceGoods/list' | ||
| 2724 | + let data = { | ||
| 2725 | + store_id: getApp().globalData.setting.stoid, | ||
| 2726 | + service_id: this.data.data.id, | ||
| 2727 | + }; | ||
| 2728 | + // 请求数据 | ||
| 2729 | + getApp().promiseGet(url, { | ||
| 2730 | + data: data, | ||
| 2731 | + }).then(res => { | ||
| 2732 | + if (res.data.code == 0) { | ||
| 2733 | + console.log('请求成功套盒列表', res); | ||
| 2734 | + self.setData({ | ||
| 2735 | + taoheList: res.data.data, | ||
| 2736 | + }); | ||
| 2737 | + } else { | ||
| 2738 | + throw (res); | ||
| 2739 | + }; | ||
| 2740 | + }).catch(err => {}); | ||
| 2741 | + | ||
| 2742 | + }; | ||
| 2743 | + }; | ||
| 2744 | + }); | ||
| 2745 | + } | ||
| 2746 | + | ||
| 2708 | 2747 | ||
| 2709 | 2748 | ||
| 2710 | }); | 2749 | }); |
packageA/pages/goodsInfo/goodsInfo.wxml
| @@ -203,13 +203,13 @@ | @@ -203,13 +203,13 @@ | ||
| 203 | </view> | 203 | </view> |
| 204 | <view class="pdh20"> | 204 | <view class="pdh20"> |
| 205 | 205 | ||
| 206 | - <view wx:if="{{listServiceItem && listServiceItem.length > 0}}"> | 206 | + <block wx:if="{{listServiceItem && listServiceItem.length > 0}}"> |
| 207 | <view class="card fs28" wx:for="{{listServiceItem}}"> | 207 | <view class="card fs28" wx:for="{{listServiceItem}}"> |
| 208 | <view class="flex ai_c jc_sb" style="height: 88rpx;"> | 208 | <view class="flex ai_c jc_sb" style="height: 88rpx;"> |
| 209 | - <view class="ellipsis-2">{{item.projectName}}({{item.frequency}}次)</view> | 209 | + <view class="ellipsis-2 f1">{{item.projectName}}({{item.frequency}}次)</view> |
| 210 | <view class="pdl30 t-r"> | 210 | <view class="pdl30 t-r"> |
| 211 | - <view class="rmb fs36 bold c-red" wx:if="{{item.money}}">{{item.money}}</view> | ||
| 212 | - <view class="fs22 c-9" wx:if="{{item.showPrice}}">零售价:¥{{item.showPrice}}</view> | 211 | + <view class="rmb fs36 bold c-red">{{item.money}}</view> |
| 212 | + <view class="fs22 c-9 del" wx:if="{{item.showPrice}}">零售价:¥{{item.showPrice}}</view> | ||
| 213 | </view> | 213 | </view> |
| 214 | </view> | 214 | </view> |
| 215 | <view class="flex ai_c jc_sb fs24 c-6"> | 215 | <view class="flex ai_c jc_sb fs24 c-6"> |
| @@ -217,8 +217,25 @@ | @@ -217,8 +217,25 @@ | ||
| 217 | <!-- <view class="pdl30 shrink0">有效期:50天/2022-02-02</view> --> | 217 | <!-- <view class="pdl30 shrink0">有效期:50天/2022-02-02</view> --> |
| 218 | </view> | 218 | </view> |
| 219 | </view> | 219 | </view> |
| 220 | + </block> | ||
| 220 | 221 | ||
| 221 | - </view> | 222 | + <block wx:if="{{enableMeiye}}"> |
| 223 | + <block wx:if="{{taoheList && taoheList.length > 0}}"> | ||
| 224 | + <view class="taohe fs28" wx:for="{{taoheList}}"> | ||
| 225 | + <view class="flex ai_c jc_sb" style="height: 88rpx;"> | ||
| 226 | + <view class="ellipsis-2 f1">{{item.goods_name}} ({{item.goods_sn}}) ({{item.frequency}}个)</view> | ||
| 227 | + <view class="pdl30 t-r"> | ||
| 228 | + <view class="rmb fs36 bold c-red">{{item.vipprice}}</view> | ||
| 229 | + <view class="fs22 c-9 del">零售价:¥{{item.show_price}}</view> | ||
| 230 | + </view> | ||
| 231 | + </view> | ||
| 232 | + <view class="flex ai_c jc_sb fs24 c-6 pdt10"> | ||
| 233 | + <view class="ellipsis-1">备注:{{filters.show_default(item.remark, '无')}}</view> | ||
| 234 | + <view class="pdl30 shrink0">有效期:{{item.effective_days}}天<text wx:if="{{item.effective_date}}">/{{item.effective_date}}</text></view> | ||
| 235 | + </view> | ||
| 236 | + </view> | ||
| 237 | + </block> | ||
| 238 | + </block> | ||
| 222 | 239 | ||
| 223 | <view class="table_s" wx:if="{{service_list}}"> | 240 | <view class="table_s" wx:if="{{service_list}}"> |
| 224 | <view class="tb_item tb-l"> | 241 | <view class="tb_item tb-l"> |
packageA/pages/goodsInfo/goodsInfo.wxss
| @@ -2855,7 +2855,8 @@ button.custom-service::after{ | @@ -2855,7 +2855,8 @@ button.custom-service::after{ | ||
| 2855 | .gray{ background-color: #dcdcdc !important;} | 2855 | .gray{ background-color: #dcdcdc !important;} |
| 2856 | 2856 | ||
| 2857 | 2857 | ||
| 2858 | -.card { | 2858 | +.card, |
| 2859 | +.taohe { | ||
| 2859 | position: relative; | 2860 | position: relative; |
| 2860 | padding: 20rpx; | 2861 | padding: 20rpx; |
| 2861 | margin-bottom: 20rpx; | 2862 | margin-bottom: 20rpx; |
| @@ -2870,7 +2871,7 @@ button.custom-service::after{ | @@ -2870,7 +2871,7 @@ button.custom-service::after{ | ||
| 2870 | .card::before { | 2871 | .card::before { |
| 2871 | position: absolute; | 2872 | position: absolute; |
| 2872 | font-family: iconfont; | 2873 | font-family: iconfont; |
| 2873 | - content: '\e630'; | 2874 | + content: '\e62a'; |
| 2874 | color: rgba(255,0,0,.1); | 2875 | color: rgba(255,0,0,.1); |
| 2875 | font-size: 260rpx; | 2876 | font-size: 260rpx; |
| 2876 | /* transform: rotateZ(45deg); */ | 2877 | /* transform: rotateZ(45deg); */ |
| @@ -2878,6 +2879,16 @@ button.custom-service::after{ | @@ -2878,6 +2879,16 @@ button.custom-service::after{ | ||
| 2878 | left: -70rpx; | 2879 | left: -70rpx; |
| 2879 | } | 2880 | } |
| 2880 | 2881 | ||
| 2882 | +.taohe::before { | ||
| 2883 | + position: absolute; | ||
| 2884 | + font-family: iconfont; | ||
| 2885 | + content: '\e64e'; | ||
| 2886 | + color: rgba(255,0,0,.1); | ||
| 2887 | + font-size: 260rpx; | ||
| 2888 | + top: -20rpx; | ||
| 2889 | + left: -30rpx; | ||
| 2890 | +} | ||
| 2891 | + | ||
| 2881 | .rmb::before { | 2892 | .rmb::before { |
| 2882 | content: '¥'; | 2893 | content: '¥'; |
| 2883 | font-size: 24rpx; | 2894 | font-size: 24rpx; |
| @@ -2892,3 +2903,7 @@ button.custom-service::after{ | @@ -2892,3 +2903,7 @@ button.custom-service::after{ | ||
| 2892 | overflow: hidden; | 2903 | overflow: hidden; |
| 2893 | margin-right: 10rpx; | 2904 | margin-right: 10rpx; |
| 2894 | } | 2905 | } |
| 2906 | + | ||
| 2907 | +.del { | ||
| 2908 | + text-decoration: line-through; | ||
| 2909 | +} |
packageB/pages/boxes-details/boxes-details.js
| 1 | // packageA/pages/details_serviceCard/details_serviceCard.js | 1 | // packageA/pages/details_serviceCard/details_serviceCard.js |
| 2 | const app = getApp(); | 2 | const app = getApp(); |
| 3 | -const os = app.globalData.setting; | 3 | +// const os = app.globalData.setting; |
| 4 | let self = null; | 4 | let self = null; |
| 5 | +// 防抖函数用定时器 | ||
| 6 | +let timer; | ||
| 7 | +const { | ||
| 8 | + barcode, | ||
| 9 | + qrcode | ||
| 10 | +} = require('../../../utils/index.js'); | ||
| 5 | 11 | ||
| 6 | Page({ | 12 | Page({ |
| 7 | 13 | ||
| @@ -9,7 +15,7 @@ Page({ | @@ -9,7 +15,7 @@ Page({ | ||
| 9 | * 页面的初始数据 | 15 | * 页面的初始数据 |
| 10 | */ | 16 | */ |
| 11 | data: { | 17 | data: { |
| 12 | - is_summit_ing: 0, | 18 | + // is_summit_ing: 0, |
| 13 | 19 | ||
| 14 | showQr: false, | 20 | showQr: false, |
| 15 | }, | 21 | }, |
| @@ -19,12 +25,18 @@ Page({ | @@ -19,12 +25,18 @@ Page({ | ||
| 19 | */ | 25 | */ |
| 20 | onLoad: function(options) { | 26 | onLoad: function(options) { |
| 21 | self = this; | 27 | self = this; |
| 22 | - this.data.options = options; | 28 | + this.setData({ |
| 29 | + options, | ||
| 30 | + }); | ||
| 31 | + // this.data.options = options; | ||
| 23 | app.isLogin().then(function(data) { | 32 | app.isLogin().then(function(data) { |
| 24 | self.setData({ | 33 | self.setData({ |
| 25 | userInfo: data, | 34 | userInfo: data, |
| 26 | }); | 35 | }); |
| 27 | - self.getConfig(); | 36 | + wx.setNavigationBarTitle({ |
| 37 | + title: options.title, | ||
| 38 | + }); | ||
| 39 | + // self.getConfig(); | ||
| 28 | }); | 40 | }); |
| 29 | }, | 41 | }, |
| 30 | 42 | ||
| @@ -39,6 +51,7 @@ Page({ | @@ -39,6 +51,7 @@ Page({ | ||
| 39 | * 生命周期函数--监听页面显示 | 51 | * 生命周期函数--监听页面显示 |
| 40 | */ | 52 | */ |
| 41 | onShow: function() { | 53 | onShow: function() { |
| 54 | + console.log('show~~~'); | ||
| 42 | if (app.globalData.userInfo) { | 55 | if (app.globalData.userInfo) { |
| 43 | if (!this.data.isLogin) { | 56 | if (!this.data.isLogin) { |
| 44 | this.setData({ | 57 | this.setData({ |
| @@ -47,11 +60,10 @@ Page({ | @@ -47,11 +60,10 @@ Page({ | ||
| 47 | isLogin: true, | 60 | isLogin: true, |
| 48 | }); | 61 | }); |
| 49 | 62 | ||
| 50 | - let url = '/api/weshop/recharge/user/page' | 63 | + let url = '/api/weshop/serviceGoods/list' |
| 51 | let data = { | 64 | let data = { |
| 52 | store_id: app.globalData.setting.stoid, | 65 | store_id: app.globalData.setting.stoid, |
| 53 | - user_id: this.data.userInfo.user_id, | ||
| 54 | - order_id: this.data.options.order_id, | 66 | + service_id: this.data.options.service_id, |
| 55 | }; | 67 | }; |
| 56 | 68 | ||
| 57 | // 请求数据 | 69 | // 请求数据 |
| @@ -61,18 +73,19 @@ Page({ | @@ -61,18 +73,19 @@ Page({ | ||
| 61 | if (res.data.code == 0) { | 73 | if (res.data.code == 0) { |
| 62 | console.log('请求成功', res); | 74 | console.log('请求成功', res); |
| 63 | this.setData({ | 75 | this.setData({ |
| 64 | - details: res.data.data.pageData[0], | 76 | + details: res.data.data, |
| 65 | }); | 77 | }); |
| 66 | } else { | 78 | } else { |
| 67 | throw (res); | 79 | throw (res); |
| 68 | }; | 80 | }; |
| 69 | }).catch(err => { | 81 | }).catch(err => { |
| 70 | - wx.showToast({ | ||
| 71 | - title: err.data.data, | ||
| 72 | - icon: 'error', | ||
| 73 | - }); | 82 | + // wx.showToast({ |
| 83 | + // title: err.data.data, | ||
| 84 | + // icon: 'error', | ||
| 85 | + // }); | ||
| 74 | }); | 86 | }); |
| 75 | - | 87 | + |
| 88 | + | ||
| 76 | }; | 89 | }; |
| 77 | }; | 90 | }; |
| 78 | }, | 91 | }, |
| @@ -113,21 +126,6 @@ Page({ | @@ -113,21 +126,6 @@ Page({ | ||
| 113 | }, | 126 | }, |
| 114 | 127 | ||
| 115 | 128 | ||
| 116 | - // 内容复制到剪贴板 | ||
| 117 | - copy() { | ||
| 118 | - console.log('点击了复制按钮'); | ||
| 119 | - wx.setClipboardData({ | ||
| 120 | - data: this.data.details.order_sn, | ||
| 121 | - success(res) { | ||
| 122 | - wx.getClipboardData({ | ||
| 123 | - success(res) { | ||
| 124 | - console.log(res.data); | ||
| 125 | - } | ||
| 126 | - }) | ||
| 127 | - } | ||
| 128 | - }) | ||
| 129 | - }, | ||
| 130 | - | ||
| 131 | 129 | ||
| 132 | // 图片异常时加载默认图片 | 130 | // 图片异常时加载默认图片 |
| 133 | bind_bnerr(e) { | 131 | bind_bnerr(e) { |
| @@ -137,362 +135,85 @@ Page({ | @@ -137,362 +135,85 @@ Page({ | ||
| 137 | this.setData(errObj); // this.setData({ details.list[0].img_url}); | 135 | this.setData(errObj); // this.setData({ details.list[0].img_url}); |
| 138 | }, | 136 | }, |
| 139 | 137 | ||
| 140 | - | ||
| 141 | - // 查看商品详情 | ||
| 142 | - viewDetails(e) { | ||
| 143 | - let goods_id = e.currentTarget.dataset.gid; | ||
| 144 | - let url = '/packageA/pages/goodsInfo/goodsInfo?goods_id=' + goods_id; | ||
| 145 | - app.goto(url); | ||
| 146 | - }, | ||
| 147 | - | ||
| 148 | - // 获取系统参数 | ||
| 149 | - getConfig() { | ||
| 150 | - app.getConfig2(function(e) { | ||
| 151 | - // console.log('101',e); | ||
| 152 | - let json_d = JSON.parse(e.switch_list); | ||
| 153 | - self.setData({ | ||
| 154 | - sys_switch: json_d, | ||
| 155 | - // weapp_customertype: json_d.weapp_customertype, | ||
| 156 | - }); | ||
| 157 | - }, 1); | ||
| 158 | - }, | ||
| 159 | - | ||
| 160 | - | ||
| 161 | - // 联系微信客服 | ||
| 162 | - contact_wx() { | ||
| 163 | - var url = this.data.sys_switch.weapp_customertype_url; | ||
| 164 | - var id = this.data.sys_switch.weapp_customertype_appid; | ||
| 165 | - wx.openCustomerServiceChat({ | ||
| 166 | - extInfo: { | ||
| 167 | - url: url | ||
| 168 | - }, | ||
| 169 | - corpId: id, | ||
| 170 | - success(res) {} | ||
| 171 | - }) | ||
| 172 | - }, | ||
| 173 | - | ||
| 174 | - | ||
| 175 | - // 联系电话客服 | ||
| 176 | - contactService() { | ||
| 177 | - app.getConfig(function(t) { | ||
| 178 | - if (t.store_tel == undefined) { | ||
| 179 | - app.request.get('/api/weshop/store/get/' + os.stoid, { | ||
| 180 | - isShowLoading: 1, | ||
| 181 | - data: {}, | ||
| 182 | - success: function(rs) { | ||
| 183 | - app.globalData.config = rs.data.data; | ||
| 184 | - if (rs.data.data.store_tel == null && rs.data.data.store_tel == undefined) { | ||
| 185 | - app.my_warnning('商家未设置电话', 0, self); | ||
| 186 | - return false; | ||
| 187 | - } | ||
| 188 | - app.confirmBox('请联系客服:' + rs.data.data.store_tel); | ||
| 189 | - } | ||
| 190 | - }) | ||
| 191 | - } else { | ||
| 192 | - app.confirmBox('请联系客服:' + t.store_tel); | 138 | + |
| 139 | + createQr() { | ||
| 140 | + wx.showLoading({ | ||
| 141 | + title:'生成核销码中', | ||
| 142 | + }); | ||
| 143 | + | ||
| 144 | + let store_id = app.globalData.setting.stoid; | ||
| 145 | + let id = this.data.options.id; | ||
| 146 | + let url = `/api/weshop/rechargeServicelist/update/${store_id}/${id}`; | ||
| 147 | + | ||
| 148 | + app.request.put(url, { | ||
| 149 | + data: {}, | ||
| 150 | + success: function(res) { | ||
| 151 | + wx.hideLoading(); | ||
| 152 | + if(res.data.code == 0) { | ||
| 153 | + let verify_code = res.data.data.verify_code; | ||
| 154 | + self.qrcode(verify_code); | ||
| 155 | + self.setData({ | ||
| 156 | + verify_code, | ||
| 157 | + showQr: true, | ||
| 158 | + }); | ||
| 159 | + }; | ||
| 193 | } | 160 | } |
| 194 | }); | 161 | }); |
| 195 | }, | 162 | }, |
| 196 | - | ||
| 197 | - | ||
| 198 | - // 评价商品 | ||
| 199 | - access() { | ||
| 200 | - let listLength = this.data.details.list.length; | ||
| 201 | - let order_id = this.data.details.order_id; | ||
| 202 | - let url = ''; | ||
| 203 | - | ||
| 204 | - // 卡项订单跳转到评论页要多加个参数card=1 | ||
| 205 | - // 卡项订单goods_id要带card_id | ||
| 206 | - if (listLength == 1) { | ||
| 207 | - let price = this.data.details.list[0].price; | ||
| 208 | - let card_id = this.data.details.list[0].card_id; | ||
| 209 | - url = | ||
| 210 | - `/packageB/pages/user/add_comment/add_comment?card=1&goods_id=${card_id}&order_id=${order_id}&price=${price}` | ||
| 211 | - }; | ||
| 212 | - if (listLength > 1) { | ||
| 213 | - url = `/packageB/pages/user/comment/comment?card=1&status=0&order_id=${order_id}`; | ||
| 214 | - }; | ||
| 215 | - f | ||
| 216 | - // console.log('url', url); | ||
| 217 | - app.goto(url); | ||
| 218 | - }, | ||
| 219 | - | ||
| 220 | - | ||
| 221 | - // 查看评论 | ||
| 222 | - viewComment() { | ||
| 223 | - let order_id = this.data.details.order_id; | ||
| 224 | - let card_id = this.data.details.list[0].card_id; | ||
| 225 | - let listLength = this.data.details.list.length; | ||
| 226 | - let url = ''; | ||
| 227 | - | ||
| 228 | - // 卡项订单单个商品 | ||
| 229 | - if (listLength == 1) { | ||
| 230 | - url = `/packageB/pages/user/view_comment/view_comment?card=1&goods_id=${card_id}&order_id=${order_id}`; | ||
| 231 | - }; | ||
| 232 | - // 卡项订单多个商品 | ||
| 233 | - if (listLength > 1) { | ||
| 234 | - // status控制评论列表页的activeStatus | ||
| 235 | - url = `/packageB/pages/user/comment/comment?card=1&status=1&order_id=${order_id}`; | ||
| 236 | - }; | ||
| 237 | - | ||
| 238 | - app.goto(url); | 163 | + |
| 164 | + showQr() { | ||
| 165 | + this.debounce(this.createQr, 300)(); | ||
| 239 | }, | 166 | }, |
| 240 | - | ||
| 241 | - | ||
| 242 | - // 再来一单 | ||
| 243 | - buy2(t) { | ||
| 244 | - let details = this.data.details; | ||
| 245 | - var th = this; | ||
| 246 | - var ind = 1; // 1:加入购物车 | ||
| 247 | - // var ind = t.currentTarget.dataset.openSpecModal_ind; | ||
| 248 | - // var action= t.currentTarget.dataset.action; | ||
| 249 | - var action = 'add'; // | ||
| 250 | - // if(!ind) ind = t.currentTarget.dataset.openspecmodal_ind; | ||
| 251 | - | ||
| 252 | - th.setData({ | ||
| 253 | - open_ind_store: ind | 167 | + |
| 168 | + | ||
| 169 | + closeQr() { | ||
| 170 | + this.setData({ | ||
| 171 | + showQr: false, | ||
| 254 | }); | 172 | }); |
| 255 | - | ||
| 256 | - // if(!th.data.sto_sele_name){ | ||
| 257 | - // getApp().my_warnning('请选择门店', 1, th, 450); | ||
| 258 | - // return false; | ||
| 259 | - // } | ||
| 260 | - | ||
| 261 | - | ||
| 262 | - if (action == "buy") { | ||
| 263 | - //--------------此时操作的数据------------ | ||
| 264 | - // var newd = { | ||
| 265 | - // id: th.data.data.id, | ||
| 266 | - // goods_num: th.data.goodsInputNum, | ||
| 267 | - // pick_id: th.data.sto_sele_id, | ||
| 268 | - // keyid: th.data.sto_sele_keyid, | ||
| 269 | - // }; | ||
| 270 | - // newd['pick_name'] = th.data.sto_sele_name; | ||
| 271 | - // newd['guide_id'] = getApp().globalData.guide_id; | ||
| 272 | - // newd['guide_type']=0; | ||
| 273 | - // th.buyNow(newd); | ||
| 274 | - } else { | ||
| 275 | - | ||
| 276 | - var newd = { | ||
| 277 | - // service_id: th.data.data.id, | ||
| 278 | - // service_sn:th.data.data.service_sn, | ||
| 279 | - // service_name:th.data.data.goods_name, | ||
| 280 | - // goods_num: th.data.goodsInputNum, | ||
| 281 | - // pick_id: th.data.sto_sele_id, | ||
| 282 | - // user_id:oo.user_id, | ||
| 283 | - // store_id:os.stoid, | ||
| 284 | - // money:th.data.data.shop_price, | ||
| 285 | - | ||
| 286 | - service_id: details.list[0].card_id, | ||
| 287 | - service_sn: details.list[0].service_sn, | ||
| 288 | - service_name: details.list[0].service_name, | ||
| 289 | - goods_num: details.list[0].qty, | ||
| 290 | - pick_id: details.list[0].pickup_id, | ||
| 291 | - user_id: this.data.userInfo.user_id, | ||
| 292 | - store_id: app.globalData.setting.stoid, | ||
| 293 | - money: details.list[0].price, | ||
| 294 | - }; | ||
| 295 | - if (getApp().globalData.guide_id) { | ||
| 296 | - newd['guide_id'] = getApp().globalData.guide_id; | ||
| 297 | - newd['guide_type'] = 0; | ||
| 298 | - } | ||
| 299 | - | ||
| 300 | - //----先看会员在购物车中是否加入了该商品----- | ||
| 301 | - app.request.get("/api/weshop/cartService/page", { | ||
| 302 | - data: { | ||
| 303 | - store_id: app.globalData.setting.stoid, | ||
| 304 | - user_id: this.data.userInfo.user_id, | ||
| 305 | - service_id: details.list[0].card_id, | ||
| 306 | - pick_id: details.list[0].pickup_id, | ||
| 307 | - }, | ||
| 308 | - success: function(re) { | ||
| 309 | - | ||
| 310 | - //-------如果购物车中有相关的数据--------- | ||
| 311 | - if (re.data.data.total > 0) { | ||
| 312 | - var item = re.data.data.pageData[0]; | ||
| 313 | - var updata = { | ||
| 314 | - id: item.id, | ||
| 315 | - goods_num: details.list[0].qty + item.goods_num, | ||
| 316 | - money: details.list[0].price, | ||
| 317 | - store_id: app.globalData.setting.stoid, | ||
| 318 | - }; | ||
| 319 | - | ||
| 320 | - if (getApp().globalData.guide_id) { | ||
| 321 | - updata['guide_id'] = getApp().globalData.guide_id; | ||
| 322 | - updata['guide_type'] = 1; | ||
| 323 | - } | ||
| 324 | - getApp().request.put("/api/weshop/cartService/update", { | ||
| 325 | - data: updata, | ||
| 326 | - success: function(t) { | ||
| 327 | - // getApp().my_warnning('加入购物车成功', 1, th, 450); | ||
| 328 | - var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; | ||
| 329 | - th.setData({ | ||
| 330 | - cartGoodsNum: c_num | ||
| 331 | - }); | ||
| 332 | - app.goto('/pages/cart/cart/cart'); | ||
| 333 | - // th.closeSpecModal(); | ||
| 334 | - } | ||
| 335 | - }); | ||
| 336 | - } else { | ||
| 337 | - | ||
| 338 | - getApp().request.post("/api/weshop/cartService/save", { | ||
| 339 | - data: newd, | ||
| 340 | - success: function(t) { | ||
| 341 | - // getApp().my_warnning('加入购物车成功', 1, th, 450); | ||
| 342 | - var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; | ||
| 343 | - th.setData({ | ||
| 344 | - cartGoodsNum: c_num | ||
| 345 | - }); | ||
| 346 | - app.goto('/pages/cart/cart/cart'); | ||
| 347 | - // th.closeSpecModal(); | ||
| 348 | - } | ||
| 349 | - }); | ||
| 350 | - } | ||
| 351 | - } | ||
| 352 | - }); | ||
| 353 | - | ||
| 354 | - } | ||
| 355 | - }, | ||
| 356 | - | ||
| 357 | - | ||
| 358 | - // 取消订单 | ||
| 359 | - // api/weshop/recharge/update?store_id=&order_id=&order_status=3 | ||
| 360 | - cancle() { | ||
| 361 | - wx.showModal({ | ||
| 362 | - title: '提示', | ||
| 363 | - content: '确定取消订单吗?', | ||
| 364 | - success(res) { | ||
| 365 | - if (res.confirm) { | ||
| 366 | - console.log('用户点击确定'); | ||
| 367 | - let order_id = self.data.details.order_id; | ||
| 368 | - let order_sn = self.data.details.order_sn; | ||
| 369 | - app.request.put('/api/weshop/recharge/update', { | ||
| 370 | - data: { | ||
| 371 | - store_id: os.stoid, | ||
| 372 | - order_id: order_id, | ||
| 373 | - order_sn: order_sn, | ||
| 374 | - order_status: 3, | ||
| 375 | - }, | ||
| 376 | - success: function(res) { | ||
| 377 | - | ||
| 378 | - //取消成功刷新订单 | ||
| 379 | - let url = '/api/weshop/recharge/user/page' | ||
| 380 | - let data = { | ||
| 381 | - store_id: app.globalData.setting.stoid, | ||
| 382 | - user_id: self.data.userInfo.user_id, | ||
| 383 | - order_id: self.data.options.order_id, | ||
| 384 | - }; | ||
| 385 | - | ||
| 386 | - // 请求数据 | ||
| 387 | - app.promiseGet(url, { | ||
| 388 | - data: data, | ||
| 389 | - }).then(res => { | ||
| 390 | - if (res.data.code == 0) { | ||
| 391 | - console.log('请求成功', res); | ||
| 392 | - wx.showToast({ | ||
| 393 | - title: '取消成功', | ||
| 394 | - }); | ||
| 395 | - self.setData({ | ||
| 396 | - details: res.data.data.pageData[0], | ||
| 397 | - }); | ||
| 398 | - } else { | ||
| 399 | - throw (res); | ||
| 400 | - }; | ||
| 401 | - }).catch(err => { | ||
| 402 | - wx.showToast({ | ||
| 403 | - title: err.data.data, | ||
| 404 | - icon: 'error', | ||
| 405 | - }); | ||
| 406 | - }); | ||
| 407 | - | ||
| 408 | - }, | ||
| 409 | - }) | ||
| 410 | - } else if (res.cancel) { | ||
| 411 | - console.log('用户点击取消'); | ||
| 412 | - } | ||
| 413 | - } | 173 | + |
| 174 | + // 关闭二维码弹窗后,检测核销情况,改变按钮状态 | ||
| 175 | + wx.showLoading({ | ||
| 176 | + title: '刷新中', | ||
| 177 | + mask: true, | ||
| 414 | }); | 178 | }); |
| 415 | - }, | ||
| 416 | - | ||
| 417 | - | ||
| 418 | - // 立即支付 | ||
| 419 | - pay() { | ||
| 420 | - let order_sn = this.data.details.order_sn; | ||
| 421 | let store_id = app.globalData.setting.stoid; | 179 | let store_id = app.globalData.setting.stoid; |
| 422 | - | ||
| 423 | - app.request.post('/api/weshop/order/pay/createRechargeOrder', { | ||
| 424 | - data: { | ||
| 425 | - parentSn: order_sn, | ||
| 426 | - store_id: store_id, | ||
| 427 | - }, | ||
| 428 | - | ||
| 429 | - success: function(res) { | ||
| 430 | - var n = res.data.data; | ||
| 431 | - self.weixinPay(n, function() { | ||
| 432 | - app.showWarning('支付成功'); | ||
| 433 | - // setTimeout(function() { | ||
| 434 | - // wx.reLaunch({ | ||
| 435 | - // url: '/pages/user/my_service/i_service', | ||
| 436 | - // }) | ||
| 437 | - // }, 1000) | ||
| 438 | - }, function() { | ||
| 439 | - app.showWarning('支付失败'); | ||
| 440 | - // setTimeout(function() { | ||
| 441 | - // wx.reLaunch({ | ||
| 442 | - // url: '/packageA/pages/cardList/cardList', | ||
| 443 | - // }) | ||
| 444 | - // }, 1000) | ||
| 445 | - }); | ||
| 446 | - } | ||
| 447 | - }) | ||
| 448 | - }, | ||
| 449 | - | ||
| 450 | - | ||
| 451 | - //------调起支付框-------- | ||
| 452 | - weixinPay: function(n, success, fail) { | ||
| 453 | - if (!n) return false; | ||
| 454 | - wx.requestPayment({ | ||
| 455 | - timeStamp: String(n.timeStamp), | ||
| 456 | - nonceStr: n.nonceStr, | ||
| 457 | - package: n.packageValue, | ||
| 458 | - signType: n.signType, | ||
| 459 | - paySign: n.paySign, | ||
| 460 | - success: function(n) { | ||
| 461 | - console.log(n), getApp().showSuccess("支付成功!"); | ||
| 462 | - "function" == typeof success && success(); | ||
| 463 | - wx.redirectTo({ | ||
| 464 | - url: "../deposit/deposit" | ||
| 465 | - }); | ||
| 466 | - }, | ||
| 467 | - fail: function(n) { | ||
| 468 | - console.log(n), "requestPayment:fail" == n.errMsg ? getApp().showWarning("支付失败") : | ||
| 469 | - "requestPayment:fail cancel" == n.errMsg ? getApp().showWarning("您已取消支付") : getApp().showWarning("支付失败:" + n | ||
| 470 | - .errMsg.substr("requestPayment:fail ".length)), | ||
| 471 | - "function" == typeof fail && fail(); | 180 | + let id = this.data.options.id; |
| 181 | + let url = `/api/weshop/rechargeServicelist/update/${store_id}/${id}`; | ||
| 182 | + | ||
| 183 | + app.request.put(url, { | ||
| 184 | + data: {}, | ||
| 185 | + success: function(res) { | ||
| 186 | + wx.hideLoading(); | ||
| 187 | + if(res.data.code == 0) { | ||
| 188 | + // console.log('xxx000', res.data.data.use_state); | ||
| 189 | + self.setData({ | ||
| 190 | + ['options.usestate']: res.data.data.use_state, | ||
| 191 | + }); | ||
| 192 | + }; | ||
| 472 | } | 193 | } |
| 473 | }); | 194 | }); |
| 474 | }, | 195 | }, |
| 475 | 196 | ||
| 197 | + /** | ||
| 198 | + * 生成二维码 | ||
| 199 | + * by sty | ||
| 200 | + */ | ||
| 201 | + qrcode:function(val){ | ||
| 202 | + barcode('barcode', val, 600,140); | ||
| 203 | + qrcode('qrcode', val, 300, 300); | ||
| 204 | + }, | ||
| 476 | 205 | ||
| 206 | + touchMove() {}, | ||
| 477 | 207 | ||
| 478 | - | ||
| 479 | - | ||
| 480 | - | ||
| 481 | - | ||
| 482 | - | ||
| 483 | - showQr() { | ||
| 484 | - this.setData({ | ||
| 485 | - showQr: true, | ||
| 486 | - }); | 208 | + // 函数防抖 |
| 209 | + debounce(func, wait) { | ||
| 210 | + return () => { | ||
| 211 | + clearTimeout(timer); | ||
| 212 | + timer = setTimeout(func, wait); | ||
| 213 | + }; | ||
| 487 | }, | 214 | }, |
| 488 | 215 | ||
| 489 | - closeQr() { | ||
| 490 | - this.setData({ | ||
| 491 | - showQr: false, | ||
| 492 | - }); | ||
| 493 | - }, | ||
| 494 | 216 | ||
| 495 | - touchMove() {} | ||
| 496 | 217 | ||
| 497 | 218 | ||
| 498 | 219 |
packageB/pages/boxes-details/boxes-details.json
packageB/pages/boxes-details/boxes-details.wxml
| 1 | -<wxs module="filter" src="../../../utils/filter.wxs"></wxs> | 1 | +<wxs module="filters" src="../../../utils/filter.wxs"></wxs> |
| 2 | 2 | ||
| 3 | <view class="main"> | 3 | <view class="main"> |
| 4 | <view class="bg-white pdh20 bdr12"> | 4 | <view class="bg-white pdh20 bdr12"> |
| 5 | - <block> | ||
| 6 | - <!-- 门店名称栏 --> | ||
| 7 | - <!-- <view class="flex jc_sb ai_c pdv20"> | ||
| 8 | - <view class="ellipsis-1 pdr40 fs30"><text class="iconfont icon-shop c-red pdr10"></text>{{item.pickup_name}}</view> | ||
| 9 | - <block> | ||
| 10 | - <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 0}}">待支付</text> | ||
| 11 | - <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 1}}">待评价</text> | ||
| 12 | - <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 2}}">已评价</text> | ||
| 13 | - <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 3}}">已取消</text> | ||
| 14 | - <text class="c-red shrink0 fs26" wx:if="{{details.order_status == 5}}">已作废</text> | ||
| 15 | - </block> | ||
| 16 | - </view> --> | ||
| 17 | - | ||
| 18 | - <!-- 列表栏 --> | ||
| 19 | - <view> | ||
| 20 | - <!-- <view class="flex pdv20" wx:for="{{details.list}}" bindtap="viewDetails" data-gid="{{item.card_id}}"> --> | ||
| 21 | - <view class="flex pdv20" bindtap="viewDetails" data-gid="{{item.card_id}}" wx:for="{{14}}"> | ||
| 22 | - <view class="pic-box shrink0"> | ||
| 23 | - <text class="iconfont icon-shangpin fs60 white"></text> | ||
| 24 | - </view> | ||
| 25 | - <view class="pdl20 f1"> | ||
| 26 | - <view class="flex jc_sb ai_c"> | ||
| 27 | - <view class="title ellipsis-2 pdr40">商品名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称名称</view> | ||
| 28 | - <text class="c-6">x1{{item.price}}</text> | ||
| 29 | - </view> | ||
| 30 | - <view class="flex ai_c c-9 fs26"> | ||
| 31 | - <!-- <text>10个/蓝色</text> --> | ||
| 32 | - <text class="rmb c-red">2{{filters.price(item.group_price)}}</text> | ||
| 33 | - <view class="fs22 del pdl10 c-c7">零售价<text class="rmb">3{{item.market_price}}</text></view> | ||
| 34 | - </view> | ||
| 35 | - </view> | 5 | + <view class="flex pdv20" wx:for="{{details}}"> |
| 6 | + <view class="pic-box shrink0"> | ||
| 7 | + <text class="iconfont icon-shangpin fs60 white"></text> | ||
| 8 | + </view> | ||
| 9 | + <view class="pdl20 f1"> | ||
| 10 | + <view class="flex jc_sb ai_c"> | ||
| 11 | + <view class="title ellipsis-2 pdr40">{{item.goods_name}}</view> | ||
| 12 | + <text class="c-6">x{{item.frequency}}</text> | ||
| 13 | + </view> | ||
| 14 | + <view class="flex ai_c c-9 fs26"> | ||
| 15 | + <text class="rmb c-red">{{item.vipprice}}</text> | ||
| 16 | + <view class="fs22 del pdl10 c-c7">零售价<text class="rmb">{{item.show_price}}</text></view> | ||
| 36 | </view> | 17 | </view> |
| 37 | </view> | 18 | </view> |
| 38 | - </block> | ||
| 39 | - | ||
| 40 | - | ||
| 41 | - <!-- 统计栏 --> | ||
| 42 | - <!-- <view class="t-r bdt pdv20">共{{filter.count(details.list)}}件商品,合计:<text class="rmb c-red bold fs30">{{details.account}}</text></view> --> | 19 | + </view> |
| 43 | </view> | 20 | </view> |
| 44 | 21 | ||
| 45 | - | ||
| 46 | - | ||
| 47 | - | ||
| 48 | <!-- 底部按钮栏 --> | 22 | <!-- 底部按钮栏 --> |
| 49 | <view class="btn-bar bg-white pd20 t-c"> | 23 | <view class="btn-bar bg-white pd20 t-c"> |
| 50 | - <!-- <text class="btn bg-orange white" bindtap="buy2">再来一单</text> --> | ||
| 51 | - <text class="btn bg-red white" bindtap="showQr">立即兑换</text> | 24 | + <!-- 已核销 --> |
| 25 | + <text class="btn bg-gray white" wx:if="{{options.usestate == 1}}">已核销</text> | ||
| 26 | + <!-- 待核销 --> | ||
| 27 | + <block wx:else> | ||
| 28 | + <text class="btn bg-gray white" wx:if="{{filters.isExpired(options.date)}}">已过期</text> | ||
| 29 | + <text class="btn bg-red white" bindtap="showQr" wx:else>立即兑换</text> | ||
| 30 | + </block> | ||
| 52 | </view> | 31 | </view> |
| 53 | </view> | 32 | </view> |
| 54 | 33 | ||
| 55 | 34 | ||
| 56 | - | ||
| 57 | - | ||
| 58 | - | ||
| 59 | - | ||
| 60 | <!-- 遮罩层 --> | 35 | <!-- 遮罩层 --> |
| 61 | <view class="mask" hidden="{{!showQr}}" catchtouchmove="touchMove"></view> | 36 | <view class="mask" hidden="{{!showQr}}" catchtouchmove="touchMove"></view> |
| 62 | <!-- 码 --> | 37 | <!-- 码 --> |
| 63 | <view class="popup-container" hidden="{{!showQr}}" catchtouchmove="touchMove"> | 38 | <view class="popup-container" hidden="{{!showQr}}" catchtouchmove="touchMove"> |
| 64 | - <view class="t-r pdb20"><text class="iconfont icon-close fs40" bindtap="closeQr"></text></view> | 39 | + <view class="t-r pdb10"><text class="iconfont icon-close fs40" bindtap="closeQr"></text></view> |
| 65 | <view class="popup"> | 40 | <view class="popup"> |
| 66 | - <!-- <view class="popup-title"> | ||
| 67 | - <block wx:if="{{details[useIndex].isby == 1}}">包邮券</block> | ||
| 68 | - <block wx:else> | ||
| 69 | - {{filter.getNum(details[useIndex].Sum)}}元微券 | ||
| 70 | - </block> | ||
| 71 | - </view> --> | ||
| 72 | - <!-- <view class="pdt20 c-fe0000"><text class="rmb fs80" wx:if="{{details[useIndex].isby != 1}}">{{filter.getNum(details[useIndex].Sum)}}</text></view> --> | ||
| 73 | <!-- 条形码 --> | 41 | <!-- 条形码 --> |
| 74 | <view class="bar-container"> | 42 | <view class="bar-container"> |
| 75 | <canvas class="barcode" canvas-id="barcode"/> | 43 | <canvas class="barcode" canvas-id="barcode"/> |
| 76 | - <view class="pdt20 fs26" wx:if="{{details[useIndex].CashRepNo}}">{{details[useIndex].CashRepNo}}</view> | ||
| 77 | - <view class="pdt20 fs26" wx:else>{{details[useIndex].no}}</view> | ||
| 78 | </view> | 44 | </view> |
| 79 | <!-- 二维码 --> | 45 | <!-- 二维码 --> |
| 80 | <view class="qr-container"> | 46 | <view class="qr-container"> |
| 81 | <canvas class="qrcode" canvas-id="qrcode"/> | 47 | <canvas class="qrcode" canvas-id="qrcode"/> |
| 82 | </view> | 48 | </view> |
| 83 | <view class="pdv20 c-7b fs26 bdt"> | 49 | <view class="pdv20 c-7b fs26 bdt"> |
| 84 | - <text wx:if="{{details[useIndex].ValidDate}}" class="ellipsis-1x">有效期:{{details[useIndex].BeginDate==null ? " " : time.replace_time2(details[useIndex].BeginDate)}} 至 {{time.replace_time2(details[useIndex].ValidDate)}}</text> | ||
| 85 | - <text wx:elif="{{details[useIndex].use_end_time}}" class="ellipsis-1x">有效期:{{details[useIndex].use_start_time==null ? " " : time.format_time(details[useIndex].use_start_time)}} 至 {{time.format_time(details[useIndex].use_end_time)}}</text> | ||
| 86 | - <text wx:else>有效期:不限</text> | 50 | + <text>核销码: {{verify_code}}</text> |
| 87 | </view> | 51 | </view> |
| 88 | </view> | 52 | </view> |
| 89 | </view> | 53 | </view> |
packageB/pages/boxes-details/boxes-details.wxss
| @@ -29,6 +29,11 @@ page { | @@ -29,6 +29,11 @@ page { | ||
| 29 | background-image: linear-gradient(135deg,#ffba0d,#ffc30d 69%,#ffcf0d); | 29 | background-image: linear-gradient(135deg,#ffba0d,#ffc30d 69%,#ffcf0d); |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | +.bg-gray { | ||
| 33 | + background-image: -webkit-linear-gradient(315deg,#bfbfbf,#c3c3c3 70%,#d4d3d3); | ||
| 34 | + background-image: linear-gradient(135deg,#bfbfbf,#c3c3c3 70%,#d4d3d3); | ||
| 35 | + } | ||
| 36 | + | ||
| 32 | .c-orange { | 37 | .c-orange { |
| 33 | color: #ff9000; | 38 | color: #ff9000; |
| 34 | } | 39 | } |
| @@ -177,6 +182,11 @@ page { | @@ -177,6 +182,11 @@ page { | ||
| 177 | background-color: pink; | 182 | background-color: pink; |
| 178 | } | 183 | } |
| 179 | 184 | ||
| 185 | + .barcode { | ||
| 186 | + width: 100%; | ||
| 187 | + height: 140rpx; | ||
| 188 | + } | ||
| 189 | + | ||
| 180 | .qrcode { | 190 | .qrcode { |
| 181 | width: 300rpx; | 191 | width: 300rpx; |
| 182 | height: 300rpx; | 192 | height: 300rpx; |
| @@ -194,6 +204,11 @@ page { | @@ -194,6 +204,11 @@ page { | ||
| 194 | .breakall { | 204 | .breakall { |
| 195 | word-break: break-all; | 205 | word-break: break-all; |
| 196 | } | 206 | } |
| 207 | + | ||
| 208 | + .bar-container { | ||
| 209 | + box-sizing: border-box; | ||
| 210 | + padding: 30rpx 20rpx; | ||
| 211 | + } | ||
| 197 | 212 | ||
| 198 | 213 | ||
| 199 | 214 |
packageB/pages/boxes-list/boxes-list.js
| 1 | const app = getApp(); | 1 | const app = getApp(); |
| 2 | let self = null; | 2 | let self = null; |
| 3 | +// 防抖函数用定时器 | ||
| 4 | +let timer; | ||
| 3 | 5 | ||
| 4 | Page({ | 6 | Page({ |
| 5 | data: { | 7 | data: { |
| @@ -11,26 +13,6 @@ Page({ | @@ -11,26 +13,6 @@ Page({ | ||
| 11 | isLoading: false, // 检测是否已经发送请求,防止重复发送请求 | 13 | isLoading: false, // 检测是否已经发送请求,防止重复发送请求 |
| 12 | noMore: false, // 检测是否有更多数据,true为没有更多数据,false为还有数据 | 14 | noMore: false, // 检测是否有更多数据,true为没有更多数据,false为还有数据 |
| 13 | pageNum: 1, // 当前页数 | 15 | pageNum: 1, // 当前页数 |
| 14 | - | ||
| 15 | - // showReward: false, | ||
| 16 | - // prizesArr: [], | ||
| 17 | - | ||
| 18 | - // typeArr: [{ | ||
| 19 | - // key: 'point', | ||
| 20 | - // name: '积分', | ||
| 21 | - // },{ | ||
| 22 | - // key: 'grow', | ||
| 23 | - // name: '成长值', | ||
| 24 | - // },{ | ||
| 25 | - // key: 'point', | ||
| 26 | - // name: '优惠券', | ||
| 27 | - // },{ | ||
| 28 | - // key: 'prestore_name', | ||
| 29 | - // name: '项目服务', | ||
| 30 | - // },{ | ||
| 31 | - // key: 'prestore_money', | ||
| 32 | - // name: '预存金额', | ||
| 33 | - // }], | ||
| 34 | }, | 16 | }, |
| 35 | 17 | ||
| 36 | onLoad: function () { | 18 | onLoad: function () { |
| @@ -54,10 +36,12 @@ Page({ | @@ -54,10 +36,12 @@ Page({ | ||
| 54 | let data = { | 36 | let data = { |
| 55 | store_id: app.globalData.setting.stoid, | 37 | store_id: app.globalData.setting.stoid, |
| 56 | user_id: this.data.userInfo.user_id, | 38 | user_id: this.data.userInfo.user_id, |
| 39 | + service_type: 1, | ||
| 40 | + use_state: 0, | ||
| 57 | }; | 41 | }; |
| 58 | 42 | ||
| 59 | - // 默认获取'全部' | ||
| 60 | - this.getData(true, '/api/weshop/prom/luckyOrder/page', data) | 43 | + // 默认获取'待核销' |
| 44 | + this.getData(true, '/api/weshop/rechargeServicelist/page', data) | ||
| 61 | .then(()=>{ | 45 | .then(()=>{ |
| 62 | this.setData({ | 46 | this.setData({ |
| 63 | currentData: data, | 47 | currentData: data, |
| @@ -73,7 +57,7 @@ Page({ | @@ -73,7 +57,7 @@ Page({ | ||
| 73 | * 页面上拉触底事件的处理函数 | 57 | * 页面上拉触底事件的处理函数 |
| 74 | */ | 58 | */ |
| 75 | onReachBottom: function () { | 59 | onReachBottom: function () { |
| 76 | - this.scrollToLower('/api/weshop/prom/luckyOrder/page', this.data.currentData); | 60 | + this.scrollToLower('/api/weshop/rechargeServicelist/page', this.data.currentData); |
| 77 | }, | 61 | }, |
| 78 | 62 | ||
| 79 | 63 | ||
| @@ -91,7 +75,7 @@ Page({ | @@ -91,7 +75,7 @@ Page({ | ||
| 91 | 75 | ||
| 92 | 76 | ||
| 93 | // 点击tab选项卡 | 77 | // 点击tab选项卡 |
| 94 | - clickTab(e) { | 78 | + handleTab(e) { |
| 95 | this.setData({ | 79 | this.setData({ |
| 96 | currentTabIndex: e.target.dataset.index, | 80 | currentTabIndex: e.target.dataset.index, |
| 97 | noMore: false, | 81 | noMore: false, |
| @@ -106,28 +90,24 @@ Page({ | @@ -106,28 +90,24 @@ Page({ | ||
| 106 | 90 | ||
| 107 | switch(currentTabIndex) { | 91 | switch(currentTabIndex) { |
| 108 | case 0: { | 92 | case 0: { |
| 109 | - delete currentData.team_status; | 93 | + currentData.use_state = 0; |
| 110 | break; | 94 | break; |
| 111 | }; | 95 | }; |
| 112 | case 1: { | 96 | case 1: { |
| 113 | - currentData.team_status = 0; | ||
| 114 | - break; | ||
| 115 | - }; | ||
| 116 | - case 2: { | ||
| 117 | - currentData.team_status = 2; | ||
| 118 | - break; | ||
| 119 | - }; | ||
| 120 | - case 3: { | ||
| 121 | - currentData.team_status = 1; | 97 | + currentData.use_state = 1; |
| 122 | break; | 98 | break; |
| 123 | }; | 99 | }; |
| 124 | }; | 100 | }; |
| 125 | 101 | ||
| 126 | // 请求 | 102 | // 请求 |
| 127 | - this.getData(true, '/api/weshop/prom/luckyOrder/page', currentData); | 103 | + this.getData(true, '/api/weshop/rechargeServicelist/page', currentData); |
| 128 | 104 | ||
| 129 | }, | 105 | }, |
| 130 | 106 | ||
| 107 | + clickTab(e) { | ||
| 108 | + this.debounce(this.handleTab.bind(this, e), 200)(); | ||
| 109 | + }, | ||
| 110 | + | ||
| 131 | 111 | ||
| 132 | /** | 112 | /** |
| 133 | * 请求数据 | 113 | * 请求数据 |
| @@ -197,134 +177,28 @@ Page({ | @@ -197,134 +177,28 @@ Page({ | ||
| 197 | }; | 177 | }; |
| 198 | }, | 178 | }, |
| 199 | 179 | ||
| 180 | + | ||
| 200 | 181 | ||
| 201 | - //跳转 | ||
| 202 | - go: function (e) { | ||
| 203 | - var url = e.currentTarget.dataset.url; | ||
| 204 | - getApp().goto(url); | ||
| 205 | - }, | ||
| 206 | - | ||
| 207 | - //查看奖励 | ||
| 208 | - showReward: function(e) { | ||
| 209 | - this.setData({ | ||
| 210 | - currentItemIndex: e.target.dataset.index, | ||
| 211 | - currentItemAid: e.target.dataset.aid, | ||
| 212 | - }); | ||
| 213 | - this.getPrizes(this.data.currentItemIndex); | ||
| 214 | - }, | ||
| 215 | - | ||
| 216 | - //关闭奖励 | ||
| 217 | - closeReward: function() { | ||
| 218 | - this.setData({ | ||
| 219 | - showReward: false, | ||
| 220 | - }); | 182 | + viewDetails(e) { |
| 183 | + let id = e.currentTarget.dataset.id; | ||
| 184 | + let title = e.currentTarget.dataset.title; | ||
| 185 | + let serviceId = e.currentTarget.dataset.serviceid; | ||
| 186 | + let date = e.currentTarget.dataset.date; //有效截止日期 | ||
| 187 | + let use_state = this.data.currentTabIndex; //0待核销 1已核销 | ||
| 188 | + let url = `/packageB/pages/boxes-details/boxes-details?service_id=${serviceId}&id=${id}&title=${title}&usestate=${use_state}&date=${date}`; | ||
| 189 | + | ||
| 190 | + app.goto(url); | ||
| 221 | }, | 191 | }, |
| 222 | 192 | ||
| 223 | 193 | ||
| 224 | - // 获取优惠券奖励和服务项目奖励 | ||
| 225 | - getPrizes: function(currentItemIndex) { | ||
| 226 | - let currentItem = this.data.list.pageData[currentItemIndex]; | ||
| 227 | - let type = currentItem.type; | ||
| 228 | - | ||
| 229 | - // 分割type字符串 | ||
| 230 | - let typeArr = this.splitStringToArr(type); | ||
| 231 | - let prizesArr = []; | ||
| 232 | - let promiseArr = []; | ||
| 233 | - typeArr.forEach(function(item) { | ||
| 234 | - | ||
| 235 | - let obj = {}; | ||
| 236 | - obj.type = item; | ||
| 237 | - | ||
| 238 | - let promise = new Promise((resolve, reject) => { | ||
| 239 | - switch(item) { | ||
| 240 | - case 1: { //积分 | ||
| 241 | - obj.name = '积分'; | ||
| 242 | - obj.num = 'point'; | ||
| 243 | - prizesArr.push(obj); | ||
| 244 | - resolve(); | ||
| 245 | - break; | ||
| 246 | - }; | ||
| 247 | - case 2: { //成长值 | ||
| 248 | - obj.name = '成长值'; | ||
| 249 | - obj.num = 'grow'; | ||
| 250 | - prizesArr.push(obj); | ||
| 251 | - resolve(); | ||
| 252 | - break; | ||
| 253 | - }; | ||
| 254 | - case 3: { //优惠券 | ||
| 255 | - app.request.promiseGet('/api/weshop/prom/luckyCoupon/page', { | ||
| 256 | - data: { | ||
| 257 | - store_id: app.globalData.setting.stoid, | ||
| 258 | - aid: self.data.currentItemAid, | ||
| 259 | - } | ||
| 260 | - }).then(res => { | ||
| 261 | - if(res.data.code == 0) { | ||
| 262 | - obj.couponList = res.data.data.pageData; | ||
| 263 | - prizesArr.push(obj); | ||
| 264 | - resolve(); | ||
| 265 | - }; | ||
| 266 | - }); | ||
| 267 | - break; | ||
| 268 | - }; | ||
| 269 | - case 4: { //服务项目 | ||
| 270 | - app.request.promiseGet('/api/weshop/prom/luckyService/page', { | ||
| 271 | - data: { | ||
| 272 | - store_id: app.globalData.setting.stoid, | ||
| 273 | - aid: self.data.currentItemAid, | ||
| 274 | - } | ||
| 275 | - }).then(res => { | ||
| 276 | - if(res.data.code == 0) { | ||
| 277 | - obj.serviceList = res.data.data.pageData; | ||
| 278 | - prizesArr.push(obj); | ||
| 279 | - resolve(); | ||
| 280 | - }; | ||
| 281 | - }); | ||
| 282 | - break; | ||
| 283 | - }; | ||
| 284 | - case 5: { //预存金额 | ||
| 285 | - obj.name = 'prestore_name'; | ||
| 286 | - obj.num = 'prestore_money'; | ||
| 287 | - prizesArr.push(obj); | ||
| 288 | - resolve(); | ||
| 289 | - break; | ||
| 290 | - }; | ||
| 291 | - }; | ||
| 292 | - }); | ||
| 293 | - | ||
| 294 | - promiseArr.push(promise); | ||
| 295 | - | ||
| 296 | - | ||
| 297 | - Promise.all(promiseArr).then(()=> { | ||
| 298 | - self.setData({ | ||
| 299 | - prizesArr, | ||
| 300 | - showReward: true, | ||
| 301 | - }); | ||
| 302 | - }); | ||
| 303 | - | ||
| 304 | - }); | ||
| 305 | - }, | ||
| 306 | - | ||
| 307 | - // 将type字符串分割成数组 | ||
| 308 | - splitStringToArr: function(typeStr) { | ||
| 309 | - var index; | ||
| 310 | - var newTypeArr = []; | ||
| 311 | - var typeStrArr = typeStr.split(','); | ||
| 312 | - typeStrArr.forEach(function(item) { | ||
| 313 | - index = parseInt(item); | ||
| 314 | - newTypeArr.push(index); | ||
| 315 | - }); | ||
| 316 | - return newTypeArr; | 194 | + // 函数防抖 |
| 195 | + debounce(func, wait) { | ||
| 196 | + return () => { | ||
| 197 | + clearTimeout(timer); | ||
| 198 | + timer = setTimeout(func, wait); | ||
| 199 | + }; | ||
| 317 | }, | 200 | }, |
| 318 | 201 | ||
| 319 | 202 | ||
| 320 | - | ||
| 321 | - | ||
| 322 | - | ||
| 323 | - viewDetails() { | ||
| 324 | - let url = '/packageB/pages/boxes-details/boxes-details'; | ||
| 325 | - app.goto(url); | ||
| 326 | - } | ||
| 327 | - | ||
| 328 | - | ||
| 329 | }) | 203 | }) |
| 330 | 204 |
packageB/pages/boxes-list/boxes-list.wxml
| @@ -10,26 +10,34 @@ | @@ -10,26 +10,34 @@ | ||
| 10 | <view class="tab-bd"> | 10 | <view class="tab-bd"> |
| 11 | <view class="list"> | 11 | <view class="list"> |
| 12 | 12 | ||
| 13 | - | ||
| 14 | - <view class="list-item" wx:if="{{currentTabIndex == 0}}" bindtap="viewDetails"> | 13 | + <block wx:for="{{list.pageData}}"> |
| 14 | + <view class="list-item" bindtap="viewDetails" data-serviceid="{{item.card_id}}" data-id="{{item.id}}" data-title="{{item.service_name}}" data-date="{{item.EffectiveDates}}"> | ||
| 15 | <view class="pd20"> | 15 | <view class="pd20"> |
| 16 | - <view class=""><text class="fs24 c-9">订单编号:</text>191561561565555</view> | ||
| 17 | - <view class="ellipsis-2 title">卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称</view> | 16 | + <view class="fs26"><text class="c-9">卡项编号:</text>{{item.service_sn}}</view> |
| 17 | + <view class="ellipsis-2 title fs28">{{item.service_name}}</view> | ||
| 18 | <view class="flex ai-center"> | 18 | <view class="flex ai-center"> |
| 19 | - <text class="rmb fs40 c-red">2{{filters.price(item.group_price)}}</text> | ||
| 20 | - <view class="fs22 del pdl10 c-c7">零售价<text class="rmb">3{{item.market_price}}</text></view> | 19 | + <text class="rmb fs40 c-red">{{item.money}}</text> |
| 20 | + <view class="fs22 del pdl10 c-c7">零售价<text class="rmb">{{item.show_price}}</text></view> | ||
| 21 | </view> | 21 | </view> |
| 22 | - <view class="fs24 c-red">*兑换截止日期:2022-01-01至2022-12-31</view> | 22 | + <view class="fs24 c-red">*兑换截止日期:{{item.BeginDates}}至{{item.EffectiveDates}}</view> |
| 23 | </view> | 23 | </view> |
| 24 | 24 | ||
| 25 | <view class="pd20 bdt fs24 t-r"> | 25 | <view class="pd20 bdt fs24 t-r"> |
| 26 | - <view class="btn bg-gray white">已过期</view> | ||
| 27 | - <view class="btn bg-red white">立即兑换</view> | 26 | + <block wx:if="{{currentTabIndex == 0}}"> |
| 27 | + <view class="btn bg-gray white" wx:if="{{filters.isExpired(item.EffectiveDates)}}">已过期</view> | ||
| 28 | + <view class="btn bg-red white" wx:else>立即兑换</view> | ||
| 29 | + </block> | ||
| 30 | + | ||
| 31 | + <block wx:if="{{currentTabIndex == 1}}"> | ||
| 32 | + <view class="btn bg-gray white">已核销</view> | ||
| 33 | + </block> | ||
| 28 | </view> | 34 | </view> |
| 35 | + | ||
| 29 | </view> | 36 | </view> |
| 37 | + </block> | ||
| 30 | 38 | ||
| 31 | 39 | ||
| 32 | - <view class="list-item" wx:if="{{currentTabIndex == 1}}"> | 40 | + <!-- <view class="list-item" wx:if="{{currentTabIndex == 1}}"> |
| 33 | <view class="pd20"> | 41 | <view class="pd20"> |
| 34 | <view class=""><text class="fs24 c-9">订单编号:</text>191561561565555</view> | 42 | <view class=""><text class="fs24 c-9">订单编号:</text>191561561565555</view> |
| 35 | <view class="ellipsis-2 title">卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称</view> | 43 | <view class="ellipsis-2 title">卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称项名称卡项名称卡项名称</view> |
| @@ -43,7 +51,7 @@ | @@ -43,7 +51,7 @@ | ||
| 43 | <view class="pd20 bdt fs24 t-r"> | 51 | <view class="pd20 bdt fs24 t-r"> |
| 44 | <view class="btn bg-gray white">已核销</view> | 52 | <view class="btn bg-gray white">已核销</view> |
| 45 | </view> | 53 | </view> |
| 46 | - </view> | 54 | + </view> --> |
| 47 | 55 | ||
| 48 | </view> | 56 | </view> |
| 49 | </view> | 57 | </view> |
packageB/pages/boxes-list/boxes-list.wxss
utils/filter.wxs
| @@ -184,6 +184,18 @@ var filters = { | @@ -184,6 +184,18 @@ var filters = { | ||
| 184 | }; | 184 | }; |
| 185 | }, | 185 | }, |
| 186 | 186 | ||
| 187 | + // 判断时间是否过期 | ||
| 188 | + isExpired: function(date) { | ||
| 189 | + var mydate = getDate(date).getTime(); | ||
| 190 | + var currentDate = getDate().getTime(); | ||
| 191 | + | ||
| 192 | + if(currentDate >= mydate) { | ||
| 193 | + return true; | ||
| 194 | + } else { | ||
| 195 | + return false; | ||
| 196 | + }; | ||
| 197 | + }, | ||
| 198 | + | ||
| 187 | 199 | ||
| 188 | 200 | ||
| 189 | }; | 201 | }; |
| @@ -206,4 +218,5 @@ module.exports = { | @@ -206,4 +218,5 @@ module.exports = { | ||
| 206 | div100: filters.div100, | 218 | div100: filters.div100, |
| 207 | JSONStringify: filters.JSONStringify, | 219 | JSONStringify: filters.JSONStringify, |
| 208 | count: filters.count, | 220 | count: filters.count, |
| 221 | + isExpired: filters.isExpired, | ||
| 209 | } | 222 | } |
| 210 | \ No newline at end of file | 223 | \ No newline at end of file |