Authored by 陈峰

Merge branch 'feature/0726-mip' into 'release/8.1'

Feature/0726 mip



See merge request !1494
@@ -32,12 +32,14 @@ exports.index = (req, res, next) => { @@ -32,12 +32,14 @@ exports.index = (req, res, next) => {
32 32
33 return res.render('chanpin', Object.assign({ 33 return res.render('chanpin', Object.assign({
34 css: yield css('chanpin.css'), 34 css: yield css('chanpin.css'),
  35 + commonCss: yield css('common.css'),
35 title: `${goodsList.name}价格_图片_品牌_怎么样-YOHO!BUY有货`, 36 title: `${goodsList.name}价格_图片_品牌_怎么样-YOHO!BUY有货`,
36 mipUrl: `https://m.yohobuy.com${req.originalUrl}`, 37 mipUrl: `https://m.yohobuy.com${req.originalUrl}`,
37 mipFooter: true, 38 mipFooter: true,
38 canonical: { 39 canonical: {
39 currentHref: `https://www.yohobuy.com/chanpin/${req.params.id}.html` 40 currentHref: `https://www.yohobuy.com/chanpin/${req.params.id}.html`
40 - } 41 + },
  42 + pageTitle: goodsList.name
41 }, goodsList)); 43 }, goodsList));
42 })().catch(next); 44 })().catch(next);
43 }; 45 };
@@ -28,7 +28,7 @@ const mipDate = (day) => { @@ -28,7 +28,7 @@ const mipDate = (day) => {
28 * [处理品牌数据] 28 * [处理品牌数据]
29 * @param {[array]} getBrand [品牌原数据] 29 * @param {[array]} getBrand [品牌原数据]
30 */ 30 */
31 -const _relatedBrand = (getBrand, isApp) => { 31 +const _relatedBrand = (getBrand, isApp, isMip) => {
32 let relatedBrand = getBrand; 32 let relatedBrand = getBrand;
33 33
34 relatedBrand.forEach(brand => { 34 relatedBrand.forEach(brand => {
@@ -37,6 +37,10 @@ const _relatedBrand = (getBrand, isApp) => { @@ -37,6 +37,10 @@ const _relatedBrand = (getBrand, isApp) => {
37 if (isApp) { 37 if (isApp) {
38 brand.url = brand.url + '?openby:yohobuy={"action":"go.brand","params":{"brand_id":"' + brand.id + '"}}'; 38 brand.url = brand.url + '?openby:yohobuy={"action":"go.brand","params":{"brand_id":"' + brand.id + '"}}';
39 } 39 }
  40 +
  41 + if (isMip) {
  42 + brand.url += '?union_type=100000000013130';
  43 + }
40 }); 44 });
41 45
42 return relatedBrand; 46 return relatedBrand;
@@ -160,7 +164,7 @@ const detailIndex = (req, res, next) => { @@ -160,7 +164,7 @@ const detailIndex = (req, res, next) => {
160 164
161 // guang双头部的问题 20160601 165 // guang双头部的问题 20160601
162 // 正确的URL 166 // 正确的URL
163 - let url = `${detail.getAuthor.url}&openby:yohobuy={"action":"go.h5","params":{"param":{},"share":"","id":${detail.getAuthor.author_id},"type":0,"islogin":"N","url":"${detail.getAuthor.url}"}}`; // eslint-disable-line 167 + let url = `${detail.getAuthor.url}&union_type=100000000013130&openby:yohobuy={"action":"go.h5","params":{"param":{},"share":"","id":${detail.getAuthor.author_id},"type":0,"islogin":"N","url":"${detail.getAuthor.url}"}}`; // eslint-disable-line
164 168
165 data.guang.author.url = helpers.https(url); 169 data.guang.author.url = helpers.https(url);
166 } 170 }
@@ -190,11 +194,11 @@ const detailIndex = (req, res, next) => { @@ -190,11 +194,11 @@ const detailIndex = (req, res, next) => {
190 194
191 let goodsList = yield req.ctx(DetailModel).productInfoBySkns(processContents.allgoods); 195 let goodsList = yield req.ctx(DetailModel).productInfoBySkns(processContents.allgoods);
192 196
193 - guang.detail.content = guangProcess.pushGoodsInfo(processContents.finalDetail, goodsList, isApp); 197 + guang.detail.content = guangProcess.pushGoodsInfo(processContents.finalDetail, goodsList, isApp, isMip);
194 198
195 // 相关品牌 199 // 相关品牌
196 if (detail.getBrand && detail.getBrand.length) { 200 if (detail.getBrand && detail.getBrand.length) {
197 - guang.relatedBrand = _relatedBrand(detail.getBrand, isApp); 201 + guang.relatedBrand = _relatedBrand(detail.getBrand, isApp, isMip);
198 } 202 }
199 203
200 // 相关标签 204 // 相关标签
@@ -209,6 +213,7 @@ const detailIndex = (req, res, next) => { @@ -209,6 +213,7 @@ const detailIndex = (req, res, next) => {
209 213
210 return res.render('guang/detail', Object.assign({ 214 return res.render('guang/detail', Object.assign({
211 css: yield css('guang/detail.css'), 215 css: yield css('guang/detail.css'),
  216 + commonCss: yield css('common.css'),
212 gender: gender, 217 gender: gender,
213 localStyle: processContents.css, 218 localStyle: processContents.css,
214 title: detail.getArticle.article_title + '_潮流资讯-YOHO!BUY有货', 219 title: detail.getArticle.article_title + '_潮流资讯-YOHO!BUY有货',
@@ -221,7 +226,9 @@ const detailIndex = (req, res, next) => { @@ -221,7 +226,9 @@ const detailIndex = (req, res, next) => {
221 pic: mipPic, 226 pic: mipPic,
222 des: detail.getArticle.article_summary, 227 des: detail.getArticle.article_summary,
223 url: `${req.protocol}://m.yohobuy.com${req.originalUrl}`, 228 url: `${req.protocol}://m.yohobuy.com${req.originalUrl}`,
224 - } 229 + },
  230 + pageTitle: '逛',
  231 + appPath: `openby:yohobuy{"action":"go.h5","params":{"id":"${id}","share":"/guang/api/v1/share/guang?id=${id}","shareparam":{"id":"${id}"},"islogin":"N","type":1,"url":"http://guang.m.yohobuy.com/info/index","param":{"id":"${id}"}}}`
225 }, data)); 232 }, data));
226 })().catch(next); 233 })().catch(next);
227 }; 234 };
@@ -32,12 +32,14 @@ exports.index = (req, res, next) => { @@ -32,12 +32,14 @@ exports.index = (req, res, next) => {
32 32
33 return res.render('hot', Object.assign({ 33 return res.render('hot', Object.assign({
34 css: yield css('chanpin.css'), 34 css: yield css('chanpin.css'),
  35 + commonCss: yield css('common.css'),
35 title: `${goodsList.name}_${goodsList.name}【图片,新款,价格,折扣,搭配】-YOHO!BUY有货`, 36 title: `${goodsList.name}_${goodsList.name}【图片,新款,价格,折扣,搭配】-YOHO!BUY有货`,
36 mipUrl: `https://m.yohobuy.com${req.originalUrl}`, 37 mipUrl: `https://m.yohobuy.com${req.originalUrl}`,
37 mipFooter: true, 38 mipFooter: true,
38 canonical: { 39 canonical: {
39 currentHref: `https://www.yohobuy.com/hot/${req.params.id}.html` 40 currentHref: `https://www.yohobuy.com/hot/${req.params.id}.html`
40 - } 41 + },
  42 + pageTitle: goodsList.name
41 }, goodsList)); 43 }, goodsList));
42 })().catch(next); 44 })().catch(next);
43 }; 45 };
@@ -17,13 +17,19 @@ exports.index = (req, res, next) => { @@ -17,13 +17,19 @@ exports.index = (req, res, next) => {
17 let mipPic = _.get(detailData, 'baseInfo.goods_list[0].images_list[0].image_url'); 17 let mipPic = _.get(detailData, 'baseInfo.goods_list[0].images_list[0].image_url');
18 let mipDes = _.get(detailData, 'baseInfo.phrase'); 18 let mipDes = _.get(detailData, 'baseInfo.phrase');
19 let miptitle = _.get(detailData, 'baseInfo.product_name'); 19 let miptitle = _.get(detailData, 'baseInfo.product_name');
  20 + let appParams = {product_skn: _.get(detailData, 'baseInfo.product_skn')};
  21 + let appPath = 'openby:yohobuy={"action":"go.productDetail","params":' +
  22 + JSON.stringify(appParams) +
  23 + '}';
20 24
21 if (!_.get(detailData, 'baseInfo.product_skn')) { 25 if (!_.get(detailData, 'baseInfo.product_skn')) {
22 return next(); 26 return next();
23 } 27 }
  28 +
24 return res.render('product/detail', Object.assign(detailData, { 29 return res.render('product/detail', Object.assign(detailData, {
25 title: `${detailData.title}-YOHO!BUY有货`, 30 title: `${detailData.title}-YOHO!BUY有货`,
26 css: yield css('product/detail.css'), 31 css: yield css('product/detail.css'),
  32 + commonCss: yield css('common.css'),
27 localStyle: detailData.mipCss, 33 localStyle: detailData.mipCss,
28 mipFooter: true, 34 mipFooter: true,
29 canonical: { 35 canonical: {
@@ -35,7 +41,9 @@ exports.index = (req, res, next) => { @@ -35,7 +41,9 @@ exports.index = (req, res, next) => {
35 pic: mipPic, 41 pic: mipPic,
36 des: mipDes, 42 des: mipDes,
37 publishTime: '' 43 publishTime: ''
38 - } 44 + },
  45 + pageTitle: '商品详情',
  46 + appPath: appPath
39 })); 47 }));
40 })().catch(next); 48 })().catch(next);
41 }; 49 };
  1 +.top-downloadbar {
  2 + display: block;
  3 + height: 45px;
  4 + background: rgba(68, 68, 68, .95);
  5 + width: 100%;
  6 + padding: 3px 0;
  7 + position: relative;
  8 + box-sizing: content-box;
  9 +}
  10 +
  11 +.top-downloadbar .download-close {
  12 + margin-left: 5px;
  13 + width: 14px;
  14 + height: 14px;
  15 +}
  16 +
  17 +.top-downloadbar .download-close,
  18 +.top-downloadbar .download-icon {
  19 + position: absolute;
  20 + top: 50%;
  21 + -webkit-transform: translateY(-50%);
  22 + transform: translateY(-50%);
  23 + background-size: cover;
  24 +}
  25 +
  26 +.top-downloadbar .download-icon {
  27 + width: 40px;
  28 + height: 40px;
  29 + left: 24px;
  30 +}
  31 +
  32 +.top-downloadbar .download-text {
  33 + position: absolute;
  34 + top: 50%;
  35 + -webkit-transform: translateY(-90%);
  36 + transform: translateY(-90%);
  37 + left: 70px;
  38 + color: #fff;
  39 + font-size: 12px;
  40 +}
  41 +
  42 +.top-downloadbar-wechat .download-text {
  43 + -webkit-transform: translateY(-50%);
  44 + transform: translateY(-50%);
  45 +}
  46 +
  47 +.top-downloadbar .download-text-desc {
  48 + position: absolute;
  49 + top: 50%;
  50 + -webkit-transform: translateY(-16%) scale(0.5);
  51 + transform: translateY(-16%) scale(0.5);
  52 + -webkit-transform-origin: left center;
  53 + transform-origin: left center;
  54 + left: 70px;
  55 + color: #c7c7c7;
  56 + font-size: 20px;
  57 +}
  58 +
  59 +.top-downloadbar .download-go {
  60 + right: 10px;
  61 + background: red;
  62 +}
  63 +
  64 +.top-downloadbar .download-go,
  65 +.top-downloadbar .download-go-wechat {
  66 + position: absolute;
  67 + top: 50%;
  68 + -webkit-transform: translateY(-50%);
  69 + transform: translateY(-50%);
  70 + font-size: 12px;
  71 + padding: 0 7px;
  72 + height: 23px;
  73 + line-height: 23px;
  74 + border-radius: 3px;
  75 + color: #fff;
  76 + text-decoration: none;
  77 +}
  78 +
  79 +.top-downloadbar .download-go-wechat {
  80 + right: 94px;
  81 + background: #000;
  82 +}
  83 +
  84 +.top-downloadbar .download-wechat,
  85 +.top-downloadbar .mini-app-open {
  86 + position: absolute;
  87 + top: 50%;
  88 + -webkit-transform: translateY(-50%);
  89 + transform: translateY(-50%);
  90 + right: 7px;
  91 + font-size: 12px;
  92 + padding: 0 7px;
  93 + height: 23px;
  94 + line-height: 23px;
  95 + border-radius: 3px;
  96 + background: red;
  97 + color: #fff;
  98 + text-decoration: none;
  99 +}
  100 +
  101 +
  102 +.mip-nav-wrapper {
  103 + position: relative;
  104 + z-index: 20;
  105 + width: 100%;
  106 + height: 45px;
  107 + background-image: linear-gradient(#323232,#414141);
  108 + line-height: 45px;
  109 +}
  110 +
  111 +.mip-nav-wrapper .navbar-brand {
  112 + color: #fff;
  113 + font-weight: 700;
  114 + font-size: 18px;
  115 + margin: 0;
  116 + text-align: center;
  117 + height: auto;
  118 + right: 50%;
  119 + transform: translate(50%, 0);
  120 +}
  121 +
  122 +.mip-nav-wrapper .navbar-header {
  123 + text-align: center;
  124 + height: 45px;
  125 + float: right;
  126 + box-sizing: border-box;
  127 +}
  128 +
  129 +.mip-nav-wrapper #bs-navbar {
  130 + width: 140px;
  131 + position: absolute;
  132 + top: 40px;
  133 + right: 6px;
  134 + z-index: 2;
  135 + overflow: hidden;
  136 + color: #fff;
  137 + background-size: 100% 100%;
  138 + background-color: transparent;
  139 + left: auto;
  140 +}
  141 +
  142 +.mip-nav-wrapper #bs-navbar .navbar-nav {
  143 + overflow: hidden;
  144 + width:140px;
  145 + height: 169px;
  146 + min-height: 169px;
  147 + padding: 1px 0;
  148 + border-radius: 5px;
  149 + background-image: linear-gradient(#434343, #171717);
  150 + position: relative;
  151 + z-index: 2;
  152 + margin-top: 8px;
  153 + display: block;
  154 +}
  155 +
  156 +.mip-nav-wrapper #bs-navbar .navbar-nav a {
  157 + text-align: center;
  158 + color: #333;
  159 + font-size: 18px;
  160 + padding: 0;
  161 + margin: 0 auto;
  162 + display: block;
  163 +}
  164 +
  165 +.mip-nav-wrapper .home-icon {
  166 + width: 16px;
  167 + height: 16px;
  168 + background: url("//cdn.yoho.cn/yohobuywap-node/6.4.0/img/product/home.png") no-repeat;
  169 + background-size: contain;
  170 + float: left;
  171 + margin: 14px 20px 0 0;
  172 +}
  173 +
  174 +.mip-nav-wrapper .shopping-icon {
  175 + width: 16px;
  176 + height: 16px;
  177 + background: url("//cdn.yoho.cn/yohobuywap-node/6.4.0/img/product/shopping-card.png") no-repeat;
  178 + background-size: contain;
  179 + float: left;
  180 + margin: 14px 20px 0 0;
  181 +}
  182 +
  183 +.mip-nav-wrapper .mine-icon {
  184 + width: 16px;
  185 + height: 16px;
  186 + background: url("//cdn.yoho.cn/yohobuywap-node/6.4.0/img/product/mine.png") no-repeat;
  187 + background-size: contain;
  188 + float: left;
  189 + margin: 14px 20px 0 0;
  190 +}
  191 +
  192 +.mip-nav-wrapper .shopping-card-icon {
  193 + width: 16px;
  194 + height: 16px;
  195 + background: url("//cdn.yoho.cn/yohobuywap-node/6.4.0/img/product/shopping.png") no-repeat;
  196 + background-size: contain;
  197 + float: left;
  198 + margin: 14px 20px 0 0;
  199 +}
  200 +
  201 +.mip-nav-wrapper .ul-arr {
  202 + width: 20px;
  203 + height: 20px;
  204 + position: absolute;
  205 + top: 0;
  206 + right: 16px;
  207 + -webkit-transform: rotate(45deg);
  208 + transform: rotate(45deg);
  209 + background-color: #434343;
  210 + z-index: 1;
  211 +}
  212 +
  213 +.mip-nav-wrapper li {
  214 + float: left;
  215 + overflow: hidden;
  216 + width: 100%;
  217 + height: 42px;
  218 + line-height: 42px !important;
  219 + position: relative;
  220 + padding: 0 0 0 20px!important;
  221 +}
  222 +
  223 +.mip-nav-wrapper .navbar-toggle {
  224 + display: block;
  225 + margin: 8px 0;
  226 + padding: 5px;
  227 + border: 0;
  228 + background: transparent;
  229 + float: right;
  230 +}
  231 +
  232 +.mip-nav-wrapper .sr-only {
  233 + position: absolute;
  234 + width: 1px;
  235 + height: 1px;
  236 + padding: 0;
  237 + margin: -1px;
  238 + overflow: hidden;
  239 + clip: rect(0, 0, 0, 0);
  240 + border: 0;
  241 +}
  242 +
  243 +.mip-nav-wrapper #bs-navbar .navbar-nav span {
  244 + display: block;
  245 + float: left;
  246 + font-size: 14px;
  247 + color: #fff;
  248 + width: 90px;
  249 + height: 41px;
  250 + border-bottom: solid 1px #444;
  251 + text-align: left;
  252 + margin: 0;
  253 + padding: 0 0 0 10px;
  254 +}
  255 +
  256 +.mip-nav-wrapper #bs-navbar .navbar-nav span:focus {
  257 + color: #fff;
  258 +}
  259 +
  260 +.mip-nav-wrapper #bs-navbar .navbar-nav span:hover {
  261 + color: #fff;
  262 +}
  263 +
  264 +.mip-nav-wrapper #bs-navbar .navbar-nav li:last-child span {
  265 + border-bottom: none;
  266 +}
  267 +
  268 +.mip-nav-wrapper .navbar-toggle {
  269 + width: 25px;
  270 + height: 21px;
  271 + outline: none !important;
  272 + background: url("//cdn.yoho.cn/yohobuywap-node/6.4.0/img/product/nav.png") no-repeat;
  273 + background-size: contain;
  274 + margin: 12px;
  275 +}
  276 +
  277 +.mip-nav-wrapper .navbar-toggle .icon-bar {
  278 + display: none;
  279 +}
  280 +
  281 +.mip-appdl-box {
  282 + background: rgba(68,68,68,.95) !important;
  283 +}
  284 +
  285 +.mip-appdl-downimg {
  286 + width: 40px;
  287 + height: 40px;
  288 +}
  289 +
  290 +.mip-appdl-downbtn {
  291 + border: none !important;
  292 + height: 23px !important;
  293 + line-height: 23px !important;
  294 +}
  295 +
  296 +.mip-appdl-downbtn a {
  297 + background: red;
  298 + color: #fff;
  299 + border-radius: 3px !important;
  300 +}
  301 +
  302 +.mip-appdl-box {
  303 + height: 50px !important;
  304 +}
  305 +
  306 +.mip-appdl-imgbox {
  307 + top: 6px !important;
  308 +}
  309 +
  310 +.mip-appdl-textbox {
  311 + top: 8px !important;
  312 +}
  313 +
  314 +.mip-appdl-downbtn {
  315 + top: 15px !important;
  316 +}
