优化 table 合计行的导出功能

pull/1203/head
贤心 2023-02-15 20:25:32 +08:00
parent 59d497b808
commit 005586b1f0
1 changed files with 19 additions and 9 deletions

View File

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