@brms/ai-skills 0.1.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/README.md +256 -0
- package/bin/brms-skills.mjs +411 -0
- package/package.json +30 -0
- package/skills/brms-prototype-generator/SKILL.md +129 -0
- package/skills/brms-prototype-generator/agents/openai.yaml +7 -0
- package/skills/brms-prototype-generator/examples/few-shot-examples.md +577 -0
- package/skills/brms-prototype-generator/references/01-list-query.md +444 -0
- package/skills/brms-prototype-generator/references/02-form-entry.md +129 -0
- package/skills/brms-prototype-generator/references/03-detail-display.md +125 -0
- package/skills/brms-prototype-generator/references/04-composite-page-package.md +339 -0
- package/skills/brms-prototype-generator/references/05-dialog-patterns.md +113 -0
- package/skills/brms-prototype-generator/references/06-backend-request-patterns.md +118 -0
- package/skills/brms-prototype-generator/references/resource-index.md +46 -0
- package/skills/brms-prototype-generator/references/system-prompt.md +242 -0
- package/skills/brms-prototype-generator/scripts/analyze-doc.mjs +554 -0
- package/skills/brms-prototype-generator/scripts/check-project.mjs +228 -0
- package/skills/brms-prototype-generator/scripts/discover-targets.mjs +158 -0
- package/skills/brms-prototype-generator/scripts/install-codex.mjs +74 -0
- package/skills/brms-prototype-generator/scripts/plan-pages.mjs +390 -0
- package/skills/brms-prototype-generator/scripts/validate-generated.mjs +838 -0
- package/skills/brms-prototype-generator/templates/user-input-template.md +182 -0
- package/skills/brms-vxe-plus-developer/SKILL.md +105 -0
- package/skills/brms-vxe-plus-developer/agents/openai.yaml +7 -0
- package/skills/brms-vxe-plus-developer/references/prototype-to-real.md +54 -0
- package/skills/brms-vxe-plus-developer/references/real-base-development.md +110 -0
- package/skills/brms-vxe-plus-developer/references/resource-index.md +43 -0
- package/skills/brms-vxe-plus-developer/references/review-checklist.md +49 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/01-mental-model.md +150 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/02-vxe-plus-form.md +302 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/03-vxe-plus-table.md +253 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/04-example-map.md +488 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/05-request-and-eiinfo.md +170 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/90-anti-patterns.md +137 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/README.md +43 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/README.md +21 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/A1/P0/A1P01601.vue +483 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/A1/P1/A1P11011.vue +444 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AB/BP/ABBP0201.vue +1648 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AM/AF/component/AMAF0601/Bidding/formConfig.ts +228 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/AM/AF/component/AMAF0601/Record/columns.ts +110 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/BMBR01.vue +130 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/component/BMBR01/columns.ts +94 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/BM/BR/component/BMBR01/formConfig.ts +108 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Change/formConfig.ts +123 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Change/index.vue +103 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Clause/columns.ts +48 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Clause/index.vue +202 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Correcte/formConfig.ts +117 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Correcte/index.vue +103 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/Payment/formConfig.ts +90 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/Payment/index.vue +42 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/columns.ts +376 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Pay/index.vue +619 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Domestic/formConfig.ts +73 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Domestic/index.vue +47 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Foreign/formConfig.ts +141 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/Foreign/index.vue +42 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/columns.ts +123 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/Settle/index.vue +593 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Explain/index.vue +68 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Fee/columns.ts +150 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Fee/index.vue +235 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Files/columns.ts +63 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Files/index.vue +117 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Goods/columns.ts +327 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Goods/index.vue +790 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve/formConfig.ts +341 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve/index.vue +63 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve2/formConfig.ts +232 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Approve2/index.vue +27 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Diff/columns.ts +46 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/Diff/index.vue +92 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/formConfig.ts +979 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Base/index.vue +62 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Other/formConfig.ts +179 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Other/index.vue +140 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Sign/formConfig.ts +118 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/Sign/index.vue +44 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Main/index.vue +168 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/Major/formConfig.ts +257 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/Major/index.vue +47 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/columns.ts +256 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Party/index.vue +738 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Price/formConfig.ts +174 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Price/index.vue +51 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/PM/PC/component/PMPC0101/Top/index.vue +924 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/SM/SW/SMSW0101.vue +567 -0
- package/skills/brms-vxe-plus-developer/references/vxe-plus-knowledge/sources/project/base/src/views/demo/index.vue +448 -0
- package/skills/brms-vxe-plus-developer/scripts/check-project.mjs +259 -0
- package/skills/brms-vxe-plus-developer/scripts/check-vxe-plus-page.mjs +137 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# 页面生成请求模板
|
|
2
|
+
|
|
3
|
+
产品经理填写此模板后,复制内容在 Claude Code 中发起对话即可生成原型页面。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 快速使用
|
|
8
|
+
|
|
9
|
+
1. 复制下方模板
|
|
10
|
+
2. 填入你的业务需求
|
|
11
|
+
3. 在 Claude Code 中粘贴,发送
|
|
12
|
+
4. AI 生成后优先运行目标项目对应的 `pnpm --filter <target-package-name> exec vue-tsc --noEmit --pretty false` 验证
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 模板
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
请根据以下需求生成 BRMS 原型页面:
|
|
20
|
+
|
|
21
|
+
### 页面类型
|
|
22
|
+
[ ] 列表查询页(搜索 + 表格)
|
|
23
|
+
[ ] 表单录入页(新增/编辑表单)
|
|
24
|
+
[ ] 详情展示页(只读查看 + 子表)
|
|
25
|
+
[ ] 组合页面包(多个页面 + 页面间跳转)
|
|
26
|
+
|
|
27
|
+
### 生成方式(组合页面包可选;不填则由 AI 分析后询问)
|
|
28
|
+
[ ] 整包一次性生成(1-3 个页面推荐)
|
|
29
|
+
[ ] 总控逐页顺序生成(页面较多、希望更稳)
|
|
30
|
+
[ ] 总控 + 子智能体逐页生成(4 个以上页面且工具支持子智能体时推荐)
|
|
31
|
+
|
|
32
|
+
### 基本信息
|
|
33
|
+
- 页面编码:<6位大写字母,如 FMXR01>
|
|
34
|
+
- 页面标题(中文):<如 汇率管理>
|
|
35
|
+
- 所属菜单(中文):<如 财务管理>
|
|
36
|
+
- 页面包编码前缀(组合页面包填写):<如 MNRG,生成 MNRG01、MNRG02...>
|
|
37
|
+
- 页面包名称(组合页面包填写):<如 矿权管理>
|
|
38
|
+
|
|
39
|
+
### 后端服务
|
|
40
|
+
- 服务名:<如 FMXR01>
|
|
41
|
+
- 查询方法:query
|
|
42
|
+
- 新增方法:add(如需要)
|
|
43
|
+
- 更新方法:save(如需要)
|
|
44
|
+
- 删除方法:delete(如需要)
|
|
45
|
+
|
|
46
|
+
### 查询条件(列表页)
|
|
47
|
+
| 字段名 | 显示名 | 类型 | 字典/说明 |
|
|
48
|
+
|--------|--------|------|-----------|
|
|
49
|
+
| <fieldName> | <显示名> | input/select/date/dateRange | <字典编码或留空> |
|
|
50
|
+
| ... | ... | ... | ... |
|
|
51
|
+
|
|
52
|
+
### 表格列(列表页)或 表单字段(录入页)
|
|
53
|
+
| 字段名 | 显示名 | 类型 | 是否可编辑 | 字典/说明 |
|
|
54
|
+
|--------|--------|------|-----------|-----------|
|
|
55
|
+
| <fieldName> | <显示名> | text/select/date/input | Yes/No | <字典编码或留空> |
|
|
56
|
+
| ... | ... | ... | ... | ... |
|
|
57
|
+
|
|
58
|
+
### 工具栏按钮(列表页)
|
|
59
|
+
[ ] 新增按钮
|
|
60
|
+
[ ] 删除按钮(需勾选行)
|
|
61
|
+
[ ] 导出按钮
|
|
62
|
+
[ ] 其他:<描述>
|
|
63
|
+
|
|
64
|
+
### 特殊需求
|
|
65
|
+
[ ] Tab 切换多表格(请描述每个 tab:<tab1名称, tab2名称>)
|
|
66
|
+
[ ] 级联下拉(请描述级联关系:<大类→中类→小类>)
|
|
67
|
+
[ ] 附件上传(请描述附件类型:<如 A1P001>)
|
|
68
|
+
[ ] 行内编辑
|
|
69
|
+
[ ] 审批操作
|
|
70
|
+
[ ] 其他:<描述>
|
|
71
|
+
|
|
72
|
+
### 组合页面包清单(选择“组合页面包”时填写)
|
|
73
|
+
请按功能模块列出每个页面。AI 会根据清单拆分页面、生成菜单和跳转关系。
|
|
74
|
+
|
|
75
|
+
| 序号 | 页面标题 | 页面类型 | 主要区域 | 主要操作 | 跳转关系 |
|
|
76
|
+
|------|----------|----------|----------|----------|----------|
|
|
77
|
+
| 1 | <区域公司结构管理> | 主从维护页 | <区域公司列表、公司列表、编辑弹窗> | <新增、编辑、删除、查看下属公司> | <无> |
|
|
78
|
+
| 2 | <矿权项目维护> | 列表维护页 | <筛选区、项目列表、编辑弹窗> | <新增、编辑、删除、查看矿权> | <查看矿权 -> 矿权信息维护> |
|
|
79
|
+
|
|
80
|
+
### 共享数据/枚举(组合页面包可选)
|
|
81
|
+
| 数据名称 | 字段 | 说明 |
|
|
82
|
+
|----------|------|------|
|
|
83
|
+
| <区域公司> | <name> | <固定6个区域公司> |
|
|
84
|
+
| <公司> | <name, regionName> | <公司隶属于区域公司> |
|
|
85
|
+
|
|
86
|
+
### 页面间导航关系(组合页面包可选)
|
|
87
|
+
文本树:
|
|
88
|
+
首页/工作台
|
|
89
|
+
├── <页面A>
|
|
90
|
+
│ └── <页面B(从页面A带参数跳转)>
|
|
91
|
+
└── <页面C>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 填写示例
|
|
97
|
+
|
|
98
|
+
以下是一个已经填好的示例,供参考格式:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
请根据以下需求生成 BRMS 原型页面:
|
|
102
|
+
|
|
103
|
+
### 页面类型
|
|
104
|
+
[x] 列表查询页(搜索 + 表格)
|
|
105
|
+
|
|
106
|
+
### 基本信息
|
|
107
|
+
- 页面编码:FMXR01
|
|
108
|
+
- 页面标题(中文):汇率管理
|
|
109
|
+
- 所属菜单(中文):财务管理
|
|
110
|
+
|
|
111
|
+
### 后端服务
|
|
112
|
+
- 服务名:FMXR01
|
|
113
|
+
- 查询方法:query
|
|
114
|
+
- 新增方法:add
|
|
115
|
+
- 更新方法:save
|
|
116
|
+
- 删除方法:delete
|
|
117
|
+
|
|
118
|
+
### 查询条件(列表页)
|
|
119
|
+
| 字段名 | 显示名 | 类型 | 字典/说明 |
|
|
120
|
+
|--------|--------|------|-----------|
|
|
121
|
+
| currencyCodeLike | 币种代码 | input | |
|
|
122
|
+
| effectiveDate | 生效日期 | dateRange | |
|
|
123
|
+
|
|
124
|
+
### 表格列(列表页)
|
|
125
|
+
| 字段名 | 显示名 | 类型 | 是否可编辑 | 字典/说明 |
|
|
126
|
+
|--------|--------|------|-----------|-----------|
|
|
127
|
+
| currencyCode | 币种代码 | text | Yes | |
|
|
128
|
+
| currencyName | 币种名称 | text | Yes | |
|
|
129
|
+
| exchangeRate | 汇率 | text | Yes | |
|
|
130
|
+
| effectiveDate | 生效日期 | date | Yes | |
|
|
131
|
+
|
|
132
|
+
### 工具栏按钮(列表页)
|
|
133
|
+
[x] 新增按钮
|
|
134
|
+
[x] 删除按钮(需勾选行)
|
|
135
|
+
|
|
136
|
+
### 特殊需求
|
|
137
|
+
无
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 组合页面包填写示例
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
请根据以下需求生成 BRMS 原型页面:
|
|
146
|
+
|
|
147
|
+
### 页面类型
|
|
148
|
+
[x] 组合页面包(多个页面 + 页面间跳转)
|
|
149
|
+
|
|
150
|
+
### 生成方式(组合页面包可选;不填则由 AI 分析后询问)
|
|
151
|
+
[ ] 整包一次性生成(1-3 个页面推荐)
|
|
152
|
+
[ ] 总控逐页顺序生成(页面较多、希望更稳)
|
|
153
|
+
[x] 总控 + 子智能体逐页生成(4 个以上页面且工具支持子智能体时推荐)
|
|
154
|
+
|
|
155
|
+
### 基本信息
|
|
156
|
+
- 页面包编码前缀:MNRG
|
|
157
|
+
- 页面包名称:矿权管理
|
|
158
|
+
- 所属菜单(中文):矿权管理
|
|
159
|
+
|
|
160
|
+
### 组合页面包清单
|
|
161
|
+
| 序号 | 页面标题 | 页面类型 | 主要区域 | 主要操作 | 跳转关系 |
|
|
162
|
+
|------|----------|----------|----------|----------|----------|
|
|
163
|
+
| 1 | 区域公司结构管理 | 主从维护页 | 区域公司列表、公司列表、公司编辑弹窗 | 新增公司、编辑公司、删除公司、查看下属公司 | 无 |
|
|
164
|
+
| 2 | 矿权项目维护 | 列表维护页 | 项目列表、项目编辑弹窗 | 新增项目、编辑项目、删除项目、查看矿权 | 查看矿权 -> 矿权信息维护 |
|
|
165
|
+
| 3 | 矿权信息维护 | 列表维护页 | 筛选区、矿权列表、合计行、矿权编辑弹窗、附件弹窗 | 新增矿权、编辑矿权、删除矿权、上传附件、查看附件 | 附件管理 -> 项目资料上传;任务管理 -> 矿权任务管理 |
|
|
166
|
+
|
|
167
|
+
### 共享数据/枚举
|
|
168
|
+
| 数据名称 | 字段 | 说明 |
|
|
169
|
+
|----------|------|------|
|
|
170
|
+
| 区域公司 | regionName | 固定6个:BLUE HILLS、KOOLANOOKA、ROBINSON RANGE、JACK HILLS、WELD RANGE、CROSSLANDS |
|
|
171
|
+
| 公司 | companyName, regionName | 公司隶属于区域公司 |
|
|
172
|
+
| 项目 | projectName, projectCode, regionName, companyName | 项目隶属于公司 |
|
|
173
|
+
|
|
174
|
+
### 页面间导航关系
|
|
175
|
+
首页/工作台
|
|
176
|
+
├── 矿权项目维护
|
|
177
|
+
│ └── 矿权信息维护(项目详情页跳转)
|
|
178
|
+
│ └── 项目资料上传(附件管理)
|
|
179
|
+
│ └── 矿权任务管理(任务管理)
|
|
180
|
+
└── 矿权信息综合查询
|
|
181
|
+
└── 矿权详情(查询结果跳转)
|
|
182
|
+
```
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brms-vxe-plus-developer
|
|
3
|
+
description: Real BRMS project/* Vue development with VxePlusForm, VxePlusTable, EiInfo, and local business examples. Use when Codex/Claude needs to implement or modify real BRMS pages under project/*/src/views, convert prototype pages into production-style views, wire explicit backend EiInfo service methods, review VxePlus usage, fix VxePlusForm/VxePlusTable bugs, or help new developers use AI for BRMS real development.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BRMS VxePlus Developer
|
|
7
|
+
|
|
8
|
+
Use this skill for real development in a confirmed `project/*/src/views` application, not mock-first prototype generation.
|
|
9
|
+
|
|
10
|
+
This skill is downstream of `brms-prototype-generator`: prototypes may provide page structure and mock behavior, but this skill owns real target-project view implementation, EiInfo wiring, VxePlus usage, and delivery review.
|
|
11
|
+
|
|
12
|
+
## Project Check
|
|
13
|
+
|
|
14
|
+
Before writing or reviewing VxePlus code in any repo, run:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
node .claude/skills/brms-vxe-plus-developer/scripts/check-project.mjs --repo-root . --format both
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
If the user already named a target project, include it:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
node .claude/skills/brms-vxe-plus-developer/scripts/check-project.mjs --repo-root . --target-project project/<name> --format both
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Stop on `Blockers`. Treat `Warnings` as local context to inspect, not automatic failure. BRMS repos may use different project names (`project/base`, `project/bmnc`, etc.), route styles, and documentation layouts.
|
|
27
|
+
If the blocker says multiple project candidates were found, list the candidates and ask the user to choose the target project before editing or generating code.
|
|
28
|
+
|
|
29
|
+
## Core Rule
|
|
30
|
+
|
|
31
|
+
Before writing or reviewing VxePlus code, use the packaged knowledge-base entry:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
references/vxe-plus-knowledge/README.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Then load only the needed knowledge files:
|
|
38
|
+
|
|
39
|
+
- `01-mental-model.md`: page type and component split.
|
|
40
|
+
- `02-vxe-plus-form.md`: `VxePlusForm`, renderers, validation, DatePicker pitfalls.
|
|
41
|
+
- `03-vxe-plus-table.md`: `VxePlusTable`, columns, editable grids, toolbar buttons.
|
|
42
|
+
- `04-example-map.md`: embedded code examples and offline `sources/project/base/src/views` examples.
|
|
43
|
+
- `05-request-and-eiinfo.md`: EiInfo query/save/transform rules.
|
|
44
|
+
- `90-anti-patterns.md`: final hard-stop checks.
|
|
45
|
+
|
|
46
|
+
If the business project also has `doc/components/vxe-plus-knowledge`, use it as a project-local supplement. If it is missing, use local docs such as `doc/vibeCoding/README.md`, `libs/components/src`, and neighboring pages under the confirmed `project/*/src/views` as supplement.
|
|
47
|
+
|
|
48
|
+
Do not load every source example by default. Search within the confirmed project's `src/views`, plus packaged examples under `references/vxe-plus-knowledge/sources/project/*/src/views`, by page pattern, component name, service name, renderer name, or business module.
|
|
49
|
+
|
|
50
|
+
## Workflow
|
|
51
|
+
|
|
52
|
+
1. Classify the task:
|
|
53
|
+
- new real project page;
|
|
54
|
+
- modify existing project page;
|
|
55
|
+
- convert prototype to real project page;
|
|
56
|
+
- wire backend EiInfo interfaces;
|
|
57
|
+
- fix VxePlus behavior;
|
|
58
|
+
- review generated or newcomer code.
|
|
59
|
+
|
|
60
|
+
2. Read the corresponding reference:
|
|
61
|
+
- resource selection: `references/resource-index.md`;
|
|
62
|
+
- real project implementation: `references/real-base-development.md`;
|
|
63
|
+
- prototype-to-real migration: `references/prototype-to-real.md`;
|
|
64
|
+
- review or handoff checks: `references/review-checklist.md`.
|
|
65
|
+
|
|
66
|
+
3. Inspect local code before editing:
|
|
67
|
+
- target file or planned target path under the confirmed `project/*/src/views`;
|
|
68
|
+
- neighboring pages in the same module;
|
|
69
|
+
- relevant embedded examples under `references/vxe-plus-knowledge/sources/project/*/src/views` when present;
|
|
70
|
+
- relevant component source under `libs/components/src` when docs are missing or unclear;
|
|
71
|
+
- explicit service/method/interface notes from the user or product document.
|
|
72
|
+
|
|
73
|
+
4. Implement conservatively:
|
|
74
|
+
- follow local module style;
|
|
75
|
+
- prefer direct `itemRender` / `editRender` component contracts for new files;
|
|
76
|
+
- do not introduce new `useForm` helper layers;
|
|
77
|
+
- keep mock logic only when the user explicitly asks for mock behavior;
|
|
78
|
+
- use real `EiCommunicator.send` only when service and method names are explicit.
|
|
79
|
+
|
|
80
|
+
5. Validate:
|
|
81
|
+
- run `node .claude/skills/brms-vxe-plus-developer/scripts/check-vxe-plus-page.mjs <files> --repo-root .` for modified Vue/TS files;
|
|
82
|
+
- run the narrowest available type/lint command if practical;
|
|
83
|
+
- report anything not run.
|
|
84
|
+
|
|
85
|
+
## Hard Rules
|
|
86
|
+
|
|
87
|
+
- `VxePlusForm` uses `:form-options`, never `:form-config`.
|
|
88
|
+
- `VxePlusForm` required validation must live in form-level `rules`, for example `rules: { portCode: [{ required: true, message: '请输入港口代码' }] }`.
|
|
89
|
+
- Do not use `titlePrefix: { content: '必填' }` as validation; it only decorates the title.
|
|
90
|
+
- Do not put `required: true` on `formOptions.items`; item-level `required` is ineffective in this wrapper.
|
|
91
|
+
- `VxePlusTable` query config uses `:form-config`.
|
|
92
|
+
- Dialog forms also use `VxePlusForm :form-options`.
|
|
93
|
+
- New generated real pages should not import `useForm()` solely to get helper renderers.
|
|
94
|
+
- `VxeDatePicker type="month"` must not use `valueFormat: 'MM'`; use `valueFormat: 'yyyy-MM'` plus `labelFormat: 'MM'`.
|
|
95
|
+
- Table actions belong in `toolbarButtons` / `toolbarButtonClick` unless the existing page has a clear different pattern.
|
|
96
|
+
- Do not add operation/action columns by default.
|
|
97
|
+
- Do not generate REST `http.*` calls when the interface is EiInfo.
|
|
98
|
+
- Do not add compatibility code for old data unless explicitly requested.
|
|
99
|
+
- For attachment upload/view, use the shared project flow such as `useFileUpload().openFileBFSS0001` when available.
|
|
100
|
+
|
|
101
|
+
## Relationship To Prototype Skill
|
|
102
|
+
|
|
103
|
+
Use `brms-prototype-generator` when the task is to create mock-first prototype pages from product Markdown.
|
|
104
|
+
|
|
105
|
+
Use this skill when the task is to make real `project/*` development deliverable: connect interfaces, align with existing views code, fix component usage, or prepare newcomer handoff-ready code.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "BRMS VxePlus Developer"
|
|
3
|
+
short_description: "Develop real BRMS project views with VxePlus and EiInfo"
|
|
4
|
+
default_prompt: "Use $brms-vxe-plus-developer to check the BRMS project shape, then turn requirements or prototype pages into real project/* Vue pages using VxePlusForm, VxePlusTable, EiInfo requests, and local examples."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Prototype To Real BRMS Page
|
|
2
|
+
|
|
3
|
+
Use this reference when converting pages generated by `brms-prototype-generator` into real code under the confirmed `project/*`.
|
|
4
|
+
|
|
5
|
+
## Conversion Order
|
|
6
|
+
|
|
7
|
+
1. Read the prototype page and generation summary, if available.
|
|
8
|
+
2. Identify mock markers:
|
|
9
|
+
- `@brms-mock-data`
|
|
10
|
+
- `@brms-mock-handler`
|
|
11
|
+
- TODO backend toasts
|
|
12
|
+
3. Read product/interface notes for explicit service and method names.
|
|
13
|
+
4. Select similar real examples from `references/vxe-plus-knowledge/sources/project/base/src/views`.
|
|
14
|
+
5. Replace mock-only behavior with real `serviceConfig`, `transformParams`, `transformResponse`, or explicit `EiInfo`.
|
|
15
|
+
6. Keep undocumented interactions local/mock only if the user asks for staged delivery.
|
|
16
|
+
7. Run the skill checker and any practical type/lint command.
|
|
17
|
+
|
|
18
|
+
## What To Preserve
|
|
19
|
+
|
|
20
|
+
- Page intent, query fields, result fields, toolbar actions, dialogs, navigation edges.
|
|
21
|
+
- Existing route/query contracts from the prototype when they match the desired real workflow.
|
|
22
|
+
- Clear mock markers until the corresponding behavior is truly wired.
|
|
23
|
+
|
|
24
|
+
## What To Replace
|
|
25
|
+
|
|
26
|
+
- Local mock query arrays once `serviceName.queryMethod` is explicit.
|
|
27
|
+
- Local save/delete handlers once corresponding service methods are explicit.
|
|
28
|
+
- Prototype-only layout or placeholder components that do not exist in the confirmed target project.
|
|
29
|
+
- Any generated dialog form using `:form-config`; real `VxePlusForm` uses `:form-options`.
|
|
30
|
+
|
|
31
|
+
## Request Wiring Rules
|
|
32
|
+
|
|
33
|
+
Use `VxePlusTable :service-config` for table queries when the backend returns a table block matching the table `id`.
|
|
34
|
+
|
|
35
|
+
Use explicit `EiCommunicator.send` for actions that are not a simple table query:
|
|
36
|
+
|
|
37
|
+
- confirm/submit/approve;
|
|
38
|
+
- batch delete with custom block names;
|
|
39
|
+
- save mixed master-detail data;
|
|
40
|
+
- export/queryExport;
|
|
41
|
+
- attachment operations.
|
|
42
|
+
|
|
43
|
+
Do not infer method names. If the prototype or product document says only "save" generically and does not name a service/method, ask or keep a marked TODO.
|
|
44
|
+
|
|
45
|
+
## Handoff To New Developers
|
|
46
|
+
|
|
47
|
+
When finishing a prototype-to-real conversion, report:
|
|
48
|
+
|
|
49
|
+
- files changed;
|
|
50
|
+
- services/methods wired;
|
|
51
|
+
- mock markers removed or remaining;
|
|
52
|
+
- VxePlus knowledge-base examples used;
|
|
53
|
+
- validation command output;
|
|
54
|
+
- follow-up interface questions.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Real BRMS Project Development Workflow
|
|
2
|
+
|
|
3
|
+
Use this reference for real development under the user-confirmed `project/*/src/views`.
|
|
4
|
+
|
|
5
|
+
## Inputs To Collect
|
|
6
|
+
|
|
7
|
+
- Target project plus page code and path, for example `project/bmnc` and `BMBR01 -> project/bmnc/src/views/BM/BR/BMBR01.vue`.
|
|
8
|
+
- Whether this is a new page, existing page change, or prototype conversion.
|
|
9
|
+
- Backend service names and method names, if real interface wiring is required.
|
|
10
|
+
- Neighboring module examples and any similar page code.
|
|
11
|
+
|
|
12
|
+
## Page Discovery
|
|
13
|
+
|
|
14
|
+
For a page code with 6+ characters:
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
KCKZ01 -> project/<name>/src/views/KC/KZ/KCKZ01.vue
|
|
18
|
+
A1P101 -> project/<name>/src/views/A1/P1/A1P101.vue
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Replace `project/<name>` with the confirmed target project, such as `project/bmnc`.
|
|
22
|
+
|
|
23
|
+
Before editing, inspect:
|
|
24
|
+
|
|
25
|
+
- the target file if it exists;
|
|
26
|
+
- sibling pages in the same folder;
|
|
27
|
+
- same module `component/<PAGE_CODE>/formConfig.ts` or `columns.ts` if present;
|
|
28
|
+
- relevant packaged examples in `references/vxe-plus-knowledge/sources/project/base/src/views`.
|
|
29
|
+
|
|
30
|
+
## Implementation Defaults
|
|
31
|
+
|
|
32
|
+
- New simple query pages use a query `BxContainer + VxePlusForm` and a result `BxContainer + VxePlusTable`.
|
|
33
|
+
- Query and reset live in the query container.
|
|
34
|
+
- Table add/save/delete live in `VxePlusTable :toolbar-buttons`.
|
|
35
|
+
- Use direct renderer configs in new code:
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
{ field: 'name', title: '名称', itemRender: { name: 'VxeInput' } }
|
|
39
|
+
{ field: 'status', title: '状态', itemRender: { name: 'formSelect', props: { codeSet: 'xxx' } } }
|
|
40
|
+
{ field: 'name', title: '名称', editRender: { name: 'VxeInput' } }
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Do not create a new helper wrapper around renderers.
|
|
44
|
+
|
|
45
|
+
## Existing Helper Policy
|
|
46
|
+
|
|
47
|
+
Many old pages use `useForm()` / `useTable()` helpers. Treat them as historical code vocabulary:
|
|
48
|
+
|
|
49
|
+
- Editing a file that already uses helpers: local consistency is acceptable.
|
|
50
|
+
- Creating a new file or large new block: prefer direct `itemRender` / `editRender` contracts from `references/vxe-plus-knowledge`.
|
|
51
|
+
- Do not refactor existing helper-heavy pages just to remove helpers unless the user asks.
|
|
52
|
+
|
|
53
|
+
## EiInfo Requests
|
|
54
|
+
|
|
55
|
+
Read `references/vxe-plus-knowledge/05-request-and-eiinfo.md` before wiring requests.
|
|
56
|
+
|
|
57
|
+
Use `serviceConfig` for ordinary table query:
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
const tableFormConfig = reactive({
|
|
61
|
+
id: 'inqu_status',
|
|
62
|
+
data: formData,
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
const serviceConfig = reactive({
|
|
66
|
+
serviceName: 'SERVICE01',
|
|
67
|
+
queryMethod: 'query',
|
|
68
|
+
})
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Use `transformParams(formEi)` to add attrs, blocks, or special fields without discarding default form/paging/sort params.
|
|
72
|
+
|
|
73
|
+
Use explicit `EiInfo` construction for complex save/confirm/delete:
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
const ei = new EiInfo()
|
|
77
|
+
ei.addBlock(EiBlock.build('result', rows))
|
|
78
|
+
ei.addBlock(EiBlock.build('inqu', [formData]))
|
|
79
|
+
await EiCommunicator.send('SERVICE01', 'save', ei)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Business Example Selection
|
|
83
|
+
|
|
84
|
+
Use the offline examples under:
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
references/vxe-plus-knowledge/sources/project/base/src/views
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Start from:
|
|
91
|
+
|
|
92
|
+
- `BM/BR/BMBR01.vue` for standard query pages.
|
|
93
|
+
- `SM/SW/SMSW0101.vue` for direct renderer configs, `transformParams`, and selected-row submit.
|
|
94
|
+
- `A1/P0/A1P01601.vue` for editable table patterns.
|
|
95
|
+
- `AM/AF/component/AMAF0601` for dialog selection and complex form/table configs.
|
|
96
|
+
- `PM/PC/component/PMPC0101` only for real complex detail pages.
|
|
97
|
+
|
|
98
|
+
## DatePicker Guard
|
|
99
|
+
|
|
100
|
+
For month pickers:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
// bad
|
|
104
|
+
{ type: 'month', valueFormat: 'MM' }
|
|
105
|
+
|
|
106
|
+
// good
|
|
107
|
+
{ type: 'month', valueFormat: 'yyyy-MM', labelFormat: 'MM' }
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Reason: pure month strings cannot be parsed back into valid Date values by `xe-utils`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Resource Index
|
|
2
|
+
|
|
3
|
+
Load only the reference needed for the current task.
|
|
4
|
+
|
|
5
|
+
## Always Start Here
|
|
6
|
+
|
|
7
|
+
- `references/vxe-plus-knowledge/README.md`: packaged entrypoint for VxePlusForm, VxePlusTable, EiInfo, examples, and anti-patterns.
|
|
8
|
+
- `doc/components/vxe-plus-knowledge/README.md`: optional project-local supplement when the business project has one.
|
|
9
|
+
|
|
10
|
+
## Skill References
|
|
11
|
+
|
|
12
|
+
- `real-base-development.md`: use for new real pages, modifying existing `project/*/src/views`, or wiring explicit backend methods.
|
|
13
|
+
- `prototype-to-real.md`: use when the input is a mock prototype page or output from `brms-prototype-generator`.
|
|
14
|
+
- `review-checklist.md`: use for code review, newcomer handoff, and final delivery checks.
|
|
15
|
+
|
|
16
|
+
## Knowledge Base Files
|
|
17
|
+
|
|
18
|
+
- `references/vxe-plus-knowledge/01-mental-model.md`: page shape and component responsibility.
|
|
19
|
+
- `references/vxe-plus-knowledge/02-vxe-plus-form.md`: form renderers, validation, select dialogs, DatePicker traps.
|
|
20
|
+
- `references/vxe-plus-knowledge/03-vxe-plus-table.md`: table columns, edit mode, toolbar buttons, slots.
|
|
21
|
+
- `references/vxe-plus-knowledge/04-example-map.md`: embedded examples for direct copying and adaptation.
|
|
22
|
+
- `references/vxe-plus-knowledge/05-request-and-eiinfo.md`: EiInfo query/save/transform behavior.
|
|
23
|
+
- `references/vxe-plus-knowledge/90-anti-patterns.md`: hard-stop mistakes.
|
|
24
|
+
|
|
25
|
+
## Offline Source Examples
|
|
26
|
+
|
|
27
|
+
Search under:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
references/vxe-plus-knowledge/sources/project/base/src/views
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Use focused search terms:
|
|
34
|
+
|
|
35
|
+
- `VxePlusForm`
|
|
36
|
+
- `VxePlusTable`
|
|
37
|
+
- `formSelectDialog`
|
|
38
|
+
- `tableSelectDialog`
|
|
39
|
+
- `transformParams`
|
|
40
|
+
- `transformResponse`
|
|
41
|
+
- `toolbarButtonClick`
|
|
42
|
+
- `EiCommunicator.send`
|
|
43
|
+
- `valueFormat`
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Review Checklist
|
|
2
|
+
|
|
3
|
+
Use this reference before handing real BRMS VxePlus code to a newcomer or reviewer.
|
|
4
|
+
|
|
5
|
+
## Form Checks
|
|
6
|
+
|
|
7
|
+
- `VxePlusForm` uses `:form-options`.
|
|
8
|
+
- Dialog forms also use `:form-options`.
|
|
9
|
+
- Form config has `id`, `data`, and `items`.
|
|
10
|
+
- Required validation is defined in `formOptions.rules`, keyed by field.
|
|
11
|
+
- Form items do not use `required: true` or `titlePrefix: { content: '必填' }` as validation.
|
|
12
|
+
- New code does not introduce another `useForm()` helper layer.
|
|
13
|
+
- `fields` / `dialogFields` are one-to-one for `formSelectDialog`.
|
|
14
|
+
- `VxeDatePicker type="month"` does not use `valueFormat: 'MM'`.
|
|
15
|
+
|
|
16
|
+
## Table Checks
|
|
17
|
+
|
|
18
|
+
- `VxePlusTable` has a meaningful `id`, usually `<PAGE>_result`.
|
|
19
|
+
- `:form-config` points to query form data.
|
|
20
|
+
- `serviceConfig` is used only when service/method names are real.
|
|
21
|
+
- Editable table uses `:is-edit="true"` and `editRules` where needed.
|
|
22
|
+
- Dialog edit and row edit are not mixed accidentally.
|
|
23
|
+
- Add/save/delete buttons are in `toolbarButtons` unless local code clearly uses another pattern.
|
|
24
|
+
- No default operation/action column was generated without a concrete reason.
|
|
25
|
+
- Checkbox selection is controlled by `:show-checkbox`, not a generated checkbox column.
|
|
26
|
+
|
|
27
|
+
## Request Checks
|
|
28
|
+
|
|
29
|
+
- `transformParams(formEi)` mutates or augments the incoming EiInfo and returns it.
|
|
30
|
+
- `transformParams` does not create a new empty EiInfo unless intentionally discarding defaults.
|
|
31
|
+
- `transformResponse(rows)` expects mapped rows, not a full EiInfo, under the normal `serviceConfig` path.
|
|
32
|
+
- Complex save/confirm/delete builds explicit `EiInfo` blocks matching the backend contract.
|
|
33
|
+
- No speculative old-data compatibility was added.
|
|
34
|
+
|
|
35
|
+
## Example And Knowledge Checks
|
|
36
|
+
|
|
37
|
+
- The implementation can point to a nearby real `project/*/src/views` example or a packaged offline source under `references/vxe-plus-knowledge/sources/project/base/src/views`.
|
|
38
|
+
- Any deviation from the knowledge-base pattern is explained by local module code or interface contract.
|
|
39
|
+
- Known anti-patterns from `references/vxe-plus-knowledge/90-anti-patterns.md` were checked.
|
|
40
|
+
|
|
41
|
+
## Validation Checks
|
|
42
|
+
|
|
43
|
+
Run:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
node .claude/skills/brms-vxe-plus-developer/scripts/check-vxe-plus-page.mjs <changed-files> --repo-root .
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Then run the narrowest available project validation, such as typecheck or lint for the affected package. If not run, say why.
|