首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Odoo 11的自定义模块中修改Odoo的Javascript代码

在Odoo 11的自定义模块中修改Odoo的Javascript代码
EN

Stack Overflow用户
提问于 2018-10-15 14:49:50
回答 1查看 162关注 0票数 0

我需要重写这段代码:

代码语言:javascript
复制
var _onCarrierUpdateAnswer = function(result) {
var $amount_delivery = $('#order_delivery span.oe_currency_value');
var $amount_untaxed = $('#order_total_untaxed span.oe_currency_value');
var $amount_tax = $('#order_total_taxes span.oe_currency_value');
var $amount_total = $('#order_total span.oe_currency_value');
var $carrier_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .badge.hidden');
var $compute_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .o_delivery_compute');
if (result.status === true) {
    $amount_delivery.text(result.new_amount_delivery);
    $amount_untaxed.text(result.new_amount_untaxed);
    $amount_tax.text(result.new_amount_tax);
    $amount_total.text(result.new_amount_total);
    $carrier_badge.children('span').text(result.new_amount_delivery);
    $carrier_badge.removeClass('hidden');
    $compute_badge.addClass('hidden');
    $pay_button.prop('disabled', false);
}
else {
    console.error(result.error_message);
    $compute_badge.text(result.error_message);
    $amount_delivery.text(result.new_amount_delivery);
    $amount_untaxed.text(result.new_amount_untaxed);
    $amount_tax.text(result.new_amount_tax);
    $amount_total.text(result.new_amount_total);
}
};

来自website_sale_delivery.checkout,在Odoo11。

如何在自定义模块中修改此代码?

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 05:07:18

您可以通过断开click事件的当前代码执行并连接click事件处理程序的自定义代码来完成此操作。以下是基于您的建议的代码的复制/粘贴修改版本,应该可以工作。

代码语言:javascript
复制
var _onCarrierUpdateAnswer = function(result) {
    var $amount_delivery = $('#order_delivery span.oe_currency_value');
    var $amount_untaxed = $('#order_total_untaxed span.oe_currency_value');
    var $amount_tax = $('#order_total_taxes span.oe_currency_value');
    var $amount_total = $('#order_total span.oe_currency_value');
    var $carrier_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .badge.hidden');
    var $compute_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .o_delivery_compute');
    if (result.status === true) {
        $amount_delivery.text(result.new_amount_delivery);
        $amount_untaxed.text(result.new_amount_untaxed);
        $amount_tax.text(result.new_amount_tax);
        $amount_total.text(result.new_amount_total);
        $carrier_badge.children('span').text(result.new_amount_delivery);
        $carrier_badge.removeClass('hidden');
        $compute_badge.addClass('hidden');
        // your change
        $pay_button.prop('disabled', true);
    }
    else {
        console.error(result.error_message);
        $compute_badge.text(result.error_message);
    }
};

var _onCarrierClick = function(ev) {
    $pay_button.prop('disabled', true);
    var carrier_id = $(ev.currentTarget).val();
    var values = {'carrier_id': carrier_id};
    ajax.jsonRpc('/shop/update_carrier', 'call', values)
      .then(_onCarrierUpdateAnswer);
};

var $carriers = $("#delivery_carrier input[name='delivery_type']");
$carriers.off('click');
$carriers.click(_onCarrierClick);

您将注意到如何使用$carriers.off('click');断开Odoo代码的连接,以及如何使用$carriers.click(_onCarrierClick);将单击事件处理程序再次放入原始代码的修改版本中运行您的自定义代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52811145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档