Files
gzth/menu_many2many_checkboxes/static/src/menu_many2many_checkboxes_field.xml
T
2024-12-27 19:45:18 +08:00

37 lines
1.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-name="menu_many2many_checkboxes.Many2ManyCheckboxesField">
<div aria-atomic="true">
<!-- 递归树节点 -->
<t t-call="menu_many2many_checkboxes.renderTree">
<t t-set="treeData" t-value="items"/>
</t>
</div>
</t>
<t t-name="menu_many2many_checkboxes.renderTree">
<ul>
<t t-foreach="treeData" t-as="node" t-key="node.id">
<div>
<t t-set="Selected" t-value="isSelected([node.id, node.name])"/>
<CheckBox
value="Selected"
disabled="props.readonly"
onChange="(ev) => this.onChange(node.id, ev)"
>
<t t-esc="node.name" />
</CheckBox>
<!-- 如果有子节点,递归调用自身 -->
<t t-if="node.children and node.children.length > 0 and Selected">
<t t-call="menu_many2many_checkboxes.renderTree" >
<t t-set="treeData" t-value="node.children or []"/>
</t>
</t>
</div>
</t>
</ul>
</t>
</templates>