feat: 设备中心模块全量落地 + 列表页同级数据切换规范
- 设备管理(manage):5 类设备 tab 改为 a-radio-group button-style="solid"(参考 vue 研发项目 unitReportData);新增投用状态字段、固件版本→软件版本、移除数据中转;所属租户/布点场所非必填,留空自动判定在库;导出改异步(导出列表数据 + 查看导出任务) - 设备统计(statistics):从图标展示重构为列表页,14 列定义 + 12 维搜索条件 + 4 张统计卡 + a-table-summary 统计行 + 异步导出 - 设备工作台(workbench/overview):新增概览页 + DonutChart 组件 - 资产/库存/运维/分发/租户场所等子模块全量落地(含 mock handler、6 文件结构、modal/drawer 子组件) - 系统设置/运营中心扁平化页面落地(员工/角色/菜单/应用/字典/租户列表/小程序用户) - 实施运维小程序(miniprogram/ops):工作台/工单/扫码/巡检/我的 5 个 tab 页 - 规范:list-page-spec §7.4 新增「同级数据切换(radio-button 样式,强制)」;tabs-page-spec 文首新增「〇、适用范围」明确与同表过滤场景的边界 - 路由/菜单(nav.ts + routes.ts):同步设备中心菜单层级与 ops 小程序实例 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
2727cfda86
commit
74d1488d3b
@@ -13,17 +13,22 @@
|
||||
|------|-----|-------|---------|---------|
|
||||
| 综合管理后台 | `admin-portal` | Ant Design Vue | 平台管理员 | 平台级管理(系统设置/运营中心/设备中心 为顶部一级菜单,**无子应用、无应用切换、无应用网格**) |
|
||||
| 租户运营后台 | `tenant-portal` | Ant Design Vue | 租户运营人员 | **17 个独立可部署应用的统一入口**(营养管理/健康监测/...),有应用网格首页 |
|
||||
| C 端微信小程序 | `miniprogram` | Vant 4(375×812) | 终端用户 | 用户自助查询、上报、咨询 |
|
||||
| 微信小程序 | `miniprogram` | Vant 4(375×812) | 多种 | **支持多个小程序实例并存**,每个实例一组底部 Tab;URL `/miniprogram/<mpKey>/<tabPagePath>` |
|
||||
| 硬件终端屏 | `hardware` | 自定义(动态 viewport) | 现场操作员 | 净菜柜屏 / 自助查询屏 / 大屏 等 |
|
||||
|
||||
> **重要架构说明**(admin / tenant 形态差异):
|
||||
> **重要架构说明**(admin / tenant / miniprogram 形态差异):
|
||||
> - **综合管理后台为单应用形态**: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`;切换应用后只显示当前应用打开过的菜单。
|
||||
> - **微信小程序为多实例形态**:每个实例 = 一个 `NavMiniprogram`(key / label / tabs[]),独立的一组底部 Tab。当前已落地 2 个:
|
||||
> - `customer`:C 端用户小程序(吃 / 问 / 做 / 我),终端用户使用
|
||||
> - `ops`:实施运维小程序(工作台 / 工单 / 扫码 / 巡检 / 我的),仅实施运维工程师使用,详见 `src/docs/device/设备管理服务器功能现状.md` §8
|
||||
> - URL:`/miniprogram/<mpKey>/<tabPagePath>`,例:`/miniprogram/ops/workbench`
|
||||
> - 新增小程序只需在 `src/meta/nav.ts` 的 `miniprograms` 数组追加一条
|
||||
> - **最近打开菜单(PageHistory)按 portal + app 隔离**:scope key 形如 `admin-portal__admin` / `tenant-portal__nutrition` / `miniprogram__ops`;切换应用 / 小程序后只显示当前 scope 打开过的菜单。
|
||||
|
||||
> 详细业务边界与各应用模块清单见 **`src/docs/business-architecture.md`**。AI 在生成原型前**必须先读这份文档**。
|
||||
---
|
||||
@@ -187,9 +192,18 @@ yx-platform-prototype/
|
||||
│ │ │ └── farm/ 绿色种采(一级菜单)
|
||||
│ │ │ └── FarmLand.vue
|
||||
│ │ └── monitor/ 健康监测应用(菜单结构占位,页面待开发)
|
||||
│ ├── miniprogram/ 小程序业务页面
|
||||
│ │ ├── home/Home.vue
|
||||
│ │ └── profile/Profile.vue
|
||||
│ ├── miniprogram/ 微信小程序业务页面(按实例分目录)
|
||||
│ │ ├── customer/ C 端用户小程序
|
||||
│ │ │ ├── eat/Home.vue
|
||||
│ │ │ ├── ask/Home.vue
|
||||
│ │ │ ├── make/Home.vue
|
||||
│ │ │ └── me/Home.vue
|
||||
│ │ └── ops/ 实施运维小程序(仅运维工程师)
|
||||
│ │ ├── workbench/Home.vue
|
||||
│ │ ├── workOrder/Home.vue
|
||||
│ │ ├── scan/Home.vue
|
||||
│ │ ├── inspect/Home.vue
|
||||
│ │ └── me/Home.vue
|
||||
│ └── hardware/ 硬件业务页面
|
||||
│ └── cabinet/Home.vue
|
||||
│
|
||||
@@ -251,6 +265,7 @@ yx-platform-prototype/
|
||||
|
||||
1. **菜单单一来源**:所有菜单结构集中在 `src/meta/nav.ts`
|
||||
2. **三层菜单结构**:每个应用(NavApp) → 一级菜单(NavSection) → 二/三级菜单(NavGroup → NavLeaf)
|
||||
2.1. **侧边栏手风琴(全局约束)**:`Sidebar.vue` 必须保持"同一时刻最多展开一个二级分组(section.children 这一层)",展开新的二级分组时自动收起其他二级分组。激活叶子所在的祖先分组链不参与互斥(保证选中项始终可见)。三级及更深嵌套分组随二级收起连带隐藏,不单独互斥。该约束对 admin-portal / tenant-portal 全后台生效,禁止移除 `onOpenChange` 互斥逻辑。
|
||||
3. **URL 规范**:`/<portal>/<app>/<section>/<page>`,例:`/tenant-portal/nutrition/nutrition-farm/monitor/crop`
|
||||
4. **列表页 UI 规范(重要)**:
|
||||
- **不渲染 PageHeader**(菜单 + 顶部历史栏已经表达所在位置)
|
||||
|
||||
Reference in New Issue
Block a user