7月21日-7月22日:完成二维码签到的前端和前后端连接。
对于老师端,老师可以对自己上的课生成二维码用于课堂签到,可以实时的看到已经有多少人签到,以及未签到人员名单。
uniapp实现二维码扫码签到功能
前期准备:下载二维码的js文件,配置到项目里,我把它配置在了static文件夹里,如下图所示:
主要代码:
教师端生成二维码的代码:
总人数:{{totalcount}}     已签到人数:{{scanedcount}}
<button type=“primary” @click=“exportPeople”>查看未签到名单
</view>
最核心的部分就是couponQrCode() 方法其中参数text是你想让扫码的人收到的信息,它可以是url或者是普通的字符串,我的签到功能需要按照课程号和学生学号来签到记录,所以我设置的信息是课程号。
学生扫码的代码:
//扫码签到
scan(){
console.log(“我执行了扫码签到”)
var that=this
uni.scanCode({
scanType: [‘qrCode’],
success: function (res) {
console.log(“我签到了!我的学号是”,uni.getStorageSync(‘id’))
console.log(‘二维码的结果是:’ + res.result);
console.log(‘二维码内容:’ + res.path);
that.course_id=res.result
console.log(“执行完签到课程号是”,that.course_id);
//判断今天是否已经签过到
uni.request({
url:‘http://localhost:8081/student/findRegister’,
method:‘GET’,
data:{
stu_id:uni.getStorageSync(“id”),
course_id:that.course_id,
},
success: (res) => {
console.log(“签到的状态是”,res.data.data)
var state= res.data.data
if(state==“已签到”){
uni.showToast({
title: ‘你已签过到’,
icon:‘error’
});
}else{
uni.request({
url:'http://localhost:8081/student/insertRegister',
method:'GET',
data:{
stu_id:uni.getStorageSync("id"),
course_id:that.course_id,
},
success: (res) => {
console.log("签到是否成功",res.data.data)
if(res.data.data==0){
uni.showToast({
title:'签到失败',
icon:'error'
})
}else{
uni.showToast({
title:'签到成功'
})
}
}
});
}
}
});
},
fail: function (res) {
console.log("扫码失败");
console.log("问题是",res);
}
});
},
主要用的是uniapp自带的扫码方法,扫码成功向后端传递学号和课程号,在签到表中插入数据。
这个地方扫码出现了系统错误,这是因为没有配置微信小程序的ID导致的。
按照https://ask.dcloud.net.cn/question/103642教程需要先去微信小程序开发者社区申请小程序的ID然后配置上即可。
配置完Appid发现无法访问后端了,这是因为微信规定不能访问本机,把这个验证关掉就行。