5.1 KiB
5.1 KiB
数智 AI 聊天页面设计文档
概述
在 src/views/frontend/index.vue 创建独立的「数智 AI」聊天页面,采用 Vue3 组合式 API + ElementPlus 组件库,与现有 kds/chat.vue 风格保持一致。
页面布局
三栏固定布局
┌─────────────────────────────────────────────────────────┐
│ [LOGO栏: 数智AI] [折叠按钮] │ ← #0F172A
├─────────┬───────────────────────────────────────────────┤
│ │ 面包屑: general / 智能体 / 欢迎使用数智AI │
│ 侧边栏 │ [智能体][文件][技能][路由][记忆][常驻] │ ← 功能按钮
│ #F8F9FA │──────────────────────────────────────────────│
│ │ │
│ [项目] │ 消息区域(滚动) │
│ [通用] │ [AI回复靠左] │
│ │ [用户气泡靠右] │
│ 树形列表 │ ───────────────────────────── │
│ │ │
├─────────┴───────────────────────────────────────────────┤
│ [智能体][下拉框][@][权限] [输入框...] [发送] │ ← 固定底部
└─────────────────────────────────────────────────────────┘
详细设计
1. 左侧边栏(固定宽度 220px)
LOGO 栏:
- 高度: 56px
- 背景: #0F172A
- 左侧白色文字「数智 AI」
- 右侧折叠图标按钮,点击提示"敬请期待"
Tab 切换区:
- 两个并排按钮:「项目」「通用」
- 点击提示"敬请期待"
树形列表区域:
- 一级节点:数智AI Demo,带下拉展开箭头,右侧有关闭 × 按钮、新增 + 按钮
- 二级子节点:欢迎使用 数智AI,下方灰色小字「57 分钟前」
- 所有交互点击均提示"敬请期待"
2. 中间主内容区域
顶部面包屑:
- 文字:
general / 智能体 / 欢迎使用 数智AI
功能导航栏(6个按钮):
- 智能体、文件、技能、路由、记忆、常驻
- 全部点击提示"敬请期待"
消息容器:
- 白色背景,占据剩余高度
- 自动滚动到底部
消息样式:
- 用户消息: 靠右,背景 #F1F3F5,气泡左上角灰色小字「已处理 1m」
- AI 回复: 靠左,无背景白色文本块
- 消息间 1px 浅灰分割线 #E5E7EB 隔开
文字色:
- 正文: #222
- 辅助小字: #888
- 加粗标题: #111
3. 底部固定输入栏
- 大圆角文本输入框,占位文字: "告诉 数智AI 你想完成什么..."
- 左下角功能控件: 「智能体」按钮、下拉选择框、@按钮、权限按钮(全部提示"敬请期待")
- 右下角发送按钮,浅灰色底色
API 交互
请求信息
- URL:
http://192.168.5.125:18000/v1/chat/completions - Method: POST
- Headers:
- Authorization: Bearer 5c49dd2a721e0f408ea49298b6c13ddf17267eb0b64e3da7019ee581f597408e
- Content-Type: application/json
请求 Body
{
"model": "qwen3.6-27b-nvfp4",
"messages": [
{
"role": "user",
"content": "/no_think\n 用户的问题"
}
],
"max_tokens": 200,
"temperature": 0.7
}
流式响应处理
- 使用 EventSource 或 fetch + ReadableStream 解析 SSE 流式响应
- 逐字实时渲染到 AI 消息气泡,模拟打字机效果
- 请求期间发送按钮置灰
色彩规范
| 元素 | 色值 |
|---|---|
| 侧边栏背景 | #F8F9FA |
| LOGO 栏背景 | #0F172A |
| 用户气泡背景 | #F1F3F5 |
| 关键词高亮 | #EEEEEE |
| 分割线 | #E5E7EB |
| 正文文字 | #222 |
| 辅助小字 | #888 |
| 加粗标题 | #111 |
| 组件圆角 | 8px |
功能黑白名单
可正常运行
- 底部输入框文本输入
- 发送按钮触发对话 API
- 用户消息、AI 流式回复渲染
- 消息区域自动滚动
- 接口成功/失败弹窗提示
点击提示"敬请期待"
- 左侧边栏所有按钮、树节点、Tab 切换
- 顶部功能导航栏(智能体/文件/技能/路由/记忆/常驻)
- 底部输入栏左下角全部附属功能按钮
路由配置
需要在 src/router/index.js 中添加路由:
{
path: '/frontend',
component: Layout,
children: [
{
path: 'index',
component: () => import('@/views/frontend/index'),
name: 'Frontend',
meta: { title: '数智 AI' }
}
]
}
文件清单
| 文件 | 说明 |
|---|---|
src/views/frontend/index.vue |
主页面组件(单文件实现) |
src/router/index.js |
添加路由配置 |