| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | /** * 将BootstrapTable的行使用自定义的模板来渲染 *  * @author: karson * @version: v0.0.1 * * @update 2017-06-24 <http://github.com/karsonzhang/fastadmin> */!function ($) {    'use strict';    $.extend($.fn.bootstrapTable.defaults, {        //是否启用模板渲染        templateView: false,        //数据格式化的模板ID或格式函数        templateFormatter: "itemtpl",        //添加的父类的class        templateParentClass: "row row-flex",        //向table添加的class        templateTableClass: "table-template",    });    var BootstrapTable = $.fn.bootstrapTable.Constructor,            _initContainer = BootstrapTable.prototype.initContainer,            _initBody = BootstrapTable.prototype.initBody,            _initRow = BootstrapTable.prototype.initRow;    BootstrapTable.prototype.initContainer = function () {        _initContainer.apply(this, Array.prototype.slice.apply(arguments));        var that = this;        if (!that.options.templateView) {            return;        }        that.options.cardView = true;    };    BootstrapTable.prototype.initBody = function () {        var that = this;        $.extend(that.options, {            showHeader: !that.options.templateView ? $.fn.bootstrapTable.defaults.showHeader : false,            showFooter: !that.options.templateView ? $.fn.bootstrapTable.defaults.showFooter : false,        });        $(that.$el).toggleClass(that.options.templateTableClass, that.options.templateView);        _initBody.apply(this, Array.prototype.slice.apply(arguments));        if (!that.options.templateView) {            return;        } else {            //由于Bootstrap是基于Table的,添加一个父类容器            $("> *:not(.no-records-found)", that.$body).wrapAll($("<div />").addClass(that.options.templateParentClass));        }    };    BootstrapTable.prototype.initRow = function (item, i, data, parentDom) {        var that = this;        //如果未启用则使用原生的initRow方法        if (!that.options.templateView) {            return _initRow.apply(that, Array.prototype.slice.apply(arguments));        }        var $content = '';        if (typeof that.options.templateFormatter === 'function') {            $content = that.options.templateFormatter.call(that, item, i, data);        } else {            var Template = require('template');            $content = Template(that.options.templateFormatter, {item: item, i: i, data: data});        }        return $content;    };}(jQuery);
 |