Skip to content

墨台前端技术开发文档目录 ​

本页是两个前端项目后续技术开发文档的总目录,不是功能使用手册。目录依据以下代码基线整理:

  • 管理平台:/Users/xing/workspace/muotai/muotai-frontend
  • 用户使用平台:/Users/xing/workspace/muotai/muotai-frontend-neo
  • 后端服务:/Users/xing/workspace/muotai/muotai-backend
  • 现有文档:/Users/xing/workspace/muotai/muotai-documentation/docs

后续编纂每一章时,应同时记录页面入口、源码路径、状态来源、API 路径、后端服务、权限前提、异步/流式行为、异常处理和验证方式。路由名称、组件名称和接口路径以当前源码为准,产品名称和菜单标题以实际部署环境为准。

已编纂章节 ​

章节内容状态
前端总体架构两个项目的启动、路由、认证、状态、文件、流式能力和后端边界已完成初稿
管理平台前端muotai-frontend 的工程、权限、页面、Agent、文档、工作流、审计和 API已完成初稿
用户使用平台前端muotai-frontend-neo 的工作台、会话、聊天、文档空间、组件库和商业化已完成初稿
Chat 组件、SSE 与会话恢复muotai-frontend-neo Chat 与后端异步对话、两条 SSE、事件渲染、重连、运行控制和会话保存已完成专题
前端接口与业务链路认证、AI、SSE、文件、起草、审计、工作流和商业化接口契约已完成初稿
前端开发、测试与发布本地开发、环境变量、测试矩阵、构建、发布和排障已完成初稿

以上页面是面向开发和联调的第一版正文;本页后续保留完整目录,作为继续拆分 Agent 节点、工作流控件、审计业务和组件 deps 参考页的母目录。

一、前端文档总览与阅读地图 ​

text
墨台前端技术文档
├── 1. 总览与阅读地图
│   ├── 1.1 两个前端项目的产品边界
│   ├── 1.2 管理平台与用户平台的职责分工
│   ├── 1.3 前端与 Gateway、Auth、UPMS、AI、Doc Space、Audit、HMC、WFlow、Billing、Growth 的关系
│   ├── 1.4 页面、路由、API、状态、后端服务的追踪方法
│   ├── 1.5 当前代码基线、历史页面与实验页面的识别规则
│   └── 1.6 文档维护规则与变更登记方式
├── 2. 跨项目前端架构
│   ├── 2.1 应用启动链路
│   ├── 2.2 路由与页面加载模型
│   ├── 2.3 API 客户端与统一响应模型
│   ├── 2.4 登录、Token、租户和权限上下文
│   ├── 2.5 Pinia、Storage 和页面间数据传递
│   ├── 2.6 文件上传、下载、预览与对象存储
│   ├── 2.7 SSE、Fetch 流式响应、WebSocket 与实时协作
│   ├── 2.8 编辑器、Markdown、PDF、Office 和图形渲染基础设施
│   ├── 2.9 错误、空状态、加载态和反馈诊断
│   └── 2.10 主题、国际化、响应式和可访问性
├── 3. 管理平台(muotai-frontend)
│   ├── 3.1 工程结构与应用壳
│   ├── 3.2 认证、租户、动态菜单和权限
│   ├── 3.3 管理平台页面与路由目录
│   ├── 3.4 文档空间与房间管理
│   ├── 3.5 AI 工作室与智能体编排
│   ├── 3.6 AI 文档起草、模板和在线编辑
│   ├── 3.7 知识库、文档解析和向量化
│   ├── 3.8 文档合规、合同审查和招投标审查
│   ├── 3.9 工作流、动态表单和流程设计器
│   ├── 3.10 轻应用、云集市、资源和权益管理
│   ├── 3.11 专家、工单、结算和佣金
│   ├── 3.12 审计管理模块
│   ├── 3.13 财务数据中台与专项项目
│   ├── 3.14 平台系统管理、消息和统计
│   ├── 3.15 管理端 API 目录
│   └── 3.16 管理端构建、发布和排障
├── 4. 用户使用平台(muotai-frontend-neo)
│   ├── 4.1 工程结构、应用壳和路由加载器
│   ├── 4.2 用户登录、用户初始化和认证恢复
│   ├── 4.3 工作台与会话导航模型
│   ├── 4.4 文档空间、房间和文件传输
│   ├── 4.5 AI 助手、智能体聊天和流式消息
│   │   └── 4.5.1 Chat 组件、SSE、结构化渲染、重连与会话恢复([专题](./chat-sse))
│   ├── 4.6 文档写作、招标撰写和文案工具
│   ├── 4.7 合同审查、合规检查和风险报告
│   ├── 4.8 文件预览、Office 编辑和产物管理
│   ├── 4.9 轻应用、工具箱、市场和自动化
│   ├── 4.10 团队、分享、邀请、增长和帮助反馈
│   ├── 4.11 计费、会员、积分、存储和订单
│   ├── 4.12 用户端组件库与依赖注入
│   ├── 4.13 用户端 API 目录
│   └── 4.14 用户端构建、组件库打包和发布
├── 5. 前后端接口与业务链路专题
│   ├── 5.1 认证与统一响应
│   ├── 5.2 智能体聊天与 Agent 执行
│   ├── 5.3 文档空间、房间、文件和分享
│   ├── 5.4 文档起草、模板和 HMC
│   ├── 5.5 知识库、RAG、Embedding 和图谱
│   ├── 5.6 审计、风险、报告和专家服务
│   ├── 5.7 工作流与 Flowable
│   ├── 5.8 市场、轻应用、Skill、Tool 和 MCP
│   ├── 5.9 Billing、Pay、Growth 和用量统计
│   └── 5.10 跨页面异步任务与一致性
├── 6. 前端工程规范
│   ├── 6.1 TypeScript、Vue SFC 和 Composition API
│   ├── 6.2 API 服务类、DTO 和类型边界
│   ├── 6.3 组件拆分、Props、Emits 和依赖注入
│   ├── 6.4 表单、校验、分页、筛选和批量操作
│   ├── 6.5 文件安全、外部链接和下载命名
│   ├── 6.6 SSE/流式消息的取消、重连和结束状态
│   ├── 6.7 日志、Trace ID 和用户反馈诊断
│   ├── 6.8 样式、主题、图标和资源管理
│   └── 6.9 代码评审与文档同步清单
├── 7. 开发、测试、构建与运维
│   ├── 7.1 本地环境与依赖安装
│   ├── 7.2 开发代理和环境变量
│   ├── 7.3 lint、类型检查和构建验证
│   ├── 7.4 页面冒烟、接口联调和流式场景测试
│   ├── 7.5 大文件、编辑器、PDF 和 Office 兼容性测试
│   ├── 7.6 Vite 产物、异步 chunk 和缓存策略
│   ├── 7.7 Docker/Nginx/CDN/网关发布
│   ├── 7.8 Tauri 桌面端构建(管理端)
│   ├── 7.9 用户端组件库和轻应用发布
│   ├── 7.10 版本回滚、灰度和配置核验
│   └── 7.11 故障排查手册
└── 8. 附录
    ├── 8.1 路由索引
    ├── 8.2 API 路径索引
    ├── 8.3 页面到后端服务映射表
    ├── 8.4 Pinia Store 索引
    ├── 8.5 共享组件与依赖注入接口索引
    ├── 8.6 环境变量索引
    ├── 8.7 术语表
    └── 8.8 当前实现、遗留兼容和待清理项

