+ {/* 渲染图片标签和文字混合 */}
+ {(() => {
+ const msgAttachments = (message as any).attachments || [];
+ const fileParts = cleanedMessage.parts?.filter((p: any) => p.type === 'file' && p.url) || [];
+ const textParts = cleanedMessage.parts?.filter((p: any) => p.type === 'text' && p.text) || [];
- return (
-
- {textWithoutImages &&
{textWithoutImages}}
- {imageUrls.length > 0 && (
-
- {imageUrls.map((url, idx) => (
-
-

window.open(url, '_blank')}
- />
-
- ))}
-
- )}
-
- );
- }
- return null;
- })}
+ // 合并所有图片
+ const allImages = [
+ ...msgAttachments.map((att: any) => ({ url: att.url, name: att.name || 'Image' })),
+ ...fileParts.map((p: any) => ({ url: p.url, name: p.name || 'Image' }))
+ ];
+
+ // 获取纯文字内容(去掉标注提示前缀)
+ let textContent = textParts.map((p: any) => p.text).join(' ').trim();
+ // 移除标注提示前缀(这是后台处理用的,不需要显示给用户)
+ textContent = textContent.replace(/【注意:图片中有标注(箭头、圆圈、文字等)标记的区域是需要重点关注或修改的部分,请根据标注进行处理】\n?/g, '');
+
+ // 解析文字中的图片名称引用,构建混合显示
+ const elements: React.ReactNode[] = [];
+
+ // 先添加图片标签
+ allImages.forEach((img, idx) => {
+ elements.push(
+
+
+ {img.name}
+
+ );
+ });
+
+ // 添加文字内容
+ if (textContent) {
+ elements.push(
+
{textContent}
+ );
+ }
+
+ return elements;
+ })()}
+