Files
wecom_it_smart_desk/docs/02-技术文档/技术架构/增量设计-布局优化v2-类图.mermaid
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

223 lines
6.7 KiB
Plaintext
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.
%% =============================================================================
%% 增量设计:坐席端布局优化 v2.0 — 类图
%% =============================================================================
%% 创建日期:2026-07-11
%% 技术栈:Vue 3 + Element Plus + TypeScript + Pinia + CSS Variables
%% =============================================================================
classDiagram
%% ====== 容器/页面级组件 ======
class Workspace {
+Ref~boolean~ assistantVisible
+Ref~PanelMode~ panelMode
+Ref~HTMLElement~ leftSidebarRef
+Ref~HTMLElement~ rightSidebarRef
+startLeftResize(e: MouseEvent) void
+startRightResize(e: MouseEvent) void
+togglePanelMode() void
+onMounted() void
}
class ChatArea {
+Ref~Message~ replyToMessage
+Ref~HTMLElement~ messageListRef
+handleSend(content: string) void
+handleReplyTo(message: Message) void
+scrollToBottom() void
}
%% ====== 中栏新增组件 ======
class ReplySuggestArea {
+Props: conversationId: string
+Emits: select(content: string)
+Ref~string~ activeTab
+loadRecommendations() void
}
class AiRecommendBar {
+Props: recommendations: AiRecommendation[]
+Props: loading: boolean
+Emits: select(content: string)
+Emits: refresh()
+handleSelect(index: number) void
+confidenceStyle: ComputedRef
}
class QuickReplyBar {
+Props: templates: QuickReply[]
+Emits: select(content: string)
+Ref~QuickReplyNav~ navState
+Ref~string~ searchQuery
+selectTemplate(tpl: QuickReply) void
+goBack() void
}
class ReplyBox {
+Props: replyToMessage: Message
+Emits: send(content: string)
+Emits: cancelReply()
+Ref~string~ inputText
+Ref~number~ textareaHeight
+handleSend() void
+handleKeydown(event: KeyboardEvent) void
+handleAiTool(action: AiToolAction) void
+handleScreenshot() void
+handlePaste(event: ClipboardEvent) void
}
%% ====== 右栏组件 ======
class AiAssistantPanel {
+Props: mode: PanelMode
+Emits: toggle()
+Ref~string~ conversationId
}
class AiTrainingPanel {
+Props: conversationId: string
+Ref~TrainingTab~ activeTab
+resetForNewConversation() void
}
class PanelModeToggle {
+Props: mode: PanelMode
+Emits: toggle()
}
class SmartTagEditor {
+Props: conversationId: string
+Ref~ConversationTags~ currentTags
+Ref~string[]~ suggestedTagList
+Ref~boolean~ loadingTagSuggestions
+handleSuggestTags() void
+handleAddSuggestedTag(tag: string) void
+handleRemoveTag(key: string) void
+handleAddManualTag() void
+loadCurrentTags() void
}
class QualityFeedback {
+Props: conversationId: string
+Ref~Annotation[]~ feedbackList
+Ref~boolean~ loading
+handleSubmit(messageId: string, feedback: AnnotationFeedback) void
+loadAnnotations() void
}
class KnowledgeContribute {
+Props: conversationId: string
+Ref~ContributeForm~ contributeForm
+Ref~boolean~ submitting
+handleSubmit() void
+resetForm() void
}
%% ====== 修改的现有组件 ======
class UserInfoBar {
+Props: conversation: Conversation
+Props: availableAgents: AgentInfo[]
+Props: canInviteCollaborator: boolean
+Emits: assign, resolve, toggle-pin, toggle-todo, transfer, invite
+Ref~boolean~ isExpanded
+Ref~boolean~ showItLevelSelector
+toggleExpand() void
+resetForNewConversation() void
}
class TroubleshootBar {
+Ref~boolean~ isFlowchartExpanded
+Ref~boolean~ isIconBarCollapsed
+Ref~TroubleshootingTemplate[]~ templates
+toggleFlowchart() void
+toggleCollapse() void
+handleTemplateChange(templateId: string) void
+handleStepClick(index: number) void
+loadTemplates() void
}
%% ====== Store ======
class ConversationStore {
+Ref~string~ pendingReplyText
+Ref~Map~ aiDrafts
+Ref~PanelMode~ panelMode
+Ref~string~ currentConversationId
+Ref~Conversation~ currentConversation
+Ref~Message[]~ messages
+setPanelMode(mode: PanelMode) void
+selectConversation(id: string) void
+sendReply(content: string, replyToId?: string) void
}
class QuickReplyStore {
+Ref~QuickReply[]~ templates
+ComputedRef~templatesByCategory
+ComputedRef~categories
+fetchTemplates() void
}
%% ====== 类型定义 ======
class PanelMode {
<<enumeration>>
normal
expanded
}
class TrainingTab {
<<enumeration>>
smart-tag
quality-feedback
knowledge-contribute
}
class AiRecommendation {
+string title
+string content
+number confidence
}
class ContributeForm {
+string title
+string problem
+string solution
+string category
}
class QuickReplyNav {
+number l1Index
+number l2Index
}
%% ====== 组合关系(contains/renders ======
Workspace *-- ChatArea : renders
Workspace *-- AiAssistantPanel : renders
ChatArea *-- UserInfoBar : contains
ChatArea *-- TroubleshootBar : contains
ChatArea *-- ReplySuggestArea : contains (新增)
ChatArea *-- ReplyBox : contains
ReplySuggestArea *-- AiRecommendBar : contains
ReplySuggestArea *-- QuickReplyBar : contains
AiAssistantPanel *-- PanelModeToggle : contains
AiAssistantPanel *-- AiTrainingPanel : contains
AiTrainingPanel *-- SmartTagEditor : tab 1
AiTrainingPanel *-- QualityFeedback : tab 2
AiTrainingPanel *-- KnowledgeContribute : tab 3
%% ====== 依赖关系(uses ======
AiRecommendBar ..> ConversationStore : reads aiDrafts, writes pendingReplyText
QuickReplyBar ..> ConversationStore : writes pendingReplyText
QuickReplyBar ..> QuickReplyStore : reads templates
ReplyBox ..> ConversationStore : reads/writes pendingReplyText
SmartTagEditor ..> ConversationStore : reads currentConversation
QualityFeedback ..> ConversationStore : reads messages
Workspace ..> ConversationStore : reads/writes panelMode
AiAssistantPanel ..> ConversationStore : reads currentConversationId
%% ====== 类型引用 ======
AiRecommendBar ..> AiRecommendation : uses
KnowledgeContribute ..> ContributeForm : uses
QuickReplyBar ..> QuickReplyNav : uses
PanelModeToggle ..> PanelMode : uses
AiTrainingPanel ..> TrainingTab : uses