From 871d4095b07cedacb7fbef4c38d64982f539c404 Mon Sep 17 00:00:00 2001 From: fei.wang <wf18701153496@163.com> Date: 星期四, 09 五月 2024 15:40:15 +0800 Subject: [PATCH] 测试提交 --- src/webapp/js/lay-module/layuimini/miniMenu.js | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 250 insertions(+), 0 deletions(-) diff --git a/src/webapp/js/lay-module/layuimini/miniMenu.js b/src/webapp/js/lay-module/layuimini/miniMenu.js new file mode 100644 index 0000000..507eae3 --- /dev/null +++ b/src/webapp/js/lay-module/layuimini/miniMenu.js @@ -0,0 +1,250 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 鑿滃崟妗嗘灦鎵╁睍 + */ +layui.define(["element","laytpl" ,"jquery"], function (exports) { + var element = layui.element, + $ = layui.$, + laytpl = layui.laytpl, + layer = layui.layer; + + var miniMenu = { + + /** + * 鑿滃崟鍒濆鍖� + * @param options.menuList 鑿滃崟鏁版嵁淇℃伅 + * @param options.multiModule 鏄惁寮�鍚妯″潡 + * @param options.menuChildOpen 鏄惁灞曞紑瀛愯彍鍗� + */ + render: function (options) { + options.menuList = options.menuList || []; + options.multiModule = options.multiModule || false; + options.menuChildOpen = options.menuChildOpen || false; + if (options.multiModule) { + miniMenu.renderMultiModule(options.menuList, options.menuChildOpen); + } else { + miniMenu.renderSingleModule(options.menuList, options.menuChildOpen); + } + miniMenu.listen(); + }, + + /** + * 鍗曟ā鍧� + * @param menuList 鑿滃崟鏁版嵁 + * @param menuChildOpen 鏄惁榛樿灞曞紑 + */ + renderSingleModule: function (menuList, menuChildOpen) { + menuList = menuList || []; + var leftMenuHtml = '', + childOpenClass = '', + leftMenuCheckDefault = 'layui-this'; + var me = this ; + if (menuChildOpen) childOpenClass = ' layui-nav-itemed'; + leftMenuHtml = this.renderLeftMenu(menuList,{ childOpenClass:childOpenClass }) ; + $('.layui-layout-body').addClass('layuimini-single-module'); //鍗曟ā鍧楁爣璇� + $('.layuimini-header-menu').remove(); + $('.layuimini-menu-left').html(leftMenuHtml); + + element.init(); + }, + + /** + * 娓叉煋涓�绾ц彍鍗� + */ + compileMenu: function(menu,isSub){ + var menuHtml = '<li {{#if( d.menu){ }} data-menu="{{d.menu}}" {{#}}} class="layui-nav-item menu-li {{d.childOpenClass}} {{d.className}}" {{#if( d.id){ }} id="{{d.id}}" {{#}}}> <a {{#if( d.href){ }} layuimini-href="{{d.href}}" {{#}}} {{#if( d.target){ }} target="{{d.target}}" {{#}}} href="javascript:;">{{#if( d.icon){ }} <i class="{{d.icon}}"></i> {{#}}} <span class="layui-left-nav">{{d.title}}</span></a> {{# if(d.children){}} {{d.children}} {{#}}} </li>' ; + if(isSub){ + menuHtml = '<dd class="menu-dd {{d.childOpenClass}} {{ d.className }}"> <a href="javascript:;" {{#if( d.menu){ }} data-menu="{{d.menu}}" {{#}}} {{#if( d.id){ }} id="{{d.id}}" {{#}}} {{#if(( !d.child || !d.child.length ) && d.href){ }} layuimini-href="{{d.href}}" {{#}}} {{#if( d.target){ }} target="{{d.target}}" {{#}}}> {{#if( d.icon){ }} <i class="{{d.icon}}"></i> {{#}}} <span class="layui-left-nav"> {{d.title}}</span></a> {{# if(d.children){}} {{d.children}} {{#}}}</dd>' + } + return laytpl(menuHtml).render(menu); + }, + compileMenuContainer :function(menu,isSub){ + var wrapperHtml = '<ul class="layui-nav layui-nav-tree layui-left-nav-tree {{d.className}}" id="{{d.id}}">{{d.children}}</ul>' ; + if(isSub){ + wrapperHtml = '<dl class="layui-nav-child ">{{d.children}}</dl>' ; + } + if(!menu.children){ + return ""; + } + return laytpl(wrapperHtml).render(menu); + }, + + each:function(list,callback){ + var _list = []; + for(var i = 0 ,length = list.length ; i<length ;i++ ){ + _list[i] = callback(i,list[i]) ; + } + return _list ; + }, + renderChildrenMenu:function(menuList,options){ + var me = this ; + menuList = menuList || [] ; + var html = this.each(menuList,function (idx,menu) { + if(menu.child && menu.child.length){ + menu.children = me.renderChildrenMenu(menu.child,{ childOpenClass: options.childOpenClass || '' }); + } + menu.className = "" ; + menu.childOpenClass = options.childOpenClass || '' + return me.compileMenu(menu,true) + }).join(""); + return me.compileMenuContainer({ children:html },true) + }, + renderLeftMenu :function(leftMenus,options){ + options = options || {}; + var me = this ; + var leftMenusHtml = me.each(leftMenus || [],function (idx,leftMenu) { // 宸︿晶鑿滃崟閬嶅巻 + var children = me.renderChildrenMenu(leftMenu.child, { childOpenClass:options.childOpenClass }); + var leftMenuHtml = me.compileMenu({ + href: leftMenu.href, + target: leftMenu.target, + childOpenClass: options.childOpenClass, + icon: leftMenu.icon, + title: leftMenu.title, + children: children, + className: '', + }); + return leftMenuHtml ; + }).join(""); + + leftMenusHtml = me.compileMenuContainer({ id:options.parentMenuId,className:options.leftMenuCheckDefault,children:leftMenusHtml }) ; + return leftMenusHtml ; + }, + /** + * 澶氭ā鍧� + * @param menuList 鑿滃崟鏁版嵁 + * @param menuChildOpen 鏄惁榛樿灞曞紑 + */ + renderMultiModule: function (menuList, menuChildOpen) { + menuList = menuList || []; + var me = this ; + var headerMenuHtml = '', + headerMobileMenuHtml = '', + leftMenuHtml = '', + leftMenuCheckDefault = 'layui-this', + childOpenClass = '', + headerMenuCheckDefault = 'layui-this'; + + if (menuChildOpen) childOpenClass = ' layui-nav-itemed'; + var headerMenuHtml = this.each(menuList, function (index, val) { //椤堕儴鑿滃崟娓叉煋 + var menu = 'multi_module_' + index ; + var id = menu+"HeaderId"; + var topMenuItemHtml = "" ; + topMenuItemHtml = me.compileMenu({ + className:headerMenuCheckDefault, + menu:menu, + id:id, + title:val.title, + href:"", + target:"", + children:"" + }); + leftMenuHtml+=me.renderLeftMenu(val.child,{ + parentMenuId:menu, + childOpenClass:childOpenClass, + leftMenuCheckDefault:leftMenuCheckDefault + }); + headerMobileMenuHtml +=me.compileMenu({ id:id,menu:menu,id:id,icon:val.icon, title:val.title, },true); + headerMenuCheckDefault = ""; + leftMenuCheckDefault = "layui-hide" ; + return topMenuItemHtml ; + }).join(""); + $('.layui-layout-body').addClass('layuimini-multi-module'); //澶氭ā鍧楁爣璇� + $('.layuimini-menu-header-pc').html(headerMenuHtml); //鐢佃剳 + $('.layuimini-menu-left').html(leftMenuHtml); + $('.layuimini-menu-header-mobile').html(headerMobileMenuHtml); //鎵嬫満 + element.init(); + }, + + /** + * 鐩戝惉 + */ + listen: function () { + + /** + * 鑿滃崟妯″潡鍒囨崲 + */ + $('body').on('click', '[data-menu]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var menuId = $(this).attr('data-menu'); + // header + $(".layuimini-header-menu .layui-nav-item.layui-this").removeClass('layui-this'); + $(this).addClass('layui-this'); + // left + $(".layuimini-menu-left .layui-nav.layui-nav-tree.layui-this").addClass('layui-hide'); + $(".layuimini-menu-left .layui-nav.layui-nav-tree.layui-this.layui-hide").removeClass('layui-this'); + $("#" + menuId).removeClass('layui-hide'); + $("#" + menuId).addClass('layui-this'); + layer.close(loading); + }); + + /** + * 鑿滃崟缂╂斁 + */ + $('body').on('click', '.layuimini-site-mobile', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var isShow = $('.layuimini-tool [data-side-fold]').attr('data-side-fold'); + if (isShow == 1) { // 缂╂斁 + $('.layuimini-tool [data-side-fold]').attr('data-side-fold', 0); + $('.layuimini-tool [data-side-fold]').attr('class', 'fa fa-indent'); + $('.layui-layout-body').removeClass('layuimini-all'); + $('.layui-layout-body').addClass('layuimini-mini'); + } else { // 姝e父 + $('.layuimini-tool [data-side-fold]').attr('data-side-fold', 1); + $('.layuimini-tool [data-side-fold]').attr('class', 'fa fa-outdent'); + $('.layui-layout-body').removeClass('layuimini-mini'); + $('.layui-layout-body').addClass('layuimini-all'); + layer.close(window.openTips); + } + element.init(); + layer.close(loading); + }); + /** + * 鑿滃崟缂╂斁 + */ + $('body').on('click', '[data-side-fold]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var isShow = $('.layuimini-tool [data-side-fold]').attr('data-side-fold'); + if (isShow == 1) { // 缂╂斁 + $('.layuimini-tool [data-side-fold]').attr('data-side-fold', 0); + $('.layuimini-tool [data-side-fold]').attr('class', 'fa fa-indent'); + $('.layui-layout-body').removeClass('layuimini-all'); + $('.layui-layout-body').addClass('layuimini-mini'); + // $(".menu-li").each(function (idx,el) { + // $(el).addClass("hidden-sub-menu"); + // }); + + } else { // 姝e父 + $('.layuimini-tool [data-side-fold]').attr('data-side-fold', 1); + $('.layuimini-tool [data-side-fold]').attr('class', 'fa fa-outdent'); + $('.layui-layout-body').removeClass('layuimini-mini'); + $('.layui-layout-body').addClass('layuimini-all'); + // $(".menu-li").each(function (idx,el) { + // $(el).removeClass("hidden-sub-menu"); + // }); + layer.close(window.openTips); + } + element.init(); + layer.close(loading); + }); + + /** + * 鎵嬫満绔偣寮�妯″潡 + */ + $('body').on('click', '.layuimini-header-menu.layuimini-mobile-show dd', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var check = $('.layuimini-tool [data-side-fold]').attr('data-side-fold'); + if(check === "1"){ + $('.layuimini-site-mobile').trigger("click"); + element.init(); + } + layer.close(loading); + }); + }, + + }; + + + exports("miniMenu", miniMenu); +}); -- Gitblit v1.9.3