我已经坚持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”。
答案 0 :(得分:0)
我通过用以下代码替换代码 new screens.ProductScreenWidget(this).print_order(r); 解决了我的问题:
screens.ProductScreenWidget.prototype.print_order(r);