树形视图是为所有启用了“是树形”属性的 DocType 生成的。


树形视图

标准树形 JS

要自定义树形视图,你必须在 doctype 目录中有一个 {doctype}_tree.js 文件。
以下是所有可以自定义的选项。

例如,如果你想配置 Account DocType,你需要创建一个包含以下内容的 account_tree.js 文件。

frappe.treeview_settings["Account"] = {
    breadcrumb: "Accounting",
    title: "Chart of Accounts",

    filters: [
        {
            fieldname: "company",
            fieldtype: "Select",
            label: "Company",
            options: "Company 1\nCompany 2",
            on_change: handle_company_change(),
        },
    ],

    get_tree_nodes: "path.to.whitelisted_method.get_children",
    add_tree_node: "path.to.whitelisted_method.handle_add_account",

    fields: [
        {
            fieldtype: "Data",
            fieldname: "account_name",
            label: "New Account Name",
            reqd: true,
        },
        {
            fieldtype: "Link",
            fieldname: "account_currency",
            label: "Currency",
            options: "Currency",
        },
        {
            fieldtype: "Check",
            fieldname: "is_group",
            label: "Is Group",
        },
    ],

    ignore_fields: ["parent_account"],

    menu_items: [
        {
            label: "New Company",
            action: function () {
                frappe.new_doc("Company", true);
            },
            condition: "frappe.boot.user.can_create.indexOf('Company') !== -1",
        },
    ],

    onload: function (treeview) {},

    post_render: function (treeview) {},

    onrender: function (node) {},

    on_get_node: function (nodes) {},

    extend_toolbar: true,

    toolbar: [
        {
            label: "Add Child",
            condition: function (node) {
                return node && node.is_group;
            },
            click: function (node) {
                frappe.treeview_settings["Account"].add_node(node);
            },
            btnClass: "hidden-xs",
        },
    ],
};