layout(母版页)动态导航栏+验证页面权限思路
NavTreeList是后台返回的树形结构的菜单列表,这个结构有一个界面的权限管理界面,控制该用户可以访问哪几个页面
TabMenu(T_Item.NavURL,T_Item.NavCode)是一个自定义的方法,点击该节点可以跳转到该界面
这是tabmenu的内部方法,夹菜你点击的页面,
.layui-body是 @RenderBody() 的外层div的class子界面的内容都在这里面所以需要清空
因为我们做了动态的导航栏,说明某些界面是一些用户无法看到的,所以如果通过路径访问,我们
可以在控制器加一个权限过滤器,避免用户直接通过路径访问
这是验证页面权限的过滤器,可以参考
https://www.cnblogs.com/myleave/p/13952689.html
关于验证页面权限的思路还是去数据库查是否有这个页面的权限,如果有没问题没有的话就重定向到首页或者报错页
$(".layui-body").empty();//清空子页面 $(".layui-body").append('<div class=\"spinner\"></div>'); $(".layui-body").load(UrlData);
<el-menu v-cloak :default-active="MenuAutoSetting" class="el-menu-vertical-demo" :collapse="isCollapse" :unique-opened="true" :background-color="ThemeSetting" active-text-color="#409EFF"> <template v-for="(item,index) in NavTreeList"> <el-submenu v-if="item.children.length>0" :index="item.NavCode" :key="index" v-cloak> <template slot="title"> <i :class="'layui-icon '+item.IconStr" style="font-size:16px;"></i> <span v-cloak slot="title">{{item.NavName}}</span> </template> <template v-for="(T_Item,T_index) in item.children" v-cloak> <el-menu-item :index="T_Item.NavCode" v-on:click="TabMenu(T_Item.NavURL,T_Item.NavCode)">{{T_Item.NavName}}</el-menu-item> </template> </el-submenu> <el-menu-item v-else :index="item.NavCode" v-on:click="TabMenu(item.NavURL,item.NavCode)" :key="index"> <i :class="'layui-icon '+item.IconStr" style="font-size:16px;" v-on:click="TabMenu(item.NavURL,item.NavCode)"></i> <span slot="title" v-on:click="TabMenu(item.NavURL,item.NavCode)">{{item.NavName}}</span> </el-menu-item> </template> </el-menu>