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

var $ = require('yoho-jquery');
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 = [];

    $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

}());