mgmt / tpl-admin
基于 laravel、amis 开发的后台框架~
Requires
- php: >=8.2
- ext-gd: *
- ext-zip: *
- illuminate/support: ^11.0|^12.0|^13.0
- laravel/sanctum: ^4.0
Requires (Dev)
None
Suggests
- league/flysystem-aws-s3-v3: 使用阿里云 OSS、腾讯云 COS、华为云 OBS 上传时需要
- workerman/workerman: 启用系统设置 → 通讯配置(WebSocket 推送)时需要;tpl:install 会自动安装
Provides
None
Conflicts
None
Replaces
None
README
基于 Laravel + amis 的后台管理扩展包 mgmt/tpl-admin。
用后端 JSON Schema 描述页面,由 amis 渲染,减少前后端联调成本;需要深度定制时也可自行开发前端。
当前版本: 1.0.8 · 更新日志 环境要求: PHP ≥ 8.2,Laravel 11.x – 13.x
| 资源 | 链接 |
|---|---|
| Packagist | https://packagist.org/packages/mgmt/tpl-admin |
| 码云仓库 | https://gitee.com/zhaohongxiang/mgmt-tpl-admin |
| 组件文档 | docs/components.md |
| 升级教程 | docs/upgrade.md |
| 扩展开发 | docs/extensions.md |
| WebSocket 通讯 | docs/ws.md |
功能概览
- 后台用户 / 角色 / 权限 / 菜单
- 数据字典、通知公告、轮播图、文章、用户反馈
- 系统设置:敏感词、字段脱敏、短信、协议、缓存、上传
- 操作日志 / 登录日志 / 登录失败锁定
- 微信会员管理、小程序 API、代码生成器、动态 API 模板
- WebSocket 实时通讯(Workerman)
- 多模块与图形化扩展管理,amis 组件封装 150+
安装
在 Laravel 宿主项目(非本目录)执行:
composer create-project laravel/laravel example-app && cd example-app
# Laravel 11+ 需安装 API 脚手架
php artisan install:api
# .env 配置数据库
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tpl_admin
DB_USERNAME=root
DB_PASSWORD=
# 安装扩展包并初始化
composer require mgmt/tpl-admin
php artisan tpl:publish
php artisan tpl:install
启动应用后访问 /admin,默认账号 admin / admin。
更新
composer update mgmt/tpl-admin
php artisan tpl:update --yes
php artisan tpl:publish --assets --force --yes
| 步骤 | 作用 |
|---|---|
composer update | 拉取新版本到 vendor/mgmt/tpl-admin |
tpl:update | 库表 / 菜单增量脚本 |
tpl:publish --assets --force | 覆盖前端资源到 public/admin-assets |
完成后强制刷新浏览器(Ctrl+F5)。预览升级范围:
php artisan tpl:update --list
php artisan tpl:update --dry-run
WebSocket 通讯
基于 Workerman 提供实时推送、握手鉴权、限流、离线补发与集群模式(Redis relay)。
# 首次:发布启动脚本到项目根
php artisan tpl:ws:publish
# 守护 / 平滑重启 / 状态 / 停机
php artisan tpl:ws start -d
php artisan tpl:ws reload
php artisan tpl:ws status
php artisan tpl:ws stop
# 清空离线消息
php artisan tpl:ws:flush-offline
后台「系统设置 → 通讯配置」启用并填写主机 / 端口 / token。前端引入 tpl-ws-client.js 即可使用。详见 docs/ws.md。
常用命令
| 命令 | 说明 |
|---|---|
tpl:publish | 发布资源 / 配置 / 语言包 |
tpl:install | 初始化数据表与 app/Admin |
tpl:update | 版本增量升级 |
tpl:doctor | 运行时健康检查 |
tpl:check | 检查是否有新版本 |
tpl:create-user | 创建后台用户 |
tpl:reset-password | 重置后台用户密码 |
tpl:menu | 菜单维护 |
tpl:gen-route | 生成后台路由文件 |
tpl:make-page | 生成 Blade iframe 页面 |
tpl:ide-helper | 生成 IDE 辅助文件 |
tpl:ai-install | 安装 AI 编辑器资料 |
tpl:db | 检查后台所用数据库连接 |
tpl-module:init | 初始化多模块 |
tpl-module:init-db | 初始化模块数据库 |
tpl:publish 常用参数:--assets、--lang、--config、--views、--force、--yes。
子功能概览
| 功能 | 后台位置 | 关键点 |
|---|---|---|
| 短信验证码 | 系统设置 → 系统配置 | 验证码写入 Laravel 缓存;支持阿里云 / 腾讯云 / 华为云 |
| 文件上传 | 系统设置 → 上传配置 | 本地 / 阿里云 OSS / 腾讯云 COS / 华为云 OBS;本地需 php artisan storage:link |
| 用户协议 | 系统设置 → 协议配置 | 注册 / 隐私 / 注销三套;公开 API 在 api/wechat 前缀下 |
| 用户反馈 | 内容管理 → 反馈管理 | 会员 API:GET/POST /api/wechat/feedbacks |
| 缓存配置 | 系统设置 → 缓存配置 | 仅运行时覆盖,不改 .env |
详细接口与字段见 docs。
开发本仓库(可选)
调试未发布的源码,在宿主 composer.json 接入 path 仓库:
{
"require": { "mgmt/tpl-admin": "@dev" },
"repositories": [{ "type": "path", "url": "../mgmt-tpl-admin" }]
}
composer update mgmt/tpl-admin
修改 admin-views 后 cd admin-views && npm run build,产物随包发布;宿主侧 php artisan tpl:publish --assets --force --yes 覆盖。
AI 编辑器
php artisan tpl:ai-install
生成 .agents,可按需复制到 Cursor / Claude Code / Trae。本地改过用 --force 覆盖。
贡献
Bug 与 PR 流程见 CONTRIBUTING.md。
git clone https://gitee.com/zhaohongxiang/mgmt-tpl-admin.git