全文共2229字,预计阅读需要10分钟
前言
前段时间,单位库房里淘出一批“小宝贝”——耳机、充电宝、小电风扇,数量不多,但大家都想分一杯羹。领导眼珠一转,说端午前的例会不搞别的了,就搞个抽奖把这些东西都抽掉,让你们开心回去过节吧。
。要么收费,要么丑得像个古董,要么没法导入名单,要么导不出中奖记录,还有的广告弹得比鞭炮还密。一圈下来,没有一个正经能用的,老板又不批预算,我只好硬着头皮挑了个“相对能看”的丢给领导
。



。结果领导沉默三秒,在“将就”和“掏钱”之间,选了第三条路:让我自己开发一个
。说什么又不难,你以前也是程序员,随便搞搞就好。我直接祭出拒绝三连:全忘了、没空、时间不够。结果领导微微一笑:“搞出来,奖品你先挑一个。刚好我也缺个充电宝,就半推半就应下来了
。
)
;也别问为什么不用Copilot、Cursor,毕竟没人付费上班,懂的都懂。
)
。要能上传抽奖人名单 要能导出中奖人名单 要能进行多轮抽奖、并且每轮奖品和数量都不同
奖项每人只能中奖一次 算法要公平工作,不能有黑幕,每次抽奖,都需要抽奖当前的时间进行多次随机计算
要能避免浏览器被误刷新 人数少的奖项要有个抽奖动画,人数多的选项就不需要显示动画了
我要用html和JavaScript做一个抽奖程序,单页面即可,功能需求如下:1、抽奖参与人支持上传Excel文件,第一行为标题行,第二行开始为数据行。列分别为:工号、姓名、部门。2、抽奖参与人支持页面直接添加。3、抽奖分为多轮,每轮可以选择不同的奖品和奖品的数量,但每轮的奖品是一样的。4、每人每轮只能参与一次,该规则贯穿整个抽奖,需要在第一轮抽奖开始前选择。5、每抽取一个人,都要显示抽奖动画。抽奖动画有2种显示方式:1是每个人都显示一次,2是不显示抽奖动画,直接出结果。每轮都可以单独选择。6、每轮结果都需要显示在页面上,下一轮抽奖不会清空上一轮抽奖的结果。7、最终全部抽奖结果需要可以导出,要求包含:抽奖轮次、奖品、本轮奖品数量、中奖人工号、中奖人姓名、中奖人部门、中奖时间。8、所有数据需要缓存到浏览器sessionstorage中,确保刷新页面后还能回到上次状态。9、要有一个按钮可以重置抽奖,将所有数据清空,清空前,需要二次提醒。10、所有配置、参与人、抽奖参数、奖品等,要能做出配置文件,直接导出配置文件,并提供导入配置文件功能,不需要导出中将人。11、开始抽奖后显示一个全局弹出层,覆盖整个浏览器窗口。抽奖弹出层上方显示中奖人,窗口下方显示滚动动画。抽奖完毕后,抽奖弹出层窗口不要自动关闭,页面右上角提供一个手动关闭窗口的按钮。12、“每个人都显示动画”模式,每抽一人都显示抽奖动画,每次抽中一人,抽奖动画停留显示2秒,然后继续抽取,中将人浮动在抽奖弹出层窗口上方依次排列,抽完一人,浮动显示增加一人。13、“不显示动画直接出结果”模式,不显示抽奖动画,直接一次性将所有中将人浮动在抽奖弹出层窗口上方依次排列。


。抽奖人参与抽奖有两种规则:1是每人每轮只能参与一次,2是每人全局只能参与一次。规则可以自由选择,但该规则贯穿整个抽奖,需要在第一轮抽奖开始前选择。
。
:
{"version": "1.0","globalRule": "global","participants": [{"id": "EMP0001","name": "吴洋妍","dept": "市场营销部"}],"rounds": [{"prize": "充电宝","count": 5,"animationMode": "animate"}],"exportedAt": "2026-06-19T18:12:24.145Z"}



)。
。如果对这个抽奖程序感兴趣的,或者想要完整deepseek关键词的,可以后台回复【002】获取程序文件
夜雨聆风