@@ -355,3 +355,46 @@ @@ -355,3 +355,46 @@
355 transform: scale(0.5, 0.5); 355 transform: scale(0.5, 0.5);
356 margin: 0; 356 margin: 0;
357 } 357 }
  358 +
  359 +.recommend-products-box {
  360 + height: 102px;
  361 + margin: 15px 0;
  362 + overflow-x: scroll;
  363 + overflow-y: hidden;
  364 + -webkit-overflow-scrolling: touch;
  365 +}
  366 +
  367 +.recommend-products-box .recommend-products-content {
  368 + height: 102px;
  369 + overflow-y: hidden;
  370 + display: inline-flex;
  371 + background-color: #fff;
  372 +}
  373 +
  374 +.recommend-products-box .recommend-goods {
  375 + width: 76px;
  376 + height: 102px;
  377 + margin: 0 15px 0 0;
  378 + float: left;
  379 + position: relative;
  380 + overflow: hidden;
  381 +}
  382 +
  383 +.recommend-products-box img {
  384 + width: 76px;
  385 + height: 102px;
  386 + margin: 0;
  387 +}
  388 +
  389 +.recommend-products-box .recommend-goods-cover {
  390 + width: 76px;
  391 + height: 15px;
  392 + line-height: 16px;
  393 + font-size: 12px;
  394 + color: #fff;
  395 + background-color: rgba(0, 0, 0, 0.6);
  396 + text-align: center;
  397 + position: absolute;
  398 + bottom: 0;
  399 + padding: 2px 0;
  400 +}