二、跨项目前端架构目录 ​

2.1 应用启动、页面和构建基础 ​

text
跨项目架构
├── 应用入口
│   ├── 管理端:src/main.ts → App.vue → router → Pinia → RouterView
│   └── 用户端:src/main.ts → App.vue → router → initStore → Layout/独立页面
├── Vue 3 与 TypeScript
│   ├── Composition API、script setup、响应式边界
│   ├── 类型目录、API DTO 和页面类型
│   └── 自动导入、组件自动注册和别名 @
├── Vite
│   ├── 开发服务器、代理和 HMR
│   ├── 懒加载路由与动态 chunk
│   ├── 重型依赖手工拆包
│   └── source map、压缩和静态资源目录
├── UI 与样式
│   ├── Element Plus 与中文 locale
│   ├── Tailwind(用户端)与全局 SCSS/CSS
│   ├── 图标系统、SVG 加载和字体
│   └── 深色主题、租户主题和页面级主题
└── 构建形态
    ├── 管理端 Web 应用
    ├── 管理端 Tauri 桌面应用
    ├── 用户端 Web 应用
    ├── 用户端 muotai-components npm 包
    └── 用户端 light-apps 轻应用源码包

2.2 跨项目认证、请求与错误模型 ​

text
请求与身份上下文
├── Gateway 前缀与 Vite 代理
│   ├── /api → VITE_API_SERVER_URL
│   ├── /api/gpt → 外部模型代理(管理端/用户端按配置使用)
│   └── 生产环境 API_BASE_URL 与反向代理路径
├── OAuth2/Token
│   ├── 登录、刷新、登出
│   ├── accessToken / refreshToken 生命周期
│   ├── Authorization: Bearer ...
│   ├── request-token、tenant-id
│   └── 并发 401 的恢复与登录弹窗去重
├── 租户和权限
│   ├── 租户来源、域名到 tenantId 的映射
│   ├── 用户、角色、部门和菜单
│   ├── 前端路由权限与后端授权的边界
│   └── 公开邀请、分享链接和免登录入口
├── 统一响应
│   ├── code、msg、data、分页结构
│   ├── 401/424/业务错误码
│   ├── 503、超时、网络断开和空数据
│   └── Trace ID、反馈诊断和用户提示
└── 安全边界
    ├── 外部 URL 校验
    ├── 上传文件类型、大小和扩展名校验
    ├── Markdown/HTML/富文本渲染安全
    ├── 下载文件名和 Content-Disposition
    └── 不在浏览器持久化敏感业务数据

2.3 跨项目实时、文件和编辑能力 ​

text
异步与重型能力
├── SSE
│   ├── fetch-event-source / 原生 Fetch 流
│   ├── session → connection → message 状态
│   ├── 首包超时、AbortController、主动取消
│   ├── close/error/abort/业务结束事件
│   └── 文本、Markdown、结构化块、思考过程和产物事件
├── 文件传输
│   ├── 普通上传
│   ├── 分片初始化、上传、完成、状态和结果轮询
│   ├── 文件夹上传和批量上传
│   ├── 断点/取消/进度/失败重试
│   └── 下载、预览、导出和对象存储 URL
├── 文档显示
│   ├── PDF.js、Office/WebOffice、DOCX、Excel、文本、Markdown
│   ├── XMind、Mermaid、代码、图片和多媒体
│   ├── 文件损坏、格式不支持和网络不稳定状态
│   └── 预览与编辑权限、版本和保存策略
└── 编辑器
    ├── Umo Editor / Tiptap
    ├── Canvas Editor / Word 编辑
    ├── Monaco、CodeMirror、Ace
    ├── BPMN、Vue Flow、G6、Mind Elixir
    └── 导出 Word/PDF/图片和打印

三、管理平台(muotai-frontend)目录 ​

源码根目录:/Users/xing/workspace/muotai/muotai-frontend。

3.1 工程结构与应用壳 ​

