diff --git a/uniapp/WorkCameraf/common/utils.js b/uniapp/WorkCameraf/common/utils.js index 28d8643..0e9fb03 100644 --- a/uniapp/WorkCameraf/common/utils.js +++ b/uniapp/WorkCameraf/common/utils.js @@ -878,6 +878,7 @@ export const saveImageToPhotosAlbum = (image) => { try { // 创建一个隐藏的 a 标签,触发下载 const link = document.createElement("a"); + console.log("下载地址:"+image); link.href = image; // 如果 image 是 blob url 或 http url,都可以 link.download = "image_" + Date.now()+".jpg"; // 下载文件名 @@ -915,6 +916,32 @@ export const saveImageToPhotosAlbum = (image) => { // #endif }); }; +/** + * 批量保存图片到相册(兼容 H5 / App / 小程序) + * @param {string[]} images - 图片路径数组 + * @param {function} onProgress - 进度回调 (completed, total) + * @returns {Promise<{success: number, failed: number}>} 保存结果统计 + */ +export const saveImagesToPhotosAlbum = async (images, onProgress = null) => { + const result = { success: 0, failed: 0 }; + + for (let i = 0; i < images.length; i++) { + try { + await saveImageToPhotosAlbum(images[i]); + result.success++; + } catch (err) { + console.error(`保存第${i + 1}张图片失败:`, err); + result.failed++; + } + + if (onProgress) { + onProgress(i + 1, images.length); + } + } + + return result; +}; + /** * 图片转Base64(兼容小程序、App、H5) * @param {string} filePath - 图片路径(小程序临时路径 / H5本地URL / App本地路径) diff --git a/uniapp/WorkCameraf/pages/index/index.vue b/uniapp/WorkCameraf/pages/index/index.vue index 8d64c54..0029d30 100644 --- a/uniapp/WorkCameraf/pages/index/index.vue +++ b/uniapp/WorkCameraf/pages/index/index.vue @@ -222,6 +222,7 @@ import { formatDate, getCachedLogo, saveImageToPhotosAlbum, + saveImagesToPhotosAlbum, imageToBase64, } from "../../common/utils"; import { @@ -910,10 +911,11 @@ const fallbackToV2Upload = async (_remarks, validWorkers) => { icon: "success", }); - // 保存水印图片到相册 + // 保存所有水印图片到相册 try { - if (imageSrc.value) { - await saveImageToPhotosAlbum(imageSrc.value); + if (imageList.value.length > 0) { + const watermarkPaths = imageList.value.map(img => img.watermark); + await saveImagesToPhotosAlbum(watermarkPaths); } } catch (saveError) { console.error("保存图片到相册失败:", saveError); @@ -1079,9 +1081,11 @@ const handleSaveAndSubmit = async () => { } try { - // 保存水印图片到相册 - if (imageSrc.value) { - await saveImageToPhotosAlbum(imageSrc.value); + // 保存所有水印图片到相册 + if (imageList.value.length > 0) { + const watermarkPaths = imageList.value.map(img => img.watermark); + const saveResult = await saveImagesToPhotosAlbum(watermarkPaths); + console.log(`保存到相册完成: 成功${saveResult.success}张, 失败${saveResult.failed}张`); } } catch (error) { console.error("保存图片失败", error);