网易首页 > 网易号 > 正文 申请入驻

如何在Odoo中有效地创建状态栏、复选框、单选按钮等字段小组件

0
分享至

本文节选自Odoo亚太金牌服务机构【开源智造】所编写的《ERP真的免费不花钱——Odoo应用指南》如需获取完整的知识内容,请至开源智造官网免费获取。感谢网友一键三连:点赞、转发、收藏,您的支持是我们最大的前进动力!

小组件代表 Odoo 中的显示屏幕、字段和属性。它允许我们使用不同的渲染模板自定义视图,它还允许我们根据自己的需求进行设计,这将有助于我们使开发更快、更简单、可扩展和更高效。

在 Odoo 中,我们有各种字段小组件,例如状态栏、复选框、单选按钮、浮点数、百分比、颜色选择器、URL 等等。

字段小组件允许我们根据其类型定义特定的字段规范。简而言之,字段组件帮助我们在我们的领域执行某些任务,这使得在 Odoo 中工作更便捷。

就“进度条”小组件来说,它以浮动字段的百分比显示值表示。“进度条”小组件的功能也是如此。因此,我们可以使用小组件添加自定义字段函数。

在这篇博客中,让我们看看如何在Odoo中创建一个字段小组件。

创建字段小组件的基本步骤

1. 创建一个小组件
import { FieldChar } from 'web.basic_fields';