text
管理平台工程
├── src/main.ts、src/App.vue、index.html
├── src/assets
│   ├── fonts、icons、img
│   ├── AI、登录、房间、文件、工作流、状态和主题资源
│   └── 全局样式与第三方验证码资源
├── src/components
│   ├── core:布局、基础、表单、卡片、图表、媒体和视图
│   ├── Widgets:Banner、Card、Chart 等业务展示组件
│   ├── 文件:FilePreview、FileUpload、UploadFile、WebOffice
│   ├── 文本:MdContent、MdRenderer、SvgIcon、富文本
│   ├── 表格/树/分页/步骤条/选择器
│   ├── Websocket、Loading、Context Menu 和评论
│   └── 领域组件:房间、AI、审计、工作流、市场
├── src/api
│   ├── 通用业务 API
│   ├── workflow API
│   └── module/accounting、module/audit、module/specialProject API
├── src/views
│   ├── 平台页面、AI 页面、文档页面、审计页面和工作流页面
│   └── 登录、异常、反馈、统计、增长和管理页面
├── src/module
│   ├── audit
│   ├── accounting
│   └── specialProject
├── src/router
│   ├── staticRoutes、asyncRoutes
│   ├── beforeEach/afterEach 守卫
│   ├── menuToRouter、registerRoutes
│   └── routesAlias 和路由类型
├── src/store
│   ├── user、menu、setting、config、worktab
│   ├── notice、table、workflow、sse、aiDoc
│   └── localStorage 持久化
├── src/types、src/enums、src/constants
├── src/composables、src/directives、src/utils
└── src-tauri
    ├── Cargo.toml、tauri.conf.json
    ├── 文件、对话框和桌面端能力
    └── tauri:dev / tauri:build 发布链路

3.2 认证、租户、菜单和权限 ​

text
管理端平台基础
├── 登录入口
│   ├── /login:账号、验证码、租户选择和第三方登录
│   ├── /register:注册
│   ├── /forget-password:找回密码
│   ├── /authredirect:OAuth/社交登录回调
│   └── 服务协议与隐私协议
├── 用户状态(src/store/modules/user.ts)
│   ├── isLogin、isLock、lockPassword
│   ├── info、tenantId、accessToken、refreshToken
│   ├── 用户信息、租户切换和搜索历史
│   └── logout、路由重置、工作台签页清理
├── 路由权限
│   ├── 静态路由:登录、异常、房间文件、知识库、AI 页面等
│   ├── 异步路由:后端菜单或前端配置生成
│   ├── menuToRouter:菜单到组件和路由的解析
│   ├── 路由守卫:登录、白名单、动态路由和页面标题
│   └── keepAlive、hidden、isHide、separatorBar、module 元数据
├── 管理菜单
│   ├── UPMS 菜单接口
│   ├── 人员、角色、部门和租户
│   ├── 菜单权限、按钮权限和数据权限
│   └── 前端菜单与后端授权不一致时的处理
└── 应用壳
    ├── Main Layout、侧边栏、顶部栏和标签页
    ├── 主题、语言、全屏、锁屏和布局设置
    ├── Notice/Message 未读数
    └── 403/404/500/503/timeout/searchEmpty

3.3 管理端页面与路由目录 ​

text
管理端页面地图
├── 首页与工作区
│   ├── /:src/views/index/index.vue
│   ├── dashboard/console:待办、用户、销售和动态小组件
│   ├── dashboard/analysis:统计图表、目标与趋势
│   └── dashboard/ecommerce:订单、商品、销售和交易
├── 文档空间和文件
│   ├── /my-doc:我的文档
│   ├── /rooms:房间列表、房间详情和文件列表
│   ├── /rooms/view/:roomId/:parentId/files:房间文件页
│   ├── /archives:归档房间
│   ├── /recycle-bin:回收站
│   ├── /shares:分享记录
│   ├── /filePreview:文件预览
│   ├── /web-office:WPS/WebOffice 在线编辑
│   └── 文件树、收藏、分享、成员权限、上传和版本
├── AI 平台
│   ├── /ai-chat:AI 对话入口
│   ├── /ai-studio:Agent 卡片、创建、模板和工作室
│   ├── /agent/:id:Agent 详情和编排器
│   ├── /ai-llm-model:LLM 模型管理
│   ├── /ai-tool:AI 工具管理
│   ├── /aiSkill:技能、版本和代码编辑
│   ├── /aiPdfView:PDF 智能查看和问答
│   ├── /doc-ai-viewer:智能文档查看
│   ├── /ai-word-edit:AI 填写/Word 编辑
│   ├── Agent 日志、执行记录、Trace、环境变量和 JSON 预览
│   └── Channel、知识库、房间知识库、DocSpace、Flow、SubAgent 配置
├── 文档生产
│   ├── /doc-draft/setup:AI 文档起草配置
│   ├── /doc-draft/templates、/templates:模板选择和模板库
│   ├── /doc-draft/editor、/editor:编辑器
│   ├── /doc-template/manage:文档模板管理
│   ├── /standard-list:标准编写列表
│   ├── aiDocDraft:基础信息、元数据、大纲、目录和内容生成
│   ├── 动态表单、关联文档、并发生成和草稿记录
│   └── Umo/Tiptap/Canvas/Word/PDF 导出
├── 审查与合规
│   ├── /documentCompliance:文档合规检查、上传、分析和风险项
│   ├── /contract-reviewer:合同审查、历史记录、风险报告和整改
│   ├── /contract-reviewer/archiveContract:审查记录
│   ├── /rectification:审查整改
│   ├── /biddingReviewer:招投标文件审查、配置、加载、结果和要求项
│   ├── /review/rule:审查规则配置
│   └── PDF 标注、风险卡、报告导出和状态流转
├── 工作流
│   ├── /workflow:工作流入口
│   ├── /workflow/dashboard:审批流工作区
│   ├── /workflow/todo:待处理任务
│   ├── /workflow/ido:已处理任务
│   ├── /workflow/submitted:我发起的
│   ├── /workflow/cc:抄送
│   ├── /workflow/model:流程模型管理
│   ├── /workflow/forms:组件管理
│   ├── /workflow/designer:流程设计
│   ├── /workflow/startProc:发起流程
│   ├── design/process:BPMN 节点、网关、子流程、触发器和条件
│   ├── design/form:表单设计、渲染、控件、校验和动态计算
│   ├── common:组织选择、表达式、HTTP、富文本、代码和资源上传
│   └── print/demo:打印和示例表单
├── 市场与平台能力
│   ├── /marketManage:云集市管理
│   ├── /light-app:轻应用管理
│   ├── /privilegesManage:权益管理
│   ├── /doc-template/manage:模板管理
│   ├── marketplace、biz-tag、资源、标签和分类
│   └── 应用发布、版本、导入导出和预览
├── 专家和运营
│   ├── /expertReview/workPlace:专家工作台
│   ├── /expertReview/workOrder:我的工单
│   ├── /expertReview/settlement:我的结算
│   ├── /expertReview/userSetting:专家个人设置
│   ├── /expertManage:专家管理
│   ├── /workOrderManage:工单管理
│   ├── /userWorkOrder:用户工单
│   ├── /settlementManage:结算管理
│   ├── /commissionManage:佣金管理
│   ├── /dictManage:字典管理
│   └── 工单分派、接单、风险处理、审核和结算
├── 审计模块(src/module/audit)
│   ├── /shenji/index:审计首页
│   ├── /wel/index:数据统计
│   ├── /businessManage/testingList/index:检测资料清单
│   ├── /businessManage/businessDepartmentManage/index:业务部门
│   ├── /businessManage/documentStock/index:文档库
│   ├── /ComplianceManagement/testing/index:合规监测
│   ├── /ComplianceManagement/config/index:监测配置
│   ├── /ComplianceManagement/testing/taskDetailView:任务详情
│   ├── /riskManage/index、riskDetail、riskRectification:风险闭环
│   ├── /standardConfig/controlList/index:控点清单
│   ├── /standardConfig/law/index:法规库
│   ├── /standardConfig/lawGrabConfig/index:法规抓取
│   ├── /standardConfig/systemTest/index:制度检测
│   ├── /standardConfig/businessArea/index:业务域
│   ├── /standardConfig/standardStock/index:标准库
│   ├── /standardConfig/intelligentStandardRefresh/index:标准同步
│   ├── /selfiInspection/report、reportDetail:自检报告
│   └── /systemConfig/interfaceConfig、dictionaryManage:审计系统配置
├── 财务数据与专项
│   ├── /data_middle_platform/index:数据中台
│   ├── /data_middle_platform/voucherDataComponent/index:凭证数据
│   ├── /specialProject/index:专项首页
│   ├── /specialProject/ready/index:准备阶段
│   ├── /specialProject/execute/index:实施阶段
│   ├── /specialProject/report/index:报告阶段
│   ├── /customerPool/index:客户池
│   └── /customerPool/resource:资源管理
└── 系统、消息和运营统计
    ├── /frontend_system/user:人员管理
    ├── /frontend_system/role:角色管理
    ├── /frontend_system/quick/nav:快速导航
    ├── /frontend_system/config:系统配置
    ├── /notice/center:通知待办
    ├── /usage-statistics:使用统计
    ├── /growth:邀请、增长和奖励
    ├── /feedback:反馈
    └── /db-clean、outside/iframe、demo 和异常页面

