@cniot/mdd-editor 0.2.0-beta.8 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.MD +311 -11
  2. package/build/index.cjs.js +27 -25
  3. package/build/index.es.js +3679 -507
  4. package/build/style.css +1 -1
  5. package/package.json +1 -1
  6. package/src/ai/LocalAIDrawer.jsx +211 -0
  7. package/src/ai/bridgeClient.js +76 -0
  8. package/src/ai/pageIR.js +148 -0
  9. package/src/components/address-select/formily.jsx +1 -1
  10. package/src/components/ajax-schema-form/formily-table-form-proxy.jsx +1 -1
  11. package/src/components/ajax-schema-form/formily.jsx +1 -1
  12. package/src/components/ajax-schema-form/table-form-proxy.jsx +1 -1
  13. package/src/components/ajax-schema-form/table-form.jsx +1 -1
  14. package/src/components/data-source-select/formily.jsx +1 -1
  15. package/src/components/dynamic-value/base/formily.jsx +1 -1
  16. package/src/components/dynamic-value/date/formily.jsx +1 -1
  17. package/src/components/formily-select/index.tsx +1 -1
  18. package/src/components/params-select/formily.jsx +1 -1
  19. package/src/components/time-range/formily.jsx +1 -1
  20. package/src/hooks/useSchema.jsx +5 -5
  21. package/src/hooks/useSwagger.jsx +2 -2
  22. package/src/schema/base-schema/AjaxSchema.js +1 -1
  23. package/src/schema/base-schema/AjaxSchemaQueue.js +1 -1
  24. package/src/schema/blocks/edit-table.js +57 -0
  25. package/src/schema/blocks/filter.js +49 -0
  26. package/src/schema/blocks/form.js +49 -0
  27. package/src/schema/blocks/index.js +32 -10
  28. package/src/schema/blocks/table.js +3 -4
  29. package/src/schema/detail/detail-item.js +5 -5
  30. package/src/schema/detail/index.js +26 -18
  31. package/src/schema/edit-table/header-toolbar.js +1 -1
  32. package/src/schema/edit-table/index.js +10 -5
  33. package/src/schema/edit-table/table.js +10 -2
  34. package/src/schema/formily-form/data-source.js +1 -1
  35. package/src/schema/formily-form/form-schema.js +1 -1
  36. package/src/schema/formily-form/index.js +8 -8
  37. package/src/schema/formily-form-v2/form-info.js +2 -2
  38. package/src/schema/formily-form-v2/form-items.js +1 -1
  39. package/src/schema/formily-form-v2/index.js +3 -3
  40. package/src/schema/ftp/data-source.js +1 -1
  41. package/src/schema/ftp/filter.js +2 -2
  42. package/src/schema/ftp/header-toolbar.js +1 -1
  43. package/src/schema/ftp/index.js +4 -4
  44. package/src/schema/ftp/middle-item.js +1 -1
  45. package/src/schema/ftp/table.js +9 -3
  46. package/src/schema/util.js +3 -3
  47. package/src/services/index.js +1 -1
  48. package/src/template/blocks/EditTable.jsx +62 -0
  49. package/src/template/blocks/Filter.jsx +137 -0
  50. package/src/template/blocks/Form.jsx +136 -0
  51. package/src/template/blocks/Table.jsx +4 -4
  52. package/src/template/const.js +22 -5
  53. package/src/template/detail/DetailItems.jsx +6 -1
  54. package/src/template/detail/components/Actions.jsx +1 -1
  55. package/src/template/detail/components/DetailCard.jsx +8 -5
  56. package/src/template/detail/components/DetailColumns.jsx +193 -113
  57. package/src/template/detail/components/DetailCustom.jsx +2 -2
  58. package/src/template/detail/components/DetailTable.jsx +13 -8
  59. package/src/template/detail/components/MultiAjaxSchemaForm.jsx +1 -1
  60. package/src/template/edit-table/HeaderToolbar.jsx +3 -2
  61. package/src/template/edit-table/Table.jsx +56 -3
  62. package/src/template/formily-form-v2/FormInfo.jsx +1 -1
  63. package/src/template/formily-form-v2/FormItems.jsx +4 -8
  64. package/src/template/formilyform/components/AsyncDataSourceSetter/index.tsx +1 -1
  65. package/src/template/formilyform/components/SubmitActionSetter/index.tsx +1 -1
  66. package/src/template/ftp/DataSource.jsx +1 -1
  67. package/src/template/ftp/Filter.jsx +14 -7
  68. package/src/template/ftp/HeaderToolbar.jsx +8 -4
  69. package/src/template/ftp/Middle.jsx +11 -7
  70. package/src/template/ftp/Table.jsx +143 -12
  71. package/src/template/simple-ftp/Table.jsx +2 -2
  72. package/src/toolbar.jsx +76 -14
  73. package/src/utils/buildFieldsToCompJson.js +3 -3
  74. package/src/utils/persistentStorage.js +1 -1
  75. package/src/utils/swagger/api2SchemaFromSwagger.js +7 -7
