当前位置: 首页 > news >正文

【odoo17 | Owl】前端js钩子调用列表选择视图

概要

        在我们选择多对一或者多对多字段的时候,经常看到可以弹出列表弹窗让人一目了然的效果,效果如下:

         那么,这种效果是odoo本身封装好的组件,我们在平时的前端界面开发的时候,既不是后端视图的情况下,如何调出这种选择列表呢?

内容

解决办法:就是在前端组件中(owl组件),引用官方的useSelectCreate钩子函数。

/** @odoo-module **/
import { Component } from "@odoo/owl";
import { useSelectCreate } from "@web/views/fields/relational_utils";export class Demo extends Component {setup() {const selectCreate = useSelectCreate({resModel: "product.product",activeActions: {create:false,createEdit:true,delete:true,link:true,onDelete:()=>{console.log("删除成功");},type:'many2many',unlink:true,write:false,},onSelected: (resIds) => {console.log("选中", resIds);},onCreateEdit: () => {console.log("创建成功");},onUnselect: true,});this.selectCreate = (params) => {return selectCreate(params);};}//在视图增加一个事件测试就可以了ceshi(){let context = {tree_view_ref: "product.product_product_tree_view",};const productName = 'GG boy';const title = _t("Add line: %s", productName);const domain = [];return this.selectCreate({ domain, context, title });}
}

 钩子函数源码:

export function useSelectCreate({ resModel, activeActions, onSelected, onCreateEdit, onUnselect }) {const addDialog = useOwnedDialogs();function selectCreate({ domain, context, filters, title }) {addDialog(SelectCreateDialog, {title: title || _t("Select records"),noCreate: !activeActions.create,multiSelect: "link" in activeActions ? activeActions.link : false, // LPE FixmeresModel,context,domain,onSelected,onCreateEdit: () => onCreateEdit({ context }),dynamicFilters: filters,onUnselect,});}return selectCreate;
}

由源码看出,控制能不能多选的属性是activeActions中的line,为真则可以多选。剩下的就是业务逻辑处理了,可以根据他们的回调函数进行前端页面开发了。

小结

        多写多敲多思考,毕竟,知己知彼才能看懂源码。

Tip:本人才学尚浅,如有纰漏,还请不吝赐教!

http://www.lryc.cn/news/409908.html

相关文章:

  • MATLAB基础:函数与函数控制语句
  • 2024.7.30 搜索插入位置(二分法)
  • Socket通信(C++)
  • 小白学大模型:LLaMA-Factory 介绍与使用
  • java算法day26
  • docker笔记7-dockerfile
  • Spring-cloud Alibaba组件--Dubbo
  • 右值引用--C++11
  • 这样做外贸报价表,客户看了才想下单
  • Swift学习入门,新手小白看过来
  • 【Ant Design Pro】快速上手
  • Hive3:Hive初体验
  • blender顶点乱飞的问题解决
  • Elasticsearch(ES) 集群脑裂
  • spark 3.0.0源码环境搭建
  • 3.3、matlab彩色图和灰度图的二值化算法汇总
  • 新手必看:Elasticsearch 入门全指南
  • 【Linux】TCP全解析:构建可靠的网络通信桥梁
  • 图像处理 -- ISP中的3DNR与2DNR区别及实现原理
  • 硬盘分区读不出来的解决之道:从自救到专业恢复
  • 盘点2024年网上很火的4个语音识别转文字工具。
  • 解决 Git 访问 GitHub 时的 SSL 错误
  • LinuxCentos中安装apache网站服务详细教程
  • LUA脚本改造redis分布式锁
  • web端使用HTML5开发《贪吃蛇》小游戏教程【附源码】
  • Selenium使用教程-Selenium环境搭建与基础操作
  • 1950年-2021年中国历年民航航线里程统计报告
  • 前端了解到框架-网络复习
  • 防火墙——网络环境支持
  • 阅读笔记:明朝那些事儿之拐弯中的帝国