3.4 管理端核心业务专题编纂顺序 ​

text
管理端业务专题
├── 文档空间专题
│   ├── 房间/文件夹/文件/版本的数据模型
│   ├── 房间成员、权限掩码和操作菜单
│   ├── 上传、解析、AI 分析和失败重试
│   ├── 分享房间、分享文件和外部链接
│   ├── 归档、回收、恢复和批量删除
│   └── 文件预览、Office 编辑和下载
├── Agent 工作室专题
│   ├── Agent 基本信息、发布和版本
│   ├── 节点画布、连线、校验和 JSON 导入导出
│   ├── Start/End/Text/LLM/RAG/MCP/DB/Code/HTTP/Notice/Question/Switch
│   ├── Prompt、变量、模型参数、欢迎语和环境配置
│   ├── Skill、Tool、Channel、Knowledge Base、DocSpace 和 SubAgent
│   ├── 执行面板、Trace、日志和聊天调试
│   └── 前端配置与 muotai-ai 后端运行时的契约
├── AI 起草专题
│   ├── 元数据 JSON 驱动表单
│   ├── 大纲树编辑和章节生成
│   ├── 生成任务并发池、SSE/流式更新和中断
│   ├── Markdown/HTML → Umo JSON 的转换
│   ├── 草稿记录、自动保存和版本
│   └── HMC 任务、模板和导出
├── 合规与审查专题
│   ├── 文件上传和解析状态
│   ├── 规则、风险等级、证据和批注
│   ├── 检查任务、结果、整改和报告
│   ├── 合同审查与招投标审查差异
│   └── muotai-audit / muotai-doc-compliance / muotai-expert 的边界
└── 工作流专题
    ├── 模型生命周期:草稿、发布、停用、版本
    ├── BPMN 节点和网关配置
    ├── 动态表单控件、表单权限和操作权限
    ├── 任务、待办、已办、抄送和流程轨迹
    └── Flowable API、组织模型和通知回调

3.5 管理端 API 目录 ​

