Authored by 毕凯

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

... ... @@ -459,20 +459,7 @@ var brandsData,
loading.showLoadingMask();
//热门品牌滑动
hotBrandsSwiper = new Swiper('.brands-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'brands-list',
slideElement: 'li'
});
swiper = new Swiper('.swiper-container', {
lazyLoading: true,
loop: true,
autoplay: 3000,
pagination: '.swiper-pagination .pagination-inner'
});
lazyLoad($('img.lazy'));
$('.yoho-header').css({
... ... @@ -488,6 +475,22 @@ $('.yoho-header').css({
$('.hide-when-loading').show();
loading.hideLoadingMask();
//banner滑动
swiper = new Swiper('.swiper-container', {
lazyLoading: true,
loop: true,
autoplay: 3000,
pagination: '.swiper-pagination .pagination-inner'
});
//热门品牌滑动
hotBrandsSwiper = new Swiper('.brands-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'brands-list',
slideElement: 'li'
});
})();
$fixTitleBar = $('<div class="title-bar fixed-title-bar"><h2></h2></div>');
... ... @@ -1889,41 +1892,50 @@ module.exports = function(specificGender) {
if (kidsType) {
url = '/product/recom/maylikekids';
} else if (lifestyleType) {
url = '/product/recom/maylikelife';
//有货币页面加载男生首页的数据
url = specificGender === 'lifestyle' ? '/product/recom/maylike?gender=1,3' : '/product/recom/maylikelife';
} else {
gender = (specificGender === 'boys' || $('.mobile-wrap').hasClass('boys-wrap')) ?
'1,3' : '2,3',
url = '/product/recom/maylike?gender=' + gender;
}
//以防cookie异常,强制加载男首
if (specificGender === 'boys') {
url = '/product/recom/maylike?gender=1,3';
}
$curNav = $navList.children('.focus');
if (lifestyleType) {
navHammer = new Hammer($navList[0]);
navHammer.on('tap', function(e) {
var $this = $(e.target).closest('li'),
$goods = $('.goods-list'),
$content;
e.preventDefault();
if ($this.hasClass('focus')) {
return;
}
navHammer = $navList[0] ? new Hammer($navList[0]) : undefined;
if (navHammer) {
navHammer.on('tap', function(e) {
var $this = $(e.target).closest('li'),
$goods = $('.goods-list'),
$content;
e.preventDefault();
if ($this.hasClass('focus')) {
return;
}
index = $this.index();
index = $this.index();
$this.addClass('focus');
$curNav.removeClass('focus');
$this.addClass('focus');
$curNav.removeClass('focus');
$goods.not('.hide').addClass('hide');
$content = $goods.eq(index);
$content.removeClass('hide');
$goods.not('.hide').addClass('hide');
$content = $goods.eq(index);
$content.removeClass('hide');
$curNav = $this;
$curNav = $this;
$(document).trigger('scroll'); //Trigger lazyLoad
e.srcEvent.stopPropagation();
});
$(document).trigger('scroll'); //Trigger lazyLoad
e.srcEvent.stopPropagation();
});
}
}
loading.init($('.maybe-like'));
... ... @@ -5526,15 +5538,28 @@ function changeSizeChosed(newSizeIndex) {
$curSizeBlock.removeClass('chosed');
sizes = $sizeRowList.eq(newSizeIndex).children();
for (i = 0; i < sizes.length; i++) {
if ($(sizes[i]).data('name') === $curSizeBlock.data('name')) {
if ($(sizes[i]).data('id') === $curSizeBlock.data('id')) {
$curSizeBlock = $(sizes[i]);
queryString = '#' + $curSizeBlock.data('name');
queryString = '#' + $curSizeBlock.data('id');
curColorIndex = $(queryString).data('index');
$curSizeBlock.addClass('chosed');
return $curSizeBlock.data('num');
}
}
$curSizeBlock.addClass('chosed');
return $curSizeBlock.data('num');
//特殊处理: 老的选中尺码在新选中的颜色对应尺码中不存在,需要下述1,2,3
// 1.重置尺码选择的标志变量.
$curSizeBlock = null;
hasChooseSize = false;
// 2.当前颜色行隐藏
$colorRowList.eq(curColorIndex).addClass('hide');
// 3.目标颜色行第一行显示
$colorRowList.eq(0).removeClass('hide');
curColorIndex = 0;
return -1;
}
return 0;
}
... ... @@ -5612,7 +5637,15 @@ $yohoPage.on('touchstart', '.color-list .block', function() {
// 颜色块切换勾选样式
$this.siblings('.chosed').removeClass('chosed');
$this.toggleClass('chosed');
// 特殊处理
if (-1 === curGoodNum) {
$curColorBlock = $($colorRowList.eq(0).children().get(index));
$curColorBlock.addClass('chosed');
} else {
$this.toggleClass('chosed');
}
$('#good-num').val(1);
// 设置按钮的样式和文字
... ... @@ -5645,7 +5678,7 @@ $yohoPage.on('touchstart', '.color-list .block', function() {
} else {
hasChooseSize = true;
index = $('#' + $this.data('name')).data('index') - 1;
index = $('#' + $this.data('id')).data('index') - 1;
// 颜色当前行隐藏
$colorRowList.eq(curColorIndex).addClass('hide');
... ... @@ -8815,7 +8848,7 @@ define("js/me/currency-new", ["jquery","hammer","lazyload"], function(require, e
*/
function getGender() {
return window.cookie('_Channel');
return window.cookie('_Channel') || 'boys';
}
require("js/home/maybe-like")(getGender());
... ...
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
{{> layout/simple-header}}
<div class="bindwrapper">
<h3 class="welcomeword">
欢迎加入
<span class="yoho">YOHO!FAMILY</span>
</h3>
<p class="safeword">为了您的账户安全,请您完善账户信息,以便为您提供更优质的服务</p>
<form action="" id="bindmobileform">
<div class="yohobindrow">
<div class="name areatag">地区</div>
<div class="content">
<div class="yohoselectarea">
<div class="optionshow">
<span class="areaname" id="areaname">中国</span>
<span class="righttag"></span>
</div>
<div class="optionslist hide">
<div class="optionitem" areanum="+88">中国香港</div>
<div class="optionitem" areanum="+87">中国台湾</div>
<div class="optionitem" areanum="+86">中国</div>
</div>
</div>
</div>
</div>
<div class="yohobindrow">
<div class="name phonetag">手机号码</div>
<div class="content">
<div class="yohophonewrapper">
<div class="areanum" id="areanum">+86</div>
<input type="text" class="phonenum" />
</div>
</div>
</div>
</form>
<div class="protoctolwrapper">
<div class="choosewrapper">
<input type="checkbox" class="choosetag"></div>
<span>
我已阅读并同意遵守
<a href="" class="protoctol">YOHO!有货服务条款</a>
</span>
</div>
<div class="btnwrapper">
<a href="javascript:void(0)" class="yohobindbtn" id="bindfirststep">下一步</a>
</div>
</div>
{{> layout/footer}}
\ No newline at end of file
... ...
... ... @@ -26,8 +26,8 @@
<div class="rightpart">
<div id="loginBox" class="float-left">
<span class="hi">Hi~</span>
<a href="" class="loginbar">[请登录]</a>
<a href="" class="registbar">[免费注册]</a>
<a href="http://www.yohobuy.com/signin.html" class="loginbar">[请登录]</a>
<a href="http://www.yohobuy.com/reg.html" class="registbar">[免费注册]</a>
</div>
<div class="tag-list-wrapper">
<ul class="tag-list">
... ... @@ -40,17 +40,17 @@
<li class="tag-item myorder">
<span class="tag-seprate"></span>
<span class="icon-papers"></span>
<a href="">我的订单</a>
<a href="http://www.yohobuy.com/home/orders?t=1453168898.0176">我的订单</a>
</li>
<li class="tag-item mycollect">
<span class="tag-seprate"></span>
<span class="icon-heart"></span>
<a href="">我的收藏</a>
<a href="http://www.yohobuy.com/home/favorite?t=1453168898.0176">我的收藏</a>
</li>
<li class="tag-item message">
<span class="tag-seprate"></span>
<span class="icon-mail"></span>
<a href="">消息</a>
<a href="http://www.yohobuy.com/home/message?t=1453168898.0176">消息</a>
</li>
<li class="tag-item phone">
<span class="tag-seprate"></span>
... ... @@ -119,7 +119,7 @@
</li>
{{/ navbars}}
</ul>
<div class="icon-logo"></div>
<div class="icon-logo"><a href="http://www.yohobuy.com/" class="main-link"></a></div>
<div class="header-tool float-right">
<div class="search float-left {{searchcate}}" >
<form action="http://search.yohobuy.com" method="get" id="searchForm">
... ... @@ -356,4 +356,4 @@
<a href="<?php print QConfigs_Site_Config::$site_url?>/home/user?t=<?php print microtime(true);?>">完善资料</a>
</div>
</script>
</div>
\ No newline at end of file
</div>
... ...
... ... @@ -156,7 +156,7 @@ function actionGoodsCart() {
}, function() {
$(this).css('background-color', '#fff');
});
}, 'json');
}, 'jsonp');
}
function getText(obj) {
... ... @@ -205,13 +205,11 @@ function actionGoodsCart() {
var params = '';
if (typeof (domain) === undefined || domain === '') {
console.log('请设置请求的api地址');
return false;
}
params = $.extend(defaults, options);
params.page = params.page || 1;
if (params.method === '') {
console.log('请设置请求的URL');
return false;
}
try {
... ... @@ -752,7 +750,8 @@ function actionTipPic() {
function closeCover(){
function closeCover() {
var $cover = $('#cover');
$cover.remove();
... ... @@ -763,58 +762,97 @@ function closeCover(){
*/
function actionCover() {
var gender = cookieMap._Gender;
setCookie('_Channel','boys',{path : '/',domain : '.yohobuy.com',expires : 7});
if(typeof gender == 'undefined' || gender == '' || gender == null){
$.get('http://www.yohobuy.com/index/guide', function(data){
var newMask = document.createElement("div");
var newMask = '';
var windowheight = '';
var selfheight = '';
var containertop;
var length = '';
window.setCookie('_Channel', 'boys', {
path: '/',
domain: '.yohobuy.com',
expires: 7
});
if (typeof gender === 'undefined' || gender === '' || gender === null) {
$.get('http://www.yohobuy.com/index/guide', function(data) {
newMask = document.createElement('div');
newMask.id = 'cover';
newMask.innerHTML=data;
newMask.innerHTML = data;
document.body.appendChild(newMask);
var window_height = $(window).height();
var self_height = $('.guide-box').height();
var container_top = window_height / 2 - self_height / 2;
var length=$('.guide-box .clear').find("li").length;
windowheight = $(window).height();
selfheight = $('.guide-box').height();
containertop = windowheight / 2 - selfheight / 2;
length = $('.guide-box .clear').find('li').length;
$('.guide-box').css({
width: (200 * length) + 'px',
top: container_top + 'px'
top: containertop + 'px'
});
$('#cover').bind('click', function(event){
setCookie('_Gender','1,3',{path : '/',domain : '.yohobuy.com',expires : 90});
setCookie('_Channel','boys',{path : '/',domain : '.yohobuy.com',expires : 7});
closeCover();
$('#cover').bind('click', function(event) {
window.setCookie('_Gender', '1,3', {
path: '/',
domain: '.yohobuy.com',
expires: 90
});
window.setCookie('_Channel', 'boys', {
path: '/',
domain: '.yohobuy.com',
expires: 7
});
closeCover();
});
$('#cover .guide-box .close').bind('click', function(event){
getSource('弹窗','CLOSE','homepage_man');
setCookie('_Gender','1,3',{path : '/',domain : '.yohobuy.com',expires : 90});
setCookie('_Channel','boys',{path : '/',domain : '.yohobuy.com',expires : 7});
analy('guide_close');
closeCover();
$('#cover .guide-box .close').bind('click', function(event) {
getSource('弹窗', 'CLOSE', 'homepage_man');
window.setCookie('_Gender', '1,3', {
path: '/',
domain: '.yohobuy.com',
expires: 90
});
window.setCookie('_Channel', 'boys', {
path: '/',
domain: '.yohobuy.com',
expires: 7
});
closeCover();
});
$('.boys img , .boys .go').bind('click', function(event){
getSource('弹窗','BOYS','homepage_man');
setCookie('_Gender','1,3',{path : '/',domain : '.yohobuy.com',expires : 90});
setCookie('_Channel','boys',{path : '/',domain : '.yohobuy.com',expires : 7});
analy( 'guide_boys');
closeCover();
$('.boys img , .boys .go').bind('click', function(event) {
getSource('弹窗', 'BOYS', 'homepage_man');
window.setCookie('_Gender', '1,3', {
path: '/',
domain: '.yohobuy.com',
expires: 90
});
window.setCookie('_Channel', 'boys', {
path: '/',
domain: '.yohobuy.com',
expires: 7
});
closeCover();
});
$('.girls img, .girls .go').bind('click', function(event){
getSource('弹窗','GIRLS','homepage_woman');
setCookie('_Gender','2,3',{path : '/',domain : '.yohobuy.com',expires : 90});
setCookie('_Channel','girls',{path : '/',domain : '.yohobuy.com',expires : 7});
analy( 'guide_girls');
$('.girls img, .girls .go').bind('click', function(event) {
getSource('弹窗', 'GIRLS', 'homepage_woman');
window.setCookie('_Gender', '2,3', {
path: '/',
domain: '.yohobuy.com',
expires: 90
});
window.setCookie('_Channel', 'girls', {
path: '/',
domain: '.yohobuy.com',
expires: 7
});
});
$('.lifestyle img, .lifestyle .go').bind('click', function(event){
setCookie('_Channel','lifestyle',{path : '/',domain : '.yohobuy.com',expires : 7});
getSource('弹窗','LIEFSTYLE','homepage_lifestyle');
analy( 'guide_lifestyle');
$('.lifestyle img, .lifestyle .go').bind('click', function(event) {
window.setCookie('_Channel', 'lifestyle', {
path: '/',
domain: '.yohobuy.com',
expires: 7
});
getSource('弹窗', 'LIEFSTYLE', 'homepage_lifestyle');
});
//防止冒泡事件
$('#cover .guide-box').bind('click', function(event){
$('#cover .guide-box').bind('click', function(event) {
event.stopPropagation();
});
});
});
}
}
/**
... ... @@ -1444,4 +1482,4 @@ function init() {
actionCover(); //初次登录弹框
}
init();
init();
\ No newline at end of file
... ...
... ... @@ -245,7 +245,7 @@
height: 100%;
line-height: 33px;
background-color: #d8d8d8;
background-image: url('../img/arrowbottom.png');
background-image: image-url('passport/arrowbottom.png');
background-repeat: no-repeat;
background-position: center center;
}
... ...
... ... @@ -647,47 +647,58 @@ class CartModel
if (isset($productData['goods_list'])) {
$goodsList = $productData['goods_list'];
$sizeName = '';
$colors = array();
$colorList = array();
$oneColor = array();
$sizes = array();
$oneSize = array();
$sizeList = array();
$allSizeList = array(); // 所有尺码列表
$thumbImageList = array();
$colorNum = 0;
$totalStorageNum = 0; // 总库存数
$colorStorageGroup = array(); // 颜色分组的库存总数集合, 多个之间用/分隔
foreach ($goodsList as $val) {
$colorNum = 0;
$sizeStorageStr = '';
// 尺码
foreach ($val['size_list'] as $one) {
$oneSize = array();
$oneSize['id'] = $one['size_id'];
$oneSize['skuId'] = $one['product_sku'];
$oneSize['goodsId'] = $val['goods_id'];
$oneSize['colorId'] = $val['color_id'];
$oneSize['name'] = $one['size_name'];
$oneSize['sizeNum'] = $one['storage_number'];
$colorNum += $one['storage_number'];
$sizeStorageStr .= $one['storage_number'] . '/';
$sizeList[$val['product_skc']][] = $oneSize;
$sizeName = '';
// 商品的尺码列表
$colorStorageGroup[ $val['product_skc'] ] = array();
if (isset($val['size_list'])) {
// 尺码
foreach ($val['size_list'] as $one) {
$sizeName = $one['size_name'];
$oneSize = array();
$oneSize['id'] = $one['size_id'];
$oneSize['skuId'] = $one['product_sku'];
$oneSize['goodsId'] = $val['goods_id'];
$oneSize['colorId'] = $val['color_id'];
$oneSize['name'] = $sizeName;
$oneSize['sizeNum'] = $one['storage_number'];
$sizeList[$val['product_skc']][] = $oneSize;
// 所有尺码列表,赋值用于前端展示默认尺码的时候 判断出没有库存则显示灰色
$allSizeList[$sizeName] = empty($allSizeList[$sizeName]['storage_number'])
? array('storage' => $one['storage_number'], 'id' => $one['size_id'])
: $allSizeList[$sizeName];
$colorNum += intval($one['storage_number']);
$colorStorageGroup[$val['product_skc']][$one['size_name']] = $one['storage_number'];
}
$colorStorageGroup[$val['product_skc']][$one['size_name']] = $one['storage_number'];
// 颜色分组
$oneColor = array();
$oneColor['id'] = $val['color_id'];
$oneColor['skcId'] = $val['product_skc'];
$oneColor['name'] = $val['color_name'];
$oneColor['goodsName'] = $productData['product_name'];
$oneColor['colorNum'] = $colorNum;
$colorList[] = $oneColor;
}
// 颜色
$oneColor = array();
$oneColor['id'] = $val['color_id'];
$oneColor['skcId'] = $val['product_skc'];
$oneColor['name'] = $val['color_name'];
$oneColor['goodsName'] = $productData['product_name'];
$oneColor['colorNum'] = $colorNum;
$oneColor['sizeNumStr'] = rtrim($sizeStorageStr, '/');
$colors[] = $oneColor;
// 缩略图
foreach ($val['images_list'] as $image) {
$thumbImageList[] = array(
... ... @@ -699,25 +710,38 @@ class CartModel
$totalStorageNum += $colorNum;
}
// 遍历所有尺码,统计出该尺码的每个颜色的库存量,没有时添0,不能空着,因为JS中需要判断
foreach ($sizeList as $skc => $sizeArr) {
foreach ($sizeArr as $key => $value) {
$sizeStorageStr = '';
foreach ($colorStorageGroup as $colorArr) {
if (isset($colorArr[$value['name']])) {
$sizeStorageStr .= $colorArr[$value['name']] . '/';
} else {
$sizeStorageStr .= '0/';
}
}
$sizeList[$skc][$key]['colorNumStr'] = rtrim($sizeStorageStr, '/');
// 遍历所有尺码,构建颜色显示数据
$i = 1;
foreach ($allSizeList as $sizeName => $value) {
// 默认尺码
$sizes[0]['size'][] = array(
'name' => $sizeName, // 尺码名称
'sizeNum' => empty($value['storage']) ? false : true, // 是否有库存 (false:表示没有库存,true:表示有库存)
'id' => $value['id'],
);
// 各个颜色的尺码, 每行显示一个尺码对应的颜色
foreach ($colorList as $colorArr) {
$colorArr['colorNum'] = isset($colorStorageGroup[ $colorArr['skcId'] ][$sizeName]) ? $colorStorageGroup[ $colorArr['skcId'] ][$sizeName] : 0;
$colors[$i]['color'][] = $colorArr;
}
$colors[$i]['id'] = $value['id'];
++ $i;
}
// 格式化尺码对应的各个颜色分组
foreach ($colors as $color) {
$sizes[]['size'] = $sizeList[$color['skcId']];
// 遍历所有颜色, 构建尺码显示数据
$i = 1;
foreach ($colorList as $value) {
// 各个尺码的颜色,每行显示一个颜色的对应尺码
$sizes[$i]['size'] = $sizeList[ $value['skcId'] ];
$sizes[$i]['colorId'] = $value['skcId'];
// 默认颜色
$colors[0]['color'][] = $value;
++ $i;
}
ksort($colors, SORT_NUMERIC);
$data['thumbs'] = $thumbImageList;
$data['colors'] = $colors;
... ...
<?php
use Action\WebAction;
class ThirdloginController extends WebAction
{
/**
* 登录页
*/
public function indexAction()
{
$data = array(
);
$this->_view->display('index', $data);
}
}
... ...