var CustomFieldChar = FieldChar.extend({

_renderReadonly: function () {

// implement some custom logic here

},

2. 在字段注册表中注册小组件

import fieldRegistry from 'web.field_registry';

fieldRegistry.add('custom-field-widget', CustomFieldWidget);

3.在视图中添加小组件

让我们以创建一个小组件 new_progress_bar'的示例,它与“进度条”小组件具有相同的功能。该小组件用于浮点型字段,让我们将现有的进度条更改为新样式。

现有进度条(widget=”progressbar”):-

新进度条(widget=”progress_bar_widget”):-

要创建一个新的字段小组件,首先,我们需要创建一个名为 progress_bar_widget 的模块。然后为其添加 JS、CSS 和 XML 文件。

您可以将文件添加到模块中,如下所示:

让我们在js文件中添加以下代码:

Progress_bar_widget.js:-

/** @odoo-module **/

import AbstractField from 'web.AbstractField';

import fieldRegistry from 'web.field_registry';

var ProgressBarWidget = AbstractField.extend({

template: "ProgressBarWidget",

start: function(){

this._super.apply(this, arguments);

if (this.recordData[this.nodeOptions.currentValue]){

this.value = this.recordData[this.nodeOptions.currentValue]

},

_render: function() {

var self = this;

var value = this.value;

var max_value = 100;

value = value || 0;

var widthComplete;

if (value <= max_value){

widthComplete = parseInt(value/max_value * 100);

else{

widthComplete = 100;

this.$('.progress_number').text(widthComplete.toString() + '%');

this.$('.progress-bar-inner').css('width', widthComplete + '%');

},

fieldRegistry.add('progress_bar_widget', ProgressBarWidget);

Abstract字段是用于一目了然地呈现字段的基本字段组件。创建的组件将注册到field_registry。

与我们使用的Odoo 14 js相比:

import WidgetName from 'module_name.WidgetName'; instead of web.require('module_name.WidgetName'); and removed theodoo.define('module_name.WidgetName', function(require){

'use strict';

//code

在代码的开头添加 /** @odoo-module **/

现在您需要将以下 XML 代码添加到组件设置的模板中。模板根据标准的 Odoo 模块格式加载到static/src/xml文件夹中。

Progress_bar_widget.xml:-

现在我们需要为这个组件添加 CSS 来设计我们的进度条。

将以下代码添加到文件中:

Progress_bar_widget.css:-

.progress_bar .pro-bar {

background: hsl(0, 0%, 97%);

box-shadow: 0 1px 2px hsla(0, 0%, 0%, 0.1) inset;

height: 4px;

width: 200px;

margin-bottom: 15px;

margin-top: 10px;

position: relative;

.progress_bar .progress_bar_title{

color: hsl(218, 4%, 50%);

font-size: 15px;

font-weight: 300;

position: relative;

top: -28px;

z-index: 1;

.progress_bar .progress_number {

float: right;

margin-top: -6px;

margin-right: -50px;

.progress_bar .progress-bar-inner {

background-color: green;

display: block;

width: 0;

height: 100%;

position: absolute;

top: 0;

left: 0;

transition: width 1s linear 0s;

.progress_bar .progress-bar-inner:before {

content: "";

background-color: hsl(0, 0%, 100%);

border-radius: 50%;

width: 4px;

height: 4px;

position: absolute;

right: 1px;

top: 0;

z-index: 1;

.progress_bar .progress-bar-inner:after {

content: "";

width: 14px;

height: 14px;

background-color: inherit;

border-radius: 50%;

position: absolute;

right: -4px;

top: -5px;

然后将添加的文件加载到Assets和 Odoo 15 Assets文件中,我们可以将文件添加到清单中,如下所示:

'assets': {

'web.assets_backend': {

'/progress_bar_widget/static/src/css/progress_bar_widget.css',

'/progress_bar_widget/static/src/js/progress_bar_widget.js',

},

'web.assets_qweb': {

'/progress_bar_widget/static/src/xml/progress_bar_widget.xml',

},

},

这就是我们在 Odoo 15 中创建字段小组件的方式。

我们可以通过使用widget=''progress_bar_widget''在字符字段中使用创建的小组件。

例如:

要显示小组件,请创建一个模块并添加这些文件,并创建一些字段以获取值。

通过这种方式,您可以轻松地在Odoo中创建字段小组件,如您对此类问题还有任何疑问都可以私信联系我们OSCG开源智造,我们将为您提供专业的Odoo咨询服务及ERP解决方案。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
打进本届美洲杯首球,阿尔瓦雷斯当选阿根廷vs加拿大全场最佳

打进本届美洲杯首球,阿尔瓦雷斯当选阿根廷vs加拿大全场最佳

懂球帝
2024-06-21 10:58:16
华为研发薪酬先进到了什么程度?

华为研发薪酬先进到了什么程度?

互联网早读课
2024-06-21 08:08:44
刘国梁曾经采访时谈到马琳:“不少球员都表示和马琳打一场球下来在厕所都会嗷嗷吐

刘国梁曾经采访时谈到马琳:“不少球员都表示和马琳打一场球下来在厕所都会嗷嗷吐

阿牛体育说
2024-04-30 07:30:08
雷霆换来卡鲁索获评高分A!亚历山大明年冲冠更有底气了?

雷霆换来卡鲁索获评高分A!亚历山大明年冲冠更有底气了?

罗说NBA
2024-06-21 10:35:35
欧洲杯历史上最合格的死亡之组——两轮之后最弱球队依然有望晋级

欧洲杯历史上最合格的死亡之组——两轮之后最弱球队依然有望晋级

刺头体育
2024-06-20 12:33:58
菲律宾突击艇加装钢板!

菲律宾突击艇加装钢板!

青年的背包
2024-06-12 21:04:53
4年3200万美金!湖人疯狂签约,魔术师看清现实,老詹太难了

4年3200万美金!湖人疯狂签约,魔术师看清现实,老詹太难了

世界体育圈
2024-06-21 10:31:28
中小学将恢复“留级制度”?教育部正式回应,一锤定音!

中小学将恢复“留级制度”?教育部正式回应,一锤定音!

华人星光
2024-06-20 16:40:07
美国顶级预言家再出手!直言2024美日中命运!这个岛最先出事!

美国顶级预言家再出手!直言2024美日中命运!这个岛最先出事!

飞云如水
2024-06-09 21:53:34
为什么我感受不到1500元的手机比四五千的差?看网友的经典评论

为什么我感受不到1500元的手机比四五千的差?看网友的经典评论

滑稽斑马呀
2024-06-20 19:39:58
33岁大龄剩女认为男生挣100万很容易,网友:剩女为啥对钱没概念?

33岁大龄剩女认为男生挣100万很容易,网友:剩女为啥对钱没概念?

风起云间
2024-06-19 21:47:40
热闻|柳州两任市委书记同日被通报,此前为“老搭档”,曾同受处分

热闻|柳州两任市委书记同日被通报,此前为“老搭档”,曾同受处分

齐鲁壹点
2024-06-20 14:13:31
非鲁能的泽卡!泰山队新来中锋浮出水面,现已身披战袍出镜

非鲁能的泽卡!泰山队新来中锋浮出水面,现已身披战袍出镜

谈谈体坛那些事
2024-06-21 10:37:40
姜萍决赛的挑战!

姜萍决赛的挑战!

新动察
2024-06-19 09:45:42
外交豁免权事件再升级!余琦被立案调查,其人品也被前同事曝光!

外交豁免权事件再升级!余琦被立案调查,其人品也被前同事曝光!

暖心的小屋
2024-06-20 21:25:32
中国经济的非市场化行为:房地产是一个隐喻

中国经济的非市场化行为:房地产是一个隐喻

永不出场的戈多
2024-05-11 09:34:24
南京市委书记这篇在南京·大学生毕业典礼上的致辞,金句满满!

南京市委书记这篇在南京·大学生毕业典礼上的致辞,金句满满!

我是娱有理
2024-06-21 07:18:27
记住,与任何人相处,你越“这样”,别人就越不敢惹你。

记住,与任何人相处,你越“这样”,别人就越不敢惹你。

户外阿崭
2024-05-11 15:38:50
我爸,一个快60岁的老头,消费观崩塌了。

我爸,一个快60岁的老头,消费观崩塌了。

悠闲葡萄
2024-06-20 11:07:48
广州人在广州,被剥夺粤语权利,母语变无语

广州人在广州,被剥夺粤语权利,母语变无语

广州PLUS
2024-06-20 19:22:16
2024-06-21 11:34:44
开源智造
开源智造
Odoo免费开源ERP成立最早、规模最大的金牌服务机构,专注企业开源数字化解决方案咨询与服务
154文章数 95关注度
往期回顾 全部

科技要闻

美媒:苹果正与百度阿里百川等谈AI合作

头条要闻

环球:欧盟若对华抡起贸易大棒 中国不会被动挨打

头条要闻

环球:欧盟若对华抡起贸易大棒 中国不会被动挨打

体育要闻

1-0"吊打"意大利 西班牙这就叫冠军相?

娱乐要闻

陈晓惹争议!被曝婚变离家出走冷暴力

财经要闻

普华永道,引火烧身

汽车要闻

售价11.79-14.39万元 新一代哈弗H6正式上市

态度原创

本地
教育
游戏
健康
公开课

本地新闻

2024·合肥印象|用崭新视角对话城市发展

教育要闻

一手拿画笔,一手带娃,当画画成为全职妈妈的“出口”

《超越善恶 20周年纪念版》6.25发售 登陆全平台

晚餐不吃or吃七分饱,哪种更减肥?

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版