diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..749daec --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,83 @@ +# 更新日志 (CHANGELOG) + +> 项目:在线点名抽奖 (PROJ-20260523012) +> 格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/) + +--- + +## [v1.1.0] - 2026-05-24 + +### ✨ 新增 + +- **名单编辑功能(M001)** + - 导入名单后,每个名字标签旁显示 × 删除按钮 + - 点击 × 可删除对应人员,删除后自动同步后门配置(必中名单、排除名单、概率设置) + - 抽奖进行中时删除按钮自动禁用,防止误操作 + +- **概率后门(M002)** + - 后门面板新增概率设置区域 + - 可为每个人设置概率权重(0-100),权重越高中奖概率越大 + - 概率为 0 的人不参与抽奖 + - 优先级:必中名单 > 概率权重 > 排除名单 + - 加权随机算法:按权重比例分配,不强制归一化 + +### 🎨 优化 + +- **滚动动画改进(M003)** + - 从中心切换改为从左到右水平滚动(老虎机效果) + - 初始速度快,逐渐减速 + - 总时长约 3.5 秒 + +- **弹窗显示中奖结果(M004)** + - 抽奖结束后弹出模态弹窗 + - 包含大尺寸头像、名字、"恭喜"字样 + - 点击 × 或遮罩层可关闭 + +- **烟花效果改进(M005)** + - 烟花直接在目标位置爆炸(移除底部上升阶段) + - 爆炸点围绕弹窗位置分布 + - 持续时间延长至 5 秒 + - 粒子数量增加,效果更密集 + +### 🔧 技术变更 + +- 状态结构扩展:`state.backdoor.probabilities` 新增权重字段 +- 抽奖引擎改造:`LotteryEngine.pickOne()` 从等概率随机改为加权随机 +- 动画模块重构:`AnimationEngine` 滚动方式从中心切换改为水平滚动 +- Canvas 烟花系统优化:移除上升状态,改为直接爆炸模式 + +--- + +## [v1.0.0] - 2026-05-23 + +### ✨ 初始版本 + +- **名单管理** + - 手动输入(支持多种分隔符) + - TXT 文件导入 + - CSV/TSV 文件导入 + - 自动去重 + +- **抽奖引擎** + - 单次模式(抽中移除) + - 重复模式(抽中保留) + +- **动画展示** + - 名字快速切换滚动(3 秒减速停止) + - 圆形头像展示(取名字后两字) + - 个性配色(名字哈希生成) + - Canvas 粒子烟花动画(约 4 秒) + - 结果公告文字 + +- **历史记录** + - 轮次编号、中奖人、中奖时间 + - 页面底部表格展示 + +- **后门设置**(长按「开始抽奖」3 秒) + - 必中名单(文本输入 / 复选框选择) + - 排除名单(文本输入 / 复选框选择) + +--- + +[v1.1.0]: https://github.com/online-attendance-lottery/compare/v1.0.0...v1.1.0 +[v1.0.0]: https://github.com/online-attendance-lottery/releases/tag/v1.0.0 diff --git a/Code/docs/frontend-architecture.md b/Code/docs/frontend-architecture.md new file mode 100644 index 0000000..b4cec5b --- /dev/null +++ b/Code/docs/frontend-architecture.md @@ -0,0 +1,1268 @@ +# 在线点名抽奖 — 前端架构设计文档 + +> 项目 ID: PROJ-20260523012 +> 类型: 纯静态 Web(单 HTML 文件) +> 约束: 无后端、无外部依赖、无持久化、CSS/JS 全部内嵌 + +--- + +## 1. 技术选型 + +| 维度 | 选择 | 理由 | +|------|------|------| +| 文件格式 | 单个 `.html` | 零部署,双击即可运行 | +| CSS | 内联 ` + +
+| 轮次 | 中奖人 | 时间 |
|---|