基于 Swagger/OpenAPI 文档自动生成 Vue3 CRUD 页面的完整技能体系。当用户提到"根据swagger生成页面"、"生成列表页/表单页/详情页"、"从接口文档生成代码"、"生成CRUD页面"时触发。支持 Element Plus 和 Ant Design Vue,自动生成视图、API、路由,支持增量更新。
Swagger Page Gen — 主入口
功能概述
Swagger Page Gen — 主入口是一项面向实际任务的技能,主要用于使用前:项目配置;在项目根目录创建 .page-gen.yml ,所有生成行为依赖此配置, 只需填写一次 :;
核心要点
- 注意 : .page-gen.yml 是人工填写的初始配置,可能与项目实际存在偏差;
- 技能启动时会自动执行配置校验( foundation/config-validator.md );
- 校验结论落盘至 .page-gen.lo。
使用与执行
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Swagger Page Gen — 主入口
目录结构
swagger-page-gen/
├── SKILL.md # 本文件,总入口与使用说明
├── foundation/
│ ├── config-validator.md # 配置校验与落盘(必读,生成前执行)
│ ├── coding-conventions.md # 编码规范(TS、composables、文件组织)
│ ├── api-contract.md # API 请求封装规范
│ └── page-schema.md # PageSchema 数据契约(各层通信接口)
├── domain/
│ ├── swagger-analyzer.md # Swagger 解析与字段推断
│ ├── crud-list.md # 列表页模式(与UI无关)
│ ├── crud-form.md # 表单页模式(与UI无关)
│ └── crud-detail.md # 详情页模式(与UI无关)
├── adapter/
│ ├── element-plus.md # Element Plus 组件映射与用法
│ ├── ant-design-vue.md # Ant Design Vue 组件映射与用法
│ └── http-client.md # axios 请求封装模板
└── workflow/
├── swagger-to-crud.md # 主流程:一键从 swagger 生成全套页面
└── incremental-update.md # 增量更新:路由/API 增量合并
使用前:项目配置
在项目根目录创建 .page-gen.yml,所有生成行为依赖此配置,只需填写一次:
# .page-gen.yml
project:
name: my-admin # 项目名称
root: /path/to/project # 项目根目录绝对路径
tech:
ui_library: element-plus # element-plus | ant-design-vue
vue_version: 3
language: typescript # typescript | javascript
request_lib: axios
paths:
views: src/views
api: src/api
router: src/router/index.ts
composables: src/composables
types: src/types
request: src/utils/request # request 封装的导入路径(用于 import request from '...')
# ─── HTTP 请求封装行为配置 ────────────────────────────────────────────────────
#
# 核心问题:你的 request.ts 拦截器是否已经剥掉响应包装体(code/message/data)?
#
# 情况 A(推荐,本项目默认):
# 拦截器已处理,成功时直接返回 res.data,service 层拿到的就是业务数据本身。
# 此时 response_unwrapped: true,生成的 service 函数返回类型直接写业务类型。
#
# 情况 B:
# 拦截器未处理,service 层拿到的是完整包装体 { code, message, data }。
# 此时 response_unwrapped: false,生成的 service 函数返回类型需包含包装层。
#
request:
# 拦截器是否已剥离响应包装体,直接返回 data
response_unwrapped: true
# 封装函数的导出方式
# named: import { get, post, put, del } from '@/utils/request'
# default: import request from '@/utils/request'(用 request.get / request.post)
export_style: named # named | default 优先使用 named 导出,若不支持则使用 default 导出
# 函数名映射(export_style: named 时生效,按实际导出名填写)
method_names:
get: get
post: post
put: put
delete: del # 注意:delete 是保留字,通常导出为 del
# showAllRes 配置项名称(需要获取完整响应体时透传)
# 若拦截器不支持此功能,置为 null
show_all_res_option: showAllRes
# returnRaw 配置项名称(完全绕过拦截器时透传)
# 若拦截器不支持此功能,置为 null
return_raw_option: returnRaw
# hideGlobalMsg 配置项名称(静默错误时透传)
# 若拦截器不支持此功能,置为 null
hide_global_msg_option: hideGlobalMsg
codegen:
author: your-name
overwrite_view: true # 同名视图是否覆盖
overwrite_api: false # 同名API是否覆盖(建议false,走增量更新)
page_suffix:
list: -list # 列表页后缀,例:user-list.vue
form: -form # 表单页后缀,例:user-form.vue
detail: -detail # 详情页后缀,例:user-detail.vue
dir_suffix: -page # 目录后缀,例:user-page/
pagination:
exclude_params: # 不参与用户交互的分页参数
- pageSize
- currentPage
- pageNum
router:
group_by_tag: true # 是否按 swagger tag 分组路由
level1_suffix: Menu # 一级路由名称后缀
level2_suffix: Page # 二级路由名称后缀
注意:
.page-gen.yml是人工填写的初始配置,可能与项目实际存在偏差。
技能启动时会自动执行配置校验(foundation/config-validator.md),
校验结论落盘至.page-gen.lock.yml,后续代码生成和 QA 以 lock 文件为准。
快速开始
方式一:一键生成(推荐)
读取 workflow/swagger-to-crud.md,提供 swagger JSON 或 URL:
请根据以下 swagger 接口生成完整的 CRUD 页面: [粘贴 swagger JSON 或提供 URL]
方式二:分步生成
- 先读
domain/swagger-analyzer.md解析接口,确认 PageSchema - 再读对应的
domain/crud-*.md生成页面结构 - 最后读对应的
adapter/*.md落地为具体 UI 组件代码
Skill 读取规则
Claude 在执行任何生成任务前,必须按以下顺序读取:
foundation/page-schema.md— 了解数据契约(必读)foundation/coding-conventions.md— 了解编码规范(必读)foundation/api-contract.md— 了解 API 层规范(必读).page-gen.yml— 读取项目原始配置(必读)foundation/config-validator.md— 执行配置校验,生成.page-gen.lock.yml(必读,读取配置后立即执行)- 对应的
adapter/*.md— 根据 lock 文件中verified.tech.ui_library加载 - 对应的任务 skill — 根据用户需求加载
不要跳过前五步,尤其是步骤 5——配置校验是代码质量的基础保障。
步骤 6 起,所有配置引用均来自 .page-gen.lock.yml 的 verified 节,不再直接使用 .page-gen.yml。
文件职责说明
| 文件 | 写入者 | 用途 |
|---|---|---|
.page-gen.yml |
用户手动维护 | 初始配置,人工填写 |
.page-gen.lock.yml |
AI 自动生成 | 经校验的可信快照,代码生成和 QA 的唯一依据 |
.page-gen.lock.yml 建议加入版本控制(git),方便团队共享已验证的配置状态。
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习
最新文章