SuperAPI AI 工具集

frontend-js

前端与建站

查看项目

更新于 10-15 16:43

技能介绍

用途:为 Odoo 网站主题与前端模块提供 JavaScript 开发规范。网站主题必须使用 publicWidget 框架,不用 Owl 或原生 JS;每个 JS 文件以 /** @odoo-module **/ 开头;脚本与样式分别放在 static/src/js/ 和 static/src/scss/,避免内联代码。Odoo 16+ 使用 Bootstrap 5.1.3,不使用 Tailwind。

主要能力:

  • publicWidget 完整模式:selector、events、disabledInEditableMode: false,start() 中先判断 this.editableMode 再初始化动画或外部事件绑定,destroy() 中用命名空间事件(如 $(window).off('.myWidget'))清理监听器。资源通过 assets 的 web.assets_frontend 注册。
  • Owl 组件:Odoo 17 为 Owl v1,模板作为独立属性,通过 registry.category('public_components').add 注册;Odoo 18-19 为 Owl v2,使用 static template 与 static props,存在破坏性变更。
  • 翻译:静态标签在定义时用 _t() 包裹,常量数组/对象、错误信息适用;不要在运行时把变量传入 _t(),XML 模板文本自动翻译。
  • Bootstrap 4→5 迁移:ml-/mr- 改 ms-/me-,pl-/pr- 改 ps-/pe-,text-left/right 改 text-start/end,float-left/right 改 float-start/end,data-toggle/target/dismiss 改 data-bs-*,form-group 改 mb-3,custom-select 改 form-select 等;form-inline、jumbotron、media 等类被移除。
  • SCSS 覆盖:在 static/src/scss/bootstrap_overridden.scss 中导入 Bootstrap functions 与 variables,所有覆盖变量使用 !default。

使用方式:按目标 Odoo 版本(14/15/16/17/18-19)选择对应 Bootstrap、Owl 与 JS 版本;可从路径(如 odoo17/)、manifest 的 version 字段或配置文件判断版本。

限制与注意:Odoo 18-19 需要片段分组,Odoo 19 网站构建器采用插件架构,控制器中 type='json' 改为 type='jsonrpc'。资料未提供收费、价格与安装命令等信息。