@@ -1014,4 +1014,4 @@ @@ -1014,4 +1014,4 @@
1014 .mip-footer .mip-gototop { 1014 .mip-footer .mip-gototop {
1015 display: inline !important; 1015 display: inline !important;
1016 } 1016 }
1017 -/* 底部结束 */ 1017 +/* 底部结束 */
@@ -184,7 +184,7 @@ class ProductDetail extends global.yoho.BaseModel { @@ -184,7 +184,7 @@ class ProductDetail extends global.yoho.BaseModel {
184 let skn = $(value).closest('.good-info').data('id'); 184 let skn = $(value).closest('.good-info').data('id');
185 185
186 if (skn) { 186 if (skn) {
187 - href = `${params.protocol}://m.yohobuy.com/mip/product/${skn}.html`; 187 + href = `//m.yohobuy.com/product/${skn}.html?union_type=100000000013130`;
188 } 188 }
189 $(value).attr('href', href); 189 $(value).attr('href', href);
190 }); 190 });
@@ -194,7 +194,7 @@ class ProductDetail extends global.yoho.BaseModel { @@ -194,7 +194,7 @@ class ProductDetail extends global.yoho.BaseModel {
194 let skn = $(value).closest('.good-info').data('id'); 194 let skn = $(value).closest('.good-info').data('id');
195 195
196 if (skn) { 196 if (skn) {
197 - href = `${params.protocol}://m.yohobuy.com/mip/product/${skn}.html`; 197 + href = `${params.protocol}://m.yohobuy.com/product/${skn}.html?union_type=100000000013130`;
198 } 198 }
199 $(value).attr('href', href); 199 $(value).attr('href', href);
200 }); 200 });
1 <div class="good-list-page search-page yoho-page"> 1 <div class="good-list-page search-page yoho-page">
  2 + {{> mip-head}}
