plustar-detail.page.js 3.02 KB
/**
 * PLUS+STAR详情页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/10
 */

var $ = require('yoho-jquery'),
    Hammer = require('yoho-hammer'),
    ellipsis = require('yoho-mlellipsis'),
    lazyLoad = require('yoho-jquery-lazyload');

var $intro = $('#intro'),
    $imt = $('#intro-more-txt'),
    $infosContainer = $('#related-infos-container'),
    uid = $('input[name="uid"]').val();

var info = require('./info');

var tip = require('../plugin/tip');

var brandId = $('#brand-info').data('id');

var jumpToApp = $('#jump-to-app').val();

var mIntro, aIntro, logoImg;

var moreHammer, likeHammer, $goodName, $title;

var saveImage = require('../home/save-image');

require('../plugin/wx-share');
require('../common');
require('./plustar-detail-render')(function() {
    lazyLoad($('img.lazy'));
});

ellipsis.init();

// Init LazyLoad
lazyLoad($('img.lazy'));

logoImg = saveImage.getSourceUrl($('.logo').attr('src'), 'brandLogo');

$('.logo').attr('src', logoImg);

if ($('.good-detail-text .name').length > 0) {
    $('.good-detail-text .name').each(function() {
        $goodName = $(this);
        $title = $goodName.find('a');

        $title[0].mlellipsis(2);
    });
}

// 文字介绍文字截取
$intro[0].mlellipsis(3);

// 获取截取文字和完整文字
setTimeout(function() {
    mIntro = $intro.text();
    aIntro = $intro.attr('title');
});

info.initInfosEvt($infosContainer);

// 文字介绍收起与展开
moreHammer = new Hammer(document.getElementById('more-intro-click-range'));
moreHammer.on('tap', function(e) {
    var $this = $imt.parent();

    $this.toggleClass('spread');

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

        // 显示
        $intro.text(aIntro);
        $imt.text('收起');
    } else {

        // 隐藏
        $intro.text(mIntro);
        $imt.text('more');

        $(window).scrollTop(0, 400); // 滑动到顶部
    }

    e.preventDefault(); // 防止收缩后误点到商品产生跳转
});

// 品牌收藏
likeHammer = new Hammer(document.getElementById('brand-like'));
likeHammer.on('tap', function(e) {
    var opt = 'ok',
        $this = $(e.target);

    // jumpToApp = 1表示APP未登录的情况,此时不发送ajax请求而由a链接直接跳转APP
    if (jumpToApp === '1') {
        return false;
    }

    e.preventDefault();

    if ($this.hasClass('like')) {
        opt = 'cancel';
    }

    $.ajax({
        type: 'POST',
        url: '/guang/opt/favoriteBrand',
        data: {
            id: brandId,
            opt: opt,
            uid: uid
        },
        success: function(data) {
            console.log(data);
            if (data.code === 200) {
                $this.toggleClass('like');
                tip.show(data.message);
            } else if (data.code === 400 || data.code === 412) {
                location.href = data.data; // 未登录跳转登录页面
            } else {
                tip.show(data.message);
            }
        },
        error: function() {
            tip.show('网络断开连接了~');
        }
    });
});

// console.log($('.logo').attr('src'))