优化导出数据
This commit is contained in:
parent
8dd49b3300
commit
fe42ceac45
@ -21,6 +21,7 @@
|
|||||||
layui.pageTable = table.render({
|
layui.pageTable = table.render({
|
||||||
elem: '#test'
|
elem: '#test'
|
||||||
,toolbar: '#toolbarDemo'
|
,toolbar: '#toolbarDemo'
|
||||||
|
,defaultToolbar: false
|
||||||
,title:'车辆类型列表'
|
,title:'车辆类型列表'
|
||||||
,url: "/adm/car/car_cate"
|
,url: "/adm/car/car_cate"
|
||||||
,page: false
|
,page: false
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
layui.pageTable = table.render({
|
layui.pageTable = table.render({
|
||||||
elem: '#test'
|
elem: '#test'
|
||||||
,toolbar: '#toolbarDemo'
|
,toolbar: '#toolbarDemo'
|
||||||
|
,defaultToolbar: false
|
||||||
,title:'会议室列表'
|
,title:'会议室列表'
|
||||||
,url: "/adm/meeting/meeting_cate"
|
,url: "/adm/meeting/meeting_cate"
|
||||||
,page: false
|
,page: false
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
layui.pageTable = table.render({
|
layui.pageTable = table.render({
|
||||||
elem: '#test'
|
elem: '#test'
|
||||||
,toolbar: '#toolbarDemo'
|
,toolbar: '#toolbarDemo'
|
||||||
|
,defaultToolbar: false
|
||||||
,title:'印章类型列表'
|
,title:'印章类型列表'
|
||||||
,url: "/adm/seal/seal_cate"
|
,url: "/adm/seal/seal_cate"
|
||||||
,page: false
|
,page: false
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
elem: '#test',
|
elem: '#test',
|
||||||
title: '公告列表',
|
title: '公告列表',
|
||||||
toolbar: '#toolbarDemo',
|
toolbar: '#toolbarDemo',
|
||||||
|
defaultToolbar: false,
|
||||||
page: true, //开启分页
|
page: true, //开启分页
|
||||||
limit: 20,
|
limit: 20,
|
||||||
url: "/note/index/index", //数据接口
|
url: "/note/index/index", //数据接口
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
layui.pageTable = table.render({
|
layui.pageTable = table.render({
|
||||||
elem: '#test'
|
elem: '#test'
|
||||||
, toolbar: '#toolbarDemo'
|
, toolbar: '#toolbarDemo'
|
||||||
|
,defaultToolbar: false
|
||||||
, url: "/user/personal/change"
|
, url: "/user/personal/change"
|
||||||
, page: true //开启分页
|
, page: true //开启分页
|
||||||
, limit: 20
|
, limit: 20
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
layui.pageTable = table.render({
|
layui.pageTable = table.render({
|
||||||
elem: '#test'
|
elem: '#test'
|
||||||
, toolbar: '#toolbarDemo'
|
, toolbar: '#toolbarDemo'
|
||||||
|
,defaultToolbar: false
|
||||||
, url: "/user/personal/leave"
|
, url: "/user/personal/leave"
|
||||||
, page: true //开启分页
|
, page: true //开启分页
|
||||||
, limit: 20
|
, limit: 20
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
elem: '#test',
|
elem: '#test',
|
||||||
title: '岗位列表',
|
title: '岗位列表',
|
||||||
toolbar: '#toolbarDemo',
|
toolbar: '#toolbarDemo',
|
||||||
|
defaultToolbar: false,
|
||||||
url: "/user/position/index", //数据接口
|
url: "/user/position/index", //数据接口
|
||||||
page: false, //开启分页
|
page: false, //开启分页
|
||||||
cols: [
|
cols: [
|
||||||
|
@ -15,7 +15,7 @@ if (empty(file_exists(__DIR__ . '/../vendor/autoload.php'))) {
|
|||||||
require __DIR__ . '/../vendor/autoload.php';
|
require __DIR__ . '/../vendor/autoload.php';
|
||||||
|
|
||||||
// 定义当前版本号
|
// 定义当前版本号
|
||||||
define('CMS_VERSION','4.11.24');
|
define('CMS_VERSION','4.12.30');
|
||||||
|
|
||||||
// 定义Layui版本号
|
// 定义Layui版本号
|
||||||
define('LAYUI_VERSION','2.7.6');
|
define('LAYUI_VERSION','2.7.6');
|
||||||
|
95
public/static/assets/gougu/module/table2excel.js
Normal file
95
public/static/assets/gougu/module/table2excel.js
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
layui.define([], function (exports) {
|
||||||
|
var MOD_NAME = 'table2excel';
|
||||||
|
var modFile = layui.cache.modules['table2excel'];
|
||||||
|
var modPath = modFile.substr(0, modFile.lastIndexOf('.'));
|
||||||
|
var plugin_filename = 'table2excel.js'
|
||||||
|
var settings = {
|
||||||
|
title: '数据表格',
|
||||||
|
url: '',
|
||||||
|
where:function(){
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
function tableTOexcel(opts){
|
||||||
|
let msg;
|
||||||
|
let where = opts.where();
|
||||||
|
if(!where['limit'] ){
|
||||||
|
where['limit'] = 999999;
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
url:opts.url,
|
||||||
|
data:where,
|
||||||
|
beforeSend:function(){
|
||||||
|
msg = layer.msg('数据导出中...',{
|
||||||
|
time: 20000
|
||||||
|
});
|
||||||
|
$('.table-excel-out').remove();
|
||||||
|
},
|
||||||
|
success:function(res){
|
||||||
|
if(res.code==0){
|
||||||
|
var item=res.data,th=['<tr>'],headArray = opts.cols;
|
||||||
|
if(item.length==0){
|
||||||
|
layer.msg('查询无数据,无法导出');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for(var a=0;a<headArray.length;a++){
|
||||||
|
th.push('<th>'+headArray[a].title+'</th>');
|
||||||
|
}
|
||||||
|
th.push('</tr>');
|
||||||
|
|
||||||
|
for(var m=0;m<item.length;m++){
|
||||||
|
th.push('<tr>');
|
||||||
|
for(var n=0;n<headArray.length;n++){
|
||||||
|
let resetData = headArray[n]['reset'];
|
||||||
|
if(resetData && typeof resetData === "function"){
|
||||||
|
th.push('<td>'+resetData(item[m])+'</td>');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
th.push('<td>'+item[m][headArray[n]['field']]+'</td>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
th.push('</tr>');
|
||||||
|
}
|
||||||
|
|
||||||
|
var tableId = new Date().getTime();
|
||||||
|
$('body').append('<div class="table-excel-out" style="display:none"><table id="tableOut'+tableId+'">'+th.join('')+'</table></div>');
|
||||||
|
|
||||||
|
$("#tableOut"+tableId).table2excel({
|
||||||
|
name: opts.title,
|
||||||
|
filename: opts.title + tableId + ".xls",
|
||||||
|
exclude: ".noExl",
|
||||||
|
exclude_img: false,
|
||||||
|
exclude_links: false,
|
||||||
|
exclude_inputs: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
complete: function () {
|
||||||
|
layer.close(msg);
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
var table2excel = {
|
||||||
|
render: function (btnId, options) {
|
||||||
|
loadScript();
|
||||||
|
var opts = $.extend({}, settings, options);
|
||||||
|
$('body').on('click','#'+btnId,function(){
|
||||||
|
tableTOexcel(opts);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadScript() {
|
||||||
|
if (typeof $.fn['table2excel'] == 'undefined') {
|
||||||
|
$.ajax({
|
||||||
|
url: modPath + '/' + plugin_filename,
|
||||||
|
dataType: 'script',
|
||||||
|
cache: true,
|
||||||
|
async: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports(MOD_NAME, table2excel);
|
||||||
|
});
|
@ -0,0 +1 @@
|
|||||||
|
(function($,window,document,undefined){var pluginName="table2excel",defaults={exclude:".noExl",name:"Table2Excel",filename:"table2excel",fileext:".xls",exclude_img:true,exclude_links:true,exclude_inputs:true,preserveColors:false};function Plugin(element,options){this.element=element;this.settings=$.extend({},defaults,options);this._defaults=defaults;this._name=pluginName;this.init()}Plugin.prototype={init:function(){var e=this;var utf8Heading='<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';e.template={head:'<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">'+utf8Heading+"<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets>",sheet:{head:"<x:ExcelWorksheet><x:Name>",tail:"</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>"},mid:"</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body>",table:{head:"<table>",tail:"</table>"},foot:"</body></html>"};e.tableRows=[];var additionalStyles="";var compStyle=null;$(e.element).each(function(i,o){var tempRows="";$(o).find("tr").not(e.settings.exclude).each(function(i,p){additionalStyles="";if(e.settings.preserveColors){compStyle=getComputedStyle(p);additionalStyles+=(compStyle&&compStyle.backgroundColor?"background-color: "+compStyle.backgroundColor+";":"");additionalStyles+=(compStyle&&compStyle.color?"color: "+compStyle.color+";":"")}tempRows+="<tr style='"+additionalStyles+"'>";$(p).find("td,th").not(e.settings.exclude).each(function(i,q){additionalStyles="";if(e.settings.preserveColors){compStyle=getComputedStyle(q);additionalStyles+=(compStyle&&compStyle.backgroundColor?"background-color: "+compStyle.backgroundColor+";":"");additionalStyles+=(compStyle&&compStyle.color?"color: "+compStyle.color+";":"")}var rc={rows:$(this).attr("rowspan"),cols:$(this).attr("colspan"),flag:$(q).find(e.settings.exclude)};if(rc.flag.length>0){tempRows+="<td> </td>"}else{tempRows+="<td";if(rc.rows>0){tempRows+=" rowspan='"+rc.rows+"' "}if(rc.cols>0){tempRows+=" colspan='"+rc.cols+"' "}if(additionalStyles){tempRows+=" style='"+additionalStyles+"'"}tempRows+=">"+$(q).html()+"</td>"}});tempRows+="</tr>"});if(e.settings.exclude_img){tempRows=exclude_img(tempRows)}if(e.settings.exclude_links){tempRows=exclude_links(tempRows)}if(e.settings.exclude_inputs){tempRows=exclude_inputs(tempRows)}e.tableRows.push(tempRows)});e.tableToExcel(e.tableRows,e.settings.name,e.settings.sheetName)},tableToExcel:function(table,name,sheetName){var e=this,fullTemplate="",i,link,a;e.format=function(s,c){return s.replace(/{(\w+)}/g,function(m,p){return c[p]})};sheetName=typeof sheetName==="undefined"?"Sheet":sheetName;e.ctx={worksheet:name||"Worksheet",table:table,sheetName:sheetName};fullTemplate=e.template.head;if($.isArray(table)){Object.keys(table).forEach(function(i){fullTemplate+=e.template.sheet.head+sheetName+i+e.template.sheet.tail})}fullTemplate+=e.template.mid;if($.isArray(table)){Object.keys(table).forEach(function(i){fullTemplate+=e.template.table.head+"{table"+i+"}"+e.template.table.tail})}fullTemplate+=e.template.foot;for(i in table){e.ctx["table"+i]=table[i]}delete e.ctx.table;var isIE=navigator.appVersion.indexOf("MSIE 10")!==-1||(navigator.userAgent.indexOf("Trident")!==-1&&navigator.userAgent.indexOf("rv:11")!==-1);if(isIE){if(typeof Blob!=="undefined"){fullTemplate=e.format(fullTemplate,e.ctx);fullTemplate=[fullTemplate];var blob1=new Blob(fullTemplate,{type:"text/html"});window.navigator.msSaveBlob(blob1,getFileName(e.settings))}else{txtArea1.document.open("text/html","replace");txtArea1.document.write(e.format(fullTemplate,e.ctx));txtArea1.document.close();txtArea1.focus();sa=txtArea1.document.execCommand("SaveAs",true,getFileName(e.settings))}}else{var blob=new Blob([e.format(fullTemplate,e.ctx)],{type:"application/vnd.ms-excel"});window.URL=window.URL||window.webkitURL;link=window.URL.createObjectURL(blob);a=document.createElement("a");a.download=getFileName(e.settings);a.href=link;document.body.appendChild(a);a.click();document.body.removeChild(a)}return true}};function getFileName(settings){return(settings.filename?settings.filename:"table2excel")}function exclude_img(string){var _patt=/(\s+alt\s*=\s*"([^"]*)"|\s+alt\s*=\s*'([^']*)')/i;return string.replace(/<img[^>]*>/gi,function myFunction(x){var res=_patt.exec(x);if(res!==null&&res.length>=2){return res[2]}else{return""}})}function exclude_links(string){return string.replace(/<a[^>]*>|<\/a>/gi,"")}function exclude_inputs(string){var _patt=/(\s+value\s*=\s*"([^"]*)"|\s+value\s*=\s*'([^']*)')/i;return string.replace(/<input[^>]*>|<\/input>/gi,function myFunction(x){var res=_patt.exec(x);if(res!==null&&res.length>=2){return res[2]}else{return""}})}$.fn[pluginName]=function(options){var e=this;e.each(function(){if(!$.data(e,"plugin_"+pluginName)){$.data(e,"plugin_"+pluginName,new Plugin(this,options))}});return e}})(jQuery,window,document);
|
Loading…
x
Reference in New Issue
Block a user