mirror of https://github.com/layui/layui
优化 table 文件导出功能,避免打开文件后内容显示的若干异常
parent
a23e7c67c5
commit
6877685754
|
@ -2530,15 +2530,15 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
if(device.ie) return hint.error('IE_NOT_SUPPORT_EXPORTS');
|
if(device.ie) return hint.error('IE_NOT_SUPPORT_EXPORTS');
|
||||||
|
|
||||||
alink.href = 'data:'+ textType +';charset=utf-8,\ufeff'+ encodeURIComponent(function(){
|
alink.href = 'data:'+ textType +';charset=utf-8,\ufeff'+ encodeURIComponent(function(){
|
||||||
var dataTitle = []
|
var dataTitle = [];
|
||||||
,dataMain = []
|
var dataMain = [];
|
||||||
,dataTotal = []
|
var dataTotal = [];
|
||||||
,fieldsIsHide = {};
|
var fieldsIsHide = {};
|
||||||
|
|
||||||
//表头和表体
|
// 表头和表体
|
||||||
layui.each(data, function(i1, item1){
|
layui.each(data, function(i1, item1){
|
||||||
var vals = [];
|
var vals = [];
|
||||||
if(typeof id === 'object'){ //如果 id 参数直接为表头数据
|
if(typeof id === 'object'){ // 若 id 参数直接为表头数据
|
||||||
layui.each(id, function(i, item){
|
layui.each(id, function(i, item){
|
||||||
i1 == 0 && dataTitle.push(item || '');
|
i1 == 0 && dataTitle.push(item || '');
|
||||||
});
|
});
|
||||||
|
@ -2548,9 +2548,9 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
} else {
|
} else {
|
||||||
table.eachCols(id, function(i3, item3){
|
table.eachCols(id, function(i3, item3){
|
||||||
if(item3.field && item3.type == 'normal'){
|
if(item3.field && item3.type == 'normal'){
|
||||||
//不导出隐藏列
|
// 不导出隐藏列
|
||||||
if(item3.hide){
|
if(item3.hide){
|
||||||
if(i1 == 0) fieldsIsHide[item3.field] = true; //记录隐藏列
|
if(i1 == 0) fieldsIsHide[item3.field] = true; // 记录隐藏列
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2558,7 +2558,9 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
if(content === undefined || content === null) content = '';
|
if(content === undefined || content === null) content = '';
|
||||||
|
|
||||||
i1 == 0 && dataTitle.push(item3.fieldTitle || item3.title || item3.field || '');
|
i1 == 0 && dataTitle.push(item3.fieldTitle || item3.title || item3.field || '');
|
||||||
vals.push('"'+ parseTempData.call(thatTable, {
|
|
||||||
|
// 解析内容
|
||||||
|
content = parseTempData.call(thatTable, {
|
||||||
item3: item3
|
item3: item3
|
||||||
,content: content
|
,content: content
|
||||||
,tplData: item1
|
,tplData: item1
|
||||||
|
@ -2569,7 +2571,15 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
return td.filter('[data-field="'+ field +'"]');
|
return td.filter('[data-field="'+ field +'"]');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}) + '"');
|
});
|
||||||
|
|
||||||
|
// 异常处理
|
||||||
|
content = content.replace(/"/g, '""'); // 避免内容存在「双引号」导致异常分隔
|
||||||
|
content += '\t'; // 加「水平制表符」 避免内容被转换格式
|
||||||
|
content = '"'+ content +'"'; // 避免内容存在「逗号」导致异常分隔
|
||||||
|
|
||||||
|
// 插入内容
|
||||||
|
vals.push(content);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -2583,7 +2593,7 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
|
|
||||||
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 = (options.title || config.title || 'table_'+ (config.index || '')) + '.' + type;
|
alink.download = (options.title || config.title || 'table_'+ (config.index || '')) + '.' + type;
|
||||||
document.body.appendChild(alink);
|
document.body.appendChild(alink);
|
||||||
alink.click();
|
alink.click();
|
||||||
|
@ -2592,14 +2602,14 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
|
|
||||||
// 重置表格尺寸结构
|
// 重置表格尺寸结构
|
||||||
table.resize = function(id){
|
table.resize = function(id){
|
||||||
//如果指定表格唯一 id,则只执行该 id 对应的表格实例
|
// 若指定表格唯一 id,则只执行该 id 对应的表格实例
|
||||||
if(id){
|
if(id){
|
||||||
var config = getThisTableConfig(id); //获取当前实例配置项
|
var config = getThisTableConfig(id); // 获取当前实例配置项
|
||||||
if(!config) return;
|
if(!config) return;
|
||||||
|
|
||||||
getThisTable(id).resize();
|
getThisTable(id).resize();
|
||||||
|
|
||||||
} else { //否则重置所有表格实例尺寸
|
} else { // 否则重置所有表格实例尺寸
|
||||||
layui.each(thisTable.that, function(){
|
layui.each(thisTable.that, function(){
|
||||||
this.resize();
|
this.resize();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue