Oejia 技术栈
首页
应用市场
方案
OE学院
分享
关于
编辑器
登录
Odoo 前端开发可用的内置JS功能介绍
admin
on 2017-12-26
### 概述 Odoo 是一个典型的单页应用(SPA),其包含了丰富的前端交互形式,如果我们用好了他的内置的一些js对象,可以为我们实现一些灵活交互功能提供极大帮助,Odoo前端对象基本都集中在odoo、openerp两个命名空间下,下面列举一些常见的用法 ### 遮罩提示 打开遮罩 ``` odoo.__DEBUG__.services['web.framework'].blockUI() ``` 关闭遮罩 ``` odoo.__DEBUG__.services['web.framework'].unblockUI() ``` Odoo的遮罩会自动根据显示的时间显示不同的文案内容 ### 视图跳转/切换 ``` openerp.client.action_manager.do_action(action,{clear_breadcrumbs: true}) ``` 其中action是一个用于描述要跳转到的视图的信息字典,例如: ``` var action = { name: '详细历史报价', type: 'ir.actions.act_window', res_model: 'tender.fs.round', res_id: null, views: [ [false, 'list'], [false, 'form'] ], view_mode: 'list', view_type: 'list', //target: 'new', context: {}, }; ``` `clear_breadcrumbs: true`用于控制是否清除面包屑导航当前层 ### 前端按钮触发调用后台模型方法 ``` onclick="new openerp.web.Model('res.users').call('do_manual_launch',[[]]).then(function(action){ openerp.client.action_manager.do_action(action); })" ``` 上面例子即调用了后端`res.users`模型的`do_manual_launch`方法,并返回了一个需要跳转到的视图action ### 前端视图控制器 获取控制器对象 ``` var ctrl = parent.odoo.__DEBUG__.services['web.web_client'].action_manager.get_inner_action().widget.active_view.controller; ``` 修改导航面包屑标题 ``` ctrl.set('title', '标题内容'); ``` ### 客户端client控制对象 ``` // 获取 web_client 对象 var cli = odoo.__DEBUG__.services['web.web_client']; var cli = openerp.client.action_manager; // 刷新视图页面(可更新按钮的显示状态) cli.do_show(); // 刷新页面 cli.do_reload(); // 通知提示(页面右上角)第三个参数表示通知是否固定在页面不消失,默认false cli.do_warn('标题内容', '提示内容', false); cli.do_notify('标题内容', '提示内容', false); // 设置窗口标题 cli.set_title("窗口标题"); // 执行窗口动作以切换视图 cli.do_action(action); // 获取当前状态 cli._current_state; //获取 domain cli.action_manager.get_inner_action().widget.searchview.build_search_data() ``` ### 模型对象 ``` model = odoo.__DEBUG__.services["web.Model"]("res.users"); model.call("方法名", [变量列表]).then( function(val) { console.log(val) // val为"方法"返回的值 }) ```
Information
Odoo 前端开发可用的内置JS功能介绍
http://www.oejia.net/article/d40fa3263302a238024237480481da7b
http://www.oejia.net/raw/d40fa3263302a238024237480481da7b
admin
on 2017-12-26
Category
Odoo
Related
2021-04-12 :
基于文件的带过期时间机制的key/value缓存实现
2021-01-17 :
如何实现 Odoo 数据每天备份到本地存储
2016-07-18 :
Nginx upstream 配置示例
2014-12-15 :
Cordova开发环境搭建与基本使用
2016-02-01 :
odoo相关
2020-03-28 :
小程序商城模块 Oejia_weshop v0.2 发布,全面升级为OE商城系统
2017-10-31 :
前端相关
2020-04-20 :
OE客服系统之工单&客诉模块
2019-12-28 :
Odoo 企业微信客户端模块 Oejia_mobile 使用说明
2023-04-17 :
Odoo16 开启客屏时如何实现在POS设备上自动打开到第二屏
官方订阅号
关注订阅实时了解我们更多分享
分类
(20)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (134)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
About This Entry
Odoo 视图之 act_window
DjangoX 扩展的命令(commands)使用指南
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
审批OA
HTML5
OE商城
Markdown
DjangoX
解析
oeshop
PyQT
服系统
YouPBX
Excel
示例
md
markdown
Python
最近发布
OSError [Errno 5] Input/output error 异常处理
Odoo context 的常见使用示例
Odoo 符合国人菜单导航习惯的后台主题,支持最新的Odoo17、16等版本,支持企业版!
Odoo 官方应用市场开启 Odoo17 应用的发布!增加了行业应用专栏
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子