chore: initial baseline with P0-safety .gitignore

This commit is contained in:
Simon
2026-06-14 16:49:18 +08:00
commit 63262292d7
510 changed files with 146008 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
sequenceDiagram
participant Browser as 坐席浏览器
participant App as Vue3 App
participant Store as Pinia Store
participant API as Backend API
participant DB as PostgreSQL
Note over Browser,App: 页面加载
Browser->>App: 挂载 Workspace.vue
App->>Store: 初始化 conversationStore
Store->>API: GET /api/conversations
API->>DB: SELECT * FROM conversations WHERE status IN ('queued','serving') ORDER BY ...
DB-->>API: 会话列表
API-->>Store: 会话数据
Store-->>App: 渲染会话列表
loop 每3秒 setInterval
App->>Store: pollConversations()
Store->>API: GET /api/conversations?page=1&page_size=50
API->>DB: SELECT ... (同上)
DB-->>API: 最新会话列表
API-->>Store: 最新数据
alt 数据有变化
Store->>Store: diff 比较,更新变化的会话
Store-->>App: 触发响应式更新
App->>App: 更新列表项标签/排序/未读数
else 数据无变化
Store-->>App: 无需更新
end
end
Note over App: 用户点击某个会话
App->>Store: selectConversation(id)
Store->>API: GET /api/conversations/{id}/messages?limit=50
API->>DB: SELECT * FROM messages WHERE conversation_id=... ORDER BY created_at
DB-->>API: 消息列表
API-->>Store: messages
Store-->>App: 渲染对话区
loop 选中会话的消息轮询
App->>Store: pollMessages(conv_id)
Store->>API: GET /api/conversations/{id}/messages?limit=20&before=latest_id
API->>DB: SELECT ... WHERE created_at > latest
DB-->>API: 新消息
API-->>Store: 新消息列表
alt 有新消息
Store->>Store: 追加消息到列表
Store-->>App: 滚动到底部,显示新消息
end
end
Note over App: 坐席发送回复
App->>Store: sendMessage(conv_id, content)
Store->>API: POST /api/conversations/{id}/messages {content}
API->>DB: INSERT INTO messages ...
API-->>Store: 发送的消息对象
Store->>Store: 追加到消息列表
Store-->>App: 显示在对话区