37 lines
1.3 KiB
XML
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>
|