项目简介
本项目是一个用于年会的抽奖程序,采用 Node + Express + Three.js 技术栈开发。后台使用 Express 实现,前端利用 Three.js 呈现 3D 抽奖球界面,引用了 Three.js 的官方 3D 示例。系统具备奖品信息配置、参与抽奖人员信息 Excel 导入以及抽奖结果 Excel 导出等功能。
项目的主要特性和功能
- 实时保存抽奖结果,并可下载为 Excel 文件。
- 已抽取人员不会参与后续抽奖,若抽中的人员不在现场可重新抽取。
- 刷新或关闭服务器时,会保存当前已抽取的数据,只有点击界面重置按钮才能重置抽奖数据。
- 可配置每次抽取的奖品数目。
- 抽取完所有奖品后可继续抽取特别奖,默认一次抽取一个。
安装使用步骤
假设用户已经下载了本项目的源码文件,按照以下步骤进行安装和使用:
1. 复制项目:
cd lottery
2. 安装服务端插件:
cd server
npm install
3. 安装前端插件:
cd ../product
npm install
4. 打包:
npm run build
5. 运行:
npm run serve
6. 开发调试:
npm run dev
配置信息
抽奖用户信息配置
抽奖用户信息需在 server/data/user.xlsx
文件中按格式填充,不能修改文件名和列头。
奖品信息配置
奖品的配置信息填写在 server/config.js
文件中,不能修改文件名。奖品 prizes
的配置参数如下:
| 参数 | 值类型 | 描述 |
| ----- | ------ | ------------------------------------------------------------ |
| type | Number | 奖品类型,唯一标识,0 是默认特别奖的占位符,其它奖品不可使用 |
| count | Number | 奖品数量 |
| text | String | 奖项名称 |
| title | String | 奖品描述 |
| img | String | 奖品的图片地址,图片在 img
目录下 |
示例配置:
js
// 奖品信息,第一项为预留项不可修改,其他项可根据需要修改
let prizes = [{
type: 0,
count: 1000,
title: "",
text: "特别奖"
},
{
type: 1,
count: 2,
text: "特等奖",
title: "神秘大礼",
img: "../img/secrit.jpg"
},
{
type: 2,
count: 5,
text: "一等奖",
title: "Mac Pro",
img: "../img/mbp.jpg"
}
...
];
奖品每次抽取个数配置
EACH_COUNT
用于配置每次的抽奖个数,与 prizes
奖品一一对应,例如上面的奖品配置对应的抽奖个数配置如下:
js
const EACH_COUNT = [1, 1, 5];
如上配置,表示一次抽取的奖品个数顺序为:特别奖每次抽一个,特等奖每次抽一个,一等奖每次抽五个。
企业标识配置
该标识用于显示在抽奖卡片上。
js
const COMPANY = "MoShang";
License
本项目采用 MIT 许可证。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】