增删改查快速开发_fast-crud-page-dev
以下为本文档的中文说明fast-crud-page-dev 是一个专门面向 Certd 前端框架基于 Vue 3 生态体系的 CRUD增删改查类型管理页面快速开发的技能。在现代企业级 Web 应用开发中大量后台管理界面都是围绕数据表格Table和表单Form展开的 CRUD 模式操作页面。该技能利用 Fast Crud 这一高效的声明式 CRUD 组件库基于 fast-crud/fast-crud、fs-crud、useFs、createCrudOptions 等核心模块帮助开发者以极少的代码量和极致的开发效率完成功能完备的数据管理界面搭建。使用场景包括快速构建 Certd 前端框架下的列表数据管理页面如用户列表、订单列表、商品列表开发后台数据维护和管理界面如配置管理、字典维护、权限分配创建支持多条件组合筛选、数据导出等高级功能的数据查询和展示页面在产品原型阶段快速搭建可交互的 MVP 管理界面用于产品验证和演示。核心特点包括基于 Fast Crud 组件库的纯声明式Declarative配置驱动开发范式开发者通过提供一个结构化的 JavaScript 配置对象CrudOptions即可完整定义和自动生成一个功能齐全的数据 CRUD 页面无需逐一手写表格列模板、表单字段、校验规则、分页逻辑和请求方法表格Table和表单Form的字段展示和编辑属性完全通过 JSON 配置统一描述包括表格列的显示标题、宽度和对齐方式、字段排序和筛选支持、表单字段的输入组件类型Input/Select/DatePicker/Switch 等、表单布局行内/块级/栅格、表单验证规则必填、格式校验、自定义 Validator等所有 UI 呈现和行为逻辑均在配置中声明提供多种常用的 CRUD 业务操作模式的内置模板预设包括新增记录弹窗或页面、编辑记录、软删除/硬删除、查看详情抽屉页、批量删除、批量状态更新、导入和导出 Excel 等典型操作支持高级的搜索和筛选条件配置通过配置 search 对象即可自动生成多个搜索字段组成的搜索面板支持文本模糊搜索、下拉选择筛选、日期范围选择等多种筛选控件类型并与表格数据请求自动联动天然集成权限控制体系在配置中通过 if 或 permission 属性即可控制特定列、按钮或字段在不同用户角色管理员/普通用户/访客下的可见性和交互可用性。Fast Crud 页面开发技能角色定义你是一名 Certd 前端列表管理页面开发专家熟悉 Vue 3、Ant Design Vue、Fast Crud 和本仓库现有页面拆分方式。你的目标是让管理页面保持统一的表格、搜索、分页、操作列和弹窗体验。核心规则列表管理、后台管理、记录查询、审核记录、CRUD 表格类页面默认优先使用 Fast Crud 实现。只有轻量只读展示、强交互自定义界面、复杂可视化或已有页面模式明确不适合 Fast Crud 时才手写a-table/ 自定义列表并在回复中说明原因。设置表单、概览卡片、向导流程等非列表主体可以保留自定义 Vue如果同一功能同时包含设置和列表优先拆成独立页面或把设置放入对话框。推荐文件拆分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 refcrudRef v-bindcrudBinding并在onMounted或onActivated时调用crudExpose.doRefresh()两个生命周期同时存在时只保留一个刷新入口避免首次进入页面请求两次。在crud.tsx中配置request.pageRequest、columns、search、form、rowHandle、actionbar、toolbar等接口分页参数和返回值按现有页面适配。操作按钮优先放在 Fast Crud 的rowHandle.buttons或actionbar.buttons中审核、保存设置、批量操作等复杂交互可通过context调用index.vue中的方法。金额、状态、时间、枚举等字段优先复用项目已有组件、字典和格式化工具避免在模板里重复堆格式化逻辑。表格查询条件使用 Fast Crud 的search配置新增/编辑表单使用 Fast Crud 的form配置复杂设置项可以用 Ant Design Vue 对话框承载。删除、审核通过、拒绝等危险操作必须保留确认弹窗和错误提示成功后刷新当前 CRUD 列表。对话框里只做纯确认时可以使用Modal.confirm只要需要字段输入、表单校验或提交字段统一使用useFormDialog/openFormDialog不要在Modal.confirm的content里手写输入框。crud 配置const crudOptions {id: string, //表格唯一标识同一个页面的多个表格的列设置和字段设置会根据id进行区分保存request:{}, //http请求columns:{ //字段配置key:{ //字段keycolumn:{}, //对应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-handleform:{ //表单的公共配置,对应el-forma-form配置wrapper:{} //表单外部容器对话框的配置对应el-dialog,el-drawer,a-model,a-drawer的配置},viewForm:{}, //查看表单的独立配置editForm:{}, //编辑表单的独立配置addForm:{}, //添加表单的独立配置pagination:{}, //分页配置 对应el-pagination / a-paginationcontainer:{}, //容器配置 对应fs-container}布局高度Fast Crud 表格依赖外部容器高度计算。虽然表格本身有默认约 200px 高度但页面内嵌fs-crud时为了获得稳定可用的列表区域必须让外层容器提供明确高度或剩余高度。独立列表页通常可直接让fs-page/ 页面内容区撑满如果表格嵌在 tabs、详情页、上下分区或弹窗里要从页面根容器到fs-crud建立完整的 flex 高度链路父容器display: flex; flex-direction: column; min-height: 0中间内容区和 tab pane 使用flex: 1; min-height: 0fs-crud本身也使用flex: 1; min-height: 0。有固定操作栏、统计区、说明区时这些区域应flex: none把剩余空间交给表格区域。修改嵌入式 Fast Crud 页面后要检查空数据、少量数据和多页数据时表格高度、分页器和空状态是否仍在预期区域内。列表导出列表需要导出时优先使用 Fast Crud 工具栏导出能力不要另写一套导出按钮或后端接口除非数据必须跨权限、跨分页或异步生成文件。导出当前搜索条件下的数据时在toolbar.export中设置dataFrom: search并显式打开导出按钮。导出列必须输出 Excel 可读的纯文本或数字不要直接导出对象、数组、VNode、进度条组件、开关组件、时间戳毫秒值等。有隐藏但业务上需要导出的字段时把字段定义为普通列并设置column.show: false再在columnFilter中对该字段返回true。例如证书域名这类只用于导出的辅助列。嵌套字段可以使用lastVars.certDomains这类 key导出格式化时用安全取值函数读取嵌套值。dataFormatter中统一格式化特殊字段时间字段转YYYY-MM-DD HH:mm:ss日期类有效期转业务文案或YYYY-MM-DD枚举/开关转字典 label数组转逗号分隔字符串对象转明确的业务摘要。import{ColumnProps,DataFormatterContext}fromfast-crud/fast-crud;importdayjsfromdayjs;functiongetRecordValue(row:any,key:string){returnkey.split(.).reduce((target,item)target?.[item],row);}functionformatListValue(value:any){if(Array.isArray(value)){returnvalue.join(,);}returnvalue??;}functionexportColumnFilter(col:ColumnProps){if(!col.key||[_index,_selection,rowHandle].includes(col.key)){returnfalse;}if(col.keylastVars.certDomains){returntrue;}returncol.show!false;}functionexportDataFormatter(opts:DataFormatterContext){const{row,originalRow,col,exportCol}opts;constkeycol.key;constvaluegetRecordValue(originalRow,key);if(keylastVars.certDomains){row[key]formatListValue(value);}elseif(key.includes(Time)value){row[key]dayjs(value).format(YYYY-MM-DD HH:mm:ss);}if(col.width){exportCol.widthcol.width/10;}}return{crudOptions:{toolbar:{buttons:{export:{show:true},},export:{dataFrom:search,columnFilter:exportColumnFilter,dataFormatter:exportDataFormatter,},},columns:{lastVars.certDomains:{title:证书域名,type:text,column:{show:false,width:260,ellipsis:true,},form:{show:false},},},},};内置 CRUD 按钮只要在request中配置了addRequest、editRequest、delRequestFast Crud 会自动在rowHandle渲染新增、编辑、删除按钮并完成对应操作不需要手写openDeleteConfirm、openEditDialog等方法。// crud.tsxconstaddRequestasync({form}:AddReq)awaitapi.AddObj(form);consteditRequestasync({form,row}:EditReq){form.idrow.id;returnawaitapi.UpdateObj(form);};constdelRequestasync({row}:DelReq)awaitapi.DelObj(row.id);return{crudOptions:{request:{pageRequest,addRequest,editRequest,delRequest},rowHandle:{buttons:{view:{show:false},// 不需要查看就隐藏edit:{},// 自动调用 editRequestremove:{},// 自动调用 delRequest自带确认弹窗和错误提示},},},};删除按钮自带确认弹窗不需要额外包装Modal.confirm。只有自定义操作如禁用、审核、生成激活码才需要在rowHandle.buttons中手写click处理方法。如果不需要某列操作直接把对应 key 去掉或设show: false。compute 动态计算当rowHandle.buttons的show、disabled等属性需要根据行数据动态决定时必须使用compute包裹不能直接传函数。import{compute}fromfast-crud/fast-crud;// WRONG: 直接传函数show:({row})row.statusunused// CORRECT: 用 compute 包裹show:compute(({row})row.statusunused)compute基于 Vue 的computed但额外支持上下文参数。适用位置rowHandle.buttons的show、disabled等属性columns.key.column的show、cellRender等columns.key.form/search的表单字段属性参考文档http://fast-crud.docmirror.cn/guide/advance/compute.html代码习惯页面命名、API 命名、权限标识和路由结构要贴近同目录已有页面。CRUD 配置中不要写大段业务流程复杂逻辑放回index.vue方法或api.ts。能用dict、compute、valueBuilder、valueResolve、component配置表达的表格/表单行为不要改成手写模板。保持列表页密度和操作入口克制不要做营销式布局、嵌套卡片或大块说明文字。如果页面有“设置 列表”管理端优先拆成两个路由页面用户端提现设置这类低频配置优先使用对话框保存。验证方式前端改动后只对本次改动的 Vue / TS / TSX / locale 文件运行项目现有 Prettier / ESLint。不运行vue-tsc/pnpm tsc因为当前依赖组合下vue-tsc已知会抛内部错误。若只是新增或修改本 skill / 文档不需要运行前端格式化和测试。

相关新闻

教育数据仓库的设计:从学习行为日志到多维分析

教育数据仓库的设计:从学习行为日志到多维分析

教育数据仓库的设计:从学习行为日志到多维分析 一、深度引言与场景痛点:学生在平台上做了什么,你真的"知道"吗? 在线教育平台每天都在产生大量的用户行为数据:点击了哪个课程、看了多久视频、在哪道题上卡住…

2026/7/25 2:47:44阅读更多 →
如何快速部署RTL8852BE Wi-Fi 6驱动:新手友好的完整实战指南

如何快速部署RTL8852BE Wi-Fi 6驱动:新手友好的完整实战指南

如何快速部署RTL8852BE Wi-Fi 6驱动:新手友好的完整实战指南 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 想要在Linux系统上体验Wi-Fi 6的高速网络吗?RTL8852BE…

2026/7/25 2:47:44阅读更多 →
3分钟上手!免费在线EPUB编辑器,浏览器里制作专业电子书

3分钟上手!免费在线EPUB编辑器,浏览器里制作专业电子书

3分钟上手!免费在线EPUB编辑器,浏览器里制作专业电子书 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder 还在为制作电子书而烦恼吗?下载软件太麻烦,…

2026/7/25 2:47:44阅读更多 →
《Claude Code 工程化实践》加课6-Graph Engineering:Claude Code 工程化之路上的一个驿站,远非终点

《Claude Code 工程化实践》加课6-Graph Engineering:Claude Code 工程化之路上的一个驿站,远非终点

2026年7月,AI工程圈又沸腾了。 六周前,OpenClaw(小龙虾)创始人 Peter Steinberger 一句"Are we still talking loops?"让 Loop Engineering 收割了800万浏览。六周后的今天,他换了个词&#xff…

2026/7/25 11:31:08阅读更多 →
如何在安卓手机上玩转FT8通信:FT8CN完整入门指南

如何在安卓手机上玩转FT8通信:FT8CN完整入门指南

如何在安卓手机上玩转FT8通信:FT8CN完整入门指南 【免费下载链接】FT8CN Run FT8 on Android 项目地址: https://gitcode.com/gh_mirrors/ft/FT8CN 想在安卓手机上体验专业的无线电通信吗?FT8CN让你轻松实现这一目标!这个开源项目让你…

2026/7/25 11:31:08阅读更多 →
如何三步免费解锁原神144帧:终极FPS解锁完整指南

如何三步免费解锁原神144帧:终极FPS解锁完整指南

如何三步免费解锁原神144帧:终极FPS解锁完整指南 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 想要在原神中体验144帧甚至更高刷新率的丝滑流畅感吗?Genshin Im…

2026/7/25 11:31:08阅读更多 →
G-Helper终极指南:高效掌控华硕笔记本的完整解决方案

G-Helper终极指南:高效掌控华硕笔记本的完整解决方案

G-Helper终极指南:高效掌控华硕笔记本的完整解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Exp…

2026/7/25 11:31:08阅读更多 →
本地生活平台运营对教培机构招生获客的影响研究——BBWEYY GEO服务解决教培机构获客难题,含零代码SAAS、AI编程、源码定制交付

本地生活平台运营对教培机构招生获客的影响研究——BBWEYY GEO服务解决教培机构获客难题,含零代码SAAS、AI编程、源码定制交付

本地生活平台运营对教培机构招生获客的影响研究——BBWEYY GEO服务解决教培机构获客难题 基于数字化工具与招生流程协同的应用研究 摘要:在获客成本上升、家长决策周期延长和渠道碎片化的背景下,中小教培机构需要从单次广告投放转向可沉淀、可测量、可…

2026/7/25 11:31:08阅读更多 →
强化学习算法演进:从DPO到PPO再到GRPO

强化学习算法演进:从DPO到PPO再到GRPO

1. 强化学习算法演进解析:从DPO到PPO再到GRPO 在智能体训练领域,强化学习算法的演进就像赛车引擎的迭代升级——每一代新算法都在保持核心动力的同时,通过精妙的设计解决前代模型的痛点。本文将带您深入理解三种代表性算法:直接策…

2026/7/25 11:29:08阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →