文章目录
- 1) 显示百分比
- 2) 标签组件
- 3) handle组件(拖拽排序)
- 4) 状态栏组件
- 5) binary组件
- 6) 货币组件
- 7) tatinfo组件
- 8) 日期型字段只显示年月
odoo的一些小部件主要定义在:模块/static/src/js下
1) 显示百分比
模型字段execution_percent定义为float类型,前端会自动将小数*100并加上百分号,使用如下:
<field name="execution_percent" widget="percentage"/>
2) 标签组件
模型字段对many2many类型,使用如下:
<field name="channel_ids" widget="many2many_tags"/>
3) handle组件(拖拽排序)
模型字段为many2one类型,如果配置的字段过多,可以通过拖拽把常用的记录放在前面
模型字段定义: sequence = fields.Integer('Sequence', help="Used to order states.", default=1)
xml引用:<field name="sequence" widget="handle"/>
前端页面显示如下:
模型可以根据sequence来排序,_order = 'sequence'
4) 状态栏组件
使用如下:
<header>
<field name="state" widget="statusbar"/>
</header>
5) binary组件
<field name="filename"/>
<field name="document" widget="binary" filename="filename"/>
6) 货币组件
<field name="suggest_price" widget="monetary" options="{'currency_field': 'currency_id'}"/>
7) tatinfo组件
直接加widget属性就行,通常与button标签结合使用
<button type="object" name="action_view_invoice" class="oe_stat_button" icon="fa-pencil-square-o" attrs="{'invisible':['|', ('invoice_count', '=', 0), ('state', 'in', ('draft','sent','to approve'))]}">
<field name="invoice_count" widget="statinfo" string="Vendor Bills"/>
<field name="invoice_ids" invisible="1"/>
</button>
8) 日期型字段只显示年月
options="{'datepicker': {'format': 'YYYY-MM'}}"
后续待补充~