repayment-list.page.js 4.61 KB
/**
 * 分期还款
 * @author: wsl<shuiling.wang@yoho.cn>
 * @date: 2016/08/04
 */

var $ = require('yoho-jquery'),
    tip = require('../plugin/tip');

var $currAmt = $('.repayment-bottom').find('.curr-amt'),
    $currFee = $('.repayment-bottom').find('.curr-fee'),
    $servePrice = $('.serve-price');

require('./overdue-notice');

// 选择分期统计
function totalChecked(index) {
    var total = 0;

    // 按时间顺序选择还款,不可以跨期
    $('.repay-list input').each(function(key, item) {
        if (key < index && $(item).is(':checked')) {
            total++;
        }
    });

    return total;
}

// 取消分期统计
function totalCancelChecked(index) {
    var total = 0;

    $('.repay-list input').each(function(key, item) {
        if (key > index && $(item).is(':checked')) {
            total++;
        }
    });

    return total;
}

$('.repay-list label').on('click', function() {
    var li = $(this).parents('li'),
        index = li.index(),
        $input = $(this).prev(),
        currAmt = +$currAmt.html(),
        currFee = +$currFee.html(),
        amt = +li.attr('data-curramt'),
        fee = +li.attr('data-currfee'),
        count = 0,
        total = 0;

    if ($input.is(':checked')) {
        total = totalCancelChecked(index);

        if (total === 0) {
            $currAmt.html((currAmt - amt).toFixed(2));
            $currFee.html((currFee - fee).toFixed(2));
        } else {
            tip.show('请按时间顺序取消选择,不可以跨期');
            return false;
        }
    } else {
        total = totalChecked(index);

        if (total === index) {
            $currAmt.html((amt + currAmt).toFixed(2));
            $currFee.html((fee + currFee).toFixed(2));
        } else {
            tip.show('请按时间顺序添加还款,不可以跨期');
            return false;
        }
    }

    if (parseFloat($currFee.html()) > 0) {
        $servePrice.show();
    } else {
        $servePrice.hide();
    }

    setTimeout(function() {
        count = $('.repay-list input:checked').length;
        $('#repayment-total').prop('checked', count === $('.repay-list li').length);
    }, 0);
});

//全选||全不选
$('.repayment-bottom label').on('click', function() {
    var totalAmt = 0;
    var totalFee = 0;

    if ($(this).prev().is(':checked')) {
        $('.repay-list input').prop('checked', false);
        $currAmt.html('0.00');
        $currFee.html('0.00');
        $servePrice.hide();
    } else {
        $('.repay-list input').prop('checked', true);
        $('.repay-list li').each(function() {
            totalAmt += (+$(this).attr('data-curramt'));
            totalFee += (+$(this).attr('data-currfee'));
        });

        $currAmt.html(totalAmt.toFixed(2));
        $currFee.html(totalFee.toFixed(2));

        if (parseFloat($currFee.html()) > 0) {
            $servePrice.show();
        } else {
            $servePrice.hide();
        }
    }
});

$('.repayment-btn').on('click', function() {
    var path = location.pathname;
    var list = [];

    $('.repay-list li').each(function(key, item) {
        if ($(item).find('input').is(':checked')) {
            list.push({
                index: key,                                 // 分期列表序号
                orderCode: $(item).attr('data-billno'),     // 订单号
                termNo: $(item).attr('data-termNo')         // 第几期还款
            });
        }
    });

    $(this).attr('href',
        path + '?openby:yohobuy={"action":"go.instalmentRepayment","params":{"list":' +
        encodeURIComponent(JSON.stringify(list)) + ',"amount":' + (+$currAmt.html()) + '}}');
});

// const repayment = new Repayment({
//     onGetSelection: function() {
//         const ret = [];

//         $(`${CHECKBOX_SELECTOR}:checked`).each(function(key, item) {
//             const li = $(item).parents('li');

//             const data = {
//                 index: key,
//                 orderCode: li.attr('data-billno'),
//                 termNo: li.attr('data-termNo'),
//                 amount: parseFloat(li.attr('data-currNoFeeAmt')),
//                 fee: parseFloat(li.attr('data-currfee')) + 0
//             };

//             ret.push(data);
//         });

//         return ret;
//     },
//     onDeselectAll: function() {
//         $(`${CHECKBOX_SELECTOR}:checked`).prop('checked', false);
//         return [];
//     },
//     onSelectAll: function() {
//         $(`${CHECKBOX_SELECTOR}:not(:checked)`).prop('checked', true);
//         return this.getSelection();
//     }
// });

// 跳转到还款详情
window.jumpDetail = function(id) {
    location.href = '/home/installment/repay/detail?id=' + id;
};