e94e76ba0f
naive 的 NFormItem 一旦用了 #feedback 插槽,renderExplains 就永不渲染
(children || feedback ? feedback : …),校验错误被完全遮住 —— 用户看到的是
"红框 + 一句无关的正常提示",现象上等价于"点了保存没反应"。RoleFormModal 里
早就记录过这个机制,但只在自己那个文件绕开了,没固化成约定,于是扩散到 7 处。
- 7 处 validate() 的 catch 改成 message.error(firstError(errors) ?? 兜底)
(login / org / role / user / task 建改任务 / 材料规则 / 表单设计)
- ⚠️ firstError 必须摊平后再取:naive reject 出来的是嵌套数组,
errors[0].message 恒为 undefined,兜底文案会把每条错误都吞成"请检查表单填写"
- 批次号在"修改"时置灰(task_code = 批次号 + 4 位序号,且同时是文件目录名,
而服务端 update 无条件写 batch_no、没有"编码已生成"的保护)
- 删掉「本期范围」区块(收集模式 / 认定类型恒定,请求体里仍写死 1)
- 清掉教材式描述:extras_json / extra_ 前缀 / 幂等 / 接收能力 / 识别结果只用于提示
- 规则沉淀进 frontend-pc/AGENTS.md 第 10 条与交接摘要 §一·四十
.agents/
本目录为 AI 编码助手规范的唯一来源(Single Source of Truth),适用于 Cursor、OpenCode、Codex 等工具。
⚠️ 2026-10 已整体重写:PC 端从 Gi Admin Pro + Arco Design Vue 换成 纯 Vue 3 + Naive UI。 上一版 skills 里的 Arco 组件名(
a-table/a-form/a-modal)、v-hasPerm、auto-import、 Stylelint、Gi 的useTable/usePagination全部不再适用 —— 照着写会编译不过或静默失效。 唯一保留原样的是git-commit(与框架无关)。
结构
.agents/
├── rules/
│ └── agent.md # 唯一常驻规则(AGENTS.md 内联注入)
└── skills/ # 按需加载
├── code-ts/SKILL.md # TS 命名 / 导入 / 显式 import
├── code-vue/SKILL.md # SFC 写法与模板约定
├── code-css/SKILL.md # SCSS 与样式边界
├── project-guide/SKILL.md # 技术栈 / 目录 / 九条最容易写错的约定
├── project-crud/SKILL.md # 列表 + 表单的标准写法
├── project-api/SKILL.md # 接口调用(没有 Mock)
└── git-commit/SKILL.md # 提交规范(与框架无关)
工具适配
| 工具 | 适配方式 |
|---|---|
| Cursor | AGENTS.md(内联 behavior 规则 + 技能索引)+ .agents/skills/(按需) |
| OpenCode | AGENTS.md + .agents/rules/ + .agents/skills/ |
| Codex | AGENTS.md + .agents/skills/ |