2 {{> mip-product-list}} 3 {{> mip-product-list}}
3 {{> mip-footer}} 4 {{> mip-footer}}
4 </div> 5 </div>
  1 +{{> mip-download}}
  2 +{{> mip-head}}
1 <div class="guang-detail-c"> 3 <div class="guang-detail-c">
2 {{# guang}} 4 {{# guang}}
3 {{# author}} 5 {{# author}}
@@ -84,6 +86,22 @@ @@ -84,6 +86,22 @@
84 {{/each}} 86 {{/each}}
85 </div> 87 </div>
86 {{/if}} 88 {{/if}}
  89 +
  90 + {{#if collocation}}
  91 + <div class="recommend-products-box">
  92 + <div class="recommend-products-content">
  93 + {{#each collocation}}
  94 + <div class="recommend-goods">
  95 + <a href="{{url}}">
  96 + <mip-img class="pic" width="100" height="134" src="{{image2 src w=152 h=204}}">
  97 + </mip-img>
  98 + </a>
  99 + <p class="recommend-goods-cover">&yen;{{sales_price}}</p>
  100 + </div>
  101 + {{/each}}
  102 + </div>
  103 + </div>
  104 + {{/if}}
87 {{/ content}} 105 {{/ content}}
88 </div> 106 </div>
89 {{/ detail}} 107 {{/ detail}}
@@ -129,7 +147,7 @@ @@ -129,7 +147,7 @@
129 <div class="related-info"> 147 <div class="related-info">
130 {{# relatedInfo}} 148 {{# relatedInfo}}
131 <div class="info-item"> 149 <div class="info-item">
132 - <a data-type="mip" data-title="{{title}}" href="//m.yohobuy.com/mip/guang/{{id}}.html"> 150 + <a data-type="mip" data-title="{{title}}" href="//m.yohobuy.com/guang/{{id}}.html?union_type=100000000013130">
133 <div class="pic"> 151 <div class="pic">
134 <mip-img class="pic-mip" width="117" height="73" src="{{thumb}}"> 152 <mip-img class="pic-mip" width="117" height="73" src="{{thumb}}">
135 </mip-img> 153 </mip-img>
@@ -146,7 +164,7 @@ @@ -146,7 +164,7 @@
146 {{#if relatedTag}} 164 {{#if relatedTag}}
147 <div class="brand-tag"> 165 <div class="brand-tag">
148 {{# relatedTag}} 166 {{# relatedTag}}
149 - <a href="//guang.m.yohobuy.com/tags/index?query={{name}}" class="tag">{{name}}</a> 167 + <a href="//guang.m.yohobuy.com/tags/index?union_type=100000000013130&query={{name}}" class="tag">{{name}}</a>
150 {{/ relatedTag}} 168 {{/ relatedTag}}
151 </div> 169 </div>
152 {{/if}} 170 {{/if}}
1 <div class="good-list-page search-page yoho-page"> 1 <div class="good-list-page search-page yoho-page">
  2 + {{> mip-head}}
2 {{> mip-product-list}} 3 {{> mip-product-list}}
3 {{> mip-footer}} 4 {{> mip-footer}}
4 </div> 5 </div>
  1 +{{> mip-download}}
  2 +{{> mip-head}}
1 <div class="detail-page yoho-page"> 3 <div class="detail-page yoho-page">
2 {{# baseInfo}} 4 {{# baseInfo}}
3 <div class="banner-pic"> 5 <div class="banner-pic">
@@ -83,11 +85,11 @@ @@ -83,11 +85,11 @@
83 {{/if}} 85 {{/if}}
84 {{# enterStore}} 86 {{# enterStore}}
85 <div id="enter-store" class="enter-store page-block tap-hightlight"> 87 <div id="enter-store" class="enter-store page-block tap-hightlight">
86 - <a class="store-logo" href="{{url}}"> 88 + <a class="store-logo" href="{{url}}?union_type=100000000013130">
87 <mip-img src="{{image2 img w=100 h=100 q=90}}" alt="{{storeName}}"></mip-img> 89 <mip-img src="{{image2 img w=100 h=100 q=90}}" alt="{{storeName}}"></mip-img>
88 </a> 90 </a>
89 - <a class="store-name" href="{{url}}">{{storeName}}</a>  
90 - <a class="store-link" href="{{url}}">进入店铺&nbsp;<span>&gt;</span></a> 91 + <a class="store-name" href="{{url}}?union_type=100000000013130">{{storeName}}</a>
  92 + <a class="store-link" href="{{url}}?union_type=100000000013130">进入店铺&nbsp;<span>&gt;</span></a>
91 </div> 93 </div>
92 {{/ enterStore}} 94 {{/ enterStore}}
93 <div class="product-desc"> 95 <div class="product-desc">
@@ -96,16 +98,16 @@ @@ -96,16 +98,16 @@
96 <div id="shop-goods-container" class="goods-container">{{{preference}}}</div> 98 <div id="shop-goods-container" class="goods-container">{{{preference}}}</div>
97 <div class="cart-bar-fixed"> 99 <div class="cart-bar-fixed">
98 <div class="cart-bar"> 100 <div class="cart-bar">
99 - <a href="//m.yohobuy.com/cart/index/index" class="new-foot-ico" rel="nofollow"> 101 + <a href="//m.yohobuy.com/cart/index/index?union_type=100000000013130" class="new-foot-ico" rel="nofollow">
100 <div class="cart-icon"></div> 102 <div class="cart-icon"></div>
101 <div class="tip">购物车</div> 103 <div class="tip">购物车</div>
102 </a> 104 </a>
103 - <a {{# enterStore}}href="{{url}}"{{/ enterStore}} class="new-foot-ico store{{#unless enterStore}} opa{{/unless}}"> 105 + <a {{# enterStore}}href="{{url}}?union_type=100000000013130"{{/ enterStore}} class="new-foot-ico store{{#unless enterStore}} opa{{/unless}}">
104 <div class="shop-icon"></div> 106 <div class="shop-icon"></div>
105 <div class="tip">品牌店铺</div> 107 <div class="tip">品牌店铺</div>
106 </a> 108 </a>
107 {{# baseInfo}} 109 {{# baseInfo}}
108 - <a href="//m.yohobuy.com/product/{{product_skn}}.html" class="addto-cart add-to-cart-url">立即购买</a> 110 + <a href="//m.yohobuy.com/product/{{product_skn}}.html?union_type=100000000013130" class="addto-cart add-to-cart-url">立即购买</a>
109 {{/ baseInfo}} 111 {{/ baseInfo}}
110 </div> 112 </div>
111 </div> 113 </div>
  1 +<div class="top-downloadbar" m-bind:data-clicked="closeDownload">
  2 + <mip-img
  3 + on="tap:MIP.setData({closeDownload:!m.clicked})"
  4 + layout="responsive"
  5 + class="download-close"
  6 + src="data:image/png;base64,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"
  7 + >
  8 + </mip-img>
  9 + <mip-img
  10 + layout="responsive"
  11 + class="download-icon"
  12 + src="data:image/png;base64,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"
  13 + >
  14 + </mip-img>
  15 + <span class="download-text">Yoho!Buy有货</span>
  16 + <p class="download-text-desc">新用户送惊喜礼包</p>
  17 + <a class="download-go" id="download-go" href='https://union.yoho.cn/union/app-downloads.html?union_type=100000000013134&{{appPath}}'>立即打开</a>
  18 +</div>
1 <div class="mip-footer-fixed"> 1 <div class="mip-footer-fixed">
2 <div class="mip-footer"> 2 <div class="mip-footer">
3 <div class="option"> 3 <div class="option">
4 - <a href="//m.yohobuy.com/signin.html" class="login">登录</a>  
5 - <a href="//m.yohobuy.com/reg.html" class="reg">注册</a> 4 + <a href="//m.yohobuy.com/signin.html?union_type=100000000013130" class="login">登录</a>
  5 + <a href="//m.yohobuy.com/reg.html?union_type=100000000013130" class="reg">注册</a>
6 <mip-fixed class="mip-fixed" type="gototop"> 6 <mip-fixed class="mip-fixed" type="gototop">
7 <mip-gototop class="mip-gototop"> 7 <mip-gototop class="mip-gototop">
8 <span class="back-to-top">回到顶部<span></span></span> 8 <span class="back-to-top">回到顶部<span></span></span>
  1 +<div class="mip-nav-wrapper">
  2 + <mip-nav-slidedown
  3 + data-id="bs-navbar"
  4 + class="mip-element-sidebar container"
  5 + data-showbrand="1"
  6 + data-brandname="{{pageTitle}}">
  7 + <nav id="bs-navbar" class="navbar-collapse collapse navbar navbar-static-top">
  8 + <div class="ul-arr"></div>
  9 + <ul class="nav navbar-nav navbar-right">
  10 + <li>
  11 + <a href="//m.yohobuy.com/?union_type=100000000013130&go=1"><i class="home-icon"></i><span>首页</span></a>
  12 + </li>
  13 + <li>
  14 + <a href="//m.yohobuy.com/cate?union_type=100000000013130"><i class="shopping-card-icon"></i><span>分类</span></a>
  15 + </li>
  16 + <li>
  17 + <a href="//m.yohobuy.com/cart/index/index?union_type=100000000013130"><i class="shopping-icon"></i><span>购物车</span></a>
  18 + </li>
  19 + <li>
  20 + <a href="//m.yohobuy.com/home?union_type=100000000013130"><i class="mine-icon"></i><span>我的</span></a>
  21 + </li>
  22 + </ul>
  23 + </nav>
  24 + </mip-nav-slidedown>
  25 +</div>
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="word-content"> 2 <div class="word-content">
3 <div class="list-too-little"> 3 <div class="list-too-little">
4 {{# fuzzyWord}} 4 {{# fuzzyWord}}
5 - <span class="word"><a data-type="mip" href="{{link}}">{{name}}</a></span> 5 + <span class="word"><a data-type="mip" href="{{link}}?union_type=100000000013130">{{name}}</a></span>
6 {{/ fuzzyWord}} 6 {{/ fuzzyWord}}
7 </div> 7 </div>
8 </div> 8 </div>
@@ -33,8 +33,8 @@ @@ -33,8 +33,8 @@
33 {{/each}} 33 {{/each}}
34 </div> 34 </div>
35 <div class="good-detail-img"> 35 <div class="good-detail-img">
36 - <a class="good-thumb" href="//m.yohobuy.com/product/{{productSkn}}.html">  
37 - <mip-img src="{{image defaultImages 235 314}}"></mip-img> 36 + <a class="good-thumb" href="//m.yohobuy.com/product/{{productSkn}}.html?union_type=100000000013130">
  37 + <mip-img src="{{image2 defaultImages w=235 h=314}}"></mip-img>
38 </a> 38 </a>
39 {{!-- {{log isSoonSoldOut}} --}} 39 {{!-- {{log isSoonSoldOut}} --}}
40 {{#if isSoonSoldOut}} 40 {{#if isSoonSoldOut}}
@@ -49,7 +49,7 @@ @@ -49,7 +49,7 @@
49 </div> 49 </div>
50 <div class="good-detail-text"> 50 <div class="good-detail-text">
51 <div class="name"> 51 <div class="name">
52 - <a href="//m.yohobuy.com/product/{{productSkn}}.html">{{productName}}</a> 52 + <a href="//m.yohobuy.com/product/{{productSkn}}.html?union_type=100000000013130">{{productName}}</a>
53 </div> 53 </div>
54 <div class="price"> 54 <div class="price">
55 {{#if @root.saleViplogin}} 55 {{#if @root.saleViplogin}}
@@ -13,10 +13,10 @@ const isTest = process.env.NODE_ENV === 'test'; @@ -13,10 +13,10 @@ const isTest = process.env.NODE_ENV === 'test';
13 13
14 const domains = { 14 const domains = {
15 15
16 - // api: 'http://api.yoho.cn/',  
17 - // service: 'http://service.yoho.cn/',  
18 - // liveApi: 'http://testapi.live.yohops.com:9999/',  
19 - // singleApi: 'http://api-test3.yohops.com:9999/', 16 + api: 'http://api.yoho.cn/',
  17 + service: 'http://service.yoho.cn/',
  18 + liveApi: 'http://testapi.live.yohops.com:9999/',
  19 + singleApi: 'http://api-test3.yohops.com:9999/',
20 20
21 // gray 21 // gray
22 // api: 'http://apigray.yoho.cn/', 22 // api: 'http://apigray.yoho.cn/',
@@ -24,10 +24,10 @@ const domains = { @@ -24,10 +24,10 @@ const domains = {
24 24
25 // platformApi: 'http://172.16.6.210:8088/', 25 // platformApi: 'http://172.16.6.210:8088/',
26 26
27 - api: 'http://api-test3.dev.yohocorp.com/',  
28 - service: 'http://api-test3.dev.yohocorp.com/',  
29 - liveApi: 'http://testapi.live.yohops.com:9999/',  
30 - singleApi: 'http://api-test3.dev.yohocorp.com/', 27 + // api: 'http://api-test3.dev.yohocorp.com/',
  28 + // service: 'http://api-test3.dev.yohocorp.com/',
  29 + // liveApi: 'http://testapi.live.yohops.com:9999/',
  30 + // singleApi: 'http://api-test3.dev.yohocorp.com/',
31 31
32 imSocket: 'ws://socket.yohobuy.com:10240', 32 imSocket: 'ws://socket.yohobuy.com:10240',
33 imCs: 'http://im.yohobuy.com/api', 33 imCs: 'http://im.yohobuy.com/api',
@@ -49,7 +49,7 @@ module.exports = { @@ -49,7 +49,7 @@ module.exports = {
49 testCode: 'yoho4946abcdef#$%&!@', 49 testCode: 'yoho4946abcdef#$%&!@',
50 domains: domains, 50 domains: domains,
51 51
52 - // yohoVerifyUdid: '0f626ede-0e17-460b-a8ea-069ee506e8e9', 52 + yohoVerifyUdid: 'ca5c462a-e28b-407d-8061-5e204398e3cc',
53 signExtend: { 53 signExtend: {
54 business_line: 'yohobuy' 54 business_line: 'yohobuy'
55 }, 55 },
@@ -11,8 +11,21 @@ @@ -11,8 +11,21 @@
11 <style mip-custom> 11 <style mip-custom>
12 .main-wrap{width: 100%;max-width: 750px;margin: 0 auto;} 12 .main-wrap{width: 100%;max-width: 750px;margin: 0 auto;}
13 {{css}} 13 {{css}}
  14 + {{commonCss}}
14 {{localStyle}} 15 {{localStyle}}
15 </style> 16 </style>
  17 + <style mip-custom>
  18 + [data-clicked=true] {
  19 + display: none;
  20 + }
  21 + </style>
  22 + <mip-data>
  23 + <script type="application/json">
  24 + {
  25 + "closeDownload": false
  26 + }
  27 + </script>
  28 + </mip-data>
16 {{> ld-json}} 29 {{> ld-json}}
17 </head> 30 </head>
18 <body> 31 <body>
@@ -24,6 +37,8 @@ @@ -24,6 +37,8 @@
24 <script src="https://mipcache.bdstatic.com/static/v1/mip-anim/mip-anim.js"></script> 37 <script src="https://mipcache.bdstatic.com/static/v1/mip-anim/mip-anim.js"></script>
25 <script src="https://mipcache.bdstatic.com/static/v1/mip-audio/mip-audio.js"></script> 38 <script src="https://mipcache.bdstatic.com/static/v1/mip-audio/mip-audio.js"></script>
26 <script src="https://mipcache.bdstatic.com/extensions/platform/v1/mip-cambrian/mip-cambrian.js"></script> 39 <script src="https://mipcache.bdstatic.com/extensions/platform/v1/mip-cambrian/mip-cambrian.js"></script>
  40 +<script src="https://c.mipcdn.com/static/v1/mip-nav-slidedown/mip-nav-slidedown.js"></script>
  41 +<script src="https://c.mipcdn.com/static/v1/mip-bind/mip-bind.js"></script>
27 {{#if mipFooter}} 42 {{#if mipFooter}}
28 <script src="https://mipcache.bdstatic.com/static/v1/mip-gototop/mip-gototop.js"></script> 43 <script src="https://mipcache.bdstatic.com/static/v1/mip-gototop/mip-gototop.js"></script>
29 {{/if}} 44 {{/if}}
@@ -411,12 +411,16 @@ const processArticleDetail = (articleContent, isApp, gender, isWeixin, isqq, isW @@ -411,12 +411,16 @@ const processArticleDetail = (articleContent, isApp, gender, isWeixin, isqq, isW
411 } 411 }
412 }); 412 });
413 413
414 - collocation.push({  
415 - thumb: cover ?  
416 - helpers.image(cover.cover, 235, 314) : '',  
417 - type: cover ? getProductIcon(cover.maxSortId) : '',  
418 - goods: _.get(item, 'list', [])  
419 - }); 414 + if (isMip) {
  415 + collocation = _.concat(collocation, _.get(item, 'list', []));
  416 + } else {
  417 + collocation.push({
  418 + thumb: cover ?
  419 + helpers.image(cover.cover, 235, 314) : '',
  420 + type: cover ? getProductIcon(cover.maxSortId) : '',
  421 + goods: _.get(item, 'list', [])
  422 + });
  423 + }
420 }); 424 });
421 425
422 finalDetail.push({ 426 finalDetail.push({
@@ -441,6 +445,10 @@ const processArticleDetail = (articleContent, isApp, gender, isWeixin, isqq, isW @@ -441,6 +445,10 @@ const processArticleDetail = (articleContent, isApp, gender, isWeixin, isqq, isW
441 _.forEach(recommendProducts, (goods, goodsKey) => { 445 _.forEach(recommendProducts, (goods, goodsKey) => {
442 recommendProducts[goodsKey].price = parseFloat(goods.sales_price).toFixed(2); 446 recommendProducts[goodsKey].price = parseFloat(goods.sales_price).toFixed(2);
443 recommendProducts[goodsKey].href = isApp ? `http://m.yohobuy.com/product/${goods.product_skn}.html?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":"${goods.product_skn}"}}` : `//m.yohobuy.com/product/${goods.product_skn}.html`; 447 recommendProducts[goodsKey].href = isApp ? `http://m.yohobuy.com/product/${goods.product_skn}.html?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":"${goods.product_skn}"}}` : `//m.yohobuy.com/product/${goods.product_skn}.html`;
  448 +
  449 + if (isMip) {
  450 + recommendProducts[goodsKey].href = `//m.yohobuy.com/product/${goods.product_skn}.html?union_type=100000000013130`;// eslint-disable-line
  451 + }
444 }); 452 });
445 453
446 // 全球购商品 454 // 全球购商品
@@ -491,7 +499,7 @@ const processArticleDetail = (articleContent, isApp, gender, isWeixin, isqq, isW @@ -491,7 +499,7 @@ const processArticleDetail = (articleContent, isApp, gender, isWeixin, isqq, isW
491 /** 499 /**
492 * 重新获取商品数据 500 * 重新获取商品数据
493 */ 501 */
494 -const pushGoodsInfo = (finalDetail, goodsList, isApp) => { 502 +const pushGoodsInfo = (finalDetail, goodsList, isApp, isMip) => {
495 let goodsObj = _goodsArrayToObj(productPrcs.processProductList(goodsList, { isApp: isApp })); 503 let goodsObj = _goodsArrayToObj(productPrcs.processProductList(goodsList, { isApp: isApp }));
496 504
497 _.forEach(finalDetail, (value, key) => { 505 _.forEach(finalDetail, (value, key) => {
@@ -507,6 +515,10 @@ const pushGoodsInfo = (finalDetail, goodsList, isApp) => { @@ -507,6 +515,10 @@ const pushGoodsInfo = (finalDetail, goodsList, isApp) => {
507 515
508 _.forEach(goodsIds, (item, subKey) => { 516 _.forEach(goodsIds, (item, subKey) => {
509 if (goodsObj[item]) { 517 if (goodsObj[item]) {
  518 + if (isMip) {
  519 + goodsObj[item].url += '?union_type=100000000013130';
  520 + }
  521 +
510 finalDetail[key].relatedReco.goods[subKey] = goodsObj[item]; 522 finalDetail[key].relatedReco.goods[subKey] = goodsObj[item];
511 } else { 523 } else {
512 delete finalDetail[key].relatedReco.goods[subKey]; 524 delete finalDetail[key].relatedReco.goods[subKey];
@@ -523,13 +535,35 @@ const pushGoodsInfo = (finalDetail, goodsList, isApp) => { @@ -523,13 +535,35 @@ const pushGoodsInfo = (finalDetail, goodsList, isApp) => {
523 } 535 }
524 536
525 if (value.collocation) { 537 if (value.collocation) {
526 - _.forEach(value.collocation, (item, subKey) => {  
527 - _.forEach(item.goods, (thItem, thKey) => {  
528 - if (thItem) {  
529 - finalDetail[key].collocation[subKey].goods[thKey] = goodsObj[thItem.id]; 538 + if (isMip) {
  539 + let newCollocation = [];
  540 +
  541 + _.forEach(value.collocation, (item) => {
  542 + if (item && goodsObj[item.id]) {
  543 + newCollocation.push({
  544 + src: item.src + '?union_type=100000000013130',
  545 + url: goodsObj[item.id].url,
  546 + sales_price: goodsObj[item.id].sales_price
  547 + });
530 } 548 }
531 }); 549 });
532 - }); 550 + finalDetail[key].collocation = newCollocation;
  551 + } else {
  552 + _.forEach(value.collocation, (item, subKey) => {
  553 + _.forEach(item.goods, (thItem, thKey) => {
  554 + if (thItem) {
  555 + finalDetail[key].collocation[subKey].goods[thKey] = goodsObj[thItem.id];
  556 +
  557 + if (goodsObj[thItem.id]) {
  558 + let newGoods = _.cloneDeep(goodsObj[thItem.id]);
  559 +
  560 + newGoods.default_images = thItem.src;
  561 + finalDetail[key].collocation[subKey].goods[thKey] = newGoods;
  562 + }
  563 + }
  564 + });
  565 + });
  566 + }
533 } 567 }
534 }); 568 });
535 569
@@ -135,6 +135,10 @@ module.exports = { @@ -135,6 +135,10 @@ module.exports = {
135 query = query.replace(/imageView\/\d{1}\//, 'imageView/' + params.mode + '/'); 135 query = query.replace(/imageView\/\d{1}\//, 'imageView/' + params.mode + '/');
136 } 136 }
137 } 137 }
  138 +
  139 + if (query.indexOf('/background') > -1) {
  140 + query = query.replace(/(\/background\/[^\/]+\/)/g, '/');
  141 + }
138 } else { 142 } else {
139 query = 'imageView2/2/interlace/1/q/' + (params.q || 75); 143 query = 'imageView2/2/interlace/1/q/' + (params.q || 75);
140 } 144 }