1.layuiAdmin的根据请求获取数据 动态生成侧边栏
注意:请求地址一样 但携带的token不一样 会返回不一样的侧边栏 就是权限问题
在views/index.html页面上改造的前后
改造侧边栏的渲染代码前
<!-- 侧边菜单 -->
<div class="layui-side layui-side-menu">
<div class="layui-side-scroll">
<div class="layui-logo" lay-href="home/console.html">
<span>CRM</span>
</div>
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu"
lay-filter="layadmin-system-side-menu">
<li data-name="set" class="layui-nav-item">
<a href="javascript:;" lay-tips="设置" lay-direction="2">
<i class="layui-icon layui-icon-set"></i>
<cite>系统管理</cite>
</a>
<dl class="layui-nav-child">
<dd></dd><a lay-href="config/index.html">菜单模块</a></dd>
<dd>
<a lay-href="app/forum/list.html">行为模块</a>
</dd>
<dd>
<a lay-href="app/seas/list.html">公海规则</a>
</dd>
</dl>
</li>
后面的省略。。。。。。。
改造后
<!-- 侧边菜单 -->
<div class="layui-side layui-side-menu">
<div class="layui-side-scroll">
<div class="layui-logo" lay-href="home/console.html">
<span>CRM</span>
</div>
<ul class="layui-nav layui-nav-tree" id="nav" lay-filter="demo"></ul>
</div>
</div>
改造引入的文件 和动态获取侧边栏数据的请求
注意:需要把 navbar文件引入 然后需要发送请求把获得的侧边的数据填入侧边栏的渲染方法中
navbar的百度网盘地址 永久有效
链接:https://pan.baidu.com/s/1WkriV2kCpeKnmIknRhiYJg
提取码:k6hm
var data;
$.ajax({
url: "https://crm.dscl518.com/index.php/admin/menu/menuLists?access_token=" + localStorage.getItem(
'access_token'),
type: 'get',
dataType: "json",
success: function (response) {
console.log(response, 111);
data = response.data;
console.log(data);
var time = setTimeout(function () {
window.location.reload()
}, 500)
clearTimeout(time)
}
});;
layui.config({
base: '../layuiadmin/', //静态资源所在路径
version: '201906044455'
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'navbar', 'layer'], function () {
// 从这里开始我加入的
var navbar = layui.navbar();
navbar.set({
elem: '#nav',
data: data
// 这里用不鸟url获取数据,只能用这种方式,先把数据获取到,然后在在这里传入
});
navbar.render();
//下面的部分不是必须的
navbar.on('click(demo)', function (data) {
// console.log(data.elem);
// console.log(data.field.title);//标题
// console.log(data.field.icon);//图标
// console.log(data.field.href);//调转地址
// layer.msg(data.field.href);
});
//给选中的页签添加选中样式(解决刷新失效问题)
var url = window.location.href.replace("//", "");
var relUrl = url.substring(url.lastIndexOf("/") + 1);
//去掉参数部分
if (relUrl.indexOf("?") != -1) {
relUrl = relUrl.split("?")[0];
}
$("#leftNavbar a").each(function () {
var that = this;
if ($(that).attr("href") == relUrl) {
$(that).parent().addClass("layui-this");
$(that).parents("li:eq(0)").addClass("layui-nav-itemed");
var nodes = $(that).parents("li:eq(0)").find("a .layui-nav-more");
if (nodes.length > 0) {
nodes.each(function () {
if ($(this).parents("dd:eq(0)").find("[href='" + relUrl +
"']").length > 0) {
$(this).parent().parent().addClass("layui-nav-itemed");
}
});
}
}
});