页面接口

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()