|  | @@ -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>
 |