29 lines
930 B
Markdown
29 lines
930 B
Markdown
# 打开项目
|
|
|
|
## 目录
|
|
|
|
- [业务定义](#业务定义)
|
|
- [时序](#时序)
|
|
|
|
## 业务定义
|
|
|
|
编辑页根据路由中的 `projectId` 和 `store` 载入 `Project`,并清空尚未落笔的草稿。
|
|
|
|
本事件使用 `EditorViewModel.open`。参数 `store` 必须是枚举 `ProjectStore` 的取值。
|
|
|
|
## 时序
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
participant EditorPage
|
|
participant EditorViewModel
|
|
participant ProjectApplication
|
|
participant Project
|
|
|
|
EditorPage->>EditorViewModel: open(id, store)
|
|
EditorViewModel->>ProjectApplication: get(store, id)
|
|
ProjectApplication-->>EditorViewModel: Project
|
|
```
|
|
|
|
`id` 或 `store` 为空时,`errorMessage` 为缺少项目。`store` 不在 `ProjectStore` 的取值里时,`errorMessage` 为项目存储无效。这两种情况都不再请求。读到的聚合写入 `project`,并记下 `store`,同时清空 `draft`。没有这个项目时,`errorMessage` 为找不到项目。
|