SuperAPI AI 工具集

frappe-desk-customization

编程与开发

查看项目

更新于 10-16 00:01

技能介绍

用途:定制 Frappe Desk 管理界面,通过表单脚本、列表视图脚本、对话框和客户端 JavaScript API 为 DocType 增加交互行为。

主要能力:添加自定义按钮与操作;动态过滤 Link 字段;按条件切换字段显隐;定制列表视图状态指示器与批量操作;构建交互式对话框与提示;保存前做客户端校验;通过 hooks 向其他应用的 DocType 注入脚本。

脚本类型:应用级表单脚本位于 <app>/<module>/doctype/<doctype>/<doctype>.js,受版本控制;Client Script 存于数据库,用于站点特定定制;Hook 注入脚本经 hooks.py 的 doctype_js 与 doctype_list_js 实现,可扩展其他应用 DocType。

常用用法:用 frappe.ui.form.on 绑定 setup、refresh、validate、before_save、after_save 及字段变更事件;用 frappe.prompt、frappe.ui.Dialog、frappe.confirm 构建对话框;用 frappe.call 或 frappe.xcall 调用服务端方法;用 frappe.listview_settings 定制列表;用 frappe.realtime.on 监听实时事件;用 frappe.set_route 与 frappe.route_options 导航。添加 hook 脚本后执行 bench build --app my_app。

适用场景:表单按钮与动作、Link 字段筛选、条件显隐、列表指示器与批量操作、交互对话框、保存前校验、跨应用 DocType 扩展。

限制与注意:使用 frm.doc 而非 doc;校验放在 validate 事件;frappe.call 为异步,需回调或 await;字段变更后调用 frm.refresh_field;注意检查 frm.is_new() 与 frm.doc.docstatus;事件名区分大小写;脚本未加载时检查路径并重跑 bench build。服务端控制器、RPC 端点及 Vue 3 前端另有对应技能。具体版本、收费与平台信息暂未提供。