diff --git a/index.html b/index.html index da876c3..9c207be 100644 --- a/index.html +++ b/index.html @@ -117,7 +117,7 @@
生成数量 - +
- 支持1-10张图像同时生成 + 支持1-20张图像同时生成
diff --git a/script.js b/script.js index 7a79e87..c7531b1 100644 --- a/script.js +++ b/script.js @@ -724,14 +724,29 @@ const uiController = { messageDiv.className = `chat-message ${role} fade-in`; const timestamp = new Date().toLocaleTimeString(); + const messageId = `msg-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; + + // 为用户消息添加操作按钮 + const actionButtons = role === 'user' ? ` +
+ + +
+ ` : ''; + messageDiv.innerHTML = `
${role === 'user' ? '用户' : '助手'} ${timestamp}
+ ${actionButtons}
-
${this.escapeHtml(content)}
+
${this.escapeHtml(content)}
`; chatHistoryDiv.appendChild(messageDiv); @@ -1243,14 +1258,29 @@ const uiController = { messageDiv.className = `chat-message ${msg.role} fade-in`; const timestamp = new Date(msg.timestamp || Date.now()).toLocaleTimeString(); + const messageId = `msg-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; + + // 为用户消息添加操作按钮 + const actionButtons = msg.role === 'user' ? ` +
+ + +
+ ` : ''; + messageDiv.innerHTML = `
${msg.role === 'user' ? '用户' : '助手'} ${timestamp}
+ ${actionButtons}
-
${self.escapeHtml(msg.content)}
+
${self.escapeHtml(msg.content)}
`; chatHistoryDiv.appendChild(messageDiv); @@ -1574,8 +1604,8 @@ const app = { return; } - if (batchCount < 1 || batchCount > 10) { - utils.showNotification('请输入有效的生成数量(1-10)', 'warning'); + if (batchCount < 1 || batchCount > 20) { + utils.showNotification('请输入有效的生成数量(1-20)', 'warning'); return; } @@ -1808,6 +1838,41 @@ const app = { fileHandler.handleFiles(files); }, + // 复制消息内容到剪贴板 + copyMessageContent: function(messageId) { + const messageElement = document.getElementById(messageId); + if (!messageElement) { + utils.showNotification('找不到消息内容', 'danger'); + return; + } + + const content = messageElement.textContent; + navigator.clipboard.writeText(content).then(() => { + utils.showNotification('已复制到剪贴板', 'success'); + }).catch(() => { + utils.showNotification('复制失败,请手动复制', 'danger'); + }); + }, + + // 编辑消息内容,将其填入文本框 + editMessageContent: function(messageId) { + const messageElement = document.getElementById(messageId); + if (!messageElement) { + utils.showNotification('找不到消息内容', 'danger'); + return; + } + + const content = messageElement.textContent; + const messageInput = document.getElementById('messageInput'); + if (messageInput) { + messageInput.value = content; + messageInput.focus(); + utils.showNotification('内容已填入文本框', 'success'); + } else { + utils.showNotification('找不到文本输入框', 'danger'); + } + }, + // 清除存储数据 clearStorage: async function() { diff --git a/styles.css b/styles.css index 8f3194b..b52caa3 100644 --- a/styles.css +++ b/styles.css @@ -700,3 +700,30 @@ body { border-bottom-left-radius: var(--border-radius); border-bottom-right-radius: var(--border-radius); } + +/* 聊天消息操作按钮 */ +.message-actions { + opacity: 0; + transition: opacity 0.3s ease; +} + +.chat-message:hover .message-actions { + opacity: 1; +} + +.message-actions .btn { + padding: 4px 8px; + font-size: 0.75rem; + border-radius: 6px; + min-width: 32px; +} + +.message-actions .btn:hover { + transform: translateY(-1px); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +.message-content { + word-break: break-word; + line-height: 1.5; +}