# 20260812 更新：日程日历（待办 + 提醒）与 VIP 组件黑金质感

## 一、日程日历页（新增）

菜单：「概览」组下「日程日历」（`/calendar`，name `WorkCalendar`，component `/dashboard/calendar/index`，SQL 见 sql 仓库 `20260812/xk_calendar_todo.sql`）。

### 目录结构

```
views/dashboard/calendar/
├── index.vue                    # 日历页（自定义头部 + antd Calendar + 右键菜单）
├── api/index.ts                 # calendar-todo CRUD API
├── config/
│   ├── constants.ts             # 提醒渠道选项（notice/email/sms）
│   └── form.ts                  # 待办弹窗表单 schema（级联显隐）
├── components/
│   ├── todo-modal.vue           # 新建/编辑待办弹窗（含删除）
│   └── day-todos-modal.vue      # 当日待办列表弹窗（勾选完成/编辑/删除）
└── utils/almanac.ts             # 黄历计算封装（lunar-typescript，带缓存）
```

### 功能点

- **黄历**：农历（初一显示月名）、二十四节气、节日、法定调休「休/班」徽标；格子副标题按 节日 > 节气 > 农历日 择优展示，多个节日 Tooltip 全量提示
  - 中国传统节日（春节/端午/中秋…）按农历推算；国际节日（元旦/圣诞/母亲节…）按公历——由 `lunar-typescript` 内置数据支持（新增依赖）
- **右键菜单**：任意格子右键 → 新建待办 / 查看当日待办（Teleport 到 body，贴边自动内收，点击/滚动关闭）
- **待办**：格子内直接显示前 3 条（完成划线），超出显示「还有 N 项」；hover 格子出现快捷「+」
- **详情备注为 Markdown**：编辑用新封装的 `MarkdownEditor` 表单组件（`components/form/components/markdown-editor.vue`，自动注册、全项目可复用：精简工具栏 + 主题跟随亮暗），弹窗放宽到 640px；站内信提醒以 `edit_type=1` 发送、消息详情 MdPreview 渲染，邮件提醒后端转 HTML
- **提醒**：待办可设提醒时间 + 多选渠道（站内信/邮箱/短信），表单级联显隐（选邮箱/短信渠道时出现收件人输入，不填回落个人资料）；后端每分钟扫描发送
- **头部**：公历年月 + 农历干支生肖年、图例、上月/今天/下月、新建待办
- 全部配色走 `hsl(var(--xxx))` 主题变量，暗色模式自动适配

### 新依赖

- `lunar-typescript@1.8.6`（农历/节气/节假日计算，纯 TS 无副作用）

## 二、VIP 组件黑金质感升级

旧版蓝绿渐变卡面（#2c3e50 → #6acdbb）统一升级为「黑金贵宾卡」视觉：深色曜石渐变底 + 右上暗金光晕 + 斜切流光 + 金色描边 + 香槟金文字。深色卡面亮/暗主题通用，删除了原 `.dark` 渐变分支。

| 组件 | 改动 |
| --- | --- |
| `components/vip/StoreVipMemberCard.vue` | 诊所设置会员卡：黑金卡面 + glow/sheen 装饰层，期限改金字胶囊并入标题行 |
| `components/vip/HeaderVipBadge.vue` | 顶栏 VIP 气泡卡头图：黑金化 + glow，期限胶囊化 |
| `components/vip/VipUpgradeModal.vue` | 开通/升级弹窗预览卡：黑金化 + glow |

`VipHubModal` / `VipStoreRecordsModal` / `StoreVipCell`（主题变量）与 `VipBadgeCombo`（纯图片）/ `VipGate`（纯逻辑）无需调整。

小程序端（xk-doctor-wx）同步升级：`vip-member-card.vue`（我的页会员卡）与 `my/vip-detail.vue`（会员详情头卡）同款黑金视觉。

## 三、后端接口（xk-api）

- `GET calendar-todo/get-list?start_time&end_time`：按范围查本人待办
- `POST calendar-todo/create|update|delete|toggle-done`
- 提醒调度：`calendar:todo-remind` 每分钟（routes/console.php）；短信模板需配 `SMS_TODO_REMIND_TEMPLATE_ID`，邮箱需配 SMTP
