Skip to content

guoqunabc/timekeeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🕐 会议计时器 TimeKeeper

English | 简体中文

一个专业的会议演讲计时器,功能完善、界面美观,适合各种会议场景。纯HTML/JS,零依赖,双击即用!

GitHub

License


🚀 快速开始(3 步上手)

📥 方式一:在线使用

访问在线演示:TimeKeeper Demo

注:在线版本数据仅保存在浏览器本地

🌐 方式二:下载使用(推荐新手)

  1. 下载项目

    git clone https://github.com/guoqunabc/timekeeper.git
    
  2. 打开文件

    • 双击 index.html 文件
  3. 开始使用

    • 填写演讲者姓名和时间
    • 点击"开始"按钮
    • 就这么简单! 🎉

🎯 主要功能

1️⃣ 基础计时 - 核心功能 🌟

  • 输入演讲者姓名和时间
  • 点击"开始"按钮或按空格键启动
  • 大屏幕数字显示,适合投屏
  • 智能提醒系统
    • 🟡 最后 1 分钟:数字变黄色并闪烁,温和提醒
    • 🔴 超时提醒:数字变红色并动态闪烁,强力警示(核心功能)

2️⃣ 议程模式 - 会议必备

  • 预设多个演讲者的议程
  • 自动顺序执行,无需手动切换
  • 支持拖拽排序、即时编辑
  • 完成一个自动进入下一个

3️⃣ 记录管理 - 数据不丢失

  • 自动保存每次演讲记录
  • 显示姓名、时长、超时情况
  • 支持导出为 CSV(Excel)或 JSON
  • 本地持久化,刷新不丢失

4️⃣ 中英文切换 - 国际化支持 🆕

  • 一键切换中英文界面
  • 自动保存语言偏好
  • 覆盖所有界面文本

5️⃣ 零依赖安装 - 开箱即用

  • 无需安装任何软件
  • 无需配置服务器
  • 双击 HTML 文件直接使用
  • 所有数据本地存储

📖 详细使用指南

一、基础计时模式(适合临时使用)

这是最简单的使用方式,适合临时会议或单人演讲:

步骤:

  1. 在顶部输入框填写演讲者姓名(可选)
  2. 设置分钟和秒数
  3. 点击"开始"按钮 或 按 空格键
  4. 计时结束后点击"停止"按钮
  5. 确认停止,记录自动保存

提示:

  • ⌨️ 空格键:快速开始/停止
  • ⌨️ ESC 键:重置计时器(未开始时)
  • 🟡 最后 1 分钟:数字变黄色并闪烁
  • 🔴 超时后:数字变红色并动态闪烁
  • 📊 所有记录显示在底部区域

二、议程模式(适合正式会议)

适合有多个演讲者的正式会议,提前配置好议程,会议时自动执行:

配置议程

  1. 点击右上角 ⚙️ 配置按钮
  2. 在弹出的面板中点击 "+ 添加演讲者"
  3. 填写每个演讲者的信息:
    • 姓名(必填)
    • 分钟数
    • 秒数
  4. 可以拖拽 ⋮⋮ 图标调整顺序
  5. 点击 "保存并应用"

会议执行流程

演讲者1 计时 → 点击停止 → 自动加载演讲者2 → 点击开始 → ...

✅ 无需手动切换,自动进入下一位 ✅ 支持在主界面实时编辑当前演讲者的姓名和时间 ✅ 编辑会自动同步保存到议程配置

配置面板功能

  • 添加演讲者:点击底部"添加"按钮
  • ✏️ 编辑信息:直接在输入框中修改
  • 🔄 拖拽排序:按住左侧图标拖动
  • 🗑️ 删除演讲者:点击右侧 × 按钮
  • 📥 导入议程:支持 CSV 或 JSON 文件
  • 📤 导出议程:生成备份文件
  • 🧹 清空议程:删除所有演讲者

三、导入/导出议程

导出议程

  1. 打开配置面板(点击 ⚙️)
  2. 点击底部"导出"按钮
  3. 选择格式:
    • JSON:完整备份,可再次导入
    • CSV:可用 Excel 打开编辑

导入议程

方式 1:点击导入按钮

  1. 打开配置面板
  2. 点击"导入"按钮
  3. 选择 CSV 或 JSON 文件

方式 2:拖拽导入(更快)

  1. 打开配置面板
  2. 直接拖拽文件到面板区域
  3. 自动识别并导入

CSV 格式说明

CSV 文件格式示例(可用 Excel 创建):

姓名,分钟,秒数
张三,5,0
李四,10,30
王五,3,0

注意: 第一行是表头,从第二行开始是数据

JSON 格式说明

JSON 文件格式示例:

{
  "speakers": [
    { "name": "张三", "minutes": 5, "seconds": 0 },
    { "name": "李四", "minutes": 10, "seconds": 30 },
    { "name": "王五", "minutes": 3, "seconds": 0 }
  ],
  "exportTime": "2026/1/27 20:00:00"
}

四、记录管理

查看记录

所有演讲记录自动显示在页面底部,包含:

  • 👤 演讲者姓名
  • ⏱️ 总时长 (MM:SS)
  • ⏰ 超时时长(如果超时)
  • 📅 记录时间

