- QQ 群 2684913
- [email protected]
- 北京斑马线科技有限公司负责维护 odoojs 的所有代码
- 欢迎有志于 odoo 前后端分离项目的 个人/团队, 共同维护 odoojs
- odoojs 是 odoo 前后端分离解决方案
- odoojs 以 odoo 为服务端. 全新实现独立的前端
- 依赖核心模块 odoojs-rpc,
- odoojs-rpc 是一个 javascript 库, 是前端访问 odoo 的接口. npm 包名字为 odoojs.
- 导入 odoo-rpc. "import rpc from 'odoojs'"
- odoojs 通过 odoojs-rpc 从 odoo 服务端获取所有的数据.
- odoojs 自定义 所有的 menu, action, view.
- odoojs 基于 vue3 前端架构.
- odoojs 选择 ant-design-vue v3 作为 ui 库.
- odoojs 实现了 官方 odoo 前端的所有功能.
- odoojs 自动识别 odoo 服务端已安装的模块.
- odoojs 根据已经安装模块, 自行处理相应的 menu, action, view.
- 非 odoo 官方的自定义模块. 需要在 odoo 服务端安装.
- 同时 使用 odoojs 提供的 addons 扩展功能, 定义相应的 menu, action, view.
- 因此 odoojs 适配 自定义模块的扩展.
- odoojs 可以选择 ant-design-vue 之外的 ui 库.
- 仅需替换 odoojs 中相应的 ui 组件即可.
- odoojs 可以选择 vue3 之外的 其他前端架构.
- 而保持 odoojs-rpc, menu, action, view 不变.
- odoojs 支持多语言. 仅需 增加相应语言的 addons 补丁包.
- 建立 基于 odoojs 的中国本地化 ERP 产品
- 建立 基于 odoojs 的开发模式. 服务于广大 odoo 实施团队
- 建立 基于 odoojs 的服务模式. 为 ERP 使用方提供 自定义 ERP 系统的解决方案
- odoo 官方源码做服务端
- odoojs 实现前后端分离
- odoojs 前端 暂时选择 vue 架构. 但不限. 可以选择 react
- odoojs 前端 暂时选择 UI 库 antd-vue. 但不限. 可选择其他常用的 UI 库
- odoojs 完全支持 移动 web 端. 只需选择适用的 UI 库即可
- odoojs 完全支持 移动端 app. 只需直接使用 odoojs-rpc 做 服务端访问接口即可
- odoojs 完全支持小程序等特定的客户端. 只需要使用 小程序专用的组件即可
- odoojs 前端程序, 启动后, 首先加载所有自定义的 menu, action, view.
- 渲染 menu.
- 在一个 menu 选中后, 获取到对应的 action.
- 根据 action, 获取 相应的 tree view 或者 form view.
- 根据 view, 获取对应的 model, fields. 以及 html 要素.
- 根据 model, fields 从 odoo 服务端获取数据.
- 获取到的数据, 在 view 中, 各 field 自行使用相应组件进行渲染显示.
- view 中的 field, 支持 readonly, visible, required, domain 等属性.
- 需要编辑数据时, 将 view 设置为编辑状态.
- 在编辑状态下, 创建一个 editmodel.
- editmodel 由 odoojs-rpc 进行管理, 在前端页面中无需额外关心.
- 该 editmodel 管理所有的编辑中的数据.
- view 中某个字段 field 编辑后, 触发 onchange.
- onchange 在 editmodel 中进行排队. 以确保 onchange 顺序依次触发.
- onchange 访问 odoo 服务端, 获取数据. 更新到 editmodel. 并返回到 view.
- view 渲染数据.
- view 编辑完成, 触发 commit.
- commit 与 onchang 一样 在 editmodel 中排队.
- commit 访问 odoo 服务端, 发送 create or write 请求, 更新数据到服务端.
- commit 之后, 销毁 editmodel, view 回到只读状态.
- view 发送 read 请求, 重新获取数据, 并渲染到 view 中.
- main view 渲染显示数据.
- main view 中, 各 field 由相应的 field 组件进行渲染.
- one2many 字段的 sub tree view, sub form view 在 main view 中已定义
- one2many 字段 已获得 main view 传递过来的数据 ids, fieldinfo, 及 sub fields.
- one2many 字段根据 ids, feildinfo, sub fields 访问服务端 获取数据.
- one2many 字段 sub tree view 渲染数据.
- one2many 字段 sub form view 以弹窗方式 显示单条数据.
- main view 进入编辑状态.
- one2many 字段 sub tree view 为编辑状态, 显示 create 按钮.
- pick one sub record or new sub record, 创建 sub form view.
- sub form view 创建 sub editmodel.
- sub form view 触发 onchange, 访问 odoo 服务端, 更新到 sub editmodel.
- sub form view 触发 commit. 销毁 sub editmodel. 更新数据到 sub tree view.
- sub tree view 触发 main view 的 onchage.
- main view 的 commit 之前, 从 sub tree view 获取 one2many 字段的数据.
- main view 触发 commit
- 基于 vue 3.2.x 和 antv 3.2.x
- 基于 vue2 和 antv1.7.8
- 扬弃 odoo 官方的 menu、action、view,
- 在 odoojs 前端全部重新定义 menu、action、view
- odoorpc 代码更新, 优化 menu、action、view 的处理
- 2023-3-6 创建该分支, 基于原 master 分支创建
- 2023-3-6 之后, master 另做他用
- 直接读取 odoo 服务端的 menu、action、view, 在 odoojs 前端呈现
- 该分支保留了 odoo 官方原汁原味的前端功能
- 2022-10-10 创建该分支, 基于原 master 分支创建
- 2022-10-10 之后, master 另做他用
- 创建 odoojs-vue2 分支
- odoojs-vue2 分支. 基于 vue2 和 antv1.7.8
- 更新 master 分支. 基于 vue 3.2.13 和 antv 3.2.15
- 基于原有 master 分支, 创建 odoojs-classic 分支
- odoojs-classic 分支, 直接读取 odoo 服务端的 menu、action、view, 在 odoojs 前端呈现
- odoojs-classic 分支,保留了 odoo 官方原汁原味的前端功能
- master 分支, 继续维护最新的代码
- master 分支, 扬弃 odoo 官方的 menu、action、view, 在 odoojs 前端全部重新定义
- master 分支的 odoorpc 代码更新, 优化 menu、action、view 的处理
- odoorpc 优化
- odooapi 优化
- 调整 api.my.home 接口. 从 odoorpc 移动到 odooapi
- portal 页面. /my/home
- 自定义菜单.
- 自定义 xml
- 使用 this.$route.meta.routes 存路由历史
- 使用 localStorage 存 routes. 页面手动刷新时, 保留路由历史
- 页头 title. 数据取自 routes. 显示层级结构
- action.load 时,仅 load action。 不再直接 load_views, 而在需要时 由页面 load views
- 附件上传与下载
odoorpc/odooapi 完善.
- session info store in request class
- ir.filters 功能
- o2m tree view. line edit
- kanban view. button click event
- file import api
UI 组件完善
- pivot view / graph view / calendar view
- 收藏按钮
- o2m tree view. line edit
- kanban view. dropdown menu
odoorpc/odooapi 代码更新. 纯函数方式
UI 组件完善
选择 ant-design-vue 做 UI
odoorpc/odoojs 代码优化
odoojs 重大改进
访问 odoo 的方式更简洁
之前使用 react 实现的 odoojs
之后 使用 vue