1 line
34 KiB
JavaScript
1 line
34 KiB
JavaScript
"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol==="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function _defineProperty(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}(function(e,t,n){if((typeof exports==="undefined"?"undefined":_typeof(exports))==="object"){module.exports=n()}else if(typeof define==="function"&&define.amd){define(n)}else if(t.layui&&e.define){e.define(["jquery"],function(e){e("formSelects",n())})}else{t.formSelects=n()}})(typeof layui=="undefined"?null:layui,window,function(){var t="4.0.0.0910",v="xm-select",m="xm-select-parent",y="xm-select-input",g="xm-select--suffix",w="xm-select-this",x="xm-select-label",k="xm-select-search",b="xm-select-search-type",C="xm-select-show-count",S="xm-select-create",d="xm-select-create-long",T="xm-select-max",L="xm-select-skin",j="xm-select-direction",A="xm-select-height",E="xm-dis-disabled",N="xm-select-dis",p="xm-select-temp",D="xm-select-radio",H="xm-select-linkage",F="xm-select-dl",h="xm-select-hide",_="xm-hide-input",O="xm-select-sj",e="xm-icon-close",I="xm-select-title",P="xm-form-select",f="xm-form-selected",V="xm-select-none",U="xm-select-empty",M="xm-input",W="xm-dl-input",J="xm-select-tips",s="xm-iconfont",B="XM_PID_VALUE",R="xm-cz",l="xm-cz-group",n="请选择",q={},z={on:{},endOn:{},filter:{},maxTips:{},opened:{},closed:{}},X={type:"get",header:{},first:true,data:{},searchUrl:"",searchName:"keyword",searchVal:null,keyName:"name",keyVal:"value",keySel:"selected",keyDis:"disabled",keyChildren:"children",dataType:"",delay:500,beforeSuccess:null,success:null,error:null,beforeSearch:null,response:{statusCode:0,statusName:"code",msgName:"msg",dataName:"data"},tree:{nextClick:function e(t,n,i){i([])},folderChoose:true,lazy:true}},i=[{icon:"xm-iconfont icon-quanxuan",name:"全选",click:function e(t,n){n.selectAll(t,true,true)}},{icon:"xm-iconfont icon-qingkong",name:"清空",click:function e(t,n){n.removeAll(t,true,true)}},{icon:"xm-iconfont icon-fanxuan",name:"反选",click:function e(t,n){n.reverse(t,true,true)}},{icon:"xm-iconfont icon-pifu",name:"换肤",click:function e(t,n){n.skin(t)}}],Q=window.$||window.layui&&window.layui.jquery,c=Q(window),Y={},a={},r={},$=function e(t){var l=this;this.config={name:null,max:null,maxTips:function e(t,n,i,a){var r=Q('[xid="'+l.config.name+'"]').prev().find("."+v);if(r.parents(".layui-form-item[pane]").length){r=r.parents(".layui-form-item[pane]")}r.attr("style","border-color: red !important");setTimeout(function(){r.removeAttr("style")},300)},init:null,on:null,opened:null,closed:null,filter:function e(t,n,i,a){return i.name.indexOf(n)==-1},clearid:-1,direction:"auto",height:null,isEmpty:false,btns:[i[0],i[1],i[2]],searchType:0,create:function e(t,n){return Date.now()},template:function e(t,n){return n.name},showCount:0,isCreate:false,placeholder:n,clearInput:false};this.select=null;this.values=[];Q.extend(this.config,t,{searchUrl:t.isSearch?t.searchUrl:null,placeholder:t.optionsFirst?t.optionsFirst.value?n:t.optionsFirst.innerHTML||n:n,btns:t.radio?[i[1]]:[i[0],i[1],i[2]]},r[t.name]||a);if(isNaN(this.config.showCount)||this.config.showCount<=0){this.config.showCount=19921012}};var o=function e(){this.appender();this.on();this.onreset()};o.prototype.appender=function(){if(!Array.prototype.map){Array.prototype.map=function(e,t){var n,i,a,r=Object(this),l=r.length>>>0;if(t){n=t}i=new Array(l);a=0;while(a<l){var o,s;if(a in r){o=r[a];s=e.call(n,o,a,r);i[a]=s}a++}return i}}if(!Array.prototype.forEach){Array.prototype.forEach=function e(t,n){var i,a;if(this==null){throw new TypeError("this is null or not defined")}var r=Object(this);var l=r.length>>>0;if(typeof t!=="function"){throw new TypeError(t+" is not a function")}if(arguments.length>1){i=n}a=0;while(a<l){var o;if(a in r){o=r[a];t.call(i,o,a,r)}a++}}}if(!Array.prototype.filter){Array.prototype.filter=function(e){if(this===void 0||this===null){throw new TypeError}var t=Object(this);var n=t.length>>>0;if(typeof e!=="function"){throw new TypeError}var i=[];var a=arguments[1];for(var r=0;r<n;r++){if(r in t){var l=t[r];if(e.call(a,l,r,t)){i.push(l)}}}return i}}};o.prototype.init=function(e){var h=this;Q(e?e:"select["+v+"]").each(function(e,t){var n=Q(t),i=n.attr(v),a=n.next(".layui-form-select"),r=n.next("."+m),l={name:i,disabled:t.disabled,max:n.attr(T)-0,isSearch:n.attr(k)!=undefined,searchUrl:n.attr(k),isCreate:n.attr(S)!=undefined,radio:n.attr(D)!=undefined,skin:n.attr(L),direction:n.attr(j),optionsFirst:t.options[0],height:n.attr(A),formname:n.attr("name")||n.attr("_name"),layverify:n.attr("lay-verify")||n.attr("_lay-verify"),layverType:n.attr("lay-verType"),searchType:n.attr(b)=="dl"?1:0,showCount:n.attr(C)-0},o=n.find("option[selected]").toArray().map(function(e){return{name:e.innerHTML,value:e.value}}),s=new $(l);s.values=o;if(s.config.init){s.values=s.config.init.map(function(e){if((typeof e==="undefined"?"undefined":_typeof(e))=="object"){return e}return{name:n.find('option[value="'+e+'"]').text(),value:e}}).filter(function(e){return e.name});s.config.init=s.values.concat([])}else{s.config.init=o.concat([])}!s.values&&(s.values=[]);q[i]=s;a[0]&&a.remove();r[0]&&r.remove();var d=h.renderSelect(i,s.config.placeholder,t);var c=!s.config.height||s.config.height=="auto"?"":'xm-hg style="height: 34px;"';var f=['<div class="'+x+'">','<input type="text" fsw class="'+M+" "+y+'" '+(s.config.isSearch?"":'style="display: none;"')+' autocomplete="off" debounce="0" />',"</div>"];var u=Q('<div class="'+P+'" '+L+'="'+s.config.skin+'">\n\t\t\t\t\t<input class="'+_+'" value="" name="'+s.config.formname+'" lay-verify="'+s.config.layverify+'" lay-verType="'+s.config.layverType+'" type="text" style="position: absolute;bottom: 0; z-index: -1;width: 100%; height: 100%; border: none; opacity: 0;"/>\n\t\t\t\t\t<div class="'+I+" "+(s.config.disabled?N:"")+'">\n\t\t\t\t\t\t<div class="'+M+" "+v+'" '+c+">\n\t\t\t\t\t\t\t"+f.join("")+'\n\t\t\t\t\t\t\t<i class="'+O+'"></i>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="'+g+'">\n\t\t\t\t\t\t\t<input type="text" autocomplete="off" placeholder="'+s.config.placeholder+'" readonly="readonly" unselectable="on" class="'+M+'">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<dl xid="'+i+'" class="'+F+" "+(s.config.radio?D:"")+'">'+d+"</dl>\n\t\t\t\t</div>");var p=Q('<div class="'+m+'" FS_ID="'+i+'"></div>');p.append(u);n.after(p);n.attr("lay-ignore","");n.removeAttr("name")&&n.attr("_name",s.config.formname);n.removeAttr("lay-verify")&&n.attr("_lay-verify",s.config.layverify);if(s.config.isSearch){Y[i]=Q.extend({},X,{searchUrl:s.config.searchUrl},Y[i]);Q(document).on("input","div."+m+'[FS_ID="'+i+'"] .'+y,function(e){h.search(i,e,s.config.searchUrl)});if(s.config.searchUrl){h.triggerSearch(u,true)}}else{u.find("dl dd."+W).css("display","none")}})};o.prototype.search=function(a,e,t,n){var r=this;var i=void 0;if(n){i=n}else{i=e.target;var l=e.keyCode;if(l===9||l===13||l===37||l===38||l===39||l===40){return false}}var o=Q.trim(i.value);this.changePlaceHolder(Q(i));var s=Y[a]?Y[a]:X;t=s.searchUrl||t;var d=q[a],c=d.config.isCreate,f=Q('dl[xid="'+a+'"]').parents("."+P);if(t){if(s.searchVal){o=s.searchVal;s.searchVal=""}if(!s.beforeSearch||s.beforeSearch&&s.beforeSearch instanceof Function&&s.beforeSearch(a,t,o)){var u=s.delay;if(s.first){s.first=false;u=10}clearTimeout(d.clearid);d.clearid=setTimeout(function(){f.find("dl > *:not(."+J+")").remove();f.find("dd."+V).addClass(U).text("请求中");r.ajax(a,t,o,false,null,true)},u)}}else{f.find("dl ."+h).removeClass(h);f.find("dl dd:not(."+J+")").each(function(e,t){var n=Q(t);var i=z.filter[a]||q[a].config.filter;if(i&&i(a,o,r.getItem(a,n),n.hasClass(E))==true){n.addClass(h)}});f.find("dl dt").each(function(e,t){if(!Q(t).nextUntil("dt",":not(."+h+")").length){Q(t).addClass(h)}});this.create(a,c,o);var p=f.find("dl dd:not(."+J+"):not(."+h+")");if(!p.length){f.find("dd."+V).addClass(U).text("无匹配项")}else{f.find("dd."+V).removeClass(U)}}};o.prototype.isArray=function(e){return Object.prototype.toString.call(e)=="[object Array]"};o.prototype.triggerSearch=function(e,i){var a=this;(e?[e]:Q("."+P).toArray()).forEach(function(e,t){e=Q(e);var n=e.find("dl").attr("xid");if(n&&q[n]&&q[n].config.isEmpty||i){a.search(n,null,null,q[n].config.searchType==0?e.find("."+x+" ."+y):e.find("dl ."+W+" ."+y))}})};o.prototype.clearInput=function(e){var t=Q("."+m+'[fs_id="'+e+'"]');var n=q[e].config.searchType==0?t.find("."+x+" ."+y):t.find("dl ."+W+" ."+y);n.val("")};o.prototype.ajax=function(i,a,r,l,o,s,d,c){var f=this;var u=Q("."+m+' dl[xid="'+i+'"]').parents("."+P);if(!u[0]||!a){return}var p=Y[i]?Y[i]:X;var e=Q.extend(true,{},p.data);e[p.searchName]=r;Q.ajax({type:p.type,headers:p.header,url:a,data:p.dataType=="json"?JSON.stringify(e):e,success:function e(t){if(typeof t=="string"){t=JSON.parse(t)}p.beforeSuccess&&p.beforeSuccess instanceof Function&&(t=p.beforeSuccess(i,a,r,t));if(f.isArray(t)){var n={};n[p.response.statusName]=p.response.statusCode;n[p.response.msgName]="";n[p.response.dataName]=t;t=n}if(t[p.response.statusName]!=p.response.statusCode){u.find("dd."+V).addClass(U).text(t[p.response.msgName])}else{u.find("dd."+V).removeClass(U);f.renderData(i,t[p.response.dataName],l,o,s,c);q[i].config.isEmpty=t[p.response.dataName].length==0}d&&d(i);p.success&&p.success instanceof Function&&p.success(i,a,r,t)},error:function e(t){u.find("dd[lay-value]:not(."+J+")").remove();u.find("dd."+V).addClass(U).text("服务异常");p.error&&p.error instanceof Function&&p.error(i,a,r,t)}})};o.prototype.renderData=function(n,e,t,i,a,r){var l=this;if(t){this.renderLinkage(n,e,i);return}if(r){this.renderReplace(n,e);return}var o=Q("."+m+' dl[xid="'+n+'"]').parents("."+P);var s=Y[n]?Y[n]:X;var d=o.find("."+g+" input");e=this.exchangeData(n,e);var c=[];o.find("dl").html(this.renderSelect(n,d.attr("placeholder")||d.attr("back"),e.map(function(e){var t=Q.extend({},e,{innerHTML:e[s.keyName],value:e[s.keyVal],sel:e[s.keySel],disabled:e[s.keyDis],type:e.type,name:e[s.keyName]});if(t.sel){c.push(t)}return t})));var f=o.find("."+x);var u=o.find("dl[xid]");if(a){var p=q[n].values;p.forEach(function(e,t){u.find('dd[lay-value="'+e.value+'"]').addClass(w)});c.forEach(function(e,t){if(l.indexOf(p,e)==-1){l.addLabel(n,f,e);u.find('dd[lay-value="'+e.value+'"]').addClass(w);p.push(e)}})}else{c.forEach(function(e,t){l.addLabel(n,f,e);u.find('dd[lay-value="'+e.value+'"]').addClass(w)});q[n].values=c}this.commonHandler(n,f)};o.prototype.renderLinkage=function(l,e,n){var i=[],a=0,o={0:e},s=Y[l]?Y[l]:X;G[l]={};var t=function e(){var r=i[a++]=[],t=o;o={};Q.each(t,function(a,e){Q.each(e,function(e,t){var n={pid:a,name:t[s.keyName],value:t[s.keyVal]};G[l][n.value]=Q.extend(t,n);r.push(n);var i=t[s.keyChildren];if(i&&i.length){o[n.value]=i}})})};do{t()}while(Object.getOwnPropertyNames(o).length);var r=Q("."+m+' dl[xid="'+l+'"]').parents("."+P);var d=['<div class="xm-select-linkage">'];Q.each(i,function(e,t){var i=['<div style="left: '+(n-0)*e+'px;" class="xm-select-linkage-group xm-select-linkage-group'+(e+1)+" "+(e!=0?"xm-select-linkage-hide":"")+'">'];Q.each(t,function(e,t){var n='<li title="'+t.name+'" pid="'+t.pid+'" xm-value="'+t.value+'"><span>'+t.name+"</span></li>";i.push(n)});i.push("</div>");d=d.concat(i)});d.push('<div style="clear: both; height: 288px;"></div>');d.push("</div>");r.find("dl").html(d.join(""));r.find("."+y).css("display","none")};o.prototype.renderReplace=function(n,e){var i=this;var t=Q("."+m+' dl[xid="'+n+'"]');var a=Y[n]?Y[n]:X;e=this.exchangeData(n,e);G[n]=e;var r=e.map(function(e){var t=Q.extend({},e,{innerHTML:e[a.keyName],value:e[a.keyVal],sel:e[a.keySel],disabled:e[a.keyDis],type:e.type,name:e[a.keyName]});return i.createDD(n,t)}).join("");t.find("dd:not(."+J+"),dt:not([style])").remove();t.find("dt[style]").after(Q(r))};o.prototype.exchangeData=function(e,t){var n=Y[e]?Y[e]:X;var i=n["keyChildren"];var a=n["keyDis"];G[e]={};var r=this.getChildrenList(t,i,a,[],false);return r};o.prototype.getChildrenList=function(e,t,n,i,a){var r=[],l=0;for(var o=0;o<e.length;o++){var s=e[o];if(s.type&&s.type=="optgroup"){r.push(s);continue}else{l++}var d=i.concat([]);d.push(l-1+"_E");s[B]=JSON.stringify(d);s[n]=s[n]||a;r.push(s);var c=s[t];if(c&&K.isArray(c)&&c.length){s["XM_TREE_FOLDER"]=true;var f=d.concat([]);var u=this.getChildrenList(c,t,n,f,s[n]);r=r.concat(u)}}return r};o.prototype.create=function(e,t,n){if(t&&n){var i=q[e],a=Q('[xid="'+e+'"]'),r=a.find("dd."+J+"."+W),l=null,o=a.find("dd."+p);a.find("dd:not(."+J+"):not(."+p+")").each(function(e,t){if(n==Q(t).find("span").attr("name")){l=t}});if(!l){var s=i.config.create(e,n);if(o[0]){o.attr("lay-value",s);o.find("span").text(n);o.find("span").attr("name",n);o.removeClass(h)}else{r.after(Q(this.createDD(e,{name:n,innerHTML:n,value:s},p+" "+d)))}}}else{Q("[xid="+e+"] dd."+p).remove()}};o.prototype.createDD=function(e,t,n){var i=Y[e]?Y[e]:X;var a=Q.trim(t.innerHTML);G[e][t.value]=Q(t).is("option")?t=function(){var e={};e[i.keyName]=a;e[i.keyVal]=t.value;e[i.keyDis]=t.disabled;return e}():t;var r=q[e].config.template(e,t);var l=t[B];l?l=JSON.parse(l):l=[-1];var o=l[0]==-1?"":'tree-id="'+l.join("-")+'" tree-folder="'+!!t["XM_TREE_FOLDER"]+'"';return'<dd lay-value="'+t.value+'" class="'+(t.disabled?E:"")+" "+(n?n:"")+'" '+o+'>\n\t\t\t\t\t<div class="xm-unselect xm-form-checkbox '+(t.disabled?E:"")+'" style="margin-left: '+(l.length-1)*30+'px">\n\t\t\t\t\t\t<i class="'+s+'"></i>\n\t\t\t\t\t\t<span name="'+a+'">'+r+"</span>\n\t\t\t\t\t</div>\n\t\t\t\t</dd>"};o.prototype.createQuickBtn=function(e,t){return'<div class="'+R+'" method="'+e.name+'" title="'+e.name+'" '+(t?'style="margin-right: '+t+'"':"")+'><i class="'+e.icon+'"></i><span>'+e.name+"</span></div>"};o.prototype.renderBtns=function(e,t,n){var i=this;var a=[];var r=Q('dl[xid="'+e+'"]');a.push('<div class="'+l+'" show="'+t+'" style="max-width: '+(r.prev().width()-54)+'px;">');Q.each(q[e].config.btns,function(e,t){a.push(i.createQuickBtn(t,n))});a.push("</div>");a.push(this.createQuickBtn({icon:"xm-iconfont icon-caidan",name:""}));return a.join("")};o.prototype.renderSelect=function(n,e,t){var i=this;G[n]={};var a=[];if(q[n].config.btns.length){setTimeout(function(){var e=Q('dl[xid="'+n+'"]');e.parents("."+P).attr(b,q[n].config.searchType);e.find("."+l).css("max-width",e.prev().width()-54+"px")},10);a.push(['<dd lay-value="" class="'+J+'" style="background-color: #FFF!important;">',this.renderBtns(n,null,"30px"),"</dd>",'<dd lay-value="" class="'+J+" "+W+'" style="background-color: #FFF!important;">','<i class="xm-iconfont icon-sousuo"></i>','<input type="text" class="'+M+" "+y+'" placeholder="请搜索"/>',"</dd>"].join(""))}else{a.push('<dd lay-value="" class="'+J+'">'+e+"</dd>")}if(this.isArray(t)){Q(t).each(function(e,t){if(t){if(t.type&&t.type==="optgroup"){a.push("<dt>"+t.name+"</dt>")}else{a.push(i.createDD(n,t))}}})}else{Q(t).find("*").each(function(e,t){if(t.tagName.toLowerCase()=="option"&&e==0&&!t.value){return}if(t.tagName.toLowerCase()==="optgroup"){a.push("<dt>"+t.label+"</dt>")}else{a.push(i.createDD(n,t))}})}a.push('<dt style="display:none;"> </dt>');a.push('<dd class="'+J+" "+V+" "+(a.length===2?U:"")+'">没有选项</dd>');return a.join("")};o.prototype.on=function(){var n=this;this.one();Q(document).on("click",function(e){if(!Q(e.target).parents("."+I)[0]){Q("."+m+" dl ."+h).removeClass(h);Q("."+m+" dl dd."+U).removeClass(U);Q("."+m+" dl dd."+p).remove();Q.each(q,function(e,t){n.clearInput(e);if(!t.values.length){n.changePlaceHolder(Q('div[FS_ID="'+e+'"] .'+x))}})}Q("."+m+" ."+f).each(function(e,t){n.changeShow(Q(t).find("."+I),false)})})};o.prototype.calcLabelLeft=function(e,t,n){var i=this.getPosition(e[0]);i.y=i.x+e[0].clientWidth;var a=e[0].offsetLeft;if(!e.find("span").length){a=0}else if(n){var r=e.find("span:last");r.css("display")=="none"?r=r.prev()[0]:r=r[0];var l=this.getPosition(r);l.y=l.x+r.clientWidth;if(l.y>i.y){a=a-(l.y-i.y)-5}else{a=0}}else{if(t<0){var o=e.find(":last");o.css("display")=="none"?o=o.prev()[0]:o=o[0];var s=this.getPosition(o);s.y=s.x+o.clientWidth;if(s.y>i.y){a-=10}}else{if(a<0){a+=10}if(a>0){a=0}}}e.css("left",a+"px")};o.prototype.one=function(e){var C=this;Q(e?e:document).off("click","."+I).on("click","."+I,function(e){var t=Q(e.target),n=t.is(I)?t:t.parents("."+I),i=n.next(),a=i.attr("xid");Q("dl[xid]").not(i).each(function(e,t){C.clearInput(Q(t).attr("xid"))});Q("dl[xid]").not(i).find("dd."+h).removeClass(h);if(n.hasClass(N)){return false}if(t.is("."+O)||t.is("."+y+"[readonly]")){C.changeShow(n,!n.parents("."+P).hasClass(f));return false}if(n.find("."+y+":not(readonly)")[0]){var r=n.find("."+y),l={x:e.pageX,y:e.pageY},o=C.getPosition(n[0]),s=n.width();while(l.x>o.x){if(Q(document.elementFromPoint(l.x,l.y)).is(r)){r.focus();C.changeShow(n,true);return false}l.x-=50}}if(t.is("."+y)){C.changeShow(n,true);return false}if(t.is('i[fsw="'+v+'"]')){var d=C.getItem(a,t),c=i.find("dd[lay-value='"+d.value+"']");if(c.hasClass(E)){return false}C.handlerLabel(a,c,false,d);return false}C.changeShow(n,!n.parents("."+P).hasClass(f));return false});Q(e?e:document).off("click","dl."+F).on("click","dl."+F,function(e){var t=Q(e.target);if(t.is("."+H)||t.parents("."+H)[0]){t=t.is("li")?t:t.parents("li[xm-value]");var n=t.parents(".xm-select-linkage-group"),i=t.parents("dl").attr("xid");if(!i){return false}n.find(".xm-select-active").removeClass("xm-select-active");t.addClass("xm-select-active");n.nextAll(".xm-select-linkage-group").addClass("xm-select-linkage-hide");var a=n.next(".xm-select-linkage-group");a.find("li").addClass("xm-select-linkage-hide");a.find('li[pid="'+t.attr("xm-value")+'"]').removeClass("xm-select-linkage-hide");if(!a[0]||a.find("li:not(.xm-select-linkage-hide)").length==0){var r=[],l=0,o=!t.hasClass("xm-select-this");if(q[i].config.radio){t.parents(".xm-select-linkage").find(".xm-select-this").removeClass("xm-select-this")}do{r[l++]={name:t.find("span").text(),value:t.attr("xm-value")};t=t.parents(".xm-select-linkage-group").prev().find('li[xm-value="'+t.attr("pid")+'"]')}while(t.length);r.reverse();var s={name:r.map(function(e){return e.name}).join("/"),value:r.map(function(e){return e.value}).join("/")};C.handlerLabel(i,null,o,s)}else{a.removeClass("xm-select-linkage-hide")}return false}if(t.is("dl")){return false}if(t.is("dt")){t.nextUntil("dt").each(function(e,t){t=Q(t);if(t.hasClass(E)||t.hasClass(w)){}else{t.find("i:not(.icon-expand)").click()}});return false}var d=t.is("dd")?t:t.parents("dd");var c=d.parent("dl").attr("xid");if(d.hasClass(E)){return false}if(t.is("i.icon-caidan")){var f=[],u=[];t.parents("dl").find('dd[tree-folder="true"]').each(function(e,t){Q(t).attr("xm-tree-hidn")==undefined?f.push(t):u.push(t)});var p=u.length?u:f;p.forEach(function(e){return e.click()});return false}var h=d.attr("tree-id");if(h){if(t.is("i:not(.icon-expand)")){C.handlerLabel(c,d,!d.hasClass(w));return false}var v=Y[c]||X;var m=v.tree;var y=d.nextAll('dd[tree-id^="'+h+'"]');if(y&&y.length){var g=y[0].clientHeight;g?(C.addTreeHeight(d,g),g=0):(g=d.attr("xm-tree-hidn")||36,d.removeAttr("xm-tree-hidn"),d.find(">i").remove(),y=y.filter(function(e,t){return Q(t).attr("tree-id").split("-").length-1==h.split("-").length}));y.animate({height:g},150);return false}else{if(m.nextClick&&m.nextClick instanceof Function){m.nextClick(c,C.getItem(c,d),function(e){if(!e||!e.length){C.handlerLabel(c,d,!d.hasClass(w))}else{d.attr("tree-folder","true");var n=[];e.forEach(function(e,t){e.innerHTML=e[v.keyName];e[B]=JSON.stringify(h.split("-").concat([t]));n.push(C.createDD(c,e));G[c][e[v.keyVal]]=e});d.after(n.join(""))}});return false}}}if(d.hasClass(J)){var x=t.is("."+R)?t:t.parents("."+R);if(!x[0]){return false}var k=x.attr("method");var b=q[c].config.btns.filter(function(e){return e.name==k})[0];b&&b.click&&b.click instanceof Function&&b.click(c,C);return false}C.handlerLabel(c,d,!d.hasClass(w));return false})};o.prototype.addTreeHeight=function(e,i){var a=this;var t=e.attr("tree-id");var n=e.nextAll('dd[tree-id^="'+t+'"]');if(n.length){e.append('<i class="xm-iconfont icon-expand"></i>');e.attr("xm-tree-hidn",i);n.each(function(e,t){var n=Q(t);a.addTreeHeight(n,i)})}};var G={};o.prototype.getItem=function(e,t){if(t instanceof Q){if(t.is('i[fsw="'+v+'"]')){var n=t.parent();return G[e][t]||{name:n.find("font").text(),value:n.attr("value")}}var i=t.attr("lay-value");return!G[e][i]?G[e][i]={name:t.find("span[name]").attr("name"),value:i}:G[e][i]}else if(typeof t=="string"&&t.indexOf("/")!=-1){return G[e][t]||{name:this.valToName(e,t),value:t}}return G[e][t]};o.prototype.linkageAdd=function(e,t){var n=Q('dl[xid="'+e+'"]');n.find(".xm-select-active").removeClass("xm-select-active");var i=t.value.split("/");var a=void 0,r=void 0,l=0;var o=[];do{a=i[l];r=n.find(".xm-select-linkage-group"+(l+1)+' li[xm-value="'+a+'"]');r[0]&&o.push(r);l++}while(r.length&&a!=undefined);if(o.length==i.length){Q.each(o,function(e,t){t.addClass("xm-select-this")})}};o.prototype.linkageDel=function(e,t){var n=Q('dl[xid="'+e+'"]');var i=t.value.split("/");var a=void 0,r=void 0,l=i.length-1;do{a=i[l];r=n.find(".xm-select-linkage-group"+(l+1)+' li[xm-value="'+a+'"]');if(!r.parent().next().find("li[pid="+a+"].xm-select-this").length){r.removeClass("xm-select-this")}l--}while(r.length&&a!=undefined)};o.prototype.valToName=function(e,t){var i=Q('dl[xid="'+e+'"]');var n=(t+"").split("/");if(!n.length){return null}var a=[];Q.each(n,function(e,t){var n=i.find(".xm-select-linkage-group"+(e+1)+' li[xm-value="'+t+'"] span').text();a.push(n)});return a.length==n.length?a.join("/"):null};o.prototype.commonHandler=function(e,t){if(!t||!t[0]){return}this.checkHideSpan(e,t);this.changePlaceHolder(t);this.retop(t.parents("."+P));this.calcLabelLeft(t,0,true);this.setHidnVal(e,t);t.parents("."+I+" ."+v).attr("title",q[e].values.map(function(e){return e.name}).join(","))};o.prototype.initVal=function(e){var o=this;var t={};if(e){t[e]=q[e]}else{t=q}Q.each(t,function(n,e){var t=e.values,i=Q('dl[xid="'+n+'"]').parent(),a=i.find("."+x),r=i.find("dl");r.find("dd."+w).removeClass(w);var l=t.concat([]);l.concat([]).forEach(function(e,t){o.addLabel(n,a,e);r.find('dd[lay-value="'+e.value+'"]').addClass(w)});if(e.config.radio){l.length&&t.push(l[l.length-1])}o.commonHandler(n,a)})};o.prototype.setHidnVal=function(e,t){if(!t||!t[0]){return}t.parents("."+m).find("."+_).val(q[e].values.map(function(e){return e.value}).join(","))};o.prototype.handlerLabel=function(e,t,n,i,a){var r=Q('[xid="'+e+'"]').prev().find("."+x),l=t&&this.getItem(e,t),o=q[e].values,s=q[e].config.on||z.on[e],d=q[e].config.endOn||z.endOn[e];if(i){l=i}var c=q[e];if(n&&c.config.max&&c.values.length>=c.config.max){var f=z.maxTips[e]||q[e].config.maxTips;f&&f(e,o.concat([]),l,c.config.max);return}if(!a){if(s&&s instanceof Function&&s(e,o.concat([]),l,n,t&&t.hasClass(E))==false){return}}var u=Q('dl[xid="'+e+'"]');n?(t&&t[0]?(t.addClass(w),t.removeClass(p)):u.find(".xm-select-linkage")[0]&&this.linkageAdd(e,l),this.addLabel(e,r,l),o.push(l)):(t&&t[0]?t.removeClass(w):u.find(".xm-select-linkage")[0]&&this.linkageDel(e,l),this.delLabel(e,r,l),this.remove(o,l));if(!r[0])return;if(c.config.radio){this.changeShow(r,false)}r.parents("."+I).prev().removeClass("layui-form-danger");c.config.clearInput&&this.clearInput(e);this.commonHandler(e,r);!a&&d&&d instanceof Function&&d(e,o.concat([]),l,n,t&&t.hasClass(E))};o.prototype.addLabel=function(e,t,n){if(!n)return;var i='fsw="'+v+'"';var a=[Q("<span "+i+' value="'+n.value+'"><font '+i+">"+n.name+"</font></span>"),Q("<i "+i+' class="xm-iconfont icon-close"></i>')],r=a[0],l=a[1];r.append(l);var o=q[e];if(o.config.radio){o.values.length=0;Q('dl[xid="'+e+'"]').find("dd."+w+':not([lay-value="'+n.value+'"])').removeClass(w);t.find("span").remove()}t.find("input").css("width","50px");t.find("input").before(r)};o.prototype.delLabel=function(e,t,n){if(!n)return;t.find('span[value="'+n.value+'"]:first').remove()};o.prototype.checkHideSpan=function(e,t){var n=t.parents("."+v)[0].offsetHeight+5;t.find("span.xm-span-hide").removeClass("xm-span-hide");t.find("span[style]").remove();var i=q[e].config.showCount;t.find("span").each(function(e,t){if(e>=i){Q(t).addClass("xm-span-hide")}});var a=t.find("span:eq("+i+")");a[0]&&a.before(Q('<span style="padding-right: 6px;" fsw="'+v+'"> + '+(t.find("span").length-i)+"</span>"))};o.prototype.retop=function(e){var t=e.find("dl"),n=e.offset().top+e.outerHeight()+5-c.scrollTop(),i=t.outerHeight();var a=e.hasClass("layui-form-selectup")||t.css("top").indexOf("-")!=-1||n+i>c.height()&&n>=i;e=e.find("."+v);var r=q[t.attr("xid")];var l=t.parents(".layui-form-pane")[0]&&t.prev()[0].clientHeight>38?14:10;if(r&&r.config.direction=="up"||a){a=true;if(r&&r.config.direction=="down"){a=false}}var o=e[0].offsetTop+e.height()+l;if(a){t.css({top:"auto",bottom:o+3+"px"})}else{t.css({top:o+"px",bottom:"auto"})}};o.prototype.changeShow=function(e,t){Q(".layui-form-selected").removeClass("layui-form-selected");var n=e.parents("."+P),i=n.hasClass(f),a=n.find("dl").attr("xid");Q("."+m+" ."+P).not(n).removeClass(f);if(t){this.retop(n);n.addClass(f);n.find("."+y).focus();if(!n.find("dl dd[lay-value]:not(."+J+")").length){n.find("dl ."+V).addClass(U)}}else{n.removeClass(f);this.clearInput(a);n.find("dl ."+U).removeClass(U);n.find("dl dd."+h).removeClass(h);n.find("dl dd."+p).remove();if(a&&q[a]&&q[a].config.isEmpty){this.triggerSearch(n)}this.changePlaceHolder(n.find("."+x))}if(t!=i){var r=q[a].config.opened||z.opened[a];t&&r&&r instanceof Function&&r(a);var l=q[a].config.closed||z.closed[a];!t&&l&&l instanceof Function&&l(a)}};o.prototype.changePlaceHolder=function(e){var t=e.parents("."+I);t[0]||(t=e.parents("dl").prev());if(!t[0]){return}var n=e.parents("."+m).find("dl[xid]").attr("xid");if(q[n]&&q[n].config.height){}else{var i=t.find("."+v)[0].clientHeight;t.css("height",(i>36?i+4:i)+"px");var a=t.parents("."+m).parent().prev();if(a.is(".layui-form-label")&&t.parents(".layui-form-pane")[0]){i=i>36?i+4:i;t.css("height",i+"px");a.css({height:i+2+"px",lineHeight:i-18+"px"})}}var r=t.find("."+g+" input"),l=!e.find("span:last")[0]&&!t.find("."+y).val();if(l){var o=r.attr("back");r.removeAttr("back");r.attr("placeholder",o)}else{var s=r.attr("placeholder");r.removeAttr("placeholder");r.attr("back",s)}};o.prototype.indexOf=function(e,t){for(var n=0;n<e.length;n++){if(e[n].value==t||e[n].value==(t?t.value:t)||e[n]==t||JSON.stringify(e[n])==JSON.stringify(t)){return n}}return-1};o.prototype.remove=function(e,t){var n=this.indexOf(e,t?t.value:t);if(n>-1){e.splice(n,1);return true}return false};o.prototype.selectAll=function(i,a,e){var r=this;var l=Q('[xid="'+i+'"]');if(!l[0]){return}if(l.find(".xm-select-linkage")[0]){return}l.find("dd[lay-value]:not(."+J+"):not(."+w+")"+(e?":not(."+E+")":"")).each(function(e,t){t=Q(t);var n=r.getItem(i,t);r.handlerLabel(i,l.find('dd[lay-value="'+n.value+'"]'),true,n,!a)})};o.prototype.removeAll=function(n,i,a){var r=this;var l=Q('[xid="'+n+'"]');if(!l[0]){return}if(l.find(".xm-select-linkage")[0]){q[n].values.concat([]).forEach(function(e,t){var n=e.value.split("/");var i=void 0,a=void 0,r=0;do{i=n[r++];a=l.find(".xm-select-linkage-group"+r+':not(.xm-select-linkage-hide) li[xm-value="'+i+'"]');a.click()}while(a.length&&i!=undefined)});return}q[n].values.concat([]).forEach(function(e,t){if(a&&l.find('dd[lay-value="'+e.value+'"]').hasClass(E)){}else{r.handlerLabel(n,l.find('dd[lay-value="'+e.value+'"]'),false,e,!i)}})};o.prototype.reverse=function(i,a,e){var r=this;var l=Q('[xid="'+i+'"]');if(!l[0]){return}if(l.find(".xm-select-linkage")[0]){return}l.find("dd[lay-value]:not(."+J+")"+(e?":not(."+E+")":"")).each(function(e,t){t=Q(t);var n=r.getItem(i,t);r.handlerLabel(i,l.find('dd[lay-value="'+n.value+'"]'),!t.hasClass(w),n,!a)})};o.prototype.skin=function(e){var t=["default","primary","normal","warm","danger"];var n=t[Math.floor(Math.random()*t.length)];Q('dl[xid="'+e+'"]').parents("."+m).find("."+P).attr("xm-select-skin",n);this.check(e)&&this.commonHandler(e,Q('dl[xid="'+e+'"]').parents("."+m).find("."+x))};o.prototype.getPosition=function(e){var t=0,n=0;while(e!=null){t+=e.offsetLeft;n+=e.offsetTop;e=e.offsetParent}return{x:t,y:n}};o.prototype.onreset=function(){Q(document).on("click","[type=reset]",function(e){Q(e.target).parents("form").find("."+m+" dl[xid]").each(function(e,t){var n=t.getAttribute("xid"),i=Q(t),a=void 0,r={};K.removeAll(n);q[n].config.init.forEach(function(e,t){if(e&&(!r[e]||q[n].config.repeat)&&(a=i.find('dd[lay-value="'+e.value+'"]'))[0]){K.handlerLabel(n,a,true);r[e]=1}})})})};o.prototype.bindEvent=function(n,e,i){if(e&&e instanceof Function){i=e;e=null}if(i&&i instanceof Function){if(!e){Q.each(q,function(e,t){q[e]?q[e].config[n]=i:z[n][e]=i})}else{q[e]?(q[e].config[n]=i,delete z[n][e]):z[n][e]=i}}};o.prototype.check=function(e,t){if(Q('dl[xid="'+e+'"]').length){return true}else if(Q('select[xm-select="'+e+'"]').length){if(!t){this.render(e,Q('select[xm-select="'+e+'"]'));return true}}else{delete q[e];return false}};o.prototype.render=function(e,t){K.init(t);K.one(Q('dl[xid="'+e+'"]').parents("."+m));K.initVal(e)};o.prototype.log=function(e){console.log(e)};var u=function e(){this.v=t;this.render()};var K=new o;u.prototype.value=function(i,e,t){if(typeof i!="string"){return[]}var a=q[i];if(!K.check(i)){return[]}if(typeof e=="string"||e==undefined){var n=a.values.concat([])||[];if(e=="val"){return n.map(function(e){return e.value})}if(e=="valStr"){return n.map(function(e){return e.value}).join(",")}if(e=="name"){return n.map(function(e){return e.name})}if(e=="nameStr"){return n.map(function(e){return e.name}).join(",")}return n}if(K.isArray(e)){var r=Q('[xid="'+i+'"]'),l={},o=void 0,s=true;if(t==false){s=false}else if(t==true){s=true}else{K.removeAll(i)}if(s){a.values.forEach(function(e,t){l[e.value]=1})}e.forEach(function(e,t){if(e&&(!l[e]||a.config.repeat)){if((o=r.find('dd[lay-value="'+e+'"]'))[0]){K.handlerLabel(i,o,s,null,true);l[e]=1}else{var n=K.valToName(i,e);if(n){K.handlerLabel(i,o,s,K.getItem(i,e),true);l[e]=1}}}})}};u.prototype.on=function(e,t,n){K.bindEvent(n?"endOn":"on",e,t);return this};u.prototype.filter=function(e,t){K.bindEvent("filter",e,t);return this};u.prototype.maxTips=function(e,t){K.bindEvent("maxTips",e,t);return this};u.prototype.opened=function(e,t){K.bindEvent("opened",e,t);return this};u.prototype.closed=function(e,t){K.bindEvent("closed",e,t);return this};u.prototype.config=function(e,n,t){if(e&&(typeof e==="undefined"?"undefined":_typeof(e))=="object"){t=n==true;n=e;e=null}if(n&&(typeof n==="undefined"?"undefined":_typeof(n))=="object"){if(t){n.header||(n.header={});n.header["Content-Type"]="application/json; charset=UTF-8";n.dataType="json"}e?(Y[e]=Q.extend(true,{},Y[e]||X,n),!K.check(e)&&this.render(e),q[e]&&n.direction&&(q[e].config.direction=n.direction),q[e]&&n.clearInput&&(q[e].config.clearInput=true),n.searchUrl&&q[e]&&K.triggerSearch(Q("."+m+' dl[xid="'+e+'"]').parents("."+P),true)):(Q.extend(true,X,n),Q.each(Y,function(e,t){Q.extend(true,t,n)}))}return this};u.prototype.render=function(e,t){var n;if(e&&(typeof e==="undefined"?"undefined":_typeof(e))=="object"){t=e;e=null}var i=t?(n={init:t.init,disabled:t.disabled,max:t.max,isSearch:t.isSearch,searchUrl:t.searchUrl,isCreate:t.isCreate,radio:t.radio,skin:t.skin,direction:t.direction,height:t.height,formname:t.formname,layverify:t.layverify,layverType:t.layverType,showCount:t.showCount,placeholder:t.placeholder,create:t.create,filter:t.filter,maxTips:t.maxTips,on:t.on},_defineProperty(n,"on",t.on),_defineProperty(n,"opened",t.opened),_defineProperty(n,"closed",t.closed),_defineProperty(n,"template",t.template),_defineProperty(n,"clearInput",t.clearInput),n):{};t&&t.searchType!=undefined&&(i.searchType=t.searchType=="dl"?1:0);if(e){r[e]={};Q.extend(r[e],q[e]?q[e].config:{},i)}else{Q.extend(a,i)}(Q("select["+v+'="'+e+'"]')[0]?Q("select["+v+'="'+e+'"]'):Q("select["+v+"]")).each(function(e,t){var n=t.getAttribute(v);K.render(n,t);setTimeout(function(){return K.setHidnVal(n,Q('select[xm-select="'+n+'"] + div.'+m+" ."+x))},10)});return this};u.prototype.disabled=function(e){var t={};e?K.check(e)&&(t[e]=q[e]):t=q;Q.each(t,function(e,t){Q('dl[xid="'+e+'"]').prev().addClass(N)});return this};u.prototype.undisabled=function(e){var t={};e?K.check(e)&&(t[e]=q[e]):t=q;Q.each(t,function(e,t){Q('dl[xid="'+e+'"]').prev().removeClass(N)});return this};u.prototype.data=function(e,t,n){if(!e||!t||!n){K.log("id: "+e+" param error !!!");return this}if(!K.check(e)){K.log("id: "+e+" not render !!!");return this}this.value(e,[]);this.config(e,n);if(t=="local"){K.renderData(e,n.arr,n.linkage==true,n.linkageWidth?n.linkageWidth:"100")}else if(t=="server"){K.ajax(e,n.url,n.keyword,n.linkage==true,n.linkageWidth?n.linkageWidth:"100")}return this};u.prototype.btns=function(e,o,s){if(e&&K.isArray(e)){o=e;e=null}if(!o||!K.isArray(o)){return this}var t={};e?K.check(e)&&(t[e]=q[e]):t=q;o=o.map(function(e){if(typeof e=="string"){if(e=="select"){return i[0]}if(e=="remove"){return i[1]}if(e=="reverse"){return i[2]}if(e=="skin"){return i[3]}}return e});Q.each(t,function(e,t){t.config.btns=o;var n=Q('dl[xid="'+e+'"]').find("."+J+":first");if(o.length){var i=s&&s.show&&(s.show=="name"||s.show=="icon")?s.show:"";var a=K.renderBtns(e,i,s&&s.space?s.space:"30px");n.html(a)}else{var r=n.parents("."+P).find("."+g+" input");var l=r.attr("placeholder")||r.attr("back");n.html(l);n.removeAttr("style")}});return this};u.prototype.search=function(e,t){if(e&&K.check(e)){Y[e]=Q.extend(true,{},Y[e]||X,{first:true,searchVal:t});K.triggerSearch(Q('dl[xid="'+e+'"]').parents("."+P),true)}return this};u.prototype.replace=function(e,t,n){var i=this;if(!e||!t||!n){K.log("id: "+e+" param error !!!");return this}if(!K.check(e,true)){K.log("id: "+e+" not render !!!");return this}var a=this.value(e,"val");this.value(e,[]);this.config(e,n);if(t=="local"){K.renderData(e,n.arr,n.linkage==true,n.linkageWidth?n.linkageWidth:"100",false,true);this.value(e,a,true)}else if(t=="server"){K.ajax(e,n.url,n.keyword,n.linkage==true,n.linkageWidth?n.linkageWidth:"100",false,function(e){i.value(e,a,true)},true)}};layui.link(rootPath+'module/formSelects.css');return new u}); |