• 00016-layui 动态加载菜单 laytpl


    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ include file="/common/taglibs.jsp"%>
    <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>管理系统</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <link rel="stylesheet" href="${ctxLayui}/layuiadmin/layui/css/layui.css" media="all">
        <link rel="stylesheet" href="${ctxLayui}/layuiadmin/style/admin.css" media="all">
    
    
    </head>
    <body class="layui-layout-body">
    
    
    <div id="LAY_app">
        <div class="layui-layout layui-layout-admin">
            <div class="layui-header">
                <!-- 头部区域 -->
                <ul class="layui-nav layui-layout-left">
                    <li class="layui-nav-item layadmin-flexible" lay-unselect>
                        <a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
                            <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
                        </a>
                    </li>
    
                    <li class="layui-nav-item" lay-unselect>
                        <a href="javascript:;" layadmin-event="refresh" title="刷新">
                            <i class="layui-icon layui-icon-refresh-3"></i>
                        </a>
                    </li>
                    <%--<li class="layui-nav-item layui-hide-xs" lay-unselect>
                        <input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search" layadmin-event="serach" lay-action="template/search.html?keywords=">
                    </li>--%>
                </ul>
                <ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
    
                    <%--<li class="layui-nav-item" lay-unselect>
                        <a lay-href="app/message/index.html" layadmin-event="message" lay-text="消息中心">
                            <i class="layui-icon layui-icon-notice"></i>
                            <!-- 如果有新消息,则显示小圆点 -->
                            <span class="layui-badge-dot"></span>
                        </a>
                    </li>--%>
                    <%--<li class="layui-nav-item layui-hide-xs" lay-unselect>
                        <a href="javascript:;" layadmin-event="theme">
                            <i class="layui-icon layui-icon-theme"></i>
                        </a>
                    </li>--%>
                    <%--<li class="layui-nav-item layui-hide-xs" lay-unselect>
                        <a href="javascript:;" layadmin-event="note">
                            <i class="layui-icon layui-icon-note"></i>
                        </a>
                    </li>--%>
                    <li class="layui-nav-item layui-hide-xs" lay-unselect>
                        <a href="javascript:;" layadmin-event="fullscreen">
                            <i class="layui-icon layui-icon-screen-full"></i>
                        </a>
                    </li>
                    <li class="layui-nav-item" lay-unselect>
                        <a href="javascript:;">
                            <cite>
                                <shiro:principal property="name"/>
                            </cite>
                        </a>
                        <dl class="layui-nav-child">
                            <dd><a lay-href="system/userInfoForm.jsp#/self=1">基本资料</a></dd>
                            <%--<dd><a lay-href="set/user/password.html">修改密码</a></dd>--%>
                            <hr>
                            <dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd>
                        </dl>
                    </li>
                        <li class="layui-nav-item " lay-unselect>
                            <a href="javascript:;">
                                <cite data-type="openCall" class="call_seat">坐席</cite>
                            </a>
                        </li>
    
                    <li class="layui-nav-item layui-hide-xs" lay-unselect>
                        <a href="javascript:;" >
                            <%--<i class="layui-icon layui-icon-more-vertical"></i>--%>
                        </a>
                    </li>
                    <%--<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
                        <a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>
                    </li>--%>
                </ul>
            </div>
    
            <!-- 侧边菜单 -->
            <div class="layui-side layui-side-menu">
                <div class="layui-side-scroll">
                    <div class="layui-logo" lay-href="home/console.html">
                        <span>后台管理</span>
                    </div>
    
                    <!-- 建议改变真实接口地址时保留lay-url中的?v={{ layui.admin.v }} -->
                    <script type="text/html" template
                            lay-done="layui.element.render('nav', 'layadmin-system-side-menu');" id="TPL_layout">
                        <div lay-templateid="TPL_layout">
                            <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
                                {{#
                                layui.each(d.data, function(index,item){
                                }}
                                <li class="layui-nav-item {{ item.spread ? item.children && item.children.length > 0 ? 'layui-nav-itemed' : 'layui-this': '' }}" myDir = "1">
                                    {{# if(item.url){ }}
                                    <a lay-href="{{ item.url }}" lay-tips="{{ item.name }}" lay-direction="2">
                                        {{# }else{ }}
                                        <a href="javascript:;" lay-tips="{{ item.name }}" lay-direction="2">
                                            {{# } }}
                                            {{# if(item.icon){ }}
                                            <i class="layui-icon {{ item.icon }}"></i>
                                            {{# } }}
                                            <cite>{{ item.name }}</cite>
                                        </a>
                                        {{#
                                        var itemListFun = function(children, myDir){
                                        myDir = myDir || 2;
                                        if( children && children.length > 0){ }}
                                        <dl class="layui-nav-child">
                                            {{# layui.each(children, function(index2, item2){ }}
                                            <dd data-name="{{ item2.code || '' }}" class="{{ item2.spread ? (item2.children && item2.children.length > 0 ? 'layui-nav-itemed' : 'layui-this' ) : ''}}" myDir="{{ myDir }}">
                                                {{# if(item2.icon){ }}
                                                <i class="layui-icon {{ item.icon }}"></i>
                                                {{# } }}
                                                {{# if(item2.url){ }}
                                                <a lay-href="{{ item2.url }}">{{ item2.name }}</a>
                                                {{# }else{ }}
                                                <a href="javascript:;">{{ item2.name }}</a>
                                                {{# } }}
                                                {{# itemListFun(item2.children,myDir+1);}}
                                            </dd>
                                            {{# }) }}
                                        </dl>
                                        {{#  } }}
                                        {{#  };
                                        itemListFun(item.children); }}
                                </li>
                                {{# }) }}
                            </ul>
                        </div>
                    </script>
    
                    </ul>
                </div>
            </div>
    
            <!-- 页面标签 -->
            <div class="layadmin-pagetabs" id="LAY_app_tabs">
                <div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
                <div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
                <div class="layui-icon layadmin-tabs-control layui-icon-down">
                    <ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
                        <li class="layui-nav-item" lay-unselect>
                            <a href="javascript:;"></a>
                            <dl class="layui-nav-child layui-anim-fadein">
                                <dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
                                <dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
                                <dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
                            </dl>
                        </li>
                    </ul>
                </div>
                <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
                    <ul class="layui-tab-title" id="LAY_app_tabsheader">
                        <li lay-id="home/console.jsp" lay-attr="home/console.jsp" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>
                    </ul>
                </div>
            </div>
    
    
            <!-- 主体内容 -->
            <div class="layui-body" id="LAY_app_body">
                <div class="layadmin-tabsbody-item layui-show">
                    <iframe src="home/console.jsp" frameborder="0" class="layadmin-iframe"></iframe>
                </div>
            </div>
    
            <!-- 辅助元素,一般用于移动设备下遮罩 -->
            <div class="layadmin-body-shade" layadmin-event="shade"></div>
        </div>
    </div>
    
    <script src="${ctxLayui}/layuiadmin/layui/layui.js"></script>
    <script>
        layui.config({
            base: '${ctxLayui}/layuiadmin/' //静态资源所在路径
            ,version:new Date().getTime()
        }).extend({
            index: 'lib/index' //主入口模块
        }).use(['index','laytpl','common','form','dict','laydate'],function () {
            var $ = layui.$;
            var admin = layui.admin;
            var laytpl = layui.laytpl;
            var element = layui.element;
            var form = layui.form;
            var dict = layui.dict;
            var laydate = layui.laydate;
    
            var menuTpl = top.layui.view('TPL_layout');
            menuTpl.container.attr('lay-url', ctx+'/business/businessUser/getMenuList?v='+layui.admin.v);//可更改url
    
            menuTpl.refresh();
        });
    </script>
    
    </body>
    </html>
    
    
    

    接口:business/businessUser/getMenuList 的返回结构为:BusinessMenuPo

    /**
     * 名称
     */
    private String name;
    
    /**
     * 代码
     */
    private String code;
    
    /**
     * 父ID
     */
    private Long parentId;
    
    /**
     * 菜单类型;1-分类;2-模块;3-功能;4-按键
     */
    private Integer type;
    
    /**
     * 链接URL
     */
    private String url;
    /**
     * 排序
     */
    private Integer sortOrder;
    
    private List<BusinessMenuPo> children;
    
  • 相关阅读:
    centOS操作磁盘(命令行)
    TCP学习记录
    公务员考试考什么
    从动物科学到乐队鼓手,腾讯技术小哥的开源人生
    HarmonyOS实战—实现相亲APP
    oracle 以某个字符拆分成多行
    微信小程序预览 word、excel、ppt、pdf 等文件
    微信小程序相关问题排查技巧
    html 保留空格
    (转载)currentColor 让 CSS 更简短
  • 原文地址:https://www.cnblogs.com/jianquan100/p/12995331.html
Copyright © 2020-2023  润新知