index.page.js 5.56 KB
/**
 * 个人中心首页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2016/2/17
 */

var $ = require('yoho-jquery'),
    handlebars = require('yoho-handlebars');
var yas = require('../common/data-yas');
var RECID = (new Date().getTime() + '_PC_YOHOBUY_' +
                Math.floor(Math.random() * 1000000 + 1000000) +
                '_' + Math.floor(Math.random() * 1000000 + 1000000));


require('./orders/order-block');
require('../common');

// 关闭消息提示
$('#close-message').click(function() {
    $('.message-tip').slideUp(200);
});

/**
 *
 * @param self 点击的控件
 * @param $ul 列表父
 * @param page 总共页数
 * @param itemWith 子元素宽
 * @param curPage 当前页码
 * @param num 一页商品数量
 */
function pageChange(self, $ul, page, itemWith, curPage, num) {
    var $this = self,
        left;

    if ($this.hasClass('next')) {

        // 第2页显示前翻按钮
        if (curPage === 2) {
            $this.siblings().removeClass('no-visible');
        }

        // 最后一页隐藏后翻按钮
        if (curPage === page) {
            $this.addClass('no-visible');
        }
    } else {

        // 倒数第2页显示后翻按钮
        if (curPage === page - 1) {
            $this.siblings().removeClass('no-visible');
        }

        // 第1页隐藏前翻按钮
        if (curPage === 1) {
            $this.addClass('no-visible');
        }
    }

    left = -num * (curPage - 1) * itemWith;

    $ul.animate({
        marginLeft: left
    }, 400);
}

// 新品上架
(function() {
    var $naPager = $('.na-pager'),
        $rcPager = $('.rc-pager'),
        $naUl = $('.new-arrival ul'),
        $rcUl = $('.recommend ul'),
        naPage = Math.ceil($naUl.children('li').length / 5),
        rcPage = Math.ceil($rcUl.children('li').length / 6),
        naItemWith = $naUl.children('li:last-child').outerWidth(),
        rcItemWith = $rcUl.children('li:last-child').outerWidth(),
        naCurPage = 1,
        rcCurPage = 1,
        PRDID = [];

    var $brandsBox = $('#home-brands-box'),
        $newBox = $('#home-new-box'),
        $recommendBox = $('#home-recommend-box'),
        $brandsTpl = $('#home-brands-tpl').html(),
        $newTpl = $('#home-new-tpl').html(),
        $recommendTpl = $('#home-recommend-tpl').html();

    $naUl.width($naUl.width() * naPage);
    $rcUl.width($rcUl.width() * rcPage);

    // 最新上架翻页
    $naPager.click(function() {
        var $this = $(this);

        if (naPage > 1) {
            if ($this.hasClass('next')) {
                ++naCurPage;
            } else {
                --naCurPage;
            }
            pageChange($this, $naUl, naPage, naItemWith, naCurPage, 5);
        }
    });

    // 为你推荐翻页
    $rcPager.click(function() {
        var $this = $(this);

        if (rcPage > 1) {
            if ($this.hasClass('next')) {
                ++rcCurPage;
            } else {
                --rcCurPage;
            }

            PRDID = [];
            $rcUl.find('li').each(function(index) {
                if (PRDID.length >= 6) {
                    return false;
                }

                if (index >= (rcCurPage - 1) * 6) {
                    PRDID.push($(this).find('a').data('id'));
                }
            });

            yas.givePoint('YB_CHOOSE_FOR_YOU_Y', {
                REC_POSE: 120004,
                PRD_ID: PRDID.join(','),
                PRD_NUM: PRDID.length,
                ACTION_ID: 0,
                page_num: rcCurPage,
                REC_ID: RECID
            });

            pageChange($this, $rcUl, rcPage, rcItemWith, rcCurPage, 6);
        }
    });

    // 为您优选埋点 start
    setTimeout(function() {
        PRDID = [];
        $rcUl.find('li').each(function(index) {
            if (PRDID.length >= 6) {
                return false;
            }

            if (index >= 0) {
                PRDID.push($(this).find('a').data('id'));
            }
        });

        yas.givePoint('YB_CHOOSE_FOR_YOU_Y', {
            REC_POSE: 120004,
            PRD_ID: PRDID.join(','),
            PRD_NUM: PRDID.length,
            ACTION_ID: 0,
            page_num: 1,
            REC_ID: RECID
        });
    }, 3000);

    $rcUl.find('li a').bind('click', function() {
        var index = $(this).closest('li').index() + 1;

        yas.givePoint('YB_CHOOSE_FOR_YOU_Y', {
            REC_POSE: 120004,
            PRD_ID: $(this).data('id'),
            PRD_NUM: index % 6 === 0 ? 6 : index % 6,
            ACTION_ID: 1,
            page_num: rcCurPage,
            REC_ID: RECID
        });
        return true;
    });

    // 为您优选埋点 end


    // 我的消息、我的头像
    $.getJSON('//www.yohobuy.com/home/index/newsAvatar', function(data) {
        $('#user-thumb').attr('src', data.avatar);
        if (+data.msg > 0) {
            $('#new-count').html(data.msg).removeClass('hide');
        }
    });



    // 异步数据
    $.getJSON('//www.yohobuy.com/home/index/async', function(data) {

        // 首页异步数据待处理订单,未读消息,待分享商品数量
        if (data.numbers) {
            $.each(data.numbers, function(key, val) {
                $('#' + key).html(val);
            });
        }

        // 喜欢的品牌
        if (data.brands) {
            $brandsBox.html(handlebars.compile($brandsTpl)(data.brands));
        }

        // 新品上架
        if (data.products) {
            $newBox.html(handlebars.compile($newTpl)(data.products));
        }

        // 推荐
        if (data.rec) {
            $recommendBox.html(handlebars.compile($recommendTpl)(data.rec));
        }
    });
}());