我需要在POS中放一个按钮来清除订单行,但我创建的按钮实际上在产品屏幕中,我尝试了这个:
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="ClearCartLine">
<div class='control-button'>
Boton prueba
</div>
</t>
</templates>
js是这样的:
odoo.define('clear_button_fun.pos_view',函数(require({"使用严格的";;
var screens = require('point_of_sale.screens');
var gui = require('point_of_sale.gui');
var core = require('web.core');
var ClearCartLine = screens.ActionButtonWidget.extend({
template: "ClearCartLine",
button_click: function(){
var self = this;
this.clear_button_fun();
},
clear_button_fun(){
var order = this.pos.get_order();
order.remove_orderline(order.get_selected_orderline())
},
});
screens.define_action_button({'name': 'clear_button_fun','widget': ClearCartLine,});
});
我需要按钮在这样的位置:
我需要按钮在这样的位置:
您可以更改PaymentscreenWidge
模板以添加按钮
示例:
<t t-extend="PaymentScreenWidget">
<t t-jquery="div.payment-buttons" t-operation="append">
<div class='button highlight js_clear_orderline'>
<i class='fa fa-cog' role="img" aria-label="Clear" title="Clear"/>
<span class='js_clear_orderline'>
Boton prueba
</span>
</div>
</t>
</t>
然后通过更改renderElement
功能在PaymentScreenWidget
中定义点击事件
示例:
var screens = require('point_of_sale.screens');
screens.PaymentScreenWidget.include({
renderElement: function() {
var self = this;
this._super();
this.$('.js_clear_orderline').click(function(){
});
},
});