good-slide.js 2.87 KB
/**
 * 你可能喜欢
 * @author: gxh<xuhui.ge@yoho.cn>
 * @date: 2017/03/03
 */

'use strict';
var lazyLoad = require('yoho-jquery-lazyload');
var dataLazyLoad = require('../plugins/lazy-load')(document);
var $ = require('yoho-jquery');
var recommendTpl = require('hbs/product/good-slide.hbs');
var $recommendSlide = $('[data-role="recommend-slide"]');
var yas = require('../common/data-yas');

var $goodsIdArr = [];

require('../plugins/slider');
require('../common/center-slider');

function randomString(len) {
    var $chars = 'ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-';

    var maxPos = $chars.length,
        pwd = '',
        i;

    for (i = 0; i < len; i++) {
        pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
    }

    return pwd;
}


function getSearchRecommend() {

    $.ajax({
        url: '//search.yohobuy.com/product/search/less/recommend',
        dataType: 'json',
        success: function(data) {

            var res;

            if (data.code === 200) {
                res = data.data.item;

                // 若无最近浏览,请隐藏容器
                if (res === null) {
                    $('.bottom-tab-line').hide();
                    $('[data-role="recommend-slide"]').closest('.goods-slide').hide();
                    return;
                }

                $recommendSlide.html(recommendTpl({
                    item: res,
                    hasNext: res && res.length > 5,
                    hasPrev: res && res.length > 5
                }));
                lazyLoad($recommendSlide.find('.lazy'));

                $recommendSlide.find('.goods-slide-item').slider2({
                    shownum: 5,
                    isCircle: true
                });

                $('.recommend-slider .img-item').each(function() {
                    $goodsIdArr.push($(this).data('id'));
                });

                initPageYas(); // eslint-disable-line
            }
        }

    });
}

window.getSearchRecommend = getSearchRecommend;

/*
 * 页面加载完
 */
function initPageYas() {
    var loadYas = {
        REC_POSE: 100101,
        REC_ID: randomString(40),
        PRD_ID: $goodsIdArr.join(','),
        PRD_NUM: $goodsIdArr.length,
        ACTION_ID: 0,
        PAGE_NUM: 1
    };

    // 关键词搜索结果页展示时
    yas.givePoint('YB_CHOOSE_FOR_YOU_Y', loadYas);
}

// 点击你可能喜欢的商品埋点
$('.recommend-slider').on('click', '.img-item', function() {
    var $this = $(this);
    var proId = $this.data('id');

    var loadYas = {
        REC_POSE: 100101,
        REC_ID: randomString(40),
        PRD_ID: proId,
        PRD_NUM: $goodsIdArr.indexOf(proId) + 1,
        ACTION_ID: 1,
        PAGE_NUM: 1
    };

    // 关键词搜索结果页展示时
    yas.givePoint('YB_CHOOSE_FOR_YOU_Y', loadYas);
});

// 数据懒加载
dataLazyLoad.init({cls: '.lazy-load-object-2', threshold: 700});