<template xlang="wxml">
|
<view class="container">
|
<view class="qrimg">
|
<view class="qrimg-i">
|
<geek-qrcode v-if="ifShow" cid="qrcode1" ref="qrcode" :val="val" :size="size" :unit="unit"
|
:background="background" :foreground="foreground" :pdground="pdground" :icon="icon" :iconSize="iconsize"
|
:lv="lv" :onval="onval" :loadMake="loadMake" :usingComponents="true" @result="qrR" />
|
</view>
|
<view class="qrimg-i">
|
<geek-qrcode v-if="ifShow" cid="qrcode2" ref="qrcode2" val="第二个二维码" :size="size" :onval="onval"
|
:loadMake="loadMake" :usingComponents="true" @result="qrR" />
|
</view>
|
</view>
|
<view class="uni-padding-wrap">
|
<view class="uni-title">请输入要生成的二维码内容</view>
|
</view>
|
<view class="uni-list">
|
<input class="uni-input" placeholder="请输入要生成的二维码内容" v-model="val" />
|
</view>
|
<view class="uni-padding-wrap uni-common-mt">
|
<view class="uni-title">设置二维码大小</view>
|
</view>
|
<view class="body-view">
|
<slider :value="size" @change="sliderchange" min="50" max="500" show-value />
|
</view>
|
<view class="uni-padding-wrap">
|
<view class="btns">
|
<button type="primary" @tap="selectIcon">选择二维码图标</button>
|
<button type="primary" @tap="creatQrcode">生成二维码</button>
|
<button type="primary" @tap="saveQrcode">保存到图库</button>
|
<button type="warn" @tap="clearQrcode">清除二维码</button>
|
<button type="warn" @tap="ifQrcode">显示隐藏二维码</button>
|
</view>
|
</view>
|
</view>
|
</template>
|
<script>
|
export default {
|
data() {
|
return {
|
ifShow: true,
|
val: '二维码', // 要生成的二维码值
|
size: 200, // 二维码大小
|
unit: 'upx', // 单位
|
background: '#b4e9e2', // 背景色
|
foreground: '#309286', // 前景色
|
pdground: '#32dbc6', // 角标色
|
icon: '', // 二维码图标
|
iconsize: 40, // 二维码图标大小
|
lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
|
onval: false, // val值变化时自动重新生成二维码
|
loadMake: true, // 组件加载完成后自动生成二维码
|
src: '' // 二维码生成后的图片地址或base64
|
}
|
},
|
methods: {
|
sliderchange(e) {
|
this.size = e.detail.value
|
},
|
creatQrcode() {
|
this.$refs.qrcode._makeCode()
|
},
|
saveQrcode() {
|
this.$refs.qrcode._saveCode()
|
},
|
qrR(res) {
|
this.src = res
|
},
|
clearQrcode() {
|
this.$refs.qrcode._clearCode()
|
this.val = ''
|
},
|
ifQrcode() {
|
this.ifShow = !this.ifShow
|
},
|
selectIcon() {
|
let that = this
|
uni.chooseImage({
|
count: 1, //默认9
|
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
|
sourceType: ['album'], //从相册选择
|
success: function (res) {
|
that.icon = res.tempFilePaths[0]
|
setTimeout(() => {
|
that.creatQrcode()
|
}, 100);
|
// console.log(res.tempFilePaths);
|
}
|
});
|
}
|
}
|
}
|
</script>
|
|
<style>
|
/* @import "../../../common/icon.css"; */
|
.container {
|
display: flex;
|
flex-direction: column;
|
width: 100%;
|
}
|
|
.qrimg {
|
display: flex;
|
justify-content: center;
|
}
|
|
.qrimg-i {
|
margin-right: 10px;
|
}
|
|
slider {
|
width: 100%;
|
}
|
|
input {
|
width: 100%;
|
margin-bottom: 20upx;
|
}
|
|
.btns {
|
display: flex;
|
flex-direction: column;
|
width: 100%;
|
}
|
|
button {
|
width: 100%;
|
margin-top: 10upx;
|
}</style>
|