怎么实现点击二维码完事二维码放大


<template>
  <div class="chart-container">
    <div class="filter">
      <div class="startTime">
        <span class="timeText">起始时间</span>
        <el-date-picker
          v-model="startTime"
          format="yyyy-MM-dd"
          :clearable="false"
          type="datetime"
          value-format="timestamp"
          placeholder="选择日期">
        </el-date-picker>
      </div>
      <div class="endTime">
        <span class="timeText">截止时间</span>
        <el-date-picker
          v-model="endTime"
          format="yyyy-MM-dd"
          :clearable="false"
          type="datetime"
          value-format="timestamp"
          placeholder="选择日期">
        </el-date-picker>
      </div>

      <div class="ago">
        <span class="timeText">点位位置</span>
        <el-select v-model="ago" placeholder="请选择" >
          <el-option
            v-for="item in agoAgo"
            :key="item.value"
            :label="item.label"
            :value="item.value"
            >
          </el-option>
        </el-select>
      </div>

      <div class="timeQuery">
        <el-button size="small" :loading="loading"  @click="dateQuery">查询</el-button>
      </div>

    </div>
    <div class="content">
      <el-tabs type="card" v-model="activeName">
        <el-tab-pane label="图表" name="first">
          <div class="tableContent" ref="bannerHeight" @load="imgLoad">
            <el-carousel :interval="5000" type="card" :height="bannerHeight + 'px'" style="width: 100%">
              <el-carousel-item v-for="item in rpImages" :key="item">
                <div style="height: 100%;width: 100%;display: flex;justify-content:center;align-items:center ">
                  <div class="qrCodeText">
                    <div class="animated rotateInDownLeft">{{item}}</div>
                  </div>


                  <div id="qrCode" ref="qrCodeDiv" name="qrCodeDiv"
                       :style="{width:(bannerHeight-25) + 'px',height:(bannerHeight-150) + 'px'}"></div>
                  <div class="qrCodeText">
                    <div class="animated rotateInDownLeft">上报可用功率</div>
                  </div>
                </div>
              </el-carousel-item>
            </el-carousel>
          </div>
          <div class="tableContent" ref="bannerHeight" @load="imgLoad">
            <el-carousel :interval="5000" type="card" :height="bannerHeight + 'px'" style="width: 100%">
              <el-carousel-item v-for="item in rpImages1" :key="item">
                <div style="height: 100%;width: 100%;display: flex;justify-content:center;align-items:center ">
                  <div class="qrCodeText">
                    <div class="animated rotateInDownLeft">{{item}}</div>
                  </div>
                  <div id="qrCode1" ref="qrCodeDiv1" name="qrCodeDiv1"
                       :style="{width:(bannerHeight-25) + 'px',height:(bannerHeight-150) + 'px'}"></div>
                  <div class="qrCodeText">
                    <div class="animated rotateInDownLeft">上报短期功率</div>
                  </div>
                </div>
              </el-carousel-item>
            </el-carousel>
          </div>
        </el-tab-pane>
      </el-tabs>
    </div>
  </div>
</template>

