/** 表格扩展模块 date:2020-02-29 License By http://easyweb.vip */ layui.define(["layer","table","laytpl","contextMenu"],function(f){var g=layui.jquery;var i=layui.layer;var q=layui.table;var n=layui.laytpl;var e=layui.contextMenu;var c=layui.device();var h="tb-search";var p="tb-refresh";var b="tb-export";var m="txField_";var a={};a.merges=function(w,y,s,v){if(typeof s==="boolean"){v=s;s=undefined}var r=g('[lay-filter="'+w+'"]+.layui-table-view>.layui-table-box>.layui-table-body>table');var t=r.find(">tbody>tr");for(var u=0;u0){var H,A=1;if(G){H=D[0][G]}else{H=t.eq(0).find("td").eq(F).find(".layui-table-cell").html()}for(var E=1;E';for(var w in x){s+=('")}s+="";g("#exportFrame").remove();g("body").append('');var A=document.getElementById("exportFrame");var y=A.contentWindow;var u=y.document;y.focus();u.open();u.write(s);u.close();u.getElementById("eFrom").submit()}};a.render=function(t){var r=g(t.elem).attr("lay-filter");t.autoSort=false;var s=q.render(t);q.on("sort("+r+")",function(w){var u=w.field,x=w.type;var v=g.extend(t.where,{sort:u,order:x});s.reload({where:v,page:{curr:1}})});return s};a.renderFront=function(w){var v,t=g(w.elem).attr("lay-filter");w.autoSort=false;for(var s=0;s.layui-table-box").append('
');a.loadUrl(x,function(z){v.reload({url:"",data:z,page:{curr:1}});a.putTbData(t,a.parseTbData(x.cols,z));g("input["+h+'="'+t+'"]').val("");window.tbX.cacheSearch[t]=undefined})};v.reloadUrl()}else{v=q.render(w);v.reloadData=function(x){v.reload(x);a.parseTbData(w.cols,x.data);a.putTbData(t,x.data);g("input["+h+'="'+t+'"]').val("");window.tbX.cacheSearch[t]=undefined};a.putTbData(t,a.parseTbData(w.cols,w.data))}a.renderAllTool(v);return v};a.loadUrl=function(t,u){t.response=g.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},t.response);var r=t.response;var s=t.where;if(t.contentType&&t.contentType.indexOf("application/json")===0){s=JSON.stringify(s)}g.ajax({type:t.method||"get",url:t.url,contentType:t.contentType,data:s,dataType:"json",headers:t.headers||{},success:function(v){if(typeof t.parseData==="function"){v=t.parseData(v)||v}if(v[r.statusName]!=r.statusCode){var w=v[r.msgName]||("返回的数据不符合规范,正确的成功状态码 ("+r.statusName+") 应为:"+r.statusCode);i.msg(w,{icon:2})}else{u(v[r.dataName])}},error:function(w,v){i.msg("数据接口请求异常:"+v,{icon:2})}})};a.parseTbData=function(x,u,s){var w=[];q.eachCols(undefined,function(A,B){if(B.templet){var z={field:((B.field&&(s||B.field.indexOf(m)===0))?B.field:("txField_"+A))};if(typeof B.templet==="string"){z.templet=function(D){var C=undefined;n(g(B.templet).html()).render(D,function(E){C=E});return C}}else{z.templet=B.templet}w.push(z)}},x);for(var t=0;t";v[w[r].field]=g(y).not(".export-hide").text().replace(/(^\s*)|(\s*$)/g,"")}}return u};a.putTbData=function(s,r){window.tbX.cache[s]=r};a.getTbData=function(s){var r=window.tbX.cache[s];return a.deepClone(r||q.cache[s])};a.filterData=function(z,s,r){var t=[],x;for(var w=0;w=0){return true}return false};a.renderAllTool=function(r){o(r);l(r);j(r);k(r)};a.deepClone=function(u){var r;var s=a.isClass(u);if(s==="Object"){r={}}else{if(s==="Array"){r=[]}else{return u}}for(var t in u){if(!u.hasOwnProperty(t)){continue}var v=u[t];if(a.isClass(v)==="Object"){r[t]=arguments.callee(v)}else{if(a.isClass(v)==="Array"){r[t]=arguments.callee(v)}else{r[t]=u[t]}}}return r};a.isClass=function(r){if(r===null){return"Null"}if(r===undefined){return"Undefined"}return Object.prototype.toString.call(r).slice(8,-1)};window.tbX||(window.tbX={});window.tbX.cache||(window.tbX.cache={});window.tbX.cacheSearch||(window.tbX.cacheSearch={});var j=function(s){var r=s.config.id,t=g("input["+h+'="'+r+'"]');if(!(t&&t.length>0)){return}if(!t.attr("placeholder")){t.attr("placeholder","输入关键字按回车键搜索")}t.off("keydown").on("keydown",function(x){if(x.keyCode!==13){return}var u=t.attr("name");var y=t.val().replace(/(^\s*)|(\s*$)/g,"");var v=i.msg("搜索中..",{icon:16,shade:0.01,time:0});var w=a.getTbData(r);var z=a.filterData(w,u,y);window.tbX.cacheSearch[r]=z;s.reload({url:"",data:z,page:{curr:1}});i.close(v)})};var l=function(s){var r=s.config.id;q.on("sort("+r+")",function(w){var t=w.field,x=w.type;var u=i.msg("加载中..",{icon:16,shade:0.01,time:0});var v=window.tbX.cacheSearch[r];v||(v=a.getTbData(r));if(x){v=v.sort(function(B,z){var A=B[t],y=z[t];if(x==="asc"){return(A===y)?0:((A0){return}if(t!==void 0){t.preventDefault();t.stopPropagation()}var u='
';u+='
导出选中数据
';u+='
导出当前页数据
';u+='
导出全部数据
';u+="
";g(this).append(u);g(this).addClass("tbx-dropdown-btn");g(this).parent().css("position","relative");g(this).parent().css("z-index","9998");g(".tbx-dropdown-menu").off("click").on("click",".tbx-dropdown-menu-item",function(x){var w=g(this).data("type");if(w==="check"){var v=q.checkStatus(r);if(v.data.length===0){i.msg("请选择要导出的数据",{icon:2})}else{g(".tbx-dropdown-menu").remove();a.exportData({fileName:s.config.title,cols:s.config.cols,data:v.data})}}else{if(w==="current"){a.exportData({fileName:s.config.title,cols:s.config.cols,data:q.cache[r]})}else{if(w==="all"){a.exportData({fileName:s.config.title,cols:s.config.cols,data:a.getTbData(r)})}}}if(x!==void 0){x.preventDefault();x.stopPropagation()}})});g(document).off("click.tbxDropHide").on("click.tbxDropHide",function(){g(".tbx-dropdown-menu").remove()})};var d=function(){var r=".tbx-dropdown-btn {";r+=" position: relative;";r+=" }";r+=" .tbx-dropdown-btn:hover {";r+=" opacity: 1";r+=" }";r+=" .tbx-dropdown-menu {";r+=" position: absolute;";r+=" top: 100%;";r+=" right: 0;";r+=" padding: 5px 0;";r+=" margin: 5px 0 0 0;";r+=" overflow: visible;";r+=" min-width: 110px;";r+=" background: #fff;";r+=" border-radius: 2px;";r+=" box-shadow: 0 2px 4px rgba(0, 0, 0, .12);";r+=" border: 1px solid #d2d2d2;";r+=" z-index: 9998;";r+=" cursor: default;";r+=" }";r+=" .tbx-dropdown-menu .tbx-dropdown-menu-item {";r+=" display: block;";r+=" color: #555;";r+=" font-size: 14px;";r+=" padding: 10px 15px;";r+=" text-decoration: none;";r+=" white-space: nowrap;";r+=" cursor: pointer;";r+=" user-select: none;";r+=" line-height: normal;";r+=" }";r+=" .tbx-dropdown-menu .tbx-dropdown-menu-item:hover {";r+=" background-color: #eeeeee;";r+=" }";r+=" .export-show {";r+=" display: none;";r+=" }";return r};g("head").append('");f("tableX",a)});