diff --git a/src/modules/table.js b/src/modules/table.js index 028b749d..0d7d6ecb 100644 --- a/src/modules/table.js +++ b/src/modules/table.js @@ -1301,7 +1301,7 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ }); }); - that.dataTotal = {}; + that.dataTotal = []; // 记录合计行结果 var tds = []; that.eachCols(function(i3, item3){ @@ -1309,12 +1309,16 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ // 合计数据的特定字段 var TOTAL_NUMS = totalRowData && totalRowData[item3.field]; + + // 合计数据的小数点位数处理 + var decimals = 'totalRowDecimals' in item3 ? item3.totalRowDecimals : 2; + var thisTotalNum = totalNums[field] + ? parseFloat(totalNums[field] || 0).toFixed(decimals) + : ''; - // td 内容 + // td 显示内容 var content = function(){ var text = item3.totalRowText || ''; - var decimals = 'totalRowDecimals' in item3 ? item3.totalRowDecimals : 2; - var thisTotalNum = parseFloat(totalNums[field]).toFixed(decimals); var tplData = { LAY_COL: item3 }; @@ -1332,6 +1336,13 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ return TOTAL_NUMS || getContent; }(); + // 合计原始结果 + var total = TOTAL_NUMS || thisTotalNum || ''; + item3.field && that.dataTotal.push({ + field: item3.field, + total: $('
'+ content +'
').text() + }); + // td 容器 var td = [''].join(''); - item3.field && (that.dataTotal[field] = content); tds.push(td); }); @@ -2645,14 +2655,14 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){ dataMain.push(vals.join(',')); }); - //表合计 - thatTable && layui.each(thatTable.dataTotal, function(key, value){ - fieldsIsHide[key] || dataTotal.push(value); + // 表合计 + thatTable && layui.each(thatTable.dataTotal, function(i, o){ + fieldsIsHide[o.field] || dataTotal.push(o.total + '\t'); }); return dataTitle.join(',') + '\r\n' + dataMain.join('\r\n') + '\r\n' + dataTotal.join(','); }()); - //return; + alink.download = (opts.title || config.title || 'table_'+ (config.index || '')) + '.' + type; document.body.appendChild(alink); alink.click();