- 表单脚本
- 标准格式脚本
- 创建DocType时,会自动创建可以编写脚本的文件。
- 格式frappe.ui.form.on(doctype, {})
- 格式frappe.ui.form.on(doctype, {})
- 子脚本与父脚本再同一文件中。
- 创建DocType时,会自动创建可以编写脚本的文件。
- 自定义表单脚本
- 通过在系统中创建客户端脚本来编写表单脚本。
- 通过在系统中创建客户端脚本来编写表单脚本。
- 表单事件
- 表单脚本依靠事件来触发,这些事件将frm作为其处理程序函数中的第一个参数。
- setup(frm){}
- 表单首次创建时触发。
- 表单首次创建时触发。
- before_load(frm){}
- 表单即将加载之前触发。
- 表单即将加载之前触发。
- onload(frm){}
- 表单加载完毕即将渲染时触发。
- 表单加载完毕即将渲染时触发。
- refresh(frm){}
- 表单加载渲染时触发。
- 表单加载渲染时触发。
- onload_post_render(frm){}
- 表单加载渲染后触发。
- 表单加载渲染后触发。
- validate(frm){}
- 在before_save之前触发。
- 在before_save之前触发。
- before_save(frm){}
- 调用保存之前触发。
- 调用保存之前触发。
- after_save(frm){}
- 表单保存之后触发。
- 表单保存之后触发。
- before_submit(frm){}
- 提交之前触发。
- 提交之前触发。
- on_submit(frm){}
- 提交之后触发。
- 提交之后触发。
- before_cancel(frm){}
- 取消操作之前触发。
- 取消操作之前触发。
- after_cancel(frm){}
- 表单取消之后触发。
- 表单取消之后触发。
- before_discard(frm){}
- 调用discard之前触发。
- 调用discard之前触发。
- after_discard(frm){}
- 表单丢弃后触发。
- 表单丢弃后触发。
- timeline_refresh(frm){}
- 表单时间轴渲染后触发。
- 表单时间轴渲染后触发。
- {filedname}_on_form_rendered(frm){}
- 表格字段中的行为作为表单被打开时触发。
- 表格字段中的行为作为表单被打开时触发。
- {fieldname}(frm){}
- fieldname的值改变时触发。
- fieldname的值改变时触发。
- get_email_recipient_filters(frm,field){}
- 由电子邮件对话框调用,获取电子邮件收件人的默认过滤器。
- 由电子邮件对话框调用,获取电子邮件收件人的默认过滤器。
- get_email_recipients(frm,field){}
- 由电子邮件对话框调用,获取默认收件人。
- 由电子邮件对话框调用,获取默认收件人。
- 表单脚本依靠事件来触发,这些事件将frm作为其处理程序函数中的第一个参数。
- 子表事件
- 这些事件在子表上下文中触发。因此,除了 之外frm,它们还将在其处理程序函数中获得cdt(Child DocType) 和cdn(Child Docname) 参数。
- before_{fieldname}_remove(frm,cdt,cdn){}
- 表字段中删除一行时触发。
- 表字段中删除一行时触发。
- {fieldname}_add(frm,cdt,cdn){}
- 表字段中添加一行时触发。
- 表字段中添加一行时触发。
- {fieldname}_remove(frm,cdt,cdn){}
- 表字段中删除一行时触发。
- 表字段中删除一行时触发。
- {feildname}_move(frm,cdt,cdn){}
- 重新排序到表字段中的另一个位置时触发。
- 重新排序到表字段中的另一个位置时触发。
- form_ender(frm,cdt,cdn){}
- 表格字段中的行作为表格打开时触发。
- 表格字段中的行作为表格打开时触发。
- 这些事件在子表上下文中触发。因此,除了 之外frm,它们还将在其处理程序函数中获得cdt(Child DocType) 和cdn(Child Docname) 参数。
- 表单API
- frm.set_value()
- 设置字段的值。
- 设置字段的值。
- frm.refresh()
- 刷新表单。
- 刷新表单。
- frm.save()
- 保存表单,传入其他操作参数,可以触发其他操作,例如提交、取消、更新。
- 保存表单,传入其他操作参数,可以触发其他操作,例如提交、取消、更新。
- frm.enable_save()、frm.disable_save()
- 启用、禁用表单中保存按钮方法。
- 启用、禁用表单中保存按钮方法。
- frm.email_doc()
- 打开此表单的电子邮件对话框。
- 打开此表单的电子邮件对话框。
- frm.reload_doc()
- 重新加载文档。
- 重新加载文档。
- frm.refresh_field()
- 刷新字段及其依赖项。
- 刷新字段及其依赖项。
- frm.is_dirty()
- 返回布尔类型,检查表单是否更改和保存。
- 返回布尔类型,检查表单是否更改和保存。
- frm.dirty()
- 将表单设置为为保存状态,调用保存方法时需要先将表单设置为为保存状态,不然会提示文档没有修改的提示。
- 将表单设置为为保存状态,调用保存方法时需要先将表单设置为为保存状态,不然会提示文档没有修改的提示。
- frm.is_new()
- 判断表单是否是新创建并且未保存的。
- 判断表单是否是新创建并且未保存的。
- frm.set_into(message,color)
- 设置表单顶部的文本介绍。
- 设置表单顶部的文本介绍。
- frm.add_custom_button()
- 在页面顶部的内部工具栏中添加自定义按钮。
- 在页面顶部的内部工具栏中添加自定义按钮。
- frm.change_custom_button_type()
- 通过标签和组更改特定的自定义按钮类型。
- 通过标签和组更改特定的自定义按钮类型。
- frm.remove_custom_button()
- 删除自定义按钮。
- 删除自定义按钮。
- frm.clear_custom_buttons()
- 删除内部工具栏所有自定义按钮。
- 删除内部工具栏所有自定义按钮。
- frm.set_df_property()
- 修改字段的docfield属性并且刷新字段。
- 修改字段的docfield属性并且刷新字段。
- frm.toggle_enable()
- 根据条件切换字段或字段列表。
- 根据条件切换字段或字段列表。
- frm.toggle_reqd()
- 根据条件将某个字段或字段列表切换未必填项。
- 根据条件将某个字段或字段列表切换未必填项。
- frm.toggle_display()
- 根据条件显示或隐藏字段属性列表。
- 根据条件显示或隐藏字段属性列表。
- frm.set_qurey()
- 在链接字段上应用过滤以显示有限记录。
- 在链接字段上应用过滤以显示有限记录。
- frm.add_child()
- 表字段添加一行内容。
- 表字段添加一行内容。
- frm.call()
- 使用参数调用服务器端控制器方法,必须是使用@frappe.whitelist装饰器的白名单方法。
- 使用参数调用服务器端控制器方法,必须是使用@frappe.whitelist装饰器的白名单方法。
- frm.ui.form.on()
- 触发器,可以触发所有表单事件。
- 触发器,可以触发所有表单事件。
- frm.get_selected()
- 获取对象中子表选定的行,key是表字段名称,value是行名称。
- 获取对象中子表选定的行,key是表字段名称,value是行名称。
- frm.ignore_doctypes_on_cancel_all()
- 设置文档链接取消时,不需要取消的文档。
- 设置文档链接取消时,不需要取消的文档。
- frm.set_value()
- 控制
- frappe.ui.form.make_control({parent,df})
- 根据df属性制作frappe控件,附加到parent容器中。
- 根据df属性制作frappe控件,附加到parent容器中。
- frappe.meta.docfield_map
- 可以通过将文本类型对象(数据、选择、文本等)的自定义格式化程序添加到docfield以下对象。
- 可以通过将文本类型对象(数据、选择、文本等)的自定义格式化程序添加到docfield以下对象。
- frappe.ui.form.make_control({parent,df})
- 列表
- 为所有文档类型生成列表视图,除子表和单一文档类型之外。
- 标准自定义列表视图必须要在doctype目录下创建{doctype}_list.js文件,文件下包含以下内容。
- frappe.listview_settings[doctype] = {}
- 所有列表操作在该触发器下。
- 所有列表操作在该触发器下。
- add_fields: []
- 添加要获取的字段。
- 添加要获取的字段。
- filters: []
- 设置默认筛选器。
- 设置默认筛选器。
- hide_name_column: true
- 隐藏显示“name”的最后一列`。
- 隐藏显示“name”的最后一列`。
- hide_name_filter: true
- 隐藏名称列的默认筛选字段。
- 隐藏名称列的默认筛选字段。
- onload(listview){}
- 在加载列表之前触发一次。
- 在加载列表之前触发一次。
- before_render() {}
- 在每次渲染列表记录之前触发。
- 在每次渲染列表记录之前触发。
- has_indicator_for_draft: false
- 草稿文档上是否应用指标功能。
- 草稿文档上是否应用指标功能。
- get_indicator(doc) {}
- 自定义指示器颜色。
- 自定义指示器颜色。
- primary_action() {}
- 单击主要操作时触发。
- 单击主要操作时触发。
- get_form_link(doc) {}
- 覆盖此文档的表单路径。
- 覆盖此文档的表单路径。
- button: {}
- 为每一行添加一个自定义按钮。
- show: function(doc) {}
- get_label: function() {}
- get_description: function(doc) {}
- action: function(doc) {}
- 为每一行添加一个自定义按钮。
- formatters: {}
- 格式化字段值的显示方式
- 格式化字段值的显示方式
- frappe.listview_settings[doctype] = {}
- 自定义列表JS
- 可以通过系统中创建客户端脚本来自定义列表视图。
- frappe.listview_settings[doctype].formatters = {}
- 通过脚本的方式格式化字段值显示的方式。
- 通过脚本的方式格式化字段值显示的方式。
- 可以通过系统中创建客户端脚本来自定义列表视图。
- 列表JS中的多个按钮
- dropdown_button:{}
- get_label: __()
- buttons: []
- get_label: __()
- dropdown_button:{}
- 为所有文档类型生成列表视图,除子表和单一文档类型之外。
- 页面API
- 桌面内的每个屏幕都渲染在一个frappe.ui.Page对象内。
- frappe.ui.Page({title,parent,single_column})
- 创建一个新页面,并将附加到父页面。
- 创建一个新页面,并将附加到父页面。
- 页面方法
- 页面实例对象上常用的方法。
- page.set_title()
- 与文档标题一起设置页面标题,文档标题显示在浏览器选项卡中。
- 与文档标题一起设置页面标题,文档标题显示在浏览器选项卡中。
- page.set_title_sub()
- 设置页面的二级标题,显示在页眉右侧。
- 设置页面的二级标题,显示在页眉右侧。
- page.set_indicator()
- 设置页面指示器的标签和颜色。
- 设置页面指示器的标签和颜色。
- page.clear_indicator()
- 清楚指示器的标签和颜色。
- 清楚指示器的标签和颜色。
- page.set_primary_action()
- 设置主要操作按钮的标签、方法和图标。
- 设置主要操作按钮的标签、方法和图标。
- page.clear_primary_action()
- 清除主要操作按钮和方法。
- 清除主要操作按钮和方法。
- page.set_secondary_action()
- 设置辅助操作按钮标签、方法和图标。
- 设置辅助操作按钮标签、方法和图标。
- page.clear_secondary_action()
- 清除辅助操作按钮和方法。
- 清除辅助操作按钮和方法。
- page.add_menu_item()
- 在下拉菜单中添加菜单选项的标签和方法。
- 在下拉菜单中添加菜单选项的标签和方法。
- page.clear_menu()
- 清除下拉菜单选项。
- 清除下拉菜单选项。
- page.add_action_item()
- 在操作下拉菜单中添加才当项。
- 在操作下拉菜单中添加才当项。
- page.clear_action_menu()
- 清除带有项目的操作下拉菜单。
- 清除带有项目的操作下拉菜单。
- page.add_inner_button()
- 在内部工具栏中添加按钮的标签和方法。
- 在内部工具栏中添加按钮的标签和方法。
- page.change_inner_button_type()
- 通过标签更改自定义按钮类型。
- 通过标签更改自定义按钮类型。
- page.remove_inner_button()
- 根据标签删除内部按钮。
- 根据标签删除内部按钮。
- page.clear_inner_toolbar()
- 删除内部工具栏。
- 删除内部工具栏。
- page.add_filed({})
- 在页面标签工具栏添加表单控件。
- 在页面标签工具栏添加表单控件。
- page.get_form_valeus()
- 从对象页面表单工具获取所有表单值。
- 从对象页面表单工具获取所有表单值。
- page.clear_fields()
- 清除页面表单工具栏中的所有字段。
- 页面实例对象上常用的方法。
- 桌面内的每个屏幕都渲染在一个frappe.ui.Page对象内。
- 标准格式脚本
- Tree
- 为所有启用了'树'的DocType生成树视图。
- 为所有启用了'树'的DocType生成树视图。
- 标准树的JS
- 要自定义树视图,必须先子啊doctype目录中创建{doctype}_tree.js文件。
- {doctype}_tree.js文件包含的属性方法
- breadcrumb
- title
- filters:[{fieldname,fieldtype,options,label,on_change: handle_company_change()}]
- get_tree_nodes
- add_tree_node
- fields:[{fieldtype,fieldname,label,reqd}]
- 新节点的字段。
- 新节点的字段。
- ignore_fields:[]
- 忽略字段,即使是必填字段。
- 忽略字段,即使是必填字段。
- menu_items:[{label,action,condition}]
- 添加自定义按钮。
- 添加自定义按钮。
- onload
- 当树视图被实例化时触发。
- 当树视图被实例化时触发。
- post_render
- 当树被通知时触发。
- 当树被通知时触发。
- onrender
- 当节点被通知时触发。
- 当节点被通知时触发。
- on_get_node
- 当`get_tree_nodes`返回节点时触发。
- 当`get_tree_nodes`返回节点时触发。
- extend_toolbar
- 每个节点旁边显示的自定义按钮。
- 每个节点旁边显示的自定义按钮。
- toolbar:[{label,condition,click,btnClass}]
- breadcrumb
- 要自定义树视图,必须先子啊doctype目录中创建{doctype}_tree.js文件。
- 通用实用程序API
- frappe.get_route()
- 获取当前路线数组。
- 获取当前路线数组。
- frappe.set_route()
- 修改当前路线。
- 修改当前路线。
- frappe.format(value,df,options,doc)
- 将原始数据格式化。
- 将原始数据格式化。
- frappe.provide(namespace)
- 创建一个附加到窗口对象的命名空间。
- 创建一个附加到窗口对象的命名空间。
- frappe.require(asset_path,callback)
- 异步加载JS或CSS资源。
- 异步加载JS或CSS资源。
- frappe.get_route()
- 对话框API
Frappe中JavaScript的API