本次优化针对确认需求阶段的三个功能按钮进行了视觉优化和功能完善,确保所有功能都能正常工作并调用豆包1.6模型。
// 默认状态
icon-color: #3b82f6 (蓝色)
background: #ffffff (白色)
border: 1.5px solid #cbd5e1 (浅灰边框)
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05)
// Hover状态
icon-color: #2563eb (深蓝)
background: #eff6ff (浅蓝背景)
border-color: #3b82f6 (蓝色边框)
box-shadow: 0 4px 6px rgba(59, 130, 246, 0.15)
transform: translateY(-1px) (轻微上浮)
功能说明:
// 默认状态
icon-color: #f59e0b (黄色)
background: #ffffff (白色)
border: 1.5px solid #cbd5e1 (浅灰边框)
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05)
// Hover状态
icon-color: #d97706 (深黄)
background: #fef3c7 (浅黄背景)
border-color: #f59e0b (黄色边框)
box-shadow: 0 4px 6px rgba(245, 158, 11, 0.15)
transform: translateY(-1px) (轻微上浮)
// Active状态(启用深度思考后)
background: #fef3c7 (浅黄背景)
border-color: #f59e0b (黄色边框)
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.1) (外发光)
icon-color: #d97706 (深黄)
功能说明:
// 默认状态
icon-color: #10b981 (绿色)
background: #ffffff (白色)
border: 1.5px solid #cbd5e1 (浅灰边框)
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05)
// Hover状态
icon-color: #059669 (深绿)
background: #d1fae5 (浅绿背景)
border-color: #10b981 (绿色边框)
box-shadow: 0 4px 6px rgba(16, 185, 129, 0.15)
transform: translateY(-1px) (轻微上浮)
功能说明:
技术实现:
openAttachmentDialog(): void {
console.log('📎 打开附件对话框');
// 触发文件上传
const fileInput = document.getElementById('aiDesignFileInput') as HTMLInputElement;
if (fileInput) {
fileInput.click();
}
}
调用豆包1.6模型的流程:
用户点击按钮
↓
打开文件选择器
↓
用户选择图片
↓
图片上传到服务器
↓
图片URL添加到 aiDesignUploadedImages 数组
↓
用户点击"开始AI分析"
↓
调用 DesignAnalysisAIService.analyzeReferenceImages()
↓
构建多模态提示词 + 图片URL数组
↓
调用豆包1.6模型(fmode-1.6-cn)
↓
流式输出AI分析结果
文件位置:
stage-requirements.component.html 第268-270行stage-requirements.component.ts 第3820-3827行design-analysis-ai.service.ts 第24-140行技术实现:
toggleDeepThinking(): void {
this.deepThinkingEnabled = !this.deepThinkingEnabled;
console.log('💡 深度思考模式:', this.deepThinkingEnabled ? '已开启' : '已关闭');
}
调用豆包1.6模型的流程:
用户点击按钮
↓
切换 deepThinkingEnabled 标志
↓
按钮显示高亮状态(浅黄背景)
↓
用户点击"开始AI分析"或发送对话
↓
将 deepThinkingEnabled 传递给AI服务
↓
AI服务在提示词中添加深度思考指令:
"💡 深度模式:更详细分析设计心理、材质光影、色彩情绪。"
↓
调用豆包1.6模型(fmode-1.6-cn)
↓
获得更深入的分析结果
深度思考模式的优势:
文件位置:
stage-requirements.component.html 第271-273行stage-requirements.component.ts 第3832-3834行design-analysis-ai.service.ts 第167-170行技术实现(已优化):
startVoiceInput(): void {
// 检查浏览器支持
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
if (!SpeechRecognition) {
window?.fmode?.toast?.error?.('您的浏览器不支持语音识别功能');
return;
}
const recognition = new SpeechRecognition();
recognition.lang = 'zh-CN'; // 中文识别
recognition.continuous = false; // 单次识别
recognition.interimResults = false; // 不显示中间结果
recognition.onstart = () => {
window?.fmode?.toast?.success?.('🎤 正在录音,请说话...');
};
recognition.onresult = (event) => {
const transcript = event.results[0][0].transcript;
const confidence = event.results[0][0].confidence;
// ✅ 将识别结果添加到对话输入框
if (this.aiChatInput) {
this.aiChatInput += ' ' + transcript;
} else {
this.aiChatInput = transcript;
}
// 聚焦到输入框
this.chatInputElement.nativeElement.focus();
// 显示成功提示
window?.fmode?.toast?.success?.(`✅ 识别成功: ${transcript}`);
};
recognition.onerror = (event) => {
// 友好的错误提示
switch (event.error) {
case 'no-speech':
window?.fmode?.toast?.error?.('未检测到语音,请重试并大声说话');
break;
case 'audio-capture':
window?.fmode?.toast?.error?.('无法访问麦克风,请检查权限设置');
break;
case 'not-allowed':
window?.fmode?.toast?.error?.('麦克风权限被拒绝');
break;
// ... 其他错误类型
}
};
recognition.start();
}
调用豆包1.6模型的流程:
用户点击语音按钮
↓
检查浏览器支持(Chrome/Edge)
↓
请求麦克风权限
↓
开始录音(显示toast提示)
↓
语音识别(Web Speech API)
↓
识别结果填入对话输入框
↓
用户检查并调整文字
↓
用户点击发送按钮
↓
调用 DesignAnalysisAIService.continueConversation()
↓
构建对话历史 + 新消息
↓
调用豆包1.6模型(fmode-1.6-cn)
↓
流式输出AI回复
优化内容:
aiDesignTextDescription改为aiChatInput)支持的浏览器:
常见错误处理:
| 错误代码 | 说明 | 解决方案 |
|---------|------|---------|
| no-speech | 未检测到语音 | 请大声说话并重试 |
| audio-capture | 无法访问麦克风 | 检查麦克风设备是否正常 |
| not-allowed | 麦克风权限被拒绝 | 在浏览器设置中允许麦克风访问 |
| network | 网络错误 | 检查网络连接 |
| aborted | 识别被中止 | 重新点击按钮 |
文件位置:
stage-requirements.component.html 第274-276行stage-requirements.component.ts 第4152-4242行private readonly AI_MODEL = 'fmode-1.6-cn'; // 豆包1.6中文版
图片分析:
DesignAnalysisAIService.analyzeReferenceImages()对话助手:
DesignAnalysisAIService.continueConversation()| 文件 | 修改内容 | 行数 |
|---|---|---|
stage-requirements.component.scss |
优化三个按钮的样式,添加独特颜色主题 | 4130-4221 |
stage-requirements.component.ts |
优化语音输入功能,修复目标字段和错误处理 | 4152-4242 |
图片上传:
深度思考模式:
语音输入:
上传图片 → 启用深度思考 → 点击"开始AI分析"
↓
查看详细分析结果
↓
使用语音输入提出问题
↓
AI基于图片和分析结果进行对话
| 组件 | 技术 | 版本/说明 |
|---|---|---|
| AI模型 | 豆包1.6 CN | 多模态视觉+语言模型 |
| 前端框架 | Angular | TypeScript |
| 样式 | SCSS | 原子化CSS设计 |
| 语音识别 | Web Speech API | 浏览器原生API |
| 图标 | Ionic Icons | ion-icon组件 |
| 提示 | Toast | 轻量级提示组件 |
文档生成时间:2025年11月26日 版本:v1.0