admin-gen-mcp 0.1.0__tar.gz
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.
- admin_gen_mcp-0.1.0/PKG-INFO +183 -0
- admin_gen_mcp-0.1.0/README.md +156 -0
- admin_gen_mcp-0.1.0/pyproject.toml +55 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/__init__.py +6 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/__main__.py +4 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/_cli.py +9 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/commands/admin-gen.md +127 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/commands/backend-gen.md +181 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/fields/businessTrip.json +47 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/fields/example.json +101 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/fields/trainApplication.json +69 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/generator.py +818 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/server.py +422 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Controller.java +88 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/DetailEntity.java +48 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Entity.java +80 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Mapper.java +10 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Mapper.xml +6 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Service.java +8 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/ServiceImpl.java +101 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/api.ts +40 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/form.vue +670 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/index.vue +317 -0
- admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/options.ts +100 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: admin-gen-mcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Vue 3 + Element Plus + Spring Boot 全栈代码生成器 MCP Server
|
|
5
|
+
Project-URL: Homepage, https://github.com/yourname/admin-gen-mcp
|
|
6
|
+
Project-URL: Repository, https://github.com/yourname/admin-gen-mcp
|
|
7
|
+
Author-email: Your Name <your@email.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Keywords: admin,code-generator,element-plus,mcp,spring-boot,vue
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Requires-Dist: httpx>=0.25.0
|
|
20
|
+
Requires-Dist: mcp>=1.0.0
|
|
21
|
+
Requires-Dist: openai>=1.0.0
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: black>=23.0.0; extra == 'dev'
|
|
24
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
25
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
# Admin Gen MCP
|
|
29
|
+
|
|
30
|
+
Vue 3 + Element Plus 前端 & Spring Boot + MyBatis-Plus 后端 全栈代码生成器,基于 MCP 协议。
|
|
31
|
+
|
|
32
|
+
## 功能
|
|
33
|
+
|
|
34
|
+
- **前端生成**:api.ts, options.ts, index.vue, form.vue
|
|
35
|
+
- **后端生成**:Entity, Controller, Service, ServiceImpl, Mapper, Mapper.xml
|
|
36
|
+
- **全栈生成**:一份 JSON 配置同时生成前端 + 后端(自动类型映射)
|
|
37
|
+
- 支持主表 + 多子表
|
|
38
|
+
- 支持字典配置
|
|
39
|
+
- 调用阿里云 qwen3-max 模型生成代码
|
|
40
|
+
|
|
41
|
+
## 安装
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install admin-gen-mcp
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
或从源码安装:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git clone https://github.com/yourname/admin-gen-mcp.git
|
|
51
|
+
cd admin-gen-mcp
|
|
52
|
+
pip install -e .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 环境变量
|
|
56
|
+
|
|
57
|
+
使用前必须设置阿里云 DashScope API Key:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
export DASHSCOPE_API_KEY="your-api-key"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Windows:
|
|
64
|
+
```cmd
|
|
65
|
+
set DASHSCOPE_API_KEY=your-api-key
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 使用方式
|
|
69
|
+
|
|
70
|
+
### 1. Claude Code MCP
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
claude mcp add-json admin-gen '{"type":"stdio","command":"admin-gen-mcp","env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
或使用 uvx(无需 pip install):
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
claude mcp add-json admin-gen '{"type":"stdio","command":"uvx","args":["admin-gen-mcp"],"env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 2. Cursor / VS Code MCP
|
|
83
|
+
|
|
84
|
+
在 `.cursor/mcp.json` 或 `.vscode/settings.json` 中配置:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"mcpServers": {
|
|
89
|
+
"admin-gen": {
|
|
90
|
+
"command": "admin-gen-mcp",
|
|
91
|
+
"env": {
|
|
92
|
+
"DASHSCOPE_API_KEY": "your-api-key"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 3. 命令行工具
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# 从 JSON 配置文件生成前端代码
|
|
103
|
+
admin-gen --config fields/example.json
|
|
104
|
+
|
|
105
|
+
# 交互模式
|
|
106
|
+
admin-gen -i
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 4. Python API
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
from admin_gen_mcp.generator import CodeGenerator
|
|
113
|
+
|
|
114
|
+
gen = CodeGenerator(api_key="your-api-key")
|
|
115
|
+
config = gen.load_config("fields/example.json")
|
|
116
|
+
|
|
117
|
+
# 全栈生成
|
|
118
|
+
results = gen.generate_fullstack(config)
|
|
119
|
+
print(results["frontend"]) # 前端 4 个文件
|
|
120
|
+
print(results["backend"]) # 后端 6~9 个文件
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## MCP 工具列表
|
|
124
|
+
|
|
125
|
+
| 工具 | 说明 |
|
|
126
|
+
|------|------|
|
|
127
|
+
| `generate_admin_page` | 前端代码生成(直接传字段参数) |
|
|
128
|
+
| `generate_from_config` | 前端代码生成(JSON 配置文件路径) |
|
|
129
|
+
| `generate_backend_code` | 后端代码生成(直接传字段参数) |
|
|
130
|
+
| `generate_fullstack` | 前后端一体生成(JSON 配置文件路径) |
|
|
131
|
+
|
|
132
|
+
## 配置文件格式
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"功能名称": "员工培训申请",
|
|
137
|
+
"模块路径": "hr/trainApplication",
|
|
138
|
+
"权限前缀": "hr_trainapplication",
|
|
139
|
+
"输出目录": "src/views",
|
|
140
|
+
|
|
141
|
+
"主表字段": [
|
|
142
|
+
{
|
|
143
|
+
"label": "培训主题",
|
|
144
|
+
"key": "trainTitle",
|
|
145
|
+
"type": "input",
|
|
146
|
+
"required": true,
|
|
147
|
+
"show": true,
|
|
148
|
+
"alwaysHide": false,
|
|
149
|
+
"smart": true,
|
|
150
|
+
"width": "200"
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
|
|
154
|
+
"子表配置": [
|
|
155
|
+
{
|
|
156
|
+
"名称": "参训人员明细",
|
|
157
|
+
"标识": "detail",
|
|
158
|
+
"实体名称": "TrainApplicationDetail",
|
|
159
|
+
"字段列表": [...]
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
|
|
163
|
+
"字典配置": [
|
|
164
|
+
{ "key": "trainType", "dict": "hr_train_type", "import": "/@/enums/dict" }
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 字段类型映射
|
|
170
|
+
|
|
171
|
+
| 前端 type | 前端组件 | Java 类型 |
|
|
172
|
+
|-----------|---------|-----------|
|
|
173
|
+
| input | el-input | String |
|
|
174
|
+
| textarea | el-input[textarea] | String |
|
|
175
|
+
| select | el-select | String |
|
|
176
|
+
| date | el-date-picker | LocalDate |
|
|
177
|
+
| datetime | el-date-picker | LocalDateTime |
|
|
178
|
+
| number | microme-operator | BigDecimal |
|
|
179
|
+
| upload | upload-file | String |
|
|
180
|
+
|
|
181
|
+
## License
|
|
182
|
+
|
|
183
|
+
MIT
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Admin Gen MCP
|
|
2
|
+
|
|
3
|
+
Vue 3 + Element Plus 前端 & Spring Boot + MyBatis-Plus 后端 全栈代码生成器,基于 MCP 协议。
|
|
4
|
+
|
|
5
|
+
## 功能
|
|
6
|
+
|
|
7
|
+
- **前端生成**:api.ts, options.ts, index.vue, form.vue
|
|
8
|
+
- **后端生成**:Entity, Controller, Service, ServiceImpl, Mapper, Mapper.xml
|
|
9
|
+
- **全栈生成**:一份 JSON 配置同时生成前端 + 后端(自动类型映射)
|
|
10
|
+
- 支持主表 + 多子表
|
|
11
|
+
- 支持字典配置
|
|
12
|
+
- 调用阿里云 qwen3-max 模型生成代码
|
|
13
|
+
|
|
14
|
+
## 安装
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pip install admin-gen-mcp
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
或从源码安装:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
git clone https://github.com/yourname/admin-gen-mcp.git
|
|
24
|
+
cd admin-gen-mcp
|
|
25
|
+
pip install -e .
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 环境变量
|
|
29
|
+
|
|
30
|
+
使用前必须设置阿里云 DashScope API Key:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
export DASHSCOPE_API_KEY="your-api-key"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Windows:
|
|
37
|
+
```cmd
|
|
38
|
+
set DASHSCOPE_API_KEY=your-api-key
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 使用方式
|
|
42
|
+
|
|
43
|
+
### 1. Claude Code MCP
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
claude mcp add-json admin-gen '{"type":"stdio","command":"admin-gen-mcp","env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
或使用 uvx(无需 pip install):
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
claude mcp add-json admin-gen '{"type":"stdio","command":"uvx","args":["admin-gen-mcp"],"env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2. Cursor / VS Code MCP
|
|
56
|
+
|
|
57
|
+
在 `.cursor/mcp.json` 或 `.vscode/settings.json` 中配置:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"mcpServers": {
|
|
62
|
+
"admin-gen": {
|
|
63
|
+
"command": "admin-gen-mcp",
|
|
64
|
+
"env": {
|
|
65
|
+
"DASHSCOPE_API_KEY": "your-api-key"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 3. 命令行工具
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# 从 JSON 配置文件生成前端代码
|
|
76
|
+
admin-gen --config fields/example.json
|
|
77
|
+
|
|
78
|
+
# 交互模式
|
|
79
|
+
admin-gen -i
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4. Python API
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
from admin_gen_mcp.generator import CodeGenerator
|
|
86
|
+
|
|
87
|
+
gen = CodeGenerator(api_key="your-api-key")
|
|
88
|
+
config = gen.load_config("fields/example.json")
|
|
89
|
+
|
|
90
|
+
# 全栈生成
|
|
91
|
+
results = gen.generate_fullstack(config)
|
|
92
|
+
print(results["frontend"]) # 前端 4 个文件
|
|
93
|
+
print(results["backend"]) # 后端 6~9 个文件
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## MCP 工具列表
|
|
97
|
+
|
|
98
|
+
| 工具 | 说明 |
|
|
99
|
+
|------|------|
|
|
100
|
+
| `generate_admin_page` | 前端代码生成(直接传字段参数) |
|
|
101
|
+
| `generate_from_config` | 前端代码生成(JSON 配置文件路径) |
|
|
102
|
+
| `generate_backend_code` | 后端代码生成(直接传字段参数) |
|
|
103
|
+
| `generate_fullstack` | 前后端一体生成(JSON 配置文件路径) |
|
|
104
|
+
|
|
105
|
+
## 配置文件格式
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"功能名称": "员工培训申请",
|
|
110
|
+
"模块路径": "hr/trainApplication",
|
|
111
|
+
"权限前缀": "hr_trainapplication",
|
|
112
|
+
"输出目录": "src/views",
|
|
113
|
+
|
|
114
|
+
"主表字段": [
|
|
115
|
+
{
|
|
116
|
+
"label": "培训主题",
|
|
117
|
+
"key": "trainTitle",
|
|
118
|
+
"type": "input",
|
|
119
|
+
"required": true,
|
|
120
|
+
"show": true,
|
|
121
|
+
"alwaysHide": false,
|
|
122
|
+
"smart": true,
|
|
123
|
+
"width": "200"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
|
|
127
|
+
"子表配置": [
|
|
128
|
+
{
|
|
129
|
+
"名称": "参训人员明细",
|
|
130
|
+
"标识": "detail",
|
|
131
|
+
"实体名称": "TrainApplicationDetail",
|
|
132
|
+
"字段列表": [...]
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
|
|
136
|
+
"字典配置": [
|
|
137
|
+
{ "key": "trainType", "dict": "hr_train_type", "import": "/@/enums/dict" }
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## 字段类型映射
|
|
143
|
+
|
|
144
|
+
| 前端 type | 前端组件 | Java 类型 |
|
|
145
|
+
|-----------|---------|-----------|
|
|
146
|
+
| input | el-input | String |
|
|
147
|
+
| textarea | el-input[textarea] | String |
|
|
148
|
+
| select | el-select | String |
|
|
149
|
+
| date | el-date-picker | LocalDate |
|
|
150
|
+
| datetime | el-date-picker | LocalDateTime |
|
|
151
|
+
| number | microme-operator | BigDecimal |
|
|
152
|
+
| upload | upload-file | String |
|
|
153
|
+
|
|
154
|
+
## License
|
|
155
|
+
|
|
156
|
+
MIT
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "admin-gen-mcp"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Vue 3 + Element Plus + Spring Boot 全栈代码生成器 MCP Server"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.10"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Your Name", email = "your@email.com" }
|
|
14
|
+
]
|
|
15
|
+
keywords = ["mcp", "vue", "element-plus", "spring-boot", "code-generator", "admin"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"License :: OSI Approved :: MIT License",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.10",
|
|
22
|
+
"Programming Language :: Python :: 3.11",
|
|
23
|
+
"Programming Language :: Python :: 3.12",
|
|
24
|
+
"Programming Language :: Python :: 3.13",
|
|
25
|
+
]
|
|
26
|
+
dependencies = [
|
|
27
|
+
"mcp>=1.0.0",
|
|
28
|
+
"openai>=1.0.0",
|
|
29
|
+
"httpx>=0.25.0",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.optional-dependencies]
|
|
33
|
+
dev = [
|
|
34
|
+
"pytest>=7.0.0",
|
|
35
|
+
"black>=23.0.0",
|
|
36
|
+
"ruff>=0.1.0",
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
[project.scripts]
|
|
40
|
+
admin-gen = "admin_gen_mcp.generator:main"
|
|
41
|
+
admin-gen-mcp = "admin_gen_mcp._cli:run_server"
|
|
42
|
+
|
|
43
|
+
[project.urls]
|
|
44
|
+
Homepage = "https://github.com/yourname/admin-gen-mcp"
|
|
45
|
+
Repository = "https://github.com/yourname/admin-gen-mcp"
|
|
46
|
+
|
|
47
|
+
[tool.hatch.build.targets.wheel]
|
|
48
|
+
packages = ["src/admin_gen_mcp"]
|
|
49
|
+
|
|
50
|
+
[tool.hatch.build.targets.sdist]
|
|
51
|
+
include = [
|
|
52
|
+
"src/admin_gen_mcp",
|
|
53
|
+
"README.md",
|
|
54
|
+
"pyproject.toml",
|
|
55
|
+
]
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# 后台管理页面生成器
|
|
2
|
+
|
|
3
|
+
你是一个专业的 Vue 3 + Element Plus 后台管理系统页面生成专家。根据用户提供的需求信息,参考模板文件生成高质量的管理页面代码。
|
|
4
|
+
|
|
5
|
+
## 技术栈
|
|
6
|
+
|
|
7
|
+
- Vue 3 (Composition API + `<script setup>`)
|
|
8
|
+
- Element Plus
|
|
9
|
+
- TypeScript
|
|
10
|
+
- vue-i18n(国际化)
|
|
11
|
+
- moment(日期处理)
|
|
12
|
+
|
|
13
|
+
## 参考模板
|
|
14
|
+
|
|
15
|
+
生成代码前,必须先读取以下模板文件作为代码风格和结构的参考:
|
|
16
|
+
|
|
17
|
+
- `templates/api.ts` - API 接口模板
|
|
18
|
+
- `templates/options.ts` - 字段配置模板(包含主表 dataMasterEntity 和子表 dataDetailEntity)
|
|
19
|
+
- `templates/index.vue` - 列表页模板
|
|
20
|
+
- `templates/form.vue` - 表单页模板(包含子表的表格编辑)
|
|
21
|
+
|
|
22
|
+
## 生成文件
|
|
23
|
+
|
|
24
|
+
根据用户提供的模块路径,生成以下 4 个文件:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
src/views/{module}/{feature}/
|
|
28
|
+
├── api.ts # API 接口定义
|
|
29
|
+
├── options.ts # 字段配置(主表 + 子表)
|
|
30
|
+
├── index.vue # 列表页
|
|
31
|
+
└── form.vue # 表单页(包含子表编辑)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 用户输入
|
|
35
|
+
|
|
36
|
+
用户需要提供:
|
|
37
|
+
1. **功能名称**:如"项目资产抵入"
|
|
38
|
+
2. **模块路径**:如 `financialcapital/DebtProjectAssetsOffset`
|
|
39
|
+
3. **主表字段**:包含字段标识、名称、类型、是否必填、是否显示等信息
|
|
40
|
+
4. **子表配置**(可选):子表名称、标识、字段列表
|
|
41
|
+
5. **字典配置**:需要使用的字典及其来源
|
|
42
|
+
|
|
43
|
+
## 执行步骤
|
|
44
|
+
|
|
45
|
+
1. 读取 `templates/` 目录下的所有模板文件
|
|
46
|
+
2. 根据用户提供的字段信息,参照模板生成对应代码
|
|
47
|
+
3. 如果有子表配置,在 options.ts 中生成 dataDetailEntity,在 form.vue 中生成子表编辑区域
|
|
48
|
+
4. 保存生成的代码到指定目录
|
|
49
|
+
|
|
50
|
+
## 代码规范
|
|
51
|
+
|
|
52
|
+
1. **国际化**:文本使用 `t('column.{processDefKey}.master.{fieldName}')` 格式,子表使用 `t('column.{processDefKey}.detail.{fieldName}')`
|
|
53
|
+
2. **权限控制**:按钮使用 `v-auth="'{module}_{feature}_{action}'"` 指令
|
|
54
|
+
3. **异步组件**:使用 `defineAsyncComponent` 加载子组件
|
|
55
|
+
4. **注释**:关键逻辑添加中文注释
|
|
56
|
+
|
|
57
|
+
## 字段类型映射
|
|
58
|
+
|
|
59
|
+
| 字段类型 | Element Plus 组件 |
|
|
60
|
+
|---------|------------------|
|
|
61
|
+
| input | el-input |
|
|
62
|
+
| textarea | el-input[type=textarea] |
|
|
63
|
+
| select | el-select |
|
|
64
|
+
| radio | el-radio-group |
|
|
65
|
+
| date | el-date-picker[type=date] |
|
|
66
|
+
| datetime | el-date-picker[type=datetime] |
|
|
67
|
+
| number | microme-operator |
|
|
68
|
+
| upload | upload-file |
|
|
69
|
+
|
|
70
|
+
## 子表生成规则
|
|
71
|
+
|
|
72
|
+
当配置中包含"子表配置"时,需要为每个子表生成对应的代码:
|
|
73
|
+
|
|
74
|
+
### 1. options.ts 中生成
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
// 主表配置
|
|
78
|
+
export const dataMasterEntity = { ... }
|
|
79
|
+
|
|
80
|
+
// 子表1配置
|
|
81
|
+
export const dataDetailEntity = { ... }
|
|
82
|
+
|
|
83
|
+
// 子表2配置(如果有)
|
|
84
|
+
export const dataDetailProjectEntity = { ... }
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 2. form.vue 中生成
|
|
88
|
+
|
|
89
|
+
每个子表需要:
|
|
90
|
+
- 独立的折叠面板区域 `<el-collapse-item>`
|
|
91
|
+
- 新增/删除按钮
|
|
92
|
+
- el-table 可编辑表格
|
|
93
|
+
- 子表验证规则,如 `dataDetailRules`、`dataDetailProjectRules`
|
|
94
|
+
- 子表相关变量:
|
|
95
|
+
- `detailTable`、`detailProjectTable` - 表格引用
|
|
96
|
+
- `detailSelectRows`、`detailProjectSelectRows` - 选中行
|
|
97
|
+
- `detailColumns`、`detailProjectColumns` - 列配置
|
|
98
|
+
- 子表相关方法:
|
|
99
|
+
- `addDetailClick()`、`addDetailProjectClick()` - 新增行
|
|
100
|
+
- `deleteDetailClick()`、`deleteDetailProjectClick()` - 删除行
|
|
101
|
+
- `detailSelectChangeHandle()`、`detailProjectSelectChangeHandle()` - 选择变化
|
|
102
|
+
|
|
103
|
+
### 3. dataForm 中包含子表数组
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
const dataForm = reactive({
|
|
107
|
+
// 主表字段...
|
|
108
|
+
detail: [], // 子表1数据
|
|
109
|
+
detailProject: [], // 子表2数据(如果有)
|
|
110
|
+
})
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 4. 子表按钮禁用逻辑
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
// 新增按钮禁用:查看模式或表单禁用时
|
|
117
|
+
const isAddDetailDisabled = computed(() => FormDisabled.value)
|
|
118
|
+
|
|
119
|
+
// 删除按钮禁用:没有选中行或表单禁用时
|
|
120
|
+
const isDelDetailDisabled = computed(() =>
|
|
121
|
+
detailSelectRows.value.length === 0 || FormDisabled.value
|
|
122
|
+
)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 用户输入
|
|
126
|
+
|
|
127
|
+
$ARGUMENTS
|