Desk 中的每个屏幕都渲染在一个 frappe.ui.Page 对象内。
frappe.ui.make_app_page
创建一个新的页面并将其附加到父级。
let page = frappe.ui.make_app_page({
title: 'My Page',
parent: wrapper // HTML DOM Element or jQuery object
single_column: true // create a page without sidebar
})
新建页面
页面方法
本节列出了页面实例对象上可用的常用方法。
page.set_title
设置页面标题以及文档标题。文档标题显示在浏览器标签页中。
page.set_title('My Page')
页面标题
page.set_title_sub
设置页面的副标题。它显示在页面标题的右侧。
page.set_title_sub('Subtitle')
页面副标题
page.set_indicator
设置指示器的标签和颜色。
page.set_indicator('Pending', 'orange')
页面指示器
page.clear_indicator
清除指示器的标签和颜色。
page.clear_indicator()
page.set_primary_action
设置主要操作按钮的标签和处理函数。第三个参数是图标类,将在移动视图中显示。
let $btn = page.set_primary_action('New', () => create_new(), 'octicon octicon-plus')
页面主要操作
page.clear_primary_action
清除主要操作按钮和处理函数。
page.clear_primary_action()
page.set_secondary_action
设置次要操作按钮的标签和处理函数。第三个参数是图标类,将在移动视图中显示。
let $btn = page.set_secondary_action('Refresh', () => refresh(), 'octicon octicon-sync')
页面次要操作
page.clear_secondary_action
清除次要操作按钮和处理函数。
page.clear_secondary_action()
page.add_menu_item
在菜单下拉框中添加菜单项。
// add a normal menu item
page.add_menu_item('Send Email', () => open_email_dialog())
// add a standard menu item
page.add_menu_item('Send Email', () => open_email_dialog(), true)
页面菜单下拉框
page.clear_menu
移除包含菜单项的下拉菜单。
page.clear_menu()
page.add_action_item
在操作下拉框中添加菜单项。
// add a normal menu item
page.add_action_item('Delete', () => delete_items())
页面操作下拉框
page.clear_actions_menu
移除包含菜单项的操作下拉菜单。
page.clear_actions_menu()
page.add_inner_button
在内部工具栏中添加按钮。
// add a normal inner button
page.add_inner_button('Update Posts', () => update_posts())
页面内部按钮
// add a dropdown button in a group
page.add_inner_button('New Post', () => new_post(), 'Make')
页面内部按钮组
page.change_custombuttontype
通过标签(和组)更改特定自定义按钮的类型。
// change type of ungrouped button
page.change_inner_button_type('Update Posts', null, 'primary');
// change type of a button in a group
page.change_inner_button_type('Delete Posts', 'Actions', 'danger');
page.remove_inner_button
移除内部工具栏中的按钮。
// remove inner button
page.remove_inner_button('Update Posts')
// remove dropdown button in a group
page.remove_inner_button('New Posts', 'Make')
page.clear_inner_toolbar
移除内部工具栏。
page.clear_inner_toolbar()
page.add_field
在页面表单工具栏中添加一个表单控件。
let field = page.add_field({
label: 'Status',
fieldtype: 'Select',
fieldname: 'status',
options: [
'Open',
'Closed',
'Cancelled'
],
change() {
console.log(field.get_value());
}
});
页面表单工具栏
page.get_form_values
以对象形式获取页面表单工具栏中的所有表单值。
let values = page.get_form_values()
// { status: 'Open', priority: 'Low' }
page.clear_fields
清除页面表单工具栏中的所有字段。
page.clear_fields()