一. 概述
年底了,又到年会时间,年会肯定少不了抽奖环节,一般公司用的抽奖程序界面都是非常简陋,我在github发现了一个比较不错的抽奖项目,本文简单使用,目的是让更多人发现这个好项目,不要再用那么丑的抽奖程序了
github官网: kenxiong / lottery
二. 环境准备
安装nodejs
下载地址https://nodejs.org/zh-cn/
三. 拉取代码,修改配置
3.1 拉取代码
git clone https://github.com/moshang-xc/lottery.git
3.2 目录结构
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 为奖品信息的配置文件
3.3 配置信息
抽奖用户信息配置
抽奖用户信息在server/data/user.xlsx
文件中,按文件格式进行填充,不能修改文件名和列头
奖品信息配置
奖品的配置信息填写在server/config.js文件中,不能修改文件名。
其中奖品 prizes 的配置描述如下:
参数 | 值类型 | 描述 |
---|---|---|
type | Number | 奖品类型,唯一标识,0 是默认特别奖的占位符,其它奖品不可使用 |
count | Number | 奖品数量 |
text | String | 奖项名称 |
title | String | 奖品描述 |
img | String | 奖品的图片地址,图片在img目录下 |
// 奖品信息,第一项为预留项不可修改,其他项可根据需要修改
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 奖品一一对应,例如上面的奖品配置对应的抽奖个数配置如下:
const EACH_COUNT = [1, 1, 5];
如上配置,表示一次抽取的奖品个数顺序为:特别奖每次抽一个,特等奖每次抽一个,一等奖每次抽五个
企业标识配置
该标识用于显示在抽奖卡片上。
const COMPANY = "MoShang";
四. 安装启动
# 服务端插件安装
cd server
npm install
# 前端插件安装
cd ../product
npm install
# 打包
npm run build
# 运行
cd dist
## 后面`8888`表示指定端口
node ../../server/index.js 8888
打开网址http://127.0.0.1:8888/index.html
![](https://img.haomeiwen.com/i17163728/74cb26b8085ae10c.png)
网友评论