7 lines
9.5 KiB
JavaScript
Raw Normal View History

/**
* layui_dropdown
* v2.3.2
* by Microanswer
* http://layuidropdown.microanswer.cn/
**/
layui.define(["jquery","laytpl"],function(i){var s=layui.jquery||layui.$,r=layui.laytpl,e="a",d={},c="1",u="2",m="3";function f(i){if(!i)throw new Error("菜单条目内必须填写内容。");if("hr"===i)return"hr";if(0!==i.indexOf("{"))throw new Error("除了分割线hr别的菜单条目都必须保证是合格的Javascript对象或json对象。");return new Function("return "+i)()}function a(i){if(i&&0<i.length){for(var n=0,t=new Array(i.length),o=0;o<i.length;o++)for(var e=i[o],d=0;d<e.length;d++)e[d].header&&e[d].fixed&&(n++,t[o]=e[d],e.splice(d,1),d--);if(0<n)return t}return null}var l=window.MICROANSWER_DROPDOWAN||"dropdown",p="<div tabindex='0' class='layui-anim layui-anim-upbit dropdown-root' "+l+"-id='{{d.downid}}' style='display: none;z-index: {{d.zIndex}}'>{{# if (d.arrow){ }}<div class='dropdown-pointer'></div>{{# } }}<div class='dropdown-content' style='margin: {{d.gap}}px {{d.gap}}px;background-color: {{d.backgroundColor}};min-width: {{d.minWidth}}px;max-width: {{d.maxWidth}}px;min-height: {{d.minHeight}}px;max-height: {{d.maxHeight}}px;white-space: {{d.nowrap?\"nowrap\":\"normal\"}}'>",h="</div></div>",w=p+"<div class='dropdown-content-table' cellpadding='0' cellspacing='0'>{{# if (d.fixHeaders && d.fixHeaders.length > 0){ }}<div class='dropdown-content-thead'><div class='dropdown-content-tr'>{{# layui.each(d.fixHeaders, function(i, fixHeader){ }}{{# if (fixHeader) { }}<div class='dropdown-content-th'><div class='dropdown-menu-fixed-head {{(d.menuSplitor && i < (d.menus.length-1))?\"menu-splitor\":\"\"}}'><div class='menu-fixed-head' style='text-align: {{fixHeader.align||\"center\"}}'>{{fixHeader.header}}</div></div></div>{{# } else { }}<th><div class='dropdown-menu-fixed-head {{(d.menuSplitor && i < (d.menus.length-1))?\"menu-splitor\":\"\"}}'><div class='menu-fixed-head'>&nbsp;</div></div></th>{{# } }}{{# }); }}</div></div>{{# } }}<div class='dropdown-content-tbody'><div class='dropdown-content-tr'>{{# layui.each(d.menus, function(i, menu){ }}<div class='dropdown-content-td' valign='top'><div class='dropdown-menu-wrap {{(d.menuSplitor && i < (d.menus.length-1))?\"menu-splitor\":\"\"}} overflowauto' style='min-height: {{d.minHeight}}px;max-height: {{d.maxHeight - ((d.fixHeaders)?24:0)}}px;'><ul class='dropdown-menu' style=''>{{# layui.each(menu, function(index, item){ }}<li class='menu-item-wrap {{(d.fixHeaders && d.fixHeaders.length) > 0?\"nomargin\":\"\"}}'>{{# if ('hr' === item) { }}<hr>{{# } else if (item.header) { }}{{# if (item.withLine) { }}<fieldset class=\"layui-elem-field layui-field-title menu-header withLine\"><legend>{{item.header}}</legend></fieldset>{{# } else { }}<div class='menu-header' style='text-align: {{item.align||\"left\"}}'>{{item.header}}</div>{{# } }}{{# } else { }}<div class='menu-item'><a href='javascript:;' lay-event='{{item.event}}'>{{# if (item.layIcon){ }}<i class='layui-icon {{item.layIcon}}'></i>&nbsp;{{# } }}<span class='{{item.txtClass||\"\"}}'>{{item.txt}}</span></a></div>{{# } }}</li>{{# }); }}</ul></div></div>{{#});}}</div></div></div>"+h,t={menus:[],templateMenu:"",template:"",showBy:"click",align:"left",minWidth:80,maxWidth:500,minHeight:10,maxHeight:400,zIndex:891,gap:8,onHide:function(i,n){},onShow:function(i,n){},scrollBehavior:"follow",backgroundColor:"#FFF",cssLink:"https://cdn.jsdelivr.net/gh/microanswer/layui_dropdown@2.3.2/dist/dropdown.css",immed:!1,arrow:!0,templateMenuSptor:"[]",menuSplitor:!0};function v(i,n){"string"==typeof i&&(i=s(i)),this.$dom=i,this.option=s.extend({downid:String(Math.random()).split(".")[1],filter:i.attr("lay-filter")},t,n),20<this.option.gap&&(this.option.gap=20),this.init()}function o(i,o){s(i||"[lay-"+l+"]").each(function(){var i=s(this),n=new Function("return "+(i.attr("lay-"+l)||"{}"))();i.removeAttr("lay-"+l);var t=i.data(l)||new v(i,s.extend({},n,o||{}));i.data(l,t)})}window[l+"_useOwnCss"]||layui.link(window[l+"_cssLink"]||t.cssLink,function(){},l+"_css"),v.prototype.init=function(){var n=this,i=!1;if(n.option.menus&&0<n.option.menus.length){i=!0;var t=n.option.menus[0];Array.isArray(t)||(n.option.menus=[n.option.menu