调试菜单状态问题

This commit is contained in:
BianLzhaoMin 2025-02-19 14:57:33 +08:00
parent ce23f8933e
commit af5087aba8
2 changed files with 196 additions and 181 deletions

View File

@ -1,58 +1,73 @@
initMenu(); initMenu();
function initMenu(){ function getIsCheckFun(list) {
$.ajax({ if (list && list.length > 0) {
url: ctxPath + "/permissions/current", list.forEach((e) => {
type:"get", if (e.isCheck == 1) {
async:false, console.log("有待审数据", e);
success:function(data){ }
if(!$.isArray(data)){ if (e.child && e.child.length > 0) {
location.href=ctxPath + '/login.html'; getIsCheckFun(e.child);
return; }
} });
var menu = $("#menu"); }
$.each(data, function(i,item){ }
var a = $("<a href='javascript:;'></a>"); function initMenu() {
$.ajax({
url: ctxPath + "/permissions/current",
type: "get",
async: false,
success: function (data) {
if (!$.isArray(data)) {
location.href = ctxPath + "/login.html";
return;
}
var menu = $("#menu");
$.each(data, function (i, item) {
var a = $("<a href='javascript:;'></a>");
var css = item.css; var css = item.css;
if(css!=null && css!=""){ if (css != null && css != "") {
a.append("<i aria-hidden='true' class='fa " + css +"'></i>"); a.append(
} "<i aria-hidden='true' class='fa " + css + "'></i>"
a.append("<cite>"+item.name+"</cite>"); );
a.attr("lay-id", item.id); }
a.append("<cite>" + item.name + "</cite>");
a.attr("lay-id", item.id);
var href = item.href; var href = item.href;
if(href != null && href != ""){ if (href != null && href != "") {
a.attr("data-url", href); a.attr("data-url", href);
} }
var li = $("<li class='layui-nav-item'></li>"); var li = $("<li class='layui-nav-item'></li>");
if (i == 0) { if (i == 0) {
li.addClass("layui-nav-itemed"); li.addClass("layui-nav-itemed");
} }
li.append(a); li.append(a);
menu.append(li); menu.append(li);
//多级菜单 //多级菜单
setChild(li, item.child) setChild(li, item.child);
});
}); // 递归获取菜单状态
} getIsCheckFun(data);
}); },
});
} }
function setChild(parentElement, child){ function setChild(parentElement, child) {
if(child != null && child.length > 0){ if (child != null && child.length > 0) {
$.each(child, function(j,item2){ $.each(child, function (j, item2) {
var ca = $("<a href='javascript:;'></a>"); var ca = $("<a href='javascript:;'></a>");
ca.attr("data-url", item2.href); ca.attr("data-url", item2.href);
ca.attr("lay-id", item2.id); ca.attr("lay-id", item2.id);
var css2 = item2.css; var css2 = item2.css;
if(css2!=null && css2!=""){ if (css2 != null && css2 != "") {
ca.append("<i aria-hidden='true' class='fa " + css2 +"'></i>"); ca.append("<i aria-hidden='true' class='fa " + css2 + "'></i>");
} }
ca.append("<cite>"+item2.name+"</cite>"); ca.append("<cite>" + item2.name + "</cite>");
var dd = $("<dd></dd>"); var dd = $("<dd></dd>");
dd.append(ca); dd.append(ca);
@ -70,145 +85,155 @@ function setChild(parentElement, child){
// 登陆用户头像昵称 // 登陆用户头像昵称
showLoginInfo(); showLoginInfo();
function showLoginInfo(){ function showLoginInfo() {
$.ajax({ $.ajax({
type : 'get', type: "get",
url : ctxPath + '/users/current', url: ctxPath + "/users/current",
async : false, async: false,
success : function(data) { success: function (data) {
$(".admin-header-user span").text(data.nickname); $(".admin-header-user span").text(data.nickname);
var pro = window.location.protocol; var pro = window.location.protocol;
var host = window.location.host; var host = window.location.host;
var domain = pro + "//" + host; var domain = pro + "//" + host;
var sex = data.sex; var sex = data.sex;
var url = data.headImgUrl; var url = data.headImgUrl;
if(url == null || url == ""){ if (url == null || url == "") {
if(sex == 1){ if (sex == 1) {
url = ctxPath + "/img/avatars/sunny.png"; url = ctxPath + "/img/avatars/sunny.png";
} else { } else {
url = ctxPath + "/img/avatars/1.png"; url = ctxPath + "/img/avatars/1.png";
} }
url = domain + url; url = domain + url;
} else { } else {
url = domain + "/statics" + url; url = domain + "/statics" + url;
} }
var img = $(".admin-header-user img"); var img = $(".admin-header-user img");
img.attr("src", url); img.attr("src", url);
} },
}); });
} }
function logout(){ function logout() {
$.ajax({ $.ajax({
type : 'get', type: "get",
url : ctxPath + '/logout', url: ctxPath + "/logout",
success : function(data) { success: function (data) {
localStorage.removeItem("token"); localStorage.removeItem("token");
location.href= ctxPath + '/login.html'; location.href = ctxPath + "/login.html";
} },
}); });
} }
var active; var active;
layui.use(['layer', 'element'], function() { layui.use(["layer", "element"], function () {
var $ = layui.jquery, var $ = layui.jquery,
layer = layui.layer; layer = layui.layer;
var element = layui.element; //导航的hover效果、二级菜单等功能需要依赖element模块 var element = layui.element; //导航的hover效果、二级菜单等功能需要依赖element模块
element.on('nav(demo)', function(elem){ element.on("nav(demo)", function (elem) {
//layer.msg(elem.text()); //layer.msg(elem.text());
}); });
//触发事件 //触发事件
active = { active = {
tabAdd: function(obj){ tabAdd: function (obj) {
var lay_id = $(this).attr("lay-id"); var lay_id = $(this).attr("lay-id");
var title = $(this).html() + '<i class="layui-icon" data-id="' + lay_id + '"></i>'; var title =
//新增一个Tab项 $(this).html() +
element.tabAdd('admin-tab', { '<i class="layui-icon" data-id="' +
title: title, lay_id +
content: '<iframe src="' + $(this).attr('data-url') + '"></iframe>', '"></i>';
id: lay_id //新增一个Tab项
}); element.tabAdd("admin-tab", {
element.tabChange("admin-tab", lay_id); title: title,
}, content:
tabDelete: function(lay_id){ '<iframe src="' + $(this).attr("data-url") + '"></iframe>',
element.tabDelete("admin-tab", lay_id); id: lay_id,
}, });
tabChange: function(lay_id){ element.tabChange("admin-tab", lay_id);
element.tabChange('admin-tab', lay_id); },
} tabDelete: function (lay_id) {
}; element.tabDelete("admin-tab", lay_id);
//添加tab },
$(document).on('click','a',function(){ tabChange: function (lay_id) {
if(!$(this)[0].hasAttribute('data-url') || $(this).attr('data-url')===''){ element.tabChange("admin-tab", lay_id);
return; },
} };
var tabs = $(".layui-tab-title").children(); //添加tab
var lay_id = $(this).attr("lay-id"); $(document).on("click", "a", function () {
if (
!$(this)[0].hasAttribute("data-url") ||
$(this).attr("data-url") === ""
) {
return;
}
var tabs = $(".layui-tab-title").children();
var lay_id = $(this).attr("lay-id");
for(var i = 0; i < tabs.length; i++) { for (var i = 0; i < tabs.length; i++) {
if($(tabs).eq(i).attr("lay-id") == lay_id) { if ($(tabs).eq(i).attr("lay-id") == lay_id) {
active.tabChange(lay_id); active.tabChange(lay_id);
return; return;
} }
} }
active["tabAdd"].call(this); active["tabAdd"].call(this);
resize(); resize();
}); });
//iframe自适应 //iframe自适应
function resize(){ function resize() {
var $content = $('.admin-nav-card .layui-tab-content'); var $content = $(".admin-nav-card .layui-tab-content");
$content.height($(this).height() - 147); $content.height($(this).height() - 147);
$content.find('iframe').each(function() { $content.find("iframe").each(function () {
$(this).height($content.height()); $(this).height($content.height());
}); });
} }
$(window).on('resize', function() { $(window)
var $content = $('.admin-nav-card .layui-tab-content'); .on("resize", function () {
$content.height($(this).height() - 147); var $content = $(".admin-nav-card .layui-tab-content");
$content.find('iframe').each(function() { $content.height($(this).height() - 147);
$(this).height($content.height()); $content.find("iframe").each(function () {
}); $(this).height($content.height());
}).resize(); });
})
.resize();
//toggle左侧菜单 //toggle左侧菜单
$('.admin-side-toggle').on('click', function() { $(".admin-side-toggle").on("click", function () {
var sideWidth = $('#admin-side').width(); var sideWidth = $("#admin-side").width();
if(sideWidth === 200) { if (sideWidth === 200) {
$('#admin-body').animate({ $("#admin-body").animate({
left: '0' left: "0",
}); });
$('#admin-footer').animate({ $("#admin-footer").animate({
left: '0' left: "0",
}); });
$('#admin-side').animate({ $("#admin-side").animate({
width: '0' width: "0",
}); });
} else { } else {
$('#admin-body').animate({ $("#admin-body").animate({
left: '200px' left: "200px",
}); });
$('#admin-footer').animate({ $("#admin-footer").animate({
left: '200px' left: "200px",
}); });
$('#admin-side').animate({ $("#admin-side").animate({
width: '200px' width: "200px",
}); });
} }
}); });
//手机设备的简单适配 //手机设备的简单适配
var treeMobile = $('.site-tree-mobile'), var treeMobile = $(".site-tree-mobile"),
shadeMobile = $('.site-mobile-shade'); shadeMobile = $(".site-mobile-shade");
treeMobile.on('click', function () { treeMobile.on("click", function () {
$('body').addClass('site-mobile'); $("body").addClass("site-mobile");
}); });
shadeMobile.on('click', function () { shadeMobile.on("click", function () {
$('body').removeClass('site-mobile'); $("body").removeClass("site-mobile");
}); });
}); });

View File

@ -61,6 +61,8 @@
var pers = checkPermission(); var pers = checkPermission();
initMenuList(); initMenuList();
function initMenuList() { function initMenuList() {
$.ajax({ $.ajax({
type: 'get', type: 'get',
@ -107,8 +109,7 @@
tr += "</tr>" tr += "</tr>"
$("#dt-table").append(tr); $("#dt-table").append(tr);
} }
// 递归获取菜单状态
getIsCheckFun(data)
} }
}); });
@ -146,18 +147,7 @@
$("#dt-table").treetable(option); $("#dt-table").treetable(option);
function getIsCheckFun(list) {
if (list && list.length > 0) {
list.forEach((e) => {
if (e.isCheck === 1) {
console.log('有待审数据', e)
}
if (e.child && e.child.length > 0) {
getIsCheckFun(e.child)
}
})
}
}
</script> </script>