单页Web应用(single page web application,SPA):
SPA 是一种特殊的 Web 应用,是加载单个 HTML 页面并在用户与应用程序交互时动态更新该页面的。
它将所有的活动局限于一个 Web 页面中,仅在该 Web 页面初始化时加载相应的 HTML 、 JavaScript 、 CSS 。
一旦页面加载完成, SPA 不会因为用户的操作而进行页面的重新加载或跳转,
而是利用 JavaScript 动态的变换 HTML(采用的是 div 切换显示和隐藏),从而实现UI与用户的交互。在 SPA 应用中,
应用加载之后就不会再有整页刷新。相反,展示逻辑预先加载,并有赖于内容Region(区域)中的视图切换来展示内容。 odoo前端应用:Odoo 目前包含三个单页应用:后台应用,工时单应用,POS 应用单页Web应用 1、菜单响应在/web/static/src/s/web_client.js 中定义:
1.1、调用 data_manager.load_action() 通过 rpc 取得动作;
1.2、action_manager.do_action() 执行动作
案例:视图跳转/切换
语法: 其中 action 是一个用于描述要跳转到的视图的信息字典
var web_client = require('web.web_client');
web_client.action_manager.do_action(action, ,{clear_breadcrumbs: true}); clear_breadcrumbs: true 用于控制是否清除面包屑导航当前层 案例代码:通过action
var attendance_state =self.login_employee.attendance_state;
var message = ''
var action_client = {
type: "ir.actions.client",
name: _t('Dashboard '),
tag: 'hr_dashboard',
};
self.do_action(action_client, {clear_breadcrumbs: true});
if (attendance_state == 'checked_in'){
message = 'Checked Out'
}
else if (attendance_state == 'checked_out'){
message = 'Checked In'
}
self.trigger_up('show_effect', {
message: _t("Successfully " + message),
type: 'rainbow_man'
}); 2、后台模型
语法:var Model = require('web.Model');
new Model('res.users'').call('do_manual_launch',, [[]]).then(function(result){
web_client.action_manager.do_action(action);
});
调用了后端 res.users 模型的 do_manual_launch 方法 实际案例:odoo14里面用了_rpc来实现
fetch_data: function() {
var self = this;
var def0 = self._rpc({
model: 'hr.employee',
method: 'check_user_group'
}).then(function(result) {
if (result == true){
self.is_manager = true;
}
else{
self.is_manager = false;
}
});
var def1 = this._rpc({
model: 'hr.employee',
method: 'get_user_employee_details'
}).then(function(result) {
self.login_employee = result[0];
});
var def2 = self._rpc({
model: "hr.employee",
method: "get_upcoming",
})
.then(function (res) {
self.employee_birthday = res['birthday'];
self.upcoming_events = res['event'];
self.announcements = res['announcement'];
});
return $.when(def0, def1, def2);
}, 3、客户端方法
// 获取 web_client 对象
var web_client = require('eb.web_client'); //刷新视图页面(可更新按钮的显示状态)
web_client.do_show(); // 刷新页面
web_client.do_reload();
// 通知提示(页面右上角)第三个参数表示通知是否固定在页面不消失,默认 false
web_client.do_warn('标题内容', '提示内容', false);
web_client.do_notify('标题内容', '提示内容', false); // 设置窗口标题
web_client.set_title("窗口标题"); // 执行窗口动作以切换视图
web_client.do_action(action); // 获取当前状态
web_client._current_state; //获取 domain
web_client.action_manager.get_inner_action().widget.searchview.build_search_data() 4、Odoo act_window 的 flags 参数
通过 Odoo act_window 的 flags 可以实现一些个性化的视图控制。
'flags': { //是否显示 sidebar 区域(主要为 action 按钮)
'sidebar': False,
'pager': False, //是否显示分页组件
'initial_mode': 'edit', // 进入时的默认视图模式
'form': { //表单视图的设置
'action_buttons': False,
'initial_mode': 'edit',
'options': {'mode': 'view'},
},
'tree': { //列表视图的设置
'action_buttons': False
}
}
使用示例:
<field name="context">{ "flags": {"disable_filters": False} }</field>
其他控制项
headless
views_switcher 5
display_title
search_view
auto_search
hidden 隐藏控制
disable_filters - 禁用搜索栏筛选
disable_groupby - 禁用搜索栏分组
disable_favorites - 禁用搜索栏收藏
disable_custom_filters 禁用自定义过滤

5、
_onFilePDF: function (ev) {
var self = this;
var fieldId = self._getId(ev.currentTarget);
self.$el.append(`
<div class="zPDF_iframe">
<div class="pdc_close btn btn-primary">关闭</div>&nbsp;&nbsp;&nbsp;
<div class="btn btn-primary"><a href="/web/content/${fieldId}?download=true" style="text-decoration: none; color: white">下载</a></div><br>
<iframe class="zPDF" scrolling="yes" id="main" name="main" frameborder="0" style="min-height:600px;width:1000px;height:100%;" src="/web/content/${fieldId}"></iframe>
</div>
`)
}

