zxf/admin-template

基于 Laravel 11+ 的现代化管理后台模板

Maintainers

Package info

github.com/zhaoxianfang/admin-template

pkg:composer/zxf/admin-template

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.0.1 2026-04-06 07:47 UTC

This package is auto-updated.

Last update: 2026-04-06 07:53:33 UTC


README

基于 Laravel 11+ 和 PHP 8.2+ 的现代化管理后台模板包。

PHP Version Laravel Version License

特性

  • 丰富的 UI 组件 - 40+ 个可复用的 Blade 组件
  • 多种布局 - 主布局、认证布局、错误布局
  • 表单系统 - 表单构建器、多种输入组件、验证支持
  • 表格系统 - 集成 DataTables,支持 AJAX、服务器端处理
  • 图表系统 - 集成 ApexCharts,支持多种图表类型
  • 菜单系统 - 无限级递归菜单,支持权限控制
  • 通知系统 - 支持 SweetAlert2、Toastr、Notyf
  • 主题系统 - 可扩展的主题机制
  • 响应式设计 - 完美适配移动端
  • 高度可配置 - 丰富的配置选项
  • 完全中文化 - 内置中文语言包

安装

composer require zxf/admin-template

快速开始

1. 发布资源

# 发布配置文件
php artisan vendor:publish --tag=admin-template-config

# 发布视图(可选)
php artisan vendor:publish --tag=admin-template-views

# 发布语言文件
php artisan vendor:publish --tag=admin-template-lang

# 发布静态资源
php artisan vendor:publish --tag=admin-template-assets

2. 复制静态资源

将模板静态资源复制到 public 目录:

cp -r original-template/assets public/vendor/admin-template/

3. 基础使用

<?php

use zxf\AdminTemplate\Facades\AdminTemplate;

class DashboardController extends Controller
{
    public function index()
    {
        // 设置页面标题
        AdminTemplate::setTitle('仪表盘', '数据概览');
        
        // 添加面包屑
        AdminTemplate::addBreadcrumb('首页', route('admin.dashboard'));
        
        // 添加页面操作按钮
        AdminTemplate::addPageAction('导出', route('admin.export'), 'ti ti-download');
        
        return view('admin.dashboard');
    }
}
{{-- resources/views/admin/dashboard.blade.php --}}
<x-admin::layouts.master>
    <div class="row">
        <div class="col-md-4">
            <x-admin::widgets.stat-card
                title="总用户"
                :value="1234"
                icon="ti ti-users"
                color="primary"
                trend="+12%"
                trend-direction="up"
            />
        </div>
    </div>
    
    <x-admin::ui.card title="数据报表" collapsible>
        <x-admin::tables.datatable
            id="data-table"
            ajax-url="{{ route('api.data') }}"
            :columns="$columns"
            :server-side="true"
        />
    </x-admin::ui.card>
</x-admin::layouts.master>

组件列表

布局组件

组件 描述
<x-admin::layouts.master> 主布局(侧边栏+顶部导航+内容区)
<x-admin::layouts.auth> 认证布局(登录/注册)
<x-admin::layouts.error> 错误页面布局

表单组件

组件 描述
<x-admin::forms.input> 文本输入框
<x-admin::forms.select> 下拉选择框(支持 Select2)
<x-admin::forms.textarea> 文本域
<x-admin::forms.checkbox> 复选框
<x-admin::forms.radio> 单选框
<x-admin::forms.date> 日期选择器
<x-admin::forms.file> 文件上传

UI 组件

组件 描述
<x-admin::ui.card> 卡片(支持折叠/最大化/移除)
<x-admin::ui.button> 按钮
<x-admin::ui.alert> 警告框
<x-admin::ui.modal> 模态框
<x-admin::ui.tabs> 标签页
<x-admin::ui.accordion> 手风琴
<x-admin::ui.timeline> 时间线
<x-admin::ui.stepper> 步骤条
<x-admin::ui.progress> 进度条
<x-admin::ui.dropdown> 下拉菜单

表格组件

组件 描述
<x-admin::tables.datatable> DataTables 表格

图表组件

组件 描述
<x-admin::charts.apexchart> ApexCharts 图表

小部件组件

组件 描述
<x-admin::widgets.stat-card> 统计卡片

认证组件

组件 描述
<x-admin::auth.login-form> 登录表单
<x-admin::auth.register-form> 注册表单

表单构建器

use zxf\AdminTemplate\Form\FormBuilder;

$form = FormBuilder::make([
    'action' => route('admin.users.store'),
    'method' => 'POST',
])
->horizontal('col-sm-3', 'col-sm-9')
->text('name', '用户名', ['required' => true])
->email('email', '邮箱', ['required' => true])
->password('password', '密码')
->select('role', '角色', $roles, ['select2' => true])
->checkbox('is_active', '启用')
->file('avatar', '头像')
->textarea('bio', '简介', ['rows' => 4]);

return view('admin.form', compact('form'));

菜单配置

use zxf\AdminTemplate\Menu\MenuManager;

$menu = [
    MenuManager::header('主导航'),
    
    MenuManager::item('仪表盘', 'ti ti-dashboard', route('admin.dashboard')),
    
    MenuManager::submenu('用户管理', 'ti ti-users', [
        MenuManager::item('用户列表', route: 'admin.users.index'),
        MenuManager::item('角色管理', route: 'admin.roles.index'),
    ]),
    
    MenuManager::divider(),
    
    MenuManager::item('设置', 'ti ti-settings', route('admin.settings')),
];

admin_menu('sidebar', $menu);

辅助函数

// 获取模板实例
$template = admin_template();

// 设置页面标题
admin_page_title('用户管理', '管理系统用户');

// 添加面包屑
admin_breadcrumb('首页', route('dashboard'));
admin_breadcrumb('用户管理');

// 添加页面操作按钮
admin_add_action('添加用户', route('users.create'), 'ti ti-plus');

// 添加通知
admin_notify_success('操作成功!');
admin_notify_error('操作失败!');
admin_notify_warning('警告信息');
admin_notify_info('提示信息');

// 创建表单
$form = admin_form(['action' => route('store')])
    ->text('name', '名称')
    ->email('email', '邮箱');

自定义组件

创建组件

namespace App\View\Components\Admin;

use Illuminate\View\Component;

class CustomCard extends Component
{
    public function __construct(
        public string $title,
        public ?string $icon = null
    ) {}

    public function render()
    {
        return view('admin.components.custom-card');
    }
}

注册组件

use zxf\AdminTemplate\Contracts\ComponentRegistryInterface;

$registry = app(ComponentRegistryInterface::class);
$registry->register('widgets.custom', \App\View\Components\Admin\CustomCard::class);

使用组件

<x-admin::widgets.custom title="自定义卡片" icon="ti ti-star">
    内容
</x-admin::widgets.custom>

配置文件

// config/admin-template.php

return [
    'brand' => [
        'name' => '管理后台',
        'logo' => '/images/logo.png',
    ],
    
    'layout' => [
        'type' => 'default',
        'sidebar' => ['enabled' => true],
        'topbar' => ['enabled' => true],
    ],
    
    'menu' => [
        'default' => 'sidebar',
        'cache' => ['enabled' => true],
    ],
    
    'assets' => [
        'path' => 'vendor/admin-template',
        'css' => [...],
        'js' => [...],
    ],
];

文档

许可证

MIT License

作者

zxf

贡献

欢迎提交 Issue 和 Pull Request。