diff --git a/README.md b/README.md index 510d7d112d8a9eabddb5dac27a17113c1b79b1b2..0defb3b1f6a6ba266680549d82a513c54b1e71ac 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,12 @@ ### H5版在线体验 ![H5版在线体验二维码](https://mydarling.gitee.io/uniapp-extend/static/qrcode_h5.png "H5版在线体验二维码") +#### Vue版本兼容 + +Vue2 | Vue3 +-- | -- +√ | 未测试 + #### 安装 * 下载项目 导入 HBuilderX 即可运行体验 diff --git a/uniapp-extend/components/helang-compress/helang-compress.vue b/uniapp-extend/components/helang-compress/helang-compress.vue index 77fbd5817ef9eadff8968316ee140c34db814c8b..474d10516040477228ce78aa418ffa8ed1812258 100644 --- a/uniapp-extend/components/helang-compress/helang-compress.vue +++ b/uniapp-extend/components/helang-compress/helang-compress.vue @@ -1,6 +1,6 @@ @@ -12,8 +12,17 @@ canvasSize: { width: 0, height: 0 - } + }, + canvasId:"" + } + }, + mounted() { + if(!uni || !uni._helang_compress_canvas){ + uni._helang_compress_canvas = 1; + }else{ + uni._helang_compress_canvas++; } + this.canvasId = `compress-canvas${uni._helang_compress_canvas}`; }, methods: { // 压缩 @@ -62,7 +71,7 @@ // Vue.nextTick 回调在 App 有异常,则使用 setTimeout 等待DOM更新 setTimeout(() => { - const ctx = uni.createCanvasContext('compress-canvas', this); + const ctx = uni.createCanvasContext(this.canvasId, this); ctx.clearRect(0,0,width, height) ctx.drawImage(info.path, 0, 0, width, height); ctx.draw(false, () => { @@ -73,7 +82,7 @@ height: height, destWidth: width, destHeight: height, - canvasId: 'compress-canvas', + canvasId: this.canvasId, fileType: params.fileType || 'png', quality: params.quality || 0.9, success: (res) => { @@ -120,13 +129,8 @@ return new Promise((resolve, reject)=>{ // 开始 let start = async ()=>{ - params.progress && params.progress({ - done, - fail, - count:waitList.length - }); // 等待图片压缩方法返回 - let path = await next(); + let path = await next().catch(()=>null); if(path){ done++; paths.push(path); @@ -134,6 +138,12 @@ fail++; } + params.progress && params.progress({ + done, + fail, + count:waitList.length + }); + index++; // 压缩完成 if(index >= waitList.length){