不规则递增押金计算方法

递增顺序 递增时间 递增金额 递增标准
1 2018-06-04 5000元/月
2 2018-06-04 5000元/月
百分比 金额 %
3 2018-06-04 5000元/月
百分比 金额 %
4 2018-06-04 5000元/月
百分比 金额 %
不规则递增押金计算方法_第1张图片
HTML
$(function () {
        //递增标准选择
        $('.wareList').on('click', '.JS_standOpt', function () {
            var optObj = $(this);
            var standOpt = optObj.data('name');
            var inputObj = optObj.parents('.standardSet').find('.standPay');
            optObj.addClass('standAction').siblings().removeClass('standAction');
            if (standOpt == 'per') {
                inputObj.val('');
                optObj.parents('.standardSet').find('.standUnit').text('%');
                countRent(inputObj);
            } else if (standOpt == 'money') {
                inputObj.val('');
                optObj.parents('.standardSet').find('.standUnit').text('元');
                countRent(inputObj);
            }
        });
    });

    // 计算押金递增
    function countRent(that) {
        var money; // 递增后金额
        var initialAmount = parseInt($(that).closest('tr').prev().find('.moneyTxt').text()); // 上一行tr的押金金额

        var increaseNum = parseInt($(that).val().replace(/^\s+|\s+$/gm,'')); // 递增数
        var increaseWay = $(that).parent('span').parent('div').find('.standAction').attr('data-name'); // 递增方式(%或固值)
        var moneyTxt = $(that).closest('td').siblings().find('.moneyTxt'); // 押金显示span

        if ($(that).val() != '') { // 判断递增方式是否为空
            if (increaseWay == 'per') { // 判断递增方式
                money = initialAmount * (1 + increaseNum / 100);
            }else {
                money = initialAmount + increaseNum;
            }
        }else {
            money = initialAmount;
        }
        moneyTxt.text(parseInt(money));

        // 遍历之后的tr
        afterTr = $(that).closest('tr').nextAll();
        afterTrEach(afterTr);
    }

    // 遍历之后的tr
    function afterTrEach(afterTr) {
        afterTr.each(function () {
            var $increaseInput = $(this).find('.standPay');
            var $currentLine = $(this).find('.moneyTxt');
            var currentLineMoney = parseInt($currentLine.text()); // 计算后的押金
            var increaseNum = parseInt($increaseInput.val()); //递增后金额
            var moneyTxt = $(this).find('.moneyTxt'); // 押金显示span

            var money;
            var increaseWay = $(this).find('.standAction').attr('data-name'); // 递增方式(%或固值)
            var initialAmount = parseInt($(this).prev().find('.moneyTxt').text()); // 上一行金额
            if ($increaseInput.val() != '') {
                if (increaseWay == 'per') { // 判断递增方式
                    money = initialAmount * (1 + increaseNum / 100);
                } else {
                    money = initialAmount + increaseNum;
                }
            }
            else {
                money = initialAmount;
            }
            moneyTxt.text(parseInt(money));
        })
    }
不规则递增押金计算方法_第2张图片
运行结果

你可能感兴趣的:(不规则递增押金计算方法)