repayment-list.page.js 1.82 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: parseFloat(li.data('billno')),
                termNo: parseFloat(li.data('termno')),
                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 selection = repayment.getSelection();
    var isSkipped = false;
    var lastIndex = 0;
    var self = this;

    selection.forEach(function(sel) {
        if ((sel.index + 1) - lastIndex > 1) {
            isSkipped = true;
        } else {
            lastIndex = sel.index + 1;
        }
    });

    if (isSkipped) {
        setTimeout(function() {
            tip.show($(self).is(':checked') ? '请按时间顺序取消选择,不可以跨期' : '请按时间顺序添加还款,不可以跨期');
        }, 0);
        return false;
    }

    repayment.update();
});

repayment.update();