From 626f8992f661727eda1d7c772d46687f6f20fa2f Mon Sep 17 00:00:00 2001 From: shiyue <935732994@qq.com> Date: Fri, 29 Aug 2025 14:10:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=A4=8D=E5=88=B6=E5=92=8C=E7=BC=96=E8=BE=91=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E5=B9=B6=E6=8F=90=E9=AB=98=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=95=B0=E9=87=8F=E4=B8=8A=E9=99=90=E8=87=B3?= =?UTF-8?q?20=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 +-- script.js | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++--- styles.css | 27 ++++++++++++++++++++ 3 files changed, 98 insertions(+), 6 deletions(-) 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; +}