-
diff --git a/script.js b/script.js
index ebf748a..aa87acb 100644
--- a/script.js
+++ b/script.js
@@ -17,7 +17,7 @@ let currentModalInstance = null; // 当前模态框实例
// 配置常量
const CONFIG = {
MAX_FILE_SIZE: 10485760, // 10MB
- MAX_FILES_PER_UPLOAD: 1, // 限制为只上传一张图片
+ MAX_FILES_PER_UPLOAD: 10, // 限制为最多上传10张图片
SUPPORTED_IMAGE_FORMATS: ['image/jpeg', 'image/png', 'image/gif', 'image/webp'],
MAX_CHAT_HISTORY: 50, // 减少聊天历史记录数量以节省存储空间
MAX_GENERATED_IMAGES: 20, // 减少存储的图像数量以防止存储空间溢出
@@ -718,7 +718,8 @@ const apiService = {
const payload = {
model: settings.model,
messages: messages,
- stream: false
+ stream: false,
+ "modalities": ["image","text"]
};
const controller = new AbortController();
@@ -1485,6 +1486,10 @@ const uiController = {
// 显示图像预览
displayImagePreview: function(imageData) {
const preview = document.getElementById('imagePreview');
+ const placeholderContainer = preview.querySelector('.col-12.d-flex');
+ if (placeholderContainer) {
+ placeholderContainer.remove();
+ }
// 确保图像数据是Blob URL用于显示,但保持原始数据用于其他操作
let displayUrl;
@@ -1498,19 +1503,25 @@ const uiController = {
displayUrl = imageData.data;
}
- preview.innerHTML = `
-
-

+ const wrapper = document.createElement('div');
+ wrapper.className = 'col-md-4 mb-3';
+ wrapper.dataset.imageId = imageData.id; // Store imageId here
+
+ wrapper.innerHTML = `
+
+
- ${utils.formatFileSize(imageData.size)}
+ ${imageData.name}
+
${utils.formatFileSize(imageData.size)}
`;
+ preview.appendChild(wrapper);
},
// 保存聊天历史 - 新增消息时调用
@@ -1783,11 +1794,12 @@ const fileHandler = {
// 处理文件
handleFiles: function(files) {
- const preview = document.getElementById('imagePreview');
- preview.innerHTML = '';
-
- // 限制文件数量
- const filesToProcess = Array.from(files).slice(0, CONFIG.MAX_FILES_PER_UPLOAD);
+ if (uploadedImages.length + files.length > CONFIG.MAX_FILES_PER_UPLOAD) {
+ utils.showNotification(`最多只能上传 ${CONFIG.MAX_FILES_PER_UPLOAD} 张图片。`, 'warning');
+ return;
+ }
+
+ const filesToProcess = Array.from(files);
filesToProcess.forEach(file => {
try {
@@ -2123,11 +2135,13 @@ const app = {
removeImage: function(imageId) {
uploadedImages = uploadedImages.filter(img => img.id !== imageId);
const preview = document.getElementById('imagePreview');
+ const imageElement = preview.querySelector(`[data-image-id="${imageId}"]`);
+ if (imageElement) {
+ imageElement.remove();
+ }
+
if (uploadedImages.length === 0) {
- preview.innerHTML = '
未选择图像
';
- } else {
- preview.innerHTML = '';
- uploadedImages.forEach(img => uiController.displayImagePreview(img));
+ preview.innerHTML = '
';
}
},