From 3b03f87a02458f719e2eb4bf112a13441b427d14 Mon Sep 17 00:00:00 2001 From: ‘chensiAb’ <‘chenchenco03@163.com’> Date: Tue, 25 Mar 2025 13:54:34 +0800 Subject: [PATCH] Merge branch 'master' of ssh://dev.zhiheiot.com:29418/mob-components --- forms/imagePicker/CImagePicker.vue | 45 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 36 insertions(+), 9 deletions(-) diff --git a/forms/imagePicker/CImagePicker.vue b/forms/imagePicker/CImagePicker.vue index 0846c64..e5f4238 100644 --- a/forms/imagePicker/CImagePicker.vue +++ b/forms/imagePicker/CImagePicker.vue @@ -1,5 +1,8 @@ /** * CImagePicker + * 图片选择器组件,用于在表单中上传和管理图片 + * 支持单张和多张图片上传,并提供压缩、预览等功能 + * 可限制上传图片的数量和来源(相册/相机) * @author Tevin */ @@ -68,6 +71,16 @@ type: Object, default: () => {}, }, + // 是否开启缩略图 + needThumb: { + type: Boolean, + default: false, + }, + // 上传地址来源 + uploadUrlSource: { + type: String, + default: '', + }, }, data() { return { @@ -110,7 +123,7 @@ if (file.file && file.file.originalFileObj) { if ( /image\/(gif|png|jpg|jpeg)/.test( - file.file.originalFileObj.type + file.file.originalFileObj.type, ) ) { return true; @@ -133,8 +146,13 @@ const needs = nextFiles .map((file, needIndex) => { const fileInfo = file.file; - // 没有 file 信息对象,或者不是 blob 类型 - if (!fileInfo || fileInfo.path.indexOf('blob') < 0) { + // 没有 file 信息对象,或者不是 blob、wxfile、tmp 类型 + if ( + !fileInfo || + (fileInfo.path.indexOf('blob') < 0 && + fileInfo.path.indexOf('wxfile') < 0 && + fileInfo.path.indexOf('http://tmp/') < 0) + ) { return false; } // 尺寸小于 1M 的图片 @@ -213,7 +231,11 @@ callback(state, res); } }, - this.params + $fetchCommon.transKeyName('underline', { + ...this.params, + needThumb: this.needThumb ? 1 : 0, + }), + this.uploadUrlSource, ); }, }, @@ -233,12 +255,17 @@ // 图片上传节流 const _readyUpload = {}; -export const uploadImage = (files, callback, params) => { +export const uploadImage = (files, callback, formData = {}, uploadUrlSource) => { if (!files || files.length === 0) { callback('success', []); return; } - let url = $fetchCommon.getUploadImgURL(); + let url = ''; + if (uploadUrlSource === 'LPG') { + url = $fetchCommon.getLPGUploadImgURL(); + } else { + url = $fetchCommon.getUploadImgURL(); + } if (url.indexOf('http') < 0) { url = $hostBoot.getHost() + url; } @@ -277,7 +304,7 @@ ...requestFile, header, name: 'file', - formData: { ...params }, + formData, timeout: 30 * 1000, success(res) { let res2; @@ -298,7 +325,7 @@ if (res2.state.code === 2000) { const imgUrl = $fetchCommon.transImgPath( 'fix', - res2.data.src || res2.data.file || res2.data.url + res2.data.src || res2.data.file || res2.data.url, ); _readyUpload[file.url] = imgUrl; resolve(imgUrl); @@ -325,7 +352,7 @@ }); }, }); - }) + }), ); } // 其他类型视为 url,忽略 -- Gitblit v1.9.1