|
|
|
@ -17,6 +17,7 @@ import type { BaseFormComponentType } from '@vben/common-ui'; |
|
|
|
import type { Recordable } from '@vben/types'; |
|
|
|
|
|
|
|
import { |
|
|
|
computed, |
|
|
|
defineAsyncComponent, |
|
|
|
defineComponent, |
|
|
|
h, |
|
|
|
@ -383,12 +384,17 @@ const withPreviewUpload = () => { |
|
|
|
attrs?.fileList || attrs?.['file-list'] || [], |
|
|
|
); |
|
|
|
|
|
|
|
const maxSize = computed(() => attrs?.maxSize ?? attrs?.['max-size']); |
|
|
|
const aspectRatio = computed( |
|
|
|
() => attrs?.aspectRatio ?? attrs?.['aspect-ratio'], |
|
|
|
); |
|
|
|
|
|
|
|
const handleBeforeUpload = async ( |
|
|
|
file: UploadFile, |
|
|
|
originFileList: Array<File>, |
|
|
|
) => { |
|
|
|
if (attrs.maxSize && (file.size || 0) / 1024 / 1024 > attrs.maxSize) { |
|
|
|
message.error($t('ui.formRules.sizeLimit', [attrs.maxSize])); |
|
|
|
if (maxSize.value && (file.size || 0) / 1024 / 1024 > maxSize.value) { |
|
|
|
message.error($t('ui.formRules.sizeLimit', [maxSize.value])); |
|
|
|
file.status = 'removed'; |
|
|
|
return false; |
|
|
|
} |
|
|
|
@ -401,7 +407,7 @@ const withPreviewUpload = () => { |
|
|
|
) { |
|
|
|
file.status = 'removed'; |
|
|
|
// antd Upload组件问题 file参数获取的是UploadFile类型对象无法取到File类型 所以通过originFileList[0]获取
|
|
|
|
const blob = await cropImage(originFileList[0], attrs.aspectRatio); |
|
|
|
const blob = await cropImage(originFileList[0], aspectRatio.value); |
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
if (!blob) { |
|
|
|
return reject(new Error($t('ui.crop.errorTip'))); |
|
|
|
|