江西小程序管理端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

62 lines
1.5 KiB

<template>
<view class="pageBgImg">
<topNavbar title="个人二维码"></topNavbar>
<view class="pad">
<view class="card">
<view class="qcode">
<canvas id="qrcode" canvas-id="qrcode" style="width: 200px;height: 200px;"></canvas>
</view>
</view>
<view class="card">
<user-info/>
</view>
</view>
</view>
</template>
<script>
import UQRCode from 'uqrcodejs';
export default {
onReady() {
// 获取uQRCode实例
var qr = new UQRCode();
let {coachId, nickname, schoolId, tenantId} = this.vuex_userInfo.user
// 设置二维码内容
qr.data = JSON.stringify({
coachId,
schoolId,
nickname: encodeURIComponent(nickname),
schoolName: encodeURIComponent('必须与canvas设置的宽高一致/设置二维码大小')
})
// 设置二维码大小,必须与canvas设置的宽高一致
qr.size = 200;
qr.margin = 10;
qr.errorCorrectLevel = UQRCode.errorCorrectLevel.L
// 调用制作二维码方法
qr.make()
qr.foregroundImageSrc = require('./coach.png')
// 获取canvas上下文
var canvasContext = uni.createCanvasContext('qrcode', this); // 如果是组件,this必须传入
// 设置uQRCode实例的canvas上下文
qr.canvasContext = canvasContext;
// 调用绘制方法将二维码图案绘制到canvas上
qr.drawCanvas();
}
}
</script>
<style lang="scss" scoped>
.qcode {
width: 100%;
height: 600rpx;
display: flex;
align-items: center;
justify-content: center;
}
.card {
padding: 28rpx;
margin-bottom: 24rpx;
}
</style>