/** * 基于bootstraptreetable/bootstrap-table-treegrid修改 * copyright (c) 2019 ruoyi */ !function(e){e.fn.bootstraptreetable=function(a,t){var n=e(this).data("bootstrap.tree.table");if(n=n?n:e(this),"string"==typeof a){return e.fn.bootstraptreetable.methods[a](n,t)}a=e.extend({},e.fn.bootstraptreetable.defaults,a||{}),n.hasselectitem=!1,n.data_list=null,n.data_obj=null,n.hiddencolumns=[],n.lastajaxparams,n.isfixwidth=!1,n.totalrows=0,n.totalpages=0;var i=function(){s(),l(),o(),r(),p(),c(!0),n.data("bootstrap.tree.table",n)},s=function(){var t=e("
"),i=e("
");n.before(t),t.append(i),i.append(n),n.addclass("table"),a.striped&&n.addclass("table-striped"),a.bordered&&n.addclass("table-bordered"),a.hover&&n.addclass("table-hover"),a.condensed&&n.addclass("table-condensed"),n.html("")},l=function(){var t=e("
");a.toolbar&&(e(a.toolbar).addclass("tool-left"),t.append(e(a.toolbar)));var i=e('
');if(t.append(i),n.parent().before(t),a.showsearch){var s=e('');i.append(s),_(s)}if(a.showrefresh){var l=e('');i.append(l),k(l)}if(a.showcolumns){var d=e('
'),o=e('');e.each(a.columns,function(a,t){if("selectitem"!=t.field){var i=null;void 0===t.visible||1==t.visible?i=e('
  • "):(i=e('
  • "),n.hiddencolumns.push(t.field)),o.append(i)}}),d.append(o),i.append(d),j()}else{e.each(a.columns,function(e,a){"selectitem"!=a.field&&void 0!==a.visible&&1!=a.visible&&n.hiddencolumns.push(a.field)})}},d=function(){e.each(n.hiddencolumns,function(e,a){n.find("."+a+"_cls").hide()})},o=function(){var t=e("");e.each(a.columns,function(a,i){var s=null;0==a&&"selectitem"==i.field?(n.hasselectitem=!0,s=e('')):s=e(''),!n.isfixwidth&&i.width&&(n.isfixwidth=i.width.indexof("px")>-1?!0:!1),s.html(i.title),t.append(s)});var i=e('');i.append(t),n.append(i)},r=function(){var t=e('');if(n.append(t),a.height&&t.css("height",a.height),a.pagination){var i=e('
    ');n.append(i)}},p=function(t){if(a.pagination&&((void 0==t||null==t)&&(t={}),t[a.parentcode]=a.rootidvalue),n.data_list={},n.data_obj={},a.pagination){var i={};i.offset=a.pagesize*(a.pagenumber-1),i.limit=a.pagesize;var s={pagesize:i.limit,pagenum:i.offset/i.limit+1};t=e.extend(s,t)}var l=n.find("tbody"),d='
    正在努力地加载数据中,请稍候……
    ';l.html(d),a.url?e.ajax({type:a.type,url:a.url,data:e.extend(t,a.ajaxparams),datatype:"json",success:function(e,t,n){e=n(a,a.responsehandler,[e],e),c(e)},error:function(e,t){var n='
    '+e.responsetext+"
    ";l.html(n)}}):c(a.data)},c=function(t){var i,s=0,l=0;a.pagination?(i=t.rows,l=a.pagenumber,s=~~((t.total-1)/a.pagesize)+1,n.totalpages=s,n.totalrows=t.total):i=t,t=i;var o=n.find("tbody");if(o.html(""),!t||t.length<=0){var r='
    没有找到匹配的记录
    ';return void o.html(r)}m(t);var p=n.data_list._root_;p&&e.each(p,function(e,t){var n="row_id_"+e;w(t,1,n,"row_root",t[a.code])}),e.each(t,function(e,t){if(!t.isshow){var n=y(t,!1,1,"","",a.pagination,t[a.code]);o.append(n)}}),r(),t(),d(),c(),a.pagination&&u(s,l);var c=e(n).parent(".treetable-table"),f=c.outerwidth();if(e.common.ismobile()||769>f){var h="width: "+f+"px;overflow: auto;position: relative;";c.attr("style",h);var b=0;e.each(a.columns,function(e,a){b+=0==e&&"selectitem"==a.field?36:200}),e(n).attr("style","width:"+b+"px")}},u=function(t,i){var s=n.find(".fixed-table-pagination");s.empty();var l=[],d=(a.pagenumber-1)*a.pagesize+1,o=a.pagenumber*a.pagesize;o>n.totalrows&&(o=n.totalrows),l.push('
    '),l.push(''+z(d,o,n.totalrows)+"");var r=!1;if(e.each(a.pagelist,function(e,a){n.totalrows>a&&(r=!0)}),r){var p=[];p.push(''),p.push(''),p.push('"),p.push('"),p.push(""),l.push(i(p.join(""))),l.push("")}if(l.push("
    "),t>1){l.push('")}s.append(l.join(""));var m=s.find(".page-list a"),w=s.find(".page-pre"),y=s.find(".page-next"),_=s.find(".page-number"),k=s.find(".page-first"),j=s.find(".page-last");w.off("click").on("click",e.proxy(h,this)),m.off("click").on("click",e.proxy(f,this)),_.off("click").on("click",e.proxy(b,this)),k.off("click").on("click",e.proxy(v,this)),j.off("click").on("click",e.proxy(g,this)),y.off("click").on("click",e.proxy(x,this))},f=function(t){var i=e(t.currenttarget);i.parent().addclass("active").siblings().removeclass("active");var s=n.find(".fixed-table-pagination");a.pagesize=i.text().touppercase()===n.totalrows?n.totalrows:+i.text(),n.totalrowsn.totalpages?a.pagenumber=1:a.pagenumber++,p()},c=function(t){if(a.height>0){var i=n.find("thead"),s=n.find("tbody"),l=parseint(n.css("border-left-width"))+parseint(n.css("border-right-width"));if(i.css("width",s.children(":first").width()),t){var d=!1;e(window).resize(function(){d||(d=!0,settimeout(function(){n.isfixwidth||s.css("width",n.parent().width()-l),i.css("width",s.children(":first").width()),d=!1},300))})}}},m=function(t){var i=a.rootidvalue?a.rootidvalue:null,s=[],l=!1;e.each(t,function(t,n){-1==e.inarray(n[a.parentcode],s)&&s.push(n[a.parentcode])}),e.each(t,function(t,d){d.isshow=!1,a.pagination&&(void 0==d.istreeleaf||null==d.istreeleaf?d.istreeleaf=!1:d.istreeleaf=!((1==d.istreeleaf?0:1)&&("true"==d.istreeleaf||1==d.istreeleaf?0:1)));var o="0"==d[a.parentcode]||0==d[a.parentcode]||null==d[a.parentcode]||""==d[a.parentcode]||e.inarray(d[a.code],s)>0&&!l;!d[a.parentcode]||(i?d[a.parentcode]==a.rootidvalue:o)?(l=!0,n.data_list._root_||(n.data_list._root_=[]),n.data_obj["id_"+d[a.code]]||n.data_list._root_.push(d)):(n.data_list["_n_"+d[a.parentcode]]||(n.data_list["_n_"+d[a.parentcode]]=[]),n.data_obj["id_"+d[a.code]]||n.data_list["_n_"+d[a.parentcode]].push(d)),n.data_obj["id_"+d[a.code]]=d})},w=function(t,i,s,l,d){var o=n.find("tbody"),r=n.data_list["_n_"+t[a.code]],p=y(t,r?!0:!1,i,s,l,a.pagination,d);o.append(p),r&&e.each(r,function(e,t){var n=s+"_"+e;w(t,i+1,n,s,t[a.code])})},y=function(t,i,s,l,d,o,r){t.isshow=!0,t.row_id=l,t.p_id=d,t.lv=s;var p=e(''),c=a.expandercollapsedclass;return a.expandall?(p.css("display","table"),c=a.expanderexpandedclass):1==s?(p.css("display","table"),c=a.expandfirst?a.expanderexpandedclass:a.expandercollapsedclass):2==s?(a.expandfirst?p.css("display","table"):p.css("display","none"),c=a.expandercollapsedclass):o?t.istreeleaf&&(c=a.expandercollapsedclass):(p.css("display","none"),c=a.expandercollapsedclass),e.each(a.columns,function(l,d){if("selectitem"==d.field){n.hasselectitem=!0;var r=e('');if(d.radio){var u=e('');r.append(u)}if(d.checkbox){var u=e('');r.append(u)}p.append(r)}else{var r=e('');if(d.width&&r.css("width",d.width+(d.widthunit?d.widthunit:"px")),d.align&&r.css("text-align",d.align),a.expandcolumn==l&&r.css("text-align","left"),d.valign&&r.css("vertical-align",d.valign),a.showtitle&&r.addclass("ellipsis"),d.formatter?r.html(d.formatter.call(this,s(t,d.field),t,l)):(a.showtitle&&r.attr("title",t[d.field]),r.text(s(t,d.field))),a.expandcolumn==l){o?t.istreeleaf?r.prepend(''):r.prepend(''):i?r.prepend(''):r.prepend('');for(var f=0;f')}}p.append(r)}}),p},_=function(a){e(a).off("click").on("click",function(){e(".search-collapse").slidetoggle()})},k=function(a){e(a).off("click").on("click",function(){n.refresh()})},j=function(){e(".bootstrap-tree-table .treetable-bars .columns label input").off("click").on("click",function(){var a=e(this);a.prop("checked")?n.showcolumn(e(this).val()):n.hidecolumn(e(this).val())})},t=function(){n.find("tbody").find("tr").unbind(),n.find("tbody").find("tr").click(function(){if(n.hasselectitem){var t=e(this).find("input[name='select_item']");"radio"==t.attr("type")?(t.prop("checked",!0),n.find("tbody").find("tr").removeclass("treetable-selected"),e(this).addclass("treetable-selected")):"checkbox"==t.attr("type")?t.prop("checked")?(t.prop("checked",!0),n.find("tbody").find("tr").removeclass("treetable-selected"),e(this).addclass("treetable-selected")):(t.prop("checked",!1),n.find("tbody").find("tr").removeclass("treetable-selected")):t.prop("checked")?(t.prop("checked",!1),e(this).removeclass("treetable-selected")):(t.prop("checked",!0),e(this).addclass("treetable-selected"));var i=n.data_obj["id_"+e(this).data("id")];n(a,a.onclickrow,[i],i)}})},r=function(){n.find("tbody").find("tr").find(".treetable-expander").unbind(),n.find("tbody").find("tr").find(".treetable-expander").click(function(){var t=e(this).hasclass(a.expanderexpandedclass),i=e(this).hasclass(a.expandercollapsedclass);if(t||i){var s=e(this).parent().parent(),l=s.attr("id"),d=s.attr("data-id"),o=n.find("tbody").find("tr[id^='"+l+"_']");if(a.pagination){var o=n.find("tbody").find("tr[id^='"+l+"_']");if(o&&o.length>0){t?e.each(o,function(a,t){e(t).css("display","none")}):e.each(o,function(t,n){var i=e(n).eq(a.expandcolumn).find(".treetable-expander");i&&i.hasclass(a.expanderexpandedclass)?e(n).css("display","table"):e(n).css("display","table")})}else{if(a.pagination){var r={};r[a.parentcode]=d,a.dataurl&&e.ajax({type:a.type,url:a.dataurl,data:e.extend(r,a.ajaxparams),datatype:"json",success:function(a,t,i){e("#"+l+"_load").remove();var s=a;a=s,n.appenddata(a)},error:function(t,n){var i='
    '+t.responsetext+"
    ";e("#"+l).after(i)}})}}t?(e(this).removeclass(a.expanderexpandedclass),e(this).addclass(a.expandercollapsedclass)):(e(this).removeclass(a.expandercollapsedclass),e(this).addclass(a.expanderexpandedclass))}else{t?(e(this).removeclass(a.expanderexpandedclass),e(this).addclass(a.expandercollapsedclass),o&&o.length>0&&e.each(o,function(a,t){e(t).css("display","none")})):(e(this).removeclass(a.expandercollapsedclass),e(this).addclass(a.expanderexpandedclass),o&&o.length>0&&e.each(o,function(t,n){var i=e("#"+e(n).attr("pid")).children().eq(a.expandcolumn).find(".treetable-expander");i.hasclass(a.expanderexpandedclass)&&e(n).css("display","table")}))}}})};n.refresh=function(e){e&&(n.lastajaxparams=e),p(n.lastajaxparams)},n.appenddata=function(t){e.each(t,function(t,i){a.pagination&&(i.__nodes=!((1==i.nodes?0:1)&&("true"==i.nodes||1==i.nodes?0:1)));var s,l=n.data_obj["id_"+i[a.code]],d=n.data_obj["id_"+i[a.parentcode]],o=n.data_list["_n_"+i[a.parentcode]],r="",p="",c=1;if(l&&l.row_id&&""!=l.row_id&&(r=l.row_id),d){if(p=d.row_id,""==r){var u=0;o&&o.length>0&&(u=o.length),r=d.row_id+"_"+u}c=d.lv+1,s=y(i,!0,c,r,p,a.pagination,i[a.code]);var f=e("#"+d.row_id).children().eq(a.expandcolumn).find(".treetable-expander"),h=f.hasclass(a.expanderexpandedclass),b=f.hasclass(a.expandercollapsedclass);if(h||b?h&&s.css("display","table"):f.addclass(a.expandercollapsedclass),l){e("#"+l.row_id).before(s),e("#"+l.row_id).remove()}else{var v=d.row_id.split("_");d.row_id.substring(0,d.row_id.length-(v[v.length-1]+"").length)+(parseint(v[v.length-1])+1);e("#"+d.row_id).after(s)}}else{if(s=y(i,!1,c,r,p,a.pagination,i[a.code]),l){e("#"+l.row_id).before(s),e("#"+l.row_id).remove()}else{var g=n.find("tbody");g.append(s)}}i.isshow=!0,m([i])}),r(),t(),d()},n.togglerow=function(a){var t=n.data_obj["id_"+a],i=e("#"+t.row_id).find(".treetable-expander");i.trigger("click")},n.expandrow=function(a){var t=n.data_obj["id_"+a],i=e("#"+t.row_id).find(".treetable-expander"),s=i.hasclass(n.options.expandercollapsedclass);s&&i.trigger("click")},n.collapserow=function(a){var t=n.data_obj["id_"+a],i=e("#"+t.row_id).find(".treetable-expander"),s=i.hasclass(n.options.expanderexpandedclass);s&&i.trigger("click")},n.expandall=function(){n.find("tbody").find("tr").find(".treetable-expander").each(function(t,n){var i=e(n).hasclass(a.expandercollapsedclass);i&&e(n).trigger("click")})},n.collapseall=function(){n.find("tbody").find("tr").find(".treetable-expander").each(function(t,n){var i=e(n).hasclass(a.expanderexpandedclass);i&&e(n).trigger("click")})},n.showcolumn=function(t,i){var s=e.inarray(t,n.hiddencolumns);if(s>-1&&n.hiddencolumns.splice(s,1),n.find("."+t+"_cls").show(),i&&a.showcolumns){var l=e(".bootstrap-tree-table .treetable-bars .columns label").find("input[value='"+t+"']");l.prop("checked","checked")}},n.hidecolumn=function(t,i){if(n.hiddencolumns.push(t),n.find("."+t+"_cls").hide(),i&&a.showcolumns){var s=e(".bootstrap-tree-table .treetable-bars .columns label").find("input[value='"+t+"']");s.prop("checked","")}};var s=function(e,a){var t=e;if("string"!=typeof a||e.hasownproperty(a)){return e[a]}var n=a.split(".");for(var i in n){t=t&&t[n[i]]}return t},n=function(a,t,n,i){var s=t;if("string"==typeof t){var l=t.split(".");l.length>1?(s=window,e.each(l,function(e,a){s=s[a]})):s=window[t]}return"object"==typeof s?s:"function"==typeof s?s.apply(a,n):!s&&"string"==typeof t&&sprintf.apply(this,[t].concat(n))?sprintf.apply(this,[t].concat(n)):i},i=function(e){return"每页显示 "+e+" 条记录"},z=function(e,a,t){return"显示第 "+e+" 到第 "+a+" 条记录,总共 "+t+" 条记录。"};return i(),n},e.fn.bootstraptreetable.methods={getselections:function(a,t){var n=a.find("tbody").find("tr").find("input[name='select_item']:checked"),i=[];if("radio"==n.attr("type")){var s=a.data_obj["id_"+n.val()];i.push(s)}else{n.each(function(t,n){var s=a.data_obj["id_"+e(n).val()];i.push(s)})}return i},refresh:function(e,a){a?e.refresh(a):e.refresh()},appenddata:function(e,a){a&&e.appenddata(a)},togglerow:function(e,a){e.togglerow(a)},expandrow:function(e,a){e.expandrow(a)},collapserow:function(e,a){e.collapserow(a)},expandall:function(e){e.expandall()},collapseall:function(e){e.collapseall()},showcolumn:function(e,a){e.showcolumn(a,!0)},hidecolumn:function(e,a){e.hidecolumn(a,!0)}},e.fn.bootstraptreetable.defaults={code:"code",parentcode:"parentcode",rootidvalue:0,data:null,type:"get",url:null,ajaxparams:{},expandcolumn:1,expandall:!1,expandfirst:!0,striped:!1,bordered:!1,hover:!0,condensed:!1,columns:[],toolbar:null,height:0,pagination:!1,dataurl:null,pagenumber:1,pagesize:10,onclickrow:null,pagelist:[10,25,50],showtitle:!0,showsearch:!0,showcolumns:!0,showrefresh:!0,paginationpretext:"‹",paginationnexttext:"›",expanderexpandedclass:"glyphicon glyphicon-chevron-down",expandercollapsedclass:"glyphicon glyphicon-chevron-right",responsehandler:function(e){return !1},onloadsuccess:function(e){return !1}}}(jquery);