const app = getApp();
// 连接云数据库
const db = wx.cloud.database();
// 获取集合的引用
const activityQuestion = db.collection('activityQuestion');
const activityRecord = db.collection('activityRecord');
const activityScore = db.collection('activityScore');
// 数据库操作符
const _ = db.command;
Page({
/**
* 页面的初始数据
*/
data: {
questionList: [],
index: 0,
chooseValue: [],
totalScore: 0,
wrong: 0,
wrongList: [],
wrongListSort: [],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
// 获取题库-函数执行
this.getQuestionList()
},
// 获取题库-函数定义
getQuestionList() {
// 显示 loading 提示框
wx.showLoading({
title: '拼命加载中'
});
// 数据库集合的聚合操作实例
activityQuestion
.aggregate()
.match({ //类似于where,对记录进行筛选
true: _.exists(true)
})
.sample({
size: 20
})
.end()
.then(res => {
// 获取集合数据,或获取根据查询条件筛选后的集合数据。
console.log('[云数据库] [activityQuestion] 查询成功')
console.log(res.list)
let data = res.list || [];
// 将数据从逻辑层发送到视图层,通俗的说,也就是更新数据到页面展示
this.setData({
questionList:data,
index: 0
});
// 隐藏 loading 提示框
wx.hideLoading();
})
},
// 选中选项事件
radioChange(e){
this.data.chooseValue[this.data.index] = e.detail.value;
},
// 下一题/提交 按钮
nextSubmit(){
// 如果没有选择
if (this.data.chooseValue[this.data.index] == undefined || this.data.chooseValue[this.data.index].length == 0) {
return wx.showToast({
title: '请选择答案!',
icon: 'none'
})
}
// 判断所选择的选项是否为正确答案
this.chooseJudge();
// 判断是不是最后一题
this.lastJudge();
},
// 判断所选择的选项是否为正确答案
chooseJudge(){
var trueValue = this.data.questionList[this.data.index]['true'];
var chooseVal = this.data.chooseValue[this.data.index];
if (chooseVal.toString() != trueValue.toString()) {
// 答错则记录错题
this.data.wrong++;
this.data.wrongListSort.push(this.data.index);
this.data.wrongList.push(this.data.questionList[this.data.index]._id);
}else{
// 答对则累计总分
this.setData({
totalScore: this.data.totalScore + 5
})
}
},
// 判断是不是最后一题
lastJudge(){
if (this.data.index < this.data.questionList.length - 1) {
// 如果不是最后一题,则切换下一题
let index = this.data.index + 1;
this.setData({
index
})
} else {
// 如果是最后一题,则提交答卷
this.addExamRecord()
}
},
// 提交答卷
addExamRecord(){
wx.showLoading({
title: '提交答卷中'
});
let examResult = {
wrong: this.data.wrong,
totalScore: this.data.totalScore,
nickName: app.globalData.hasUserInfo?app.globalData.userInfo.nickName:'',
avatarUrl: app.globalData.hasUserInfo?app.globalData.userInfo.avatarUrl:''
};
activityRecord.add({
data: {
...examResult,
createDate: db.serverDate()
}
}).then(res => {
activityScore.add({
data: {
...examResult,
createDate: db.serverDate()
}
})
// 跳转到答题结果页,查看成绩
wx.reLaunch({
url: '../result/result?id=' + res._id
});
wx.hideLoading();
})
}
})
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
答题活动小程序v2.0,基于云开发的微信答题小程序,软件架构是微信原生小程序+云开发。主要包含六大功能模块页面,首页、答题页、结果页、活动规则页、答题记录页、排行榜页。适用于交通安全答题、 消防安全知识宣传、 安全生产知识学习、答题活动、有奖答题等。
资源推荐
资源详情
资源评论
收起资源包目录
answer-activity-applet-v2.0-master.zip (74个子文件)
answer-activity-applet-v2.0-master
sitemap.json 191B
project.private.config.json 791B
20220322094002.png 143KB
pages
index
index.wxml 900B
index.js 931B
index.json 27B
index.wxss 326B
details
details.js 847B
details.wxss 67B
details.wxml 1KB
details.json 71B
rank
rank.wxml 730B
rank.wxss 36B
rank.js 1KB
rank.json 68B
history
history.wxml 418B
history.json 71B
history.js 2KB
history.wxss 34B
test
test.json 65B
test.wxss 394B
test.wxml 1KB
test.js 4KB
result
result.wxss 387B
result.wxml 2KB
result.js 1KB
result.json 46B
20220322094558.png 115KB
20211125222854.png 512KB
app.json 414B
20220322093236.png 493KB
project.config.json 2KB
20211125223509.png 182KB
20220507230441.png 44KB
20220322093906.png 83KB
app.js 290B
20220507230759.png 29KB
20220322094547-3.png 120KB
image
bg.jpg 665KB
20220322093523-3.png 137KB
20220322093906-3.png 83KB
20220322094506.png 136KB
20220322093523.png 137KB
utils
util.js 429B
20211125223031.png 149KB
app.wxss 512B
20220322093236-3.png 493KB
style
guide.wxss 0B
colorui.wxss 61KB
icon.wxss 69KB
20211125223100.png 170KB
4-水印.jpg 246KB
后台-题目管理.png 33KB
后台-题库.png 69KB
20220507231021.png 23KB
20220322094547.png 120KB
20220322094209.png 128KB
20211125222923.png 248KB
20211125223003.png 134KB
3-水印.jpg 259KB
20211125223754.png 301KB
qrcode.jpg 90KB
20220507230849.png 19KB
20220322094002-3.png 143KB
.gitignore 145B
20220322094209-3.png 128KB
20211125223825.png 141KB
20220322094506-3.png 136KB
20220322094558-3.png 115KB
20220322093346.png 108KB
20211125223118.png 126KB
20220322094449-3.png 90KB
20220322093346-3.png 108KB
20220507230704.png 41KB
共 74 条
- 1
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7353
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Android系统的手机地图应用软件开发中文3.78MB最新版本
- AndroidStudio环境下的jni调用(NDK)的方法中文最新版本
- Vue + UEditor + v-model 实体绑定.zip
- 最新版本ArcGISForAndroidEclipse环境配置中文最新版本
- VS Code 的 Vue 工具 .zip
- AndroidStudio快捷键中文最新版本
- TypeScript 和 Vue 的入门模板,带有详细的 README,描述了如何将两者结合使用 .zip
- The Net Ninja YouTube 频道上的 Vue.js 2 播放列表的课程文件.zip
- TDesign 的 Vue3.x UI 组件库 .zip
- 机器学习,深度学习,卷积神经网络ppt详细说明,详细推导
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功