<script>
  import QRCode from 'qrcodejs2';

  export default {
    name: 'nwp',
    data() {
      return {
        chart: null,
        queryStartTime: '',
        queryEndTime: '',
        startTime: new Date(new Date().toLocaleDateString()).getTime(),
        endTime: new Date(new Date().toLocaleDateString()).getTime() + 1000 * 60 * 60 * 24 - 1000,
        agoAgo:[
          {value:'1',label:'提前一天'},
          {value:'2',label:'提前二天'},
          {value:'3',label:'提前三天'},
          {value:'4',label:'提前四天'},
          {value:'5',label:'提前五天'},
          {value:'6',label:'提前六天'},
          {value:'7',label:'提前七天'},
          {value:'8',label:'提前八天'},
          {value:'9',label:'提前九天'},
          {value:'10',label:'提前十天'},
        ],
        ago:'1',
        loading: true,
        qrCodeContents: [],
        qrCodeContents1: [],
        bannerHeight: '',
        fits: ['fill', 'contain', 'cover', 'none', 'scale-down'],
        rpImages: 1,
        rpImages1: 1,
        activeName: 'first',
        timeSteps: [{key: '5分钟', value: 5}, {key: '15分钟', value: 15}],
        timeStep: 15,

      }
    },
    created() {
      this.dateQuery()
    },
    mounted() {
      window.addEventListener('resize', () => {
        this.imgLoad()
      }, false)

    },
    methods: {
      dateQuery() {
        var between = this.endTime - this.startTime
        if (between < 2678400000 && between > 0) {
          this.loading = true
          this.$axios.get('/qrCode/reportshortterm/' + this.startTime + '/' + this.endTime+ '/' +this.ago).then((res) => {
            console.log(res.data)
            this.qrCodeContents = res.data.qrcode
            this.qrCodeContents1 = res.data.qrcode1
            this.rpImages = this.qrCodeContents.length
            this.rpImages1 = this.qrCodeContents1.length
            this.loading = false
            this.imgLoad()
          }).catch((error) => {
            this.loading = false
            this.$message.error('查询二维码内容出错' + error)
          })
        } else {
          this.$message.warning('时间过长或不规范')
          return
        }
      },


      // 下面的 imgLoad 是页面渲染完成的加载方法,确保屏幕中的图片的高度第一次渲染到页面。
      imgLoad() {
        this.$nextTick(() => {
          var height = this.$refs.bannerHeight.offsetHeight - 70
          this.bannerHeight = height
          var divs = document.getElementsByName('qrCodeDiv')
          for (var j = 0; j < divs.length; j++) {
            divs[j].innerHTML = ""
          }
          for (var i = 0; i < this.$refs.qrCodeDiv.length; i++) {
            new QRCode(this.$refs.qrCodeDiv[i], {
              text: this.qrCodeContents[i],
              width: 200,
              height: 200,
              colorDark: "#333333", //二维码颜色
              colorLight: "#ffffff", //二维码背景色
              correctLevel: QRCode.CorrectLevel.L//容错率,L/M/H
            })
          }

          var divs1 = document.getElementsByName('qrCodeDiv1')
          for (var j = 0; j < divs1.length; j++) {
            divs1[j].innerHTML = ""
          }
          for (var i = 0; i < this.$refs.qrCodeDiv1.length; i++) {
            new QRCode(this.$refs.qrCodeDiv1[i], {
              text: this.qrCodeContents1[i],
              width: 200,
              height: 200,
              colorDark: "#333333", //二维码颜色
              colorLight: "#ffffff", //二维码背景色
              correctLevel: QRCode.CorrectLevel.L//容错率,L/M/H
            })
          }
        })
      }
    },
  }
</script>

<style scoped>
  /*.chart-container {*/
  /*position: relative;*/
  /*width: 100%;*/
  /*height: calc(100vh - 50px);*/
  /*}*/

  /*.filter {*/
  /*position: relative;*/
  /*display: flex;*/
  /*padding: 20px 0 10px 15px;*/
  /*font-size: 12px;*/
  /*line-height: 11px;*/
  /*color: white;*/
  /*}*/

  /*input {*/
  /*background: transparent;*/
  /*border: none;*/
  /*color: white;*/
  /*}*/

  /*.timeText {*/
  /*opacity: 0.69;*/
  /*padding-right: 7px;*/
  /*font-size: 14px;*/
  /*}*/

  /*.startTime {*/
  /*display: inline-block;*/
  /*}*/

  /*.endTime {*/
  /*display: inline-block;*/
  /*padding-left: 42px;*/
  /*}*/


  /*.timeQuery {*/
  /*background: transparent;*/
  /*}*/

  /*.el-button {*/
  /*background: transparent;*/
  /*color: white;*/
  /*}*/

  /*.filter {*/
  /*width: 100%;*/
  /*background-color: transparent;*/
  /*height: 10%*/
  /*}*/

  /*.filter >>> input {*/
  /*background: transparent;*/
  /*border: none;*/
  /*color: white;*/
  /*}*/

  /*.content {*/
  /*width: 100%;*/
  /*background-color: transparent;*/
  /*height: 90%;*/
  /*padding-left: 5px;*/
  /*padding-right: 5px;*/
  /*}*/

  /*.content >>> .el-tabs__item {*/
  /*color: white;*/
  /*}*/

  /*.content >>> .el-tabs__item.is-active {*/
  /*color: #409EFF;*/
  /*}*/

  .tableContent {
    width:50%;
    /*height: calc(80vh - 50px);*/
    float: left;
    padding-top: 10px;
    padding-left: 10px;
    padding-right: 5px;
  }

  /*.tableContent >>> td {*/
  /*border: 1px solid #ffffff;*/
  /*}*/

  /*.el-carousel__item h3 {*/
  /*color: #475669;*/
  /*font-size: 18px;*/
  /*opacity: 0.75;*/
  /*line-height: 300px;*/
  /*margin: 0;*/
  /*}*/

  /*.el-carousel__item:nth-child(2n) {*/
  /*background-color: #000000;*/
  /*}*/

  /*.el-carousel__item:nth-child(2n+1) {*/
  /*background-color: #000000;*/
  /*}*/

</style>



用的是element组件,直接用el-image 图片预览就完事
参考: https://element.eleme.cn/#/zh-CN/component/image