Authored by 梁志锋

Merge branch 'develop/wap' of http://git.dev.yoho.cn/web/yohobuy into develop/wap

@@ -11,7 +11,7 @@ var $ = require('jquery'), @@ -11,7 +11,7 @@ var $ = require('jquery'),
11 11
12 var productId = $('#productId').val(); 12 var productId = $('#productId').val();
13 13
14 -var skn = $('#preferenceUrl').val().split('?')[1].split('&')[0].split('=')[1], 14 +var skn = $('#productSkn').val(),
15 productCode = $('#limitProductCode').val(); 15 productCode = $('#limitProductCode').val();
16 16
17 $('#likeBtn').on('touchstart', function() { 17 $('#likeBtn').on('touchstart', function() {
@@ -256,9 +256,11 @@ $basicBtnC:#eb0313; @@ -256,9 +256,11 @@ $basicBtnC:#eb0313;
256 } 256 }
257 257
258 .limit-sale { 258 .limit-sale {
  259 + height: 48px;
259 position: absolute; 260 position: absolute;
260 right: 84px; 261 right: 84px;
261 - top: 24px; 262 + top: 50%;
  263 + margin-top: -24px;
262 color: #d0021b; 264 color: #d0021b;
263 border: 2PX solid #d0021b; 265 border: 2PX solid #d0021b;
264 background-color: #fff; 266 background-color: #fff;
@@ -3,12 +3,12 @@ @@ -3,12 +3,12 @@
3 color: #444; 3 color: #444;
4 4
5 .top { 5 .top {
6 - font-size: 0.6rem;  
7 - height: 2rem;  
8 - line-height: 2.2rem;  
9 - margin-bottom: 0.1rem; 6 + font-size: 24px;
  7 + height: 80px;
  8 + line-height: 88px;
  9 + margin-bottom: 4px;
10 background-color: #fff; 10 background-color: #fff;
11 - padding: 0.2rem 0 0.2rem 0.5rem; 11 + padding: 8px 0 8px 20px;
12 12
13 13
14 div { 14 div {
@@ -16,9 +16,9 @@ @@ -16,9 +16,9 @@
16 display: inline-block; 16 display: inline-block;
17 float: left; 17 float: left;
18 img { 18 img {
19 - width: 1.5rem; 19 + width: 60px;
20 position: relative; 20 position: relative;
21 - top: 0.25rem; 21 + top: 10px;
22 } 22 }
23 } 23 }
24 24
@@ -31,60 +31,62 @@ @@ -31,60 +31,62 @@
31 31
32 .detail { 32 .detail {
33 background-color: #fff; 33 background-color: #fff;
34 - padding: 0.6rem 0.8rem;  
35 - border-bottom: 1px solid #e6e6e6; 34 + padding: 24px 32px;
  35 + border-bottom: 1PX solid #e6e6e6;
  36 + margin-bottom: 1rem;
36 37
37 .name { 38 .name {
38 - font-size: 0.9rem;  
39 - margin-bottom: 0.5rem; 39 + font-size: 36px;
  40 + margin-bottom: 20px;
40 } 41 }
41 .sale-info { 42 .sale-info {
42 - height: 1rem;  
43 - line-height: 1rem; 43 + height: 40px;
  44 + line-height: 40px;
44 } 45 }
45 .price { 46 .price {
46 - font-size: 0.8rem; 47 + font-size: 32px;
47 color: #d0021b; 48 color: #d0021b;
48 float: left; 49 float: left;
49 } 50 }
50 51
51 .date { 52 .date {
52 - font-size: 0.6rem; 53 + font-size: 24px;
53 float: right; 54 float: right;
54 55
55 .text { 56 .text {
56 position: relative; 57 position: relative;
57 - top: 0.08rem; 58 + top: 3.2px;
58 } 59 }
59 } 60 }
60 } 61 }
61 62
62 .goodDesc { 63 .goodDesc {
63 - margin-top: 1rem;  
64 - padding: 0.5rem;  
65 - border-top: 1px solid #e6e6e6; 64 + padding: 20px;
  65 + border-top: 1PX solid #e6e6e6;
66 background-color: #fff; 66 background-color: #fff;
67 67
68 p { 68 p {
69 - font-size: 0.6rem;  
70 - line-height: 1rem; 69 + font-size: 24px;
  70 + line-height: 40px;
  71 + text-indent: 2em;
71 } 72 }
72 73
73 img { 74 img {
74 - margin: 0.3rem 0; 75 + margin: 12px 0;
  76 + max-width: 100%;
75 } 77 }
76 } 78 }
77 79
78 .bottom { 80 .bottom {
79 background-color: #fff; 81 background-color: #fff;
80 - padding: 0.5rem 2rem 2rem 2rem;  
81 - height: 3rem;  
82 - width: 12rem; 82 + padding: 20px 80px 80px 80px;
  83 + height: 120px;
  84 + width: 480px;
83 margin: 0 auto; 85 margin: 0 auto;
84 86
85 .logo { 87 .logo {
86 width: 100; 88 width: 100;
87 - height: 2.5rem; 89 + height: 100px;
88 90
89 background-image: resolve('logo-bottom.png'); 91 background-image: resolve('logo-bottom.png');
90 background-size: 100%; 92 background-size: 100%;
@@ -93,11 +95,11 @@ @@ -93,11 +95,11 @@
93 } 95 }
94 96
95 .btn { 97 .btn {
96 - font-size: 0.8rem; 98 + font-size: 32px;
97 background-color: #fff; 99 background-color: #fff;
98 - border: 1px solid #444;  
99 - border-radius: 0.2rem;  
100 - padding: 0.3rem 0.6rem; 100 + border: 1PX solid #444;
  101 + border-radius: 8px;
  102 + padding: 12px 24px;
101 } 103 }
102 104
103 .btn:active { 105 .btn:active {
@@ -115,7 +117,7 @@ @@ -115,7 +117,7 @@
115 117
116 .right { 118 .right {
117 width: 60%; 119 width: 60%;
118 - font-size: 0.65rem; 120 + font-size: 26px;
119 121
120 span { 122 span {
121 display: block; 123 display: block;
@@ -35,6 +35,7 @@ @@ -35,6 +35,7 @@
35 background-color: #fff; 35 background-color: #fff;
36 padding: 0.6rem 0.8rem; 36 padding: 0.6rem 0.8rem;
37 border-bottom: 1px solid #e6e6e6; 37 border-bottom: 1px solid #e6e6e6;
  38 + margin-bottom: 1rem;
38 39
39 .name { 40 .name {
40 font-size: 0.9rem; 41 font-size: 0.9rem;
@@ -62,15 +63,19 @@ @@ -62,15 +63,19 @@
62 } 63 }
63 64
64 .goodDesc { 65 .goodDesc {
65 - margin-top: 1rem; 66 + padding: 0.5rem;
  67 + border-top: 1px solid #e6e6e6;
  68 + background-color: #fff;
66 69
67 p { 70 p {
68 font-size: 0.6rem; 71 font-size: 0.6rem;
69 line-height: 1rem; 72 line-height: 1rem;
  73 + text-indent: 2em;
70 } 74 }
71 75
72 img { 76 img {
73 margin: 0.3rem 0; 77 margin: 0.3rem 0;
  78 + max-width: 100%;
74 } 79 }
75 } 80 }
76 81
@@ -287,9 +287,11 @@ $basicBtnC:#eb0313; @@ -287,9 +287,11 @@ $basicBtnC:#eb0313;
287 } 287 }
288 288
289 .limit-sale { 289 .limit-sale {
  290 + height: pxToRem(48px);
290 position: absolute; 291 position: absolute;
291 right: pxToRem(84px); 292 right: pxToRem(84px);
292 - top: pxToRem(24px); 293 + top: 50%;
  294 + margin-top: pxToRem(-24px);
293 color: #d0021b; 295 color: #d0021b;
294 border: 2px solid #d0021b; 296 border: 2px solid #d0021b;
295 background-color: #fff; 297 background-color: #fff;
@@ -35,6 +35,7 @@ @@ -35,6 +35,7 @@
35 background-color: #fff; 35 background-color: #fff;
36 padding: 0.6rem 0.8rem; 36 padding: 0.6rem 0.8rem;
37 border-bottom: 1px solid #e6e6e6; 37 border-bottom: 1px solid #e6e6e6;
  38 + margin-bottom: 1rem;
38 39
39 .name { 40 .name {
40 font-size: 0.9rem; 41 font-size: 0.9rem;
@@ -62,7 +63,6 @@ @@ -62,7 +63,6 @@
62 } 63 }
63 64
64 .goodDesc { 65 .goodDesc {
65 - margin-top: 1rem;  
66 padding: 0.5rem; 66 padding: 0.5rem;
67 border-top: 1px solid #e6e6e6; 67 border-top: 1px solid #e6e6e6;
68 background-color: #fff; 68 background-color: #fff;
@@ -70,10 +70,12 @@ @@ -70,10 +70,12 @@
70 p { 70 p {
71 font-size: 0.6rem; 71 font-size: 0.6rem;
72 line-height: 1rem; 72 line-height: 1rem;
  73 + text-indent: 2em;
73 } 74 }
74 75
75 img { 76 img {
76 margin: 0.3rem 0; 77 margin: 0.3rem 0;
  78 + max-width: 100%;
77 } 79 }
78 } 80 }
79 81
  1 +{{!-- APP 如何获得限购码 --}}
  2 +<!DOCTYPE html>
  3 +<html lang="en">
  4 +<head>
  5 + <meta charset="UTF-8">
  6 + <title>如何获得限购码</title>
  7 + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
  8 + <meta http-equiv="cleartype" content="on">
  9 + <meta content="telephone=no" name="format-detection" />
  10 + <script type="text/javascript">
  11 + (function(doc, win) {
  12 + var docEl = doc.documentElement;
  13 + (function() {
  14 + var clientWidth = docEl.clientWidth;
  15 + if (!clientWidth) {
  16 + return;
  17 + }
  18 + docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
  19 + }());
  20 + })(document, window);
  21 + </script>
  22 + <style>
  23 + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video, .yoho-header .nav-back, .yoho-header .nav-home, .yoho-header .nav-btn {
  24 + margin: 0;
  25 + padding: 0;
  26 + border: 0;
  27 + font: inherit;
  28 + font-size: 100%;
  29 + vertical-align: baseline;
  30 + }
  31 +
  32 + html {
  33 + line-height: 1;
  34 + }
  35 +
  36 + ol, ul {
  37 + list-style: none;
  38 + }
  39 +
  40 + table {
  41 + border-collapse: collapse;
  42 + border-spacing: 0;
  43 + }
  44 +
  45 + caption, th, td {
  46 + text-align: left;
  47 + font-weight: normal;
  48 + vertical-align: middle;
  49 + }
  50 +
  51 + q, blockquote {
  52 + quotes: none;
  53 + }
  54 +
  55 + q:before, q:after, blockquote:before, blockquote:after {
  56 + content: "";
  57 + content: none;
  58 + }
  59 +
  60 + a img {
  61 + border: none;
  62 + }
  63 +
  64 + article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary, .yoho-header .nav-back, .yoho-header .nav-home, .yoho-header .nav-btn {
  65 + display: block;
  66 + }
  67 + /*Reset End*/
  68 +
  69 + .clearfix:after{
  70 + content: '';
  71 + display: table;
  72 + clear: both;
  73 + }
  74 +
  75 + * {
  76 + -webkit-tap-highlight-color: rgba(0,0,0,0);
  77 + -moz-tap-highlight-color: rgba(0,0,0,0);
  78 + tap-highlight-color: rgba(0,0,0,0);
  79 + }
  80 +
  81 + html, body {
  82 + font-family: helvetica,Arial,"黑体";
  83 + width: 100%;
  84 + font-size: 12PX;
  85 + line-height: 1.4;
  86 + }
  87 +
  88 + button, input, select, textarea {
  89 + font-size: 100%;
  90 + margin: 0;
  91 + }
  92 +
  93 + img {
  94 + max-width: 100%;
  95 + display: block;
  96 + border: 0;
  97 + margin: 0 auto;
  98 + }
  99 +
  100 + a {
  101 + text-decoration: none;
  102 + outline: none;
  103 + color: #000
  104 + }
  105 +
  106 + a:link, a:visited, a:hover, a:actived{
  107 + color: #000;
  108 + }
  109 +
  110 + *:focus {
  111 + outline: none;
  112 + }
  113 +
  114 + .hide {
  115 + display: none;
  116 + }
  117 +
  118 + .overflow-hidden {
  119 + overflow: hidden;
  120 + }
  121 +
  122 + @font-face {
  123 + font-family: "iconfont";
  124 + src: url('../font/iconfont.eot'); /* IE9*/
  125 + src: url('../font/iconfont.eot?#iefix') format('embedded-opentype'),
  126 + url('../font/iconfont.woff') format('woff'),
  127 + url('../font/iconfont.ttf') format('truetype'),
  128 + url('../font/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
  129 + }
  130 +
  131 + .iconfont {
  132 + font-family: "iconfont" !important;
  133 + font-size: 16PX;
  134 + font-style: normal;
  135 + text-decoration: none;
  136 + -webkit-font-smoothing: antialiased;
  137 + -webkit-text-stroke-width: 0.2PX;
  138 + -moz-osx-font-smoothing: grayscale;
  139 + }
  140 + .limit-help-page{
  141 + padding: 0.7rem;
  142 + color: #444;
  143 + }
  144 + .limit-help-page h2{
  145 + font-size: 0.75rem;
  146 + font-weight: bold;
  147 + }
  148 + .limit-help-page .method{
  149 + display: block;
  150 + width: 2.3rem;
  151 + height: 0.875rem;
  152 + line-height: 0.9rem;
  153 + background-color: #444;
  154 + color: #fff;
  155 + border-radius: 0.5rem;
  156 + text-align: center;
  157 + margin: 0.5rem 0;
  158 + }
  159 + .limit-help-page li{
  160 + font-size: 0.6rem;
  161 + }
  162 + .limit-help-page .intro-img{
  163 + width: 100%;
  164 + height: 5.5rem;
  165 + background-size: 100%;
  166 + background-repeat: no-repeat;
  167 + margin: 0.5rem 0;
  168 + }
  169 + .limit-help-page .method-1 li:nth-child(1) .intro-img{
  170 + background-image: url('../assets/img/product/help/1.png');
  171 + }
  172 + .limit-help-page .method-1 li:nth-child(2) .intro-img{
  173 + background-image: url('../assets/img/product/help/2.png');
  174 + }
  175 + .limit-help-page .method-1 li:nth-child(3) .intro-img{
  176 + background-image: url('../assets/img/product/help/3.png');
  177 + }
  178 + .limit-help-page .method-2 li:nth-child(1) .intro-img{
  179 + background-image: url('../assets/img/product/help/4.png');
  180 + }
  181 + .limit-help-page .method-2 li:nth-child(2) .intro-img{
  182 + background-image: url('../assets/img/product/help/5.png');
  183 + }
  184 + .limit-help-page .method-2 li:nth-child(3) .intro-img{
  185 + background-image: url('../assets/img/product/help/6.png');
  186 + }
  187 + .limit-help-page .method-2 li:nth-child(4) .intro-img{
  188 + background-image: url('../assets/img/product/help/7.png');
  189 + }
  190 + .limit-help-page .how li:nth-child(1) .intro-img{
  191 + background-image: url('../assets/img/product/help/8.png');
  192 + }
  193 + .limit-help-page .how li:nth-child(2) .intro-img{
  194 + background-image: url('../assets/img/product/help/9.png');
  195 + margin-bottom: 0;
  196 + }
  197 + </style>
  198 +
  199 +</head>
  200 +<body>
  201 + <div class="limit-help-page yoho-page">
  202 + <ul class="method-2">
  203 + <li>1.在限定发售详情页点击参加排队赢取限购码图标。
  204 + <div class="intro-img"></div>
  205 + </li>
  206 + <li>2.进入限定发售排队页面,点击参加排队。
  207 + <div class="intro-img"></div>
  208 + </li>
  209 + <li>3.排队成功后凭排队序列号作为抽奖凭证,等待开奖时间。
  210 + <div class="intro-img"></div>
  211 + </li>
  212 + <li>4.开奖后,排队页面会公布中奖名单,限购码会直接发送至账户。
  213 + <div class="intro-img"></div>
  214 + </li>
  215 + </ul>
  216 + <h2>查看和使用限购码</h2>
  217 + <ul class="how">
  218 + <li>1.从个人中心进入我的限购码页面,可查看所获取的限购码。
  219 + <div class="intro-img"></div>
  220 + </li>
  221 + <li>2.商品开售后,可凭此限购码购买对应商品。
  222 + <div class="intro-img"></div>
  223 + </li>
  224 + </ul>
  225 + </div>
  226 +</body>
  227 +</html>
@@ -24,8 +24,19 @@ @@ -24,8 +24,19 @@
24 padding: 0; 24 padding: 0;
25 font-family: helvetica,Arial,"黑体"; 25 font-family: helvetica,Arial,"黑体";
26 } 26 }
27 - div {  
28 - padding: 0.7rem 27 + body {
  28 + background-color: #ccc;
  29 + }
  30 + .container {
  31 + padding: 0.7rem;
  32 + background-color: #fff;
  33 + }
  34 + .row {
  35 + border-bottom: 1px solid #b4b4b4;
  36 + padding-bottom: 0.2rem;
  37 + }
  38 + .block {
  39 + margin-bottom: 0.5rem
29 } 40 }
30 p { 41 p {
31 font-size: 0.7rem; 42 font-size: 0.7rem;
@@ -33,32 +44,32 @@ @@ -33,32 +44,32 @@
33 margin: 0.3rem 0; 44 margin: 0.3rem 0;
34 line-height: 1rem; 45 line-height: 1rem;
35 } 46 }
36 -  
37 - span {  
38 - font-weight: bold;  
39 - }  
40 </style> 47 </style>
41 </head> 48 </head>
42 <body> 49 <body>
43 - <div>  
44 - <p>  
45 - <span>介绍:</span>  
46 - 限购码是指用于删除商品的一种权利,达到一定条件即可获得。 50 + <div class="container">
  51 + <p> 1.当稀缺商品上架,同一用户账号在一定时间段内,仅支持购买1件该商品。 </p>
  52 + <p> 2.可通过分享或其他活动获得该商品的限购码,每个商品仅可获得1次限购码。 </p>
  53 + <p> 3.若下单未付款导致交易取消,不会扣限购额度。已付款状态下,无论是否退款则扣除限购额度。 </p>
  54 + <br>
  55 + <div class="block">
  56 + <p class="row">
  57 + Q:限购码可以送给我的朋友吗?
47 </p> 58 </p>
48 <p> 59 <p>
49 - <span>优势:</span>  
50 - 限定商品购买权 60 + A:限购码不可赠送,只能自己账号使用。可以把活动告诉朋友,参与即可获得限购码。
51 </p> 61 </p>
52 - <p>  
53 - <span>用户:</span>  
54 - Yoho!Buy有货忠实用户 62 + </div>
  63 +
  64 + <div>
  65 + <p class="row">
  66 + Q:下单发现买错码数了,取消订单后我还能再买吗?
55 </p> 67 </p>
56 <p> 68 <p>
57 - <span>如何使用:</span>  
58 - 相关商品开放购买的时候,页面会出现使用限购码的按钮,点击购买即可。  
59 - <br>  
60 - 限购码对应的商品是唯一的,一个码只可买一个商品。 69 + A:尚未付款的订单取消后,可以再次购买。
61 </p> 70 </p>
62 </div> 71 </div>
  72 +
  73 + </div>
63 </body> 74 </body>
64 </html> 75 </html>
@@ -177,6 +177,8 @@ @@ -177,6 +177,8 @@
177 <input id="preferenceUrl" type="hidden" value="{{preferenceUrl}}"> 177 <input id="preferenceUrl" type="hidden" value="{{preferenceUrl}}">
178 {{/if}} 178 {{/if}}
179 179
  180 + <input id="productSkn" type="hidden" value="{{productSkn}}">
  181 +
180 {{#loginUrl}} 182 {{#loginUrl}}
181 <input type="hidden" name="loginUrl" id="loginUrl" value="{{.}}"> 183 <input type="hidden" name="loginUrl" id="loginUrl" value="{{.}}">
182 {{/loginUrl}} 184 {{/loginUrl}}
@@ -59,6 +59,8 @@ class SideModel @@ -59,6 +59,8 @@ class SideModel
59 59
60 // 如果存在子菜单,就输出子菜单 60 // 如果存在子菜单,就输出子菜单
61 if (isset($value['sub']) && !empty($value['sub'])) { 61 if (isset($value['sub']) && !empty($value['sub'])) {
  62 + unset($group[$groupKey]['url']);
  63 +
62 $subs = array( 64 $subs = array(
63 array( 65 array(
64 'textCn' => $group[$groupKey]['textCn'], 66 'textCn' => $group[$groupKey]['textCn'],
@@ -169,6 +169,8 @@ class DetailModel @@ -169,6 +169,8 @@ class DetailModel
169 $result['preferenceUrl'] = Helpers::url('/product/detail/preference', array('productSkn' => $baseInfo['erpProductId'], 'brandId' => $baseInfo['brand']['id']), ''); 169 $result['preferenceUrl'] = Helpers::url('/product/detail/preference', array('productSkn' => $baseInfo['erpProductId'], 'brandId' => $baseInfo['brand']['id']), '');
170 } 170 }
171 171
  172 + $result['productSkn'] = $baseInfo['erpProductId'];
  173 +
172 // 商品信息 174 // 商品信息
173 if (!empty($baseInfo['goodsList'])) { 175 if (!empty($baseInfo['goodsList'])) {
174 $colorGroup = array(); 176 $colorGroup = array();