@teamix-evo/skills 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/teamix-evo-design-opentrek/SKILL.md +27 -19
- package/src/teamix-evo-design-opentrek/pages/dashboard-page/SKILL.md +429 -0
- package/src/teamix-evo-design-opentrek/pages/dashboard-page/patterns/dashboard-opentrek.md +268 -0
- package/src/teamix-evo-design-opentrek/pages/form-page/SKILL.md +423 -5
- package/src/teamix-evo-design-opentrek/pages/list-page/SKILL.md +396 -25
- package/src/teamix-evo-design-opentrek/pages/list-page/_shared/item-card-spec.md +386 -0
- package/src/teamix-evo-design-opentrek/pages/list-page/patterns/card-list-opentrek.md +739 -0
- package/src/teamix-evo-design-opentrek/pages/list-page/patterns/card-list.md +89 -363
- package/src/teamix-evo-design-opentrek/pages/list-page/patterns/standard-list-opentrek.md +318 -0
- package/src/teamix-evo-design-opentrek/patterns/dashboard.md +9 -16
- package/src/teamix-evo-design-uni-manager/SKILL.md +7 -0
- package/src/teamix-evo-manage/SKILL.md +66 -29
- package/src/teamix-evo-design-opentrek/pages/list-page/_shared/action-column-spec.md +0 -60
- package/src/teamix-evo-design-opentrek/pages/list-page/_shared/state-action-pattern.md +0 -51
- package/src/teamix-evo-design-opentrek/pages/list-page/patterns/advanced-filter-list.md +0 -94
- package/src/teamix-evo-design-opentrek/pages/list-page/patterns/drawer-list.md +0 -76
- package/src/teamix-evo-design-opentrek/pages/list-page/patterns/expandable-list.md +0 -70
- package/src/teamix-evo-design-opentrek/pages/list-page/patterns/l2-sidebar-list.md +0 -73
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
name: page-rule-list
|
|
3
3
|
parent: page-rule-system
|
|
4
4
|
description: >
|
|
5
|
-
列表页(PageType: ListPage)
|
|
6
|
-
|
|
5
|
+
列表页(PageType: ListPage)完整规则。涵盖通用规则(padding/嵌套/操作列/状态-操作模式)+
|
|
6
|
+
DataTable 子类型变体(standard/l2-sidebar/expandable/drawer/advanced-filter 内联)+
|
|
7
|
+
卡片子类型路由到 patterns/card-list.md。
|
|
8
|
+
OpenTrek 标准列表业务规则路由到 patterns/standard-list-opentrek.md(Tab 导航/查询面板/列类型/操作列模式)。
|
|
7
9
|
产品配置在 products/{产品}/ 目录(列定义 / 状态机 / 业务映射)。
|
|
8
10
|
三层参数化架构(v7.0):元规则(固化)+ 产品配置(灵活)+ 模式细节。
|
|
9
11
|
触发:需要列表页规则、匹配列表页模板、生成列表页。
|
|
10
|
-
Version: 7.
|
|
12
|
+
Version: 7.10
|
|
11
13
|
---
|
|
12
14
|
|
|
13
15
|
# 列表页路由规则
|
|
@@ -24,16 +26,17 @@ description: >
|
|
|
24
26
|
|
|
25
27
|
| 子类型ID | 识别关键词 | 路由到 | 布局模式 | 核心组件 |
|
|
26
28
|
|----------|-----------|--------|----------|----------|
|
|
27
|
-
| standard | "列表"/"表格"/"查询" | → `patterns/standard-list.md` | 模式D | DataTable + Pagination |
|
|
28
|
-
| l2-sidebar | "分类"/"分组"/"左侧树" | →
|
|
29
|
-
| expandable | "展开"/"子项"/"详情" | →
|
|
30
|
-
| drawer | "弹窗列表"/"选择器" | →
|
|
29
|
+
| standard | "列表"/"表格"/"查询" | → `patterns/standard-list.md`;OpenTrek 业务规则 → `patterns/standard-list-opentrek.md` | 模式D | DataTable + Pagination |
|
|
30
|
+
| l2-sidebar | "分类"/"分组"/"左侧树" | → 本文件 §8.1 | 模式D + Sidebar | Sidebar(240px) + DataTable |
|
|
31
|
+
| expandable | "展开"/"子项"/"详情" | → 本文件 §8.2 | 模式D | DataTable(行内展开) |
|
|
32
|
+
| drawer | "弹窗列表"/"选择器" | → 本文件 §8.3 | 模式D (Sheet内) | DataTable ⊂ Sheet |
|
|
31
33
|
| **pure-card** | "纯卡片"/"卡片管理"/"智能体列表" | → `patterns/card-list.md` | 模式A-CARD | CardGrid + ItemCard + CardActionBar |
|
|
32
34
|
| **standard-card** | "卡片列表"/"分类卡片"/"资源卡片" | → `patterns/card-list.md` | 模式D-CARD (TWO_COL) | Sidebar + CardGrid + ItemCard + CardActionBar |
|
|
33
35
|
| **view-toggle** | "视图切换"/"列表卡片切换" | → `patterns/card-list.md` | 模式D + ViewToggle | ViewToggle + CardGrid/DataTable + ItemCard(tile) |
|
|
34
|
-
| advanced-filter | "高级筛选"/"更多条件" | →
|
|
36
|
+
| advanced-filter | "高级筛选"/"更多条件" | → 本文件 §8.4 | 模式D+ | AdvancedFilterPanel + DataTable |
|
|
35
37
|
|
|
36
38
|
> **v7.2 合并**:原 `pure-card-list.md` / `standard-card-list.md` / `view-toggle-list.md` 三个 patterns 合并为单一 `patterns/card-list.md`,子类型差异在其 §1 差异矩阵中区分。
|
|
39
|
+
> **v7.10 新增**:OpenTrek 标准列表业务规则 `patterns/standard-list-opentrek.md`,涵盖 Tab 导航/查询面板/列类型/操作列模式/状态驱动操作等 OpenTrek 平台特有规则。
|
|
37
40
|
|
|
38
41
|
### 路由判定优先级
|
|
39
42
|
|
|
@@ -223,20 +226,376 @@ Card 白卡容器:`padding: 0 var(--card-padding-x)` (上下 0 / 左右 20px
|
|
|
223
226
|
|
|
224
227
|
---
|
|
225
228
|
|
|
226
|
-
## 6.
|
|
229
|
+
## 6. 操作列规范
|
|
227
230
|
|
|
228
|
-
|
|
231
|
+
> 适用于 standard / l2-sidebar / expandable / drawer / advanced-filter / view-toggle(列表视图)子类型。
|
|
232
|
+
|
|
233
|
+
### 操作列结构
|
|
234
|
+
|
|
235
|
+
操作列包含 3 个主要操作 + 1 个"更多"入口,以分隔线区分:
|
|
236
|
+
|
|
237
|
+
| 元素 | 样式 | 条件 | 禁用样式 |
|
|
238
|
+
|------|------|------|---------|
|
|
239
|
+
| 主操作(管理/查看) | 链接样式 | 始终可用 | — |
|
|
240
|
+
| 分隔线 | \| | — | — |
|
|
241
|
+
| 次要操作(远程连接等) | 文字按钮 | 特定状态时 disabled | `opacity: 0.45; pointer-events: none` |
|
|
242
|
+
| 分隔线 | \| | — | — |
|
|
243
|
+
| 状态操作(实例状态▾) | 下拉按钮 | 特定状态时 disabled | `opacity: 0.45; pointer-events: none` |
|
|
244
|
+
| 分隔线 | \| | — | — |
|
|
245
|
+
| 更多操作 | "..."下拉菜单 | 始终可用 | — |
|
|
246
|
+
|
|
247
|
+
### 操作列行为
|
|
248
|
+
|
|
249
|
+
| 操作 | 触发方式 | 前置条件 | 二次确认 | 目标页面/组件 | 返回行为 |
|
|
250
|
+
|------|----------|---------|---------|-------------|----------|
|
|
251
|
+
| 查看/管理 | 点击链接 | 无 | 否 | DetailPage | 返回列表页, 保持筛选+分页状态 |
|
|
252
|
+
| 编辑 | 点击按钮 | 无 | 否 | FormPage 或 Sheet | 保存后返回列表, Sonner "保存成功" |
|
|
253
|
+
| 删除 | 点击按钮 | 实例已停止 | 是 (Dialog确认) | Dialog确认弹窗 | 确认后刷新列表, Sonner "删除成功" |
|
|
254
|
+
| 更多 | Dropdown | 无 | 否 | 下拉菜单 | 选择操作 |
|
|
255
|
+
|
|
256
|
+
### 禁用样式
|
|
257
|
+
|
|
258
|
+
所有 disabled 元素统一样式:
|
|
259
|
+
```css
|
|
260
|
+
opacity: 0.45;
|
|
261
|
+
pointer-events: none;
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 操作列水平对齐【硬约束】
|
|
265
|
+
|
|
266
|
+
操作列位于表格末列,**表头与表体均需显式 `text-align: left`**:
|
|
267
|
+
|
|
268
|
+
```css
|
|
269
|
+
.data-table .col-action {
|
|
270
|
+
width: 140px;
|
|
271
|
+
text-align: left;
|
|
272
|
+
position: sticky; right: 0;
|
|
273
|
+
background: hsl(var(--card));
|
|
274
|
+
}
|
|
275
|
+
.data-table thead th.col-action { background: hsl(var(--gray-bg)); text-align: left; }
|
|
276
|
+
.data-table tbody td.col-action { text-align: left; }
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
- ❌ 禁止只在 `.col-action` 上设 `text-align: left` 而不在 th/td 重复声明
|
|
280
|
+
- ❌ 禁止操作列内容居中
|
|
281
|
+
- **验证**:表头「操作」左边缘 X = 表体「详情」链接左边缘 X
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## 7. 状态-操作模式
|
|
286
|
+
|
|
287
|
+
> 适用于所有产品线的列表页。本产品特有状态机定义见 `products/{产品}/states.json`。
|
|
288
|
+
|
|
289
|
+
### 元规则
|
|
290
|
+
|
|
291
|
+
| 规则 | 说明 |
|
|
292
|
+
|------|------|
|
|
293
|
+
| 每个状态必须定义操作可用性 | 明确标注每个操作在该状态下是否可用 |
|
|
294
|
+
| 禁用操作必须使用统一样式 | `opacity: 0.45; pointer-events: none` |
|
|
295
|
+
| 混合状态时批量操作按钮禁用 | 不同状态的行选中时,hover 提示不可用原因 |
|
|
296
|
+
| 异步操作必须提供反馈 | Sonner 提示 + 列表刷新机制 |
|
|
297
|
+
| 操作确认按影响级别分级 | 一级(可逆直接执行) / 二级(影响状态Dialog确认) / 三级(不可逆输入确认) |
|
|
298
|
+
|
|
299
|
+
### 异步操作处理
|
|
300
|
+
|
|
301
|
+
| 操作类型 | 触发后行为 | 反馈方式 | 列表刷新 |
|
|
302
|
+
|---------|-----------|---------|---------|
|
|
303
|
+
| 状态变更操作 | 异步任务, 不阻塞 | Sonner "操作已提交" | 轮询状态或任务完成通知 |
|
|
304
|
+
| 删除操作 | 异步任务 | Sonner "删除已提交" | 移除对应行或刷新列表 |
|
|
305
|
+
| 批量操作 | 异步任务 | Sonner "批量操作已提交, 共N条" | 轮询状态 |
|
|
306
|
+
| 创建操作 | 同步跳转 | 跳转 FormPage | 创建成功后返回列表 |
|
|
307
|
+
|
|
308
|
+
### 操作确认规范
|
|
309
|
+
|
|
310
|
+
| 确认级别 | 确认方式 | 适用操作 |
|
|
311
|
+
|---------|---------|---------|
|
|
312
|
+
| 一级 (可逆) | 无确认, 直接执行 | 查看、编辑、远程连接 |
|
|
313
|
+
| 二级 (影响状态) | Dialog确认弹窗 | 启动、停止、重启等状态变更 |
|
|
314
|
+
| 三级 (不可逆) | Dialog + 输入确认文本 | 删除 (需输入确认文本) |
|
|
315
|
+
|
|
316
|
+
### 页面间导航交互
|
|
317
|
+
|
|
318
|
+
| 来源操作 | 目标页面 | 导航方式 | 返回/交互约定 |
|
|
319
|
+
|---------|---------|---------|-------------|
|
|
320
|
+
| 操作列"管理/查看" | 详情页 (DetailPage) | 页面跳转 | Breadcrumb+PageHeader 返回入口; 保持筛选+分页 |
|
|
321
|
+
| 操作列"编辑" | 表单页 (FormPage) 或 Sheet | 页面跳转/侧滑 | 保存后返回列表, Sonner 提示; 取消返回列表 |
|
|
322
|
+
| 创建操作 | 创建页 (FormPage) | 页面跳转 | 创建成功/取消后返回列表 |
|
|
323
|
+
| 搜索执行 | 当前列表页(刷新) | 数据刷新 | 保持分页在第1页 |
|
|
324
|
+
| 筛选条件变更 | 当前列表页(刷新) | 数据刷新 | 重置到第1页, 保持筛选条件 |
|
|
325
|
+
|
|
326
|
+
### 反馈机制
|
|
327
|
+
|
|
328
|
+
| 场景 | 反馈类型 | 持续时间 | 说明 |
|
|
329
|
+
|------|---------|---------|------|
|
|
330
|
+
| 操作成功 | Sonner 成功提示 | 3s | "操作成功" |
|
|
331
|
+
| 操作失败 | Sonner 错误提示 | 5s | 含错误原因 |
|
|
332
|
+
| 异步任务 | 通知中心 + Sonner | 持久 | 任务完成时通知 |
|
|
333
|
+
| 加载中 | 表格行 Skeleton / Spinner | 至加载完成 | 首次加载/筛选加载 |
|
|
334
|
+
| 空数据 | Empty | 持久 | 含创建引导按钮 |
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 8. DataTable 子类型变体规则
|
|
339
|
+
|
|
340
|
+
> 以下四种子类型均基于 `patterns/standard-list.md` 标准列表的完整结构(PageHeader + ActionToolbar + DataTable + BulkActionBar + Pagination),仅记录差异点。
|
|
341
|
+
> DataTable、Pagination、ActionToolbar 等通用组件行为见 standard-list.md,不再重复。
|
|
342
|
+
|
|
343
|
+
### 8.1 L2 导航列表 (l2-sidebar)
|
|
344
|
+
|
|
345
|
+
> 布局模式: 模式D + Sidebar(TWO_COL) | 核心差异: 左侧 240px 分类导航 + 右侧标准列表
|
|
346
|
+
|
|
347
|
+
#### 布局骨架
|
|
348
|
+
|
|
349
|
+
```
|
|
350
|
+
┌──────────┬──────────────────────────────────────────────┤
|
|
351
|
+
│ │ PageHeader + ActionToolbar + DataTable │
|
|
352
|
+
│ Sidebar │ + BulkActionBar + Pagination │
|
|
353
|
+
│ (240px) │ (同标准列表页完整结构) │
|
|
354
|
+
│ │ │
|
|
355
|
+
│ [分类A] │ │
|
|
356
|
+
│ [分类B] │ │
|
|
357
|
+
│ [分类C] │ │
|
|
358
|
+
│ ── │ │
|
|
359
|
+
│ [子分类] │ │
|
|
360
|
+
└──────────┴──────────────────────────────────────────────┘
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
#### 核心差异
|
|
364
|
+
|
|
365
|
+
| 维度 | 标准列表 | L2 导航列表 |
|
|
366
|
+
|------|----------|-------------|
|
|
367
|
+
| 布局 | SINGLE_COL / TWO_COL | **TWO_COL** |
|
|
368
|
+
| Sidebar | 可选 | **必需** |
|
|
369
|
+
|
|
370
|
+
> Sidebar 收起/展开、交互规范、色彩全部引用 `rules/design-tokens.json` sidebarRules。
|
|
371
|
+
|
|
372
|
+
#### Sidebar 交互规范
|
|
373
|
+
|
|
374
|
+
| 交互 | 行为 |
|
|
375
|
+
|------|------|
|
|
376
|
+
| 点击分类 | 刷新右侧列表数据,保持当前页码 |
|
|
377
|
+
| 展开/收起 | 切换子分类列表,动画过渡 |
|
|
378
|
+
| 收起 Sidebar | 宽度缩至 68px,仅显示图标 |
|
|
379
|
+
| 选中态 | 灰色背景 `var(--sidebar-active)` |
|
|
380
|
+
| 手风琴 | 打开一个分组自动关闭其他分组 |
|
|
381
|
+
| 收起态 Tooltip | Hover 显示节点名称 |
|
|
382
|
+
| 展开持久化 | 展开/收起状态持久化 |
|
|
383
|
+
| 计数徽章 | 每项右侧显示数据量(灰色 12px) |
|
|
384
|
+
| 状态指示灯 | 菜单项前圆点(8px)+文字,颜色对应状态 |
|
|
385
|
+
| 约束 | 最大 20 项 / 最大 2 级嵌套 |
|
|
386
|
+
|
|
387
|
+
#### 验证差异项
|
|
388
|
+
|
|
389
|
+
| 验证项 | 检查点 | 目标 |
|
|
390
|
+
|--------|--------|------|
|
|
391
|
+
| Sidebar 规格 | 展开240px / 收起68px | 正确 |
|
|
392
|
+
| 分类选中态 | 灰色背景 `var(--sidebar-active)` | 正确 |
|
|
393
|
+
| 分类切换 | 右侧列表刷新 | 正确 |
|
|
394
|
+
| 计数徽章 | 每项右侧灰色 12px | 正确 |
|
|
395
|
+
| 状态指示灯 | 圆点(8px)+文字,颜色对应状态 | 正确 |
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
### 8.2 可展开列表 (expandable)
|
|
400
|
+
|
|
401
|
+
> 布局模式: 模式D | 核心差异: DataTable 行内展开显示子数据/详情
|
|
402
|
+
|
|
403
|
+
#### 布局骨架
|
|
404
|
+
|
|
405
|
+
```
|
|
406
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
407
|
+
│ PageHeader + ActionToolbar (同标准列表页) │
|
|
408
|
+
│ ──┬──────────────────────────────────────────────────────────┬──│
|
|
409
|
+
│ DataTable (行内展开) │
|
|
410
|
+
│ ☑|ID|名称|状态|标签|...|操作 │
|
|
411
|
+
│ ▶|i-xxx|test|●运行中|🏷|...|管理|... │
|
|
412
|
+
│ ┌─────────────────────────────────────────────────────┐ │
|
|
413
|
+
│ │ 子项1: 详情A | 详情B | 详情C │ │
|
|
414
|
+
│ │ 子项2: 详情D | 详情E │ │
|
|
415
|
+
│ └─────────────────────────────────────────────────────┘ │
|
|
416
|
+
│ ▶|i-yyy|prod|●运行中|🏷|...|管理|... │
|
|
417
|
+
│ ───────────────────────────────────────────────────────────── │
|
|
418
|
+
│ BulkActionBar + Pagination (同标准列表页) │
|
|
419
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
#### 核心差异
|
|
423
|
+
|
|
424
|
+
| 维度 | 标准列表 | 可展开列表 |
|
|
425
|
+
|------|----------|-----------|
|
|
426
|
+
| 行展开 | 不支持 | **支持** |
|
|
427
|
+
| 展开触发 | — | **点击行首展开图标(▶) 或 点击行** |
|
|
428
|
+
| 展开方式 | — | **行内展开,不弹出 Dialog/Sheet** |
|
|
429
|
+
| 展开高度 | — | **自适应,最大高度 200px** |
|
|
430
|
+
| 展开状态持久化 | — | **翻页后保持展开状态** |
|
|
431
|
+
|
|
432
|
+
#### 行内展开交互规范
|
|
433
|
+
|
|
434
|
+
| 交互 | 行为 |
|
|
435
|
+
|------|------|
|
|
436
|
+
| 点击展开图标(▶) | 展开/收起该行,展开图标变为 ▼ |
|
|
437
|
+
| 点击行(非操作区) | 同展开图标,切换展开状态 |
|
|
438
|
+
| 同时展开 | 支持多行同时展开 |
|
|
439
|
+
| 展开内容 | 子数据表格 / 详情描述列表 / 关联信息 |
|
|
440
|
+
| 收起所有 | 提供"收起全部"按钮(可选) |
|
|
441
|
+
| 翻页行为 | 展开状态持久化,翻回原页时保持 |
|
|
442
|
+
|
|
443
|
+
#### 验证差异项
|
|
444
|
+
|
|
445
|
+
| 验证项 | 检查点 | 目标 |
|
|
446
|
+
|--------|--------|------|
|
|
447
|
+
| 展开图标 | ▶/▼ 切换正确 | 正确 |
|
|
448
|
+
| 行内展开 | 不弹出新窗口/Dialog | 正确 |
|
|
449
|
+
| 多行展开 | 支持同时展开多行 | 正确 |
|
|
450
|
+
| 翻页持久化 | 翻回原页时展开状态保持 | 正确 |
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
### 8.3 抽屉中列表 (drawer)
|
|
455
|
+
|
|
456
|
+
> 布局模式: 模式D (Sheet 内) | 核心差异: 列表嵌入 Sheet,用于选择关联数据
|
|
457
|
+
|
|
458
|
+
#### 布局骨架
|
|
459
|
+
|
|
460
|
+
```
|
|
461
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
462
|
+
│ 主页面内容 (ListPage / FormPage / DetailPage) │
|
|
463
|
+
│ ... │
|
|
464
|
+
│ ┌───────────────────────────────────────────┐ │
|
|
465
|
+
│ │ Sheet (右侧滑出, 宽度 600-900px) │ │
|
|
466
|
+
│ │ ┌───── SheetHeader ──────────────────┐ │ │
|
|
467
|
+
│ │ │ 选择关联实例 [× 关闭] │ │ │
|
|
468
|
+
│ │ ├─────────────────────────────────────┤ │ │
|
|
469
|
+
│ │ │ ActionToolbar (SearchCombo 等) │ │ │
|
|
470
|
+
│ │ │ DataTable (含选择框) │ │ │
|
|
471
|
+
│ │ │ Pagination │ │ │
|
|
472
|
+
│ │ ├─────────────────────────────────────┤ │ │
|
|
473
|
+
│ │ │ [取消] [确定] (底部操作栏) │ │ │
|
|
474
|
+
│ │ └─────────────────────────────────────┘ │ │
|
|
475
|
+
│ └───────────────────────────────────────────┘ │
|
|
476
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
#### 核心差异
|
|
480
|
+
|
|
481
|
+
| 维度 | 标准列表 | 抽屉中列表 |
|
|
482
|
+
|------|----------|-----------|
|
|
483
|
+
| 容器 | PageContainer | **Sheet** |
|
|
484
|
+
| 触发方式 | 直接访问 URL | **点击按钮/链接打开 Sheet** |
|
|
485
|
+
| 选择返回 | 跳转页面 | **选择后点击确定关闭 Sheet,返回选中数据** |
|
|
486
|
+
| 宽度 | 全宽/自适应 | **固定宽度 (600-900px)** |
|
|
487
|
+
| 关闭方式 | 浏览器返回/面包屑 | **点击 × / 遮罩层 / Esc** |
|
|
488
|
+
| 底部操作栏 | 无 | **必需 [取消] [确定]** |
|
|
489
|
+
|
|
490
|
+
#### Sheet 交互规范
|
|
491
|
+
|
|
492
|
+
| 交互 | 行为 |
|
|
493
|
+
|------|------|
|
|
494
|
+
| 打开 Sheet | 点击触发按钮,从右侧滑出,宽度 600-900px |
|
|
495
|
+
| 选择数据 | 勾选选择框,支持单选/多选(由业务决定) |
|
|
496
|
+
| 确认选择 | 点击"确定"关闭 Sheet,返回选中数据到主页面 |
|
|
497
|
+
| 取消选择 | 点击"取消"关闭 Sheet,不返回数据 |
|
|
498
|
+
| 关闭 Sheet | 点击 × / 遮罩层 / Esc,丢弃未确认的选择 |
|
|
499
|
+
| 搜索/筛选 | 在 Sheet 内执行,不跳转页面 |
|
|
500
|
+
| 分页 | 在 Sheet 内分页,不影响主页面 |
|
|
501
|
+
|
|
502
|
+
> 操作列中"管理/查看"等页面跳转操作在抽屉中通常禁用或隐藏。
|
|
503
|
+
|
|
504
|
+
#### 验证差异项
|
|
505
|
+
|
|
506
|
+
| 验证项 | 检查点 | 目标 |
|
|
507
|
+
|--------|--------|------|
|
|
508
|
+
| Sheet 滑出 | 右侧滑出,宽度 600-900px | 正确 |
|
|
509
|
+
| 遮罩层 | 半透明遮罩,点击关闭 | 正确 |
|
|
510
|
+
| 选择反馈 | 选中行高亮 | 正确 |
|
|
511
|
+
| 确定/取消 | 确定返回数据,取消丢弃 | 正确 |
|
|
512
|
+
| Esc 关闭 | Esc 关闭 Sheet | 正确 |
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
### 8.4 高级筛选列表 (advanced-filter)
|
|
517
|
+
|
|
518
|
+
> 布局模式: 模式D+ | 核心差异: 可展开的高级筛选面板 + 多条件组合
|
|
519
|
+
|
|
520
|
+
#### 布局骨架
|
|
521
|
+
|
|
522
|
+
```
|
|
523
|
+
┌──────────┬──────────────────────────────────────────────┤
|
|
524
|
+
│ Sidebar │ PageHeader: 标题(18px/medium) │
|
|
525
|
+
│ │ ActionToolbar: [创建] + [搜索🔍] [高级筛选▾] │
|
|
526
|
+
│ │ ┌─── AdvancedFilterPanel ───────────────┐ │
|
|
527
|
+
│ │ │ 条件1: [Select] [Input] │ │
|
|
528
|
+
│ │ │ 条件2: [Select] [Input] │ │
|
|
529
|
+
│ │ │ 条件3: [Select] [Input] │ │
|
|
530
|
+
│ │ │ [确认] [清空] │ │
|
|
531
|
+
│ │ └───────────────────────────────────────┘ │
|
|
532
|
+
│ │ DataTable + BulkActionBar + Pagination │
|
|
533
|
+
└──────────┴──────────────────────────────────────────────┘
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
#### 核心差异
|
|
537
|
+
|
|
538
|
+
| 维度 | 标准列表 | 高级筛选列表 |
|
|
539
|
+
|------|----------|-------------|
|
|
540
|
+
| 筛选方式 | SearchCombo | **SearchCombo + AdvancedFilterPanel** |
|
|
541
|
+
| 筛选条件数 | 1个维度 | **多条件组合(通常2-5个)** |
|
|
542
|
+
| AdvancedFilterPanel | 无 | **必需** |
|
|
543
|
+
| FilterTag | 可选 | **必需**(展示已选条件) |
|
|
544
|
+
|
|
545
|
+
#### AdvancedFilterPanel 交互规范
|
|
546
|
+
|
|
547
|
+
| 交互 | 行为 |
|
|
548
|
+
|------|------|
|
|
549
|
+
| 打开面板 | 点击"高级筛选"按钮,展开面板 |
|
|
550
|
+
| 关闭面板 | 收起面板,恢复基础 SearchCombo |
|
|
551
|
+
| 添加条件 | 点击"添加条件",新增一行筛选条件 |
|
|
552
|
+
| 删除条件 | 点击条件行右侧 ×,移除该条件 |
|
|
553
|
+
| 条件间关系 | **AND 关系**(所有条件同时生效) |
|
|
554
|
+
| 确认筛选 | 点击"确认",应用所有条件,刷新列表 |
|
|
555
|
+
| 清空筛选 | 点击"清空",清除所有条件 |
|
|
556
|
+
| 面板位置 | ActionToolbar 下方,DataTable 上方 |
|
|
557
|
+
|
|
558
|
+
#### FilterTag 管理
|
|
559
|
+
|
|
560
|
+
- 已选筛选项以 **FilterTag** 形式展示在 ActionToolbar 区域
|
|
561
|
+
- 每个 FilterTag 可单独移除(点击 ×)
|
|
562
|
+
- 筛选条件清空后,FilterTag 区域隐藏(display: none)
|
|
563
|
+
- 支持"清空全部"操作
|
|
564
|
+
|
|
565
|
+
#### 与 PageContainer 模式对照
|
|
566
|
+
|
|
567
|
+
高级筛选列表使用 **模式D+**:
|
|
568
|
+
```
|
|
569
|
+
PageContainer → ContentWrapper → PageHeader + ActionToolbar + AdvancedFilterPanel(可展开) + DataTable + BulkActionBar + Pagination
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
#### 验证差异项
|
|
573
|
+
|
|
574
|
+
| 验证项 | 检查点 | 目标 |
|
|
575
|
+
|--------|--------|------|
|
|
576
|
+
| AdvancedFilterPanel | 展开/收起正常 | 正确 |
|
|
577
|
+
| 多条件组合 | AND 关系 | 正确 |
|
|
578
|
+
| 条件添加/删除 | 增删条件行正常 | 正确 |
|
|
579
|
+
| 确认/清空 | 确认后刷新,清空后恢复 | 正确 |
|
|
580
|
+
| FilterTag | 展示已选条件,可单独移除 | 正确 |
|
|
581
|
+
|
|
582
|
+
---
|
|
583
|
+
|
|
584
|
+
## 9. 共享规则引用
|
|
585
|
+
|
|
586
|
+
以下规范为多个子类型共用,保持独立文件:
|
|
229
587
|
|
|
230
588
|
| 共享规则 | 路径 | 被引用子类型 |
|
|
231
589
|
|----------|------|-------------|
|
|
232
590
|
| 表格列元规则 | `_shared/column-meta-rules.md` | standard, l2-sidebar, expandable, drawer, view-toggle(列表视图) |
|
|
233
|
-
|
|
|
234
|
-
|
|
|
235
|
-
| 业务卡片三件套规格(v7.3 下沉) | `patterns/card-list.md` §9(ItemCard/CardGrid/CardActionBar 完整规格) | pure-card, standard-card, view-toggle(均路由到 patterns/card-list.md) |
|
|
591
|
+
| SearchCombo 规范 | `_shared/search-combo-spec.md` | 全部子类型 |
|
|
592
|
+
| 业务卡片三件套规格 | `_shared/item-card-spec.md` | pure-card, standard-card, view-toggle |
|
|
236
593
|
|
|
237
|
-
|
|
594
|
+
> v7.9 变更:操作列规范(原 `_shared/action-column-spec.md`)和状态-操作模式(原 `_shared/state-action-pattern.md`)已合并到本文件 §6、§7。
|
|
238
595
|
|
|
239
|
-
|
|
596
|
+
---
|
|
597
|
+
|
|
598
|
+
## 10. 产品配置引用
|
|
240
599
|
|
|
241
600
|
> 具体列定义、状态机、业务场景按产品隔离,存放在 `products/{产品}/` 目录。
|
|
242
601
|
> AI 读取时需根据目标产品加载对应配置文件。
|
|
@@ -246,13 +605,13 @@ Card 白卡容器:`padding: 0 var(--card-padding-x)` (上下 0 / 左右 20px
|
|
|
246
605
|
| ECS | `products/ecs/columns.json` | `products/ecs/states.json` | `products/ecs/mapping.json` |
|
|
247
606
|
| PolarDB | `products/polar-db/columns.json` | `products/polar-db/states.json` | `products/polar-db/mapping.json` |
|
|
248
607
|
| Cloud-Catalog | `products/cloud-catalog/columns.json` | `products/cloud-catalog/states.json` | — |
|
|
249
|
-
| AI Gateway | `products/ai-gateway/columns.json` | `products/ai-gateway/states.json` | `products/ai-gateway/mapping.json` + `cards.json
|
|
608
|
+
| AI Gateway | `products/ai-gateway/columns.json` | `products/ai-gateway/states.json` | `products/ai-gateway/mapping.json` + `cards.json` |
|
|
250
609
|
|
|
251
610
|
**读取规则**:
|
|
252
611
|
1. 根技能确定页面类型 → Phase ①
|
|
253
612
|
2. 子技能匹配子类型 → Phase ②
|
|
254
613
|
3. 根据目标产品加载 `products/{产品}/` 下对应配置文件 → Phase ②.5
|
|
255
|
-
4.
|
|
614
|
+
4. 元规则 + 产品配置 → Phase ③ 生成 HTML
|
|
256
615
|
|
|
257
616
|
---
|
|
258
617
|
|
|
@@ -260,27 +619,39 @@ Card 白卡容器:`padding: 0 var(--card-padding-x)` (上下 0 / 左右 20px
|
|
|
260
619
|
|
|
261
620
|
- **读取路径**:见根技能 `../../SKILL.md` §4.5 四阶段读取决策树
|
|
262
621
|
- 阶段①:`page-types.json` + `business-mapping.json`
|
|
263
|
-
- 阶段②:`page-frame.json` + `layout-rules.json` + `page-flow.json` + `_shared/search-combo-spec.md
|
|
264
|
-
- 阶段②.5:`products/{产品}/columns.json` + `states.json
|
|
622
|
+
- 阶段②:`page-frame.json` + `layout-rules.json` + `page-flow.json` + `_shared/search-combo-spec.md`;卡片子类型追加读取 `patterns/card-list.md`;OpenTrek 标准列表追加读取 `patterns/standard-list-opentrek.md`
|
|
623
|
+
- 阶段②.5:`products/{产品}/columns.json` + `states.json`
|
|
265
624
|
- 阶段③(生成 HTML 时):`design-tokens.json` + `design-tokens.css` + `styling.json` + `../../boundaries.md` + `../../foundations.md`
|
|
266
625
|
|
|
267
|
-
> `rules/design-tokens.css` 是设计 Token 的唯一真相源(:root
|
|
626
|
+
> `rules/design-tokens.css` 是设计 Token 的唯一真相源(:root 变量定义)。
|
|
268
627
|
|
|
269
628
|
---
|
|
270
629
|
|
|
271
630
|
## 验证清单 (Validation Checklist)
|
|
272
631
|
|
|
273
|
-
> **通用检查项**(布局分区/颜色Token/间距/字体/尺寸/禁用样式/异步操作/空数据/加载中)见根技能 `../../docs/validation-workflow.md
|
|
632
|
+
> **通用检查项**(布局分区/颜色Token/间距/字体/尺寸/禁用样式/异步操作/空数据/加载中)见根技能 `../../docs/validation-workflow.md`。
|
|
633
|
+
|
|
634
|
+
### 通用检查项(所有 DataTable 子类型)
|
|
274
635
|
|
|
275
636
|
| 检查项 | 检查点 | 目标 |
|
|
276
637
|
|--------|--------|------|
|
|
277
638
|
| 嵌套结构 | PageContainer → ContentWrapper → Card(白卡容器) → PageHeader/ActionToolbar/DataTable/Pagination | 100% |
|
|
278
|
-
| Card
|
|
279
|
-
| 必需组件 | PageHeader、ActionToolbar、Pagination +
|
|
639
|
+
| Card 内左右对齐 | 非 Table 组件 padding = 0(由 Card.paddingX 20px 提供);Table 首末列 paddingX = 20px | 100% |
|
|
640
|
+
| 必需组件 | PageHeader、ActionToolbar、Pagination + 子类型组件 | 100% |
|
|
280
641
|
| 禁止组件 | 无内联编辑、拖拽排序、无限滚动、悬浮操作栏、右键菜单 | 0 个 |
|
|
281
|
-
|
|
|
282
|
-
| 操作可用性 | 状态-操作矩阵匹配 | 所有状态正确 |
|
|
642
|
+
| 操作可用性 | 状态-操作矩阵匹配(§7) | 所有状态正确 |
|
|
283
643
|
| 二次确认 | 启动/停止/重启 Dialog确认,删除需输入确认 | 正确 |
|
|
284
644
|
| 批量操作 | 选中≥1行显示、混合状态禁用、异步处理 | 正确 |
|
|
285
645
|
| 搜索交互 | 回车执行、下拉切换维度、FilterTag 展示 | 正确 |
|
|
286
646
|
| 分页 | 默认条数、保持筛选、"共N条" | 正确 |
|
|
647
|
+
| 操作列对齐 | 表头/表体均 `text-align: left`(§6) | 正确 |
|
|
648
|
+
|
|
649
|
+
### 子类型差异验证(仅适用于对应子类型)
|
|
650
|
+
|
|
651
|
+
| 子类型 | 额外验证项 |
|
|
652
|
+
|--------|-----------|
|
|
653
|
+
| l2-sidebar (§8.1) | Sidebar 240px/68px、分类选中态、计数徽章 |
|
|
654
|
+
| expandable (§8.2) | ▶/▼ 展开图标、行内展开不弹窗、多行展开、翻页持久化 |
|
|
655
|
+
| drawer (§8.3) | Sheet 600-900px、遮罩关闭、确定/取消返回数据、Esc 关闭 |
|
|
656
|
+
| advanced-filter (§8.4) | 面板展开/收起、AND 条件、FilterTag 可移除 |
|
|
657
|
+
|