Odoo14前端框架常用操作的更多相关文章

  1. web前端开发常用的10个高端CSS UI开源框架

    web前端开发常用的10个高端CSS UI开源框架   随着人们对体验的极致追求,web页面设计也面临着新的挑战,不仅需要更人性化的设计理念,还需要设计出更酷炫的页面.作为web前端开发人员,运用开源 ...

  2. 东拼西凑完成一个“前端框架”(5) - Tabs操作

    目录 东拼西凑完成一个后台 "前端框架" (1) - 布局 东拼西凑完成一个后台 "前端框架" (2) - 字体图标 东拼西凑完成一个"前端框架&qu ...

  3. jQuery操作标签,jQuery事件操作,jQuery动画效果,前端框架

    jQuery操作标签 jQuery代码查找标签绑定的变量名推荐使用 $xxxEle 样式类操作 addClass();// 添加指定的CSS类名. removeClass();// 移除指定的CSS类 ...

  4. web前端学习(三)css学习笔记部分(3)-- css常用操作

    5.  CSS常用操作 5.1  对齐 使用margin属性进行水平对齐 <!DOCTYPE html> <html lang="en"> <head ...

  5. JavaScript 字符串常用操作

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  6. Web前端框架汇总

    在做web开发的时候难免遇到一个问题,那就是,选择什么样的框架.下面把前端的框架简单的列一下. 1.flex Apache基金会今天发布了Flex 4.8版本,这是Adobe将Flex捐献给Apach ...

  7. Semantic-UI和其他几个前端框架

    本来是想介绍Semantic-UI的,但如果只介绍这个框架,没什么内容,框架相关feature站点上有不需要说,所以干脆列出自己常用的几个前端框架,算是做个阶段性总结. 本文的核心是侧重于HTML/C ...

  8. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...

  9. Github上最全的APICloud开源前端框架效果盘点(转)

    1.微信网站几分钟变身“原生 App” 微信推出了微信JS-SDK,使微信公共号可以直接调用微信原生的接口,具备部分原生应用的能力.微信JS-SDK的推出,将大大提高微信公共号的 用户体验,但是如果存 ...

  10. JavaScript 字符串常用操作纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

随机推荐

  1. 【自编RSG插件】梁结构生成插件QGToolBox

    正在学习基于ABAQUS-PYTHON的GUI开发,出于练手的想法,编写了一个简单的插件. 实现功能: 基于nodes. rods的table,完成桁架结构的几何建模. GUI界面: RSG Buil ...

  2. selenium 进入页面提示 503 Service Temporarily Unavailable

    进入三级页面提示503 Service Temporarily Unavailable,如果手动刷新页面重新加载成功 网上看都是如何配置及原因的,没告诉如何解决 于是我想,如果是这样的话,执行刷新操作 ...

  3. Win系统重装备忘

    蒙德,致态的盘坏块激增,似乎损坏到了系统文件:屏幕截屏会卡,关机后直接该块硬盘内的文件内容回滚,出现驱动报错要求重启... 然后尝试了DiskGenuis迁移系统,PE模式不能用,热迁移后似乎正常分区 ...

  4. [Qt基础内容-04] QCheckBox

    QCheckBox 文章目录 QCheckBox 简介 信号 样式设计 本文主要根据QT官方帮助文档以及日常使用,简单的介绍一下QCheckBox的功能以及使用 简介 QCheckBox是一个按钮,其 ...

  5. 最新版 Proteus 8.15 Professional 图文安装教程(附安装包)

    前言 大家好,我是梁国庆. Proteus 是世界上唯一将电路仿真软件.PCB设计软件和虚拟模型仿真软件三合一的设计平台. 本篇博主将手把手带领大家安装最新版 Proteus 8.15. 若图片加载超 ...

  6. mac更新本地时间

    前言 选取苹果菜单 >"系统偏好设置",然后点按"日期与时间". 点按窗口角落处的锁形图标 ,然后输入您的管理员密码以解锁设置. 在"日期与时 ...

  7. 【Web】Servlet基本概念

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据, ...

  8. java学习-8【EnumMap】

    EnumMap和EnumSet几乎是一样的,区别时EnumMap的key时Enum. public enum Types { RED,GREEN,BLACK,YELLO } @Test public ...

  9. SpringAI vs JBoltAI:Java企业级AI开发的框架之争与实战选型

    「SpringAI vs JBoltAI:Java企业级AI开发的框架之争与实战选型」 一.Java生态的AI困局:工具碎片化与工程化缺失 1. 技术断层:从API调用到全生命周期管理多数企业仍停留在 ...

  10. 【AI工具实战】一招解决英文视频困境,四步用AI搞定全中文字幕,你也可以!(文末附工具下载)

    "AI时代最大的红利,是让每个人都有机会成为那个"想到就能做到"的创造者." AI粉嫩特攻队,2025年4月5日. 故事源于一个我想看的国外视频.本想点开视频准 ...