Skip to content

archorfight/FatCat

Repository files navigation

🐱 FatCat Lottery - 肥猫抽奖系统

一个充满猫咪元素的年会抽奖系统,让铲屎官们期待喵星人的眷顾!

Vue 3 Three.js License

✨ 特性

  • 🐱 猫咪主题 - 全程使用猫咪元素和"猫奴黑话"
  • 🎱 3D抽奖球体 - 基于 Three.js 的炫酷 3D 粒子球体
  • 💾 本地存储 - 使用 IndexedDB 本地持久化存储数据
  • 👥 人员管理 - 支持铲屎官名单的 Excel 导入/导出
  • 🐟 奖品管理 - 灵活配置奖品等级和数量
  • 📊 数据管理 - 支持抽奖结果导出和数据重置
  • 🚀 多种部署 - 支持 Docker、Vercel 和本地运行

🚀 快速开始

本地开发

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

# 预览构建结果
npm run preview

访问 http://localhost:3000 查看效果

Docker 部署

# 构建镜像
docker build -t fatcat-lottery .

# 运行容器
docker run -d -p 8080:80 fatcat-lottery

访问 http://localhost:8080

Vercel 部署

# 安装 Vercel CLI
npm install -g vercel

# 部署
vercel

或直接导入项目到 Vercel 控制台即可自动部署。

📖 使用说明

1. 添加铲屎官(参与人员)

  • 进入"铲屎官名册"页面
  • 可以手动添加或使用 Excel 导入
  • Excel 模板包含:姓名、部门、工号

2. 配置猫粮(奖品)

  • 进入"猫粮仓库"页面
  • 添加不同等级的奖品
  • 支持自定义图标和颜色

3. 开始抽奖

  • 点击"开始吸猫抽奖"
  • 选择要抽取的奖品等级
  • 点击"开始喵选",3D 球体会旋转
  • 点击"停止",显示中奖结果

4. 数据导出

  • 在设置页面可以导出中奖结果
  • 支持重置所有数据

🎨 技术栈

  • Vue 3 - 渐进式 JavaScript 框架
  • Three.js - 3D 图形库
  • Pinia - 状态管理
  • IndexedDB - 本地数据库
  • XLSX - Excel 处理
  • Vite - 构建工具

📁 项目结构

FatCat/
├── src/
│   ├── views/          # 页面组件
│   ├── stores/         # Pinia 状态管理
│   ├── router/         # 路由配置
│   ├── styles/         # 全局样式
│   ├── App.vue         # 根组件
│   └── main.js         # 入口文件
├── public/             # 静态资源
├── index.html          # HTML 模板
├── vite.config.js      # Vite 配置
├── Dockerfile          # Docker 配置
├── vercel.json         # Vercel 配置
└── package.json        # 项目配置

🐱 猫奴词典

  • 铲屎官 = 参与抽奖的人员
  • 喵星人/主子 = 决定中奖结果的猫咪
  • 猫粮/罐头/小鱼干 = 奖品
  • 吸猫 = 观看抽奖过程
  • 投喂 = 发放奖品
  • 喵选 = 抽奖过程

🎯 奖品等级建议

  • 🏆 特等奖 - 金罐头大礼包
  • 🥇 一等奖 - 银罐头套装
  • 🥈 二等奖 - 小鱼干礼盒
  • 🥉 三等奖 - 猫薄荷
  • 🎀 幸运奖 - 逗猫棒

📝 Excel 导入格式

铲屎官名单

姓名 部门 工号
张三 技术部 001
李四 产品部 002

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🙏 致谢

灵感来源于 log-lottery 项目


😺 愿每一只铲屎官都能被喵星人眷顾!

About

猫主题 抽奖项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published