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