wujingjing
2025-03-11 c144c39d9f3f86e1b52ae4247f8322f6396a4320
src/components/chat/components/playBar/hook/useUploadFile.ts
@@ -8,6 +8,14 @@
   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 = {
@@ -16,6 +24,7 @@
   groupType: FileGroupType;
   size: string;
   file: File;
   icon?: string;
   iconClass?: string;
   previewUrl?: string;
@@ -93,19 +102,22 @@
         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);
@@ -162,7 +174,6 @@
      const files = data.files as FileList;
      parseFiles(files);
   };
   const {
      files,