@cniot/mdd-editor
v0.3.14
Published
模型驱动编辑器
Downloads
1,217
Maintainers
Keywords
Readme
0.3.12
- feat: “同步其他 L4 页面”弹窗新增递归同步开关,开启后会继续扫描手动输入 L4 页面引用的子 L4 页面,直到没有新的子页面。
- style: 优化“同步其他 L4 页面”弹窗视觉样式,补充输入卡片、递归开关、统计预览和 code 标签展示。
- upgrade: 建议需要批量同步跨 L4 依赖链路的页面升级到
@cniot/mdd-editor >= 0.3.12。
0.3.11
- feat: 本地 AI 工作区新增“同步其他 L4 页面”入口,支持手动输入多个 L4 code 并批量同步到本地。
- feat: 批量同步其他 L4 页面时会自动去重,并跳过本地已有未同步修改的页面,避免覆盖本地改动。
- upgrade: 建议需要处理跨 L4 页面依赖、弹窗或跳转联动的页面升级到
@cniot/mdd-editor >= 0.3.11。
0.3.10
- chore: bump
@cniot/mdd-editorto0.3.10.
0.3.7
- fix: 修复表格列等配置项标题区输入字段时,React key 随
name/dataIndex变化导致面板重挂载、输入框打一字就失焦的问题;配置项面板改为使用内部稳定 key,不写入业务 schema。 - upgrade: 建议存在表格列、筛选项、表单项等配置编辑场景的页面升级到
@cniot/mdd-editor >= 0.3.7。
0.3.6
- fix: 修复“同步本地更改”后,编辑器面板刷新时可能重复初始化
react-dnd-html5-backend,导致Cannot have two HTML5 backends at the same time.的问题。 - fix: 统一编辑器内拖拽上下文,表格类配置组件复用共享 DnD Provider,避免多个可拖拽配置区同时渲染或重挂载时重复创建 HTML5 backend。
- chore: 显式补充
dnd-core依赖,保证共享 DragDropManager 在包发布和独立使用场景下依赖完整。 - upgrade: 建议存在本地 AI 工作区同步能力的页面升级到
@cniot/mdd-editor >= 0.3.6,尤其是会只修改mdd.style.less后点击“同步本地更改”的场景。
0.3.5
- feat: 本地修改 diff 支持左右对照查看,按文件展示“上次发送”和“本地修改”,滚动时两侧天然同步。
- feat: diff 查看支持 JSON、JSX、LESS 轻量语法高亮,并保留旧 bridge 的文本 diff 回退。
- chore: 推荐配套版本为
@cniot/mdd-editor >= 0.3.5+@cniot/mdd-ai-bridge >= 0.1.7。
0.3.4
- feat: 优化“本地 AI 工作区”抽屉视觉层级,拆分 Bridge 状态、工作区操作、辅助操作区域,减少按钮拥挤。
- feat: 新增“访问本地 AI 主页”按钮,可直接打开本地 bridge 控制台。
- style: 状态、页面、目录信息改为分行展示,长页面 code 和目录路径更易阅读。
0.3.3
- feat: 本地 AI 抽屉展示 bridge 版本,并提示本地 bridge 版本是否偏旧。
- feat: 本地 AI 抽屉新增“复制启动命令 / 复制工作区路径 / 复制 AI 提示词”,降低后端同学接入成本。
- feat: 线上 HTTP 页面访问本地 bridge 时复用 relay 窗口,减少反复弹窗。
- feat: 同步本地修改后展示更清晰的本地修改摘要,并支持展开查看 schema 改动路径和文本 diff。
- feat: 配合
@cniot/mdd-ai-bridge >= 0.1.6,支持本地控制台、增强版 Context Pack、PROMPT.md、JSON 错误行列号和 diff 摘要。 - chore: 推荐配套版本为
@cniot/mdd-editor >= 0.3.3+@cniot/mdd-ai-bridge >= 0.1.6。
0.3.1
- feat: 新增“本地 AI”工作区入口,支持把当前页面的 schema、script、style、页面摘要同步到本地目录,方便 Cursor、Qoder、Codex CLI 等本地 AI 工具直接修改。
- feat: 支持通过
@cniot/mdd-ai-bridge连接本地工作区,默认端口为17678,本地目录默认为~/.mdd-ai-workspace。 - feat: 针对线上 HTTP 编辑页面访问
127.0.0.1被 Chrome Private Network Access 拦截的问题,新增本地 relay 通道,线上页面会通过postMessage与http://127.0.0.1:17678/relay通信。 - feat: 同步本地 AI 修改后,会刷新编辑器面板和脚本/schema 编辑器内容,保证本地修改能及时回显。
- fix: 优化 FTP 编辑面板
$updated事件监听清理,减少重复监听。 - chore: AI 能力为旁路增强,不改变原有保存链路;同步后仍需继续使用原页面保存按钮提交。
0.2.0-beta.56
- feat: 批量输入框(batchInput)新增 valueType 配置属性,支持选择返回值类型为 string("a,b,c")或 list["a","b","c"]
0.2.0-beta.55
- feat: 新增行详情是否能展示全部配置
0.2.0-beta.54
- feat: form 的表单项支持左右自定义渲染
0.2.0-beta.53
- feat: 可编辑表格支持 上传文件
0.2.0-beta.51 ~ 52
- 可编辑表格地址选择器添加默认国家、是否先选择国家属性配置
0.2.0-beta.49
- fix: upload 没有读取 multiple 属性
0.2.0-beta.47 ~ 0.2.0-beta.48
- 可编辑表格操作按钮支持导入
0.2.0-beta.46
- 支持请求 入参、出参 源码处理
- 支持自定义排序配置
0.2.0-beta.45
- 表单 卡片、子卡片 title 支持额外渲染自定义内容
0.2.0-beta.44
- 从 localStorage 读取 配置
- log 版本号
0.2.0-beta.43
- feat: 筛选项支持条件渲染
0.2.0-beta.42
- fix: 详情卡片 隐藏父级卡片 默认值逻辑调整
0.2.0-beta.41
- feat: 支持 新版布局 filter 默认展开
0.2.0-beta.40
- feat: 可编辑表格 列配置 从 localStorage 读取
0.2.0-beta.39
- feat: 支持 onePage
0.2.0-beta.38
- feat: 列表区块整体支持 条件渲染
0.2.0-beta.37
- 可编辑表格支持列配置
0.2.0-beta.36
- fix: delayLoadingMessageDuration 配置无法更新
0.2.0-beta.35
- fix: delayLoadingMessageDuration 配置为 number
0.2.0-beta.34
- 弹窗 抽屉 通过【关闭按钮 X】【点击 mask 区域】【键盘 esc 按键】关闭弹窗时 可以 刷新父级列表
0.2.0-beta.33
- ajax 中 message 提示 最长 duration 支持配置,key:delayLoadingMessageDuration
0.2.0-beta.32
- 优化 表格 编辑器,减少 重复渲染,提高性能
0.2.0-beta.31
- 更改 分栏 组件 默认数据
0.2.0-beta.30
- feat: 区块支持 表单 & 可编辑表格
0.2.0-beta.29
- feat: table 支持级联勾选开关配置
0.2.0-beta.28
- fix: 可编辑表格最大高度 回显
0.2.0-beta.27
- ajax 请求支持自定义成功和失败文案
0.2.0-beta.26
- fix: 表格最大高度 应是 数字
0.2.0-beta.25
- feat: 全编辑 table 支持 序号、是否虚拟滚动和 自动列宽开关配置
0.2.0-beta.24
- fix: 补齐上传组件配置
0.2.0-beta.23
- fix: 是否禁用无法编辑的问题
0.2.0-beta.22
- 文本框支持 行数
0.2.0-beta.21
- 详情页面支持 配置每个 部分高度
- 分栏 上下布局支持 配置 高度
0.2.0-beta.20
- 分栏支持隐藏父级卡片和 当前分栏卡片
0.2.0-beta.19
- 兼容 children 不为数组的情况
- 处理 props key 冲突
0.2.0-beta.18
- 详情卡片支持信息提示组件
0.2.0-beta.17
- 支持信息提示组件
0.2.0-beta.16
- feat: 时间选择格式 支持国际格式
0.2.0-beta.15
- fix: 国际电话组件编辑属性优化
0.2.0-beta.14
- 表单模板支持国际电话输入框
0.2.0-beta.13
- 支持 双击 行空白区域 事件
0.2.0-beta.12
- 重新发布
0.2.0-beta.11
- 区块支持 筛选项
0.2.0-beta.10
- 支持 操作列按钮最长字符数 配置
0.2.0-beta.9
- 区块支持可编辑表格
0.2.0-beta.8
- 支持列表区块的编辑
0.2.0-beta.7
- detail 分栏支持上下布局
0.2.0-beta.6
- detail 支持分栏多列配置
0.2.0-beta.5
- FTP 表头支持分组配置
0.2.0-beta.4
- 全编辑增加级联选择器
0.2.0-beta.3
- 日期选择器 支持 mode 属性
0.2.0-beta.2
- 详情和全编辑支持最大高度设置
0.2.0-beta.1
- 支持 cn-ui 0.12.x
0.1.51
- table 支持最大高度设置
0.1.49
- 服务端数据处理
0.1.48
- FTP 支持虚拟滚动和自动计算列开关。 地址组件支持国家选择配置
0.1.47
- 增加服务端处理类型
0.1.46
- 全编辑增加地址选择组件配置
0.1.45
- 增加首次渲染不联动配置
0.1.44
- 所有字段支持国际化 key 配置
0.1.43
- 编辑器脚本 右上角支持自定义动作按钮,scriptTopButtons: [buttonProps,buttonProps]
0.1.41
- 增加数值区间组件
0.1.40
- swagger 获取支持接口返回 json 字符串格式
0.1.39
- 全编辑批量添加支持 l4 页面选择
0.1.38
- 导入轮训模块配置
0.1.37
- fix 表单初始化报错问题
0.1.36
- simpleFTP 模板 露出顶部操作区配置。 主要针对博西华和沪上的动态报表
0.1.35
- 解析 swagger 递归层级优化
0.1.33
- fix formily 多层级联动 bug
0.1.32
- 支持数据源配置为 flow
0.1.31
- fix 表单自定义模块不能选择 L4 模块的问题
0.1.30
- fix
0.1.29
- debug 模式下,开启 schema 编辑功能
0.1.28
- bugfix
0.1.27
- bugfix
- cnNumber 小数点调整
0.1.26
- 地址加上搜索功能
0.1.25
- 编辑器兼容在线 L3 页面创建
0.1.24
- 详情卡片支持 item 渲染到标题
0.1.23
- action 动作增加快捷操作按钮,可以外部传入 moduleMap
0.1.22
- 升级脚本模板
0.1.21
- 操作 schema 默认值优化
0.1.20
- fix
0.1.19
- 返回字段是 date-time 类型需要格式化为时间
0.1.18
- swagger 处理函数 export 优化
- 操作咧动作默认开启刷新父级
0.1.14
- 默认 id 字段禁用状态
0.1.13
- 列操作动作加上默认参数&错误日志输出
0.1.12
- 支持注册 全局模块下拉数据源
0.1.11
- L4 格式兼容处理
0.1.10
- fix ftp 编辑器样式问题
0.1.9
- fix 脚本编辑器 bug
0.1.8
- 所有模板支持 swagger 字段选择
0.1.5
- 脚本&样式编辑器 逻辑优化
0.1.4
- 上传组件去除图片 类型
- 增加 脚本和样式编辑器, 通过事件接受 change script:update, style:update
0.1.3
- 增加预览功能
模型驱动编辑器引擎
在线文档参考: https://yuque.antfin.com/docs/share/65a39ca0-f5a2-49aa-8c0f-3f3287597a67?# 《模型驱动引擎页面如何使用》
直接使用
- pc
import { MddFtpEditor, MddFormEditor, MddDetailEditor, MddEditTableEditor } from '@cniot/mdd-editor'
const pageId = new URLSearchParams(location.search).get('pageId')
// render
return <MddFtpEditor pageId={pageId}/> // 页面编辑
return <MddFtpEditor/> // 页面新增
- 组件属性
props: {
pageId: string | number, // 页面ID,页面唯一值
url: string, // 前后端固定好基本不用变,除非是路径namespace有变动,需要额外设置
aiBridge: boolean | string | { baseURL?: string, enabled?: boolean }, // 本地 AI 工作区同步配置,false 可关闭入口
pageMeta: object, // 页面元信息,建议传 get-by-code 返回的 code/name/gmtModified/modifierAccount
}
本地 AI 工作区
编辑器内置“本地 AI”入口,不直接绑定 Cursor、Qoder 或 Codex CLI,而是把当前页面同步为本地普通文件:
npm run mdd:ai-bridge没有 mdd 开发仓库权限的业务同学,推荐直接使用 bridge npm 包:
npm i -g @cniot/mdd-ai-bridge
mdd-ai-bridge也可以不安装,直接运行:
npx @cniot/mdd-ai-bridge如果团队更希望每个业务项目有固定脚本,可以安装到业务项目:
npm i -D @cniot/mdd-ai-bridge然后在业务项目 package.json 中配置:
{
"scripts": {
"mdd:ai-bridge": "mdd-ai-bridge"
}
}这个包启动时默认会把随包发布的 MDD libs 源码复制到 ~/.mdd-ai-workspace/context/mdd-context/source/libs,业务同学不需要有 mdd 仓库权限。
如果希望 AI 能继续读取 MDD 核心源码上下文,可以启动高级模式:
npm run mdd:ai-bridge:source这个模式会把 ~/.mdd-ai-workspace/context/mdd-context/source/libs 软链到当前仓库的 src/libs。如果 AI 工具不擅长读取软链,可以改用复制模式:
npm run mdd:ai-bridge:copy-source默认工作区:
~/.mdd-ai-workspace/context/mdd-context/
AGENTS.md
api-cheatsheet.md
engine-runtime.md
schema-dsl.md
hooks-cookbook.md
types/mdd-runtime.d.ts
examples/
source/
~/.mdd-ai-workspace/pages/{code}/
mdd.schema.json
mdd.script.jsx
mdd.style.less
page.ir.json
page.meta.json
AGENTS.md
README.md推荐流程:
- 在浏览器编辑器点击“AI”。
- 点击“发送到本地 AI”。
- 用 Cursor、Qoder、Codex CLI 等工具打开工作区目录并修改文件。
- 回到浏览器点击“同步本地修改”。
- 预览确认后继续走原保存逻辑。
上下文说明:
- 点击“发送到本地 AI”时会自动确保全局 Context Pack 存在。
- 默认只生成精简文档和类型,轻量、稳定、AI 好读。
MDD_AI_CONTEXT_SOURCE=link会建立源码软链。MDD_AI_CONTEXT_SOURCE=copy会复制核心 libs 源码,适合发布成 bridge npm 包或 AI 工具不跟随软链的场景。- 如需强制刷新上下文,启动时加
MDD_AI_CONTEXT_REFRESH=1。
注意
- externals
external: [
'react',
'react-dom',
'axios',
'EventEmitter',
'@cainiaofe/cn-ui',
'ahooks',
'classnames',
'cn-address-select-pro',
'lodash',
]
