layui.use(['table'], function () { var table = layui.table; partsTable = table.render({ elem: '#parts', toolbar: '#partsToolbar', page: true, limit: 10, height: 'full-250', totalRow: true, cols: cols, done: function (res, curr, count) { } }); table.on('edit(parts)', function (obj) { obj.update({ peij_sl: response.data.peij_sl + obj.data.peij_dw, }); tabTotal(partsTable); }); })
/* * 更新表格合计 * @param {obj} obj table 对象 */ var tabTotal = function (obj) { var layui_table = obj.config.elem.next('.layui-table-view'); var table_data = {}; var table_total_field = []; layui.use(['table'], function () { var table = layui.table; table_data = table.cache[obj.config.id]; var table_cols = obj.config.cols[0]; // 获取合计项 $.each(table_cols, function (i, v) { if (v.totalRow) { table_total_field.push(v.field); } }); }) var layui_table_total = layui_table.find('.layui-table-total'); $.each(table_total_field, function (i, v) { // 合计 var sum = table_data.reduce(function (num1, num2) { // 精度处理 const num1Digits = (num1.toString().split('.')[1] || '').length; const new_num2 = num2[v] ? num2[v] : 0; const num2Digits = (new_num2.toString().split('.')[1] || '').length; const baseNum = Math.pow(10, Math.max(num1Digits, num2Digits)); return (num1 * baseNum + new_num2 * baseNum) / baseNum; }, 0); layui_table_total.find('td[data-field=' + v + '] div').text(sum); }); }
哈哈 业务需求简单的实现一下下