使用技术:
html2canvas: div 转化为图片
JSZip: 生成压缩包,里面可以包含多张图片,用于一键生成所有图品
生成图片算法: let a = [[1,2,3],[4,5]] 转化为 [[1,4],[1,5],[2,4],[2,5],[3,4],[3,5]]
indexedDb : 用户操作保存下来,生成模板,方便后面使用
indexedDB 优势: 储存数据大,
indexedDB 详细应用看这个: (https://blog.csdn.net/weixin_35958891/article/details/105112381)
清除浏览器缓存:谷歌中indexedDB会被清掉,火狐没有去掉,可能一般都可以清除掉,也可以手动去删除,
而且有些时候,谷歌清除了indexedDB的表,库没有删,导致indexedDB运行报错,手动删除一下就好了,
safari 浏览器可能不支持indexedDB
代码地址:
https://gitee.com/liboyaoyao/img.git
生成图片算法:
function ceshi(param) {
let returnObg = [];
for (let i = 0; i < param.length; i++) {
//returnObg return 出去的值,如果一开始没有是加进去,有的话是在已有的数据上添加
if (returnObg.length === 0) {
for (let j = 0; j < param[i].length; j++) {
returnObg.push({
url: param[i][j].url
})
}
} else {
let oldReturnObg = JSON.parse(JSON.stringify(returnObg));
returnObg = [];
for (let j = 0; j < param[i].length; j++) {
for (let k = 0; k < oldReturnObg.length; k++) {
let newArr = [];
//已有的可能是数据,也可能是单个,数组就分解,单个直接用
if (oldReturnObg[k] instanceof Array) {
newArr = [...oldReturnObg[k], param[i][j]]
} else {
newArr = [oldReturnObg[k], param[i][j]]
}
console.log(oldReturnObg[k], param[i][j], 9999987, newArr)
returnObg.push(newArr)
}
}
}
}
return returnObg
}