package/README.MD CHANGED
@@ -1,74 +1,282 @@
1
+ # 0.2.0-beta.56
2
+
3
+ - feat: 批量输入框(batchInput)新增 valueType 配置属性,支持选择返回值类型为 string("a,b,c")或 list["a","b","c"]
4
+
5
+ # 0.2.0-beta.55
6
+
7
+ - feat: 新增行详情是否能展示全部配置
8
+
9
+ # 0.2.0-beta.54
10
+
11
+ - feat: form 的表单项支持左右自定义渲染
12
+
13
+ # 0.2.0-beta.53
14
+
15
+ - feat: 可编辑表格支持 上传文件
16
+
17
+ # 0.2.0-beta.51 ~ 52
18
+
19
+ - 可编辑表格地址选择器添加默认国家、是否先选择国家属性配置
20
+
21
+ # 0.2.0-beta.49
22
+
23
+ - fix: upload 没有读取 multiple 属性
24
+
25
+ # 0.2.0-beta.47 ~ 0.2.0-beta.48
26
+
27
+ - 可编辑表格操作按钮支持导入
28
+
29
+ # 0.2.0-beta.46
30
+
31
+ - 支持请求 入参、出参 源码处理
32
+ - 支持自定义排序配置
33
+
34
+ # 0.2.0-beta.45
35
+
36
+ - 表单 卡片、子卡片 title 支持额外渲染自定义内容
37
+
38
+ # 0.2.0-beta.44
39
+
40
+ - 从 localStorage 读取 配置
41
+ - log 版本号
42
+
43
+ # 0.2.0-beta.43
44
+
45
+ - feat: 筛选项支持条件渲染
46
+
47
+ # 0.2.0-beta.42
48
+
49
+ - fix: 详情卡片 隐藏父级卡片 默认值逻辑调整
50
+
51
+ # 0.2.0-beta.41
52
+
53
+ - feat: 支持 新版布局 filter 默认展开
54
+
55
+ # 0.2.0-beta.40
56
+
57
+ - feat: 可编辑表格 列配置 从 localStorage 读取
58
+
59
+ # 0.2.0-beta.39
60
+
61
+ - feat: 支持 onePage
62
+
63
+ # 0.2.0-beta.38
64
+
65
+ - feat: 列表区块整体支持 条件渲染
66
+
67
+ # 0.2.0-beta.37
68
+
69
+ - 可编辑表格支持列配置
70
+
71
+ # 0.2.0-beta.36
72
+
73
+ - fix: delayLoadingMessageDuration 配置无法更新
74
+
75
+ # 0.2.0-beta.35
76
+
77
+ - fix: delayLoadingMessageDuration 配置为 number
78
+
79
+ # 0.2.0-beta.34
80
+
81
+ - 弹窗 抽屉 通过【关闭按钮 X】【点击 mask 区域】【键盘 esc 按键】关闭弹窗时 可以 刷新父级列表
82
+
83
+ # 0.2.0-beta.33
84
+
85
+ - ajax 中 message 提示 最长 duration 支持配置,key:delayLoadingMessageDuration
86
+
87
+ # 0.2.0-beta.32
88
+
89
+ - 优化 表格 编辑器,减少 重复渲染,提高性能
90
+
91
+ # 0.2.0-beta.31
92
+
93
+ - 更改 分栏 组件 默认数据
94
+
95
+ # 0.2.0-beta.30
96
+
97
+ - feat: 区块支持 表单 & 可编辑表格
98
+
99
+ # 0.2.0-beta.29
100
+
101
+ - feat: table 支持级联勾选开关配置
102
+
103
+ # 0.2.0-beta.28
104
+
105
+ - fix: 可编辑表格最大高度 回显
106
+
107
+ # 0.2.0-beta.27
108
+
109
+ - ajax 请求支持自定义成功和失败文案
110
+
111
+ # 0.2.0-beta.26
112
+
113
+ - fix: 表格最大高度 应是 数字
114
+
115
+ # 0.2.0-beta.25
116
+
117
+ - feat: 全编辑 table 支持 序号、是否虚拟滚动和 自动列宽开关配置
118
+
119
+ # 0.2.0-beta.24
120
+
121
+ - fix: 补齐上传组件配置
122
+
123
+ # 0.2.0-beta.23
124
+
125
+ - fix: 是否禁用无法编辑的问题
126
+
127
+ # 0.2.0-beta.22
128
+
129
+ - 文本框支持 行数
130
+
131
+ # 0.2.0-beta.21
132
+
133
+ - 详情页面支持 配置每个 部分高度
134
+ - 分栏 上下布局支持 配置 高度
135
+
136
+ # 0.2.0-beta.20
137
+
138
+ - 分栏支持隐藏父级卡片和 当前分栏卡片
139
+
140
+ # 0.2.0-beta.19
141
+
142
+ - 兼容 children 不为数组的情况
143
+ - 处理 props key 冲突
144
+
145
+ # 0.2.0-beta.18
146
+
147
+ - 详情卡片支持信息提示组件
148
+
149
+ # 0.2.0-beta.17
150
+
151
+ - 支持信息提示组件
152
+
153
+ # 0.2.0-beta.16
154
+
155
+ - feat: 时间选择格式 支持国际格式
156
+
157
+ # 0.2.0-beta.15
158
+
159
+ - fix: 国际电话组件编辑属性优化
160
+
161
+ # 0.2.0-beta.14
162
+
163
+ - 表单模板支持国际电话输入框
164
+
165
+ # 0.2.0-beta.13
166
+
167
+ - 支持 双击 行空白区域 事件
168
+
169
+ # 0.2.0-beta.12
170
+
171
+ - 重新发布
172
+
173
+ # 0.2.0-beta.11
174
+
175
+ - 区块支持 筛选项
176
+
177
+ # 0.2.0-beta.10
178
+
179
+ - 支持 操作列按钮最长字符数 配置
180
+
181
+ # 0.2.0-beta.9
182
+
183
+ - 区块支持可编辑表格
184
+
1
185
  # 0.2.0-beta.8
