微信小程序实现二维码签到考勤系统

微信小程序实现二维码签到考勤系统

这篇文章主要介绍了微信小程序实现二维码签到考勤系统,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

一。手动生成二维码的.js代码

这里要引入一个官方文档wxapp.qrcode.min.js

let drawQrcode=require(./utils/wx app。二维码。量滴js’);//引入wxapp.qrcode.min.js文件

createQRcode(canvasWidth,canvasHeight,canvasId,url) {

//调用qrcode.js里的方法,传入对应参数

drawQrcode({

宽度:canvasWidth,

身高:canvasHeight,

canvasId: canvasId,

文本:url

})

console.log(drawQrcode.width)

},

setCanvasSize() {

let size={ };

//getSystemInfoSync微信小程序提供getSystemInfoSync获取设备的信息

设RES=wx。getsysteminfosync();

//控制台。日志(分辨率);

//获取比例

设比例=686/750;

let width=分辨率窗口宽度*比例;

设高度=宽度;

size.w=宽度;

size.h=高度;

返回大小;

},

表单提交(e) {

设URL=e . detail。价值。网址| |这个。数据。占位符;

//let url=e.detail.value.url?e .细节。价值。网址:这个。数据。占位符;

wx.showToast({

标题: 生成中,

图标:"正在加载",

持续时间:2000年

})

让那个_=这个;

让timer=setTimeout(()={

让size=that_ .setCanvasSize();

//调用创建二维码方法

那个_。createQRcode(size.w,size.h, mycanvars ,URL);

wx。隐藏toast();

清除超时(定时器);

}, 2000)},

/**

* 生命周期函数-监听页面加载

*/

加载:函数(选项){

//setCanvasSize拿到画布区域的尺寸(微信小程序不支持数字正射影像图的操作,所以单独定义方法去获取)

让大小=这个。setcanvassize();

//console.log(大小);

设URL=this。数据。占位符;

//调用创建二维码方法

this.createQRcode(size.w,size.h, mycanvars ,URL);

},

二。准备工作,导入数据库表,和unit.js。获取时间

const DB=wx.cloud.database().收藏("奶牛")

const TB=wx.cloud.database().集合("日志")

设i=0

让id=

var util=require(./utils/util。js’);

三。写入签到签退按钮的.js代码

现在(){

变那个=这个

console.log(that.data.nows)

if (i==0 that.data.now==签到){

I=1;

var time1=util.formatTime(新日期())

DB.add({

数据:{

statctime:时间1,

结束时间:""

},

成功(资源){

id=res._id

console.log(签到成功资源id)

},

失败(资源){

console.log(签到失败,res)

}

})

that.setData({

statc:时间1,

现在: 已签到,

颜色: rgb(199,194,194)

})

wx.showToast({

标题: 签到成功

})

var time out=setTimeout(function(){

wx.switchTab({

URL:"/pages/array/first/ones/ones ",

})

},1000)

}

否则{

wx.showToast({

标题: 已签到,请勿重复签到,

图标:"无"

})

}

},

nows(){

变那个=这个

if (i==1 || that.data.now==已签到that.data.nows==签退){

I=2;

var time2=util.formatTime(新日期())

DB.doc(id).更新({

数据:{

结束时间:时间2

},

成功(资源){

console.log(签退成功,res)

},

失败(资源){

console.log(签退失败,res)

}

})

that.setData({

结束:时间2,

现在: 已签退,

颜色: rgb(199,194,194)

})

wx.showToast({

标题: 签退成功

})

}

其他

{

if(i==2){

wx.showToast({

标题: 已签退,请勿重复签退,

图标:"无"

})

}

否则{

wx.showToast({

标题: 请先签到,签到之后方可签退!,

图标:"无"

})

}

}

},

第四。页面监听签退后会跳出签退页面。重新进入需要监听。

变那个=这个

wx.cloud.callFunction({

名称: getopenid ,

成功(资源){

var openid=res.result.openid

DB.get({

成功(e) {

console.log(e)

变量长度=e .数据。长度;

console.log(长度);

var time1=util.formatTime(新日期())

for(var I=0;我lenthsi ) {

if (e.data[i]._ OpenID==OpenID e . data[I]. stat time . substring(0,10)==time1.substring(0,10)) {

var st=e.data[i]。statctime

var en=e.data[i]。结束时间

that.setData({

statc: st,

现在:“已登记”,

颜色: rgb(199,194,194),

})

}

}

},

失败(e) {

Console.log(查询失败,e)

}

})

Console.log (get success ,res.result.openid)

},

失败(res) {

Console.log (get success ,res)

}

})

至此,一个简单的签到页面就完成了。如果有什么不对,菜鸟期待大神的指导。

希望对你有用。

总结

以上是边肖介绍的实现二维码签到考勤系统的微信小程序。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!

如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!

微信小程序实现二维码签到考勤系统