Authored by htoooth

Merge remote-tracking branch 'origin/master' into feature/yoluck

@@ -20,15 +20,17 @@ exports.promotion = (req, res, next) => { @@ -20,15 +20,17 @@ exports.promotion = (req, res, next) => {
20 let uid = req.user.uid, 20 let uid = req.user.uid,
21 isApp = req.yoho.isApp, 21 isApp = req.yoho.isApp,
22 contentCode = 'b2b5cde8144aff3073573c3b323344ab'; 22 contentCode = 'b2b5cde8144aff3073573c3b323344ab';
  23 + let userAgent = req.get('User-Agent') || '';
  24 + let isWx = Boolean(userAgent.match(/MicroMessenger/i) && userAgent.match(/MicroMessenger/i).length > 0);
23 25
24 req.ctx(expandModel).promotionData(uid, isApp, contentCode).then(result => { 26 req.ctx(expandModel).promotionData(uid, isApp, contentCode).then(result => {
  27 + result.isApp = !isWx && isApp;
25 res.render('expand-new/my-promotion', { 28 res.render('expand-new/my-promotion', {
26 pageHeader: headerModel.setNav({ 29 pageHeader: headerModel.setNav({
27 navTitle: '邀请好友', 30 navTitle: '邀请好友',
28 navBtn: false, 31 navBtn: false,
29 myReward: true 32 myReward: true
30 }), 33 }),
31 - isApp: isApp,  
32 width750: true, 34 width750: true,
33 localCss: true, 35 localCss: true,
34 title: '邀请好友', 36 title: '邀请好友',
@@ -82,12 +82,34 @@ class featureModel extends global.yoho.BaseModel { @@ -82,12 +82,34 @@ class featureModel extends global.yoho.BaseModel {
82 vipBgColor: value.vipBgColor, 82 vipBgColor: value.vipBgColor,
83 showVipPrice: value.showVipPrice, 83 showVipPrice: value.showVipPrice,
84 brandImg: value.brandImg, 84 brandImg: value.brandImg,
85 - showBrandUrl: value.showBrandUrl 85 + showBrandUrl: value.showBrandUrl,
  86 + isAdvance: value.isAdvance,
  87 + advanceBgImg: value.advanceBgImg,
  88 + leftDownImg: value.leftDownImg
86 }; 89 };
87 90
88 value._defaultSkns && value._defaultSkns.forEach(val => { 91 value._defaultSkns && value._defaultSkns.forEach(val => {
89 let pro = resList[val]; 92 let pro = resList[val];
90 93
  94 + if (baseConf.isAdvance === '1') {
  95 + let plan = pro.product_price_plan_list;
  96 +
  97 + if (plan.length) {
  98 + let time = Math.round(new Date() / 1000);
  99 + let effectPlan = [];
  100 +
  101 + plan.forEach(planItem => {
  102 + if (planItem.effect_time > time) {
  103 + effectPlan.push(planItem);
  104 + }
  105 + });
  106 +
  107 + if (effectPlan.length && time > effectPlan[0].show_begin_time && effectPlan[0].show_status === 1) { // eslint-disable-line
  108 + pro.curPlanPrice = effectPlan[0].current_saleprice;
  109 + }
  110 + }
  111 + }
  112 +
91 if (pro) { 113 if (pro) {
92 defaultPros.push(Object.assign({conf: baseConf}, pro)); 114 defaultPros.push(Object.assign({conf: baseConf}, pro));
93 } 115 }
1 'use strict'; 1 'use strict';
  2 +const _ = require('lodash');
2 3
3 let _getProduct = function(o) { 4 let _getProduct = function(o) {
4 - return { 5 + let plan = o.product_price_plan_list;
  6 + let res = {
5 small_sort_id: o.small_sort_id, 7 small_sort_id: o.small_sort_id,
6 middle_sort_id: o.middle_sort_id, 8 middle_sort_id: o.middle_sort_id,
7 max_sort_id: o.max_sort_id, 9 max_sort_id: o.max_sort_id,
@@ -21,6 +23,29 @@ let _getProduct = function(o) { @@ -21,6 +23,29 @@ let _getProduct = function(o) {
21 default_images: o.default_images, 23 default_images: o.default_images,
22 goods_id: Array.isArray(o.goods_list) && o.goods_list.length ? o.goods_list[0].goods_id : void 0 24 goods_id: Array.isArray(o.goods_list) && o.goods_list.length ? o.goods_list[0].goods_id : void 0
23 }; 25 };
  26 +
  27 + plan = _.sortBy(plan, item => {
  28 + return +item.show_begin_time;
  29 + });
  30 +
  31 + if (plan.length) {
  32 + let time = Math.round(new Date() / 1000);
  33 + let effectPlan = [];
  34 +
  35 + plan.forEach(planItem => {
  36 + if (planItem.effect_time > time) {
  37 + effectPlan.push(planItem);
  38 + }
  39 + });
  40 +
  41 + if (effectPlan.length && time > effectPlan[0].show_begin_time && effectPlan[0].show_status === 1) { // eslint-disable-line
  42 + o.curPlanPrice = effectPlan[0].current_saleprice;
  43 +
  44 + _.assign(res, {curPlanPrice: effectPlan[0].current_saleprice});
  45 + }
  46 + }
  47 +
  48 + return res;
24 }; 49 };
25 50
26 const gender = { 51 const gender = {
@@ -27,11 +27,14 @@ @@ -27,11 +27,14 @@
27 <span class="modify button">修改</span> 27 <span class="modify button">修改</span>
28 {{#if isApp}} 28 {{#if isApp}}
29 <a class="copy button" href='//m.yohobuy.com/?openby:yohobuy={"action":"go.copy","params":{"text":"{{copyCode}}","message":"复制成功"}}'>复制</a> 29 <a class="copy button" href='//m.yohobuy.com/?openby:yohobuy={"action":"go.copy","params":{"text":"{{copyCode}}","message":"复制成功"}}'>复制</a>
  30 + {{else}}
  31 + <a class="copy button" id="copy" data-code="{{copyCode}}">复制</a>
30 {{/if}} 32 {{/if}}
31 </div> 33 </div>
32 <p class="info">1.复制您的潮流口令 2.粘贴给您的朋友(微信/短信等方式)</p> 34 <p class="info">1.复制您的潮流口令 2.粘贴给您的朋友(微信/短信等方式)</p>
33 </div> 35 </div>
34 </div> 36 </div>
  37 + {{#if isApp}}
35 <div class="invite-link invitation"> 38 <div class="invite-link invitation">
36 <div class="title">方法三:使用邀请链接</div> 39 <div class="title">方法三:使用邀请链接</div>
37 <div class="code-content"> 40 <div class="code-content">
@@ -43,7 +46,7 @@ @@ -43,7 +46,7 @@
43 </div> 46 </div>
44 <p class="link-info"> 47 <p class="link-info">
45 <span class="info">1.复制您的邀请链接 2.选择您的社交平台 3.粘贴给您的朋友</span> 48 <span class="info">1.复制您的邀请链接 2.选择您的社交平台 3.粘贴给您的朋友</span>
46 - 49 +
47 </p> 50 </p>
48 </div> 51 </div>
49 </div> 52 </div>
@@ -56,7 +59,7 @@ @@ -56,7 +59,7 @@
56 </p> 59 </p>
57 </div> 60 </div>
58 </div> 61 </div>
59 - 62 + {{/if}}
60 <input id="shareLink" type="hidden" value="{{shareUrl}}"> 63 <input id="shareLink" type="hidden" value="{{shareUrl}}">
61 <input id="shareImg" type="hidden" value="{{sharePic}}"> 64 <input id="shareImg" type="hidden" value="{{sharePic}}">
62 <input id="shareTitle" type="hidden" value="{{shareMainTitle}}"> 65 <input id="shareTitle" type="hidden" value="{{shareMainTitle}}">
@@ -151,6 +151,10 @@ @@ -151,6 +151,10 @@
151 {{> feature/timed-cut-product}} 151 {{> feature/timed-cut-product}}
152 {{/isEqualOr}} 152 {{/isEqualOr}}
153 153
  154 + {{#isEqualOr type 'redPacket'}}
  155 + {{! 红包领取}}
  156 + {{> feature/red-packet}}
  157 + {{/isEqualOr}}
154 {{#isEqualOr type 'likedActivity'}} 158 {{#isEqualOr type 'likedActivity'}}
155 {{! 点赞楼层}} 159 {{! 点赞楼层}}
156 {{> feature/liked-activity}} 160 {{> feature/liked-activity}}
@@ -22,6 +22,17 @@ @@ -22,6 +22,17 @@
22 <a class="new-brand-name {{#isEqualOr showBrandUrl '1'}}product-brand{{else}}product-detail{{/isEqualOr}}" href=""> 22 <a class="new-brand-name {{#isEqualOr showBrandUrl '1'}}product-brand{{else}}product-detail{{/isEqualOr}}" href="">
23 <span class="brand-name" {{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span> 23 <span class="brand-name" {{#if fontColor}} style="color:{{fontColor}};" {{/if}}></span>
24 </a> 24 </a>
  25 + <div class="sales-imgs-new">
  26 + {{#isEqualOr isAdvance '1'}}
  27 + <div class="advance" style="background-image: url({{advanceBgImg}});">
  28 + <img src="{{advanceBgImg}}" class="img-seat">
  29 + <span class="advance-price"></span>
  30 + </div>
  31 + {{/isEqualOr}}
  32 + {{#if leftDownImg}}
  33 + <img class="leftdownimg lazy" data-original="{{image2 leftDownImg q=85}}">
  34 + {{/if}}
  35 + </div>
25 </div> 36 </div>
26 </a> 37 </a>
27 {{#if brandImg}} 38 {{#if brandImg}}
@@ -8,6 +8,19 @@ @@ -8,6 +8,19 @@
8 <img class="rigtopimg lazy" data-original="{{image2 conf.rigTopImg q=85}}"> 8 <img class="rigtopimg lazy" data-original="{{image2 conf.rigTopImg q=85}}">
9 {{/if}} 9 {{/if}}
10 <img class="product-detail-img lazy" data-original="{{image2 productimg q=85}}"> 10 <img class="product-detail-img lazy" data-original="{{image2 productimg q=85}}">
  11 + <div class="sales-imgs-old">
  12 + {{#isEqualOr conf.isAdvance '1'}}
  13 + {{#if curPlanPrice}}
  14 + <div class="advance" style="background-image: url({{conf.advanceBgImg}});">
  15 + <img src="{{conf.advanceBgImg}}" class="img-seat">
  16 + <span class="advance-price">¥{{curPlanPrice}}</span>
  17 + </div>
  18 + {{/if}}
  19 + {{/isEqualOr}}
  20 + {{#if conf.leftDownImg}}
  21 + <img class="leftdownimg lazy" data-original="{{image2 conf.leftDownImg q=85}}">
  22 + {{/if}}
  23 + </div>
11 </div> 24 </div>
12 {{#isEqualOr conf.showPrdName '1'}} 25 {{#isEqualOr conf.showPrdName '1'}}
13 <p class="product-name">{{productname}}</p> 26 <p class="product-name">{{productname}}</p>
@@ -19,6 +19,17 @@ @@ -19,6 +19,17 @@
19 <img class="rigtopimg" src="{{image2 rigTopImg q=85}}"> 19 <img class="rigtopimg" src="{{image2 rigTopImg q=85}}">
20 {{/if}} 20 {{/if}}
21 <img class="product-detail-img lazy" src=""> 21 <img class="product-detail-img lazy" src="">
  22 + <div class="sales-imgs-old sales-product-pool">
  23 + {{#isEqualOr isAdvance '1'}}
  24 + <div class="advance" style="background-image: url({{advanceBgImg}});">
  25 + <img src="{{advanceBgImg}}" class="img-seat">
  26 + <span class="advance-price"></span>
  27 + </div>
  28 + {{/isEqualOr}}
  29 + {{#if leftDownImg}}
  30 + <img class="leftdownimg lazy" data-original="{{image2 leftDownImg q=85}}">
  31 + {{/if}}
  32 + </div>
22 </div> 33 </div>
23 {{#isEqualOr showPrdName '1'}} 34 {{#isEqualOr showPrdName '1'}}
24 <p class="product-name"></p> 35 <p class="product-name"></p>
  1 +
  2 +
  3 +<a class="redenvelope yoho-redenvelope" href="javascript:;" data-token="{{redPacketToken}}">
  4 +</a>
1 <div class="shop-container{{#isEqualOr numOfOneRow '2'}} shop-two{{^}} shop-three{{/isEqualOr}}"> 1 <div class="shop-container{{#isEqualOr numOfOneRow '2'}} shop-two{{^}} shop-three{{/isEqualOr}}">
2 {{#renderData}} 2 {{#renderData}}
3 {{#isEqualOr ../numOfOneRow '2'}} 3 {{#isEqualOr ../numOfOneRow '2'}}
4 - <a{{#isEqualOr ../jump2Shop '1'}} href="{{href}}"{{/isEqualOr}}class="pull-left shop-box"> 4 + <a{{#isEqualOr ../jump2Shop '1'}} href="{{href}}"{{/isEqualOr}} class="pull-left shop-box">
5 <div class="shop-img"> 5 <div class="shop-img">
6 {{#if ../lefTopImg}} 6 {{#if ../lefTopImg}}
7 <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt=""> 7 <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt="">
8 {{/if}} 8 {{/if}}
9 - <img class="lazy" data-original="{{image2 picture w=284 h=320 q=85}}" alt=""> 9 + <img class="lazy" data-original="{{image2 picture w=268 h=224 q=85}}" alt="">
10 </div> 10 </div>
11 - <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=290 h=60 q=85}})">  
12 - <span class="shop-name">{{shop_name}}</span> 11 + <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=268 h=60 q=85}})">
  12 + <span class="shop-name" style="{{#if ../shopNameFontColor}}color: {{../shopNameFontColor}}{{/if}}">{{shop_name}}</span>
13 </div> 13 </div>
14 </a> 14 </a>
15 {{^}} 15 {{^}}
16 - <a{{#isEqualOr ../jump2Shop '1'}} href="{{href}}"{{/isEqualOr}}class="pull-left shop-box"> 16 + <a{{#isEqualOr ../jump2Shop '1'}} href="{{href}}"{{/isEqualOr}} class="pull-left shop-box">
17 <div class="shop-img"> 17 <div class="shop-img">
18 - <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt="">  
19 - <img class="lazy" data-original="{{image2 picture w=188 h=210 q=85}}" alt=""> 18 + {{#if ../lefTopImg}}
  19 + <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt="">
  20 + {{/if}}
  21 + <img class="lazy" data-original="{{image2 picture w=186 h=156 q=85}}" alt="">
20 </div> 22 </div>
21 - <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=290 h=60 q=85}});">  
22 - <span class="shop-name">{{shop_name}}</span> 23 + <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=186 h=40 q=85}});">
  24 + <span class="shop-name" style="{{#if ../shopNameFontColor}}color: {{../shopNameFontColor}}{{/if}}">{{shop_name}}</span>
23 </div> 25 </div>
24 </a> 26 </a>
25 {{/isEqualOr}} 27 {{/isEqualOr}}
@@ -131,7 +131,7 @@ module.exports = { @@ -131,7 +131,7 @@ module.exports = {
131 notifyUrl: domains.service + 'payment/weixin_notify', 131 notifyUrl: domains.service + 'payment/weixin_notify',
132 }, 132 },
133 geetestJs: '//static.geetest.com/static/tools/gt.js', 133 geetestJs: '//static.geetest.com/static/tools/gt.js',
134 - jsSdk: '//cdn.yoho.cn/js-sdk/1.3.10/jssdk.js', 134 + jsSdk: '//cdn.yoho.cn/js-sdk/1.3.16/jssdk.js',
135 redis: { 135 redis: {
136 connect: { 136 connect: {
137 host: '192.168.102.49', 137 host: '192.168.102.49',
1 { 1 {
2 "name": "yohobuywap-node", 2 "name": "yohobuywap-node",
3 - "version": "6.8.31", 3 + "version": "6.8.33",
4 "private": true, 4 "private": true,
5 "description": "A New Yohobuy Project With Express", 5 "description": "A New Yohobuy Project With Express",
6 "repository": { 6 "repository": {
@@ -3,21 +3,25 @@ @@ -3,21 +3,25 @@
3 {{#is-equal-or ../numOfOneRow '2'}} 3 {{#is-equal-or ../numOfOneRow '2'}}
4 <a href="{{href}}" class="pull-left shop-box"> 4 <a href="{{href}}" class="pull-left shop-box">
5 <div class="shop-img"> 5 <div class="shop-img">
6 - <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt="">  
7 - <img class="lazy" data-original="{{image2 shop_logo w=187 h=275 q=85}}" alt=""> 6 + {{#if ../lefTopImg}}
  7 + <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt="">
  8 + {{/if}}
  9 + <img class="lazy" data-original="{{image2 shop_logo w=268 h=224 q=85}}" alt="">
8 </div> 10 </div>
9 - <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=290 h=60 q=85}})"> 11 + <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=268 h=60 q=85}})">
10 <span class="shop-name" style="{{#if ../shopNameFontColor}}color: {{../shopNameFontColor}}{{/if}}">{{shop_name}}</span> 12 <span class="shop-name" style="{{#if ../shopNameFontColor}}color: {{../shopNameFontColor}}{{/if}}">{{shop_name}}</span>
11 </div> 13 </div>
12 </a> 14 </a>
13 {{^}} 15 {{^}}
14 <a href="{{href}}" class="pull-left shop-box {{#is-equal-or ../displayStyle '0'}}shop-logo{{/is-equal-or}}"> 16 <a href="{{href}}" class="pull-left shop-box {{#is-equal-or ../displayStyle '0'}}shop-logo{{/is-equal-or}}">
15 <div class="shop-img"> 17 <div class="shop-img">
16 - <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt="">  
17 - <img class="lazy" data-original="{{image2 shop_logo w=156 h=106 q=85}}" {{#is-equal-or ../displayStyle '0'}}class="shop-logo-img lazy"{{/is-equal-or}} alt=""> 18 + {{#if ../lefTopImg}}
  19 + <img class="left-icon lazy" data-original="{{image2 ../lefTopImg q=85}}" alt="">
  20 + {{/if}}
  21 + <img class="lazy" data-original="{{image2 shop_logo w=186 h=156 q=85}}" {{#is-equal-or ../displayStyle '0'}}class="shop-logo-img lazy"{{/is-equal-or}} alt="">
18 <span class="shop-name" style="{{#if ../shopNameFontColor}}color: {{../shopNameFontColor}}{{/if}}">{{shop_name}}</span> 22 <span class="shop-name" style="{{#if ../shopNameFontColor}}color: {{../shopNameFontColor}}{{/if}}">{{shop_name}}</span>
19 </div> 23 </div>
20 - <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=290 h=60 q=85}});"> 24 + <div class="shop-bottom-bar" style="background-image: url({{image2 ../brandImg w=186 h=40 q=85}});">
21 </div> 25 </div>
22 </a> 26 </a>
23 {{/is-equal-or}} 27 {{/is-equal-or}}
1 'use strict'; 1 'use strict';
2 require('scss/activity/my-promotion.page.scss'); 2 require('scss/activity/my-promotion.page.scss');
  3 +import Clipboard from 'clipboard';
  4 +import tip from 'js/plugin/tip';
3 5
4 let $ = require('yoho-jquery'), 6 let $ = require('yoho-jquery'),
5 yoho = require('js/yoho-app'); 7 yoho = require('js/yoho-app');
@@ -49,6 +51,23 @@ if (yoho.isApp) { @@ -49,6 +51,23 @@ if (yoho.isApp) {
49 }); 51 });
50 }); 52 });
51 } 53 }
  54 +$('#copy').click(function() {
  55 + let code = $(this).data('code');
  56 + let clipboard = new Clipboard('#copy', {
  57 + text: function() {
  58 + return code;
  59 + }
  60 + });
  61 +
  62 + clipboard.on('success', function(e) {
  63 + e.clearSelection();
  64 + tip.show('复制成功');
  65 + });
  66 +
  67 + clipboard.on('error', function() {
  68 + tip.show('复制失败');
  69 + });
  70 +});
52 71
53 // 修改潮流口令 72 // 修改潮流口令
54 $('.modify').click(function() { 73 $('.modify').click(function() {
@@ -118,7 +118,7 @@ @@ -118,7 +118,7 @@
118 118
119 .invite-content { 119 .invite-content {
120 .code { 120 .code {
121 - width: 324px; 121 + width: 324px !important;
122 height: 68px; 122 height: 68px;
123 display: block; 123 display: block;
124 background-color: #fff; 124 background-color: #fff;
@@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
6 @import "scss/feature/shop"; 6 @import "scss/feature/shop";
7 @import "scss/feature/bottom"; 7 @import "scss/feature/bottom";
8 @import "scss/feature/timed-cut"; 8 @import "scss/feature/timed-cut";
  9 +@import "scss/feature/redenvelope";
9 @import "scss/feature/liked-activity"; 10 @import "scss/feature/liked-activity";
10 11
11 /* stylelint-disable */ 12 /* stylelint-disable */
@@ -85,6 +85,30 @@ @@ -85,6 +85,30 @@
85 } 85 }
86 } 86 }
87 87
  88 + &.item3 .feature-product-info {
  89 + .sales-imgs-old {
  90 + bottom: 24px;
  91 + font-size: 0;
  92 + }
  93 +
  94 + .leftdownimg {
  95 + height: 22px;
  96 + }
  97 +
  98 + .advance {
  99 + height: 30px;
  100 +
  101 + .advance-price {
  102 + font-size: 20px;
  103 + line-height: 32px;
  104 + }
  105 +
  106 + .img-seat {
  107 + height: 30px;
  108 + }
  109 + }
  110 + }
  111 +
88 .product-source { 112 .product-source {
89 display: block; 113 display: block;
90 overflow: hidden; 114 overflow: hidden;
@@ -167,6 +191,69 @@ @@ -167,6 +191,69 @@
167 color: #000; 191 color: #000;
168 } 192 }
169 193
  194 + .sales-imgs-old {
  195 + position: absolute;
  196 + right: 0;
  197 + bottom: 28px;
  198 + width: 100%;
  199 + height: auto;
  200 + z-index: 1;
  201 + }
  202 +
  203 + .sales-imgs-new {
  204 + position: absolute;
  205 + right: 0;
  206 + bottom: 55px;
  207 + width: 100%;
  208 + height: auto;
  209 + z-index: 1;
  210 +
  211 + .advance {
  212 + display: none;
  213 + }
  214 + }
  215 +
  216 + .sales-product-pool {
  217 + .advance {
  218 + display: none;
  219 + }
  220 + }
  221 +
  222 + .leftdownimg {
  223 + width: auto;
  224 + max-width: 100%;
  225 + height: 30px;
  226 + margin-top: 10px;
  227 + }
  228 +
  229 + .advance {
  230 + width: auto;
  231 + height: 35px;
  232 + max-width: 100%;
  233 + background-size: contain;
  234 + background-repeat: no-repeat;
  235 + text-align: right;
  236 + display: inline-block;
  237 + position: relative;
  238 +
  239 + .img-seat {
  240 + visibility: hidden;
  241 + height: 35px;
  242 + display: inline-block;
  243 + width: auto;
  244 + }
  245 +
  246 + .advance-price {
  247 + position: absolute;
  248 + right: 10px;
  249 + top: 0;
  250 + line-height: 35px;
  251 + font-size: 27px;
  252 + font-weight: bold;
  253 + color: #fff;
  254 + }
  255 + }
  256 +
170 .vip-price-text { 257 .vip-price-text {
171 margin-right: 10px; 258 margin-right: 10px;
172 font-weight: 500; 259 font-weight: 500;
  1 +.redenvelope {
  2 + position: absolute;
  3 + top: 0;
  4 + left: 0;
  5 + width: 100%;
  6 + height: 100%;
  7 +}
1 $margin-top: 42px; 1 $margin-top: 42px;
2 -$margin-left-2: 20px;  
3 -$margin-left-3: 19.75px;  
4 -$floor-height-2: 432px;  
5 -$floor-height-3: 335px;  
6 -$shop-width-2: 285px;  
7 -$shop-width-3: 187px; 2 +$margin-left-2: 15px;
  3 +$padding-left-2: 45px;
  4 +$margin-left-3: 34px;
  5 +$floor-height-2: 281px;
  6 +$floor-height-3: 196px;
  7 +$shop-width-2: 268px;
  8 +$shop-width-3: 186px;
  9 +$margin-right-3: 7px;
8 10
9 .shop-container { 11 .shop-container {
10 width: 100%; 12 width: 100%;
@@ -54,19 +56,19 @@ $shop-width-3: 187px; @@ -54,19 +56,19 @@ $shop-width-3: 187px;
54 } 56 }
55 57
56 &.shop-two { 58 &.shop-two {
57 - padding-left: $margin-left-2; 59 + padding-left: $padding-left-2;
58 margin-top: $margin-top; 60 margin-top: $margin-top;
59 61
60 .shop-box { 62 .shop-box {
61 width: $shop-width-2; 63 width: $shop-width-2;
62 height: $floor-height-2; 64 height: $floor-height-2;
63 margin-right: $margin-left-2; 65 margin-right: $margin-left-2;
64 - margin-bottom: 40px; 66 + margin-bottom: 26px;
65 display: inline-block; 67 display: inline-block;
66 68
67 .shop-img { 69 .shop-img {
68 width: $shop-width-2; 70 width: $shop-width-2;
69 - height: 372px; 71 + height: 224px;
70 } 72 }
71 73
72 .shop-bottom-bar { 74 .shop-bottom-bar {
@@ -87,19 +89,19 @@ $shop-width-3: 187px; @@ -87,19 +89,19 @@ $shop-width-3: 187px;
87 .shop-box { 89 .shop-box {
88 width: $shop-width-3; 90 width: $shop-width-3;
89 height: $floor-height-3; 91 height: $floor-height-3;
90 - margin-right: $margin-left-3;  
91 - margin-bottom: 40px; 92 + margin-right: $margin-right-3;
  93 + margin-bottom: 16px;
92 display: inline-block; 94 display: inline-block;
93 95
94 .shop-img { 96 .shop-img {
95 width: $shop-width-3; 97 width: $shop-width-3;
96 - height: 275px; 98 + height: 156px;
97 } 99 }
98 100
99 .shop-bottom-bar { 101 .shop-bottom-bar {
100 - width: 187px;  
101 - height: 60px;  
102 - line-height: 60px; 102 + width: 186px;
  103 + height: 40px;
  104 + line-height: 40px;
103 color: #fff; 105 color: #fff;
104 background-size: 100% 100%; 106 background-size: 100% 100%;
105 background-repeat: no-repeat; 107 background-repeat: no-repeat;
@@ -137,7 +139,7 @@ $shop-width-3: 187px; @@ -137,7 +139,7 @@ $shop-width-3: 187px;
137 height: auto; 139 height: auto;
138 140
139 .shop-img { 141 .shop-img {
140 - height: 320px; 142 + height: 224px;
141 } 143 }
142 } 144 }
143 } 145 }
@@ -146,17 +148,17 @@ $shop-width-3: 187px; @@ -146,17 +148,17 @@ $shop-width-3: 187px;
146 padding-left: 32px; 148 padding-left: 32px;
147 149
148 .shop-box { 150 .shop-box {
149 - width: 184px; 151 + width: 186px;
150 height: auto; 152 height: auto;
151 - margin-right: 8px;  
152 - margin-bottom: 20px; 153 + margin-right: 7px;
  154 + margin-bottom: 16px;
153 155
154 .shop-bottom-bar { 156 .shop-bottom-bar {
155 height: 40px; 157 height: 40px;
156 } 158 }
157 159
158 .shop-img { 160 .shop-img {
159 - height: 210px; 161 + height: 156px;
160 } 162 }
161 } 163 }
162 164
@@ -176,9 +178,9 @@ $shop-width-3: 187px; @@ -176,9 +178,9 @@ $shop-width-3: 187px;
176 .shop-logo-img { 178 .shop-logo-img {
177 position: relative; 179 position: relative;
178 width: 132px; 180 width: 132px;
179 - height: 88px; 181 + height: 92px;
180 left: 26px; 182 left: 26px;
181 - top: 20px; 183 + top: 17px;
182 } 184 }
183 } 185 }
184 } 186 }