بنقرة واحدة
fast-crud-page-dev
// 用于开发或重构 Certd 前端列表管理、后台管理、记录查询、CRUD 表格页面,优先使用 Fast Crud(@fast-crud/fast-crud、fs-crud、useFs、createCrudOptions)实现。当用户要求列表页、管理页、审核页、记录页或表格 CRUD 页面时触发。
// 用于开发或重构 Certd 前端列表管理、后台管理、记录查询、CRUD 表格页面,优先使用 Fast Crud(@fast-crud/fast-crud、fs-crud、useFs、createCrudOptions)实现。当用户要求列表页、管理页、审核页、记录页或表格 CRUD 页面时触发。
用于开发 Certd 系统中的 DNS Provider 插件,在 ACME 申请证书时给域名添加 TXT 解析记录以验证域名所有权。当用户需要创建DNS提供商插件、实现DNS解析、ACME证书验证或修改现有 DNS Provider 插件时触发。
用于开发 Certd 系统中的 Access 插件,存储用户第三方应用授权数据并对接实现第三方 API 接口。当用户需要创建授权插件、实现第三方API接口、添加新的授权方式或修改现有 Access 插件时触发。
用于将 Certd 插件转换为 YAML 配置文件的命令行工具,支持分析单个插件文件、识别插件类型并生成对应的 YAML 配置。当用户需要生成插件配置、转换插件格式、批量处理插件或修改现有插件配置时触发。
用于开发 Certd 系统中的 Task 插件,继承自 AbstractTaskPlugin 类,被流水线调用 execute 方法将证书部署到对应的应用上。当用户需要创建任务插件、部署证书、自动化任务或修改现有 Task 插件时触发。
| name | fast-crud-page-dev |
| description | 用于开发或重构 Certd 前端列表管理、后台管理、记录查询、CRUD 表格页面,优先使用 Fast Crud(@fast-crud/fast-crud、fs-crud、useFs、createCrudOptions)实现。当用户要求列表页、管理页、审核页、记录页或表格 CRUD 页面时触发。 |
| version | 1.0.0 |
你是一名 Certd 前端列表管理页面开发专家,熟悉 Vue 3、Ant Design Vue、Fast Crud 和本仓库现有页面拆分方式。你的目标是让管理页面保持统一的表格、搜索、分页、操作列和弹窗体验。
a-table / 自定义列表,并在回复中说明原因。api.ts:封装接口请求,保持页面和 CRUD 配置里不直接散落 URL。crud.tsx / crud-*.tsx:导出 createCrudOptions,集中定义请求映射、搜索项、列、表单、操作列、工具栏和字典。index.vue:承载 fs-page、fs-crud、页面头部、弹窗和生命周期,使用 useFs({ createCrudOptions, context }) 创建绑定。packages/ui/certd-client/src/views 下找 1-2 个相近 Fast Crud 页面,沿用它们的导入、布局、命名和权限写法。index.vue 中使用 fs-crud ref="crudRef" v-bind="crudBinding",并在 onMounted / onActivated 时调用 crudExpose.doRefresh()。crud.tsx 中配置 request.pageRequest、columns、search、form、rowHandle、actionbar、toolbar 等,接口分页参数和返回值按现有页面适配。rowHandle.buttons 或 actionbar.buttons 中;审核、保存设置、批量操作等复杂交互可通过 context 调用 index.vue 中的方法。search 配置;新增/编辑表单使用 Fast Crud 的 form 配置,复杂设置项可以用 Ant Design Vue 对话框承载。Modal.confirm;只要需要字段输入、表单校验或提交字段,统一使用 useFormDialog / openFormDialog,不要在 Modal.confirm 的 content 里手写输入框。const crudOptions ={
id: string, //表格唯一标识,同一个页面的多个表格的列设置和字段设置会根据id进行区分保存
request:{}, //http请求
columns:{ //字段配置
key:{ //字段key
column:{}, //对应table-column配置
form:{}, //表单中该字段的公共配置,viewForm、addForm、editForm、search会集成此配置,支持对应ui的form-item配置
viewForm:{}, //查看表单中该字段的配置,支持对应ui的form-item配置
addForm:{}, // 添加表单中该字段的配置,支持对应ui的form-item配置
editForm:{}, //编辑表单中该字段的配置,支持对应ui的form-item配置
search:{} //对应查询表单的form-item配置
}
},
search:{ //查询框配置 ,对应fs-search组件
options:{} //查询表单配置 ,对应el-from, a-form配置
},
actionbar:{}, //动作条,添加按钮,对应fs-actionbar组件
toolbar:{}, //工具条 ,对应fs-toolbar组件
table:{ //表格配置,对应fs-table
// 对应 el-table / a-table的配置
slots:{} // 对应el-table ,a-table的插槽
},
data:{}, //列表数据,无需配置,自动从pageRequest中获取
// 如果你要手动改变表格数据,可以通过crudBinding.value.data直接赋值修改表格数据
rowHandle:{}, //操作列配置,对应fs-row-handle
form:{ //表单的公共配置,对应el-form,a-form配置
wrapper:{} //表单外部容器(对话框)的配置,对应el-dialog,el-drawer,a-model,a-drawer的配置
},
viewForm:{}, //查看表单的独立配置
editForm:{}, //编辑表单的独立配置
addForm:{}, //添加表单的独立配置
pagination:{}, //分页配置 ,对应el-pagination / a-pagination
container:{}, //容器配置 ,对应fs-container
}
fs-crud 时,为了获得稳定可用的列表区域,必须让外层容器提供明确高度或剩余高度。fs-page / 页面内容区撑满;如果表格嵌在 tabs、详情页、上下分区或弹窗里,要从页面根容器到 fs-crud 建立完整的 flex 高度链路:父容器 display: flex; flex-direction: column; min-height: 0,中间内容区和 tab pane 使用 flex: 1; min-height: 0,fs-crud 本身也使用 flex: 1; min-height: 0。flex: none,把剩余空间交给表格区域。index.vue 方法或 api.ts。dict、compute、valueBuilder、valueResolve、component 配置表达的表格/表单行为,不要改成手写模板。vue-tsc / pnpm tsc,因为当前依赖组合下 vue-tsc 已知会抛内部错误。