|
@@ -1,119 +0,0 @@
|
|
|
-/**
|
|
|
- * @author zhixin wen <wenzhixin2010@gmail.com>
|
|
|
- * extensions: https://github.com/kayalshri/tableExport.jquery.plugin
|
|
|
- */
|
|
|
-
|
|
|
-(function ($) {
|
|
|
- 'use strict';
|
|
|
- var sprintf = $.fn.bootstrapTable.utils.sprintf;
|
|
|
-
|
|
|
- var TYPE_NAME = {
|
|
|
- csv: 'CSV',
|
|
|
- txt: 'TXT',
|
|
|
- doc: 'Word',
|
|
|
- excel: 'Excel'
|
|
|
- };
|
|
|
-
|
|
|
- $.extend($.fn.bootstrapTable.defaults, {
|
|
|
- showExport: false,
|
|
|
- exportDataType: 'all', // basic, all, selected
|
|
|
- exportTypes: ['csv', 'txt', 'doc', 'excel'],
|
|
|
- exportOptions: {
|
|
|
- ignoreColumn: [0] //忽略列索引
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- $.extend($.fn.bootstrapTable.defaults.icons, {
|
|
|
- export: 'glyphicon glyphicon-save'
|
|
|
- });
|
|
|
-
|
|
|
- $.extend($.fn.bootstrapTable.locales, {
|
|
|
- formatExport: function () {
|
|
|
- return '导出';
|
|
|
- }
|
|
|
- });
|
|
|
- $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
|
|
|
-
|
|
|
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
|
|
- _initToolbar = BootstrapTable.prototype.initToolbar;
|
|
|
-
|
|
|
- BootstrapTable.prototype.initToolbar = function () {
|
|
|
- this.showToolbar = this.options.showExport;
|
|
|
-
|
|
|
- _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
|
|
|
-
|
|
|
- if (this.options.showExport) {
|
|
|
- var that = this,
|
|
|
- $btnGroup = this.$toolbar.find('>.btn-group'),
|
|
|
- $export = $btnGroup.find('div.export');
|
|
|
-
|
|
|
- if (!$export.length) {
|
|
|
- $export = $([
|
|
|
- '<div class="export btn-group">',
|
|
|
- '<button class="btn' +
|
|
|
- sprintf(' btn-%s', this.options.buttonsClass) +
|
|
|
- sprintf(' btn-%s', this.options.iconSize) +
|
|
|
- ' dropdown-toggle" ' +
|
|
|
- 'title="' + this.options.formatExport() + '" ' +
|
|
|
- 'data-toggle="dropdown" type="button">',
|
|
|
- sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.export),
|
|
|
- '<span class="caret"></span>',
|
|
|
- '</button>',
|
|
|
- '<ul class="dropdown-menu" role="menu">',
|
|
|
- '</ul>',
|
|
|
- '</div>'].join('')).appendTo($btnGroup);
|
|
|
-
|
|
|
- var $menu = $export.find('.dropdown-menu'),
|
|
|
- exportTypes = this.options.exportTypes;
|
|
|
-
|
|
|
- if (typeof this.options.exportTypes === 'string') {
|
|
|
- var types = this.options.exportTypes.slice(1, -1).replace(/ /g, '').split(',');
|
|
|
-
|
|
|
- exportTypes = [];
|
|
|
- $.each(types, function (i, value) {
|
|
|
- exportTypes.push(value.slice(1, -1));
|
|
|
- });
|
|
|
- }
|
|
|
- $.each(exportTypes, function (i, type) {
|
|
|
- if (TYPE_NAME.hasOwnProperty(type)) {
|
|
|
- $menu.append(['<li data-type="' + type + '">',
|
|
|
- '<a href="javascript:void(0)">',
|
|
|
- TYPE_NAME[type],
|
|
|
- '</a>',
|
|
|
- '</li>'].join(''));
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- $menu.find('li').click(function () {
|
|
|
- var type = $(this).data('type'),
|
|
|
- doExport = function () {
|
|
|
- that.$el.tableExport($.extend({}, that.options.exportOptions, {
|
|
|
- type: type,
|
|
|
- escape: false
|
|
|
- }));
|
|
|
- };
|
|
|
-
|
|
|
- if (that.options.exportDataType === 'all' && that.options.pagination) {
|
|
|
- that.$el.one(that.options.sidePagination === 'server' ? 'post-body.bs.table' : 'page-change.bs.table', function () {
|
|
|
- doExport();
|
|
|
- that.togglePagination();
|
|
|
- });
|
|
|
- that.togglePagination();
|
|
|
- } else if (that.options.exportDataType === 'selected') {
|
|
|
- //修改sidePagination属性为server无法导出选中数据
|
|
|
- var trs = that.$body.children();
|
|
|
- for (var i = 0; i < trs.length; i++) {
|
|
|
- var $this = $(trs[i]);
|
|
|
- if(!$this.find(sprintf('[name="%s"]',that.options.selectItemName)).prop('checked')){
|
|
|
- $this['hide']();
|
|
|
- }}
|
|
|
- doExport();
|
|
|
- that.getRowsHidden(true);
|
|
|
- } else {
|
|
|
- doExport();
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
-})(jQuery);
|