186
+
2
187
  - 支持列表区块的编辑
3
188
 
4
189
  # 0.2.0-beta.7
5
- - detail分栏支持上下布局
190
+
191
+ - detail 分栏支持上下布局
6
192
 
7
193
  # 0.2.0-beta.6
8
- - detail支持分栏多列配置
194
+
195
+ - detail 支持分栏多列配置
9
196
 
10
197
  # 0.2.0-beta.5
198
+
11
199
  - FTP 表头支持分组配置
12
200
 
13
201
  # 0.2.0-beta.4
202
+
14
203
  - 全编辑增加级联选择器
15
204
 
16
205
  # 0.2.0-beta.3
17
- - 日期选择器 支持mode属性
206
+
207
+ - 日期选择器 支持 mode 属性
18
208
 
19
209
  # 0.2.0-beta.2
210
+
20
211
  - 详情和全编辑支持最大高度设置
21
212
 
22
213
  # 0.2.0-beta.1
214
+
23
215
  - 支持 cn-ui 0.12.x
24
216
 
25
217
  # 0.1.51
26
- - table支持最大高度设置
218
+
219
+ - table 支持最大高度设置
27
220
 
28
221
  # 0.1.49
222
+
29
223
  - 服务端数据处理
30
224
 
31
225
  # 0.1.48
226
+
32
227
  - FTP 支持虚拟滚动和自动计算列开关。 地址组件支持国家选择配置
33
228
 
34
229
  # 0.1.47
230
+
35
231
  - 增加服务端处理类型
36
232
 
37
233
  # 0.1.46
234
+
38
235
  - 全编辑增加地址选择组件配置
39
236
 
40
237
  # 0.1.45
238
+
41
239
  - 增加首次渲染不联动配置
42
240
 
43
241
  # 0.1.44
44
- - 所有字段支持国际化key配置
242
+
243
+ - 所有字段支持国际化 key 配置
45
244
 
46
245
  # 0.1.43
246
+
47
247
  - 编辑器脚本 右上角支持自定义动作按钮,scriptTopButtons: [buttonProps,buttonProps]
48
248
 
49
249
  # 0.1.41
250
+
50
251
  - 增加数值区间组件
51
252
 
52
253
  # 0.1.40
53
- - swagger获取支持接口返回json字符串格式
254
+
255
+ - swagger 获取支持接口返回 json 字符串格式
54
256
 
55
257
  # 0.1.39
56
- - 全编辑批量添加支持l4页面选择
258
+
259
+ - 全编辑批量添加支持 l4 页面选择
57
260
 
58
261
  # 0.1.38
262
+
59
263
  - 导入轮训模块配置
60
264
 
61
265
  # 0.1.37
62
- - fix表单初始化报错问题
266
+
267
+ - fix 表单初始化报错问题
63
268
 
64
269
  # 0.1.36
65
- - simpleFTP模板 露出顶部操作区配置。 主要针对博西华和沪上的动态报表
270
+
271
+ - simpleFTP 模板 露出顶部操作区配置。 主要针对博西华和沪上的动态报表
66
272
 
