|
@@ -0,0 +1,86 @@
|
|
|
|
+
|
|
|
|
+<template>
|
|
|
|
+ <div class="qrCode">
|
|
|
|
+ <el-dialog :title="title"
|
|
|
|
+ :visible.sync="status"
|
|
|
|
+ @close="onDialogClose"
|
|
|
|
+ width="300px">
|
|
|
|
+ <div class="left-code">
|
|
|
|
+ <vue-qr :text="codeUrl" style="width: 100%" :margin="0"></vue-qr>
|
|
|
|
+ <p class="code-url" v-if="codeUrl">{{ codeUrl }} <el-link @click="copyUrl(codeUrl)" class="link-btn" type="primary">复制</el-link></p>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import VueQr from 'vue-qr'
|
|
|
|
+import copy from 'copy-to-clipboard'
|
|
|
|
+export default {
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ status: false
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ components: {
|
|
|
|
+ VueQr
|
|
|
|
+ },
|
|
|
|
+ props: {
|
|
|
|
+ value: {
|
|
|
|
+ // 组件状态
|
|
|
|
+ type: Boolean,
|
|
|
|
+ required: true,
|
|
|
|
+ default() {
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ title: {
|
|
|
|
+ type: String,
|
|
|
|
+ default() {
|
|
|
|
+ return '查看二维码'
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ codeUrl: {
|
|
|
|
+ type: String
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+ this.status = this.value
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ onDialogClose() {
|
|
|
|
+ this.status = false
|
|
|
|
+ this.$emit('input', false)
|
|
|
|
+ },
|
|
|
|
+ copyUrl(url) {
|
|
|
|
+ copy(url)
|
|
|
|
+ this.$message.success('复制成功')
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ value(newValue) {
|
|
|
|
+ this.status = newValue;
|
|
|
|
+ },
|
|
|
|
+ title(newValue, oldValue) {
|
|
|
|
+ if(newValue != oldValue) {
|
|
|
|
+ this.title = newValue
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ beforeDestroy() {},
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss">
|
|
|
|
+.left-code{
|
|
|
|
+ .code-url{
|
|
|
|
+ margin-top: 10px;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+ .link-btn{
|
|
|
|
+ margin-top: 0;
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|