fix(Uploader): render objectUrl to avoid perf issue (#12106)

This commit is contained in:
跃跃 2023-07-20 20:50:03 +08:00 committed by GitHub
parent f56634c4a5
commit 1e585b5ce0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 3 deletions

View File

@ -158,6 +158,7 @@ export default defineComponent({
file,
status: '',
message: '',
objectUrl: URL.createObjectURL(file)
};
if (contents[index]) {
@ -175,6 +176,7 @@ export default defineComponent({
file: files as File,
status: '',
message: '',
objectUrl: URL.createObjectURL(files as File),
};
if (content) {
@ -230,8 +232,8 @@ export default defineComponent({
const imageFiles = props.modelValue.filter(isImageFile);
const images = imageFiles
.map((item) => {
if (item.file && !item.url && item.status !== 'failed') {
item.url = URL.createObjectURL(item.file);
if (item.objectUrl && !item.url && item.status !== 'failed') {
item.url = item.objectUrl;
urls.push(item.url);
}
return item.url;

View File

@ -111,7 +111,7 @@ export default defineComponent({
<Image
v-slots={{ default: renderCover }}
fit={imageFit}
src={item.content || item.url}
src={item.objectUrl || item.content || item.url}
class={bem('preview-image')}
width={Array.isArray(previewSize) ? previewSize[0] : previewSize}
height={Array.isArray(previewSize) ? previewSize[1] : previewSize}

View File

@ -8,6 +8,7 @@ export type UploaderResultType = 'dataUrl' | 'text' | 'file';
export type UploaderFileListItem = {
url?: string;
file?: File;
objectUrl?: string;
content?: string;
isImage?: boolean;
status?: '' | 'uploading' | 'done' | 'failed';