list-dynamic.js 2.17 KB
/**
 * 动态获取页面数据
 * @author liuchuanyang
 * @date 2016/10/09
 */
let $ = require('yoho-jquery');

let $msgs = $('#info-list');

require('js/common');

function getDynamicByIds(ids) {
    'use strict';
    let data = {
        ids: ids
    };

    let qs = window.queryString;

    if (qs.query) {

        // 标签列表
        data.query = qs.query;
    } else if (qs.id) {

        // 逛首页type
        data.type = qs.id;
    } else if (!qs.author_id) {

        // 非编辑页的情况下,为逛首页默认type=0
        data.type = '0';
    }

    if (qs.uid) {
        data.uid = qs.uid;
    }

    return $.ajax({
        type: 'GET',
        url: '/guang/info/listData',
        data: data
    });
}

function renderData(data) {
    'use strict';

    let i,
        it,
        $it;

    let list;

    if (data && data.code === 200 && (list = data.data.artList)) {
        for (i = 0; i < list.length; i++) {
            it = list[i];

            if (it && it.articleId) {
                $it = $('.guang-info[data-id=' + it.articleId + ']', $msgs);

                // 浏览数目
                $it.find('.page-view').text(it.views_num);

                // 点赞状态
                if (it.isPraise === 'Y') {
                    $it.find('.like-btn').addClass('like');
                } else {
                    $it.find('.like-btn').removeClass('like');
                }

                // 收藏数目
                if (it.isFavor === 'Y') {
                    $it.find('.collect-btn').addClass('collected');
                }

                // 点赞数目
                $it.find('.like-count').text(it.praise_num);

                // 评论数目
                // $it.find('.like-count').text(it.comment_num);

            }
        }
    }
}

function getDynamicData() {
    'use strict';

    setTimeout(function() {
        let idArr = [];

        $('.info-list').not('.hide').find('.guang-info').each(function() {
            let id = $(this).data('id');

            if (id) {
                idArr.push(id);
            }
        });

        getDynamicByIds(idArr.join(',')).then(renderData);
    }, 150);
}

module.exports = {
    getDynamicData
};