const _my = require("../../__antmove/api/index.js")(my); const wx = _my; // components/detailsCard/index.js import international from "../../international/appointment_scence/index"; import { getVisitorQrcodeId } from "../../utils/api/api"; import QRCode from "../../utils/util/weapp-qrcode"; Component({ options: { observers: true, lifetimes: true }, /** * 组件的属性列表 */ properties: { // 标题 title: { type: String, value: "认证信息" }, //单子状态 status: { type: Number, value: null }, //内容 msg: { type: Array, value: [] }, // //二维码内容 // qrCodeUrl: { // type: String, // value: '' // }, // 语言 language: { type: String, value: "ch" }, userInfo: { type: Object, value: {} }, regularList: { type: Object, value: null }, isRegular: { type: Boolean, value: true }, type: { type: String } }, /** * 组件的初始数据 */ data: { international: international, //国际化语言包 imageUrl: "", dateTime: null, qrCode: null, qrCodeType: null, //1已失效2未到时间3允许通行 timer: null }, /** * 组件的方法列表 */ methods: { //图片预览 preview(e) { let url = e.currentTarget.dataset.src; wx.previewImage({ current: url, // 当前显示图片的http链接 urls: [url] // 需要预览的图片http链接列表 }); }, // 获取访客qrcodeId getVisitorQrcodeId() { let id = this.data.regularList.userId; getVisitorQrcodeId({ userId: id }).then(res => { this.setData({ dateTime: new Date().getTime() }); if(res.data && res.data.qrcodeId) { this.creatQrCode(res.data.qrcodeId); } }); }, // 创建二维码 creatQrCode(id) { let that = this; new QRCode("myQrcode", { text: `HHFKJ?userId=${id}×tamp=${this.data.dateTime}`, width: 176, //canvas 画布的宽 height: 176, //canvas 画布的高 padding: 0, // 生成二维码四周自动留边宽度,不传入默认为0 correctLevel: QRCode.CorrectLevel.L, // 二维码可辨识度 callback: res => { //工具回调数据 // 接下来就可以直接调用微信小程序的api保存到本地或者将这张二维码直接画在海报上面去,看各自需求 // wx.hideLoading() //将图片路劲放入data中,显示在wxml的image标签上 that.setData({ qrCode: res.path }); } }); }, // 更新访客码 updateQrCode() { // 访客申请记录页面 if (!this.data.regularList) { return; } var newDate = new Date(); var startTime = new Date(this.data.regularList.startTime); var endTime = new Date(this.data.regularList.endTime); let type; if (newDate > endTime) { type = 1; } else if (newDate < startTime) { type = 2; } else { type = 3; this.getVisitorQrcodeId(); } this.setData({ qrCodeType: type }); }, antmoveAction: function () { //执行时动态赋值,请勿删除 } }, observers: { status: function (status) { var { imageUrl } = this.data; switch (status) { case 0: imageUrl = "wait"; break; case 1: imageUrl = "reject"; break; case 2: imageUrl = "pass"; break; case 3: imageUrl = "entrance"; break; default: break; } this.setData({ imageUrl }); }, regularList: function (n) { this.updateQrCode(); } }, lifetimes: { created: function () { // 在组件实例刚刚被创建时执行,该节点不能使用this.setData({}), }, ready: function () { // 在组件实例进入页面节点树时执行,该节点可以开始使用this,setData({}) }, attached: function () { // console.log(this.properties.regularList) // 在组件实例进入页面节点树时执行,该节点可以开始使用 this.updateQrCode(); this.data.timer = setInterval(() => { this.updateQrCode(); }, 1000 * 30); }, detached: function () { // 移除 clearInterval(this.data.timer); this.data.timer = null; } } });