tree搜索栏集成
True
layui_theme_odoo12主题中,集成了tree视图上添加搜索栏,用法和odoo11的主题较为相似,具体效果入下图:
1、首先需要在tree的xml中添加以下属性:
已复制
search_ex_template="res_users_search_template"   这个属性为必须属性,表示使用哪个搜索模板来显示搜索栏,这里使用了res_users_search_template这个搜索模板来显示,模板样例代码如下:(以下为qweb代码,需要在__manifest__.py中引入qweb路径
已复制
:在一个节点中只要有for="xxx"属性,即表示会将此节点替换为一个搜索框,搜索框的字段与for="xxx"的内容字段匹配,并且会自动匹配字段类型,如果是当前模型不存在的字段,则会将此节点替换为空,此处可使用options="xx"传入相应的属性以更改对应设置,options可传的属性值有:
  •     filed_type:可传入的值有'char', 'text', 'integer', 'float', 'date', 'datetime', 'many2one', 'boolean', 'selection', 'one2many', 'many2many'中任意一个,但是不要将非关系型的'char''text''integer''float''date''datetime',  'boolean'变更为'many2one''selection''one2many''many2many'
  •     range::仅在字段类型或者filed_type为'date''datetime'时生效,此值默认为true,不是字符串!是布尔值,如果改为false,会将时间的搜索从范围变更为单个,例:
        不传或者'range': true时     'range': false时
  • placeholder: 输入框内的提示信息
  • operator:表示搜索式的符号,可传入的值有'between', '=', '!=', 'ilike', 'like', 'in', 'not in', '>=', '<=', '>', '<'中的任意一个,具体含义和后端相同
  • aggregate_search这个字段为特殊字段,是一个聚合多个字段的查询字段,在模型中不能存在该同名字段时可使用,使用后可将输入的值
    匹配到表达式中,表达式使用operator="xxx"传入, 'operator': [['name', '=', '{{aggregate_value}}']]}"中, {{aggregate_value}}即为输入的值,需要用引号包裹。默认是char类型,可以使用filed_type属性变更为'integer', 'float', 'date', 'datetime'类型,为时间类型时range用法相同,需要注意的是,如filed_type为'date', 'datetime'并且没有传入range或者range为true,此时的输入值对应有两个,故operator表达式中的获取值需要变为{{aggregate_value[0]}}或者{{aggregate_value[1]}}以获取相应的第一个时间值或第二个时间值
2、进阶,当需要添加自定义的按钮并绑定自定义的事件时,需要在tree的xml中添加属性:
已复制
search_pannel_js_class="tree_search_pannel"  表示使用这个值对应的odoo注册的js来调用js函数,此时这个js是这样的
已复制

tree_action_button
True