定制 manuxi/sulu-appointment-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

manuxi/sulu-appointment-bundle

Composer 安装命令:

composer require manuxi/sulu-appointment-bundle

包简介

Sulu Appointment Bundle

README 文档

README

License: MIT Supports Sulu 3.0 or later

A Sulu CMS bundle for appointment management with an integrated calendar view (FullCalendar) instead of the traditional list view.

English | 🇩🇪 Deutsch

Overview

Features

  • 📅 Calendar Overview with month, week and day views (FullCalendar TimeGrid & DayGrid)
  • 🕒 Split Business Hours: Configurable morning/afternoon slots per weekday
  • 📋 Day View with appointment list on day click
  • 🔒 Collision Detection for resources (doctor/room/device)
  • 🌍 Multilingual (Sulu DimensionContent)
  • Appointment Status: scheduled, confirmed, arrived, cancelled, completed
  • 🎨 Configurable Status Colors per status
  • 📝 Status Audit Log: Every status change is tracked with timestamp and user
  • 🏥 Flexible Resources: Doctor, room, device with JSON metadata
  • 💡 View Persistence: Calendar remembers last view and date (localStorage)
  • 🖱️ Rich Tooltips: Detailed appointment info on hover
  • 🗂️ Sub-Appointments: Break appointments into multiple time slots with individual resources, statuses, and drag-and-drop reordering via a side drawer UI
  • ⏱️ Appointment Search (Availability Wizard): Smart time suggestions respecting business hours, preventing collisions, and automatically detecting the next available slot
  • Bulk Actions: Update multiple appointments in the list view simultaneously (e.g., mark as "Arrived")

Installation

Requirement: Sulu CMS 3.0+

1. Add Bundle as Local Path

In your project composer.json:

{
    "repositories": [
        {
            "type": "path",
            "url": "../SuluAppointmentBundle"
        }
    ],
    "require": {
        "manuxi/sulu-appointment-bundle": "*"
    }
}

Then:

composer update manuxi/sulu-appointment-bundle

2. Register Bundle

In config/bundles.php:

return [
    // ...
    Manuxi\SuluAppointmentBundle\SuluAppointmentBundle::class => ['all' => true],
];

3. Import Routes

Create config/routes/sulu_appointment.yaml:

sulu_appointment:
    resource: "@SuluAppointmentBundle/Resources/config/routes.yaml"

4. Create Database Schema

php bin/console doctrine:schema:update --force

Or with migrations:

php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate

5. Admin Assets

Add the bundle to assets/admin/package.json:

{
    "dependencies": {
        "sulu-appointment-bundle": "../../vendor/manuxi/sulu-appointment-bundle/src/Resources"
    }
}

Important: Add the import to assets/admin/app.js:

import 'sulu-appointment-bundle';

Install FullCalendar dependencies and build:

cd assets/admin
npm install @fullcalendar/react @fullcalendar/core @fullcalendar/daygrid @fullcalendar/interaction @fullcalendar/timegrid @fullcalendar/multimonth
npm install
npm run build

6. Clear Cache

php bin/console cache:clear

Security Context

For permissions in the admin area:

sulu.appointments.appointments

Assign permissions under Settings → Roles.

Database Tables

The bundle creates the following tables:

Table Description
app_appointments Main entity (UUID)
app_appointment_dimension_contents Multilingual content (title, start/end, status)
app_appointment_resources Resources (doctor, room, device with color + locale-independent fields)
app_appointment_resource_dimension_contents Multilingual resource content (title, description, image)
app_appointment_settings Calendar and display settings
app_appointment_status_log Status change audit trail
app_sub_appointments Sub-appointments with resource assignment and status

Usage

After installation, a new "Appointments" entry (calendar icon) appears in the admin menu.

  • Month View: Overview of all appointments with configurable display (dots, blocks, borders)
  • Week View: Detailed view with time slots and business hours
  • Day Click: Opens day view with list of all appointments
  • Create Appointment: Via "+" button in the toolbar

Appointment Status Flow

scheduled → confirmed → arrived → completed
                ↘ cancelled

Each status change is automatically logged with timestamp and user for full traceability.

Configuration

Calendar Settings

Access via Admin → Appointments → Settings

See Settings Documentation for detailed configuration options.

Resources

Resources represent entities that appointments are assigned to (doctors, rooms, devices). Each resource uses Sulu DimensionContent for multilingual title, description, and image, plus locale-independent fields like type, color, and capacity.

See Resources Documentation for details.

Sub-Appointments

Appointments can be broken down into individual time slots (sub-appointments), each assigned to a specific resource with its own status and time range. A side drawer provides a visual management interface with drag-and-drop reordering and progress tracking.

See Sub-Appointments Documentation for details.

Troubleshooting

Calendar Not Showing

  1. Check that FullCalendar dependencies are installed
  2. Check browser console for JS errors
  3. Verify the import exists in assets/admin/app.js
  4. Rebuild: npm run build in assets/admin folder

API Error 404

Check that routes are loaded correctly:

php bin/console debug:router | grep appointment

No Appointments Visible

Appointments must be in LIVE stage. The calendar only shows published appointments.

Documentation

manuxi/sulu-appointment-bundle 适用场景与选型建议

manuxi/sulu-appointment-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 06 月 01 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 manuxi/sulu-appointment-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 manuxi/sulu-appointment-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 manuxi/sulu-appointment-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 13
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-01