生成多張二維碼圖片桐款,并使用jszip和file-saver打包成壓縮包下載

<template>
  <div>
    <div class="con" v-if="numList.length">
      <div class="qr-section" v-for="(item, index) in numList" :key="index">
        <vue-qr ref="qrCode" :text="item" width="300" height="300"></vue-qr>
        <span class="num">{{ item }}</span>
      </div>
    </div>
  </div>
</template>
<script>
// 組件
import VueQr from 'vue-qr'
import html2canvas from 'html2canvas'

import JSZip from 'jszip'
import FileSaver from 'file-saver'

export default {
  name: 'Qrcode',
  components: {
    VueQr
  },
  props: {
    isBatch: {
      type: Boolean,
      default: false
    },
    numList: {
      type: Array,
      default: () => []
    }
  },
  data () {
    return { imgZipList: '', imgList: [] }
  },
  watch: {
    isBatch: {
      handler (val) {
        if (val) {
          this.$nextTick(() => {
            this.compressedDownload()
          })
        }
      },
      deep: true
    }
  },
  created () {},
  mounted () {},
  methods: {
    // 壓縮下載
    compressedDownload () {
      // // 創(chuàng)建一個code文件夾巾陕,文件里里創(chuàng)建一個images文件菜循,文件內(nèi)容為空
      this.zip = new JSZip()
      this.imgZipList = this.zip.folder('images')

      // 獲取每個二維碼的dom
      const canvasBoxList = document.querySelectorAll('.qr-section')
      canvasBoxList.forEach((item, index) => {
        // 處理生成待編碼的二維碼圖片
        html2canvas(item).then(canvas => {
          // 獲取圖片在線地址
          const dataURL = canvas.toDataURL('image/jpg')

          const that = this
          const total = canvasBoxList.length
          // ↓第一個參數(shù)是單張二維碼圖片的命名,第二個參數(shù)是二維碼的base64涡上,這里用replace把URL的前綴截掉僅保留純base64編碼
          that.imgZipList.file('二維碼_' + index + '.png', dataURL.replace(/^data:image\/(png|jpg);base64,/, ''), {
            base64: true
          })
          if (index === total - 1) {
            // 添加完下載
            this.zip.generateAsync({ type: 'blob' }).then(function (content) {
              // 使用file-saver保存下載zip文件浑玛,第二個參數(shù)是壓縮包命名
              FileSaver.saveAs(content, `二維碼.zip`)
              that.$emit('handleCancel')
            })
          }
        })
      })
    }
  }
}
</script>
<style lang="less" scoped>
.con {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -10;
  display: flex;
  font-size: 15px;
  font-family: PingFangSC-Regular, PingFang SC;
  img {
    width: 300px;
    height: 300px;
  }
  .num {
    color: #2a3030;
    line-height: 21px;
    text-align: center;
  }
}
.qr-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 320px;
  height: 350px;
  margin: 10px auto;
  span {
    margin: 0 !important;
  }
}
</style>


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绍申,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锄奢,更是在濱河造成了極大的恐慌失晴,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拘央,死亡現(xiàn)場離奇詭異涂屁,居然都是意外死亡,警方通過查閱死者的電腦和手機灰伟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門拆又,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人栏账,你說我怎么就攤上這事帖族。” “怎么了挡爵?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵竖般,是天一觀的道長。 經(jīng)常有香客問我茶鹃,道長涣雕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任闭翩,我火速辦了婚禮挣郭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疗韵。我一直安慰自己兑障,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著流译,像睡著了一般逞怨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上先蒋,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天骇钦,我揣著相機與錄音宛渐,去河邊找鬼竞漾。 笑死,一個胖子當(dāng)著我的面吹牛窥翩,可吹牛的內(nèi)容都是我干的业岁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼寇蚊,長吁一口氣:“原來是場噩夢啊……” “哼笔时!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仗岸,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤允耿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扒怖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體较锡,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年盗痒,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚂蕴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡俯邓,死狀恐怖骡楼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稽鞭,我是刑警寧澤鸟整,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站朦蕴,受9級特大地震影響篮条,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜梦重,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一兑燥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧琴拧,春花似錦降瞳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽除师。三九已至,卻和暖如春扔枫,著一層夾襖步出監(jiān)牢的瞬間汛聚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工短荐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留倚舀,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓忍宋,卻偏偏與公主長得像痕貌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子糠排,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容