67
273
  # 0.1.35
68
- - 解析swagger 递归层级优化
274
+
275
+ - 解析 swagger 递归层级优化
69
276
 
70
277
  # 0.1.33
71
- - fix formily多层级联动bug
278
+
279
+ - fix formily 多层级联动 bug
72
280
 
73
281
  # 0.1.32
74
282
 
@@ -199,9 +407,101 @@ return <MddFtpEditor/> // 页面新增
199
407
  props: {
200
408
  pageId: string | number, // 页面ID,页面唯一值
201
409
  url: string, // 前后端固定好基本不用变,除非是路径namespace有变动,需要额外设置
410
+ aiBridge: boolean | string | { baseURL?: string, enabled?: boolean }, // 本地 AI 工作区同步配置,false 可关闭入口
411
+ pageMeta: object, // 页面元信息,建议传 get-by-code 返回的 code/name/gmtModified/modifierAccount
412
+ }
413
+
414
+ ```
415
+
416
+ ## 本地 AI 工作区
417
+
418
+ 编辑器内置“本地 AI”入口,不直接绑定 Cursor、Qoder 或 Codex CLI,而是把当前页面同步为本地普通文件:
419
+
420
+ ```
421
+ npm run mdd:ai-bridge
422
+ ```
423
+
424
+ 没有 mdd 开发仓库权限的业务同学,推荐直接使用 bridge npm 包:
425
+
426
+ ```
427
+ npm i -g @cniot/mdd-ai-bridge
428
+ mdd-ai-bridge
429
+ ```
430
+
431
+ 也可以不安装,直接运行:
432
+
433
+ ```
434
+ npx @cniot/mdd-ai-bridge
435
+ ```
436
+
437
+ 如果团队更希望每个业务项目有固定脚本,可以安装到业务项目:
438
+
439
+ ```
440
+ npm i -D @cniot/mdd-ai-bridge
441
+ ```
442
+
443
+ 然后在业务项目 `package.json` 中配置:
444
+
445
+ ```
446
+ {
447
+ "scripts": {
448
+ "mdd:ai-bridge": "mdd-ai-bridge"
449
+ }
202
450
  }
451
+ ```
452
+
453
+ 这个包启动时默认会把随包发布的 MDD libs 源码复制到 `~/.mdd-ai-workspace/context/mdd-context/source/libs`,业务同学不需要有 mdd 仓库权限。
454
+
455
+ 如果希望 AI 能继续读取 MDD 核心源码上下文,可以启动高级模式:
456
+
457
+ ```
458
+ npm run mdd:ai-bridge:source
459
+ ```
460
+
461
+ 这个模式会把 `~/.mdd-ai-workspace/context/mdd-context/source/libs` 软链到当前仓库的 `src/libs`。如果 AI 工具不擅长读取软链,可以改用复制模式:
203
462
 
204
463
  ```
464
+ npm run mdd:ai-bridge:copy-source
465
+ ```
466
+
467
+ 默认工作区:
468
+
469
+ ```
470
+ ~/.mdd-ai-workspace/context/mdd-context/
471
+ AGENTS.md
472
+ api-cheatsheet.md
473
+ engine-runtime.md
474
+ schema-dsl.md
475
+ hooks-cookbook.md
476
+ types/mdd-runtime.d.ts
477
+ examples/
478
+ source/
479
+
480
+ ~/.mdd-ai-workspace/pages/{code}/
481
+ mdd.schema.json
482
+ mdd.script.jsx
483
+ mdd.style.less
484
+ page.ir.json
485
+ page.meta.json
486
+ AGENTS.md
487
+ README.md
488
+ ```
489
+
490
+ 推荐流程:
491
+
492
+ 1. 在浏览器编辑器点击“AI”。
493
+ 2. 点击“发送到本地 AI”。
494
+ 3. 用 Cursor、Qoder、Codex CLI 等工具打开工作区目录并修改文件。
495
+ 4. 回到浏览器点击“同步本地修改”。
496
+ 5. 预览确认后继续走原保存逻辑。
497
+
498
+ 上下文说明:
499
+
500
+ - 点击“发送到本地 AI”时会自动确保全局 Context Pack 存在。
501
+ - 默认只生成精简文档和类型,轻量、稳定、AI 好读。
502
+ - `MDD_AI_CONTEXT_SOURCE=link` 会建立源码软链。
503
+ - `MDD_AI_CONTEXT_SOURCE=copy` 会复制核心 libs 源码,适合发布成 bridge npm 包或 AI 工具不跟随软链的场景。
504
+ - 如需强制刷新上下文,启动时加 `MDD_AI_CONTEXT_REFRESH=1`。
205
505
 
206
506
  ## 注意
207
507