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

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

var CHECKBOX_SELECTOR = '.repay-list input';
var repayment = new Repayment({
    onGetSelection: function() {
        var ret = [];

        $(CHECKBOX_SELECTOR + ':checked').each(function(key, item) {
            var li = $(item).parents('li');
            var data = {
                index: li.index(),
                orderCode: li.data('billNo'),
                termNo: li.data('currterm'),
                amount: parseFloat(li.data('currnofeeamt')),
                fee: parseFloat(li.data('currfee')) + 0
            };

            ret.push(data);
        });

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

require('./overdue-notice');

$(CHECKBOX_SELECTOR + ':checkbox').click(function() {
    var isSkipped = false,
        self = this,
        billNo = $(self).parent().data('billNo'),
        li = $('li[data-bill-no=' + billNo + ']'),
        selection = li.find('input:checked'),
        lastIndex = li.eq(0).data('currterm');

    selection.parent().each(function(index, sel) {
        var key = $(sel).data('currterm');

        if ((key + 1) - lastIndex > 1) {
            isSkipped = true;
        } else {
            lastIndex = key + 1;
        }
    });

    if (isSkipped) {
        setTimeout(function() {
            tip.show('同一个分期订单不能跨期还款,请按时间顺序还款');
        }, 0);
        return false;
    }

    repayment.update();
});

repayment.update();