Files
wecom_it_smart_desk/docs/04-运维文档/部署运维/智能IT支持服务台-项目迁移文档-archived-20260704.md
T
Simon 44e77dcb0e chore(docs): docs/ 目录全面重新编号 + 重组
**重构前**(旧编号 02-11):
- docs/02-产品需求/      → 00 产品规划/PRD
- docs/03-技术架构/      → 01-05 子目录散落
- docs/04-原型设计/      → 01-02 产品设计(HTML 原型)
- docs/05-原型设计/      → screens/
- docs/06-测试素材/      → 02-E2E / 03-功能 / 04-版本测试
- docs/07-项目管理/      → 任务说明书/日报/计划
- docs/08-安全审计/      → 审计报告
- docs/09-堡垒运维/      → toolbox / deploy
- docs/10-项目管理/      → 任务说明书(重复)
- docs/11-历史归档/      → deploy-nas-archived

**重构后**(新编号 00-07,语义化):
- docs/00-产品开发流程与文档管理规范.md
- docs/00-版本迭代总览.md
- docs/01-产品文档/      (PRD/原型/认证/会话/AI 服务/坐席/集成)
- docs/02-技术文档/      (技术方案/架构图/重构记录/前端改造/实现配置)
- docs/03-测试文档/      (E2E/功能用例/版本报告/缺陷单)
- docs/04-运维文档/      (部署运维/运维指南)
- docs/05-运营文档/      (品牌推广/用户手册)
- docs/06-安全审计/      (审计报告)
- docs/07-项目管理/      (任务说明书/日报/计划/看板)

**净收益**:
- 目录编号与产品文档管理规范对齐(按文档阶段 01-07 编号)
- 消除 02-产品需求 与 10-项目管理 的编号重叠
- 子目录按文档类型分组(如 01-产品文档/00-产品规划、01-产品文档/01-认证与登录)
- 把运维/安全/项目管理从 0X 散落改为 04/06/07

合计 494 文件 + 78495 行 / - 14076 行
2026-08-03 18:46:55 +08:00

