Files
saasshop/docs/admin-ui/ant-design-pro-mapping.md
2026-03-17 08:15:56 +08:00

93 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ant Design Pro 风格对齐SaaSShop总台管理落地映射
> 目标:在不引入 React/构建链的前提下,借鉴 Ant Design Pro 的信息层级、布局与交互模式,形成一套可复用、可测试、可持续演进的后台 UI 规范。
>
> 参考文档:
> - Ant Design Pro 文档总览https://pro.ant.design/zh-CN/docs/overview
> - ProComponents
> - ProLayouthttps://procomponents.ant.design/components/layout/
> - ProFormhttps://procomponents.ant.design/components/form/
> - ProTablehttps://procomponents.ant.design/components/table/
> - ProListhttps://procomponents.ant.design/components/list/
> - ProDescriptionshttps://procomponents.ant.design/components/descriptions/
## 1. 我们当前的约束
- 技术栈Laravel + Blade + 少量原生 JS`public/js/admin.js`),无构建链。
- 交付要求:页面“无 JS 也可用”JS 只做渐进增强。
- 治理要求:
- 信息降噪:减少重复入口/重复大标题/重复按钮。
- 快捷区“动作导向”:默认只放“点完能做事”的治理入口,其余下沉高级筛选。
- 必须可测试:核心 UI 结构用 `data-role` + Feature Test 锁住。
## 2. Ant Design Pro 关键模式(抽象)
### 2.1 ProLayout布局
- 顶部导航 / 侧边导航 + 内容区PageContainer
- 统一页面标题、面包屑、右上角操作区。
**在 SaaSShop 的落地:**
- `resources/views/admin/layouts/app.blade.php`顶部导航TopNav作为主菜单已落地
- 页面内容区统一使用PageHeader + KPI/卡片/表格。
### 2.2 PageContainer页面容器
- 标题 + 描述 + actions + tabs可选
**在 SaaSShop 的落地:**
- 复用 `.page-header` 结构;后续可标准化为 Blade 组件(不强依赖)。
### 2.3 ProTable检索 + 表格 + 工具区)
- Search可折叠
- Toolbar批量动作/导出/创建)
- Table列宽/固定/溢出治理)
- Alert当前筛选条件/已选中多少条)
**在 SaaSShop 的落地:**
- Filters Card`<details class="filters-card" data-storage-key="...">` 作为可折叠搜索区(已在平台订单/订阅/套餐等落地)。
- Toolbar统一 `.actions` + `btn` 系列批量动作必须“UI 禁用 + 后端兜底 + 测试护栏”。
- Table继续推进 `table-layout: fixed`、不换行、溢出提示等治理护栏。
### 2.4 ProForm表单
- 分组/分区Card
- 校验提示统一
- 提交按钮固定位置
**在 SaaSShop 的落地:**
- 表单提交统一使用 `data-action="disable-on-submit"`(防重复点击)。
- 表单字段逐步采用:日期 `type=date`、金额 `step=0.01`、select 选项收敛。
### 2.5 ProDescriptions详情页
- 详情页以“信息块 + 动作块”组织,而不是单个超长表单。
**在 SaaSShop 的落地:**
- 平台订单详情页:治理块(回执/对账/退款/同步)继续以“卡片化 + 锚点直达 + :target 高亮”维持可治理。
## 3. 组件化建议(不引入 React
> 只做“结构/样式/交互模式”的组件化,不做 React 组件。
- LayoutTopNav、PageHeader、Content Gridtwo-col / kpi-grid
- Card统一标题/副标题/footnote。
- Table统一 `.table-fixed` / `.table-actions` / 空状态。
- MiniBars / MiniChart作为“图形化 + 可点击治理”的基础图形组件。
- Collapsible统一 `<details data-storage-key="...">` + `admin.js` 记忆开合。
## 4. 实施优先级(建议)
1) **总台 Dashboard**:继续按 Ant Design Pro 的“分析页”信息层级推进(北极星→漏斗→治理入口→最近订单)。
2) **平台订单/订阅/套餐列表**:按 ProTable 模式统一“折叠搜索 + 工具区 + 表格”。
3) **详情页治理块**:按 ProDescriptions + Card 分区,把“动作”集中到清晰区域,减少长页迷路。
## 5. 可测试护栏(建议)
- 所有关键结构用 `data-role` 标识:
- 页面容器、卡片、快捷入口、折叠区、mini bar、关键按钮。
- 针对“容易回退”的点,增加断言:
- 快捷入口数量(<=7
- 关键治理入口存在
- back 口径不嵌套、不 escape
---
说明这里的“Ant Design Pro 对齐”指 **对齐其布局与交互范式**,不直接引入其 React 组件实现。