更新记录
1.0.0(2026-03-05) 下载此版本
- 数据结构设计:定义投票主题、选项和票数等核心数据
- 页面布局:分为投票展示区和结果展示区
- 交互逻辑:实现投票操作、防止重复投票、实时更新票数
- 样式美化:让界面更直观美观
平台兼容性
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
# 通用投票小程序系统
1. 核心适配说明
UniApp 中实现投票小程序
- 数据结构设计:定义投票主题、选项和票数等核心数据
- 页面布局:分为投票展示区和结果展示区
- 交互逻辑:实现投票操作、防止重复投票、实时更新票数
- 样式美化:让界面更直观美观
2. 核心功能说明
- 核心功能
- 展示投票标题和选项列表
- 选择投票选项并提交
- 防止重复投票
- 实时展示投票结果(含百分比和进度条)
- 重置投票(演示用)
3. 对接后端接口
- 后端集成:实际项目中需要将投票数据存储到后端(如 Node.js/Java/PHP),可通过 uni.request 接口调用
- 用户验证:添加登录验证,确保每个用户只能投票一次(可通过用户 ID 或 openid 记录)
- 多投票主题:支持创建和切换不同的投票主题
- 数据持久化:使用 uni.setStorage 缓存投票状态,防止页面刷新后数据丢失
- 分享功能:添加分享按钮,支持将投票分享给好友
4. 后端接口示例
// 获取投票数据
getVoteData() {
uni.request({
url: 'https://your-domain.com/api/vote/get',
method: 'GET',
success: (res) => {
this.voteData = res.data;
this.calcTotalVotes();
}
});
},
// 提交投票到后端
submitVoteToServer() {
uni.request({
url: 'https://your-domain.com/api/vote/submit',
method: 'POST',
data: {
voteId: this.voteData.id,
optionIndex: this.selectedIndex,
userId: this.$store.state.userId // 用户ID
},
success: (res) => {
if (res.data.code === 200) {
// 更新本地数据
this.submitVote();
}
}
});
}
5. 总结
- 本示例实现了 uniapp 投票系统的核心功能,包含投票选择、提交、结果展示和防重复投票
- 页面采用响应式布局,适配多端显示,进度条动画提升用户体验
- 实际项目中需结合后端接口实现数据持久化和用户唯一性验证,可根据需求扩展多主题、分享等功能

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 81
赞赏 1
下载 11303601
赞赏 1869
赞赏
京公网安备:11010802035340号