抽奖程序
年会抽奖程序,3D 球体抽奖,支持奖品信息配置,参与抽奖人员信息Excel
导入,抽奖结果Excel
导出
github地址: https://github.com/moshang-xc/lottery
技术
技术:Node + Express + Three.js
后台通过Express
实现
前端抽奖界面通过Three.js
实现 3D 抽奖球,引用了Three.js
的官方 3D 示例
功能描述:
- 可将抽奖结果进行保存实时下载到 excel 中
- 已抽取人员不在参与抽取,抽中的人员不在现场可以重新抽取
- 刷新或者关掉服务器,会保存当前已抽取的数据,不会进行数据重置,只有点击界面上的重置按钮,才能重置抽奖数据
- 每次抽取的奖品数目可配置
- 抽取完所有奖品后还可以继续抽取特别奖(例如:现在抽取红包,追加的奖品等),此时默认一次抽取一个
预览
安装
git clone https://github.com/moshang-xc/lottery.git
cd lottery
# 服务端插件安装
cd server
npm install
# 前端插件安装
cd ../product
npm install
# 打包
npm run build
# 运行
npm run serve
# 开发调试
npm run dev
目录结构
Lottery
├── product
│ ├── src
│ │ ├── lottery
│ │ │ └── index.js
│ │ ├── lib
│ │ ├── img
│ │ ├── css
│ │ └── data
│ ├── package.json
│ └── webpack.config.js
├── server
│ ├── config.js
│ ├── server.js
│ └── package.js
- product 为前端页面目录
- package.josn web 项目配置文件
- webpack.config.js 打包配置文件
- server 为服务器目录
- config 为奖品信息的配置文件
配置信息
- 抽奖用户信息,按指定的格式填写在
server/data/user.xlsx
文件中,不能修改文件名 - 奖品的配置信息填写在
server/config.js
文件中,不能修改文件名
// 奖品信息,第一项为预留项不可修改,其他项可根据需要修改
let prizes = [{
type: 0,
count: 1000,
title: '特别奖',
img: ''
}, {
type: 1,
count: 1,
title: '华为Mate 20X',
img: '../img/huawei.png'
}
...
];
/**
* 一次抽取的奖品个数
* 顺序为:[特别奖,一等奖,二等奖,三等奖,四等奖,五等奖]
*/
const EACH_COUNT = [1, 1, 1, 1, 1, 5];
// 公司名称,用于显示在抽奖名单的title部分
const COMPANY = 'MoShang';
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。