755 lines
17 KiB
Markdown
755 lines
17 KiB
Markdown
# 2026-04-09 前端构造说明书(Cloudreve 对照版)
|
||
|
||
## 文档性质
|
||
|
||
这是一份前端构造说明书,不是升级计划,不是任务拆解,也不是排期文档。
|
||
|
||
它只定义三件事:
|
||
|
||
1. 当前产品前端应该有哪些页面与入口。
|
||
2. 每个页面应该由哪些区块组成,哪些按钮应该放在哪一层。
|
||
3. 每个主要按钮应该接当前仓库里已经存在的哪组接口。
|
||
|
||
## 参考基线
|
||
|
||
本说明书参考 Cloudreve 前端的产品分层,但不照搬全部能力。
|
||
|
||
参考仓库与关键文件:
|
||
|
||
- [cloudreve/frontend](https://github.com/cloudreve/frontend)
|
||
- [路由 `src/router/index.tsx`](https://github.com/cloudreve/frontend/blob/master/src/router/index.tsx)
|
||
- [API 汇总 `src/api/api.ts`](https://github.com/cloudreve/frontend/blob/master/src/api/api.ts)
|
||
- [文件动作显示规则 `src/component/FileManager/ContextMenu/useActionDisplayOpt.ts`](https://github.com/cloudreve/frontend/blob/master/src/component/FileManager/ContextMenu/useActionDisplayOpt.ts)
|
||
- [任务页 `src/component/Pages/Tasks/TaskList.tsx`](https://github.com/cloudreve/frontend/blob/master/src/component/Pages/Tasks/TaskList.tsx)
|
||
|
||
Cloudreve 最值得借鉴的不是皮肤,而是结构:
|
||
|
||
- 普通用户工作区拆成独立的 `home/tasks/shares/settings/connect/profile`
|
||
- admin 拆成独立的 `policy/user/file/task/share/...`
|
||
- 文件页不承担所有系统级能力
|
||
- 文件动作按层分组,不把全部按钮堆在主工作区
|
||
|
||
## 当前项目的真实后端能力边界
|
||
|
||
本说明书只对齐当前项目已经存在的接口,不引入伪能力。
|
||
|
||
已存在且前端应该承接的接口组:
|
||
|
||
- `GET /api/admin/summary`
|
||
- `PATCH /api/admin/settings/offline-transfer-storage-limit`
|
||
- `GET /api/admin/users`
|
||
- `PATCH /api/admin/users/{userId}/role`
|
||
- `PATCH /api/admin/users/{userId}/status`
|
||
- `PUT /api/admin/users/{userId}/password`
|
||
- `PATCH /api/admin/users/{userId}/storage-quota`
|
||
- `PATCH /api/admin/users/{userId}/max-upload-size`
|
||
- `POST /api/admin/users/{userId}/password/reset`
|
||
- `GET /api/admin/files`
|
||
- `DELETE /api/admin/files/{fileId}`
|
||
- `GET /api/admin/storage-policies`
|
||
- `POST /api/admin/storage-policies`
|
||
- `PUT /api/admin/storage-policies/{policyId}`
|
||
- `PATCH /api/admin/storage-policies/{policyId}/status`
|
||
- `POST /api/admin/storage-policies/migrations`
|
||
- `GET /api/v2/files/search`
|
||
- `GET /api/v2/files/events`
|
||
- `/api/v2/files/upload-sessions/**`
|
||
- `/api/v2/tasks/**`
|
||
- `/api/v2/shares/**`
|
||
|
||
当前后端没有对应管理接口,因此前端不应生成实页面:
|
||
|
||
- group 管理
|
||
- node 管理
|
||
- filesystem 管理
|
||
- oauth client 管理
|
||
- devices / webdav 管理
|
||
|
||
## 当前前端的结构问题
|
||
|
||
1. 文件页承担了过多系统级能力,入口挤在一个页面里。
|
||
2. 任务没有独立页,用户只能在文件页角落看最近任务。
|
||
3. 分享没有独立“我的分享”页,创建完就只剩 toast 和公开页。
|
||
4. 管理台只有 `users/files/storagePolicies` 三个 resource,且 `storagePolicies` 还是只读。
|
||
5. 管理台用户操作仍在使用 `window.prompt` 和 `window.confirm`。
|
||
6. 桌面和移动的页面地图不是同一套产品结构。
|
||
|
||
## 产品总图
|
||
|
||
### 桌面端页面
|
||
|
||
- `/login`
|
||
- `/overview`
|
||
- `/files`
|
||
- `/tasks`
|
||
- `/shares`
|
||
- `/recycle-bin`
|
||
- `/transfer`
|
||
- `${FILE_SHARE_ROUTE_PREFIX}/:token`
|
||
- `/games`
|
||
- `/games/:gameId`
|
||
- `/admin/*`
|
||
|
||
### 移动端页面
|
||
|
||
- `/login`
|
||
- `/overview`
|
||
- `/files`
|
||
- `/tasks`
|
||
- `/shares`
|
||
- `/recycle-bin`
|
||
- `/transfer`
|
||
- `${FILE_SHARE_ROUTE_PREFIX}/:token`
|
||
- `/admin/*` 仅保留“暂未适配”说明页
|
||
|
||
### 管理台页面
|
||
|
||
当前应只存在这四个管理面板:
|
||
|
||
- `dashboard`
|
||
- `users`
|
||
- `files`
|
||
- `storage-policies`
|
||
|
||
## 设计总原则
|
||
|
||
1. 这是工作台,不是 landing page。
|
||
2. 文件列表永远是网盘主视觉中心。
|
||
3. 常用按钮常驻,低频按钮进菜单,系统级能力独立成页面。
|
||
4. 不要卡片套卡片。
|
||
5. 不要紫色、紫蓝渐变、光球背景。
|
||
6. 圆角收敛到 8px 以内。
|
||
7. 长文件名、路径、错误信息都必须可截断或换行,不能撑破布局。
|
||
8. 页面优先使用 grid / flex 做稳定结构,不靠脚本测量。
|
||
|
||
## 页面构造说明
|
||
|
||
### 1. 桌面全局 Layout
|
||
|
||
目标文件:
|
||
|
||
- `front/src/components/layout/Layout.tsx`
|
||
|
||
导航应为:
|
||
|
||
- 总览
|
||
- 网盘
|
||
- 任务
|
||
- 分享
|
||
- 快传
|
||
- 游戏
|
||
- 后台
|
||
|
||
规则:
|
||
|
||
- `任务` 和 `分享` 必须升为一级导航。
|
||
- `后台` 只对 admin 可见。
|
||
- 上传进度面板继续作为全局浮层存在,但不能遮挡文件页右栏或管理台主要操作区。
|
||
|
||
### 2. 桌面文件页 `/files`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/files/FilesPage.tsx`
|
||
- `front/src/pages/files/FilesToolbar.tsx`
|
||
- `front/src/pages/files/FilesMainPane.tsx`
|
||
- `front/src/pages/files/FilesTaskPanel.tsx`
|
||
|
||
结构应为三栏:
|
||
|
||
```text
|
||
┌──────────────────────────────────────────────────────────────────────┐
|
||
│ Layout │
|
||
├──────────────┬──────────────────────────────────────┬────────────────┤
|
||
│ 目录 Rail │ 文件工作区 │ 右侧 Inspector │
|
||
│ 目录树 │ 面包屑 + Toolbar + 列表/网格 │ 详情/操作/任务 │
|
||
│ 回收站 │ 搜索结果或当前目录 │ 媒体信息 │
|
||
└──────────────┴──────────────────────────────────────┴────────────────┘
|
||
```
|
||
|
||
#### 左侧目录 Rail
|
||
|
||
职责:
|
||
|
||
- 目录树
|
||
- 根目录入口
|
||
- 回收站入口
|
||
|
||
规则:
|
||
|
||
- 回收站固定在底部。
|
||
- 目录树区域独立滚动。
|
||
- 折叠时退化成 icon rail。
|
||
|
||
接口:
|
||
|
||
- `GET /api/files/list?path=...`
|
||
|
||
#### 中央文件工作区
|
||
|
||
顶部第一层按钮:
|
||
|
||
- 面包屑
|
||
- 搜索框
|
||
- 刷新
|
||
- 列表/网格切换
|
||
|
||
顶部第二层按钮:
|
||
|
||
- 上传文件
|
||
- 上传文件夹
|
||
- 新建文件夹
|
||
|
||
选中文件后的主动作:
|
||
|
||
- 下载
|
||
- 重命名
|
||
- 移动
|
||
- 复制
|
||
- 删除
|
||
|
||
“更多”菜单动作:
|
||
|
||
- 分享
|
||
- 提取媒体信息
|
||
- 查看详情
|
||
|
||
接口绑定:
|
||
|
||
- 上传:`POST /api/v2/files/upload-sessions` 及其后续 `prepare/content/parts/complete`
|
||
- 新建目录:`POST /api/files/mkdir`
|
||
- 下载:`GET /api/files/download/{id}` 或 `GET /api/files/download/{id}/url`
|
||
- 重命名:`PATCH /api/files/{id}/rename`
|
||
- 移动:`PATCH /api/files/{id}/move`
|
||
- 复制:`POST /api/files/{id}/copy`
|
||
- 删除:`DELETE /api/files/{id}`
|
||
- 搜索:`GET /api/v2/files/search`
|
||
|
||
显示模式:
|
||
|
||
- 默认显示当前目录列表
|
||
- 搜索中切换到“搜索结果模式”
|
||
- 空目录显示可执行空状态
|
||
- 错误状态显示重试
|
||
|
||
交互规则:
|
||
|
||
- 搜索结果不能污染目录缓存
|
||
- SSE 只刷新当前目录
|
||
- 列表/网格切换不能丢失选中态
|
||
|
||
#### 右侧 Inspector
|
||
|
||
Tab:
|
||
|
||
- `详情`
|
||
- `操作`
|
||
- `任务`
|
||
- `媒体`
|
||
|
||
`详情`:
|
||
|
||
- 名称
|
||
- 类型
|
||
- 路径
|
||
- 大小
|
||
- 创建时间
|
||
|
||
`操作`:
|
||
|
||
- 下载
|
||
- 分享
|
||
- 重命名
|
||
- 移动
|
||
- 复制
|
||
- 删除
|
||
- 创建媒体信息任务
|
||
|
||
`任务`:
|
||
|
||
- 最近后台任务
|
||
- 刷新
|
||
- 取消
|
||
- 重试失败任务
|
||
- 查看全部任务
|
||
|
||
`媒体`:
|
||
|
||
- 已提取 metadata 时展示详情
|
||
- 未提取时展示空状态和“创建提取任务”
|
||
|
||
接口:
|
||
|
||
- `GET /api/v2/tasks`
|
||
- `DELETE /api/v2/tasks/{id}`
|
||
- `POST /api/v2/tasks/{id}/retry`
|
||
- `POST /api/v2/tasks/media-metadata`
|
||
|
||
### 3. 我的任务页 `/tasks`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/Tasks.tsx`
|
||
- `front/src/mobile-pages/MobileTasks.tsx`
|
||
|
||
这是独立页面,不再是文件页附属块。
|
||
|
||
页面区块:
|
||
|
||
- 标题区
|
||
- 刷新按钮
|
||
- 自动刷新开关
|
||
- 任务筛选区
|
||
- 任务列表
|
||
|
||
列表项必须显示:
|
||
|
||
- 任务类型
|
||
- 状态
|
||
- phase
|
||
- progressPercent
|
||
- failureCategory
|
||
- startedAt / finishedAt
|
||
- 相关文件或相关路径
|
||
|
||
动作:
|
||
|
||
- 刷新
|
||
- 取消任务
|
||
- 重试失败任务
|
||
- 跳到相关文件目录
|
||
|
||
接口:
|
||
|
||
- `GET /api/v2/tasks`
|
||
- `GET /api/v2/tasks/{id}`
|
||
- `DELETE /api/v2/tasks/{id}`
|
||
- `POST /api/v2/tasks/{id}/retry`
|
||
|
||
### 4. 我的分享页 `/shares`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/Shares.tsx`
|
||
- `front/src/mobile-pages/MobileShares.tsx`
|
||
|
||
这是独立页面,不再把“我的分享”塞回文件页提示信息。
|
||
|
||
每个分享项展示:
|
||
|
||
- 分享名或源文件名
|
||
- 是否有密码
|
||
- 是否允许下载
|
||
- 是否允许导入
|
||
- 过期时间
|
||
- 下载次数 / 上限
|
||
- 查看公开页
|
||
- 删除
|
||
|
||
接口:
|
||
|
||
- `GET /api/v2/shares/mine`
|
||
- `DELETE /api/v2/shares/{id}`
|
||
|
||
### 5. 回收站页 `/recycle-bin`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/RecycleBin.tsx`
|
||
|
||
构造要求:
|
||
|
||
- 与文件页保持同源视觉
|
||
- 重点展示原路径、删除时间、到期时间
|
||
- 恢复为主动作
|
||
|
||
接口:
|
||
|
||
- `GET /api/files/recycle-bin`
|
||
- `POST /api/files/recycle-bin/{fileId}/restore`
|
||
|
||
### 6. 总览页 `/overview`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/Overview.tsx`
|
||
|
||
这不是营销页,而是工作台入口。
|
||
|
||
应有区块:
|
||
|
||
- 账号与存储摘要
|
||
- 最近文件
|
||
- 最近快传
|
||
- 最近任务摘要
|
||
- Android APK 入口
|
||
- 快捷入口区
|
||
|
||
快捷入口至少包含:
|
||
|
||
- 进入网盘
|
||
- 上传文件
|
||
- 打开快传
|
||
- 查看任务
|
||
- 查看分享
|
||
|
||
### 7. 快传页 `/transfer`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/Transfer.tsx`
|
||
- `front/src/pages/TransferReceive.tsx`
|
||
|
||
构造要求:
|
||
|
||
- 在线发送、离线发送、接收、我的离线快传记录必须分区
|
||
- 二维码、分享链接、取件码属于结果区,不属于主操作区
|
||
- 状态与进度优先于说明文案
|
||
|
||
### 8. 登录页 `/login`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/Login.tsx`
|
||
|
||
构造要求:
|
||
|
||
- 第一屏只放登录、注册、邀请码说明、直达快传入口
|
||
- 不做产品介绍大版面
|
||
- 密码策略与错误提示贴近输入区
|
||
|
||
### 9. 公开分享页
|
||
|
||
目标文件:
|
||
|
||
- `front/src/pages/FileShare.tsx`
|
||
- `front/src/mobile-pages/MobileFileShare.tsx`
|
||
|
||
职责:
|
||
|
||
- 展示公开分享内容
|
||
- 密码校验
|
||
- 下载
|
||
- 导入网盘
|
||
|
||
接口:
|
||
|
||
- `GET /api/v2/shares/{token}`
|
||
- `POST /api/v2/shares/{token}/verify-password`
|
||
- `GET /api/v2/shares/{token}?download=1`
|
||
- `POST /api/v2/shares/{token}/import`
|
||
|
||
页面必须明确展示:
|
||
|
||
- 是否有密码
|
||
- 是否允许下载
|
||
- 是否允许导入
|
||
- 是否过期
|
||
- 下载次数限制
|
||
|
||
## 管理台构造说明
|
||
|
||
### 1. 管理台总览 `/admin`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/admin/dashboard.tsx`
|
||
|
||
区块:
|
||
|
||
- 汇总指标
|
||
- 邀请码
|
||
- 离线快传容量上限
|
||
- 最近活跃用户
|
||
- 快速跳转区
|
||
|
||
按钮:
|
||
|
||
- 刷新
|
||
- 复制邀请码
|
||
- 更新离线快传容量
|
||
- 跳转用户管理
|
||
- 跳转文件管理
|
||
- 跳转存储策略
|
||
|
||
接口:
|
||
|
||
- `GET /api/admin/summary`
|
||
- `PATCH /api/admin/settings/offline-transfer-storage-limit`
|
||
|
||
### 2. 用户管理 `/admin/users`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/admin/users-list.tsx`
|
||
|
||
必须从“表格 + prompt/confirm”改成“表格 + 对话框表单”。
|
||
|
||
操作:
|
||
|
||
- 角色分配
|
||
- 修改密码
|
||
- 重置密码
|
||
- 存储上限
|
||
- 单文件上限
|
||
- 封禁/解封
|
||
|
||
接口:
|
||
|
||
- `GET /api/admin/users`
|
||
- `PATCH /api/admin/users/{userId}/role`
|
||
- `PATCH /api/admin/users/{userId}/status`
|
||
- `PUT /api/admin/users/{userId}/password`
|
||
- `PATCH /api/admin/users/{userId}/storage-quota`
|
||
- `PATCH /api/admin/users/{userId}/max-upload-size`
|
||
- `POST /api/admin/users/{userId}/password/reset`
|
||
|
||
硬性要求:
|
||
|
||
- 不允许继续使用 `window.prompt`
|
||
- 不允许继续使用 `window.confirm`
|
||
|
||
### 3. 文件管理 `/admin/files`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/admin/files-list.tsx`
|
||
|
||
职责:
|
||
|
||
- 查文件
|
||
- 按文件名 / 路径 / 用户筛选
|
||
- 删除文件
|
||
- 查看基础详情
|
||
|
||
接口:
|
||
|
||
- `GET /api/admin/files`
|
||
- `DELETE /api/admin/files/{fileId}`
|
||
|
||
说明:
|
||
|
||
- 当前后端没有更多文件管理写接口,所以不要伪造“编辑文件元数据”“更改对象存储”等按钮。
|
||
|
||
### 4. 存储策略 `/admin/storage-policies`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/admin/storage-policies-list.tsx`
|
||
- 配套 create/edit/status/migration 组件
|
||
|
||
这是当前管理台最重要的缺口页。
|
||
|
||
页面必须覆盖:
|
||
|
||
- 策略列表
|
||
- 新建策略
|
||
- 编辑策略
|
||
- 启停策略
|
||
- 创建迁移任务
|
||
|
||
列表字段:
|
||
|
||
- 名称
|
||
- 类型
|
||
- endpoint
|
||
- bucket
|
||
- region
|
||
- prefix
|
||
- credential mode
|
||
- enabled
|
||
- default
|
||
- max size
|
||
- capabilities
|
||
|
||
行级动作:
|
||
|
||
- 编辑
|
||
- 启用/停用
|
||
- 发起迁移
|
||
|
||
接口:
|
||
|
||
- `GET /api/admin/storage-policies`
|
||
- `POST /api/admin/storage-policies`
|
||
- `PUT /api/admin/storage-policies/{policyId}`
|
||
- `PATCH /api/admin/storage-policies/{policyId}/status`
|
||
- `POST /api/admin/storage-policies/migrations`
|
||
|
||
UI 约束:
|
||
|
||
- 默认策略不能停用,要显式禁用或给出明确提示
|
||
- 迁移任务创建成功后,要给出“去任务页查看进度”的明确入口
|
||
|
||
## 移动端构造说明
|
||
|
||
### 1. 移动全局结构
|
||
|
||
目标文件:
|
||
|
||
- `front/src/mobile-components/MobileLayout.tsx`
|
||
- `front/src/MobileApp.tsx`
|
||
|
||
底部导航应为:
|
||
|
||
- 总览
|
||
- 网盘
|
||
- 任务
|
||
- 分享
|
||
- 快传
|
||
|
||
管理台不进底部导航。
|
||
|
||
### 2. 移动文件页 `/files`
|
||
|
||
目标文件:
|
||
|
||
- `front/src/mobile-pages/files/MobileFilesPage.tsx`
|
||
|
||
结构:
|
||
|
||
- 顶部路径栏
|
||
- 搜索按钮
|
||
- 列表主体
|
||
- 底部主操作栏
|
||
- Action Sheet
|
||
- 任务 Sheet
|
||
|
||
主动作:
|
||
|
||
- 上传
|
||
- 新建文件夹
|
||
|
||
选中后动作:
|
||
|
||
- 下载
|
||
- 重命名
|
||
- 移动
|
||
- 复制
|
||
- 删除
|
||
- 分享
|
||
- 提取媒体信息
|
||
|
||
要求:
|
||
|
||
- 搜索、任务、文件动作不能再挤在一个区域
|
||
- 以底部 sheet 为主,不依赖 hover 或右键模型
|
||
|
||
### 3. 移动任务页与移动分享页
|
||
|
||
目标文件:
|
||
|
||
- `front/src/mobile-pages/MobileTasks.tsx`
|
||
- `front/src/mobile-pages/MobileShares.tsx`
|
||
|
||
规则:
|
||
|
||
- 单列列表
|
||
- 顶部刷新
|
||
- 每项动作明确
|
||
- 不要求桌面同等信息密度,但不能缺失核心能力
|
||
|
||
## 前端 helper 结构要求
|
||
|
||
前端 API helper 必须按领域分组:
|
||
|
||
- `front/src/lib/api.ts`:通用 HTTP、认证、基础请求封装
|
||
- `front/src/lib/upload-session.ts`:上传会话
|
||
- `front/src/lib/background-tasks.ts`:后台任务
|
||
- `front/src/lib/file-search.ts`:文件搜索
|
||
- `front/src/lib/file-events.ts`:文件事件 SSE
|
||
- `front/src/lib/shares-v2.ts`:分享二期
|
||
- `front/src/lib/admin-users.ts`:管理员用户动作
|
||
- `front/src/lib/admin-storage-policies.ts`:管理员存储策略动作
|
||
|
||
页面里不应该再散落写死的 `/api/admin/...` 和 `/api/v2/...` 字符串。
|
||
|
||
## 按钮到接口映射
|
||
|
||
### 文件区
|
||
|
||
- 上传文件 / 文件夹:`/api/v2/files/upload-sessions/**`
|
||
- 新建文件夹:`POST /api/files/mkdir`
|
||
- 刷新目录:`GET /api/files/list`
|
||
- 搜索:`GET /api/v2/files/search`
|
||
- 下载:`GET /api/files/download/{id}` 或 `GET /api/files/download/{id}/url`
|
||
- 重命名:`PATCH /api/files/{id}/rename`
|
||
- 移动:`PATCH /api/files/{id}/move`
|
||
- 复制:`POST /api/files/{id}/copy`
|
||
- 删除:`DELETE /api/files/{id}`
|
||
- 创建媒体信息任务:`POST /api/v2/tasks/media-metadata`
|
||
|
||
### 任务区
|
||
|
||
- 列表:`GET /api/v2/tasks`
|
||
- 详情:`GET /api/v2/tasks/{id}`
|
||
- 取消:`DELETE /api/v2/tasks/{id}`
|
||
- 重试:`POST /api/v2/tasks/{id}/retry`
|
||
|
||
### 分享区
|
||
|
||
- 我的分享:`GET /api/v2/shares/mine`
|
||
- 删除分享:`DELETE /api/v2/shares/{id}`
|
||
- 公开分享详情:`GET /api/v2/shares/{token}`
|
||
- 密码校验:`POST /api/v2/shares/{token}/verify-password`
|
||
- 公开下载:`GET /api/v2/shares/{token}?download=1`
|
||
- 导入网盘:`POST /api/v2/shares/{token}/import`
|
||
|
||
### 管理台
|
||
|
||
- summary:`GET /api/admin/summary`
|
||
- 离线快传容量:`PATCH /api/admin/settings/offline-transfer-storage-limit`
|
||
- 用户列表:`GET /api/admin/users`
|
||
- 用户角色:`PATCH /api/admin/users/{userId}/role`
|
||
- 用户状态:`PATCH /api/admin/users/{userId}/status`
|
||
- 用户密码:`PUT /api/admin/users/{userId}/password`
|
||
- 用户存储上限:`PATCH /api/admin/users/{userId}/storage-quota`
|
||
- 用户单文件上限:`PATCH /api/admin/users/{userId}/max-upload-size`
|
||
- 重置密码:`POST /api/admin/users/{userId}/password/reset`
|
||
- 文件列表:`GET /api/admin/files`
|
||
- 删除文件:`DELETE /api/admin/files/{fileId}`
|
||
- 策略列表:`GET /api/admin/storage-policies`
|
||
- 新建策略:`POST /api/admin/storage-policies`
|
||
- 编辑策略:`PUT /api/admin/storage-policies/{policyId}`
|
||
- 启停策略:`PATCH /api/admin/storage-policies/{policyId}/status`
|
||
- 创建迁移:`POST /api/admin/storage-policies/migrations`
|
||
|
||
## 禁止生成的结果
|
||
|
||
1. 不要生成 landing page。
|
||
2. 不要生成功能介绍卡片墙。
|
||
3. 不要把任务、分享、系统设置继续塞回文件页。
|
||
4. 不要为后端不存在的 group/node/filesystem/oauth/device 管理接口生成实页面。
|
||
5. 不要继续用 `window.prompt` 和 `window.confirm` 做核心管理操作。
|
||
6. 不要使用紫色和紫蓝渐变。
|
||
7. 不要继续使用大圆角和玻璃装饰压过内容。
|
||
|
||
## 最终产品地图
|
||
|
||
桌面端:
|
||
|
||
- `/overview`
|
||
- `/files`
|
||
- `/tasks`
|
||
- `/shares`
|
||
- `/transfer`
|
||
- `/games`
|
||
- `/admin`
|
||
|
||
移动端:
|
||
|
||
- `/overview`
|
||
- `/files`
|
||
- `/tasks`
|
||
- `/shares`
|
||
- `/transfer`
|
||
|
||
管理台:
|
||
|
||
- `dashboard`
|
||
- `users`
|
||
- `files`
|
||
- `storage-policies`
|
||
|
||
这就是当前项目下一阶段前端应对齐的构造终态。它吸收了 Cloudreve 的产品分层方式,但完全受限于你当前仓库真实已有的后端接口,不引入任何伪功能。
|