text
管理端 API(src/api 与 src/module/*/api)
├── 认证与平台
│   ├── usersApi:OAuth2、验证码、社交登录、个人资料、密码、绑定
│   ├── interceptor:Axios、Token refresh、错误处理、completionStream
│   ├── menuApi:前端菜单
│   ├── systemApi:用户、部门、岗位、角色、菜单授权
│   ├── tenant:租户分页、详情、树菜单
│   ├── systemConfigApi:主题和前端配置
│   ├── message、notice:消息、通知、已读/未读
│   └── upload:系统文件、业务文件和分片上传
├── AI 与知识
│   ├── aiAgentApi、aiChatbot:Agent、会话、消息、SSE、执行
│   ├── aiLlmModelApi、aiModel:模型和供应商
│   ├── aiToolApi、aiSkill、aiMcpConfig:Tool、Skill、MCP
│   ├── aiDataset、knowledgeBaseApi:数据集、文档、分段、向量化、图谱
│   ├── aiQqChannel、aiWechatChannel:外部消息渠道
│   ├── aiFlow:AI 工作流
│   └── instruction、gpt、zhipuApi:指令和外部模型能力
├── 文档空间与文档生产
│   ├── roomApi、docSpace:房间、文件夹、分享、版本、预览
│   ├── recycleApi:回收站
│   ├── aiDaftRecord:AI 起草任务和大纲
│   ├── aiDocTemplate、doc-template:模板和模板文件
│   ├── articleApi、modules/article:文章与模型
│   ├── documentCompliance、reviewRuleApi、bidReview:合规、规则和招投标
│   └── datasource、db-clean:数据源和清理
├── 工作流
│   ├── formApi:表单定义、控件和渲染
│   ├── modelApi:流程模型
│   ├── instanceApi:流程实例
│   ├── taskApi:任务、审批和流转
│   ├── orgApi:组织和人员
│   ├── notifyApi:通知
│   ├── requestApi:统一请求
│   ├── startupApi:启动/初始化
│   └── loginApi:工作流登录上下文
├── 市场、轻应用和资源
│   ├── lightApp:模板、版本、发布、资源包
│   ├── marketplaceApi:市场查询、业务详情
│   ├── marketTagApi:标签、分组和绑定
│   ├── automationTemplate:自动化模板
│   ├── privileges:权益和套餐
│   └── quickNavApi:快速导航
├── 专家、工单和增长
│   ├── expert、workorder:专家和工单流程
│   ├── settlementManage、commission:结算和佣金
│   ├── growth:邀请、活动和奖励
│   ├── feedback:反馈
│   └── usageStatisticsApi:注册、房间、操作日志、用量和订单
└── 可插拔业务模块
    ├── module/audit/api:审计、法规、风险、报告、任务和配置
    ├── module/accounting/api:数据中台和凭证数据
    └── module/specialProject/api:专项阶段和客户池

3.6 管理端文档需要逐章补齐的源码锚点 ​

text
管理端源码锚点
├── 启动与布局:src/main.ts、src/App.vue、src/views/index、src/components/core/layouts
├── 路由:src/router/index.ts、src/router/routes/staticRoutes.ts、asyncRoutes.ts
├── 守卫:src/router/guards/beforeEach.ts、afterEach.ts
├── 状态:src/store/modules/user.ts、menu.ts、setting.ts、worktab.ts、sse.ts、aiDoc.ts
├── API:src/api/interceptor.ts、src/api/*.ts、src/api/workflow/*.ts
├── Agent 编排:src/views/aiAgentDetail/childPage、nodes、panels、utils
├── AI 起草:src/views/aiDocDraft/components、view
├── 房间:src/views/rooms、src/views/archivedRoom、src/components/FilePreview
├── 工作流:src/views/workflow/admin、design、pages、common、print
├── 审计:src/module/audit/router.ts、api、views
├── 专项/财务:src/module/specialProject、src/module/accounting
└── 发布:package.json、vite.config.ts、.env*、Jenkinsfile、src-tauri

四、用户使用平台(muotai-frontend-neo)目录 ​

源码根目录:/Users/xing/workspace/muotai/muotai-frontend-neo。

4.1 工程结构、应用壳和路由加载器 ​

text
用户端工程
├── src/main.ts、src/App.vue、src/index.css
├── src/router.ts
│   ├── Layout 子路由:工作台、文档空间、轻应用、自动化、市场、工具箱、发现、团队
│   ├── AI/文档独立页:editor、tender-writer、copywriter、contract-reviewer、data-extractor、summarizer、rewrite
│   ├── 账户页:userInfoSet、system-setting、billing、coin-records、storage-records、growth-center
│   ├── 分享/邀请/协议/回调:invite、file-room/invite、agreements、authredirect
│   └── contract-check:check-page、check-result
├── src/router/loaders.ts、loading.ts
│   ├── 路由懒加载
│   ├── 模块预取
│   └── 顶部路由加载进度
├── src/pages/layout
│   ├── Layout、Sidebar、Topbar、UserPanel、TransferBall
│   ├── 搜索、房间切换、文档筛选和项目会话面板
│   └── 帮助/反馈入口
├── src/store
│   ├── user、navigation、currentRoute、project、transfer
│   ├── Pinia persisted state
│   └── sessionStorage 路由会话上下文
├── src/api、src/depts、src/lib
├── src/components/npm:可打包组件库
├── src/components/sidePanel:统一侧栏面板
├── src/content/agreements、src/data、src/constants
├── light-apps:轻应用源码工程
└── scripts:类型、组件索引、依赖分析、打包和使用说明生成

4.2 用户登录、初始化和会话导航 ​

text
用户身份与导航
├── 登录入口
│   ├── components/login/LoginModal、WXLogin、BindPhoneModal
│   ├── ensureLogin:页面操作前的登录保障
│   ├── useUserInit:用户信息、租户和默认配置初始化
│   ├── useBindPhone:绑定手机号
│   └── authredirect:第三方登录回调
├── 请求认证(src/lib/requestAuth.ts、interceptor.ts)
│   ├── accessToken、refreshToken、tenantId
│   ├── Authorization、request-token、tenant-id
│   ├── 401 并发恢复和 LoginModal 唤起
│   └── 登出、清理和重新初始化
├── navigation store
│   ├── currentSession:projectId、roomId、agentId、sessionId、title
│   ├── sessionStorage 持久化
│   ├── 旧 query/id URL 一次性迁移
│   └── Assistant 路由无会话时回到 Workbench
├── currentRoute store
│   ├── query、params、history.state
│   ├── fullPath、name、path
│   └── router push/replace/back/forward 的参数保存
└── 用户信息
    ├── 个人资料、头像和密码
    ├── 租户/企业上下文
    ├── 偏好、连接器、模型和通知
    └── 公开分享、邀请和协议页的身份差异

4.3 用户端页面与业务地图 ​

text
用户端页面地图
├── 工作台与智能助手
│   ├── /:Workbench 首页
│   ├── WorkDashboard:最近会话、模板、知识输入和快捷入口
│   ├── KnowledgeAssistant、KnowledgeInput:知识问答输入
│   ├── Assistant:指定 Agent/session 的聊天工作区
│   ├── /discovery:发现
│   ├── /team:团队
│   └── /test:测试页
├── 文档空间与房间
│   ├── /room-document:DocSpace 文档空间
│   ├── docSpace:导航、房间、文件表格、收藏、回收站和使用量
│   ├── RoomManagement:房间管理
│   ├── file-room/invite/:token:文件房间邀请落地
│   ├── FileTable、FileTableFilterBar、BreadcrumbNav
│   ├── PermissionDialog、ShareInviteDialog、RoomConfigDialog
│   ├── AdvancedExtractionDialog、SmartDocDrawer、ConversationArtifacts
│   └── transfer store、TransferBall:上传/下载任务
├── AI 对话与产物
│   ├── components/npm/chat:输入、消息列表、历史会话和流式消息
│   ├── chatSection:思考、规划、Agent Step、工具调用、技能调用、RAG 引用
│   ├── code/json/mermaid/quote/reference/files/template 消息
│   ├── GeneratedFileCard:生成文件
│   ├── SessionArtifactPanel、TaskPanel、TerminalPanel、WebBrowserPanel
│   └── smartStreamChat、markstreamVue 和 SSE 结构化块
├── 文档创作和效率工具
│   ├── /editor:通用编辑器
│   ├── /write-documents、/review-documents:文档工作区
│   ├── /tender-writer:招标文件撰写
│   ├── /copywriter:文案
│   ├── /summarizer:总结
│   ├── /rewrite:改写
│   ├── /data-extractor:数据抽取
│   ├── /toolbox:工具箱与工具分类
│   └── 模板配置、历史侧栏、项目发起、需求分析、大纲和编辑步骤
├── 合同和合规
│   ├── /contract-reviewer:合同审查流程
│   ├── /contract-check/check-page:合同检查上传/配置
│   ├── /contract-check/check-result:风险结果、PDF、风险卡和记录列表
│   ├── 风险标注、报告导出、历史记录和整改
│   └── documentCompliance API 与审计后端边界
├── 轻应用、市场和自动化
│   ├── /light-app:轻应用入口和启动弹窗
│   ├── /marketplace:资源市场筛选、搜索、卡片和详情
│   ├── /automations:自动化列表、通知和文件夹选择
│   ├── MarketCard、ResourceCard、DocumentTemplateCard、ExpertCard、LightAppCard
│   └── 安装、预览、加入资源、模板/专家/轻应用动作
├── 账户、商业化与增长
│   ├── /billing:AI 会员、积分充值、存储、支付记录和模拟面板
│   ├── /coin-records:积分记录
│   ├── /storage-records:存储记录
│   ├── /storageExpansion:存储扩容
│   ├── /BillingOrders:订单
│   ├── /growth-center:增长中心
│   ├── /invite/:code:邀请落地
│   └── PaymentQrCode、billing、growth API
├── 团队、帮助和反馈
│   ├── /help:帮助中心
│   ├── /Feedback:反馈
│   ├── feedback history、diagnostics 和支持请求
│   ├── 团队成员、房间邀请和加入申请
│   └── /agreements/:type:服务、隐私和付费协议
└── 系统和集成
    ├── /system-setting:偏好、连接器、模型和通知
    ├── /userInfoSet:用户信息
    ├── /webOffice:Office 编辑与 AI Chat Panel
    ├── 连接器、第三方登录和企业配置
    └── 404/错误态/网络不稳定/服务暂停/超限页面

4.4 用户端聊天、SSE 和结构化消息 ​

text
用户端聊天链路
├── 会话创建与恢复
│   ├── Workbench 选择 project/room/agent
│   ├── navigation.currentSession 保存唯一业务上下文
│   ├── Assistant 读取 sessionId 和 referencedFiles
│   └── historySessions 加载历史
├── 请求与流
│   ├── api/aiChatbot.ts、api/npm/aiChatbotNpm.ts
│   ├── lib/sse/sseManager.ts、runStatusSse.ts、sseEvent.ts
│   ├── 连接认证、首包、心跳、结束、错误、取消和重试
│   └── fetch completion 与 SSE 的差异
├── 消息渲染
│   ├── 普通文本、Markdown、代码、JSON、Mermaid、数学公式
│   ├── thinking/thinkingGroup、planning、agentStep
│   ├── intentRecognition、loadConfig、resourceAllocation、todo
│   ├── skillCall、toolCall、taskDetail、taskEnd
│   ├── referenceFiles、uploadFiles、templateDoc
│   └── 生成文件、引用文件和右侧产物面板
├── 运行状态
│   ├── queued/running/paused/completed/error/cancelled
│   ├── session 与 task 的关系
│   ├── SSE 断线后 UI 如何恢复
│   └── 失败诊断信息和 Trace ID
└── 组件库边界
    ├── ChatDeps 提供 API、用户、房间和流式能力
    ├── 组件不得直接依赖宿主 Pinia/API
    ├── deps 注入后的错误和取消约定
    └── 纯展示消息组件与有副作用组件的区分

4.5 用户端文件、预览、编辑和传输 ​

text
文件能力
├── 上传
│   ├── UploadFile、UploadMulti、UploadImage、SelectFile、DragUploadFile
│   ├── 文件夹上传、批量上传和进度控制
│   ├── 分片 init/upload/complete/status/result
│   ├── UploadDeps 注入
│   └── 取消、重试、失败文件和过期任务
├── 预览
│   ├── FilePreview 统一入口
│   ├── DocPreview、PdfPreview、ExcelPreview、文本/Monaco
│   ├── 图片、媒体、压缩包、XMind、Markdown 和 Mermaid
│   ├── FilePreviewDeps 注入
│   └── 损坏文件、不支持类型和大文件性能
├── Office
│   ├── WebOffice、AiChatPanel、AiChatToggleButton
│   ├── WebOfficeDeps:凭证和文档打开上下文
│   ├── 在线编辑、保存、回退和权限
│   └── 与 doc-space 文件版本的同步
└── 产物与下载
    ├── 生成文件卡片和导出
    ├── 文件名、扩展名和 Content-Disposition
    ├── saveAs、PDF/Word 导出
    └── 右侧 SessionArtifact/文件预览面板

4.6 用户端组件库和依赖注入目录 ​

text
muotai-components
├── 构建
│   ├── BUILD_MODE=LIBRARY
│   ├── src/components/npm/index.ts 入口
│   ├── vite-plugin-dts、组件索引和类型生成
│   ├── package.json、style.css 和 tarball
│   └── peer dependencies:Vue、Vue Router、Element Plus、Icons、Lucide
├── 纯展示组件
│   ├── BaseCard、SectionTitle、Stepper
│   ├── CollapseListCard、CollapsedCard、OperateBtn
│   ├── ChatSection 消息块和状态面板
│   └── Toolbox、Loading、Header 等
├── 需要 deps 的组件
│   ├── ChatChat、ChatInput、MessageList、HistorySessions
│   ├── GeneratedFileCard、Uploads、ChatSectionUploadFiles/ReferenceFiles
│   ├── MarkstreamVue、FilePreview、WebOffice
│   ├── WebOfficeAiChatPanel
│   ├── UploadUploadFile/UploadMulti/UploadImage/SelectFile/DragUploadFile
│   └── LoadingAnalysisLoading
├── deps 接口
│   ├── depts/chat.ts:聊天、历史、停止/恢复、SSE、产物和房间资源
│   ├── depts/filePreview.ts:预览、下载和编辑
│   ├── depts/upload.ts:文件/文件夹上传和目录浏览
│   ├── depts/webOffice.ts:Office 凭证和打开
│   ├── depts/loading.ts:任务状态
│   └── depts/user.ts、room.ts、auth.ts、feedback.ts 等宿主适配层
├── 发布使用
│   ├── npm/pnpm 安装 tarball
│   ├── import CSS:muotai-components/dist/style.css
│   ├── 按需导入和全局注册
│   ├── 宿主提供 router 上下文
│   └── 版本升级、破坏性变更和 API 兼容
└── 生成文档
    ├── CODEBASE_STRUCTURE.md
    ├── COMPONENTS_USAGE.md
    ├── scripts/generate-components-index.cjs
    ├── scripts/generate-types.cjs
    └── scripts/generate-usage-md.cjs

4.7 用户端 API 目录 ​

text
用户端 API(src/api)
├── 认证与用户
│   ├── usersApi:OAuth2、手机号、社交登录、用户信息和个人设置
│   ├── messages:用户消息
│   ├── support、feedback:帮助和反馈
│   └── requestAuth/interceptor:认证桥接、统一错误和刷新
├── AI 与聊天
│   ├── aiAgent:Agent、模板和详情
│   ├── aiChatbot、npm/aiChatbotNpm:会话、消息、运行、SSE
│   ├── aiDaftRecord:文档生成和草稿记录
│   ├── imChannel:消息渠道
│   ├── skillApi:技能
│   ├── userMllModel:用户自定义 LLM 模型
│   └── lightApp:轻应用模板、版本和资源
├── 文档空间与文件
│   ├── docSpace:空间、房间、目录、文件、版本、解析和产物
│   ├── roomApi:房间、成员、文件、分享和标签
│   ├── fileRoomSharing:邀请、申请、成员权限和撤销
│   ├── spaceProject:房间项目
│   ├── upload:普通、批量、文件夹和分片上传
│   ├── doc-template:模板
│   └── file preview/WebOffice 适配接口
├── 合规与效率工具
│   ├── contractCheck:合同检查
│   ├── documentCompliance:文档合规
│   ├── marketplace:市场查询和业务详情
│   ├── myResource:我的资源
│   └── automation:自动化
├── 商业化与增长
│   ├── billing:会员、积分、存储和订单
│   ├── growth:邀请、奖励和活动
│   ├── usageStatistics:用量、房间、会话和操作日志
│   └── paymentQr:支付二维码
└── API 到后端服务
    ├── /auth、/admin → muotai-auth / muotai-upms
    ├── /ai/v1 → muotai-ai
    ├── /doc/v1 → muotai-doc-space / HMC
    ├── /expert → muotai-expert
    ├── /billing、/pay → muotai-billing / muotai-pay
    └── /growth → muotai-growth

五、前后端业务链路专题目录 ​

text
跨仓库业务链路
├── 登录链路
│   ├── 表单/验证码/社交登录
│   ├── Auth OAuth2 token
│   ├── Gateway 转发和上下文
│   ├── UPMS 用户/租户/角色
│   └── 前端 store 初始化与失效恢复
├── AI 聊天链路
│   ├── Workbench/AI Chat/Assistant 发起
│   ├── muotai-ai AgentChat Controller
│   ├── 消息队列、session 执行器和 Agent 节点
│   ├── SSE/流式事件到前端消息块
│   ├── 工具、Skill、MCP、RAG 和文件上下文
│   └── Trace、日志和异常反馈
├── 文件与文档链路
│   ├── 前端分片上传
│   ├── Gateway → doc-space/ai 文件服务
│   ├── MinIO/OSS 存储
│   ├── MinerU/文档解析/分段/向量化
│   ├── 预览、Office 编辑和版本
│   └── 删除、回收、级联删除和权限
├── 文档起草链路
│   ├── 模板和元数据
│   ├── HMC 请求、任务和消息
│   ├── AI 流式章节生成
│   ├── 前端并发池和大纲持久化
│   └── 编辑器内容、导出和归档
├── 审计与合规链路
│   ├── audit 项目、资料、控点和风险
│   ├── 合规任务启动、状态轮询和报告
│   ├── 专家工单分派和整改
│   └── 前端结果视图与后端实体映射
├── 工作流链路
│   ├── 模型/表单设计
│   ├── Flowable 发布与实例
│   ├── 组织、权限、任务和通知
│   └── 待办/已办/抄送/发起页面
└── 商业化链路
    ├── 套餐、权益、积分和存储
    ├── Pay 订单、支付、退款和二维码
    ├── Billing 用量和账户
    └── Growth 邀请、奖励和活动

六、前端工程规范目录 ​

text
工程规范
├── 新增页面
│   ├── 路由和懒加载
│   ├── 页面组件与子组件
│   ├── 页面类型和 API 类型
│   ├── loading/empty/error 状态
│   ├── 权限和菜单声明
│   └── 文档目录、截图和冒烟用例
├── 新增接口
│   ├── API 服务文件与命名
│   ├── DTO/VO、分页和统一响应
│   ├── 请求方法、路径、参数和幂等性
│   ├── Token/tenant/Trace 传递
│   ├── 取消、超时、重试和错误码
│   └── 后端 Controller、Service、Feign 和数据库来源
├── 新增组件
│   ├── 纯展示与有副作用组件边界
│   ├── Props/Emits/Expose 和事件命名
│   ├── deps 注入(用户端组件库)
│   ├── 文件/网络/Store 解耦
│   └── 组件文档和可运行示例
├── 文件和流式功能
│   ├── 文件校验、进度、取消和重试
│   ├── SSE 首包、结束和断线
│   ├── 结构化消息版本兼容
│   └── 大文件与浏览器内存限制
└── 变更评审
    ├── API 路径和后端服务是否同步
    ├── 路由权限和租户边界是否同步
    ├── 构建产物和环境变量是否同步
    ├── 文档、测试和变更日志是否同步
    └── 历史兼容入口是否保留或清理

七、开发、测试、构建与运维目录 ​

text
工程生命周期
├── 本地开发
│   ├── Node/pnpm/npm 版本和锁文件
│   ├── 依赖安装与第三方 tgz
│   ├── 管理端 dev、dev:muotai 和多环境 dev:* 脚本
│   ├── 用户端 dev、dev:muotai 和多环境 dev:* 脚本
│   └── 后端 Gateway/Nacos/服务依赖启动顺序
├── 环境变量
│   ├── 管理端 VITE_API_BASE_URL、VITE_API_SERVER_URL、VITE_HMR
│   ├── 用户端 VITE_API_BASE_URL、VITE_API_SERVER_URL、VITE_PORT
│   ├── VITE_LOGIN_SOURCE、VITE_SHOW_ACCOUNT、VITE_APP_ID
│   ├── VITE_PWD_ENC_KEY、VITE_OAUTH2_SOCIAL_CLIENT
│   ├── source map、外部模型和 Gemini/智谱配置
│   └── 环境变量的敏感信息边界
├── 质量检查
│   ├── eslint、prettier、stylelint
│   ├── vue-tsc / TypeScript
│   ├── npm run build / fast-build / test-build
│   ├── 用户端 build:lib、pack 和组件使用说明生成
│   └── 依赖循环和产物体积检查
├── 测试矩阵
│   ├── 登录、刷新、登出和权限
│   ├── 房间、文件、分享、预览、上传和恢复
│   ├── AI 对话、SSE、取消、重试、工具调用和产物
│   ├── 文档起草、编辑、导出和版本
│   ├── 审计、合规、工作流和工单
│   ├── 支付、权益、存储、增长和反馈
│   ├── 浏览器、分辨率、网络和大文件
│   └── 用户端组件库宿主项目集成
├── 发布
│   ├── Vite dist、静态资源缓存和 history fallback
│   ├── Gateway/API 反向代理和 CORS
│   ├── Docker/Nginx/CDN
│   ├── 管理端 Tauri 安装包
│   ├── 用户端 muotai-components tarball
│   └── light-apps 源码包和版本
└── 排障
    ├── 空白页、懒加载 chunk 失败和缓存
    ├── 401/424 循环、租户错误和权限缺失
    ├── SSE 不连接、首包超时、消息不结束
    ├── 上传卡住、分片失败、解析长时间 pending
    ├── PDF/Office/Monaco/大文件渲染失败
    ├── API 代理、Gateway 路由和服务端口不一致
    └── 产物缺失、source map、依赖和浏览器兼容问题

八、附录索引目录 ​

text
附录
├── 路由索引
│   ├── 管理端 staticRoutes
│   ├── 管理端 asyncRoutes
│   ├── audit/accounting/specialProject 模块路由
│   └── 用户端 router.ts 与 loaders
├── API 路径索引
│   ├── /auth、/admin
│   ├── /ai/v1
│   ├── /doc/v1
│   ├── /expert、/billing、/pay、/growth
│   └── 外部模型和第三方接口
├── 后端映射
│   ├── 页面 → API 服务文件
│   ├── API → Gateway 路由
│   ├── Gateway → 微服务
│   ├── Controller → Service/Feign
│   └── 数据表/迁移/对象存储
├── 状态索引
│   ├── 管理端 Pinia Store
│   ├── 用户端 Pinia Store
│   ├── localStorage/sessionStorage key
│   ├── SSE、上传和传输任务状态
│   └── 路由 state 和跨页上下文
├── 组件索引
│   ├── 管理端通用组件
│   ├── 管理端领域组件
│   ├── 用户端页面组件
│   ├── 用户端 npm 组件
│   └── deps 接口和宿主适配器
├── 配置索引
│   ├── .env、.env.development、.env.production、.env.example
│   ├── vite.config.ts
│   ├── Tauri 配置
│   ├── light-apps 配置
│   └── 后端 Nacos/Gateway 相关键
└── 差异与待确认项
    ├── 管理端与用户端重复页面的职责差异
    ├── 历史路由、测试页和 demo 页
    ├── 重复/兼容 API 路径
    ├── 文档 README 与实际源码不一致处
    ├── 后端端口、环境和网关历史配置差异
    └── 待产品确认的菜单、权限和发布形态

九、每个后续专题文档的固定写作模板 ​

text
专题文档
├── 1. 目标与适用范围
├── 2. 用户角色与权限前提
├── 3. 页面入口与路由参数
├── 4. 页面组件树与关键源码路径
├── 5. 状态模型与持久化位置
├── 6. API 清单(方法、路径、请求、响应、错误)
├── 7. 前后端调用时序
├── 8. 异步、流式、上传或编辑器行为
├── 9. 数据模型与后端服务映射
├── 10. 空状态、异常、取消、重试和恢复
├── 11. 配置项和环境变量
├── 12. 测试用例与验收标准
├── 13. 性能、安全和兼容性注意事项
├── 14. 已知限制、历史兼容和待办
└── 15. 关联文档与源码链接