某溯源平台:vue生成二维码压缩包下载(二)
项目还需要下载二维码打印,依赖两个包:
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生成二维码压缩包下载(二)相关推荐
- vue生成二维码并下载二维码
首先安装一下面这个插件 cnpm install vue-qr -S 接下来在需要生产并下载二维码的页面引入 import VueQr from 'vue-qr' 并在components中注册为组件 ...
- PHP -----微擎内置方法生成二维码和下载二维码
1.新建一个类文件code.php,主要用于处理二维码的方法: 在页面的 顶部引用: load()->library('qrcode'); class code{//方法写在这 } 2.生成二维 ...
- vue-qr 二维码 添加logo 下载单个二维码 批量下载二维码并打包
使用 vue-qr 生成二维码并可以添加logo 逻辑: 1.下载二维码生成插件 这里用的是qrcode 2.下载二维码 使用html2canvas(其实解释一个截图工具)将标签截图并下载下来 3. ...
- 点击识别元素位置、生成显示二维码、下载二维码
百度网盘地址 效果: 代码: <!DOCTYPE html> <html><head><meta charset="UTF-8">& ...
- react二维码qrcode.react以及点击二维码的下载二维码图片
npm install qrcode.react 参考文档 程序如下, const QRCode = require('qrcode.react'); export default class Pro ...
- vue 2.x项目 vue-qriously 生成二维码并下载、cliploard复制粘贴
近日,重构项目某一老模块时,有一个功能是生成二维码并下载,还可以复制链接.列表每项都有二维码.下载二维码和复制链接和列表上方总的二维码. 老模块是用的qrocode中文文档,qrcode github ...
- 实现简单的二维码批量下载功能
二维码批量下载 二维码容器 隐藏 <divid="code-box"ref="qrCodeDiv"style="position: absolu ...
- vue生成二维码并下载
vue生成二维码图片,这里使用的是qrcode.js 这个插件 1.下载插件 npm install --save qrcodejs2 2.组件内使用 <template> <B ...
- 通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成
通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成. 主要实现技术: 1.大文件视频分 ...
最新文章
- 波士顿房价预测学习项目笔记
- numpy.where用法详解,对2维数组判断解释的比较清楚的
- linux存储--进程栈 线程栈 内核栈 中断栈(十六)
- 成功解决attrs = config.__dict__['__flags'] KeyError: '__flags
- Coding 初级教程(二)——上传已有项目
- 进击的UI------------网络判断
- 用一张白纸推导出 RAFT 算法
- CentOS 修改线程数限制等(limits.conf)
- oracle用EXPLAIN PLAN 分析SQL语句
- 思科模拟器企业网站服务器配置,思科模拟器服务器配置
- 30天自制操作系统 定时器
- 第一类边界条件,三角单元剖分,线性插值的位场延拓,LDLT高效求解
- 0-9 倒计时 8x8 点阵 实现
- 《撬动地球的Google》——Google的第一桶金(转载)
- mybatis mapper xml的学习详解
- 虚拟机安装黑苹果mac 10.12系统安装教程
- CICD概念 k8s DevOps
- jq多选按钮值_jQuery实现获取选中复选框的值实例详解
- 卷积神经网络的训练过程,卷积神经网络如何训练
- 虚拟机网络适配器下的3种网络模式(主机模式、桥接模式和NAT模式)