自定义widget显示many2many图文基本实现

This commit is contained in:
mgw
2023-09-07 12:33:35 +08:00
parent 48e30865af
commit 78e3a0f24f
3 changed files with 47 additions and 0 deletions

View File

@@ -24,6 +24,8 @@
'web.assets_qweb': [
],
'web.assets_backend': [
'sf_plan/static/src/js/custom_many2many.js',
'sf_plan/static/src/xml/custom_many2many.xml',
'sf_plan/static/src/scss/gannt_change.scss',
'sf_plan/static/src/css/button_color.css'
],

View File

@@ -0,0 +1,22 @@
/** @odoo-module **/
import { Many2ManyCheckboxesField } from "@web/views/fields/many2many_checkboxes/many2many_checkboxes_field";
import { registry } from "@web/core/registry";
export class MyCustomWidget extends Many2ManyCheckboxesField {
// 你可以重写或者添加一些方法和属性
// 例如你可以重写setup方法来添加一些事件监听器或者初始化一些变量
setup() {
console.log('111111111222222222222')
super.setup(); // 调用父类的setup方法
// 你自己的代码
}
onImageClick(event) {
// 放大图片逻辑
console.log('chongchongchong')
}
}
MyCustomWidget.template = "sf_plan.MyCustomWidget"
// MyCustomWidget.supportedTypes = ['many2many'];
registry.category("fields").add("custom_many2many_checkboxes", MyCustomWidget);

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-name="sf_plan.MyCustomWidget" owl="1">
<div aria-atomic="true">
<t t-foreach="items" t-as="item" t-key="item[0]">
<div>
<CheckBox
value="isSelected(item)"
disabled="props.readonly"
onChange="(ev) => this.onChange(item[0], ev)"
>
<t t-esc="item[1]"/>
<t>
<img t-att-src="item[3]" width="20" height="20"/>
</t>
</CheckBox>
</div>
</t>
</div>
</t>
</templates>