如何覆盖 Odoo 14 PoS 中的小部件

销售点是 odoo ERP 中最重要的模块之一。在此博客中,我们可以了解如何覆盖 POS 中的小部件。在开始编程之前,我们想知道什么是小部件。小部件是用户界面最重要的构建块,或者我们可以说在 Odoo 中,用户界面中的大多数组件都是使用小部件进行控制的。所以基本上一个小部件可以有一个与之链接的模板。现在让我们看看工作原理,当小部件初始化时,它将渲染模板并将其附加到用户界面中。在这里,我将重写 EditListPopup 小部件。现在让我们看看当我们单击批次和序列号弹出窗口的“确定”按钮时如何显示错误弹出窗口。

现在我们将创建一个自定义模块。自定义模块结构如下所示。

tatic文件夹下创建src文件夹,src.Js文件夹下创建一个名为js的文件夹,包含所有js文件。创建一个名为views的文件夹来继承资产。

销售点中有一个名为 asset 的模板,其中加载了所有脚本。我们必须继承这个模板,并且必须加载我们的js文件。我们必须在 script 标签内指定 js 文件的路径。

js 文件:widget_override.js

首先,我们必须扩展EditListPopup。编辑列表弹出窗口用于显示您公司中产品的序列号和批号操作。下面给出了 EditListPopup。

odoo.define('pos_widget_override.widget_override', function (require) {
'use strict';
 const { useState } = owl.hooks;
 const AbstractAwaitablePopup = require('point_of_sale.AbstractAwaitablePopup');
 const Registries = require('point_of_sale.Registries');
 const { useAutoFocusToLast } = require('point_of_sale.custom_hooks');
 const EditListPopup = require('point_of_sale.EditListPopup')
 var core = require('web.core');
 var _t = core._t;
const WidgetsOverride = (EditListPopup) =>
    
class extends EditListPopup {
    
async confirm(event){
    
this.props.resolve({ confirmed: true, payload: await this.getPayload() });
        
return this.showPopup('错误信息', {
                                    
'title': this.env._t('错误'),
                                    
'body': this.env._t("错误信息"),
                                
});
     
}
}
   Registries.Component.extend(EditListPopup, WidgetsOverride);
  return EditListPopup;
});

首先,我们必须扩展 EditListPopup 小部件并编写在单击“确定”按钮时显示错误弹出窗口的代码。在这里,我们可以根据需要设置要在错误弹出窗口中显示的标题和内容。添加后,将其添加到注册表中。

这是当我们单击“确定”按钮时显示的错误弹出窗口。在这里,我刚刚添加了一个 ErrorPopup 来展示如何覆盖小部件。通过这种方式,我们可以覆盖一个小部件并添加我们想要的任何内容。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的蜗牛..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值