Vote-Counter Svelte Themes

Vote Counter

[v3.0.0 重制版] 网页实时投票计票系统,可容纳 40+ 候选人,大屏、触摸屏友好,包含编辑模式、撤销、暂停、排序和全屏功能。

Vote Counter / 现场计票系统

一个可容纳 40+ 候选者的实时投票计票系统,适合班级选举、现场活动等场景。

功能特性

  • 🗳️ 实时计票:票数即时更新
  • 📊 热力图可视化:背景色随票数渐变
  • ✏️ 安全编辑模式:删除候选人、显示减票按钮需主动开启编辑模式
  • ↩️ 快捷撤销:支持最近 5 此操作一键回退
  • ⏸️ 暂停锁定:暂停投票并生成状态 Hash,便于现场状态记录与核对
  • 🔄 灵活排序:支持导入顺序、票数排名、姓名首字母三种排序,一键切换
  • 🔆 全屏展示:适合大屏投影演示
  • 💾 本地持久化:自动保存至浏览器 localStorage,刷新不丢失数据

技术栈

  • 前端框架:Svelte 5 + TypeScript
  • 样式:Tailwind CSS
  • 动画:Svelte 内置 transition

使用指南

基础操作

  1. 设置候选人:点击右上角 ⚙️ 按钮,批量导入名单(支持逗号或换行分隔)
  2. 投票
    • 左键点击候选人卡片上的票数 → 加票(步长可调)
    • 右键点击票数(仅 PC)→ 减票
  3. 步长调整:顶部控制栏可修改每次点击增减的票数

数据安全

  • 所有数据存储在浏览器本地,清除浏览器数据会丢失记录
  • 暂停时显示的 Hash 可用于校验当前投票状态是否被意外修改

项目结构

src/
  ├── app.html          # HTML 模板
  ├── app.ts            # 主应用组件(本代码)
  ├── lib/              # 工具函数(可选)
static/
  └── favicon.png       # 站点图标(需自行替换)

自定义与扩展

  • 修改样式:Tailwind 类名已直接写在组件中,可自由调整
  • 修改图标:替换 src/lib/assets/favicon.ico 或修改 favicon 变量为 base64 字符串
  • 增加功能:可扩展日志导出、多语言、票数阈值提醒等

注意事项

  • 暂不支持多设备同步(仅本地存储)
  • 废票计数独立,撤销时单独处理
  • 编辑模式下添加的候选人 ID 自动递增,删除后 ID 不回收
  • 暂停状态下所有投票操作被禁用

Top categories

Loading Svelte Themes