message.page.js 3.85 KB
// 消息列表 by acgpiano

let $ = require('yoho-jquery'),
    loading = require('plugin/loading'),
    dialog = require('plugin/dialog'),
    tip = require('plugin/tip');

let $page = $('.massage-page'),
    page = 1,
    stopLoading = false,
    pickBusy = false;

function massageAJAX(pageNum) {
    loading.showLoadingMask();
    $.ajax({
        type: 'POST',
        url: '/home/message',
        dataType: 'html',
        data: {
            page: pageNum,
        },
        success: function(data) {
            if ($(data).find('p').html() === '您没有消息') {
                stopLoading = true;
                window.rePosFooter();
                loading.hideLoadingMask();
                return;
            }

            $('.massage-page').append($(data).html());
            window.rePosFooter();
            loading.hideLoadingMask();
        }
    });
}

function scrollHandler() {
    if (!stopLoading && ($(window).scrollTop() + $(window).height() > $('body').height() - 100)) {
        page++;
        massageAJAX(page);
    }
}

require('common.js');

$(window).scroll(function() {
    !location.search && window.requestAnimationFrame(scrollHandler);
});

// 删除消息
$page.on('touchstart', '.del', function() {
    let $good = $(this).closest('.massage-list'),
        $id = $good.data('id');

    dialog.showDialog({
        dialogText: '确定删除这条消息吗?',
        hasFooter: {
            leftBtnText: '取消',
            rightBtnText: '确定'
        }
    }, function() {

        $.ajax({
            type: 'POST',
            url: '/home/ajaxDelMes',
            data: {
                id: $id
            },
            success: function(data) {
                if (data.code === 200) {
                    dialog.showDialog({
                        dialogText: '删除消息成功',
                        autoHide: 2000,
                        fast: true
                    });
                    setTimeout(function() {
                        window.history.go(0);
                    }, 1200);
                } else {
                    dialog.showDialog({
                        dialogText: data.message,
                        autoHide: 2000,
                        fast: true
                    });
                }
            }
        });
    });
});

// 领取生日券
$page.on('touchstart', '.pick-coupon-btn', function() {
    let $id = $(this).data('id');

    if (pickBusy) {
        return;
    }
    pickBusy = true;

    $.ajax({
        type: 'POST',
        url: '/home/pickCoupon',
        data: {
            id: $id
        },
        success: function(data) {
            if (data.code === 200) {
                dialog.showDialog({
                    dialogText: '领取成功',
                    autoHide: 2000,
                    fast: true
                });
                $(this).removeClass('pick-coupon-btn');
            } else {
                tip.show(data.message);
            }

            pickBusy = false;

            dialog.showDialog({
                dialogText: data.message,
                autoHide: 2000,
                fast: true
            });
        }
    });
});

// 领取生日券2016.11.25 by jing.li@yoho.cn
$page.on('touchstart', '.btn', function() {
    let $id = $(this).data('id');

    dialog.showDialog({
        dialogText: '生日券只能领取其中一张,确认领取?',
        fast: true,
        hasFooter: {
            leftBtnText: '暂不领取',
            rightBtnText: '确认领取'
        }
    }, function() {
        $.ajax({
            type: 'POST',
            url: '/home/pickCoupon',
            data: {
                id: $id
            },
            success: function() {
                location.replace('./coupons');

                // $('.dialog-wrapper').fadeOut();
            }
        });
    });

    $('.dialog-right-btn').css('color', '#000');
});