SpringBoot后台管理項目之環境部署
SpringBoot后台管理之Mybatis-GeneratorConfig
SpringBoot后台管理項目之數據庫
SpringBoot項目之Resuful接口+工具類設計
【待補】SpringBoot項目之shiro
【待補】SpringBoot項目之cache
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>管理平台</title>
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<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">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="stylesheet" href="../layui/css/layui.css" />
<style>
iframe{
width: 100%;
height: 100%;
}
</style>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo">后台管理系統</div>
<ul class="layui-nav layui-layout-left">
<li class="layui-nav-item layui-this"><a href="">最新活動</a></li>
<li class="layui-nav-item ">
<a href="javascript:;">產品</a>
<dl class="layui-nav-child">
<dd><a href="">選項1</a></dd>
<dd><a href="">選項2</a></dd>
<dd><a href="">選項3</a></dd>
</dl>
</li>
<li class="layui-nav-item"><a href="">大數據</a></li>
<li class="layui-nav-item">
<a href="javascript:;">解決方案</a>
<dl class="layui-nav-child">
<dd><a href="">移動模塊</a></dd>
<dd><a href="">后台模版</a></dd>
<dd class="layui-this"><a href="">選中項</a></dd>
<dd><a href="">電商平台</a></dd>
</dl>
</li>
<li class="layui-nav-item"><a href="">社區</a></li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item">
<a href="javascript:;">
<img src="http://t.cn/RCzsdCq" class="layui-nav-img">
用戶名: <span th:text="'hello, ' + ${session.user.username} +
'!'" ></span>
</a>
<dl class="layui-nav-child">
<dd><a href="">基本資料</a></dd>
<dd><a href="">安全設置</a></dd>
</dl>
</li>
<li class="layui-nav-item"><a th:href="/logout">退出</a></li>
</ul>
</div>
<div class="layui-side layui-bg-black">
<div class="layui-side-scroll">
<!-- 左側導航區域(可配合<u>layui</u>已有的垂直導航) -->
<ul id="left_nav" class="layui-nav layui-nav-tree"
<u>lay-filter</u>="test">
</ul>
</div>
</div>
<div class="layui-body" style="overflow-y: hidden;">
<!-- 內容主體區域 -->
<div class="layui-tab" <u>lay-filter</u>="demo" <u>lay-allowClose</u>="true">
<ul class="layui-tab-title">
</ul>
<div class="layui-tab-content" >
</div>
</div>
</div>
<div class="layui-footer">
<!-- 底部固定區域 -->
© layui.com - 底部固定區域
</div>
</div>
<script src="../layui/layui.js"></script>
<script>
layui.use(['element','layer'], function(){
var element = layui.element
,layer = layui.layer
,element = layui.element
,$ = layui.jquery;
var base="http://localhost:8080";
var get_nav=base+"/permission/list";
var layer;
network();
/*
* @todo 重新計算iframe高度
*/
function FrameWH() {
var h = $(window).height() - 164;
//console.log("高度問題=="+h);
$("iframe").css("height", h + "px");
}
function network(){
$.ajax({
url:"/permission/list",
type: "get",
async: true,
success: function(res) {
//console.log("首頁請求結果=="+JSON.stringify(res));
if (res.code===0) {
console.log("請求數據成功");
loadnav(res.data);
} else{
layer.msg('暫無數據');
}
},
error:function() {
layer.msg("請求失敗!");
}
});
}
function loadnav (navdata) {
for (var i=0;i<navdata.length;i++) {
var first_menu=navdata[i];
var childMenus=first_menu.list;
//console.log("子菜單=="+JSON.stringify(childMenus));
if(childMenus==null||childMenus==undefined||childMenus==""){
//console.log("沒有子菜單=="+first_menu.name);
loadTopMenu(first_menu);
}else{
//console.log("有子菜單=="+first_menu.name);
loadHasChildMenu(first_menu);
}
}
//列表添加完后再次執行渲染
xuanran();
}
//加載帶有子菜單的
function loadHasChildMenu(data){
var fragment = document.getElementById("left_nav");
var list = document.createElement('li');
list.className="layui-nav-item ";
var child_one_Html='<a
href="javascript:;">'+data.permissionName+'</a>';
var childmenus=data.list;
var child_two_Html='<dl class="layui-nav-child">';
var childHtmls="";
for (var i=0;i<childmenus.length;i++) {
var childmenu=childmenus[i];
//console.log("1.=多級菜單列表=="+childmenu.name+"==");
data-title
var childHtml='<dd><a class="site-demo-active"
data-id='+childmenu.id+' data-src='+childmenu.url+'
data-title='+childmenu.permissionName+'>'+childmenu.permissionName+'</a></dd>';
childHtmls+=childHtml;
}
child_two_Html +=childHtmls+'</dl>';
list.innerHTML=child_one_Html+child_two_Html;
fragment.appendChild(list);
//console.log("2.=多級菜單列表加載完畢");
}
//加載頂級菜單(沒有子菜單)
function loadTopMenu(data){
var fragment = document.getElementById("left_nav");
var list = document.createElement('li');
list.className="layui-nav-item";
//aa
list.innerHTML='<a class="site-demo-active"
data-id='+data.id+' data-src='+data.url+'>'+data.permissionName+'</a>';
fragment.appendChild(list);
//console.log("1.=頂級菜單列表加載完畢");
}
function xuanran() {
layui.use(['element','layer'], function(){
var element = layui.element;
layer=layui.layer;
var layFilter = $("#left_nav").attr('lay-filter');
element.render('nav', layFilter);
var active = {
//在這里給active綁定幾項事件,后面可通過active調用這些事件
tabAdd: function (url, id, name) {
//新增一個Tab項 傳入三個參數,分別對應其標題,tab頁面的地址,還有一個規定的id,是標簽中data-id的屬性值
var body_url=url+".html";
console.log("要切換的頁面地址="+body_url);
element.tabAdd('demo', {
title: name,
content: '<iframe data-frameid="' + id + '"
scrolling="auto" frameborder="0" src="' + body_url + '"></iframe>',
id: id //規定好的id
})
FrameWH(); //計算ifram層的大小
},
tabChange: function (id) {
//切換到指定Tab項
element.tabChange('demo', id); //根據傳入的id傳入到指定的tab項
},
tabDelete: function (id) {
element.tabDelete("demo", id);//刪除
}
};
//當點擊有site-demo-active屬性的標簽時,即左側菜單欄中內容 ,觸發點擊事件
$('.site-demo-active').on('click', function () {
var dataid = $(this);
if ($(".layui-tab-title li[lay-id]").length <= 0) {
//如果比零小,則直接打開新的tab項
//console.log("1.沒有tab頁,新建tab頁");
console.log("2.沒有tab頁,新建tab頁=="+dataid.text()+"=="+dataid.attr("data-id")+"==="+dataid.attr("data-title"));
active.tabAdd(dataid.attr("data-src"),
dataid.attr("data-id"),dataid.attr("data-title"));
} else {
//否則判斷該tab項是否以及存在
var isData = false; //初始化一個標志,為false說明未打開該tab項 為true則說明已有
$.each($(".layui-tab-title li[lay-id]"), function () {
//如果點擊左側菜單欄所傳入的id 在右側tab項中的lay-id屬性可以找到,則說明該tab項已經打開
if ($(this).attr("lay-id") == dataid.attr("data-id")) {
console.log("如果點擊左側菜單欄所傳入的id 在右側tab項中的lay-id屬性可以找到,則說明該tab項已經打開");
isData = true;
}
})
if (isData == false) {
//標志為false 新增一個tab項
console.log("新增一個tab項")
active.tabAdd(dataid.attr("data-src"),
dataid.attr("data-id"),dataid.attr("data-title"));
}
}
//最后不管是否新增tab,最后都轉到要打開的選項頁面上
active.tabChange(dataid.attr("data-id"));
});
})
console.log("==列表添加完后再次執行渲染");
}
})
</script>
</body>
</html>