<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> <title>首页 - 光年(Light Year Admin)后台管理系统模板</title> <link rel="icon" href="favicon.ico" type="image/ico"> <meta name="keywords" content="LightYear,光年,后台模板,后台管理系统,光年HTML模板"> <meta name="description" content="LightYear是一个基于Bootstrap v3.3.7的后台管理系统的HTML模板。"> <meta name="author" content="yinqi"> <link href="http://lyear.itshubao.com/iframe/css/bootstrap.min.css" rel="stylesheet"> <link href="http://example.itshubao.com/demo/css/materialdesignicons.min.css" rel="stylesheet"> <link rel="stylesheet" href="http://lyear.itshubao.com/iframe/js/bootstrap-multitabs/multitabs.min.css"> <link href="http://lyear.itshubao.com/iframe/css/style.min.css" rel="stylesheet"> </head> <body> <div class="lyear-layout-web"> <div class="lyear-layout-container"> <!--左侧导航--> <aside class="lyear-layout-sidebar"> <!-- logo --> <div id="logo" class="sidebar-header"> <a href="index.html"><img src="http://lyear.itshubao.com/iframe/images/logo-sidebar.png" title="LightYear" alt="LightYear" /></a> </div> <div class="lyear-layout-sidebar-scroll"> <nav class="sidebar-main"></nav> <div class="sidebar-footer"> <p class="copyright">Copyright © 2019. <a target="_blank" href="http://lyear.itshubao.com">IT书包</a> All rights reserved.</p> </div> </div> </aside> <!--End 左侧导航--> <!--头部信息--> <header class="lyear-layout-header"> <nav class="navbar navbar-default"> <div class="topbar"> <div class="topbar-left"> <div class="lyear-aside-toggler"> <span class="lyear-toggler-bar"></span> <span class="lyear-toggler-bar"></span> <span class="lyear-toggler-bar"></span> </div> </div> <ul class="topbar-right"> <li class="dropdown dropdown-profile"> <a href="javascript:void(0)" data-toggle="dropdown"> <img class="img-avatar img-avatar-48 m-r-10" src="http://lyear.itshubao.com/iframe/images/users/avatar.jpg" alt="笔下光年" /> <span>笔下光年 <span class="caret"></span></span> </a> <ul class="dropdown-menu dropdown-menu-right"> <li> <a class="multitabs" data-url="lyear_pages_profile.html" href="javascript:void(0)"><i class="mdi mdi-account"></i> 个人信息</a> </li> <li> <a class="multitabs" data-url="lyear_pages_edit_pwd.html" href="javascript:void(0)"><i class="mdi mdi-lock-outline"></i> 修改密码</a> </li> <li> <a href="javascript:void(0)"><i class="mdi mdi-delete"></i> 清空缓存</a></li> <li class="divider"></li> <li> <a href="lyear_pages_login.html"><i class="mdi mdi-logout-variant"></i> 退出登录</a> </li> </ul> </li> <!--切换主题配色--> <li class="dropdown dropdown-skin"> <span data-toggle="dropdown" class="icon-palette"><i class="mdi mdi-palette"></i></span> <ul class="dropdown-menu dropdown-menu-right" data-stopPropagation="true"> <li class="drop-title"><p>LOGO</p></li> <li class="drop-skin-li clearfix"> <span class="inverse"> <input type="radio" name="logo_bg" value="default" id="logo_bg_1" checked> <label for="logo_bg_1"></label> </span> <span> <input type="radio" name="logo_bg" value="color_2" id="logo_bg_2"> <label for="logo_bg_2"></label> </span> <span> <input type="radio" name="logo_bg" value="color_3" id="logo_bg_3"> <label for="logo_bg_3"></label> </span> <span> <input type="radio" name="logo_bg" value="color_4" id="logo_bg_4"> <label for="logo_bg_4"></label> </span> <span> <input type="radio" name="logo_bg" value="color_5" id="logo_bg_5"> <label for="logo_bg_5"></label> </span> <span> <input type="radio" name="logo_bg" value="color_6" id="logo_bg_6"> <label for="logo_bg_6"></label> </span> <span> <input type="radio" name="logo_bg" value="color_7" id="logo_bg_7"> <label for="logo_bg_7"></label> </span> <span> <input type="radio" name="logo_bg" value="color_8" id="logo_bg_8"> <label for="logo_bg_8"></label> </span> </li> <li class="drop-title"><p>头部</p></li> <li class="drop-skin-li clearfix"> <span class="inverse"> <input type="radio" name="header_bg" value="default" id="header_bg_1" checked> <label for="header_bg_1"></label> </span> <span> <input type="radio" name="header_bg" value="color_2" id="header_bg_2"> <label for="header_bg_2"></label> </span> <span> <input type="radio" name="header_bg" value="color_3" id="header_bg_3"> <label for="header_bg_3"></label> </span> <span> <input type="radio" name="header_bg" value="color_4" id="header_bg_4"> <label for="header_bg_4"></label> </span> <span> <input type="radio" name="header_bg" value="color_5" id="header_bg_5"> <label for="header_bg_5"></label> </span> <span> <input type="radio" name="header_bg" value="color_6" id="header_bg_6"> <label for="header_bg_6"></label> </span> <span> <input type="radio" name="header_bg" value="color_7" id="header_bg_7"> <label for="header_bg_7"></label> </span> <span> <input type="radio" name="header_bg" value="color_8" id="header_bg_8"> <label for="header_bg_8"></label> </span> </li> <li class="drop-title"><p>侧边栏</p></li> <li class="drop-skin-li clearfix"> <span class="inverse"> <input type="radio" name="sidebar_bg" value="default" id="sidebar_bg_1" checked> <label for="sidebar_bg_1"></label> </span> <span> <input type="radio" name="sidebar_bg" value="color_2" id="sidebar_bg_2"> <label for="sidebar_bg_2"></label> </span> <span> <input type="radio" name="sidebar_bg" value="color_3" id="sidebar_bg_3"> <label for="sidebar_bg_3"></label> </span> <span> <input type="radio" name="sidebar_bg" value="color_4" id="sidebar_bg_4"> <label for="sidebar_bg_4"></label> </span> <span> <input type="radio" name="sidebar_bg" value="color_5" id="sidebar_bg_5"> <label for="sidebar_bg_5"></label> </span> <span> <input type="radio" name="sidebar_bg" value="color_6" id="sidebar_bg_6"> <label for="sidebar_bg_6"></label> </span> <span> <input type="radio" name="sidebar_bg" value="color_7" id="sidebar_bg_7"> <label for="sidebar_bg_7"></label> </span> <span> <input type="radio" name="sidebar_bg" value="color_8" id="sidebar_bg_8"> <label for="sidebar_bg_8"></label> </span> </li> </ul> </li> <!--切换主题配色--> </ul> </div> </nav> </header> <!--End 头部信息--> <!--页面主要内容--> <main class="lyear-layout-content"> <div id="iframe-content"></div> </main> <!--End 页面主要内容--> </div> </div> <script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/jquery.min.js"></script> <script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/bootstrap.min.js"></script> <script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/perfect-scrollbar.min.js"></script> <script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/bootstrap-multitabs/multitabs.js"></script> <script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/index.min.js"></script> </body> </html>
/** * 菜单 * @param data 菜单JSON数据 * id 菜单唯一ID * name 菜单名称 * url 菜单链接地址 * icon 图标 * pid 父级ID * is_out 是否外链0否|1是,外链a标签没有class='multitabs' * is_home 是否首页 */ var setSidebar = function(data){ if (data.length == 0) return false; var treeObj = treeData(data, 'id', 'pid', 'children'); html = createMenu(treeObj, true); $('.sidebar-main').append(html); } var createMenu = function (data, is_frist) { var menu_body = is_frist ? '<ul class="nav nav-drawer">' : '<ul class="nav nav-subnav">'; for(var i = 0; i < data.length; i++){ iframe_class = data[i].is_out == 1 ? '' : 'class="multitabs"'; icon_div = data[i].pid == 0 ? '<i class="' + data[i].icon + '"></i>' : ''; selected = (data[i].pid == 0) && (data[i].is_home == 1) ? 'active' : ''; menuName = data[i].pid == 0 ? '<span>' + data[i].name + '</span>' : data[i].name; if (data[i].children && data[i].children.length > 0) { menu_body += '<li class="nav-item nav-item-has-subnav"><a href="javascript:void(0)">' + icon_div + menuName + '</a>'; menu_body += createMenu(data[i].children); } else { menu_body += '<li class="nav-item ' + selected + '"><a href="' + data[i].url + '" '+ iframe_class +'>' + icon_div + menuName + '</a>'; } menu_body += '</li>'; } menu_body += '</ul>'; return menu_body; }; /** * @author CSDN 蔚莱先森 * @param source json数据源 * @param id 主键ID * @param parendId 父级ID名称 * @param children 子级名称 */ var treeData = function (source, id, parentId, children){ let cloneData = (typeof source == 'object') ? source : JSON.parse(source); return cloneData.filter(father=>{ let branchArr = cloneData.filter(child => father[id] == child[parentId]); branchArr.length>0 ? father[children] = branchArr : '' return father[parentId] == 0 }) } // 使用 var menu_list = [{ id: '1', name: '后台首页', url: '#!', pid: 0, icon: 'mdi mdi-home', is_out: 0, is_home: 1, },{ id: '2', name: 'UI 元素', url: '#', pid: 0, icon: 'mdi mdi-palette', is_out: 0, is_home: 0, }, { id: '3', name: '按钮', url: 'lyear_ui_buttons.html', pid: 2, icon: '', is_out: 0, is_home: 0, }, { id: '4', name: '卡片', url: 'lyear_ui_cards.html', pid: 2, icon: '', is_out: 0, is_home: 0, }, { id: '5', name: '格栅', url: 'lyear_ui_grid.html', pid: 2, icon: '', is_out: 0, is_home: 0, }, { id: '6', name: '多级菜单', url: '#', pid: 0, icon: 'mdi mdi-menu', is_out: 0, is_home: 0, }, { id: '7', name: '一级菜单', url: '#!', pid: 6, icon: '', is_out: 0, is_home: 0, }, { id: '8', name: '一级菜单', url: '#!', pid: 6, icon: '', is_out: 0, is_home: 0, }, { id: '9', name: '二级菜单', url: '#!', pid: 8, icon: '', is_out: 0, is_home: 0, }, { id: '10', name: '二级菜单', url: '#!', pid: 8, icon: '', is_out: 0 }, { id: '11', name: '三级菜单', url: '#!', pid: 10, icon: '', is_out: 0, is_home: 0, }, { id: '12', name: '三级菜单', url: '#!', pid: 10, icon: '', is_out: 0, is_home: 0, }]; var json_str = JSON.stringify(menu_list); setSidebar(json_str);