init
- 框架初始化 - 安装插件 - 修复PHP8.4报错
This commit is contained in:
133
public/assets/libs/bootstrap-table/dist/extensions/print/bootstrap-table-print.js
vendored
Normal file
133
public/assets/libs/bootstrap-table/dist/extensions/print/bootstrap-table-print.js
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
var sprintf = $.fn.bootstrapTable.utils.sprintf;
|
||||
|
||||
function printPageBuilderDefault(table) {
|
||||
return '<html><head>' +
|
||||
'<style type="text/css" media="print">' +
|
||||
' @page { size: auto; margin: 25px 0 25px 0; }' +
|
||||
'</style>' +
|
||||
'<style type="text/css" media="all">' +
|
||||
'table{border-collapse: collapse; font-size: 12px; }\n' +
|
||||
'table, th, td {border: 1px solid grey}\n' +
|
||||
'th, td {text-align: center; vertical-align: middle;}\n' +
|
||||
'p {font-weight: bold; margin-left:20px }\n' +
|
||||
'table { width:94%; margin-left:3%; margin-right:3%}\n' +
|
||||
'div.bs-table-print { text-align:center;}\n' +
|
||||
'</style></head><title>Print Table</title><body>' +
|
||||
'<p>Printed on: ' + new Date + ' </p>' +
|
||||
'<div class="bs-table-print">' + table + "</div></body></html>";
|
||||
}
|
||||
$.extend($.fn.bootstrapTable.defaults, {
|
||||
showPrint: false,
|
||||
printAsFilteredAndSortedOnUI: true, //boolean, when true - print table as sorted and filtered on UI.
|
||||
//Please note that if true is set, along with explicit predefined print options for filtering and sorting (printFilter, printSortOrder, printSortColumn)- then they will be applied on data already filtered and sorted by UI controls.
|
||||
//For printing data as filtered and sorted on UI - do not set these 3 options:printFilter, printSortOrder, printSortColumn
|
||||
printSortColumn: undefined , //String, set column field name to be sorted by
|
||||
printSortOrder: 'asc', //String: 'asc' , 'desc' - relevant only if printSortColumn is set
|
||||
printPageBuilder: function(table){return printPageBuilderDefault(table)} // function, receive html <table> element as string, returns html string for printing. by default delegates to function printPageBuilderDefault(table). used for styling and adding header or footer
|
||||
});
|
||||
$.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
|
||||
printFilter: undefined, //set value to filter by in print page
|
||||
printIgnore: false, //boolean, set true to ignore this column in the print page
|
||||
printFormatter:undefined //function(value, row, index), formats the cell value for this column in the printed table. Function behaviour is similar to the 'formatter' column option
|
||||
});
|
||||
$.extend($.fn.bootstrapTable.defaults.icons, {
|
||||
print: 'glyphicon-print icon-share'
|
||||
});
|
||||
|
||||
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
||||
_initToolbar = BootstrapTable.prototype.initToolbar;
|
||||
|
||||
BootstrapTable.prototype.initToolbar = function () {
|
||||
this.showToolbar = this.options.showPrint;
|
||||
|
||||
_initToolbar.apply(this, Array.prototype.slice.apply(arguments));
|
||||
|
||||
if (this.options.showPrint) {
|
||||
var that = this,
|
||||
$btnGroup = this.$toolbar.find('>.btn-group'),
|
||||
$print = $btnGroup.find('button.bs-print');
|
||||
|
||||
if (!$print.length) {
|
||||
$print = $([
|
||||
'<button class="bs-print btn btn-default' + sprintf(' btn-%s"', this.options.iconSize) + ' name="print" title="print" type="button">',
|
||||
sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.print),
|
||||
'</button>'].join('')).appendTo($btnGroup);
|
||||
|
||||
$print.click(function () {
|
||||
function formatValue(row, i, column ) {
|
||||
var value = row[column.field];
|
||||
if (typeof column.printFormatter === 'function') {
|
||||
return column.printFormatter.apply(column, [value, row, i]);
|
||||
}
|
||||
else {
|
||||
return value || "-";
|
||||
}
|
||||
}
|
||||
function buildTable(data,columns) {
|
||||
var out = "<table><thead><tr>";
|
||||
for(var h = 0; h < columns.length; h++) {
|
||||
if(!columns[h].printIgnore) {
|
||||
out += ("<th>"+columns[h].title+"</th>");
|
||||
}
|
||||
}
|
||||
out += "</tr></thead><tbody>";
|
||||
for(var i = 0; i < data.length; i++) {
|
||||
out += "<tr>";
|
||||
for(var j = 0; j < columns.length; j++) {
|
||||
if(!columns[j].printIgnore) {
|
||||
out += ("<td>"+ formatValue(data[i], i, columns[j])+"</td>");
|
||||
}
|
||||
}
|
||||
out += "</tr>";
|
||||
}
|
||||
out += "</tbody></table>";
|
||||
return out;
|
||||
}
|
||||
function sortRows(data,colName,sortOrder) {
|
||||
if(!colName){
|
||||
return data;
|
||||
}
|
||||
var reverse = sortOrder != 'asc';
|
||||
reverse = -((+reverse) || -1);
|
||||
return data.sort(function (a, b) {
|
||||
return reverse * (a[colName].localeCompare(b[colName]));
|
||||
});
|
||||
}
|
||||
function filterRow(row,filters) {
|
||||
for (var index = 0; index < filters.length; ++index) {
|
||||
if(row[filters[index].colName]!=filters[index].value) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function filterRows(data,filters) {
|
||||
return data.filter(function (row) {
|
||||
return filterRow(row,filters)
|
||||
});
|
||||
}
|
||||
function getColumnFilters(columns) {
|
||||
return !columns || !columns[0] ? [] : columns[0].filter(function (col) {
|
||||
return col.printFilter;
|
||||
}).map(function (col) {
|
||||
return {colName:col.field, value:col.printFilter};
|
||||
});
|
||||
}
|
||||
var doPrint = function (data) {
|
||||
data=filterRows(data,getColumnFilters(that.options.columns));
|
||||
data=sortRows(data,that.options.printSortColumn,that.options.printSortOrder);
|
||||
var table=buildTable(data,that.options.columns[0]);
|
||||
var newWin = window.open("");
|
||||
newWin.document.write(that.options.printPageBuilder.call(this, table));
|
||||
newWin.print();
|
||||
newWin.close();
|
||||
};
|
||||
doPrint(that.options.printAsFilteredAndSortedOnUI? that.getData() : that.options.data.slice(0));
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
})(jQuery);
|
||||
7
public/assets/libs/bootstrap-table/dist/extensions/print/bootstrap-table-print.min.js
vendored
Normal file
7
public/assets/libs/bootstrap-table/dist/extensions/print/bootstrap-table-print.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*
|
||||
* bootstrap-table - v1.11.1 - 2017-02-22
|
||||
* https://github.com/wenzhixin/bootstrap-table
|
||||
* Copyright (c) 2017 zhixin wen
|
||||
* Licensed MIT License
|
||||
*/
|
||||
!function(a){"use strict";function b(a){return'<html><head><style type="text/css" media="print"> @page { size: auto; margin: 25px 0 25px 0; }</style><style type="text/css" media="all">table{border-collapse: collapse; font-size: 12px; }\ntable, th, td {border: 1px solid grey}\nth, td {text-align: center; vertical-align: middle;}\np {font-weight: bold; margin-left:20px }\ntable { width:94%; margin-left:3%; margin-right:3%}\ndiv.bs-table-print { text-align:center;}\n</style></head><title>Print Table</title><body><p>Printed on: '+new Date+' </p><div class="bs-table-print">'+a+"</div></body></html>"}var c=a.fn.bootstrapTable.utils.sprintf;a.extend(a.fn.bootstrapTable.defaults,{showPrint:!1,printAsFilteredAndSortedOnUI:!0,printSortColumn:void 0,printSortOrder:"asc",printPageBuilder:function(a){return b(a)}}),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{printFilter:void 0,printIgnore:!1,printFormatter:void 0}),a.extend(a.fn.bootstrapTable.defaults.icons,{print:"glyphicon-print icon-share"});var d=a.fn.bootstrapTable.Constructor,e=d.prototype.initToolbar;d.prototype.initToolbar=function(){if(this.showToolbar=this.options.showPrint,e.apply(this,Array.prototype.slice.apply(arguments)),this.options.showPrint){var b=this,d=this.$toolbar.find(">.btn-group"),f=d.find("button.bs-print");f.length||(f=a(['<button class="bs-print btn btn-default'+c(' btn-%s"',this.options.iconSize)+' name="print" title="print" type="button">',c('<i class="%s %s"></i> ',this.options.iconsPrefix,this.options.icons.print),"</button>"].join("")).appendTo(d),f.click(function(){function a(a,b,c){var d=a[c.field];return"function"==typeof c.printFormatter?c.printFormatter.apply(c,[d,a,b]):d||"-"}function c(b,c){for(var d="<table><thead><tr>",e=0;e<c.length;e++)c[e].printIgnore||(d+="<th>"+c[e].title+"</th>");d+="</tr></thead><tbody>";for(var f=0;f<b.length;f++){d+="<tr>";for(var g=0;g<c.length;g++)c[g].printIgnore||(d+="<td>"+a(b[f],f,c[g])+"</td>");d+="</tr>"}return d+="</tbody></table>"}function d(a,b,c){if(!b)return a;var d="asc"!=c;return d=-(+d||-1),a.sort(function(a,c){return d*a[b].localeCompare(c[b])})}function e(a,b){for(var c=0;c<b.length;++c)if(a[b[c].colName]!=b[c].value)return!1;return!0}function f(a,b){return a.filter(function(a){return e(a,b)})}function g(a){return a&&a[0]?a[0].filter(function(a){return a.printFilter}).map(function(a){return{colName:a.field,value:a.printFilter}}):[]}var h=function(a){a=f(a,g(b.options.columns)),a=d(a,b.options.printSortColumn,b.options.printSortOrder);var e=c(a,b.options.columns[0]),h=window.open("");h.document.write(b.options.printPageBuilder.call(this,e)),h.print(),h.close()};h(b.options.printAsFilteredAndSortedOnUI?b.getData():b.options.data.slice(0))}))}}}(jQuery);
|
||||
Reference in New Issue
Block a user