Commit ac90965ca66ace622b672490e65cffafcf444be9

Authored by pengye
1 parent ec8c7eed

挂机短信链接加上充值和优惠券活动、入驻信息

@@ -362,6 +362,7 @@ @@ -362,6 +362,7 @@
362 border-radius: 6rpx; 362 border-radius: 6rpx;
363 margin: 0 10rpx 0 20rpx; 363 margin: 0 10rpx 0 20rpx;
364 font-family: PingFang SC; 364 font-family: PingFang SC;
  365 + padding: 0 6rpx;
365 } 366 }
366 367
367 .itemTop .priceText { 368 .itemTop .priceText {
@@ -400,6 +400,7 @@ @@ -400,6 +400,7 @@
400 border-radius: 6rpx; 400 border-radius: 6rpx;
401 margin: 0 10rpx 0 20rpx; 401 margin: 0 10rpx 0 20rpx;
402 font-family: PingFang SC; 402 font-family: PingFang SC;
  403 + padding: 0 6rpx;
403 } 404 }
404 405
405 .itemTop .priceText { 406 .itemTop .priceText {
@@ -364,6 +364,7 @@ @@ -364,6 +364,7 @@
364 border-radius: 6rpx; 364 border-radius: 6rpx;
365 margin: 0 10rpx 0 20rpx; 365 margin: 0 10rpx 0 20rpx;
366 font-family: PingFang SC; 366 font-family: PingFang SC;
  367 + padding: 0 6rpx;
367 } 368 }
368 369
369 .itemTop .priceText { 370 .itemTop .priceText {
@@ -382,6 +382,7 @@ @@ -382,6 +382,7 @@
382 border-radius: 6rpx; 382 border-radius: 6rpx;
383 margin: 0 10rpx 0 20rpx; 383 margin: 0 10rpx 0 20rpx;
384 font-family: PingFang SC; 384 font-family: PingFang SC;
  385 + padding: 0 6rpx;
385 } 386 }
386 387
387 .itemTop .priceText { 388 .itemTop .priceText {
@@ -23,6 +23,16 @@ Page({ @@ -23,6 +23,16 @@ Page({
23 home: {}, 23 home: {},
24 sid: '', 24 sid: '',
25 IsCollectionSeller: false, 25 IsCollectionSeller: false,
  26 + hasValueCertificate:false,//商家是否开通优惠券功能
  27 + hasValueRecharge:false,//商家是否开通充值功能
  28 + marketing: {},
  29 + recharge_data: {},
  30 + scoreInfo:'',
  31 + priceInfo:'',
  32 + certificate:'',
  33 + coupon_dataList:[],
  34 + dataStr: Date.now() * 1 / 1000,
  35 + StyleType:'',
26 }, 36 },
27 37
28 /** 38 /**
@@ -35,6 +45,7 @@ Page({ @@ -35,6 +45,7 @@ Page({
35 }) 45 })
36 this.getDetail(options.sid) 46 this.getDetail(options.sid)
37 this.getIsCollectionSellerFun(options.sid) 47 this.getIsCollectionSellerFun(options.sid)
  48 + this.getSellerVersionFun(options.sid)
38 } 49 }
39 }, 50 },
40 // 获取商家是否收藏状态 51 // 获取商家是否收藏状态
@@ -75,17 +86,78 @@ Page({ @@ -75,17 +86,78 @@ Page({
75 console.log(res, '详情请求失败'); 86 console.log(res, '详情请求失败');
76 }) 87 })
77 }, 88 },
  89 + // 获取商家版本,不是超能版或者没有开通对应模块,不显示
  90 + getSellerVersionFun(sellerid){
  91 + App.SellerVersion.GetSellerVersion({
  92 + sellerid
  93 + }).then((res) => {
  94 + console.log('版本列表',res.data);
  95 + if(res.data && res.data.length>0){
  96 + const hasValueCertificate = res.data.some(item => item.vid == '1' || item.vid == '2' || item.vid == '3' || item.vid == '8');
  97 + const hasValueRecharge = res.data.some(item => item.vid == '1' || item.vid == '2' || item.vid == '3' || item.vid == '9');
  98 + this.setData({
  99 + hasValueCertificate,
  100 + hasValueRecharge,
  101 + })
  102 + }
  103 + })
  104 + },
  105 + // 点击了解更多会员优惠政策
  106 + gotoFavourableList() {
  107 + let url = util.http_build_query({
  108 + sellerName: this.data.seller.sellName,
  109 + sellerid: this.data.sid,
  110 + types: '3'
  111 + }, '/pack-cookbook/pages/favourableList')
  112 + wx.navigateTo({
  113 + url
  114 + })
  115 + },
  116 + // 拨打电话
  117 + callPhone(e) {
  118 + const phone = e.currentTarget.dataset['phone'];
  119 + wx.makePhoneCall({
  120 + phoneNumber: phone
  121 + })
  122 + },
  123 + // 跳转到商家入驻页
  124 + gotoJoinSeller() {
  125 + wx.navigateTo({
  126 + url: '/pages/customer/joinSeller',
  127 + })
  128 + },
78 // 获取商家设置营销信息 129 // 获取商家设置营销信息
79 getSellerTemplateConfFun(sid) { 130 getSellerTemplateConfFun(sid) {
80 App.Seller.GetSellerTemplateConf({ 131 App.Seller.GetSellerTemplateConf({
81 sid 132 sid
82 }).then(res => { 133 }).then(res => {
83 let data = res.data 134 let data = res.data
84 - let home, chef, signboard, store; 135 + let couponList = []
  136 + let home, chef, signboard, store, marketing, coupon, StyleType;
85 chef = util.determine(data.chef); 137 chef = util.determine(data.chef);
86 signboard = util.determine(data.signboard); 138 signboard = util.determine(data.signboard);
87 store = util.determine(data.store); 139 store = util.determine(data.store);
88 home = util.determine(data.home); 140 home = util.determine(data.home);
  141 + marketing = util.determine(data.marketing);
  142 + StyleType = data.type;
  143 + if (marketing) {
  144 + coupon = marketing.coupon_data ? util.determine(marketing.coupon_data) : '';
  145 + }
  146 + // is_cash 代金券 is_discount折扣券 is_dish菜品券 只有代金券有几折显示
  147 + if (coupon && util.getType(coupon) == 'object') {
  148 + couponList.push({
  149 + id: coupon.id
  150 + });
  151 + }
  152 + if (coupon && util.getType(coupon) == 'array') {
  153 + if (coupon.length > 0) {
  154 + coupon.forEach(item => {
  155 + couponList.push({
  156 + id: item.id
  157 + })
  158 + })
  159 + }
  160 + }
89 if (store && store.images.length > 0) store.images = util.determine(store.images); 161 if (store && store.images.length > 0) store.images = util.determine(store.images);
90 if (signboard && signboard.images) signboard.images = util.determine(signboard.images); 162 if (signboard && signboard.images) signboard.images = util.determine(signboard.images);
91 let obj = { 163 let obj = {
@@ -93,20 +165,81 @@ Page({ @@ -93,20 +165,81 @@ Page({
93 signboard, 165 signboard,
94 store, 166 store,
95 home, 167 home,
  168 + marketing,
  169 + coupon,
  170 + couponList,
  171 + StyleType,
96 } 172 }
97 console.log('获取数据', { 173 console.log('获取数据', {
98 ...obj 174 ...obj
99 }); 175 });
  176 + // 根据券ID获取券详情
  177 + this.getActivityByIdFun(couponList, couponList.length)
  178 + // 根据充值ID获取充值详情
  179 + if (marketing && marketing.is_recharge == '1' && marketing.recharge_data) {
  180 + this.getRechargeDetail(marketing.recharge_data.id)
  181 + }
100 this.setData({ 182 this.setData({
101 chef, 183 chef,
102 signboard, 184 signboard,
103 store, 185 store,
104 home, 186 home,
  187 + marketing,
  188 + StyleType,
105 }) 189 })
106 }).catch(res => { 190 }).catch(res => {
107 console.log('GetSellerTemplateConf请求失败'); 191 console.log('GetSellerTemplateConf请求失败');
108 }) 192 })
109 }, 193 },
  194 + // 根据充值ID获取充值详情
  195 + getRechargeDetail(id) {
  196 + App.Activity.GetNewRecharge({
  197 + id
  198 + }).then(res => {
  199 + let detail = res.data
  200 + let exp_date = res.data.exp_date ? JSON.parse(res.data.exp_date) : ''
  201 + let recharge_list = res.data.recharge_list ? JSON.parse(res.data.recharge_list) : ''
  202 + let priceInfo, scoreInfo, certificate;
  203 + detail.recharge_list = recharge_list;
  204 + detail.exp_date = exp_date;
  205 + if (recharge_list.is_price == '1') priceInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.price + '元余额';
  206 + if (recharge_list.is_score == '1') scoreInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.score + '积分';
  207 + if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) certificate = recharge_list.coupons_names.join('、');
  208 + this.setData({
  209 + recharge_data: detail,
  210 + scoreInfo,
  211 + priceInfo,
  212 + certificate
  213 + })
  214 + })
  215 + },
  216 + // 根据券ID获取券详情
  217 + getActivityByIdFun(ids, length) {
  218 + let coupon_dataList = [];
  219 + ids.forEach(i => {
  220 + App.Activity.GetActivityById({
  221 + id: i.id
  222 + }).then(res => {
  223 + if (res.data.length > 0) {
  224 + let detail = res.data[0];
  225 + detail.stringifyUse = detail.use ? JSON.stringify(detail.use) : '';
  226 + detail.exp_date = detail.exp_date ? util.determine(detail.exp_date) : '';
  227 + detail.use = detail.use ? util.determine(detail.use) : '';
  228 + if ((detail.use && (!detail.use.is_cash || detail.use.is_cash == '1'))) {
  229 + let cash = detail.use.cash * 1;
  230 + let price = detail.price * 1;
  231 + detail.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
  232 + }
  233 + coupon_dataList.push(detail);
  234 + if (length === ids.length) {
  235 + this.setData({
  236 + coupon_dataList,
  237 + })
  238 + }
  239 + }
  240 + })
  241 + })
  242 + },
110 // 导航 243 // 导航
111 looklocation: function () { 244 looklocation: function () {
112 wx.reportMonitor('1015', 1) 245 wx.reportMonitor('1015', 1)
@@ -19,9 +19,36 @@ @@ -19,9 +19,36 @@
19 </view> 19 </view>
20 </view> 20 </view>
21 </view> 21 </view>
22 - 22 + <view class="preferential" wx:if="{{hasValueCertificate && marketing && marketing.is_coupon=='1' && coupon_dataList.length>0}}">
  23 + <block wx:for="{{coupon_dataList}}" wx:key="index" wx:for-index="index">
  24 + <view class="preferentialItems" wx:if="{{dataStr<(item.etime*1)}}">
  25 + <view class="itemLeft couponItem">
  26 + <view class="itemTop">
  27 + <text class="font28r">{{item.aname}}</text>
  28 + <view class="priceText font24r" wx:if="{{item.price}}">
  29 + <view class="icons font24r">¥</view>{{item.price}}
  30 + </view>
  31 + <!-- is_cash 代金券 is_discount折扣券 is_dish菜品券 只有代金券有几折显示 -->
  32 + <text wx:if="{{item.discount!='0.00' && (item.use.is_cash=='1' || item.use.is_cash) && item.discount}}" class="discountText font24r">{{item.discount}}折</text>
  33 + </view>
  34 + <text wx:if="{{item.exp_date.is_week=='1' || item.exp_date.is_week===true}}" class="bottom font24r">{{item.exp_date.week_show?item.exp_date.week_show+'可用':''}}{{item.desc?','+item.desc+'。':'。'}}</text>
  35 + <view wx:if="{{item.exp_date.is_none=='1' || item.exp_date.is_none===true}}" class="bottom font24r">
  36 + 无限制{{item.desc?','+item.desc+'。':'。'}}
  37 + </view>
  38 + <view wx:if="{{item.exp_date.is_birthday=='1' || item.exp_date.is_birthday===true}}" class="bottom font24r">
  39 + 会员生日当天可用{{item.desc?','+item.desc+'。':'。'}}
  40 + </view>
  41 + </view>
  42 + <navigator url="/pack-activity/pack/buyCoupon?id={{item.id}}&name={{seller.sellName}}&use={{item.stringifyUse}}&sid={{sid}}&types=3&StyleType={{StyleType}}" hover-class="navigator-hover">
  43 + <view class="font24r orderingFood">
  44 + 抢购
  45 + </view>
  46 + </navigator>
  47 + </view>
  48 + </block>
  49 + </view>
23 <!-- 餐厅介绍图文分开 --> 50 <!-- 餐厅介绍图文分开 -->
24 - <view class="oneIntroduce introduce" wx:if="{{store}}"> 51 + <view class="introduce" wx:if="{{store}}">
25 <view class="imgMask"> 52 <view class="imgMask">
26 <view class="IntroduceColor" wx:if="{{store.introduce && (!store.is_introduce || store.is_introduce!='0')}}"> 53 <view class="IntroduceColor" wx:if="{{store.introduce && (!store.is_introduce || store.is_introduce!='0')}}">
27 <view class="chefText font36r">餐厅介绍</view> 54 <view class="chefText font36r">餐厅介绍</view>
@@ -33,7 +60,7 @@ @@ -33,7 +60,7 @@
33 </view> 60 </view>
34 <block wx:if="{{store.images.length>0 && (!store.is_images || store.is_images!='0')}}"> 61 <block wx:if="{{store.images.length>0 && (!store.is_images || store.is_images!='0')}}">
35 <block wx:for="{{store.images}}" wx:key="arryIndex" wx:for-index="arryIndex"> 62 <block wx:for="{{store.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
36 - <image src="{{item}}" mode="aspectFill" /> 63 + <image src="{{item}}" mode="widthFix" />
37 </block> 64 </block>
38 </block> 65 </block>
39 </view> 66 </view>
@@ -50,7 +77,7 @@ @@ -50,7 +77,7 @@
50 </view> 77 </view>
51 </view> 78 </view>
52 <block wx:if="{{(!chef.is_images || chef.is_images!='0') && chef.image}}"> 79 <block wx:if="{{(!chef.is_images || chef.is_images!='0') && chef.image}}">
53 - <image src="{{chef.image}}" mode="aspectFill" /> 80 + <image src="{{chef.image}}" mode="widthFix" />
54 </block> 81 </block>
55 <view wx:if="{{chef.is_introduce || chef.is_images}}" class="{{(!chef.is_images || chef.is_images!='0')?'':'mtnone'}}"></view> 82 <view wx:if="{{chef.is_introduce || chef.is_images}}" class="{{(!chef.is_images || chef.is_images!='0')?'':'mtnone'}}"></view>
56 </view> 83 </view>
@@ -63,10 +90,45 @@ @@ -63,10 +90,45 @@
63 <view class="lines"></view> 90 <view class="lines"></view>
64 </view> 91 </view>
65 <block wx:for="{{signboard.images}}" wx:key="arryIndex" wx:for-index="arryIndex"> 92 <block wx:for="{{signboard.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
66 - <image src="{{item}}" mode="aspectFill" /> 93 + <image src="{{item}}" mode="widthFix" />
67 </block> 94 </block>
68 </view> 95 </view>
69 </view> 96 </view>
  97 + <view class="preferential" wx:if="{{hasValueRecharge && marketing && (marketing.is_coupon=='1' || marketing.is_recharge=='1')}}">
  98 + <view class="chefText font36r" wx:if="{{marketing && marketing.is_recharge=='1' && recharge_data && (is_fix!='1' || (is_fix=='1' && dataStr<(recharge_data.exp_date.fix_edate*1)))}}">
  99 + 特别优惠
  100 + </view>
  101 + <!-- 当前日期要大于限制结束日期 -->
  102 + <view class="preferentialItems" wx:if="{{marketing && marketing.is_recharge=='1' && recharge_data && (is_fix!='1' || (is_fix=='1' && dataStr<(recharge_data.exp_date.fix_edate*1)))}}">
  103 + <view class="itemLeft">
  104 + <view class="itemTop font28r">
  105 + <text>{{recharge_data.rname}}</text>
  106 + </view>
  107 + <view class="font24r" wx:if="{{priceInfo}}">
  108 + {{priceInfo}}{{(recharge_data.recharge_list.is_coupons=='0' && recharge_data.recharge_list.is_score=='0')?'。':';'}}
  109 + </view>
  110 + <view class="bottom font24r" wx:if="{{scoreInfo}}">
  111 + {{scoreInfo}}{{recharge_data.recharge_list.is_coupons=='0'?'。':';'}}
  112 + </view>
  113 + <view class="bottom font24r" wx:if="{{recharge_data.recharge_list.is_coupons=='1'}}">
  114 + {{recharge_data.recharge_list.is_coupons=='1'?'会员充值满'+recharge_data.recharge_money+'元赠送'+certificate:''}}。
  115 + </view>
  116 + </view>
  117 + <navigator url="/pack-activity/pack/vipRecharge?id={{recharge_data.id}}&name={{seller.sellName}}&sid={{sid}}&types=3&StyleType={{StyleType}}" hover-class="navigator-hover">
  118 + <view class="font24r orderingFood">
  119 + 抢购
  120 + </view>
  121 + </navigator>
  122 + </view>
  123 + </view>
  124 + <view class="vips">
  125 + <view wx:if="{{hasValueRecharge && marketing.is_link=='1'}}" class="font24r favouredPolicy" bindtap="gotoFavourableList">
  126 + 点击了解更多会员优惠政策
  127 + </view>
  128 + <text class="businessBox">
  129 + 周到安排提供技术支持<text bindtap="callPhone" data-phone="4000009690">4000009690</text>,餐厅入驻请点击<text bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</text>
  130 + </text>
  131 + </view>
70 <view class="all-button flex-lr between"> 132 <view class="all-button flex-lr between">
71 <navigator url="/pages/reserve/reserve?id={{sid}}&activeTab=reserve" class="book-item-font second-book-button flex-cc font30r" style="position: relative;">预订包间</navigator> 133 <navigator url="/pages/reserve/reserve?id={{sid}}&activeTab=reserve" class="book-item-font second-book-button flex-cc font30r" style="position: relative;">预订包间</navigator>
72 <button class="book-item-font flex-cc font30r shareItem" open-type="share">转发给朋友 134 <button class="book-item-font flex-cc font30r shareItem" open-type="share">转发给朋友
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
12 .sellBox { 12 .sellBox {
13 width: 100%; 13 width: 100%;
14 position: relative; 14 position: relative;
  15 + margin-bottom: 200rpx;
15 } 16 }
16 17
17 .info { 18 .info {
@@ -85,7 +86,7 @@ @@ -85,7 +86,7 @@
85 } 86 }
86 87
87 .labelBox .texts { 88 .labelBox .texts {
88 - width: 90%; 89 + width: 100%;
89 line-height: 40rpx; 90 line-height: 40rpx;
90 color: #515151; 91 color: #515151;
91 font-family: PingFang SC; 92 font-family: PingFang SC;
@@ -123,10 +124,6 @@ @@ -123,10 +124,6 @@
123 margin-top: 0; 124 margin-top: 0;
124 } 125 }
125 126
126 -.vegetableBox {  
127 - padding-bottom: 80px;  
128 -}  
129 -  
130 .chefText { 127 .chefText {
131 font-family: PingFang SC; 128 font-family: PingFang SC;
132 margin: 20rpx 20rpx 20rpx 0; 129 margin: 20rpx 20rpx 20rpx 0;
@@ -134,8 +131,8 @@ @@ -134,8 +131,8 @@
134 color: #0143A3; 131 color: #0143A3;
135 } 132 }
136 133
137 -.oneIntroduce {  
138 - margin-top: 190rpx; 134 +.preferential {
  135 + margin: 20rpx 0;
139 } 136 }
140 137
141 .between { 138 .between {
@@ -173,4 +170,119 @@ @@ -173,4 +170,119 @@
173 margin: 0; 170 margin: 0;
174 background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%); 171 background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
175 color: #fff; 172 color: #fff;
  173 +}
  174 +
  175 +.preferential {
  176 + margin: 20rpx 40rpx 0 40rpx;
  177 +}
  178 +
  179 +.rubric1 {
  180 + margin-bottom: 20rpx;
  181 +}
  182 +
  183 +.preferentialItems {
  184 + padding: 20rpx 30rpx 20rpx 20rpx;
  185 + display: flex;
  186 + justify-content: space-between;
  187 + align-items: center;
  188 + margin-bottom: 20rpx;
  189 + background: url('https://qn.colorcun.com/certificateBj.png') no-repeat;
  190 + background-size: 100% 100%;
  191 +}
  192 +
  193 +.itemLeft {
  194 + width: 75%;
  195 +}
  196 +
  197 +.itemTop {
  198 + display: flex;
  199 + width: 100%;
  200 + align-items: center;
  201 + margin-bottom: 20rpx;
  202 +}
  203 +
  204 +.itemBottom {
  205 + color: #515151;
  206 + font-family: PingFang SC;
  207 + font-weight: 500;
  208 + display: -webkit-box;
  209 + word-break: break-all;
  210 + word-wrap: break-word;
  211 + overflow: hidden;
  212 + text-align: left;
  213 +}
  214 +
  215 +.itemTop text:nth-of-type(1) {
  216 + max-width: 65%;
  217 + font-weight: 600;
  218 + color: #515151;
  219 +}
  220 +
  221 +.itemTop .discountText {
  222 + text-align: center;
  223 + color: #E34D59;
  224 + border: 2rpx solid #E34D59;
  225 + border-radius: 6rpx;
  226 + margin: 0 10rpx 0 20rpx;
  227 + font-family: PingFang SC;
  228 + padding: 0 10rpx;
  229 +}
  230 +
  231 +.itemTop .priceText {
  232 + color: #E34D59;
  233 + font-weight: 500;
  234 +}
  235 +
  236 +.priceText {
  237 + display: flex;
  238 + align-items: center;
  239 + justify-content: center;
  240 +}
  241 +
  242 +.priceText .icons {
  243 + margin-left: 18rpx;
  244 + color: #E34D59;
  245 + font-size: 20rpx;
  246 +}
  247 +
  248 +.orderingFood {
  249 + padding: 0 26rpx;
  250 + border-radius: 22rpx;
  251 + text-align: center;
  252 + color: #fff;
  253 + border-radius: 32rpx;
  254 + margin: 20rpx 0;
  255 + line-height: 44rpx;
  256 + height: 44rpx;
  257 + background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
  258 +}
  259 +
  260 +.vips {
  261 + display: flex;
  262 + flex-direction: column;
  263 + justify-content: center;
  264 + align-items: center;
  265 + padding-bottom: 200rpx;
  266 + margin-top: 20rpx;
  267 +}
  268 +
  269 +.businessBox {
  270 + color: #515151;
  271 + font-size: 24rpx;
  272 + font-family: PingFang SC;
  273 +}
  274 +
  275 +.businessBox text {
  276 + color: #0143A3;
  277 +}
  278 +
  279 +.favouredPolicy {
  280 + width: 45%;
  281 + color: #5C95D7;
  282 + font-family: PingFang SC;
  283 + font-weight: 500;
  284 + border: 2rpx solid #5C95D7;
  285 + border-radius: 22rpx;
  286 + text-align: center;
  287 + padding: 10rpx;
176 } 288 }