From 92d2ea48d343fc00d81905167d033c40200ea716 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期二, 04 三月 2025 15:56:19 +0800 Subject: [PATCH] 快速引用;去重 --- src/components/chat/components/playBar/hook/useUploadFile.ts | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/components/chat/components/playBar/hook/useUploadFile.ts b/src/components/chat/components/playBar/hook/useUploadFile.ts index a2f4bb0..f7f04ea 100644 --- a/src/components/chat/components/playBar/hook/useUploadFile.ts +++ b/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; @@ -96,16 +105,19 @@ // const supportFileType = ['doc', 'docx', 'md', 'xls', 'xlsx', 'png', 'jpg', 'jpeg', 'gif', 'json', 'pdf']; 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, -- Gitblit v1.9.3