odoo17 owl 前端 顶部导航栏右侧添加自定义按钮

odoo17 前端 顶部导航栏右侧添加自定义按钮

先看图

很多时候都想要在这添加个自定义按钮或图标, 无穷下手添加

这里将展示如何在顶部header添加自定义

添加自定义模块 demo

目录结构如下

复制代码
└─demo
    │  __init__.py
    │  __manifest__.py
    │
    ├─static
    │  └─src
    │      ├─systray_demo
    │      │      systray_demo.js
    │      │      systray_demo.xml

这个比较简单, 本次只做添加并响应, 不做任何逻辑处理

添加上来后显示如图

上代码

systray_demo.js 文件

js 复制代码
/** @odoo-module **/

import {registry} from "@web/core/registry";
import {Component} from "@odoo/owl";

export class DemoItem extends Component {
    static template = "demo.SystrayDemoItem";  // 指定渲染的模板
    static props = {};

    setup() {
        this.Dmmessage = 'hello world';
    }
	// 点击后执行的方法
    onClick() {
        alert(this.Dmmessage);
    }
}
// 必须要使用这个, 然后继承操作, 不然不会显示在首页
// 当然如果有需求显示, 可在isDisplayed 方法中判断,符合条件再显示
export const systrayItem = {
    Component: DemoItem,
    isDisplayed: function (env) {
        return true;
    },
};

// 在systray 类别中添加自己定义的
registry.category("systray").add("SystrayDemoItem", systrayItem);

systray_demo.xml 这个文件就比较简单了, 制作简单的显示

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<templates xml:space="preserve">
    <t t-name="demo.SystrayDemoItem">
        <div>
            <span t-on-click="onClick">hello</span>
        </div>
    </t>
</templates>

好了, 当点击hello后执行js方法操作

如需应变各种需求, 还需要写xml和js方法来适配, 下拉等多种方法

结束

相关推荐
BillKu4 分钟前
Axios中POST、PUT、PATCH用法区别
前端·vue.js
好奇的菜鸟1 小时前
掌握 npm 核心操作:从安装到管理依赖的完整指南
前端·npm·node.js
肥肠可耐的西西公主2 小时前
前端(小程序)学习笔记(CLASS 2):WXML模板语法与WXSS模板样式
前端·学习·小程序
逆袭的菜鸟X3 小时前
RxJS 高阶映射操作符详解:map、mergeMap 和 switchMap
前端
bubiyoushang8883 小时前
HTML5的新语义化标签
前端·html·html5
会飞的鱼先生4 小时前
vue3自定义指令来实现 v-copy 功能
前端·javascript·vue.js
陈天伟教授4 小时前
Web前端开发 - 制作简单的焦点图效果
java·开发语言·前端·前端开发·visual studio
_殊途4 小时前
前端三件套之html详解
前端·html
不思念一个荒废的名字5 小时前
【黑马JavaWeb+AI知识梳理】后端Web基础03 - MySQL概述
前端·数据库·mysql
橙子199110166 小时前
谈谈 Kotlin 中的构造方法,有哪些注意事项?
java·前端·kotlin