From 6b039422b32572f3eb88c8b016d2aa0693254f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Wed, 3 Jun 2026 11:39:45 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20skill=20=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .codex/skills/frontend-crud-coding/SKILL.md | 149 ++++----- .../frontend-crud-coding/agents/openai.yaml | 4 +- .../references/examples.md | 92 +++--- .../references/frontend.md | 309 ++++++------------ 4 files changed, 238 insertions(+), 316 deletions(-) diff --git a/.codex/skills/frontend-crud-coding/SKILL.md b/.codex/skills/frontend-crud-coding/SKILL.md index c457aab..80eb2cc 100644 --- a/.codex/skills/frontend-crud-coding/SKILL.md +++ b/.codex/skills/frontend-crud-coding/SKILL.md @@ -1,76 +1,66 @@ --- name: frontend-crud-coding -description: 在当前前端项目中按现有 Vue 3 + TypeScript + Element Plus 代码风格生成或修改页面、API、types、组件接入和样式。用于新增列表页、表单弹窗页、树表页、系统管理页、workflow 页面,以及补全与后端接口对应的 src/api 和 src/views 代码。 +description: 在当前 plus-ui-new 前端项目中按真实 Vue 3 + TypeScript + Element Plus + oxlint/oxfmt 代码风格生成或修改页面、API、types、hooks 接入和样式壳。用于新增或修改标准 CRUD 列表页、树表页、系统管理页、监控页、workflow 页面、demo 页面,补齐与 RuoYi-Vue-Plus boot4 后端接口对应的 src/api、types 和 src/views 代码;触发后应先读取适用 references,再阅读目标模块真实代码和后端 generator 前端模板。 --- # 前端编码规范 -先对齐当前前端项目里的真实实现,再参考关联后端工程中代码生成器产出的前端模板。不要只套通用 Vue 模板,也不要把生成器模板原样照搬而忽略当前前端项目的实际演进。 - -## 适用场景 - -在下面这些任务里优先使用此 skill: - -- 新增标准 CRUD 列表页、弹窗表单页、树表页。 -- 补齐后端新增接口对应的 `src/api`、`src/views`、`types.ts`。 -- 按系统管理、监控、工作流、demo 模块现有方式扩展页面功能。 -- 调整已有列表页的搜索、导出、导入、树筛选、列显隐、权限按钮、样式壳。 -- 把关联后端工程中的 generator 模板转换为符合当前前端项目风格的实际代码。 - -## 不适用场景 - -下面这些任务不要机械套用本 skill 的 CRUD 规则: - -- 纯展示型落地页、营销页、可视化大屏。 -- 完全独立的低代码设计器或第三方嵌入页。 -- 全局框架升级、Vite 配置改造、构建链路迁移。 -- 与当前项目目录结构明显不同的实验性页面。 +先对齐当前前端项目里的真实实现,再参考关联后端工程的代码生成器模板。不要只套通用 Vue 模板,也不要把 generator 模板原样复制进来而忽略当前项目已经演进出的 hooks、页面壳、类型入口和下载方式。 ## 执行流程 -1. 先定位目标模块,并阅读 `src/api//` 与 `src/views//` 下最近似页面。 -2. 再参考关联后端工程 `ruoyi-modules/ruoyi-gen/src/main/resources/vm/ts` 与 `vm/vue` 下的生成器模板,确认标准 CRUD 的基础骨架。 -3. 新增代码时同时维护 `api/index.ts`、`api/types.ts`、`views/.../index.vue`,必要时补相关子页面或弹窗页。 -4. 页面结构、样式组织、状态管理、权限指令、下载导出、字典使用都以仓库现有模式为准。 -5. 如果后端接口与生成器套路一致,可以用 generator 模板作为起点;如果当前前端项目已有更强约定,以当前项目约定覆盖模板默认行为。 +1. 判断任务类型:新增标准 CRUD、树表、已有页面增强、复杂业务页、只补 API/types。 +2. 按“文档读取规则”读取必要 reference,不一次性展开所有资料。 +3. 阅读目标目录下最近似的真实代码: + - 标准单表优先看 `src/views/demo/demo/index.vue`、`src/api/demo/demo/*`。 + - 树表优先看 `src/views/demo/tree/index.vue`、`src/views/workflow/category/index.vue`。 + - 系统复杂页优先看 `src/views/system/user/index.vue`、`system/role`、`system/post`、`system/config`。 + - workflow 业务页优先看 `src/views/workflow/*` 同类页面。 +4. 新增标准页面前,对照后端工程 `D:\git-sources\Plus相关\RuoYi-Vue-Plus-boot4\ruoyi-modules\ruoyi-gen\src\main\resources\vm\ts` 和 `vm\vue` 模板确认基础骨架。 +5. 新增代码时通常同步维护 `src/api///index.ts`、`types.ts`、`src/views///index.vue`。 +6. 增强已有页面时只做增量修改,保留原页面的树筛选、导入导出、列显隐、权限、字典、弹窗和路由跳转能力。 +7. 修改完成后按影响范围运行验证:优先 `pnpm exec vue-tsc --noEmit`,改动页面或导入时再跑 `pnpm lint`,大范围变更再跑 `pnpm build`。 + +## 文档读取规则 + +- 前端 API、types、页面、hooks、样式和验证规则,先读 [references/frontend.md](references/frontend.md)。 +- 不确定任务边界、需要标准用例或提问方式时,再读 [references/examples.md](references/examples.md)。 +- reference 只约束实现方式和自检范围;发生冲突时,以当前模块真实代码和实际调用点为准。 ## 优先级规则 发生冲突时按下面顺序决策: -1. 当前目录下最近似页面的真实实现。 -2. 当前项目公共组件、公共工具、公共样式约定。 -3. 关联后端工程中的 generator 模板。 -4. 通用 Vue / Element Plus 习惯。 +1. 目标目录下最近似页面、API、types 的真实实现。 +2. 当前项目公共 hooks、组件、工具和样式约定。 +3. 关联后端工程中的 generator 前端模板。 +4. 通用 Vue 3 / Element Plus 习惯。 也就是说: -- 同一模块已有页面怎么写,优先怎么写。 -- 没有现成页面时,再退回到 generator 模板骨架。 -- 没有现成模式时,才使用通用框架默认写法。 - -## 主要规则 - -详细规则见 [references/frontend.md](references/frontend.md)。 -使用案例见 [references/examples.md](references/examples.md)。 +- 同模块已有页面怎么写,优先怎么写。 +- 没有现成页面时,使用 generator 模板作为骨架,再改成当前项目风格。 +- 复杂模块不能为了“标准 CRUD”退化成裸模板页。 ## 仓库通用规则 -- 遵循 [`.editorconfig`](../../../.editorconfig):UTF-8、LF、默认 2 空格缩进。 -- 遵循 [`.prettierrc`](../../../.prettierrc):单引号、分号、`printWidth: 150`、`trailingComma: none`。 +- 遵循 [`.editorconfig`](../../../.editorconfig):UTF-8、LF、2 空格缩进;Markdown 例外。 +- 当前仓库没有 `.prettierrc`,格式脚本是 `pnpm run fmt` 调用 `oxfmt .`,lint 脚本是 `pnpm lint` 调用 `oxlint src`。 - 页面优先使用 `