@zeyue0329/xiaoma-cli 1.20.0 → 1.22.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/xmc-skills/2-plan-workflows/xiaoma-prd-clarify/README.md +74 -0
- package/src/xmc-skills/2-plan-workflows/xiaoma-prd-clarify/SKILL.md +58 -0
- package/src/xmc-skills/2-plan-workflows/xiaoma-prd-clarify/examples/example-clarification.md +61 -0
- package/src/xmc-skills/2-plan-workflows/xiaoma-prd-clarify/references/checklist.md +99 -0
- package/src/xmc-skills/2-plan-workflows/xiaoma-prd-clarify/references/output-template.md +73 -0
- package/src/xmc-skills/2-plan-workflows/xiaoma-prd-clarify/references/scoring.md +73 -0
- package/src/xmc-skills/2-plan-workflows/xiaoma-prd-clarify/scripts/export_to_excel.py +156 -0
- package/src/xmc-skills/module-help.csv +1 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-bar-chart-backend/SKILL.md +142 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-button-backend/SKILL.md +108 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-collapse-backend/SKILL.md +142 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-container-foot-backend/SKILL.md +192 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-data-census-backend/SKILL.md +104 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-dialog-backend/SKILL.md +205 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-drawer-backend/SKILL.md +100 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-empty-page-backend/SKILL.md +131 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-file-upload-backend/SKILL.md +291 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-flow-chart-backend/SKILL.md +118 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-form-editor-backend/SKILL.md +315 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-form-view-backend/SKILL.md +165 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-funnel-chart-backend/SKILL.md +102 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-gauge-chart-backend/SKILL.md +103 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-heatmap-chart-backend/SKILL.md +125 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-line-chart-backend/SKILL.md +136 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-map-chart-backend/SKILL.md +130 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-message-feedback-backend/SKILL.md +63 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-module-backend/SKILL.md +180 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-pie-chart-backend/SKILL.md +132 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-popover-backend/SKILL.md +61 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-preview-backend/SKILL.md +117 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-search-form-backend/SKILL.md +239 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-select-tree-backend/SKILL.md +161 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-table-simple-backend/SKILL.md +341 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-tips-backend/SKILL.md +257 -0
- package/src/zqyl-skills/backend/components/xiaoma-zqyl-title-backend/SKILL.md +145 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-feedback-page-backend/SKILL.md +30 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-feedback-page-backend/pages/feedbackPage.md +124 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-form-detail-page-backend/SKILL.md +39 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-form-detail-page-backend/pages/formDetailPage.md +354 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-import-dialog-page-backend/SKILL.md +27 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-import-dialog-page-backend/pages/importDialogPage.md +101 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-list-page-backend/SKILL.md +31 -0
- package/src/zqyl-skills/backend/xiaoma-zqyl-list-page-backend/pages/listPage.md +306 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-bar-chart-front/SKILL.md +142 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-button-front/SKILL.md +108 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-collapse-front/SKILL.md +142 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-container-foot-front/SKILL.md +192 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-data-census-front/SKILL.md +104 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-dialog-front/SKILL.md +205 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-drawer-front/SKILL.md +100 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-empty-page-front/SKILL.md +131 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-file-upload-front/SKILL.md +291 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-flow-chart-front/SKILL.md +118 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-form-editor-front/SKILL.md +315 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-form-view-front/SKILL.md +165 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-funnel-chart-front/SKILL.md +102 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-gauge-chart-front/SKILL.md +103 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-heatmap-chart-front/SKILL.md +125 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-line-chart-front/SKILL.md +136 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-map-chart-front/SKILL.md +130 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-message-feedback-front/SKILL.md +63 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-module-front/SKILL.md +180 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-pie-chart-front/SKILL.md +132 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-popover-front/SKILL.md +61 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-preview-front/SKILL.md +117 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-search-form-front/SKILL.md +239 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-select-tree-front/SKILL.md +161 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-table-simple-front/SKILL.md +341 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-tips-front/SKILL.md +257 -0
- package/src/zqyl-skills/front/components/xiaoma-zqyl-title-front/SKILL.md +145 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-feedback-page-front/SKILL.md +30 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-feedback-page-front/pages/feedbackPage.md +124 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-form-detail-page-front/SKILL.md +39 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-form-detail-page-front/pages/formDetailPage.md +351 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-import-dialog-page-front/SKILL.md +27 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-import-dialog-page-front/pages/importDialogPage.md +101 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-list-page-front/SKILL.md +31 -0
- package/src/zqyl-skills/front/xiaoma-zqyl-list-page-front/pages/listPage.md +380 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-bar-chart-mid/SKILL.md +142 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-button-mid/SKILL.md +108 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-collapse-mid/SKILL.md +142 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-container-foot-mid/SKILL.md +192 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-data-census-mid/SKILL.md +104 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-dialog-mid/SKILL.md +205 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-drawer-mid/SKILL.md +100 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-empty-page-mid/SKILL.md +131 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-file-upload-mid/SKILL.md +291 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-flow-chart-mid/SKILL.md +118 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-form-editor-mid/SKILL.md +315 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-form-view-mid/SKILL.md +165 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-funnel-chart-mid/SKILL.md +102 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-gauge-chart-mid/SKILL.md +103 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-heatmap-chart-mid/SKILL.md +125 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-line-chart-mid/SKILL.md +136 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-manager-title-mid/SKILL.md +132 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-map-chart-mid/SKILL.md +130 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-message-feedback-mid/SKILL.md +63 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-module-mid/SKILL.md +180 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-mps-table-mid/SKILL.md +179 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-pie-chart-mid/SKILL.md +132 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-popover-mid/SKILL.md +61 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-preview-mid/SKILL.md +117 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-search-form-mid/SKILL.md +239 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-select-tree-mid/SKILL.md +161 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-table-simple-mid/SKILL.md +341 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-tips-mid/SKILL.md +257 -0
- package/src/zqyl-skills/mid/components/xiaoma-zqyl-title-mid/SKILL.md +145 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-feedback-page-mid/SKILL.md +30 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-feedback-page-mid/pages/feedbackPage.md +125 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-form-detail-page-mid/SKILL.md +39 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-form-detail-page-mid/pages/formDetailPage.md +357 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-import-dialog-page-mid/SKILL.md +27 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-import-dialog-page-mid/pages/importDialogPage.md +102 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-list-page-mid/SKILL.md +30 -0
- package/src/zqyl-skills/mid/xiaoma-zqyl-list-page-mid/pages/listPage.md +389 -0
- package/src/zqyl-skills/module-help.csv +15 -0
- package/src/zqyl-skills/module.yaml +38 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/SKILL.md +478 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/VERSION.md +30 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/components-index.md +55 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/design-tokens.md +167 -0
- package/src/zqyl-skills/xiaoma-zqyl-ui-spec/reference.md +385 -0
- package/tools/installer/core/manifest.js +4 -3
- package/tools/installer/list-options.js +2 -2
- package/tools/installer/modules/official-modules.js +15 -47
- package/tools/installer/modules/version-resolver.js +2 -2
- package/tools/installer/project-root.js +12 -9
- package/tools/installer/ui.js +2 -1
- package/tools/validate-zqyl-pack.js +171 -0
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 列表页(中台)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# 列表页(中台)
|
|
7
|
+
|
|
8
|
+
你是一个前端页面实现助手。以本技能描述的列表页骨架为**基线**,结合需求/原型做区块增删改;含标准列表与统计+列表、表格带标签、双重标签、极简查询等变体场景;遵守固定约定与组件 skill(含按需 `ylTips`),不得破坏 `ref` 联动与平台组件选型。
|
|
9
|
+
|
|
10
|
+
## 平台与参考
|
|
11
|
+
|
|
12
|
+
- 平台:中台
|
|
13
|
+
- 页头/表格:**`ylManagerTitle` + `ylMpsTable`**(项目 `components`,无则手动拷贝)
|
|
14
|
+
- 外部查询:**`ylSearchForm` 在入口按组件名 `Vue.component` 注册**(platformType:`mps`)
|
|
15
|
+
- 模板数据名:`midListPage`
|
|
16
|
+
- 布局类型:**中台管理列表**(`yl_manager_container` → `ylManagerTitle` → `el-card` → 可选 Tab / `ylSearchForm` → `ylMpsTable`)
|
|
17
|
+
- 组件来源:`ylSearchForm` 等 → 入口按组件名逐个 `Vue.component`;`ylManagerTitle`、`ylMpsTable` → 项目 **components**(缺失时手动拷贝)
|
|
18
|
+
|
|
19
|
+
## 页面说明
|
|
20
|
+
|
|
21
|
+
中台列表页面:ylManagerTitle(右侧操作)+ ylMpsTable(筛选 + 动态列表格 + 分页);预览含二级标题、统计+列表、表格带标签、双重标签、极简查询等场景
|
|
22
|
+
|
|
23
|
+
## 何时使用
|
|
24
|
+
|
|
25
|
+
当用户需要新建或改造**中台查询列表页**(页头 + Tab + 查询区 + 动态表格 + 分页 + 列配置)时,使用本 skills。
|
|
26
|
+
- 信号:中台管理列表、`listRegistrationNo`、内置或外部查询、表格列配置、行内操作、Tab 切换列表、导出/多选。
|
|
27
|
+
- 不适用:纯表单页、纯详情页(用 `xiaoma-zqyl-form-detail-page-mid`);**无表格的仪表盘/看板无专用页面模板** —— 回到 `xiaoma-zqyl-ui-spec` 的「数据统计看板/仪表盘」段落,用 title + data-census + `*-chart` 组件 skill 自建骨架。
|
|
28
|
+
|
|
29
|
+
## 需求/原型差异落地
|
|
30
|
+
|
|
31
|
+
本 skill 提供**常用列表页模板**作为基线。实际开发中,需求文档或原型常在基线上**增删改区块**;生成代码前须先做差异对照,**不要**无视需求硬套默认示例。
|
|
32
|
+
|
|
33
|
+
### 工作流(有需求文档或原型时必做)
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
1. 通读需求/原型,列出可见区块(标题、Tab、查询、统计、表格、弹窗等)
|
|
37
|
+
2. 对照下方「中台标准骨架」,逐块标注:保留 / 删减 / 调整内容
|
|
38
|
+
3. 仅对「调整」和「新增」区块改模板代码;「删减」区块整段移除
|
|
39
|
+
4. 输出一整页 Vue 代码,并在回复中简要说明相对默认模板删改了哪些区块
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 中台标准骨架(对照用,非强制全保留)
|
|
43
|
+
|
|
44
|
+
`el-row.yl_manager_container` → **`ylManagerTitle`(`#btn` 常用放页头操作)** → `el-card` → **[页级 Tab]** → **[外部 `ylSearchForm`]** → **`ylMpsTable`** → **[弹窗/抽屉]**
|
|
45
|
+
### 跳转类操作(三端通用)
|
|
46
|
+
|
|
47
|
+
- **定义**:跳转其他页面/外链、**不改变当前列表数据**的操作(如下载中心、任务中心等)。
|
|
48
|
+
- **组件选型**:**优先 `ylButton`**(如 `type="download"`);仅当 `ylButton` 无法满足样式/交互时再使用 `el-link` + 图标。详见 `xiaoma-zqyl-button-mid`。
|
|
49
|
+
- **落位原则**:**以需求/原型为准**;下列为各端**常用**位置,无明确要求时可作默认参考,勿硬套。
|
|
50
|
+
- **中台常用落位**:`ylManagerTitle` 的 **`#btn` 插槽**(与导出/新增等页头操作并列);表格区为 `ylMpsTable` 时,跳转类通常不在表内标题行。
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
方括号 `[...]` 为**可选区块**;需求/原型未出现则**不生成**,勿为「凑完整示例」强行保留。
|
|
54
|
+
方括号区块的**插入位置**见下文「列表变体选型」「页面骨架」,非一律接在本行箭头末端。
|
|
55
|
+
|
|
56
|
+
### 常见差异与处理
|
|
57
|
+
|
|
58
|
+
| 需求/原型信号 | 相对默认模板 | 处理 |
|
|
59
|
+
| --- | --- | --- |
|
|
60
|
+
| 无 Tab | 示例含页级 Tab | **删掉** `el-card.yl-title_tabs` 整块 |
|
|
61
|
+
| 仅内置筛选 | 示例含外部 `ylSearchForm` | **去掉** `ylSearchForm`,`ylMpsTable` 不设 `hideSearch` |
|
|
62
|
+
| 复杂外部查询 | 仅内置筛选 | 保留 `ylSearchForm`,表格 `:hideSearch="true"` 并写 `searchRefsName` |
|
|
63
|
+
| 列由注册号拉取 | 手写 `tableData.header` | **不要**手写表头;配 `listRegistrationNo` + 列插槽 |
|
|
64
|
+
| 字段/列/接口与示例不同 | 示例为结构占位 | **只替换**标题、`searchParmas.parmas`、`tableData.header`、**`INTERFACE` 接口常量**,**不改**区块顺序除非需求要求;**禁止**填充 mock 行 |
|
|
65
|
+
| 布局层级与上表完全不同 | 仍像列表但结构非标 | 优先满足需求层级;保留 `ref` 联动、`platformType`、`isCard` 等硬约束 |
|
|
66
|
+
|
|
67
|
+
### 优先级
|
|
68
|
+
|
|
69
|
+
1. **需求文档 / 原型 / 用户明确描述**(最高)
|
|
70
|
+
2. 本 skill 的**固定约定**与配套组件 skill(`ref` 名、`platformType`、`isCard`、中台组件选型等)
|
|
71
|
+
3. 规范平台默认预览示例(仅作基线,可被 1 覆盖删减)
|
|
72
|
+
|
|
73
|
+
### 硬约束(需求也不得破坏)
|
|
74
|
+
|
|
75
|
+
- 中台页面页头默认 **`ylManagerTitle`**;列表主表格默认 **`ylMpsTable`**;未明确要求时**勿用** `ylTitle` / `ylTableSimple` 作页头或主列表
|
|
76
|
+
- **例外**:用户**明确要求**使用 `ylTitle` 或 `ylTableSimple` 时,可按指定组件替换对应区块
|
|
77
|
+
- 外部查询时:`searchFormRef` ↔ `mpsTable` 的 `searchRefsName` 成对
|
|
78
|
+
- 公共 class(`yl-tabs-table`、`yl-title_tabs`、`yl_manager_container` 等)用项目 `common.less`,**禁止**在页面 `scoped` 重写
|
|
79
|
+
|
|
80
|
+
## 配套组件 skills(必须一并遵守)
|
|
81
|
+
|
|
82
|
+
本 skills 只描述**页面级骨架与拼装顺序**;下列组件的 Props、列配置、查询项结构等细节以已安装的独立组件 skill 为准,生成代码时不得与之冲突:
|
|
83
|
+
|
|
84
|
+
| 区域 | 组件 | 组件 skill |
|
|
85
|
+
| --- | --- | --- |
|
|
86
|
+
| 页头 | **`ylManagerTitle`** | `xiaoma-zqyl-manager-title-mid` |
|
|
87
|
+
| 外部查询(可选) | **`ylSearchForm`** | **`zqyl-component-base`**,见 `xiaoma-zqyl-search-form-mid` |
|
|
88
|
+
| 表格 + 内置筛选 + 分页 | **`ylMpsTable`** | `xiaoma-zqyl-mps-table-mid` |
|
|
89
|
+
| 弹窗(按需) | `ylDialog` | `xiaoma-zqyl-dialog-mid` |
|
|
90
|
+
| 提示(按需) | `ylTips` | `xiaoma-zqyl-tips-mid` |
|
|
91
|
+
| 带图标按钮(按需) | `ylButton` | `xiaoma-zqyl-button-mid` |
|
|
92
|
+
|
|
93
|
+
> 用户只描述业务字段时:先按默认骨架搭 `ylManagerTitle` + `ylMpsTable`(常见再配 Tab、`ylSearchForm`);列与筛选项由 **`listRegistrationNo`** 拉取,页面侧重 **`queryListUrl`**、**`queryParams`**、列名插槽与 **`#_operate`**。
|
|
94
|
+
|
|
95
|
+
## 固定约定(全列表页通用)
|
|
96
|
+
|
|
97
|
+
| 约定 | 值 | 说明 |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| 表格 ref | `mpsTable` | 对应 `ylMpsTable` 的 `ref` |
|
|
100
|
+
| 列表标识 | `listRegistrationNo` | 字符串,与列表注册配置一致(Tab 切换时通常变更该值) |
|
|
101
|
+
| 列表接口 | `queryListUrl` | 由页面传入,组件内部 POST |
|
|
102
|
+
| 根容器 | `el-row.yl_manager_container` | 中台列表页标准外层,样式见 `common.less` |
|
|
103
|
+
| 页头 | `ylManagerTitle` | **不用** `ylTitle`、**不传** `platformType`;右上角操作用 **`#btn`** |
|
|
104
|
+
| 表格区 | `el-card` 内 **`el-tabs`(可选,表格上方)** + `ylMpsTable` | Tab 与表格**同一张** `el-card`;复杂查询再配 **base 的 `ylSearchForm`**(在 Tab 与表格之间,`:isCard="false"` `:load="false"`)+ 表格 **`hideSearch`** |
|
|
105
|
+
| Tab 位置 | `el-card` 内、`ylMpsTable` **上方** | 与前台 `yl-title_tabs` 独立卡、后台表格外 Tab 卡均不同;切换 Tab 后更新 `listRegistrationNo` / `queryParams` 并 `getList()` |
|
|
106
|
+
| 组件落位 | `ylManagerTitle`、`ylMpsTable` | 项目无则从其它中台项目**拷贝到 `components`**;`ylSearchForm` **不拷贝**,走 base 包 |
|
|
107
|
+
| 外部查询 ref | `searchFormRef` | `yl-search-form` 的 `ref`,与 `ylMpsTable` 的 `searchRefsName` 一致 |
|
|
108
|
+
| 查询 ↔ 表格 | `:search="$refs"` `searchRefsName="searchFormRef"` | 使用外部 `ylSearchForm` 且 `:hideSearch="true"` 时,**`ylMpsTable` 上必写** |
|
|
109
|
+
| 页头操作 | `ylManagerTitle` 的 `#btn` | 导出/新增等;`plain` + 一个 `primary` 实心为主流排布 |
|
|
110
|
+
| 公共 class | `yl_manager_container`、`yl_manager_title`、`w100`、`mt16` | 来自业务项目 `common.less` |
|
|
111
|
+
|
|
112
|
+
## 输出要求
|
|
113
|
+
|
|
114
|
+
## 数据与接口(禁止 mock)
|
|
115
|
+
|
|
116
|
+
- **禁止**在生成业务页面中填充 mock、演示、假数据或静态业务行(如手写 `loadData: [{ companyName: 'xxx' }]`、`reqData` 示例值、`mounted` 里写死 `total` 等)。
|
|
117
|
+
- 列表/表格:`tableData.loadData` 保持 `[]`,数据由 `ylTableSimple` / `ylMpsTable` 通过 `searchParmas.request` / `queryListUrl` **调接口**获取;`request.url` / `queryListUrl` 写项目已有 `INTERFACE.xxx`,未知时留 `''` 并注释 `// TODO: 补充接口常量`。
|
|
118
|
+
- 查询区:`searchParmas.request` 配置 `url`、`type`、`method`、`options`;有 `url` 时 `:load="true"`(或省略,默认加载),由组件触发查询。
|
|
119
|
+
- 表单详情:`reqData` / 表单 model 初始 `{}` 或字段空值;在 `created` / `mounted` 调详情接口赋值;**禁止**预填示例姓名、金额等。
|
|
120
|
+
- 下拉/枚举:`select` 的 `data` 从字典或接口加载,无数据时 `data: []`;**禁止**写死 `{ name: '待审核', code: '1' }` 类占位项(除非需求明确给定静态枚举)。
|
|
121
|
+
- 统计区 `ylDataCensus`:`:list` 由接口或 `computed` 赋值,**禁止**手写示例金额/数量。
|
|
122
|
+
- 动态行表格:`detailRows` 等初始 `[]`,由接口回显或用户操作增删。
|
|
123
|
+
- 本 skill「示例」章节的静态数据**仅供理解组件 API**;生成业务页面时**不得**照搬进 `data()`。
|
|
124
|
+
|
|
125
|
+
- 输出**一整页**可粘贴的 Vue2 单文件组件片段(`<template>` + `<script>`),按需求/原型替换标题、查询项、表头、接口地址,并删减不需要的可选区块。
|
|
126
|
+
- 只输出**一种**与当前平台且与需求匹配的布局(前台 / 中台 / 后台),不要并列多种方案。
|
|
127
|
+
- 有需求/原型时:回复中**用一两句话**说明相对默认模板保留/删减了哪些区块(如「无页级 Tab、无表格标题行」)。
|
|
128
|
+
- 中台列表:配置 **`listRegistrationNo`**、**`businessCode`**、**`queryListUrl`**、**`queryParams`**;行内操作用 **`#_operate`**;枚举/金额等列用与 **`prop` 同名** 的插槽;**禁止**手写 mock 行或本地 `loadData`。
|
|
129
|
+
- 刷新列表:分配/导入成功后调用 `this.$refs.mpsTable.getList()` 或 `updateTable()`。
|
|
130
|
+
|
|
131
|
+
## 引入与注册
|
|
132
|
+
|
|
133
|
+
> **zqyl-component-base**:公共组件须在**项目入口文件**(如 `entry_main.js`、`main.js`)按**真实组件名**逐个 `import` 并以 `Vue.component` 全局注册;样式在入口 `import 'zqyl-component-base/lib/theme-chalk/component.css'`。**禁止** `import zqylComponentBase from 'zqyl-component-base'` + `Vue.use(zqylComponentBase)` 全量注册。
|
|
134
|
+
|
|
135
|
+
生成前先检查项目入口:
|
|
136
|
+
- 入口**已**按组件名注册所需 `yl*` 组件 → 页面直接使用 `<yl-*>`,**勿**在页面 SFC 重复 import
|
|
137
|
+
- 入口**缺少**本页用到的组件 → **仅**在入口补注册缺失项(按组件名逐个 import),**勿**改页面 SFC 做局部注册,**勿**用全量 `Vue.use`
|
|
138
|
+
|
|
139
|
+
入口按组件名注册示例(仅列举本任务用到的组件,勿全量 `Vue.use`):
|
|
140
|
+
|
|
141
|
+
```js
|
|
142
|
+
import 'zqyl-component-base/lib/theme-chalk/component.css';
|
|
143
|
+
import ylSearchForm from 'zqyl-component-base/lib/ylSearchForm';
|
|
144
|
+
|
|
145
|
+
Vue.component('ylSearchForm', ylSearchForm);
|
|
146
|
+
// 项目 legacy 组件(如 ylManagerTitle)可同样 Vue.component,勿覆盖 base 同名组件
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
页面 script 只需业务逻辑与接口,模板直接使用全局组件,例如:
|
|
150
|
+
|
|
151
|
+
```vue
|
|
152
|
+
<yl-title platformType="yx" title="列表页标题" :disabledBack="true" />
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
中台 `ylManagerTitle`、`ylMpsTable` 为项目内组件,同样在入口或单页按路径注册:
|
|
156
|
+
|
|
157
|
+
```js
|
|
158
|
+
import ylManagerTitle from '@/components/ylManagerTitle.vue';
|
|
159
|
+
import ylMpsTable from '@/components/ylMpsTable/index.vue';
|
|
160
|
+
Vue.component('ylManagerTitle', ylManagerTitle);
|
|
161
|
+
Vue.component('ylMpsTable', ylMpsTable);
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 提示(ylTips,按需)
|
|
165
|
+
|
|
166
|
+
- `ylTips` 落位**须先对照原型纵向位置**,再选用下列之一;详见 `xiaoma-zqyl-tips-mid`「列表页落位(强制选型)」。
|
|
167
|
+
|
|
168
|
+
| 原型位置 | 结构顺序 |
|
|
169
|
+
| --- | --- |
|
|
170
|
+
| 标题下、查询前 | `ylTitle` → `ylTips.page-global-tip` → `ylSearchForm` → 表格卡 |
|
|
171
|
+
| **查询下、表格上**(最常见误放场景) | `ylSearchForm` → `ylTips.list-page-tip` → `el-card.yl-tabs-table`(**提示与表格卡同级**) |
|
|
172
|
+
| 表格卡内短文案 + 按钮 | `el-card.yl-tabs-table` 内 `el-row.mb16` 左侧纯文本;**不用** `ylTips` |
|
|
173
|
+
|
|
174
|
+
- **禁止**:原型显示查询区与表格为两块独立区域时,将整块 `ylTips` 放入 `el-card.yl-tabs-table` 与 `ylTableSimple` 同卡。
|
|
175
|
+
- **间距**:全局提示 `margin-top: 16px`(`page-global-tip`);查询与表格间 `margin-top: 16px`(`list-page-tip`);表单详情卡片内 `margin-bottom: 16px`(`card-inner-tip`)。详见 `xiaoma-zqyl-tips-mid`。
|
|
176
|
+
- 警示类常显用 `showCloseIcon: false`;可关闭说明监听 `@hiddenTips`。
|
|
177
|
+
|
|
178
|
+
## 列表变体选型
|
|
179
|
+
|
|
180
|
+
| 变体 | 结构要点 |
|
|
181
|
+
| --- | --- |
|
|
182
|
+
| 标准列表 | 最基础:`ylTitle` → 查询 → 表格(**无页级 Tab**) |
|
|
183
|
+
| 二级标题 | `ylTitle` → `el-card.yl-title_tabs`(页级 Tab)→ 查询 → 表格;切换 Tab 保留各 Tab 查询条件(业务层) |
|
|
184
|
+
| 统计 + 列表 | `ylTitle` → `ylDataCensus` → `ylSearchForm` → [按需 `ylTips`] → `el-card.yl-tabs-table` |
|
|
185
|
+
| 统计 + 列表 + 温馨提示 | `ylTitle` → [页级 Tab] → `ylDataCensus` → `ylSearchForm` → **`ylTips`(独立块)** → `el-card.yl-tabs-table`;提示**不在**表格卡内 |
|
|
186
|
+
| 表格带标签 | 后台:`ylTitle` → `el-card.yl-tabs-table` 内 `ylSearchForm` → `el-tabs` → 操作提示行 → `ylTableSimple`;前台:查询独立成卡(`:is-card="true"`)后接表格卡;改查询各 Tab 同步 |
|
|
187
|
+
| 双重标签 | `ylTitle` → `el-card.yl-title_tabs`(页级 Tab)→ `el-card.yl-tabs-table` 内 Tab + 查询 + 表格(二级标签支持查询) |
|
|
188
|
+
| 极简查询 | 少量 `ylSearchForm` 查询项;表格操作按钮用 `slot="rightBtn"` 与查询区同一行 → `ylTableSimple` |
|
|
189
|
+
|
|
190
|
+
### 变体注意事项
|
|
191
|
+
|
|
192
|
+
- 极简查询:整体操作(新增/导出等)放 `ylSearchForm` 的 **`rightBtn`** 插槽,与查询条件同一行;查询项宜少(通常 < 3 个,仅「查询」无「重置」)。
|
|
193
|
+
- 批量导入弹窗由独立页面模板 **`xiaoma-zqyl-import-dialog-page-mid`** 描述,列表页仅保留触发按钮。
|
|
194
|
+
- 统计区 `ylDataCensus` 的 `:list` 由接口赋值,禁止手写示例指标。
|
|
195
|
+
- 整块 `ylTips`(温馨提示等):默认落在 `ylSearchForm` 与 `el-card.yl-tabs-table` **之间**的独立块;**禁止**默认放入表格卡与 `ylTableSimple` 同模块,详见 `xiaoma-zqyl-tips-mid`。
|
|
196
|
+
|
|
197
|
+
## 页面骨架
|
|
198
|
+
|
|
199
|
+
**中台管理列表(推荐骨架)**:`el-row.yl_manager_container` → **`ylManagerTitle`**(`have-expand`)→ `el-card` → 可选 **`el-tabs`** → 可选 **`ylSearchForm`** → **`ylMpsTable`**。
|
|
200
|
+
|
|
201
|
+
```vue
|
|
202
|
+
<template>
|
|
203
|
+
<el-row class="yl_manager_container">
|
|
204
|
+
<ylManagerTitle title="中台列表页标题" have-expand />
|
|
205
|
+
<el-card>
|
|
206
|
+
<el-tabs v-model="activeName" @tab-click="handleTabClick">
|
|
207
|
+
<el-tab-pane label="Tab一" name="tab1" />
|
|
208
|
+
<el-tab-pane label="Tab二" name="tab2" />
|
|
209
|
+
</el-tabs>
|
|
210
|
+
<yl-search-form
|
|
211
|
+
ref="searchFormRef"
|
|
212
|
+
:platformType="'mps'"
|
|
213
|
+
:searchParmas="currentSearchParams"
|
|
214
|
+
:isCard="false"
|
|
215
|
+
:load="false"
|
|
216
|
+
@searchDate="getList"
|
|
217
|
+
@resetDate="handleTabClick"
|
|
218
|
+
/>
|
|
219
|
+
<ylMpsTable
|
|
220
|
+
ref="mpsTable"
|
|
221
|
+
:showIndex="true"
|
|
222
|
+
:listRegistrationNo="listRegistrationNo"
|
|
223
|
+
businessCode=""
|
|
224
|
+
auto-height
|
|
225
|
+
:hideSearch="true"
|
|
226
|
+
:height="tableHeight"
|
|
227
|
+
:initialFilter="initialFilter"
|
|
228
|
+
:queryParams="currentQueryParams"
|
|
229
|
+
:queryListUrl="queryListUrl"
|
|
230
|
+
filter-mode="every"
|
|
231
|
+
:showSelection="false"
|
|
232
|
+
:search="$refs"
|
|
233
|
+
searchRefsName="searchFormRef"
|
|
234
|
+
>
|
|
235
|
+
<template v-slot:statusField="scope">
|
|
236
|
+
<span>{{ scope.row.statusField || '--' }}</span>
|
|
237
|
+
</template>
|
|
238
|
+
<template v-slot:_operate="scope">
|
|
239
|
+
<el-button type="text" size="small" @click="handleView(scope.row)">查看</el-button>
|
|
240
|
+
</template>
|
|
241
|
+
</ylMpsTable>
|
|
242
|
+
</el-card>
|
|
243
|
+
</el-row>
|
|
244
|
+
</template>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
- 中台页头用 **`ylManagerTitle`**,勿用 `ylTitle`;页头导出/新增等放 **`#btn`**。
|
|
248
|
+
- **Tab**:切换时更新 `listRegistrationNo`、`queryListUrl`、`queryParams` / `searchParmas`,再 `getList()`。
|
|
249
|
+
- **外部查询**:`yl-search-form` 的 **`ref="searchFormRef"`**;`ylMpsTable` 设 **`:hideSearch="true"`**,并写 **`:search="$refs"` `searchRefsName="searchFormRef"`**;中台 `hideSearch` 场景须在 `@searchDate` / `@resetDate` 中同步 `queryParams` 后 `this.$refs.mpsTable.getList()`。
|
|
250
|
+
- **仅内置筛选**:可去掉 `ylSearchForm`,不传 `hideSearch`(或 `false`),由 `ylMpsTableFilter` 承担查询。
|
|
251
|
+
- 行内操作插槽名为 **`_operate`**;自定义列插槽名与接口返回的 **`camelProperty`** 一致。
|
|
252
|
+
## 中台专用组件 API
|
|
253
|
+
|
|
254
|
+
## 组件来源(中台必读)
|
|
255
|
+
|
|
256
|
+
| 组件 | 引入方式 |
|
|
257
|
+
| --- | --- |
|
|
258
|
+
| **`ylSearchForm`**(外部查询区) | 入口 `import ylSearchForm from 'zqyl-component-base/lib/ylSearchForm'` + `Vue.component('ylSearchForm', ylSearchForm)`;`platformType` 通常为 **`mps`** |
|
|
259
|
+
| **`ylManagerTitle`** | 业务项目 **`@/components/ylManagerTitle.vue`**;若项目尚无该文件,需**手动拷贝**至项目 `components` 目录后再引用 |
|
|
260
|
+
| **`ylMpsTable`** | 业务项目 **`@/components/ylMpsTable/`**(含 `ylMpsTableFilter`、`ylTableSettingDrawer` 等子目录);若项目尚无,需**手动拷贝**整个目录至项目 `components` 后再引用 |
|
|
261
|
+
|
|
262
|
+
> 中台**页面**页头默认 **`ylManagerTitle`**;**列表**主表格默认 **`ylMpsTable`**。勿默认使用 `ylTitle` / `ylTableSimple` 作页头或主列表;**仅当用户明确要求**指定组件名时,才可替换对应区块。
|
|
263
|
+
|
|
264
|
+
> 典型列表页拼装顺序:页头 → `el-card` → 可选 Tab → 可选 **`ylSearchForm`(base)** → **`ylMpsTable`(项目 components)**。
|
|
265
|
+
|
|
266
|
+
### ylManagerTitle
|
|
267
|
+
|
|
268
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
269
|
+
| --- | --- | --- | --- |
|
|
270
|
+
| `title` | String | `''` | 左侧主标题文案 |
|
|
271
|
+
| `haveExpand` | Boolean | `false` | 子应用/窄屏时显示菜单展开图标,点击调用父窗口 `packUpMenu` |
|
|
272
|
+
| `showBack` | Boolean | `false` | 显示「返回」,点击触发 `go-back` |
|
|
273
|
+
| `mode` | String | `''` | 非空时用具名插槽 `[mode]` 替代默认标题区 |
|
|
274
|
+
|
|
275
|
+
| 插槽 | 说明 |
|
|
276
|
+
| --- | --- |
|
|
277
|
+
| `btn` | 右上角固定操作区(`operate_btn`,放导出/新增等 `el-button`) |
|
|
278
|
+
| 默认插槽 | 标题行下方扩展区(次要操作或说明) |
|
|
279
|
+
| `[mode]` | `mode` 有值时渲染的自定义标题区 |
|
|
280
|
+
|
|
281
|
+
| 事件 | 说明 |
|
|
282
|
+
| --- | --- |
|
|
283
|
+
| `go-back` | `showBack` 时点击返回 |
|
|
284
|
+
|
|
285
|
+
```js
|
|
286
|
+
import ylManagerTitle from '@/components/ylManagerTitle.vue';
|
|
287
|
+
|
|
288
|
+
export default {
|
|
289
|
+
components: { ylManagerTitle },
|
|
290
|
+
};
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### ylMpsTable
|
|
294
|
+
|
|
295
|
+
内置 **ylMpsTableFilter**(可 `hideSearch` 关闭)、**动态列 `el-table`**、**分页 `Page`**、**列配置抽屉 `ylTableSettingDrawer`**。列元数据、操作符、列表数据均由组件按 **`listRegistrationNo`** 请求接口拉取;**列表 POST 地址由页面传入 `queryListUrl`**。
|
|
296
|
+
|
|
297
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
298
|
+
| --- | --- | --- | --- |
|
|
299
|
+
| `listRegistrationNo` | String | **必填** | 列表注册唯一标识(一个业务中的一个列表)|
|
|
300
|
+
| `businessCode` | String | **必填** | 业务方唯一标识;无特殊要求可传 `''` |
|
|
301
|
+
| `queryListUrl` | String | **必填** | 列表 POST 接口地址 |
|
|
302
|
+
| `queryPropertyUrl` | String | 内置默认 | 列/筛选项元数据 GET 地址,一般不改 |
|
|
303
|
+
| `queryParams` | Object | `{}` | 与列表 POST body 合并(Tab 状态、外部查询条件等) |
|
|
304
|
+
| `hideSearch` | Boolean | `false` | `true` 时隐藏内置筛选,改由页内 **`ylSearchForm`** 承担查询 |
|
|
305
|
+
| `autoHeight` | Boolean | `false` | 自动撑满父容器高度;需配合 `height`(写在组件上,透传到容器) |
|
|
306
|
+
| `height` / `maxHeight` | String | — | 非 `autoHeight` 时作为 `el-table` 高度;`autoHeight` 时作为外层容器高度 |
|
|
307
|
+
| `showSelection` | Boolean | `true` | 多选列 |
|
|
308
|
+
| `showRadio` | Boolean | `false` | 单选列(与 `current-change` 配合) |
|
|
309
|
+
| `reserveSelection` | Boolean | `false` | 多选是否跨页保留 |
|
|
310
|
+
| `showIndex` | Boolean | `false` | 序号列 |
|
|
311
|
+
| `hideSetting` | Boolean | `false` | `true` 隐藏表头列配置齿轮 |
|
|
312
|
+
| `operateWidth` | String/Number | `''` | 操作列宽度,默认约 `120px` |
|
|
313
|
+
| `columnsAttr` | Object | `{}` | 按列 `prop` 覆盖 `el-table-column` 属性(`minWidth`、`width` 等) |
|
|
314
|
+
| `assignData` | String | `''` | 行数据在 `res.data.data[assignData]` 时指定字段名 |
|
|
315
|
+
| `whetherPage` | Boolean | `true` | 是否展示底部分页 |
|
|
316
|
+
| `filterMode` | String | `'all'` | 筛选组合:`'all'` / `'any'` / `'every'` |
|
|
317
|
+
| `border` | Boolean | `true` | 表格纵向边框 |
|
|
318
|
+
| `initialFilter` | Array | `[]` | 初始筛选;项含 `operator`、`property`(驼峰字段)、`type`(1=且/全部,2=或/任意)、`value` |
|
|
319
|
+
|
|
320
|
+
未在 props 中声明的属性(如 `class`、`key`、**`search`**、**`searchRefsName`**)经 **`$attrs` 落到 `el-table`**。
|
|
321
|
+
|
|
322
|
+
与外部 **`ylSearchForm`**(`ref="searchFormRef"`)联用时,除 **`hideSearch`** 外须在 `ylMpsTable` 上写 **`:search="$refs"` `searchRefsName="searchFormRef"`**(`searchRefsName` 与查询表单 `ref` 一致)。
|
|
323
|
+
|
|
324
|
+
| 插槽 | 说明 |
|
|
325
|
+
| --- | --- |
|
|
326
|
+
| `header` | 表格上方扩展(不影响 `autoHeight` 计算时可放动态内容) |
|
|
327
|
+
| `footer` | 表格与分页之间 |
|
|
328
|
+
| `_operate` | 行内操作列,`{ row }`;无插槽则不渲染操作列 |
|
|
329
|
+
| **列名插槽** | 与动态列 `prop`(`camelProperty`)同名,如 `v-slot:reportStatus="scope"`,自定义单元格 |
|
|
330
|
+
|
|
331
|
+
| 事件 | 说明 |
|
|
332
|
+
| --- | --- |
|
|
333
|
+
| `selection-change` | 多选变化(`el-table` 透传) |
|
|
334
|
+
| `row-click` 等 | 其它 `el-table` 事件经 `v-on="$listeners"` 透传 |
|
|
335
|
+
| `current-change` | 单选行变化时 `(currentRow, oldCurrentRow)` |
|
|
336
|
+
| `list-change` | 列表请求结束,`res.data` 或 `{}` |
|
|
337
|
+
|
|
338
|
+
| ref 方法 | 说明 |
|
|
339
|
+
| --- | --- |
|
|
340
|
+
| `getList(pageData?)` | 拉取列表;分页 `@changePageSize` 传入 `{ pageCurrent, pageSize }` |
|
|
341
|
+
| `updateTable()` | 重新拉列配置并 `getList()` |
|
|
342
|
+
| `doLayout()` | 列变化后重算表格布局 |
|
|
343
|
+
|
|
344
|
+
列表 POST body 含 `filterConditions`、`orderProperty`、`orderRule`、`listRegistrationNo`、`whetherPage`、`page`/`pageRow` 及 **`queryParams`**。内置筛选条件由 `ylMpsTableFilter` 维护;使用外部 `ylSearchForm` 时,在页面 **`getList`** 里把查询项写入 **`queryParams`** 再调用 `this.$refs.mpsTable.getList()`。
|
|
345
|
+
|
|
346
|
+
```js
|
|
347
|
+
import 'zqyl-component-base/lib/theme-chalk/component.css';
|
|
348
|
+
import ylSearchForm from 'zqyl-component-base/lib/ylSearchForm';
|
|
349
|
+
import ylManagerTitle from '@/components/ylManagerTitle.vue';
|
|
350
|
+
import ylMpsTable from '@/components/ylMpsTable/index.vue';
|
|
351
|
+
Vue.component('ylSearchForm', ylSearchForm);
|
|
352
|
+
Vue.component('ylManagerTitle', ylManagerTitle);
|
|
353
|
+
Vue.component('ylMpsTable', ylMpsTable);
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
## script 最小示例(联动)
|
|
358
|
+
|
|
359
|
+
```js
|
|
360
|
+
export default {
|
|
361
|
+
data() {
|
|
362
|
+
return {
|
|
363
|
+
activeName: 'tab1',
|
|
364
|
+
listRegistrationNo: '', // 列表注册号,随 Tab 切换
|
|
365
|
+
queryListUrl: '', // 列表 POST 地址,随 Tab 切换
|
|
366
|
+
queryParams: {}, // 与列表 POST 合并;多 Tab 可用 { tab1: {}, tab2: {} }
|
|
367
|
+
initialFilter: [],
|
|
368
|
+
tableHeight: 'calc(100vh - 280px)',
|
|
369
|
+
searchParamsConfig: { /* 各 Tab 的 searchParmas */ },
|
|
370
|
+
};
|
|
371
|
+
},
|
|
372
|
+
methods: {
|
|
373
|
+
handleTabClick() {
|
|
374
|
+
// 重置当前 Tab 的 searchParmas / queryParams
|
|
375
|
+
this.getList();
|
|
376
|
+
},
|
|
377
|
+
getList() {
|
|
378
|
+
// 将 ylSearchForm.request.options 同步到 queryParams
|
|
379
|
+
this.$refs.mpsTable && this.$refs.mpsTable.getList();
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
};
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
## 注意事项
|
|
386
|
+
|
|
387
|
+
- 只生成与用户平台一致的骨架(当前为 **中台**)。
|
|
388
|
+
- **跳转类操作**(三端):优先 `ylButton`,满足不了再用 `el-link`;**落位以需求为准**,常用参考见上文「跳转类操作」— 中台 `ylManagerTitle` `#btn`,前台/后台表格卡标题行 `text-right` 靠左。
|
|
389
|
+
- 若用户**明确指定**使用前台或后台的列表页,不要使用 `ylManagerTitle` 和 `ylMpsTable`,按本 skills 前台/后台章节生成。
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
|
|
2
|
+
ZQYL Spec,_meta,,,,,,,,,false,,
|
|
3
|
+
ZQYL Spec,xiaoma-zqyl-ui-spec,Yunlian UI Spec,ZUI,"Entry point for every ZQYL Vue2 page task: decides platform (backend/front/mid) and page type, then routes to the page-template and component skills. Component skills (xiaoma-zqyl-<component>-<platform>) are read by the page skills, not picked from this menu.",,,anytime,,,false,,
|
|
4
|
+
ZQYL Spec,xiaoma-zqyl-list-page-backend,List Page (backend),ZLB,Backend list page skeleton: ylTitle + ylSearchForm + ylTableSimple plus stat/tab/minimal-query variants.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
5
|
+
ZQYL Spec,xiaoma-zqyl-list-page-mid,List Page (mid),ZLM,Mid-platform list page skeleton: ylManagerTitle + ylMpsTable plus variant scenarios.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
6
|
+
ZQYL Spec,xiaoma-zqyl-list-page-front,List Page (front),ZLF,Front portal list page skeleton: ylTitle + ylSearchForm + ylTableSimple plus variant scenarios.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
7
|
+
ZQYL Spec,xiaoma-zqyl-form-detail-page-backend,Form Detail Page (backend),ZFB,Backend create/edit/view/approve page skeleton: ylFormEditor / ylFormView field blocks plus footer actions.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
8
|
+
ZQYL Spec,xiaoma-zqyl-form-detail-page-mid,Form Detail Page (mid),ZFM,Mid-platform create/edit/view/approve page skeleton: ylFormEditor / ylFormView field blocks plus footer actions.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
9
|
+
ZQYL Spec,xiaoma-zqyl-form-detail-page-front,Form Detail Page (front),ZFF,Front portal create/edit/view/approve page skeleton: ylFormEditor / ylFormView field blocks plus footer actions.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
10
|
+
ZQYL Spec,xiaoma-zqyl-feedback-page-backend,Feedback Page (backend),ZKB,Backend result / empty-state / error page skeleton.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
11
|
+
ZQYL Spec,xiaoma-zqyl-feedback-page-mid,Feedback Page (mid),ZKM,Mid-platform result / empty-state / error page skeleton.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
12
|
+
ZQYL Spec,xiaoma-zqyl-feedback-page-front,Feedback Page (front),ZKF,Front portal result / empty-state / error page skeleton.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
13
|
+
ZQYL Spec,xiaoma-zqyl-import-dialog-page-backend,Import Dialog (backend),ZIB,Backend batch-import dialog skeleton: template download + upload + result feedback.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
14
|
+
ZQYL Spec,xiaoma-zqyl-import-dialog-page-mid,Import Dialog (mid),ZIM,Mid-platform batch-import dialog skeleton: template download + upload + result feedback.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
15
|
+
ZQYL Spec,xiaoma-zqyl-import-dialog-page-front,Import Dialog (front),ZIF,Front portal batch-import dialog skeleton: template download + upload + result feedback.,,,4-implementation,xiaoma-zqyl-ui-spec,,false,,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
code: zqyl
|
|
2
|
+
name: "ZQYL Spec (中企云链前端规范)"
|
|
3
|
+
description: "Yunlian UI spec skills for ZQYL Vue2 projects: one interaction/visual spec entry point plus page-template and component skills for the backend / front / mid platforms"
|
|
4
|
+
default_selected: false # Org-specific frontend spec pack, opt-in
|
|
5
|
+
|
|
6
|
+
# Variables from Core Config inserted:
|
|
7
|
+
## user_name
|
|
8
|
+
## communication_language
|
|
9
|
+
## document_output_language
|
|
10
|
+
## output_folder
|
|
11
|
+
|
|
12
|
+
# All three platform packs install together (96 skills), so the entry skill has to
|
|
13
|
+
# know which one this repo targets. Without a recorded answer an agent can only guess
|
|
14
|
+
# from the repo name — and the strongest lexical signal is misleading (a repo called
|
|
15
|
+
# zqyl-manager collides with the mid-only skill xiaoma-zqyl-manager-title-mid).
|
|
16
|
+
# xiaoma-zqyl-ui-spec reads this key first, before any name-based inference.
|
|
17
|
+
platform:
|
|
18
|
+
prompt:
|
|
19
|
+
- "Which ZQYL platform does this repo target?"
|
|
20
|
+
- "Pins page/component skill selection; pick 'all' for a repo that spans platforms."
|
|
21
|
+
default: "all"
|
|
22
|
+
result: "{value}"
|
|
23
|
+
single-select:
|
|
24
|
+
- value: "backend"
|
|
25
|
+
label: "backend 后台管理端 (zqyl-manager 等; ylTitle + ylTableSimple)"
|
|
26
|
+
- value: "mid"
|
|
27
|
+
label: "mid 中台 (mps-main 等; ylManagerTitle + ylMpsTable)"
|
|
28
|
+
- value: "front"
|
|
29
|
+
label: "front 前台门户 (zqyl-crclopen 等; ylTitle + ylTableSimple)"
|
|
30
|
+
- value: "all"
|
|
31
|
+
label: "all 不固定 — 每次由 xiaoma-zqyl-ui-spec 判定"
|
|
32
|
+
|
|
33
|
+
# Note: this module ships reference-only skills (specs, page skeletons, component
|
|
34
|
+
# APIs). It generates no artifacts of its own — code lands wherever the user's
|
|
35
|
+
# Vue2 project already keeps pages — so it declares no output folder and no
|
|
36
|
+
# `directories:` to create at install time.
|
|
37
|
+
|
|
38
|
+
# No agents: these are reference skills consumed by whichever agent is active.
|