# 用户工作台快捷入口(user_workbench_shortcut) 与控制台首页 `screenconsole` 中「快捷入口」区域对接的后端为: - 基路径:`/api/system/user_workbench_shortcut/` - **列表(当前用户、按 `sort`、`id` 升序)**:`GET` 无路径参数 - **新增**:`POST`(与当前用户、租户自动绑定,不可代他人建) - **单条/更新/删除**:`GET|PUT|PATCH|DELETE` `/api/system/user_workbench_shortcut/{id}/` ## 前端约定 1. 列表响应体可能被包在 `data` 中,为 **数组** 或 **分页** `{ results: [] }`;解析见 `userWorkbenchShortcutApi.ts` 中 `unwrapShortcutListData`。 2. 每条记录需能解析出**与侧栏一致的路由 `path`(`web_path` / `link` / `url` 等别名字段由适配层读取,绝对 URL 会取 pathname 再与菜单 id 匹配)**、**槽位 `sort`(0~4 或 1~5)**、**是否「常用」/ 橙色高亮**(与 `index.vue` 里「标记为常用」单选、即 `highlightIndex` 一致:写入时 `is_frequent` 与 `is_active` 在**同一条**上为 `true`,其余槽为 `false`;**读列表**时在 `getFrequentFromRow` 中把 `is_frequent`、`is_active` 等一并当作「是否常用」判断;若你方将 `is_active` 仅用于**启用/未删除**且五条**均为** `true`,则不要用该字段表示常用,从 `getFrequentFromRow` 的键列表中去掉 `is_active`,仅在写入时删除 `is_active` 或恒传 `true`,按你方实际含义改 `quickEntryServerAdapter.ts`),以及**展示用名称**、**`link`**、**`icon`**(见 `resolveShortcutDisplayName` / `resolveShortcutLink` / `resolveShortcutIcon`)。 3. 具体字段名以你们序列化器为准;若与约定不一致,只改 `quickEntryServerAdapter.ts` 中的 `WORKBENCH_SHORTCUT_WRITE` 与 `getShortcutPathFromRow` / `getShortcutNameFromRow` / `getShortcutIconFromRow` 的读取逻辑,勿在多个页面里硬编码。 4. 保存时:有 `id` 的槽位用 `PATCH` 同一路径,无 `id` 的用 `POST`;不主动批量删除,除非后续产品要求「以服务端为唯一全量集」并单独实现同步删除策略。 ## 降级 - `GET` 无数据、解析失败或请求异常时,仍使用原逻辑:按本地缓存 `screenconsole_quick_entry_v2` 与侧栏可访问菜单的默认/填充规则生成五项。