easyui可编辑表格输入单价和数量金额自动计算,以及计算所有汇总金额

在这里插入代码片
    col.editor = {type: 'validatebox',options: {validType:'intOrFloat'}};
开启编辑后初始的方法事件
   function InitShowWin0(index) {
        var hxDataGrid = $('#' + "hxDataGrid" + indexChild + '');  //输入数量和单价计算金额和合计金额
     //输入数量和单价计算金额和合计金额
        var quantity = hxDataGrid.datagrid('getEditor', {index: index, field: "mainQuantity"});
        if(quantity){
            $(quantity.target).bind("blur", function () {
                var num = $(quantity.target).val();
                var reg = /^\d+(\.\d{1,4})?$/;
                if (num.length > 0) {
                    if (!reg.test(num)) {
                        layui.layer.alert("输入的不是数值,或多于四位小数");
                        $(quantity.target).val("");
                        return;
                    }
                    var price = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRatePrice"});//含税单价
                    var noprice = hxDataGrid.datagrid('getEditor', {index: index, field: "noRatePrice"});//无税单价
                    var amount = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRateAmount"});
                    var noamount = hxDataGrid.datagrid('getEditor', {index: index, field: "noRateAmount"});
                    var unitPrice = $(price.target).val();
                    var unitNoPrice = $(noprice.target).val();
                    var rate=$("#rate").val()!=""?parseFloat($("#rate").val()):0;
                    $(amount.target).val(unitPrice == "" ? 0 : (parseFloat(unitPrice)+(parseFloat(unitPrice)*rate)/100) * parseFloat(num));
                    $(noamount.target).val(parseFloat(unitNoPrice == "" ? 0 : unitNoPrice) * parseFloat(num));
                    if (endEditing()) {
                        var rows = hxDataGrid.datagrid('getRows');
                        var totalAmount = 0.0;
                        _.forEach(rows, function (row) {
                            totalAmount += parseFloat(row.incloudRateAmount);
                        })
                        $("#totalAmount").val(totalAmount);
                    }
                }
            })
       }
        var noprice = hxDataGrid.datagrid('getEditor', {index: index, field: "noRatePrice"});
        if(noprice){
            $(noprice.target).bind("blur", function () {
                var unitPrice = $(noprice.target).val();
                var reg = /^\d+(\.\d{1,4})?$/;
                if (unitPrice.length > 0) {
                    if (!reg.test(unitPrice)) {
                        layui.layer.alert("输入的不是数值,或多于四位小数");
                        $(noprice.target).val("");
                        return;
                    }
                    var quantity = hxDataGrid.datagrid('getEditor', {index: index, field: "mainQuantity"});
                    var amount = hxDataGrid.datagrid('getEditor', {index: index, field: "noRateAmount"});
                    var unitQuantity = $(quantity.target).val();
                    $(amount.target).val(parseFloat(unitPrice) * parseFloat(unitQuantity == "" ? 0 : unitQuantity));
                }
            })
        }
        var price = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRatePrice"});
        if(price){
            $(price.target).bind("blur", function () {
                var unitPrice = $(price.target).val();
                var reg = /^\d+(\.\d{1,4})?$/;
                if (unitPrice.length > 0) {
                    if (!reg.test(unitPrice)) {
                        layui.layer.alert("输入的不是数值,或多于四位小数");
                        $(price.target).val("");
                        return;
                    }
                    var quantity = hxDataGrid.datagrid('getEditor', {index: index, field: "mainQuantity"});
                    var amount = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRateAmount"});
                    var unitQuantity = $(quantity.target).val();
                    var rate=$("#rate").val()!=""?parseFloat($("#rate").val()):0;
                    $(amount.target).val((parseFloat(unitPrice)+(parseFloat(unitPrice)*rate)/100) * parseFloat(unitQuantity == "" ? 0 : unitQuantity));
                    if (endEditing()) {
                        var rows = hxDataGrid.datagrid('getRows');
                        var totalAmount = 0.0;
                        _.forEach(rows, function (row) {
                            totalAmount += parseFloat(row.incloudRateAmount);
                        })
                        $("#totalAmount").val(totalAmount);
                    }
                }
            })
        }
        }
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值