Authored by 邱骏

Merge branch 'feature/magazine' of http://git.yoho.cn/fe/yohobuywap-node into feature/magazine

... ... @@ -15,7 +15,7 @@ class magazineModel extends global.yoho.BaseModel {
data = data.data;
let totalPrice = '';
let prices = _.forEach(_.get(data, 'eBook.prices'), val => {
let prices = _.forEach(_.get(data, 'book.prices'), val => {
if (val.select === 'Y') {
val.className = 'active';
totalPrice = val.price;
... ... @@ -24,7 +24,7 @@ class magazineModel extends global.yoho.BaseModel {
return {
goodsList: data.goods_list || [],
maxBuyNumber: _.get(data, 'eBook.maxBuyNumber'),
maxBuyNumber: _.get(data, 'book.maxBuyNumber'),
prices,
totalPrice,
};
... ...
... ... @@ -14,7 +14,7 @@
<div class="magazine-buy-num">
<div class="buy-num-title">
<div>请选择购买数量</div>
<a href="#">
<a href="javascript:;" class="view-buy-tip">
查看购买说明
<i class="iconfont">&#xe614;</i>
</a>
... ...
... ... @@ -34,6 +34,8 @@ module.exports = class extends global.yoho.BaseModel {
name: value.product_name,
color: value.factory_color_name ? value.factory_color_name : value.color_name,
size: value.size_name,
colorAttr: _.get(value, 'sale_attr_desc.skc_attr'),
sizeAttr: _.get(value, 'sale_attr_desc.sku_attr'),
skuTitle: value.sku_title || '尺码',
payPrice: value.real_pay_price,
salePrice: transPrice(value.sales_price) || value.goods_price,
... ...
... ... @@ -227,6 +227,8 @@ module.exports = class extends global.yoho.BaseModel {
name: data.productName,
color: data.factoryColorName ? data.factoryColorName : data.colorName,
size: data.sizeName,
colorAttr: _.get(data, 'saleAttrDesc.skcAttr'),
sizeAttr: _.get(data, 'saleAttrDesc.skuAttr'),
skuTitle: data.skuTitle || '尺码',
payPrice: data.realPayPrice,
salePrice: parseFloat(data.salesPrice).toFixed(2),
... ...
... ... @@ -3,12 +3,12 @@
<div class="magazine-cover-container">
<div class="swiper-container cover-block">
<div class="swiper-wrapper">
{{# eBookPreviewPicBoList}}
{{# bookPreviewPicBoList}}
<div class="swiper-slide">
<div class="filter-bg" style="background-image: url('{{picUrl}}')"></div>
<img src="{{picUrl}}" class="cover-img" alt="">
</div>
{{/ eBookPreviewPicBoList}}
{{/ bookPreviewPicBoList}}
</div>
<div class="swiper-pagination"></div>
<div class="magazine-info-block">
... ... @@ -19,7 +19,7 @@
<i class="iconfont">&#xe614;</i>
</div>
<button class="buy-magazine-now" data-sku="{{sku}}">立即购买</button>
<button class="buy-magazine-now" data-sku="{{sku}}" data-buy="{{buyFlag}}">立即购买</button>
</div>
</div>
</div>
... ...
... ... @@ -23,14 +23,14 @@
<p class="name row">{{name}}</p>
<p class="row">
{{#if color}}
<span class="color{{#if tickets}} date{{/if}}">
{{#if tickets}}日期{{else}}颜色{{/if}}:{{color}}
<span class="color">
{{#if colorAttr}}{{colorAttr}}{{else}}颜色:{{color}}{{/if}}
</span>
{{/if}}
{{#if size}}
<span class="size">
{{#if tickets}}区域{{else}}{{skuTitle}}{{/if}}:{{size}}
{{#if sizeAttr}}{{sizeAttr}}{{else}}{{skuTitle}}:{{size}}{{/if}}
</span>
{{/if}}
</p>
... ...
... ... @@ -105,6 +105,7 @@
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.0",
"babel-runtime": "^6.26.0",
"better-scroll": "^1.15.2",
"cssnano": "^3.10.0",
"echarts": "^4.0.4",
"eslint": "^5.2.0",
... ...
... ... @@ -2,6 +2,7 @@ require('scss/cart/magazine-confirm.page.scss');
const $ = require('yoho-jquery');
const toast = require('js/plugin/tip');
const dialog = require('js/plugin/dialog');
let $activeItem = $('.choose-list .active');
let $totalPrice = $('.total-price .total-num');
... ... @@ -88,6 +89,19 @@ $('.buy-btn-wrap').on('click', 'button', function() {
});
});
$('.view-buy-tip').on('click', function() {
dialog.showDialog({
hasClass: 'magazine-buytip-dialog',
hasHeader: '购买须知',
dialogText: '<ul><li>购买成功后,需要兑换阅读码阅读;</li>' +
'<li>电子刊为虚拟商品,若无系统问题,购买成功后不支持退换;</li>' +
'<li>购买多个电子刊阅读码,可以在【我的阅读码-阅读码】中赠送给好友兑换阅读;</li>' +
'<li>若出现无法阅读的情况,可以联系客服反馈问题,情况核对属实,将为您补发;</li></ul>',
hasFooter: {
centerBtnText: '知道了'
}
});
});
if ($activeItem.length) {
buyNumber = $activeItem.data().number || 1;
... ...
import BScroll from 'better-scroll';
require('scss/magazine/detail.page.scss');
let $ = require('yoho-jquery');
... ... @@ -5,6 +7,8 @@ let get = require('lodash/get');
let Swiper = require('yoho-swiper');
let dialog = require('js/plugin/dialog');
const downloadPage = '//union.yoho.cn/union/app-downloads.html?union_type=100000000000349';
new Swiper('.swiper-container', {
observer: true,
observeParents: true,
... ... @@ -17,6 +21,10 @@ new Swiper('.swiper-container', {
pagination: '.swiper-pagination',
});
document.body.addEventListener('touchmove', function(e) {
e.preventDefault(); // 阻止默认的处理方式(阻止下拉滑动的效果)
}, {passive: false});
function DragableElm(elm) {
if (!elm || !elm.length || elm._dragable) {
return;
... ... @@ -53,8 +61,10 @@ function DragableElm(elm) {
});
};
elm.find('.detail-container').scroll(e => {
_canDrag = !!(_open && e.target.scrollTop < 10);
let bscroll = new BScroll(elm.find('.detail-container')[0]);
bscroll.on('scrollEnd', pos => {
_canDrag = _open ? pos.y > -10 : true;
});
elm.on('touchstart', e => {
... ... @@ -123,15 +133,15 @@ $('.to-download').on('click', function() {
rightBtnText: '确定'
}
}, function() {
window.location.href = '//union.yoho.cn/union/app-downloads.html?union_type=100000000000349';
window.location.href = downloadPage;
});
});
$('.buy-magazine-now').on('click', function() {
let sku = $(this).data('sku');
let buy = $(this).data('buy');
if (sku) {
window.location.href = `/cart/magazine/ensure?sku=${sku}`;
window.location.href = buy ? `/cart/magazine/ensure?sku=${sku}` : downloadPage;
}
});
... ...
... ... @@ -18,6 +18,19 @@ body {
}
}
.magazine-buytip-dialog {
.dialog-content {
padding-top: 0;
text-align: left;
font-size: 26px;
ul {
list-style: decimal;
padding-left: 30px;
}
}
}
.magazine-confirm-page {
padding-bottom: 150px;
}
... ...
... ... @@ -15,6 +15,11 @@ body {
margin-bottom: -90px;
}
.top-downloadbar {
position: absolute !important;
z-index: 30;
}
.magazine-cover-container {
width: 100%;
position: absolute;
... ... @@ -33,6 +38,7 @@ body {
position: relative;
box-sizing: border-box;
padding-bottom: 134px;
overflow: hidden;
.filter-bg {
filter: blur(20px);
... ...
... ... @@ -1680,7 +1680,7 @@ babel-register@^6.26.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
version "6.26.0"
resolved "http://npm.yohops.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
... ... @@ -1789,6 +1789,13 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
better-scroll@^1.15.2:
version "1.15.2"
resolved "http://npm.yohops.com/better-scroll/-/better-scroll-1.15.2.tgz#65ffc6058b8b4ff337b8dfad4bcb334d7699ceb6"
integrity sha1-Zf/GBYuLT/M3uN+tS8szTXaZzrY=
dependencies:
babel-runtime "^6.0.0"
bfj-node4@^5.2.0:
version "5.3.1"
resolved "http://npm.yohops.com/bfj-node4/-/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830"
... ...