管理记录

  • 删除单条记录:将鼠标悬停在记录上,点击右侧 × 按钮
  • 清空所有记录:点击底部"清空"按钮
  • 导出记录:点击底部"导出"按钮,选择格式

自动保存与恢复

  • ✅ 所有记录自动保存到浏览器本地存储
  • ✅ 刷新页面不会丢失数据
  • ✅ 计时过程中关闭页面,12 小时内重新打开会自动恢复
  • ✅ 记录永久保存,除非手动清空

五、语言切换 🆕

点击右上角配置按钮下方的 语言切换按钮

  • 中文模式显示:"中"
  • 英文模式显示:"EN"
  • 点击即可切换
  • 语言偏好自动保存

🎹 快捷键

按键 功能 说明
空格 开始/停止计时 最常用的操作
ESC 重置计时器 仅在未开始时有效
Enter 确认 在确认对话框中使用

📁 项目结构

计时器/
├── 📄 index.html              # 主文件(双击打开)
├── 📄 README.md               # 中文说明文档
├── 📄 README_EN.md            # 英文说明文档
├── ⚙️  会议议程配置.js          # 配置文件(可选)
├── 📁 src/
│   └── Timer.js               # 核心代码
├── 📁 fonts/                  # 本地字体文件
│   ├── Arial.ttf
│   └── DINPro-Regular.otf
├── 📁 tests/                  # 测试文件
│   ├── 兼容性测试.html
│   ├── 自动化测试.html
│   ├── 运行测试.sh
│   └── 测试说明.md
├── 📄 配置示例1.csv           # CSV 导入示例
└── 📄 配置示例2.json          # JSON 导入示例

💡 使用技巧

新手用户

  1. 第一次使用:先用基础模式熟悉操作
  2. 临时会议:直接输入时间,点击开始
  3. 记录导出:会议结束后导出 CSV 用于存档

高级用户

  1. 正式会议:提前用配置面板设置好议程
  2. 备份议程:导出 JSON 文件作为备份
  3. 批量配置:用 Excel 编辑 CSV 后导入
  4. 大屏投屏:按 F11 进入全屏模式效果最佳
  5. 自定义配置:直接编辑 会议议程配置.js 文件

会议主持人

  1. 提前 10 分钟配置好议程
  2. 投屏到大屏幕
  3. 每位演讲者开始时点击"开始"
  4. 关注颜色变化提醒演讲者注意时间
  5. 会议结束后导出记录

❓ 常见问题

Q1: 如何从议程模式回到基础模式?

A: 打开配置面板 → 点击"清空" → 点击"保存并应用"

Q2: 计时被意外中断了怎么办?

A: 12 小时内重新打开页面,会自动恢复到中断时的状态(包括当前时间和演讲者信息)

Q3: 如何备份议程配置?

A: 配置面板 → 导出 → 选择 JSON 格式 → 保存文件。下次可以直接导入这个文件

Q4: 支持哪些浏览器?

A: 所有现代浏览器(Chrome、Edge、Firefox、Safari 等),推荐使用 Chrome 以获得最佳体验

Q5: 导出的 CSV 文件乱码怎么办?

A: 文件已包含 UTF-8 BOM 标记,Excel 应能正常打开。如仍有问题,可用记事本另存为 ANSI 编码

Q6: 数据存储在哪里?

A: 所有数据(记录、议程、设置)都存储在浏览器的 localStorage 中,仅保存在本地,不会上传到任何服务器

Q7: 可以同时打开多个计时器吗?

A: 可以,每个浏览器标签页独立运行,互不影响

Q8: 如何清除所有数据?

A: 清空记录(底部"清空"按钮)+ 清空议程(配置面板"清空"按钮)


🧪 测试

自动化测试

cd tests
./运行测试.sh

手动测试

  • 打开 tests/兼容性测试.html - 检测浏览器兼容性
  • 打开 tests/自动化测试.html - 运行功能测试

详细说明请查看 测试说明.md


🆕 更新日志

v2.2.0 (2026-01-28)

  • 🐛 修复白天模式下署名看不清的问题
  • 🌐 修复记录列表语言不同步问题,支持动态切换
  • 🐛 修复停止计时时无法保存记录的问题
  • 🔒 修复潜在的安全隐患(XSS)
  • 🐛 修复确认弹窗打开时空格键仍能触发计时的 Bug

v2.1.0 (2026-01-27)

  • ✨ 新增中英文界面切换功能
  • 🌐 支持语言偏好持久化
  • 🎨 优化按钮布局和交互

v2.0.0 (2026-01-27)

  • ✨ 可视化议程配置面板
  • ✨ 支持 CSV/JSON 导入导出
  • ✨ 拖拽排序演讲者
  • ✨ 状态自动恢复(12 小时)
  • ✨ 实时编辑主界面演讲者信息

v1.0.0

  • ⏰ 精确计时与智能警告
  • 📋 演讲记录管理
  • 🎨 专业深色界面
  • 📱 响应式设计

🤝 贡献

欢迎提交 Issue 和 Pull Request!

贡献指南

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

MIT License - 自由使用、修改和分发


📧 联系方式


🌟 Star History

如果这个项目对你有帮助,请给个 Star ⭐️

祝使用愉快! 🎉

About

Professional meeting timer - 会议计时器

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors