feat: 综合管理后台扁平化 + 历史按 portal+app 隔离

- admin-portal 从多应用形态重构为单应用形态:3个一级菜单(系统设置/运营中心/设备中心)直接挂在 portal 下,URL=/admin-portal/<section>/<page>
- TopBar 移除应用切换下拉,应用名改为纯文本展示
- PageHistory 隔离粒度从 portal 级改为 portal+app 级(scopeKey 形如 admin-portal__admin / tenant-portal__nutrition)
- Home 原型首页区分 admin 一级菜单卡片与 tenant 应用卡片布局,tenant 新增"应用主页"入口卡片
- nav.ts 用 adminSections + getAdminVirtualApp() 替代原 adminApps 占位应用数组

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
fengpu
2026-06-05 16:54:58 +08:00
co-authored by Claude Opus 4.7
parent c64072f125
commit 2727cfda86
10 changed files with 445 additions and 141 deletions
+10 -9
View File
@@ -9,22 +9,23 @@
---
## 四个终端
| 终端 | key | UI 库 | 主要用户 | 业务定位 |
|------|-----|-------|---------|---------|
| 综合管理后台 | `admin-portal` | Ant Design Vue | 平台管理员 | 平台级管理(系统设置/运营中心/设备中心 等独立应用 |
| 租户运营后台 | `tenant-portal` | Ant Design Vue | 租户运营人员 | **17 个独立可部署应用的统一入口**(营养管理/健康监测/... |
| 综合管理后台 | `admin-portal` | Ant Design Vue | 平台管理员 | 平台级管理(系统设置/运营中心/设备中心 为顶部一级菜单,**无子应用、无应用切换、无应用网格** |
| 租户运营后台 | `tenant-portal` | Ant Design Vue | 租户运营人员 | **17 个独立可部署应用的统一入口**(营养管理/健康监测/...,有应用网格首页 |
| C 端微信小程序 | `miniprogram` | Vant 4375×812) | 终端用户 | 用户自助查询、上报、咨询 |
| 硬件终端屏 | `hardware` | 自定义(动态 viewport) | 现场操作员 | 净菜柜屏 / 自助查询屏 / 大屏 等 |
> **重要架构说明**对齐生产 vue 项目 `D:\Work\platform-vue-tenant` 的 qiankun 微前端形态):
> - `admin-portal` / `tenant-portal` 只是登录门户外壳。下挂多个**独立可部署的应用(NavApp)**,每个应用对应生产 vue 项目中的一个 `subXxx` 子应用
> - 进入某个应用后,顶部显示**该应用内的一级菜单 tabs**NavSection),左侧显示**当前一级菜单下的二/三级菜单**NavGroup → NavLeaf
> - URL 结构:`/<portal>/<app>/<section>/<page>`,例:`/tenant-portal/nutrition/nutrition-farm/monitor/crop`
> - 应用首页(`/<portal>`):展示应用网格卡片(参考 vue 项目 main 的 `home.vue`)。
> **重要架构说明**admin / tenant 形态差异):
> - **综合管理后台为单应用形态**:3 个一级菜单(系统设置 / 运营中心 / 设备中心)直接挂在 portal 下,URL = `/admin-portal/<section>/<page>`,无应用切换概念
> - **租户运营后台为多应用形态**(对齐生产 vue 项目 `D:\Work\platform-vue-tenant` 的 qiankun 微前端):下挂多个**独立可部署的应用(NavApp)**,每个应用对应生产 vue 项目中的一个 `subXxx` 子应用
> - 进入某个应用后,顶部显示**该应用内的一级菜单 tabs**NavSection),左侧显示**当前一级菜单下的二/三级菜单**NavGroup → NavLeaf
> - URL`/tenant-portal/<app>/<section>/<page>`,例:`/tenant-portal/nutrition/nutrition-farm/monitor/crop`
> - 应用首页(`/tenant-portal`):展示应用网格卡片(参考 vue 项目 main 的 `home.vue`
> - 不支持在 TopBar 切换应用;切换应用通过"应用首页"或"返回原型首页"完成
> - **最近打开菜单(PageHistory)按 portal + app 隔离**scope key 形如 `admin-portal__admin` / `tenant-portal__nutrition`;切换应用后只显示当前应用打开过的菜单。
> 详细业务边界与各应用模块清单见 **`src/docs/business-architecture.md`**。AI 在生成原型前**必须先读这份文档**。
---
## 技术栈