用户已于 2026-10-29 确认方案 1(扩展 calendarKind)并授权撰写本设计。
现有 Web /pl/calendar-module/dispatch-calendar 与小程序 H5 /m/pl/dispatch-calendar 页内 Tab 为:酸派车日历、碱派车日历、实际派车信息。客户需要在「碱派车日历」之后增加「其他日历」,用于酸/碱以外其他产品的手工派车。
「其他日历」功能、交互、样式与酸/碱手工日历完全一致;两端(Web + H5)同步增加。产品与车辆选择器仍共用现有主数据接口,不按产品分类过滤。实际派车信息 Tab 行为与样式不变。不新增菜单或权限码,继续使用现有 dispatch-calendar:list / dispatch-calendar:manage(Web 与 mini 前缀)。
Tab 顺序固定为:
acid)alkali)other)actual)手工三类 Tab 均挂载现有 ManualCalendar,仅传入不同的 calendarKind 与标题;「其他日历」标题文案为「其他日历」。主题 class manual-calendar-theme 在 acid / alkali / other 时启用。不新增独立组件、不改手工日历视觉主题。
模式沿用既有:P08 页内 Tab + P01 简单 CRUD + P09 查看弹窗 + P27 日历派生展示。
继续使用表 pl_dispatch_calendar。calendar_kind 允许值由 acid | alkali 扩展为 acid | alkali | other。列类型已是 varchar(16),无需改列结构;补充幂等迁移仅更新字段 COMMENT,并同步模型注释与 docs/sql 基线注释(若仓库有对应 DDL 快照)。
列表、详情、创建、更新、删除均按当前 Tab 的 calendarKind 隔离;三类手工数据互不可见。更新时不允许修改 calendarKind(与酸/碱现状一致)。非法 calendarKind 返回 422。
API 路径与参数形状不变:查询参数 / 请求体字段 calendarKind 增加合法值 other。车辆、产品选项接口不变。
| 层 | 改动 |
|---|---|
| 后端 service / schema / model | CALENDAR_KINDS 与校验文案纳入 other;COMMENT 同步 |
| 后端测试 | other 隔离、非法 kind、不可跨类型改 kind |
| Web / H5 入口 | Tab + ManualCalendar 挂载;主题 class 覆盖 other |
| 前端类型 | DispatchCalendarKind 增加 'other' |
| SQL | 新迁移更新 COMMENT;必要时同步 docs/sql 注释 |
| 前端相关单测 / 浏览器脚本 | 若硬编码仅 acid/alkali,则扩展覆盖 other |
other 记录与酸/碱互不串;不可将记录的 calendarKind 改成另一类型。calendarKind 仍 422。