<!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);