| | |
| | | attachFileList: Ref<Attach<UploadFile>[]>; |
| | | }; |
| | | |
| | | const compareFiles = (file1: File, file2: File) => { |
| | | if (file1.type !== file2.type) return false; |
| | | if (file1.name !== file2.name) return false; |
| | | if (file1.size !== file2.size) return false; |
| | | if (file1.lastModified !== file2.lastModified) return false; |
| | | return true; |
| | | }; |
| | | |
| | | export type FileType = 'doc' | 'docx' | 'pdf' | 'md' | 'xls' | 'xlsx' | 'png' | 'jpg' | 'jpeg' | 'gif' | 'json' | 'txt' | 'csv'; |
| | | export type FileGroupType = 'word' | 'pdf' | 'excel' | 'image' | 'json' | 'md' | 'csv' | 'txt'; |
| | | export type UploadFile = { |
| | |
| | | groupType: FileGroupType; |
| | | size: string; |
| | | file: File; |
| | | |
| | | icon?: string; |
| | | iconClass?: string; |
| | | previewUrl?: string; |
| | |
| | | return ''; |
| | | } |
| | | }; |
| | | // const supportFileType = ['doc', 'docx', 'md', 'xls', 'xlsx', 'png', 'jpg', 'jpeg', 'gif', 'json', 'pdf']; |
| | | const supportFileType = ['csv', 'txt']; |
| | | const supportFileType = ['doc', 'docx', 'md', 'xls', 'xlsx', 'png', 'jpg', 'jpeg', 'gif', 'json', 'pdf','csv', 'txt']; |
| | | // const supportFileType = ['csv', 'txt']; |
| | | |
| | | export const getFileSuffix = (name:string):FileType=>{ |
| | | if(!name) return 'txt'; |
| | | export const getFileSuffix = (name: string): FileType => { |
| | | if (!name) return 'txt'; |
| | | const suffix = name.split('.').pop() as FileType; |
| | | return suffix |
| | | } |
| | | return suffix; |
| | | }; |
| | | export const useUploadFile = (options: UseUploadFileOptions) => { |
| | | const { attachFileList } = options; |
| | | const parseFiles = (files: FileList) => { |
| | | const filterFiles: UploadFile[] = []; |
| | | for (const file of files) { |
| | | if (attachFileList.value.find((item) => compareFiles(item.model.file, file))) { |
| | | continue; |
| | | } |
| | | const suffix = getFileSuffix(file.name); |
| | | if (supportFileType.includes(suffix)) { |
| | | const groupType = getFileGroupType(suffix); |
| | |
| | | const files = data.files as FileList; |
| | | parseFiles(files); |
| | | }; |
| | | |
| | | |
| | | const { |
| | | files, |