Eight labelled jobs fit the 76px rail on one laptop screen for every role, and you can always read every icon. M1 ships first with no backend change; M2 is the same keys regrouped in AdminMenu.php.
| Option | Rail items full · support | Top level | Depth | Fits a 900px laptop without scrolling | Clicks to /admin/orders rail · expanded | Designs · Bulk Hub · Tickets (rail) | Longest label EN | Longest label 中文 | Backend change |
|---|---|---|---|---|---|---|---|---|---|
| M1 As the server sends it | 52 · 10 | 8 · 5 | section › group › link (3, sections are headings) | super: no, ~16 of 52 above the fold · support: yes | 1 · scroll · 2 · scroll | 1 · 1 (hover) · 1 · scroll | Accounting Classification (rail) · Declaration Composition Map (child) | 样子个性化 (5) · most labels have NO cn key → English shown | none |
| M2 By job ★ | 8 · 3 | 8 jobs · 3 jobs | job › group › link (3) · flyout shows all of a job | yes, both roles | 1 · 1–2 | 1 · 1 (hover) · 1 | Catalogue / Retailers (9 chars, 1 line) · child: Declaration Composition Map | 供应链 (3) · all job names 2–3 chars (proposals) | AdminMenu.php regroup (same keys, same visibility) |
| M3 Workspace-first | 8 · 7 | 3 hubs · 2 hubs | hub › tab/column › link (2 in nav, rest in ⌘K) | yes, both roles | 1 · 1 | 1 · 2 (1 if pinned) · 1 | All pages (2 lines) · Designs | 样子个性化 (server cn) · 全部 | hub flag on 3 groups (or shell constant) · pins/recent UI-only |
| Very-important page | Reached from | M1 rail · expanded | M2 rail · expanded | M3 rail · expanded |
|---|---|---|---|---|
/admin/orders | Orders list | 1 · scroll · 2 · scroll | 1 · 1–2 | 1 · 1 |
/admin/orders/{order} | Order record (+1 row click, or ⌘K id) | 1 · scroll +1 · 2 · scroll +1 | 1 +1 · 1–2 +1 | 1 +1 · 1 +1 |
/admin/designs | Designs list | 1 · 2 | 1 · 1–2 | 1 · 1 |
/admin/designs/bulk-hub | Bulk Hub | 1 (hover) · 2 | 1 (hover) · 2 | 2 (1 if pinned) · 2 (1 if pinned) |
/admin/designs/create | New design (+1 button) | 1 +1 · 2 +1 | 1 +1 · 1–2 +1 | 1 +1 · 1 +1 |
/admin/tickets | Tickets inbox | 1 · scroll · 1 · scroll | 1 · 1–2 | 1 · 1 |
/admin/tickets/new | New ticket (+1 button) | 1 · scroll +1 · 1 · scroll +1 | 1 +1 · 1–2 +1 | 1 +1 · 1 +1 |
/me/menu returns: sections, then items, then children, at any depth. Empty groups and sections are already dropped by the server.key, with a fallback icon. An unknown key still renders.A faithful render of today's /me/menu, with no backend change. There is one main list with no heading, then 7 labelled sections, then groups, then links.
The full admin gets 52 rail items (109 pages), and only about 16 of them fit above a laptop's fold. Orders is item 19, and Tickets is item 50.
Support gets 10 rail items, and its two "Settings" items (CRM and Tickets) can only be told apart by the small section caption the shell adds.
The 21 modules are regrouped into 8 jobs: Orders · Tickets · Catalogue · Supply · Quality · Retailers · Content · System. Home is the RJ HQ corner. Every page keeps its server key, label and permission. Only the parent changes. A role sees only the jobs it has a page in, so support sees 3: Orders, Tickets and Retailers. Clicking a job opens its first page, and hovering shows the whole job, in two columns for Catalogue.
The rail is Home, Find (⌘K), up to 3 hubs (the very-important modules a role can reach: Orders, Designs, Tickets), then Pinned, Recent and All pages. Inside a hub, sub-navigation moves into the page. Orders gets tabs, and Catalogue and Tickets get a secondary column. Everything else is reached by ⌘K or All pages. All pages draws today's server tree, so the long tail needs no regroup.