259 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 智能IT支持服务台 — 项目迁移文档
**生成时间**2026-06-06
**来源项目**`C:\Users\simon\wecom_it_smart_desk`
**原型文件**`C:\Users\simon\WorkBuddy\2026-05-21-16-57-26\agent-workspace-v5_3.html`
---
## 一、项目概览
| 项目 | 路径 | 技术栈 |
|------|------|---------|
| 后端 | `C:\Users\simon\wecom_it_smart_desk\backend` | Python 3.12 + FastAPI + SQLAlchemy |
| 前端(坐席工作台) | `C:\Users\simon\wecom_it_smart_desk\frontend-agent` | Vue 3 + TypeScript + Vite + Element Plus + Pinia |
| 原型 HTML | `C:\Users\simon\WorkBuddy\2026-05-21-16-57-26\agent-workspace-v5_3.html` | 单文件,v5.3 定版 |
| 服务器 | `10.80.0.129` | Docker Compose (postgres + redis + backend + nginx) |
---
## 二、锁定的设计决策(迁移后必须遵守)
### 2.1 原型规范
-**原型 v5.3 已锁定**`agent-workspace-v5_3.html`),调整样式前必须与用户确认
- ✅ 用户偏好**深色科技风 UI**,原型**必须使用中文**
- ✅ 所有修改基于现有面板内调整,**不另开新页面**
- ✅ 聊天区域应缩小,给侧栏更多空间
### 2.2 布局架构(三栏)
```
┌──────────┬────────────────────────┬──────────────┐
│ 左栏 │ 中栏 │ 右栏 │
│ (240px) │ (flex:1 自适应) │ (320px) │
│ │ │ │
│ 会话列表 │ UserInfoBar │ AI 智能推荐 │
│ 搜索框 │ TroubleshootBar │ 快速回复 │
│ 待办事项 │ 消息列表 │ (三层导航) │
│ │ ReplyBox (输入框) │ │
└──────────┴────────────────────────┴──────────────┘
```
### 2.3 关键交互规则
| 功能 | 规则 |
|------|------|
| 排查步骤栏 | 始终可见(不可收起),位于 UserInfoBar 下方、消息列表上方 |
| 全流程图 | 默认收起,通过 `▶` / `▼` 三角图标切换 |
| 用户信息栏展开箭头 | 收起 `▶`(向右)→ 展开 `▼`(向下,CSS `rotate(90deg)` |
| AI 推荐 | **仅在右边栏**,不在中间栏内联显示 |
| 快速回复 | 三层渐进导航:L1(7列grid) → L2(chip流式) → L3(列表) |
| 主题切换 | 浅色(`:root`) / 深色(`[data-theme="dark"]`) 双主题 |
| 输入框 | `resize: vertical` 手动拖拽 + `autosize` 最大 8 行 + `max-height: 200px` |
---
## 三、原型 v5.3 布局细节(已确认的终版)
> **文件**`C:\Users\simon\WorkBuddy\2026-05-21-16-57-26\agent-workspace-v5_3.html`
### 3.1 中间栏(center-columnDOM 顺序
```html
<div class="center-column">
<div class="chat-view"> <!-- 整个聊天视图容器 -->
<div class="user-info-bar"> <!-- 用户信息栏(含6卡片展开详情) -->
<div class="user-detail-panel"> <!-- 展开详情(默认收起) -->
<div class="troubleshoot-bar" id="tsBar"> <!-- 排查步骤(紧跟用户信息栏) -->
<div class="ts-header"> <!-- 标题行:[🔧 排查步骤] [①→②→③→④→⑤] [▶] -->
<div class="chat-messages"> <!-- 消息列表 -->
<div class="chat-input-area"> <!-- 输入框区域 -->
<textarea autosize maxRows=8 resize=vertical>
</div> <!-- chat-view 闭合标签 -->
<div class="sidebar-right"> <!-- 右边栏(AI推荐 + 快速回复) -->
</div>
```
### 3.2 排查步骤栏(ts-header 单行布局)
```html
<div class="ts-header">
<span class="ts-title">🔧 排查步骤</span>
<el-select>...</el-select> <!-- 模板选择下拉 -->
<div class="ts-path-inline"> <!-- 内联路径步骤 -->
<span class="path-step-inline done">① 确认版本</span>
<span class="path-arrow-inline"></span>
...
</div>
<span class="ts-flowchart-toggle"></span> <!-- 三角切换图标 -->
</div>
```
### 3.3 用户信息栏展开箭头
```css
.user-info-bar.expanded .expand-icon {
transform: rotate(90deg); /* ▶ 旋转后变成 ▼ */
}
```
```html
<span class="expand-icon"></span> <!-- 收起时向右,展开时向下 -->
```
---
## 四、Vue 3 项目 — 已修改文件清单
### 4.1 核心视图
| 文件 | 修改内容 |
|------|---------|
| `src/views/Workspace.vue` | `onMounted` 添加 `fetchConversations()` + 自动选第一个会话;`assistantVisible` 默认 `true` |
| `src/components/chat/ChatArea.vue` | 移除 `AiRecommendInline``TroubleshootBar` 位置调整到 `UserInfoBar` 下方;移除重复的第一个 `TroubleshootBar` |
### 4.2 聊天组件
| 文件 | 修改内容 |
|------|---------|
| `src/components/chat/UserInfoBar.vue` | 展开箭头 `▶``▼`rotate 90deg),之前方向反了 |
| `src/components/chat/TroubleshootBar.vue` | 路径步骤合并到标题行;展开按钮简化为三角 `▶`/`▼` |
| `src/components/chat/ReplyBox.vue` | `autosize` 上限 4→8 行;`resize: none``resize: vertical`;支持手动拖拽 |
| `src/components/chat/AiRecommendInline.vue` | 已从 `ChatArea.vue` 移除引用(AI推荐仅保留右边栏) |
### 4.3 右边栏组件
| 文件 | 修改内容 |
|------|---------|
| `src/components/assistant/AiAssistantPanel.vue` | 右边栏主容器(AI推荐 + 快速回复) |
| `src/components/assistant/QuickReplyPanel.vue` | 三层渐进导航,L1 七类,数据源 `src/data/qrData.ts` |
| `src/components/assistant/RiskAlert.vue` | 风险告警组件 |
| `src/components/assistant/OperationSteps.vue` | 操作步骤组件 |
### 4.4 状态管理(Stores
| 文件 | 修改内容 |
|------|---------|
| `src/stores/conversation.ts` | `fetchConversations()` DEV 环境 Mock 兜底;自动选中第一个会话 |
| `src/stores/agent.ts` | `initAuth()` 检查 localStorage token |
| `src/stores/todo.ts` | 待办事项 Mock 数据 |
| `src/composables/useWebSocket.ts` | WebSocket 直连后端 `ws://localhost:8000/ws/{agentId}` |
### 4.5 样式
| 文件 | 修改内容 |
|------|---------|
| `src/styles/global.css` | `.reply-box .el-textarea__inner { max-height: 200px; }``.message-list-scroll { flex: 1; overflow-y: auto; }` |
### 4.6 数据
| 文件 | 说明 |
|------|------|
| `src/data/qrData.ts` | 快速回复 180 条(7大类 × 28子类),TypeScript 类型化 |
---
## 五、后端关键修改(参考)
> 路径:`C:\Users\simon\wecom_it_smart_desk\backend`
| 文件 | 修改内容 |
|------|---------|
| `app/services/session_service.py` | `get_conversations()` 排序改为 Python 侧(SQLite 不支持 JSONB 操作符) |
| `app/main.py` | 添加 `dify_conversation_id` 列(PostgreSQL |
| `app/models/todo_item.py` | TodoItem 模型 |
| `app/models/troubleshooting_template.py` | TroubleshootingTemplate 模型 |
---
## 六、已修复的关键 Bug(迁移后注意)
### Bug 1:会话列表不显示 / 页面空白
**根因**`Workspace.vue` `onMounted` 未调用 `fetchConversations()``currentConversation` 始终为 `null``ChatArea` 不渲染。
**修复**`onMounted` 中添加 `await conversationStore.fetchConversations()` + 自动选中第一个会话。
### Bug 2:AI 推荐同时出现在中间栏和右边栏
**根因**`ChatArea.vue` 中引入了 `<AiRecommendInline />` 组件。
**修复**:移除 `ChatArea.vue` 中的 `AiRecommendInline` 模板、import、ref、`onAiRecommend` 快捷键绑定。
### Bug 3:原型 HTML 右边栏显示在中栏内部
**根因**`<div class="chat-view">` 缺少 `</div>` 闭合标签,浏览器把 `sidebar-right` 解析为 `center-column` 的子元素。
**修复**:在 `chat-input-area` 关闭后补 `</div>` 闭合 `chat-view`
### Bug 4:排查步骤栏出现两个(上下重复)
**根因**`ChatArea.vue` 模板里有两个 `<TroubleshootBar />`(一个在 UserInfoBar 下方,一个在 ReplyBox 下方)。
**修复**:删除 ReplyBox 下方的重复 `<TroubleshootBar />`
### Bug 5:用户信息栏展开箭头方向反了
**根因**:收起时 `▼`,展开时 `▲`CSS `rotate(180deg)`)。
**修复**:收起 `▶`,展开 `▼`CSS `rotate(90deg)`)。
### Bug 6:会话列表 API 500 错误
**根因**`session_service.py` 用 SQL 侧 `case()` + `tags["hand_raise"].as_boolean()` 排序,SQLite 不支持 JSONB 操作符。
**修复**:排序改为 Python 侧 `_sort_key()` 函数实现。
---
## 七、服务器部署状态
| 项目 | 状态 |
|------|------|
| 服务器地址 | `10.80.0.129` |
| Docker Compose 容器 | `postgres`, `redis`, `backend`, `nginx` |
| nginx | 已修复 301 重定向和 API 双重前缀问题 |
| PostgreSQL | 已添加 `dify_conversation_id` 列 |
| Redis | `it-desk-redis` 容器中运行中 |
---
## 八、知识库
| 项目 | 状态 |
|------|------|
| 数据源 | `IT支持知识库2026-4-24.docx` |
| 快速回复条数 | 180 条(7大类 × 28子类) |
| 前端数据文件 | `frontend-agent/src/data/qrData.ts` |
| 原型数据文件 | `agent-workspace-v5_3.html` 内联(因 file:// CORS 限制) |
---
## 九、迁移 checklist
### 备份这些文件/目录:
```
# 原型
C:\Users\simon\WorkBuddy\2026-05-21-16-57-26\agent-workspace-v5_3.html
# 前端项目(整体复制)
C:\Users\simon\wecom_it_smart_desk\frontend-agent\
# 后端项目(整体复制)
C:\Users\simon\wecom_it_smart_desk\backend\
# 项目记忆(WorkBuddy
C:\Users\simon\WorkBuddy\2026-05-21-16-57-26\.workbuddy\memory\
```
### 新项目中需要重新配置:
- [ ] `.env` 文件(数据库连接、Redis、Dify API Key
- [ ] `vite.config.ts` 中的 proxy 端口(当前 `5174`
- [ ] Docker Compose 环境变量
- [ ] 服务器部署配置(`10.80.0.129`
### 新项目中需要重新执行:
```bash
# 后端
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
# 初始化数据库
alembic upgrade head # 或 python -m app.db.init_db
# 前端
cd frontend-agent
npm install
npm run dev # → http://localhost:5174/itagent/workspace
```
---
## 十、待完成任务(迁移后继续)
- [ ] 重启 dev server 验证所有修改已生效(当前修改已保存,需 Ctrl+C → npm run dev
- [ ] 后端 AI 集成(Dify)代码修复(T02 任务)
- [ ] 前端方案评估(T03/T04
- [ ] 企微回调服务器对接
- [ ] 生产环境部署验证
---
*此文档由 WorkBuddy 自动生成,汇总了 2026-05-21 至 2026-06-06 的所有工作内容。*