项目还需要下载二维码打印,依赖两个包:
1.jszip是一个用于创建、读取和编辑.zip文件的JavaScript库,
2.工作需要通过 JavaScript 保存文件到本地,我们都知道 JavaScript 基于安全的考虑,是不允许直接操作本地文件的。IE 可以通过 VB 插件的方式进行,而 Chrome 和 firefox 都不支持 JavaScript 向本地写入文件,所以 VB 插件的方式存在兼容性问题。那有没有适合的方法呢?答案是肯定的,我们可以通过 FileSaver.js 这个小插件实现我们的需求。

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

这里需要先处理我的数据,选中的对象才要下载:

 在data中声明  downcheckArr: []
// 遍历对象traversalObject(obj) {for (var item in obj) {if (obj[item].checked) { this.downcheckArr.push(obj[item].traceCode) } // 显示URL的值if (Object.prototype.toString.call(obj[item]) === '[object Array]' || Object.prototype.toString.call(obj[item]) === '[object Object]') {this.traversalObject(obj[item]); // 递归遍历}}},

之后打成下载包

downloadZip() {this.downcheckArr.length = 0;this.traversalObject(this.qrCodeGroup)//  下载所需数据筛选const img_list =this.downCodeGroup.filter((item) => this.downcheckArr.indexOf(Number(item.traceCode)) > -1)const blogTitle = '溯源平台' // 下载的文件夹名称const zip = new JSZip()const imgs = zip.folder(blogTitle)const baseList = []for (let i = 0; i < img_list.length; i++) {const name = img_list[i].traceCode// 每张图片的名称const image = new Image()// 解决跨域 Canvas 污染问题image.setAttribute('crossOrigin', 'anonymous')image.onload = function () {const canvas = document.createElement('canvas')canvas.width = image.widthcanvas.height = image.heightconst context = canvas.getContext('2d')context.drawImage(image, 0, 0, image.width, image.height)const url = canvas.toDataURL() // 得到图片的base64编码数据 let url =canvas.toDataURL('image/png')baseList.push({ name: name, img: url.substring(22) })if (baseList.length === img_list.length) {if (baseList.length > 0) {for (let k = 0; k < baseList.length; k++) {imgs.file(baseList[k].name + '.png', baseList[k].img, {base64: true})}zip.generateAsync({ type: 'blob' }).then(function (content) {FileSaver.saveAs(content, blogTitle + '.zip')})}}}image.src = img_list[i].traceCodeUrl}}

某溯源平台:vue生成二维码压缩包下载(二)相关推荐

  1. vue生成二维码并下载二维码

    首先安装一下面这个插件 cnpm install vue-qr -S 接下来在需要生产并下载二维码的页面引入 import VueQr from 'vue-qr' 并在components中注册为组件 ...

  2. PHP -----微擎内置方法生成二维码和下载二维码

    1.新建一个类文件code.php,主要用于处理二维码的方法: 在页面的 顶部引用: load()->library('qrcode'); class code{//方法写在这 } 2.生成二维 ...

  3. vue-qr 二维码 添加logo 下载单个二维码 批量下载二维码并打包

    使用 vue-qr 生成二维码并可以添加logo 逻辑: 1.下载二维码生成插件 这里用的是qrcode 2.下载二维码 使用html2canvas(其实解释一个截图工具)将标签截图并下载下来 3. ...

  4. 点击识别元素位置、生成显示二维码、下载二维码

    百度网盘地址 效果: 代码: <!DOCTYPE html> <html><head><meta charset="UTF-8">& ...

  5. react二维码qrcode.react以及点击二维码的下载二维码图片

    npm install qrcode.react 参考文档 程序如下, const QRCode = require('qrcode.react'); export default class Pro ...

  6. vue 2.x项目 vue-qriously 生成二维码并下载、cliploard复制粘贴

    近日,重构项目某一老模块时,有一个功能是生成二维码并下载,还可以复制链接.列表每项都有二维码.下载二维码和复制链接和列表上方总的二维码. 老模块是用的qrocode中文文档,qrcode github ...

  7. 实现简单的二维码批量下载功能

    二维码批量下载 二维码容器 隐藏 <divid="code-box"ref="qrCodeDiv"style="position: absolu ...

  8. vue生成二维码并下载

    vue生成二维码图片,这里使用的是qrcode.js 这个插件 1.下载插件 npm install --save qrcodejs2 2.组件内使用 <template>   <B ...

  9. 通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成

    通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成. 主要实现技术: 1.大文件视频分 ...

最新文章

  1. 波士顿房价预测学习项目笔记
  2. numpy.where用法详解,对2维数组判断解释的比较清楚的
  3. linux存储--进程栈 线程栈 内核栈 中断栈(十六)
  4. 成功解决attrs = config.__dict__['__flags'] KeyError: '__flags
  5. Coding 初级教程(二)——上传已有项目
  6. 进击的UI------------网络判断
  7. 用一张白纸推导出 RAFT 算法
  8. CentOS 修改线程数限制等(limits.conf)
  9. oracle用EXPLAIN PLAN 分析SQL语句
  10. 思科模拟器企业网站服务器配置,思科模拟器服务器配置
  11. 30天自制操作系统 定时器
  12. 第一类边界条件,三角单元剖分,线性插值的位场延拓,LDLT高效求解
  13. 0-9 倒计时 8x8 点阵 实现
  14. 《撬动地球的Google》——Google的第一桶金(转载)
  15. mybatis mapper xml的学习详解
  16. 虚拟机安装黑苹果mac 10.12系统安装教程
  17. CICD概念 k8s DevOps
  18. jq多选按钮值_jQuery实现获取选中复选框的值实例详解
  19. 卷积神经网络的训练过程,卷积神经网络如何训练
  20. 虚拟机网络适配器下的3种网络模式(主机模式、桥接模式和NAT模式)

热门文章

  1. app四种开发模式区别,网页链接转app优缺点
  2. 中英文对照 —— 概念的图解
  3. MySQL增量备份实战
  4. 集美大学c语言大作业,集美大学c语言练习题
  5. 深入浅出 Create React App
  6. 环信首席架构师一乐 :煎饼果子与架构模式
  7. 相同月利率条件下不同还款方式贷款的APR与IRR研究
  8. ue4 Niagara粒子打包安卓后不显示
  9. 408数据结构(王道版+邓俊辉版)
  10. 安卓微信二次分享不显示描述和图片