zhongshaofa / layuimini

后台admin前端模板,基于 layui 编写的最简洁、易用的后台框架模板。只需提供一个接口就直接初始化整个框架,无需复杂操作。
http://layuimini.99php.cn
MIT License
4.17k stars 1.16k forks source link

更新layui2.6.11及以上版本左侧菜单栏不显示 #79

Open 522369235 opened 2 years ago

522369235 commented 2 years ago

适用于更新layui版本(2.6.11以上)出现左侧菜单栏渲染失败

官网的更新记录:

可以看见2.6.11开始模板引擎修改了输出,找到miniMenu.js, 大概在56-72行。方法compileMenu、compileMenuContainer修改模板语法{{ d.menu}} 为 {{- d.menu}},刷新问题修复

调整前

        /**
         * 渲染一级菜单
         */
        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);
        },

调整后

        /**
         * 渲染一级菜单
         */
        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);
        },

其他升级版本带来的bug暂不清楚。。。

zf8848 commented 2 years ago

好用

UnnameBao commented 1 year ago

感谢大哥分享!

xuzihan1 commented 1 year ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

HyterMatrix commented 11 months ago

这个修改 不会导致 以及菜单的 上下的图标上移吗? 我这边发现是上移了 和菜单名称不在同一个水平上

我是修改了layuimini.css 大概 732行

/**修复左侧菜单字体不对齐的问题*/
.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{
    width: 20px;
}

改为了

/**修复左侧菜单字体不对齐的问题*/
.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{
    /**修复左侧菜单上下箭头不对齐的问题**/
    top: 18px;
    width: 20px;
}
xuzihan1 commented 11 months ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

Billy-666 commented 11 months ago

这是来自QQ邮箱的假期自动回复邮件。您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

phdBoring commented 8 months ago

更新2.6.11版本之后根据上面解决了菜单不显示问题. 菜单收缩之后悬浮到菜单上点击菜单,菜单会展开之后立马收缩. 悬浮之后显示出来的菜单图标上移

xuzihan1 commented 8 months ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

mojunyu commented 7 months ago

这个修改 不会导致 以及菜单的 上下的图标上移吗? 我这边发现是上移了 和菜单名称不在同一个水平上

我是修改了layuimini.css 大概 732行

/**修复左侧菜单字体不对齐的问题*/
.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{
    width: 20px;
}

改为了

/**修复左侧菜单字体不对齐的问题*/
.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{
    /**修复左侧菜单上下箭头不对齐的问题**/
    top: 18px;
    width: 20px;
}

兄弟你这里少了一个样式 text-align: center; 加上就完美了

mhhex commented 5 months ago

根据上面解决了左侧菜单不显示的问题,但左侧菜单以及收缩后的悬浮菜单的“上下图标”出现上移问题。 layui-v2.9.11版本,layuimini.css 大概 732行,按照如下修改。

/**修复左侧菜单字体不对齐的问题*/
.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{
    width: 20px;
}

改为

/**修复左侧菜单字体不对齐的问题*/
.layui-nav-tree .layui-nav-item a .fa {
    width: 20px;
}

.layui-nav-tree .layui-nav-item a .layui-icon {
    top: 18px;
}
xuzihan1 commented 5 months ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。