1.目录结构
2.__manifest__.py
3.创建按钮和客户端动作
views/views.xml
<record id="client_action" model="ir.actions.client"> <field name="name">客户端动作</field> <field name="tag">client_action_id</field> </record> <menuitem id="client_action_menuitem" name="自定义页面按钮" action="client_action" parent="menu_root_custom_page" sequence="20"/>
4.自定义页面
static/src/xml/wdc.xml
<?xml version="1.0" encoding="UTF-8"?> <templates id="template01" xml:space="preserve"> <!-- t-name qweb模板名称很重要 --> <t t-name="Wdc"> <div> <!-- 里面可以写自己的页面啦 --> <button id="wdc">wdc</button> </div> </t> </templates>
5.js文件
/static/src/js/wdc.js// js模板名称,可随便写 odoo.define('js_wdc', function (require) { "use strict"; var AbstractAction = require('web.AbstractAction'); var core = require('web.core'); var CustomPageDemo = AbstractAction.extend({ // Qweb模板名称 template: 'Wdc', events: { 'click #wdc': '_onSubmitClick', }, _onSubmitClick: function () { console.log(66666666666666); alert("测试弹出") }, }); // 客户端动作id:client_action_id core.action_registry.add('client_action_id', CustomPageDemo); return CustomPageDemo; });
6.导入js和第三方包
views/templates.xml<odoo> <data> <template id="assets_backend" name="custom page assets" inherit_id="web.assets_backend"> <xpath expr="//script[last()]" position="after"> <script type="text/javascript" src="/odoo_model/static/src/js/demo.js"></script> <link rel="stylesheet" href="/odoo_model/static/src/lib/layui/css/layui.css"></link> <script type="text/javascript" src="/odoo_model/static/src/lib/layui/layui.js"></script> <script type="text/javascript" src="/odoo_model/static/src/js/test.js"></script> <script type="text/javascript" src="/odoo_model/static/src/js/wdc.js"></script> </xpath> </template> </data> </odoo>7.页面效果:点击按钮执行js,弹出弹窗。