项目介绍
- 基于ThinkPHP8.X + Layui开发的权限后台管理系统
- 已实现后台管理系统中通用的功能以及插件化开发
- zeAdmin是一款ThinkPHP + Layui的极速后台开发框架。
- 实现了后台系统常见的RBAC权限管理,并且内置了诸多好用的工具。
提示
程序后台支持两种菜单模式,分别是 『树型的菜单』和 『呼出型菜单』
注意: 两种菜单不能随意切换,由安装时决定使用那种类型的菜单。
原因: 不能随意切换是为了不用维护两套代码,减少不必要的工作。
快速上手
在线体验的账号和密码都是 test 123456
注意:体验环境部分数据不能保存,需自行安装再测试! 💯
主要特性
- 基于RBAC的权限管理系统
- 强大的代码构建功能 (包含控制器、模型、视图、菜单等)
- 支持多主题颜色的自由切换和菜单标签记忆等。
- 对常用JS插件进行二次封装,使JS代码变得更简洁,更加易维护。
- 支持国际化多语言的支持 (需要自定去翻译)。
- 完善的日志记录系统无需您额外编写代码自动记录。
- 支持插件化的开发,解耦您的代码,更易于维护和扩展。
- 支持自定义后台访问路径,防止别人找到对应后台地址。
- 内置文件附件管理系统,静态资源管理一目了然。
- 内置了很多常用的组件和工具 (后面介绍)
内置功能
- 用户管理:该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组)
- 岗位管理:配置系统户所属担任职务。
- 菜单管理:配置系统菜单操作权限访问路径等。
- 角色管理:配置角色菜单权限分配
- 水印配置:配置上传图片增加水印
- 邮件配置:配置电子邮件发送功能
- 操作日志:系统操作日志记录和查询
- 定时任务:管理定时任务的(新增、修改、删除)
- 系统缓存:管理系统产生的缓存(可自行清理)
- 附件管理:管理用户上传的图片和视频
- 文章管理:管理文章的(新增、修改、删除)
- 插件管理:管理额外的代码包
- 文件存储:管理文件的存储(本地存储、阿里云OSS、腾讯云OSS、七牛云OSS)
- Excel操作: 导入导出的方法封装
- Uniapp端: 提供uniapp端(小程序,H5)的基础代码
- 在线更新:框架定时更新,后台一键更新,保障最新框架
目录结构
目前主库存放在 Gitee 为镜像仓库!
- Gitee: https://gitee.com/
(暂无)
├─📂 server
│ ├─📂 addons // 插件目录
│ │ ├─📂 curd // CURD插件
│ │ ├─📂 ... // 其它插件
│ │
│ ├─📂 app // 应用目录
│ │ ├─📂 api // 接口应用
│ │ │ ├─📂 controller // 控制器
│ │ │ ├─📂 service // 服务层
│ │ │ ├─📂 validate // 验证层
│ │ │ ├─📂 view // 视图层
│ │ ├─📂 backend // 后台应用
│ │ ├─📂 common // 公共应用
│ │ ├─📂 frontend // 前端应用
│ │
│ ├─📂 public // WEB入口
│ │ ├─📂 install // 安装程序目录
│ │ ├─📂 locals // 本地存储目录
│ │ ├─📂 static // 静态文件目录
│ │ ├─📂 storage // 资源存储目录
│ │ ├─📄 index.php // PHP入口文件
│ │
│ ├─📂 extend // 扩展目录
│ ├─📂 route // 路由目录
│ ├─📂 runtime // 运行目录
│ ├─📂 vendor // 第三方依赖
│ ├─📄 .env // 项目环境配置文件
│ ├─📄 .example.env // 环境配置模板文件
按钮权限
提示
1、1.3.1版本后,后台端支持了按钮级别的权限控制.
2、可以控制没有权限的按钮 是否隐藏 或者 禁用不可点击。
3、用于控制权限的函数如下: {:check_perms('edit', false)}
方法说明:
check_perms(string $url, bool $hide = true)- $url:
- 该参数传入一个权限标识,【比如:
add或 **edit**等操作标识】 - 如果权限标识与本页面路径不是一致的,那你应该传完整的标识,比如:
upload/permanent - 因为这里的判断原理是,与 auth_menu菜单表 的 perms 字段的内容进行比较的
- 该参数传入一个权限标识,【比如:
- $hide:
- 是否要隐藏没有权限的元素,默认是隐藏的, 如果为**
false**则返回禁用 - 为true时返回:
layui-hide no-permission - 为false时返回:
layui-btn-forbid layui-btn-disabled
- 是否要隐藏没有权限的元素,默认是隐藏的, 如果为**
使用示例:
<!-- 因为是通过 css 的 class进行控制的, 所以方法你要写在元素的class上面, 如下: -->
<!-- 拿我们后台的 【内容->文章管理】来做示例, {:check_perms('add')} -->
<!-- 这里只传了一个 add 的权限标识, 实际上会自动补全成 content.article/add -->
<!-- 那问题来了: content.article 是哪里来的呢? 答案是: 当前访问的url解析出来的 -->
<!-- 所以我上面说如果 不是当前页面的权限 就要输入完成的权限路径 -->
<div class="layui-btn-container">
<a class="layui-btn {:check_perms('add')}" lay-event="add">
<i class="layui-icon icon-add"></i>
<span>新增</span>
</a>
<a class="layui-btn {:check_perms('del')}" lay-event="leave">
<i class="layui-icon icon-del"></i>
<span>删除</span>
</a>
</div>
<!-- 示例2: 无权限显示按钮, 但是按钮不可操作 -->
<!-- 其实就是多传一个参数, 值为false即可 如 {:check_perms('save', false)} -->
<button class="layui-btn {:check_perms('save', false)}">保存配置</button>
