Appearance
BizVote 投票评选
轻量通用投票 / 评选容器,纯零依赖:单选 / 多选(限票数)、匿名与实名名单、截止倒计时到点自动止投、实时进度条与占比、结果定格降序排序、截止前撤销重投。本地统计零接口即可用,request / submitRequest 注入切换服务端统计口径。适合内部评选、征名、方案表决、活动选期等场景。
基础用法
团建活动形式投票
每人一票,得票最高的方案将进入预算评审。
多选限票
年度最受欢迎培训课程评选 多选 · 最多 2 项
请为本年度最有收获的课程投票(最多 2 门)。
实名投票
值班代表推选(实名)
实名公示,投票记录可追溯。
截止倒计时
接口命名方案表决
距截止 00:02:00倒计时归零自动止投;演示截止时间为 2 分钟后。
每秒刷新倒计时;最后 1 分钟转红加急提示;归零后投票按钮消失、显示「投票已截止」。
实时结果(服务端拉取)
新版本默认主题公投
点击刷新拉取最新票数(演示为随机增长)。
结果定格排序
中秋礼盒口味评选(已截止)
投票已截止图片选项(作品评选)
司庆海报设计评选 多选 · 最多 2 项
从 4 幅入围作品中选出 2 幅进入终审。
服务端统计
部门聚餐场次投票(服务端统计)
首次进入经 request 拉取票数;提交经 submitRequest 确认(第二次提交会演示失败停留);远程模式下撤销仅复位本地状态,票数以服务端为准。
撤销重投
会议室命名投票
距截止 00:30:00投票后出现「撤销重投」:票数回退、选择清空,可改投其他选项;截止后撤销入口自动消失。
插槽扩展
季度技术之星提名表决
option 作用域含 option / selected / myVoted / votes / percent;footer 作用域含 total / closed。最近状态:(未选择)
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | string | '投票' | 标题(多选时自动追加限票标签) |
| description | string | '' | 说明文案 |
| options | BizVoteOption[] | [] | 选项(label / image / votes 初始票数 / voters 实名名单) |
| multiple | boolean | false | 多选模式 |
| max-choices | number | 3 | 多选最多可选数 |
| anonymous | boolean | true | 匿名投票;false 展示投票人名单 |
| voter-name | string | '我' | 实名模式本次投票人名称 |
| deadline | string | number | — | 截止时间(时间戳或可解析字符串);到点自动止投 |
| show-results | 'always' | 'after-vote' | 'after-deadline' | 'always' | 进度条展示时机 |
| sort-results | boolean | false | 结果按票数降序(常配截止定格) |
| allow-revoke | boolean | false | 截止前允许撤销重投 |
| request | () => Promise<BizVoteOption[]> | — | 票数拉取(远程统计模式,返回最新 options 含 votes) |
| submit-request | (optionIds: string[]) => Promise<BizVoteOption[]> | — | 投票提交(resolve 返回更新后的 options) |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| vote | (payload: BizVoteSubmitPayload) | 投票提交(optionIds + 投后总票数,先于 submitRequest 抛出) |
| revoke | () | 撤销重投 |
Slots
| 插槽名 | 说明 |
|---|---|
| option | 选项内容区(作用域:option / selected / myVoted / votes / percent) |
| footer | 底部扩展(作用域:total / closed) |
Expose
| 属性/方法 | 说明 |
|---|---|
| refresh | () => Promise<void> 重新拉取票数(request 注入时) |
| get-result | () => { total; items: { id; label; votes; percent }[] } 当前统计快照 |
| reset | 重置为初始票数与未投状态 |
口径说明
- 防重投:组件内已投票即锁定(显示「我的票」徽标),撤销需显式开启 allow-revoke;同一页面多实例各自独立。
- 占比:
percent = 选项票数 / 总票数(四舍五入),总票数为 0 时全部显示 0%。 - 远程模式撤销:无 revokeRequest 契约时,撤销仅复位本地投票状态,票数以服务端为准(可在 revoke 事件中自行回退服务端票数)。
- 倒计时:仅设置 deadline 时启动每秒计时器,组件卸载自动清理。