** to be done
-
Feat
- Cli 引擎
- 新增命令: npm run cli :git:commit
- 工作流引擎
- 新思路:工作流 = 审批流程 + 业务流程
- 审批流程:用于草稿副本的流转:如博客文章
- 业务流程:用于正式副本的流转:如采购订单
- 新增字段 atomState: 用于标记数据当前状态,与工作流配合使用
- 新增参与人变量:auto,用于动态拾取流程节点的参与人
- Cli 引擎
-
Refactor
- 原子数据:
- 在进行副本拷贝时以基础 schema 为准,进行字段过滤
- create 方法增加 createOptions 参数,为副本拷贝提供额外线索信息
- 不再需要指定配置: fields.custom
- write 方法中不再需要 data.id = key.itemId;
- 原子数据:
-
Feat
- 工作台:在九宫格中每个应用的 DOM 节点增加属性:
data-dev-app-key
,方便快速定位 AppKey - Cli 终端命令:创建前端页面组件,支持带目录的名称,比如:
npm run cli :create:pagex student/add
- ctx.bean.util.extend 代替 const extend = require3('@zhennann/extend');
- ctx.bean.util.uuid 代替 const uuid = require3('uuid');
- 工作台:在九宫格中每个应用的 DOM 节点增加属性:
-
Enhance
- 时间字段:在表格中默认采用多行模式:
ebParams.dateFormat.lines=true
- 时间字段:在表格中默认采用多行模式:
- Feat
- 状态栏: 增加语言切换按钮
- test-party 套件: UI 组件演示页面:显示源码链接,方便直接查看实现方式
- Feat
- test-party 套件:创建一个独立的 App 应用:UI 组件,从而可以更加便利直观的查看 CabloyJS 和 Framework7 提供的 UI 组件库
- Feat
- 静态原子数据:可以通过重载方法 prepareStaticItem,对静态数据进行调整
- Feat
- 草稿优化:
- 在编辑保存时不验证必填项(回归草稿的本质)
- 在提交时验证必填项
- 草稿优化:
- Feat
- App Theme: 可以为 App 应用设置独立的 Theme 主题
- 参见: 如何创建 App 应用
- App Mine 页面(个人信息页面): 不再强制弹出
- Clipboard 工具:弃用 clipboard.js,改用 copy-to-clipboard
- App Theme: 可以为 App 应用设置独立的 Theme 主题
-
Feat
- 原子类型:可以配置是否启用评论、附件
-
Enhance
- 草稿统计值
- 草稿统计值 = 起草中 + 流转(审批)中
- 每个原子类型都有独立的统计值
- 在原子列表页面:显示草稿统计值,以便最快方式查看并处理草稿
- 有草稿时显示,无草稿时隐藏
- 编辑页面
- Save 的提示改为:Save as Draft
- Submit 的提示改为:Save and Submit
- 草稿统计值
- Feat
- 原子类型提供 meta 参数:comment/attachment
- Feat
- 新增表单字段渲染组件:
ebType: 'button'
- 新增表单字段渲染组件:
- Feat
- 新增区域授权机制
- 默认未开启,处于内部开发测试阶段
- 新增区域授权机制
- Refactor
- PC 布局:界面优化
- App 目录调整:
- General -> AppCategoryFront
- Management -> AppCategoryBackend
- System -> AppCategoryManagement
- Feat
- 方便替换登录页
- 方便隐藏导航栏
- Feat
- 应用菜单管理:归属于应用的菜单目录独立管理,便于调整目录显示次序
- Feat
- 图片处理:采用 jimp,弃用 gm,从而实现零依赖,简化安装
- Feat
- 增加模块预加载机制: Vue.prototype.$meta.util.preloadModules
- Feat
- add css class to the eb-page dom element
- Feat
- open app: target
- Feat
- eb-page: ebHideNavbarOnScroll/ebHideToolbarOnScroll
- Feat
- device.host: wechat/wxwork/dingtalk
- device.hostEnabled
- Refactor
- bullmq 从 1.X 升级至 2.X
- redis 最低版本: 6.2.0
- bullmq 从 1.X 升级至 2.X
- Refactor
- vue 从 2.6 升级至 2.7
- Refactor
- 重构 mysql 驱动,支持最新版验证机制
- Refactor
- 重构 Socket IO 引擎
- 重构进度条
- 重构 Notification 组件
- Feat
- (重磅)Popup 弹出模式:pc 场景页面交互增加 Popup 弹出模式
- Feat
- app mine:如果不是 app default,则显示待办按钮
- Feat
- 增加模块 a-dashboardbooster:提供部件模版,可供二次开发参考
- 调整首页 dashboard,演示部件模版
- Enhance
- 增加 search.exclude 配置:.vscode/settings.json
- Refactor
- 压缩 Cabloy 版权信息:让 Cabloy 开发的业务系统更加纯净
- Feat
- 修改密码:如果是通过其他认证方式创建的新用户,当执行修改密码功能时,会自动追加新的认证方式
- Enhance
- 修改密码:将验证码放入第二行显示,避免页面尺寸过小时,输入框被覆盖
- markdown:增强 code_block 的解析逻辑
- treeview:修复 loading 时引发的 title 闪烁问题
- jstree:文档目录树,当点击目录标题时,展开文章列表
- Feat
- npm run cli :create:page
- npm run cli :create:pagex
- 增加 cli meta.info.welcomes
- Enhance
- always open url when click cms app menu
- Feat
- Cabloy 商店命令行工具
- npm run cli :store:publish
- npm run cli :store:sync
- Refactor
- 重构 Mail 系统配置
- 重构 SMS 系统配置
- Feat
- App 机制
- 一个 App 是一套界面布局的组合,包括三大部件:
- Menu 页面
- Home 页面
- Mine 页面
- 一个 App 是一套界面布局的组合,包括三大部件:
- App 机制
- Feat
- Suite 机制
- 一个 Suite 可以包含多个 Modules
- Suite 机制
- Feat
- cli 引擎
- 创建 module
- 创建 AtomClass
- 创建 Controller
- 多种内置 cli 工具:
- babel 文件
- 构建 icons 模块
- 支持第三方开发 cli 模块
- cli 引擎
- Feat
- 开放认证引擎
- 允许用户动态分配 ClientID/ClientSecret,并分配可以访问的权限子集
- 允许通过命令行直接访问后端服务 API
- 开放认证引擎
- Refactor
- 实现分级授权机制
- 重构角色管理
- 重构用户管理
- 重构资源授权
- 重构数据授权
- 实现分级授权机制
- Refactor
- 重构用户身份认证引擎
- 重构内置的认证提供者
- 用户/密码
- 短信
- GitHub
- 微信:H5 登录、PC Web 登录、小程序登录
- 企业微信:H5 登录、PC Web 登录、小程序登录
- 钉钉:H5 登录、PC Web 登录、小程序登录、后台管理登录
- Feat
- 增加通用的图标引擎:制作、管理、使用
- 优先采用 svg 图标
- Feat
- 允许在
测试环境
和开发环境
禁用测试模块
:禁用模块
- 允许在
- Enhance
- atom bean: create 方法 增加 options 选项
class Atom extends app.meta.AtomBase {
- async create({ atomClass, item, user }) {
+ async create({ atomClass, item, options, user }) {
// super
- const key = await super.create({ atomClass, item, user });
+ const key = await super.create({ atomClass, item, options, user });
- Enhance
- Login 页面:在 pc 布局中仍然采用 small 尺寸
- 多实例:如果 subdomain 没有对应的实例就打印明确的配置提示
- 如果是匿名用户访问受限资源,就自动弹出 Login 页面
- Enhance
- ctx.bean.atom.read:options = options || {};
- Feat
- cms:增加工具函数:util.login / util.logout
- Fix
- 原子数据查询:自动转义字典字段时,对 code 的判断:!code 改为 code===undefined,从而支持 code=0 的情况
- Feat
- 原子数据查询:如果 atomLanguage 字段不为空,那么就自动追加 atomLanguageLocale 值,从而方便前端显示
- Feat
- 静态原子数据:如果 atomLanguage 字段不为空,那么自动转义以下字段的语言资源:atomName/description
- Fix
- remove
colors
module
- remove
-
Fix
- 当重新初始化数据库后,root 用户的 locale 自动变为英语
-
Feat
- 在测试与开发环境,当重新初始化数据库时,自动清除目录: src/backend/app/public/{instanceId}
-
Enhance
- 通讯录同步(企业微信、钉钉):
- 支持部门排序值变更
- 支持部门移动
- 通讯录同步(企业微信、钉钉):
-
Fix
- 企业微信、钉钉: 同步通讯录超时
-
Fix
- Markdown Editor: 从 MD 源文件解析 strikethrough 出错
-
Feat
- 动态组件: 当动态加载组件时,显示 preloading
-
Refactor
- sandbox: 将基于 webworker 实现的 sandbox 提炼为一个独立的 npm 包
- sandbox-webworker: https://github.com/zhennann/sandbox-webworker
- sandbox: 将基于 webworker 实现的 sandbox 提炼为一个独立的 npm 包
-
Enhance
- module: 增加国际化提示
-
Refactor
- 原子 meta 属性:
- 通过
const meta = this._ensureItemMeta(item)
设置并获取 meta 属性值
- 通过
- 原子 meta 属性:
-
Fix
- 修复原子历史列表不显示
Rev
标签的问题 - 修复延迟函数实例化的问题
- 修复原子历史列表不显示
-
Feat
- PC 布局:
- 当需要时将 medium 尺寸的页面显示为 large 尺寸
- Atom 列表:
- 当关闭草稿时,更新 formal 数据
- PC 布局:
-
Enhance
- Atom 权限:
- 当草稿处于 opened 时,formal 数据仍然可以显示
再次编辑
按钮
- 当草稿处于 opened 时,formal 数据仍然可以显示
- Atom 权限:
-
Feat
- Demo:
- 在演示场景下,根据用户浏览器环境动态使用所需的语言
- Demo:
-
Fix
- Theme:
- 当使用 filled 风格的 navbar 时,large navbar 显示一片空白
- Theme:
-
Features
- Markdown 富文本编辑器:
- 支持拷贝图片和拖拽图片
- 图片自动上传
- 当图片未上传完毕时,不允许保存和提交
- Markdown 富文本编辑器:
-
Enhance
- 登录页面:
- 当验证码不匹配时,自动清除验证码
- 当密码不匹配时,自动清除密码和验证码,并刷新验证码
- 登录页面:
- Features
- screenfull: this.$meta.util.screenfull
- used in: dashboard, header button for layout pc
- screenfull: this.$meta.util.screenfull
-
Features
- menu page: show
dashboard
button on menu page - atom list: open user labels by
target: _self
in panel - flow task: auto open
assignees confirmation
if needed - flow task: update atom draft status when flow task changed
- menu page: show
-
Refactor
- atom draft: show
submit
button directly aftersave
button
- atom draft: show
- Refactor
- schema for dashboard widget:
- Deprecate: ebBindOnly\ebBindArray
- use: ebWidget.bindOnly\bindArray
- schema for dashboard widget:
- Refactor
- schema ebType=text
- Deprecate: ebCurrency\ebLocale\ebDateFormat\ebTextarea\ebSecure\ebInputType
- use: ebParams.currency\locale\dateFormat\textarea\secure\inputType
- schema for dashboard widget:
- Deprecate: ebClue\ebCategory
- use: ebWidget.clue\category
- schema ebType=text
- 增加 npm 指令,可以一个命令重建数据库
$ npm run db:reset
如果是旧项目,只需在项目的 package.json 中增加如下指令即可:
{
"scripts": {
"db:reset": "egg-born-bin backend-db-reset",
...
},
}
- 特性
- atom:增加
simple
模式- 不需要
草稿
- 不需要
审批工作流
特性
- 不需要
- atom:允许禁止
history
,从而不保留历史记录 - atom:更好用户体验的
数据筛选
,更丰富更灵活的筛选字段配置
- 脏标记机制
- 测试:增加
test-note
模块- 多条目布局切换:列表/卡片/表格
- 单条目布局切换:信息/正文(Markdown)
- 增加
便签
部件
- 测试:
test-party
模块- 增加
简单聊天
部件
- 增加
- 工作流引擎:
- 增加
转办
- 增加
代办
- 增加
- 工作流引擎:
- 增加
行为
机制:从而实现与 activiti 中边界事件
所对应的应用场景- 一个
节点
可以附加多个行为
行为
可以指定专属的边
,从而进行节点
的迁移
- 一个
- 增加
行为
:超时处理
- 增加
- 工作流引擎:
- 增加
网关节点
--排他网关
--并行网关
--包含网关
- 增加
- 数据字典:
- 支持版本控制
- 支持对字典单独授权
- 支持多级树形字典
- 内置:美国城市区划、中国城市区划
- 通用的后端逻辑处理
- 通用的前端渲染组件
- 同时支持 Chart.js 和 Echarts
- 水果销量(折线图):采用 Chart.js
- 水果销量(饼图):采用 Echarts
- atom:增加
- 增强
- atom:布局管理器重构
- 重构列表布局
- 重构条目布局
- 重构筛选布局
- dashboard:重构仪表板
- markdown:重构 markdown 编辑器以及渲染器
- json:重构 json 编辑器
- stats:同时支持 dependencies 和 dependents
- atom:布局管理器重构
- 特性
- egg-born-front: 前端增加 uuid 工具
this.$meta.util.uuid
- dashboard: 当开锁时,提示
您应该重新加锁,以便保存被修改的配置
- egg-born-front: 前端增加 uuid 工具
- 杂项
- 优化 eslint 和 prettier 配置
- 优化 npm 脚本:npm run lint / npm run format
- fix 所有代码的格式,与格式化工具配置对齐
- 提炼 VSCode 插件最简配置,参见:VS Code 官方插件集与工具
- 杂项
- 调整 eslint 格式化配置,增加 prettier 格式化配置
- 重构
- 增加 bean.file,以便集中管理 file 的功能
- 优化文章附件的列表显示
- 重构
- 模块 npm 指令机制调整,并修复 windows 下执行时的报错问题
- 模块增加 build/config 文件,方便修改模块的编译打包参数
- 杂项
- uuid 升级至 8.3.2
- 修复
- 用户标签的统计值与实际不一致
- [
aa926a879
] - fix: stats error of userLabels (zhennann <[email protected]>)
- 重构
- CMS 文章列表:优化图文混排样式
- [
d16bbe66f
] - fix: CMS 主题中图片位置优化 #16 cabloy#16 (ehitco <[email protected]>)
- 重构
- CMS Block:采用 Bean 组件重构渲染逻辑,并且支持内容的异步渲染
- 增强
- right 中间件:原子权限的 action 允许设置为字符型 name
- 特性
- pc/mobile 布局切换:当页面尺寸变化时,如果达到 pc/mobile 切换的阈值,就会弹出通知,提示是否需要切换布局
- 特性
- 支持自定义 favicon.ico
- 优化资源管理:更完善的本地化方案
- 仪表板:匿名用户与认证用户分开配置
- PC 布局:匿名用户与认证用户分开配置
- Mobile 布局:匿名用户与认证用户分开
- 普通草稿、流转中草稿:分开统计并分开显示
- 当模块加载时间过长时显示进度条
- 特性
- ebDisplay: 表单字段支持动态
显示/隐藏
- ebDisplay: 表单字段支持动态
- 特性
- bean.local: 更便利的获取
local场景
的本地Bean实例
- 参见:Bean.local
- bean.local: 更便利的获取
- 特性
- 点击导航栏左侧的 Logo 自动打开
菜单面板
菜单面板
支持两种布局风格:折叠布局
、树形布局
- 点击导航栏左侧的 Logo 自动打开
- 重构
- test-party 和 test-flow 重构,支持在 prod 环境中运行
- 特性
- 原子分享与点击跟踪的通用机制
- 修复
- 工作流可视化编辑器: 在 PC 场景下有时无法打开右侧属性面板
-
重构
- 工作流可视化编辑器: 对流程节点渲染风格进行优化
- 工作流:增加
原子提交结束事件
-
重要提示
- 旧方案: 当流程顺利完成时,
空结束事件
会自动将原子从草稿
转为正式
副本 - 新方案:为了保持概念的一致性,新增
原子提交结束事件
,将原子提交逻辑
从空结束事件
中移出 - 请核对流程定义做出相应的变更,如果直接修改流程定义的 json 内容,应该是:
endEventNone
->endEventAtom
- 旧方案: 当流程顺利完成时,
- 特性
- 工作流可视化编辑器
-
特性
- CMS 通用渲染机制: 对 CMS 渲染机制进行了进一步提炼,形成通用的渲染机制。也就是说,任何原子类型均可以根据业务的实际需求,便捷的配置
静态渲染机制
,比如商品
、订单
,等等- 参见:通用渲染机制
- CMS 通用渲染机制: 对 CMS 渲染机制进行了进一步提炼,形成通用的渲染机制。也就是说,任何原子类型均可以根据业务的实际需求,便捷的配置
-
优化
- docker-compose: 对配置文件进行了调整
- 特性
- 明细表: Atom 原子可以添加明细表
- 动态表达式:schema 表单属性支持动态表达式
- 初始模版:增加模版用于快速生成明细表的文件骨架
- 我的页面:同时显示星标和标签,以及对应的统计值标示
- 杂项
- 修复 markdown-it-katex 安全预警
- 杂项
- babel-eslint 升级为@babel/eslint-parser
- 删除子仓库的 package-lock.json
- 增强
- cms:文档主题:一级目录支持直接包含技术文章
- cms:当以 iframe 方式显示时,html 增加样式 in-iframe
- 评论:在评论列表页面显示文章的查看链接
-
特性
- cms: 文章查看:直接使用 iframe 嵌入静态页面
- webpack:暴露 splitChunks 参数,支持分包配置
-
增强
- cms:从静态页面跳转后台,在更合理的页面打开“个人信息”链接
-
修复
- 评论:多层嵌套评论的样式优化
- 特性
- message: 统一消息中心
- 工作流消息: 当有新任务或者流程结束时,给相关人员发送消息
- 评论消息:当有新评论时,给文章的相关人员发送消息
- 杂项
- vscode: 调整 launch.json 配置
- cli: 提示升级测试模块
-
特性
- 工作流: 增加
撤回
功能
- 工作流: 增加
-
重构
- 工作流: 重写流程时间线页面,更清晰、更分明
- socketio: 将
工作流消息
从模块a-flowtask
移至a-flow
- 验证器: 验证失败的错误提示不再打印到控制台
- 星标原子: 统计值颜色由
orange
改为gray
- 重构
- socketio: 将 uniform 初始化移入 buttonMine
- 特性
- socketio: add field uniform for messageClass
- 增强
- egg-born-backend: redlock.lockTTL=8*1000 for local
- 修复
- socketIO: message.onProcess 变更
- socketIO: 增加 x-clientid 支持
- 重构
- 主题 themebrilliant:调整颜色
- 特性
- socketIO:支持 visibilitychange 事件,从而节约资源占用:当页面隐藏时断开 socket,当页面显示时自动恢复 socket
- 特性
- clientId:每个页面分配唯一 clientId
- socketIO:clientId 机制,支持多个页面同时接收 socket 消息
- 优化
- 构建系统:进一步增强
模块后端编译
的丑化参数
- 构建系统:进一步增强
- 特性
- 文件上传:支持固定上传尺寸
- 文件上传:schema ebType=file,支持固定上传尺寸
- 文件上传:支持拖拽上传
- 文件上传:默认不显示上传文件名
- cms:语言与目录不能为空
- 特性
- 主题:新增主题
brilliant灿烂
- 主题:新增主题
-
重构
- 术语变更:为了避免与
Tag标签
混淆,将Label
改为User Label
,即标签
->用户标签
- 术语变更:为了避免与
-
特性
- 验证码:可以在开发环境指定
禁止验证码
- 验证码:当验证失败时,控制台不再打印相关信息
- 原子批量指令:支持 stage 属性
- 前端 scene:在 http headers 中增加 x-scene 自定义头部
- 后端 configFront:后端 config 可以设置 configFront,configFront 将被返回前端,覆盖前端 config
- 页面布局:增加布局原子类型,通过原子来管理布局,从而进一步增强布局的可配置性和灵活性
- 页面布局:用户可以
重置
,恢复布局的初始配置 - mobile 布局:Tabbar 按钮也支持动态配置:增、减、拖拽
- mobile 布局:修改
微信/企业微信/钉钉
用于演示的 mobile 布局
- 验证码:可以在开发环境指定
-
修复
- 工作流:当完成
确认参与人
时,更新任务统计值
- 工作流:当完成
- 特性
- CMS:支持设置
备案号
- 仪表板:仪表板中的链接,默认在新 Tab 中打开
- CMS:支持设置
- 重构
- 术语变更:将
归档
改为正式
,即Archive
->Formal
- 术语变更:将
-
重构
- 我的页面:将
任务
和流程
按钮进行合并显示,使布局更紧凑 - 我的页面:将
外观
按钮移入二级页面 - 项目的
name
和title
直接在根目录的package.json
中设置
- 我的页面:将
-
特性
- 统计值:支持在
eb-link
中使用 - 字段索引:补全新数据表的字段索引
- 历史 Atom:显示
修订
badget - 测试与开发环境,database 默认设置为
mysql
,从而兼容mysql
和mariadb
- 静态原子:当
atomRevision
设置为-1
时,自动删除数据库中的数据
- 统计值:支持在
-
修复
- 当服务中断重启时,前端 socketio 可以自动重连
- Some fixes and enhances
- features
- Bean & AOP
- Almost everything is Bean
- Bean supports AOP
- AOP is also Bean
- NodeJS Workflow Engine
- Atom Stages: Draft, Archive, History
- Stats Value Update and Push Automatically
- Bean & AOP
- feature
- lerna: managing multiple packages with lerna
- feature: support wechat work
- chore: change to MIT License
- features
-
**features - backend core **
- Cluster: Cluster now becomes the first class citizen of CabloyJS
- Redis: Cluster is based on Redis
- Queue: Reconstructed based on bottleneck & bullmq
- Schedule: Reconstructed based on Queue
- Broadcast: Reconstructed based on Redis
- Cache: Reconstructed based on Redis
- Startup: Reconstructed
- Docker Compose: There is a
docker-compose.yml
configuration file in the root directory of the project. If you have installed the docker compose environment, you can start all services of CabloyJS with only one command, including Redis, MySQL, Nginx and CabloyJS backend service
- Module Monkey: Easy to replace some functionalities of modules just like a monkey🐒
- Cluster: Cluster now becomes the first class citizen of CabloyJS
-
**features - frontend core **
-
**features - modules **
- features
- updated to Framework7 V5 🎉
- features
- support module prebuild, so as to reduce project build time 🎉
- features
- updated to Framework7 V4 🎉
- features
- support f7 color-theme
- features
- a-components: eb-box
- features
- enhance schema&validate
- features
- enhance schema&validate
- refactor
- a-base: changed to sync module
- fix
- a-components: eb-context-menu
- fix
- a-components: eb-toggle
- features
- a-baseadmin support locale
- features
- Moudle's css can be overwrited
- features
- Updated to Framework7 3.0
- Mobile first, and adapted to PC layout
- features
- First Publish