我想开发一个投票小程序,功能是一个投票系统,界面有投票选项,票数,投票按钮,用户不能重复对一个投票选项,并且只能投一票,投票选项、票数、投票按钮、用户投票次数都存放在云数据库中,请用代码显示出来
时间: 2024-05-21 17:13:54 浏览: 47
基于微信小程序云开发实现的投票小程序,瀑布流展示,排名,活动发布等功能
5星 · 资源好评率100%
很高兴为您服务!以下是一个简单的投票小程序的界面和代码:
界面:
投票选项1:[ ] 票数:[ ] 投票按钮
投票选项2:[ ] 票数:[ ] 投票按钮
投票选项3:[ ] 票数:[ ] 投票按钮
代码:
// 初始化云数据库
const db = wx.cloud.database()
const options = db.collection('options')
const users = db.collection('users')
Page({
data: {
options: []
},
onLoad: function() {
// 从云数据库获取投票选项列表
options.get().then(res => {
this.setData({
options: res.data
})
})
},
// 处理投票按钮点击事件
handleVote: function(e) {
const optionId = e.currentTarget.dataset.optionId
const userId = 'fakeUserId' // 假设用户已登录,获取用户ID
const user = users.where({
userId: userId,
optionId: optionId
}).get()
if (user.data.length > 0) {
wx.showToast({
title: '您已投过此项票了',
icon: 'none'
})
return
}
// 更新投票选项票数和记录用户已投票
options.doc(optionId).update({
data: {
voteCount: db.command.inc(1)
}
})
users.add({
data: {
userId: userId,
optionId: optionId
}
})
wx.showToast({
title: '投票成功',
icon: 'success'
})
}
})
// 数据库结构:
// options: { _id, voteCount }
// users: { _id, userId, optionId }
阅读全文