---
title: 开发文档
order: 3
category: pro
---

# PisellReservationScheduleBand 开发文档

## 1 基本信息

| 项  | 内容                                                                          |
|----|-----------------------------------------------------------------------------|
| 入口 | `packages/materials/src/components/pisellReservationScheduleBand/index.tsx` |
| 实现 | `PisellReservationScheduleBand.tsx`                                         |
| 样式 | `PisellReservationScheduleBand.less`                                        |
| 类型 | `types.ts`                                                                  |

## 2 组合关系

```text
PisellReservationScheduleBand
├── PisellReservationSchedule（value = effective.date）
└── PisellTimeNavigator（referenceDate = effective.date，value = effective.at）
```

## 3 归一化逻辑

- `startOfDay`：所有 `date` 以日为粒度。
- `withTimeOnDate(dateDay, timeSource)`：将 `timeSource` 的时、分合并到 `dateDay`，秒与毫秒置 0。
- `emit`：每次对外回调前都执行上述归一化。

## 4 受控 / 非受控

- `value !== undefined` 为受控；否则 `useState(internal)`，`defaultValue` 可部分字段，缺省为「当天 0 点 + 当前时刻」。

## 5 透传类型

- `scheduleProps`：`Omit<PisellReservationScheduleProps, 'value' | 'onChange' | 'defaultValue'>`
- `timeNavigatorProps`：`Omit<PisellTimeNavigatorProps, 'value' | 'onChange' | 'referenceDate' | 'defaultValue'>`

## 6 低代码

Meta：`packages/materials/lowcode/pisell-reservation-schedule-band/meta.ts`，分类「数据录入」。
