# 06-AI对话页面 ## 目标 实现 AI 健康问诊对话功能,支持多轮对话和对话历史管理。 --- ## UI 设计参考 > 参考设计稿:`files/ui/问答页.png`、`files/ui/问答对话.png` ### 对话首页布局 | 区域 | 设计要点 | |------|----------| | 导航栏 | "AI健康助手" + 绿色 "在线" 状态 + 更多菜单 | | AI 欢迎语 | 机器人图标(蓝色背景 `#3B82F6`)+ 灰色气泡 | | 常见问题 | "常见问题" 标签(灰色)+ 快捷问题按钮(白色圆角) | | 输入区 | 麦克风图标 + 输入框(灰色背景)+ 绿色发送按钮 | ### 消息气泡样式 | 类型 | 样式 | |------|------| | AI 消息 | 左对齐,机器人图标(蓝色 `#3B82F6`),灰色气泡 `#F3F4F6` | | 用户消息 | 右对齐,用户图标(绿色 `#10B981`),绿色气泡 `#10B981`,白色文字 | | 时间显示 | 灰色小字 `#9CA3AF`,位于消息下方 | ### 输入区样式 | 元素 | 样式 | |------|------| | 麦克风 | 灰色图标 `#9CA3AF` | | 输入框 | 灰色背景 `#F3F4F6`,圆角 24px,占位符 "请输入您的健康问题..." | | 发送按钮 | 绿色圆形按钮 `#10B981`,飞机图标 | ### 快捷问题示例 - 我最近总是感觉疲劳怎么办? - 如何改善睡眠质量? - 有什么养生建议吗? - 感冒了应该注意什么? --- ## 前置要求 - 体质测评页面完成 - 后端对话接口可用 --- ## 实施步骤 ### 步骤 1:创建对话 API 创建 `src/api/conversation.ts`: ```typescript import request from './request' import type { Conversation, Message } from '@/types' export const getConversations = (): Promise => { return request.get('/conversations') } export const createConversation = (title?: string): Promise => { return request.post('/conversations', { title }) } export const getConversation = (id: number): Promise => { return request.get(`/conversations/${id}`) } export const deleteConversation = (id: number) => { return request.delete(`/conversations/${id}`) } export const sendMessage = (id: number, content: string): Promise<{ reply: string }> => { return request.post(`/conversations/${id}/messages`, { content }) } ``` ### 步骤 2:创建对话列表页面 创建 `src/views/chat/Index.vue`: ```vue ``` ### 步骤 3:创建对话详情页面 创建 `src/views/chat/Detail.vue`: ```vue ``` ### 步骤 4:安装 marked 库 ```bash npm install marked npm install @types/marked -D ``` --- ## 需要创建的文件清单 | 文件路径 | 说明 | |----------|------| | `src/api/conversation.ts` | 对话 API | | `src/views/chat/Index.vue` | 对话列表页 | | `src/views/chat/Detail.vue` | 对话详情页 | --- ## 验收标准 - [ ] 对话列表正确显示 - [ ] 新建对话功能正常 - [ ] 消息发送和接收正常 - [ ] AI 回复正确渲染 Markdown - [ ] 打字动画效果正常 - [ ] 免责声明显示 --- ## 预计耗时 35-40 分钟 --- ## 下一步 完成后进入 `03-Web前端开发/07-个人中心页面.md`