littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于 Node 和 Express 框架的年会抽奖系统

项目简介

本项目是一个用于年会的抽奖程序,采用 Node + Express + Three.js 技术栈开发。后台使用 Express 实现,前端利用 Three.js 呈现 3D 抽奖球界面,引用了 Three.js 的官方 3D 示例。系统具备奖品信息配置、参与抽奖人员信息 Excel 导入以及抽奖结果 Excel 导出等功能。

项目的主要特性和功能

  1. 实时保存抽奖结果,并可下载为 Excel 文件。
  2. 已抽取人员不会参与后续抽奖,若抽中的人员不在现场可重新抽取。
  3. 刷新或关闭服务器时,会保存当前已抽取的数据,只有点击界面重置按钮才能重置抽奖数据。
  4. 可配置每次抽取的奖品数目。
  5. 抽取完所有奖品后可继续抽取特别奖,默认一次抽取一个。

安装使用步骤

假设用户已经下载了本项目的源码文件,按照以下步骤进行安装和使用: 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】