element-ui 弹窗复制链接下载码

<template>
    <el-dialog
      title="小程序路径"
      :visible="true"
      v-if="dialogVisible"
      width="750px"
      :before-close="() => { dialogVisible = false; }"
      >
      <div class="code-content">
        <div class="ub">
          <div class="code-image" >
              <img :src="codeData.mpqrcode"/>
          </div>
          <div class="code-path-container">
            <span class="code-text">路径地址</span>
            <div class="code-path">
              <el-input :value="codeData.mppage" readonly></el-input>
              <el-button type="success" @click="copyRedEnvelopePathHandler">复制</el-button>
            </div>
            <span class="code-text c-blue" @click="downloadImageHandler">下载小程序码</span>
          </div>
        </div>
      </div>
    </el-dialog>

</template>

<script>
  import Clipboard from 'clipboard';
  export default {
    data() {
      return { 
      dialogVisible: false, 
      codeData: {}
      }
    },
    props: {
       
    },
    methods: {
      showDialog(data){
        this.dialogVisible = true;
        this.codeData = data;
      },

      downloadImageHandler() {
        window.open( this.codeData.mpqrcode + '?attname=小程序码.jpg');
      },

      copyRedEnvelopePathHandler() {
        let self = this;

        self.$data.clipboardInstance && self.$data.clipboardInstance.destroy();

        let clipboard = new Clipboard('.code-path .el-button', {
          text: function() {
            return self.$data.codeData.mppage || ''
          }
        });

        clipboard.on('success', function() {
          self.$message.success('小程序路径复制成功!');
        });

        clipboard.on('error', function() {
          self.$message.error('小程序路径复制失败!');
        });

        this.$data.clipboardInstance = clipboard;
      },
    },
    watch: {}
  }
</script>



<style lang="scss" scoped>
.code-content {
  padding: 10px 10px 35px 10px;
}
.code-image {
  padding-right: 60px;
  border-right: 1px solid #E4E7ED;
  img {
    width: 220px;
    height: 220px;
  }
}

.el-input {
  margin-right: 10px;
  width: 320px;
}

.el-button {
  padding: 11px 13px;

}

.el-link {
  margin-top: 20px;
}


.code-path-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  margin-left: 20px;
}

.code-path {
    display: flex;
    margin-top: 10px;
  }

.code-text {
    margin-top: 20px;


    &:first-child {
      margin-top: 0;

    }

    &:last-child {
      cursor: pointer;
    }
  }

</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值