精华内容
下载资源
问答
  • layui权限管理
    2020-11-11 09:39:48

    layui权限管理系统

    Demo

    链接地址: http://liu168.xyz/Admin/Login.aspx.
    账号密码:admin admin (密码admin与admin账号下密码同用,防止别人修改admin密码后,登录不了。)
    gitee地址: https://gitee.com/lsl1688/Liu_System.

    二次扩展,前后端分离等等。

    图片展示

    在这里插入图片描述
    在这里插入图片描述

    更多相关内容
  • layui 首个版本发布于 2016 年金秋,她区别于那些基于 MVVM 底层的 UI 框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器...
  • 4、该权限系统精确控制到每一条命令,并且采用缓存机制减少多余的数据库权限验证操作。 三、初次运行说明 在文件夹里有说明文档。 四、注意事项 1、同一个账号同时多个浏览器(包括手机浏览器)登陆,后者挤掉...
  • Authman介绍使用spring boot开发的通用权限管理系统。软件架构软件架构说明后台框架:Spring Boot 2.0、MyBatisPlus权限:Shiro、Ehcache前端:Layui、Thymeleaf数据库:MySQL5.7安装教程解压文件,用idea作为maven...
  • 本项目旨在打造一个基于RBAC架构模式的通用的、并不复杂但易用的权限管理系统。通过本项目可以较好的理解权限系统的常见业务同时学习掌握Springboot和Shiro等诸多技术点。需要的朋友可以联系我:) 2.获取源码 源码...

    1.项目介绍

    本项目旨在打造一个基于RBAC架构模式的通用的、并不复杂但易用的权限管理系统。通过本项目可以较好的理解权限系统的常见业务同时学习掌握Springboot和Shiro等诸多技术点。需要的朋友可以联系我:)

    2.获取源码

    源码是捐赠方式获取,捐赠后在评论区留下邮箱发送或QQ联系我 :)!

    3.功能介绍

    在这里插入图片描述

    部门管理

    对于一个公司来说,下设众多部门。此处以组织机构树形式动态扩展。

    角色管理

    包括角色信息的增删改查、权限授予、取消操作。

    权限管理

    包括权限信息的增删改查操作,权限类型有3种:目录、菜单和按钮。也就是说本系统可以控制到按钮级别的权限。

    用户管理

    包括用户信息的增删改查、角色授予和取消操作。用户属于一个部门,一个用户可以授予多个角色,并且支持多次更新覆盖。

    4.技术选型

    在这里插入图片描述

    5.效果展示

    在这里插入图片描述

    5.1 登录页

    在这里插入图片描述

    5.2 部门管理

    在这里插入图片描述

    5.3 角色授权

    在这里插入图片描述

    6 获取源码

    捐赠任意金额,评论区留下邮箱发送 :)

    展开全文
  • 后台管理系统,程序基于ThinkPHP 5开发,后台UI使用LayUI搭建
  • springboot2 + mybatis-plus3 +shiro1.4 +layui细颗粒度网站后台用户权限管理系统 项目描述 springboot2 + mybatis-plus3 +shiro1.4 +layui 细颗粒度后台权限管理,mybatisplus的AutoGenerator简单代码生成,修改...
  • "> <div class="layui-col-md10"> <form class="layui-form layui-from-pane" action="" style="margin-top:20px"> <input type="text" id="id" name="id" hidden="hidden"> <div class="layui-form-item"> ...

    1.说明

    只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取。

    2.功能展示

    包括用户增删改查和分配角色。
    在这里插入图片描述
    在这里插入图片描述

    3.业务模型

    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @TableName("sys_user")
    public class SysUser implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        /**
         * id
         */
        @TableId(value = "id", type = IdType.AUTO)
        private Integer id;
    
        /**
         * 用户名
         */
        private String username;
    
        /**
         * 用户密码
         */
        private String password;
    
        /**
         * 真实姓名
         */
        private String truename;
    
    
        /**
         * 邮箱
         */
        private String email;
    
        /**
         * 电话
         */
        private String phone;
    
        /**
         * 所属部门ID
         */
        private Integer deptId;
    
        /**
         * 头像地址
         */
        //private String avatar;
    
        /**
         * 创建时间
         */
        @TableField(fill = FieldFill.INSERT)
        private Date createTime;
    
        /**
         * 创建人
         */
        private String createUser;
    
        /**
         * 修改时间
         */
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
    
        /**
         * 修改人
         */
        private String updateUser;
    
        @TableField(exist=false)
        private String deptName;
    
        @TableField(exist=false)
        private SysRole role;
    
        @TableField(exist=false)
        private SysDept dept;
    
    
    }
    

    4.控制器

    @Controller
    @RequestMapping("/sysUser")
    public class SysUserController {
        @Autowired
        private SysUserService userService;
    
        @Autowired
        private SysRoleService roleService;
    
        @Autowired
        private SysDeptService deptService;
    
        @Autowired
        private SysRoleUserService roleUserService;
    
        @GetMapping("listUI")
        public String listUI() {
            return "user/list";
        }
    
        @GetMapping("toSelectDept")
        public String SelectDept() {
            return "user/selectDept";
        }
    
        @GetMapping("selectRole/{userId}")
        public String SelectRole(@PathVariable Integer userId, Model model) {
            // 根据用户ID查询其拥有的角色
            //List<Map<String,Object>> roles = userService.selectRolesByUserId(userId);
            SysUser entity = userService.getById(userId);
            model.addAttribute("user", entity);
    
            return "user/selectRole";
        }
    
        @PostMapping("list")
        @ResponseBody
        public Result<IPage<SysUser>> list(@RequestParam(value = "username", required = false) String username,
                                           @RequestParam(value = "deptId", required = false) Integer deptId,
                                           @RequestParam(defaultValue = "1") Integer pageNo,
                                           @RequestParam(defaultValue = "10") Integer pageSize) {
            // 获取当前已登录用户部门ID
            /*Integer currentDeptId = getUserEntity().getDeptId();
            if(deptId==null){
                deptId = currentDeptId;
            }*/
            QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
            Page<SysUser> page = new Page<>(pageNo,pageSize);
            IPage<SysUser> result = userService.selectUserList(page, username, deptId);
            // 设置总记录数
            result.setTotal(userService.count(queryWrapper));
    
    
            return ResultUtil.ok(result);
        }
    
        @GetMapping("checkAccount")
        @ResponseBody
        public boolean checkAccount(@RequestParam(required=true) String username) {
            List<SysUser> user = (List<SysUser>) userService.listByMap(ConvertUtil.toMap("username",(Object)username));
            if(!Validator.isNullOrEmpty(user)){
                return false;
            }
            return true;
        }
    
        @OperLog(operModule = "用户管理",operType = "修改",operDesc = "修改用户")
        @PostMapping("save")
        @ResponseBody
        public Result<String> add(@RequestBody SysUser user, Map<String,Object> map){
            if(user.getId()==null){
                // 检查用户是否存在
                if(!checkAccount(user.getUsername())){
                    return ResultUtil.fail("用户名已存在!");
                }
                // 设置添加用户的密码和加密盐
                user.setPassword(MD5Util.md5Password(user.getPassword(),2));
                //user.setSalt(userEntity.getSalt());
                // 设置创建者姓名
                user.setCreateUser("");
                user.setCreateTime(new Date());
    
                // 保存用户
                boolean result = userService.save(user);
                if(!result)
                {
                    return ResultUtil.fail("添加失败!");
                }
    
                // 添加角色和用户关系记录
                /*SysRoleUser roleUser = new SysRoleUser();
                roleUser.setRoleId(user.getRole().getId());
                roleUser.setUserId(user.getId());
                roleUserService.save(roleUser);*/
            }else{
                user.setUpdateTime(new Date());
                userService.saveOrUpdate(user);
            }
            return ResultUtil.ok();
        }
    
        @OperLog(operModule = "用户管理",operType = "删除",operDesc = "删除用户")
        @PostMapping("remove")
        @ResponseBody
        public Result<String> remove(@RequestParam Integer id) {
            // 1.删除用户与角色的关联记录
            Map<String,Object> param = new HashMap<>();
            param.put("user_id", id);
            roleUserService.removeByMap(param);
            // 2.删除用户
            if(!userService.removeById(id)){
                return ResultUtil.fail("删除失败!");
            }
            return ResultUtil.ok();
        }
    
        @GetMapping("info/{userId}")
        public String selectInfo(Map<String,Object> map,@PathVariable(required=true) Integer userId) {
            SysUser user = userService.getById(userId);
            map.put("user", user);
            return "user/info";
        }
    
        // 根据用户Id查询其拥有的角色
        @GetMapping("/getRoles/{userId}")
        @ResponseBody
        public List<SysRole> getRoles(@PathVariable Integer userId){
            List<SysRole> roles = userService.selectRolesByUserId(userId);
    
            return roles;
        }
    
        // 保存用户角色
        @OperLog(operModule = "用户管理",operType = "修改",operDesc = "分配角色")
        @PostMapping("saveRole")
        @ResponseBody
        public Result<String> saveRole(@RequestParam Integer userId, @RequestParam(value = "roleIds[]") Integer[] roleIds){
            userService.saveRole(userId, Arrays.asList(roleIds));
            return ResultUtil.ok();
        }
    
    }
    

    5.前端页面

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
    <head>
        <meta charset="utf-8">
        <title>用户列表</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
        <link rel="stylesheet" th:href="@{/static/plugin/layui/css/layui.css}" media="all">
    </head>
    <body>
    <div class="searchTable">
        用户名:
        <div class="layui-inline">
            <input class="layui-input" name="s_username" id="s_username" autocomplete="off">
        </div>
        <button id="searchBtn" class="layui-btn" data-type="reload">搜索</button>
    </div>
    
    <table class="layui-hide" id="SysUser" lay-filter="SysUser"></table>
    
    <input type="text" id="ctx" hidden="hidden" th:value="${#request.getContextPath()}">
    
    <!--编辑表单-->
    <div class="layui-row" id="editForm" style="display:none;">
        <div class="layui-col-md10">
            <form class="layui-form layui-from-pane" action="" style="margin-top:20px">
                <input type="text" id="id" name="id" hidden="hidden">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">所属部门</label>
                        <div class="layui-input-line" style="float: left;">
                            <input type="text" id="deptName" name="deptName" required lay-verify="required" autocomplete="off"
                                   class="layui-input" disabled="disabled">
                        </div>
                            <button class="layui-btn layui-btn-sm" id="chooseDept" type="button" style="float: left;margin-left: 1.5em;">
                                <i class="layui-icon">&#xe615;</i>
                            </button>
    
                        <input type="hidden" id="deptId" name="deptId"/>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">用户名</label>
                    <div class="layui-input-block">
                        <input type="text" id="username" name="username" required lay-verify="required" autocomplete="off"
                               placeholder="" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">密码</label>
                    <div class="layui-input-block">
                        <input type="password" id="password" name="password" required lay-verify="required"
                               autocomplete="off"
                               placeholder="" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">姓名</label>
                    <div class="layui-input-block">
                        <input type="text" id="truename" name="truename" required lay-verify="required" autocomplete="off"
                               placeholder="" class="layui-input">
                    </div>
                </div>
                <!--<div class="layui-form-item">
                    <label class="layui-form-label">角色</label>
                    <div class="layui-input-block">
                        <select id="roleId" name="roleId" lay-verify="required">
                            <option value=""></option>
                        </select>
                        <div class="layui-unselect layui-form-select">
                            <div class="layui-select-title">
                                <input type="text" placeholder="请选择" value="" readonly=""
                                       class="layui-input layui-unselect">
                                <i class="layui-edge"></i>
                            </div>
                        </div>
                    </div>
                </div>-->
                <div class="layui-form-item" style="margin-top:40px">
                    <div class="layui-input-block">
                        <button class="layui-btn  layui-btn-submit " lay-submit="" lay-filter="confirm">确认</button>
                        <button type="button" class="layui-btn layui-btn-primary" id="back">关闭</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
    

    6 获取源码

    捐赠任意金额,评论区留下邮箱发送 :)

    在这里插入图片描述

    展开全文
  • "> <div class="layui-col-md10"> <form class="layui-form layui-from-pane" action="" style="margin-top:20px"> <input type="text" id="id" name="id" hidden="hidden"> <div class="layui-form-item"> ...

    1.说明

    只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取。

    2.功能展示

    在这里插入图片描述
    在这里插入图片描述

    3.业务模型

    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @TableName("sys_dept")
    public class SysDept implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        @TableId(value = "id", type = IdType.AUTO)
        private Integer id;
    
        /**
         * 上级部门ID
         */
        private Integer pid;
    
        /**
         * 所有上级部门ID, 0为根,格式:0,1,2,
         */
        private String pids;
    
        /**
         * 部门名称
         */
        private String deptName;
    
        /**
         * 部门编码
         */
        private String deptCode;
    
    
        @TableField(exist=false)
        private String pname;
    
        /**
         * 创建时间
         */
        @TableField(fill = FieldFill.INSERT)
        private Date createTime;
    
        /**
         * 创建人
         */
        private String createUser;
    
        /**
         * 修改时间
         */
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
    
        /**
         * 修改人
         */
        private String updateUser;
    
    
    }
    

    4.控制器

    @Controller
    @RequestMapping("/sysDept/")
    public class SysDeptController {
        @Autowired
        private SysDeptService sysDeptService;
    
        @GetMapping("listUI")
        public String listUI() {
            return "dept/list";
        }
    
        @RequestMapping("form")
        public String form(Map<String,Object> map) {
            return "dept/form";
        }
    
        @GetMapping("toSelectTree")
        public String toSelectTree() {
            return "dept/selectTree";
        }
    
        @PostMapping("list")
        @ResponseBody
        public Result<IPage<SysDept>> list(@RequestParam(defaultValue = "1") Integer pageNo,
                                           @RequestParam(defaultValue = "10") Integer pageSize) {
            // 构造分页查询条件
            QueryWrapper<SysDept> queryWrapper = new QueryWrapper<>();
    
    
            Page<SysDept> page = new Page<>(pageNo,pageSize);
    
            IPage<SysDept> result = sysDeptService.selectDeptList(page, null);
            // 设置总记录数
            result.setTotal(sysDeptService.count(queryWrapper));
    
            sysDeptService.count(queryWrapper);
            return ResultUtil.ok(result);
        }
    
        @GetMapping("listTree")
        @ResponseBody
        public Object listTree() {
            // User user = getUserEntity();
            // 构建查询条件,从根查找
            QueryWrapper<SysDept> queryWrapper = new QueryWrapper<>();
            // queryWrapper.like("pids", user.getDept().getPids()+user.getDeptId()).or().eq("id",user.getDeptId());
            queryWrapper.like("pids", 0);
            List<SysDept> list = sysDeptService.list(queryWrapper);
            return list;
        }
    
        @OperLog(operModule = "部门管理",operType = "修改",operDesc = "修改部门")
        @PostMapping("save")
        @ResponseBody
        public Result<String> add(@RequestBody SysDept dept){
            // 新增
            if(dept.getId()==null){
                dept.setCreateTime(new Date());
                dept.setCreateUser("TODO");
            }
            // 设置上级部门ID
            if(dept.getPid()!=0){
                // 获取上级部门的ids然后拼接上级部门id
                SysDept parentDept = sysDeptService.getById(dept.getPid());
                dept.setPids(parentDept.getPids()+dept.getPid()+",");
            }
            if(!sysDeptService.saveOrUpdate(dept)){
                return ResultUtil.fail("添加失败");
            }
            return ResultUtil.ok("添加成功");
        }
    
        @OperLog(operModule = "部门管理",operType = "删除",operDesc = "删除部门")
        @PostMapping("/remove")
        @ResponseBody
        public Result<String> remove(@RequestParam Integer id){
            sysDeptService.removeById(id);
    
            return ResultUtil.ok("删除成功!");
        }
    
        @RequestMapping(value="{id}/select",method= RequestMethod.GET)
        public String select(Map<String,Object> map,@PathVariable Integer id) {
            SysDept sysDept = sysDeptService.getById(id);
            map.put("record",sysDept);
            return "sysDept/edit";
        }
    

    5.前端页面

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
    <head>
        <meta charset="utf-8">
        <title>部门列表</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
        <link rel="stylesheet" th:href="@{/static/plugin/layui/css/layui.css}" media="all">
    </head>
    <body>
    <table class="layui-hide" id="SysDept" lay-filter="SysDept"></table>
    
    <input type="text" id="ctx" hidden="hidden" th:value="${#request.getContextPath()}">
    
    <!--编辑表单-->
    <div class="layui-row" id="editForm" style="display:none;">
        <div class="layui-col-md10">
            <form class="layui-form layui-from-pane" action="" style="margin-top:20px">
                <input type="text" id="id" name="id" hidden="hidden">
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">上级部门</label>
                        <div class="layui-input-inline">
                            <input type="text" id="pname" name="pname" required lay-verify="required" autocomplete="off"
                                   placeholder="" class="layui-input">
                        </div>
                        <button class="layui-btn layui-btn-sm" id="chooseDeptBtn" type="button">
                            <i class="layui-icon">&#xe615;</i>
                        </button>
                        <input type="hidden" id="pid" name="pid"/>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label">部门名称</label>
                        <div class="layui-input-inline">
                            <input type="text" id="deptName" name="deptName" required lay-verify="required" autocomplete="off"
                                   placeholder="" class="layui-input">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <label class="layui-form-label">部门编码</label>
                        <div class="layui-input-inline">
                            <input type="text" id="deptCode" name="deptCode" required lay-verify="required" autocomplete="off"
                                   placeholder="" class="layui-input">
                        </div>
                    </div>
                </div>
    
    
                <div class="layui-form-item" style="margin-top:40px">
                    <div class="layui-input-block">
                        <button class="layui-btn  layui-btn-submit " lay-submit="" lay-filter="confirm">确认</button>
                        <button type="button" class="layui-btn layui-btn-primary" id="back">关闭</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
    
    <script type="text/html" id="deptToolBar">
        <div class="layui-btn-container">
            <button class="layui-btn layui-btn-sm" lay-event="add" shiro:hasPermission="dept:add">新增</button>
        </div>
    </script>
    
    <script type="text/html" id="barDemo">
        <a class="layui-btn layui-btn-xs" lay-event="edit" shiro:hasPermission="dept:edit">编辑</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" shiro:hasPermission="dept:remove">删除</a>
    </script>
    

    6 获取源码

    捐赠任意金额,评论区留下邮箱发送 :)

    在这里插入图片描述

    展开全文
  • springBoot+MyBatis+Thymeleaf+LayUI 权限管理系统
  • 项目介绍基于ThinkPHP6.0和layui的快速开发的后台管理系统。技术交流QQ群: 加群请备注来源:如gitee、github、官网等。站点地址官方网站:文档地址:演示地址:(账号:admin,密码:123456。备注:只有查看信息的...
  • thinkphp5+layui php后台管理系统,基于tp5.0 + layui2.4.5 + auth权限开发的后台管理系统,集成webuploader单图多图上传七牛云、又拍云、本地,数据库管理,toastr通知,smtp邮件,极光推送,云之讯短信,阿里大于...
  • layui 权限管理登录

    千次阅读 2019-09-11 09:35:25
    layui.use(['form'], //如果只加载一个模块,可以不填数组。获取form模块 function() { $ = layui.jquery; //function函数中定义了三个变量。主要是便于访问。 var form = layui.form...
  • 是一款基于Golang、GoFrame、Layui、MySQL等技术栈开发平台框架,拥有完善的(RBAC)权限架构和基础核心管理模块,为了缩短研发周期,系统框架集成了代码生成器,内置平台自定义研发的模板引擎,可以一键CRUD生成整个...
  • layui菜单页面,用火狐浏览器打开index.html可以查看演示,非常好用的
  • 1.说明 基于注解和AOP实现的日志管理。只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取。 2.功能展示 包括日志搜索、查看详情和批量删除。 3.业务模型 @Data @TableName("sys_oper_log") public class ...
  • 基于SpringBoot+layUI的成本管理系统,权限管理等。
  • 一款 PHP 语言基于 Laravel5.8 + Layui + MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了...
  • ThinkPHP5+Layui实现管理管理

    千次阅读 2022-03-24 16:09:05
    <!-- 主体 --> <div id="main" style="width: 100%;height:400px;"> ...div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">...form class="layui-form" action=""> <...
  • 灵活的权限控制,满足绝大部分权限需求。
  • cloud_layui 权限管理系统 项目介绍 cloud_layui是基于springcloud alibaba+...spring security为权限授权层; Redis为分布式缓存; 注册中心、配置中心选型Nacos; 流量控制框架选型Sentinel; layui+layuimini作为
  • 在上一篇文章中主要简单说明了如何使用springboot与shiro进行整合,同时简单的说明了下shiro相关核心模块,当然关于shiro的说明其实...由于很久没了解前端的知识了,上篇也说的,这次将使用layui来搭建整个系统,里面会
  • Layui权限管理

    万次阅读 2019-01-07 22:26:56
    author:咔咔 wechat:fangkangfk html导航单显示 {include file="../../../application/admin/view/public/head" /} &lt;style type="text/css"... .layui-tab{positi...
  • } @OperLog(operModule = "角色管理",operType = "修改",operDesc = "分配权限") @PostMapping("saveMenu") @ResponseBody public Result<String> saveMenu(Integer roleId, @RequestParam(value = "menuIds[]") ...
  • SpringBoot+Layui后台管理系统

    千次阅读 2022-04-25 14:09:25
    这是一个SpringBoot+Layui后台管理系统(可前后分离,有空就写一个),使用shiro安全框架,加入访问权限,对不同角色有不同的访问权限,其他管理可以依据情况添加上去。 技术栈 后端: SpringBoot 2.1.0 tk.mybatis...
  • 该项目是一套基于springboot、mybatis、thymeleaf及layui的轻量级快速开发框架、脚手架、后台管理系统、权限系统,上手简单,拿来即用,通用的项目结构为广大开发者去除了大部分的复杂繁琐的代码工作。同时对学习...
  • 基于SpringBoot与LayUI的后台管理系统 一套SpringBoot+MyBatis+FreeMarker+LayUI的后台管理系统. 适用于小体量,CRUD业务为主的后台系统快速搭建和学习. 在学习过程中发现很多地方网上没有给出一个整套的案例, 因此...
  • ssm+shiro+layui+easyui实现的后台权限管理系统 项目描述 基于SSM+Shiro+Layui+Easyui实现的后台权限管理系统 丰富的代码注释会很方便于你的理解,清晰的代码层次会让你更清楚的明白企业级架构!希望能在有限的...
  • layui2.5.6 + thinkphp6.0.2 权限管理后台,简单的权限管理,thinkphp6的最新版本,多应用模式

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,079
精华内容 2,431
关键字:

layui权限管理