如何在Odoo 12中向现有窗口小部件屏幕添加自定义html

时间:2019-06-14 04:47:55

标签: javascript html odoo

我已经坚持3天了。我正在尝试打印订单商品。我想要的是,当我单击“订购”按钮时,它会向具有“订购印刷”类的div中添加自定义html代码。

我使用了odoo 12,并遇到了JavaScript问题。我已经尝试了一些代码,但是没有用。

我使用了以下代码,并且没有将html设置为“ .print-order”。

new screens.ProductScreenWidget(this).print_order(r);

在multiprint.js中:

function send_printing_job(){
    if(self.receipt_queue.length > 0){
                var r = self.receipt_queue.shift();
                var options = {shadow: true, timeout: 5000};
                //console.log(r);
                printReceipt(r);
                //self.connection.rpc('/hw_proxy/print_xml_receipt', {receipt: r}, options)
                //    .then(function(){
                //        send_printing_job();
                //    },function(error, event){
                //        self.receipt_queue.unshift(r);
                //        console.log('There was an error while trying to print the order:');
                //        console.log(error);
                //    });
            }
        }
        function printReceipt(r){
            //ProductScreenWidget.render_receipt(r);
            //screens.products.render_order_print(r);

            new screens.ProductScreenWidget(this).print_order(r);
            window.print();
        }

在multiprint.js中

var ProductScreenWidget = ScreenWidget.extend({
    template:'ProductScreenWidget',
...
print_order: function(r){
        console.log(r);
        this.$('order-print').html(r);
    },

在pos.xml中:

<t t-name="ProductScreenWidget">
...
<div class="order-print"></div>
...

我可以使console.log正常工作,但不会将html设置为现有元素类“ order-print”。

1 个答案:

答案 0 :(得分:0)

我通过用以下代码替换代码 new screens.ProductScreenWidget(this).print_order(r); 解决了我的问题:

screens.ProductScreenWidget.prototype.print_order(r);