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;
let errorOptions = []
Page({
/**
* 页面的初始数据
*/
data: {
questionList: [],
index: 0,
time : 300,
flag : 1,
chooseValue: [],
totalScore: 0,
wrong: 0,
wrongList: [],
wrongListSort: [],
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
// 获取题库-函数执行
this.getQuestionList()
this.drawCircle()
this.drawUpCircle()
},
// 获取题库-函数定义
getQuestionList() {
this.drawCircle()
this.drawUpCircle()
// 显示 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;
},
//绘画倒计时
drawCircle: function () {
// 使用 wx.createContext 获取绘图上下文 context
var context = wx.createCanvasContext('caCircle')
context.setStrokeStyle("#cfcfcf")
context.setLineWidth(3)
context.beginPath()
context.arc(24, 24, 20, 0,2*Math.PI)
context.stroke()
context.draw()
},
//动态画图
drawUpCircle:function(){
let step = 1.5 * Math.PI + 2*Math.PI/300
var number=setInterval(() => {
var context1 = wx.createCanvasContext('caCircle2')
context1.setStrokeStyle("#00b26a")
context1.setLineWidth(3)
context1.beginPath()
context1.arc(24, 24, 20, 1.5*Math.PI,step,false)
context1.stroke()
context1.draw()
step = step + 2*Math.PI /300;
this.setData({
time: this.data.time - 1
})
//终止答题
if(this.data.time == 0){
wx.showToast({
title: '答题结束',
})
//答题结束 , 自动跳转
clearInterval(number)
this.addExamRecord()
}
}, 1000);
},
//动态绘画结束
// 下一题/提交 按钮
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++;
let subjectNow = this.data.questionList[this.data.index];
subjectNow.userSelect = this.data.chooseValue[this.data.index];
errorOptions.push(subjectNow);
console.log(subjectNow);
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: '提交答卷中'
});
//缓存错题
console.log(errorOptions)
wx.setStorageSync('wrongQuestion', errorOptions)
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();
})
}
})
没有合适的资源?快使用搜索试试~ 我知道了~
微信小程序答题系统:基于微信原生小程序+云开发 的移动开发
共39个文件
wxss:11个
json:11个
js:9个
5星 · 超过95%的资源 需积分: 1 8 下载量 143 浏览量
2022-12-13
11:10:49
上传
评论 4
收藏 994KB ZIP 举报
温馨提示
本资源是一个微信小程序答题软件,其基于微信原生小程序+云开发实现 本资源的实现使用了最新的前端技术栈,具有原生APP体验服务的小程序框架,小程序视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框架,响应的数据绑定,提供了丰富的基础组件和API。 主要功能: 1、支持随机抽题,答题选项乱序; 2. 支持错题查看; 3. 成绩排名支持取最好成绩,或累计最高成绩; 4. 可指定活动期内总答题次数,或每天答题次数上限。
资源推荐
资源详情
资源评论
收起资源包目录
answer-weixin08.zip (39个子文件)
style
guide.wxss 0B
icon.wxss 69KB
colorui.wxss 61KB
image
bg.jpg 931KB
app.json 434B
pages
index
index.js 931B
index.json 27B
index.wxss 326B
index.wxml 900B
test
test.wxml 1KB
test.js 5KB
test.json 65B
test.wxss 632B
history
history.json 71B
history.wxss 34B
history.wxml 418B
history.js 2KB
result
result.js 1KB
result.json 46B
result.wxss 387B
result.wxml 2KB
rank
rank.json 68B
rank.js 1KB
rank.wxml 730B
rank.wxss 36B
details
details.wxss 67B
details.js 847B
details.wxml 1KB
details.json 71B
wrong
wrong.wxml 587B
wrong.js 2KB
wrong.wxss 28B
wrong.json 27B
project.private.config.json 1KB
sitemap.json 191B
app.wxss 512B
app.js 313B
project.config.json 2KB
utils
util.js 429B
共 39 条
- 1
资源评论
- 蟹蛛2023-07-24文件中的案例很实际,能够帮助读者更好地理解小程序和云开发的应用。
- 马虫医生2023-07-24这个文件的语言比较贴近生活,读起来很容易理解,不需要太高的技术背景。
- 今年也要加油呀2023-07-24文件中详细介绍了使用微信原生小程序和云开发的方法,对于初学者来说很友好。
- 空城大大叔2023-07-24这个文件介绍的微信小程序答题系统很实用,可以帮助用户进行移动开发。
- 销号le2023-07-24对于想要学习移动开发的人来说,这个文件提供了一个很好的学习资源。
鳄鱼杆
- 粉丝: 46
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 原生微信小程序源码 - -仿豆瓣图书
- 原生微信小程序源码 - -滴滴公交-查公交
- 人工智能实验四 感知器算法的设计实现
- java小项目多线程多线程 复制文件 冒泡排序 群聊
- 四数之和(java代码).docx
- 701837906919458TapScanner v3.0.10 (Pro).apk
- 青岛大学人工智能实验二 利用α-β搜索的博弈树算法编写一字棋游戏
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功