1

我在https://www.odoo.com/apps/modules/8.0/web_menu_hide_8.0/上安装了网络隐藏菜单

我修改为在 Odoo 10 上使用它,但是如果我们按下隐藏按钮,表单将调整为全宽,如果我们在按下隐藏按钮后更改为另一个视图,表单页面将保持与原始页面相同(不完整宽度)。

所以我需要在页面渲染后在表单视图上调整类“o_form_sheet”。我可以知道如何使用 javascript 做到这一点吗?我需要扩展哪个类和方法?

4

1 回答 1

0

我要回答我自己的问题。经过一番研究,我发现最好的选择是使用 load_views 函数继承 ViewManager 小部件。

var ViewManager = require('web.ViewManager');

ViewManager.include({
    load_views: function (load_fields) {
        var self = this;

        // Check if left menu visible
        var root=self.$el.parents();
        var visible=(root.find('.o_sub_menu').css('display') != 'none')
        if (visible) {
            // Show menu and resize form components to original values
            root.find('.o_form_sheet_bg').css('padding', self.sheetbg_padding);
            root.find('.o_form_sheet').css('max-width', self.sheetbg_maxwidth);
            root.find('.o_form_view div.oe_chatter').css('max-width', self.chatter_maxwidth);
        } else {
            // Hide menu and save original values
            self.sheetbg_padding=root.find('.o_form_sheet_bg').css('padding');
            root.find('.o_form_sheet_bg').css('padding', '16px');
            self.sheetbg_maxwidth=root.find('.o_form_sheet').css('max-width');
            root.find('.o_form_sheet').css('max-width', '100%');
            self.chatter_maxwidth=root.find('.o_form_view div.oe_chatter').css('max-width');
            root.find('.o_form_view div.oe_chatter').css('max-width','100%');
        }

        return this._super.apply(this, arguments, load_fields);
    },
});
于 2017-09-05T00:59:32.000 回答