SuperAPI AI 工具集

frappe-syntax-clientscripts

写作与研究

查看项目

更新于 10-15 22:17

技能介绍

用途:为 Frappe/ERPNext 编写浏览器端 Client Script,控制表单 UI 交互。可通过 Setup > Client Script 创建,或放在自定义应用的 public/js/ 下。

主要能力:表单事件注册(setup、refresh、validate、before_save、after_save、字段名事件、before/after_workflow_action、onload_post_render);字段取值与赋值(frm.set_value、frm.doc.fieldname);字段属性控制(toggle_display、toggle_reqd、toggle_enable、set_df_property、set_intro);Link 字段过滤(frm.set_query,含子表与服务端 query);服务端通信(frappe.call、frm.call、frappe.db.get_value/get_list);子表操作(add_child、clear_table、refresh_field、frappe.model.set_value);自定义按钮与主操作;列表视图定制(listview_settings、get_indicator、button、formatters);对话框与提示(frappe.prompt、frappe.ui.Dialog、show_progress、show_alert);翻译 __()。

关键规则:子表修改后必须调用 frm.refresh_field;禁止直接赋值 frm.doc.field,须用 frm.set_value;用户可见字符串用 __();set_query 放在 setup 而非 refresh;避免 async:false;加按钮前检查 frm.is_new();不用 jQuery 直接操作字段;不用全局变量存状态;使用服务端返回前检查 r.message;validate 中用 frappe.throw() 阻止保存。

限制:Client Script 校验仅在浏览器表单视图生效,API 调用与 System Console 会绕过,安全关键校验须配合 Server Script。资料未提供收费、价格与平台信息。