|
@@ -5,16 +5,10 @@ import mime from "mime";
|
|
|
export type UploadProps<T> = {
|
|
|
maxSize: number;
|
|
|
formats: string[];
|
|
|
- upload?: (
|
|
|
- file: File,
|
|
|
- onPercentage: (percentage: number) => void
|
|
|
- ) => Promise<T>;
|
|
|
+ upload?: (file: File, onPercentage: (percentage: number) => void) => Promise<T>;
|
|
|
};
|
|
|
|
|
|
-const defaultUpload = (
|
|
|
- file: File,
|
|
|
- onPercentage: (percentage: number) => void
|
|
|
-) => {
|
|
|
+const defaultUpload = (file: File, onPercentage: (percentage: number) => void) => {
|
|
|
onPercentage(100);
|
|
|
};
|
|
|
|
|
@@ -43,9 +37,7 @@ export const useUpload = <T>(props: UploadProps<T>) => {
|
|
|
};
|
|
|
|
|
|
const upload = async (file: File) => {
|
|
|
- const fileType = file.name
|
|
|
- .substring(file.name.lastIndexOf("."))
|
|
|
- .toUpperCase();
|
|
|
+ const fileType = file.name.substring(file.name.lastIndexOf(".")).toUpperCase();
|
|
|
|
|
|
if (!props.formats.some((type) => type.toUpperCase() === fileType)) {
|
|
|
ElMessage.error(`请上传${format.value}`);
|
|
@@ -54,10 +46,7 @@ export const useUpload = <T>(props: UploadProps<T>) => {
|
|
|
ElMessage.error(`请上传${size.value}以内的文件`);
|
|
|
return false;
|
|
|
} else {
|
|
|
- await (props.upload || defaultUpload)(
|
|
|
- file,
|
|
|
- (val) => (percentage.value = val)
|
|
|
- );
|
|
|
+ await (props.upload || defaultUpload)(file, (val) => (percentage.value = val));
|
|
|
percentage.value = undefined;
|
|
|
fileRef.value = file;
|
|
|
return true;
|
|
@@ -66,6 +55,7 @@ export const useUpload = <T>(props: UploadProps<T>) => {
|
|
|
|
|
|
return {
|
|
|
file: fileRef,
|
|
|
+ fileList: computed(() => (fileRef.value ? [fileRef.value] : [])),
|
|
|
previewFile,
|
|
|
removeFile,
|
|
|
percentage,
|