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