42 lines
1.8 KiB
JavaScript
42 lines
1.8 KiB
JavaScript
/** @odoo-module **/ // 声明这是一个Odoo模块,Odoo 17+必须有这个声明
|
|
|
|
// 从Odoo核心库导入注册表工具,用于注册自定义组件
|
|
import { registry } from "@web/core/registry";
|
|
// 从OWL框架导入Component基类,OWL是Odoo的前端框架
|
|
import { Component } from "@odoo/owl";
|
|
|
|
// 定义紧急度徽章Widget类,继承自OWL的Component基类
|
|
export class UrgencyLevelWidget extends Component {
|
|
// 指定使用的XML模板名称,对应urgency_level_widget.xml中的模板
|
|
static template = "soong_workflow.UrgencyLevelWidget";
|
|
|
|
// getter方法:根据紧急度值返回对应的CSS类名
|
|
get urgencyClass() {
|
|
// 从props中获取当前记录的urgency_level字段值
|
|
const level = this.props.record.data.urgency_level;
|
|
// 如果是急件,返回黄色样式类名
|
|
if (level === 'urgent') {
|
|
return 'urgency-urgent';
|
|
// 如果是特急件,返回红色样式类名(支持emergency和extra_urgent两种值)
|
|
} else if (level === 'emergency' || level === 'extra_urgent') {
|
|
return 'urgency-emergency';
|
|
}
|
|
// 默认返回白色样式类名(普件)
|
|
return 'urgency-normal';
|
|
}
|
|
|
|
// getter方法:判断是否显示"急"字徽章
|
|
get isVisible() {
|
|
// 从props中获取当前记录的urgency_level字段值
|
|
const level = this.props.record.data.urgency_level;
|
|
// 只有当值存在且不是'normal'时才显示(即只显示急件和特急件)
|
|
return level && level !== 'normal';
|
|
}
|
|
}
|
|
|
|
// 将自定义Widget注册到Odoo的字段组件注册表中
|
|
// 注册名为"urgency_level_badge",在视图中通过widget="urgency_level_badge"使用
|
|
registry.category("fields").add("urgency_level_badge", {
|
|
component: UrgencyLevelWidget, // 指定使用的组件类
|
|
});
|