@microi.net/cli 5.8.5 → 5.8.7

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 (208) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.workbuddy-plugin/marketplace.json +2 -2
  5. package/.workbuddy-plugin/plugin.json +1 -1
  6. package/LICENSE +21 -21
  7. package/README.md +71 -71
  8. package/assets/build-meta.json +7 -7
  9. package/assets/feature-matrix.json +138 -138
  10. package/assets/logo.svg +4 -4
  11. package/cordis.patch.yml +1 -1
  12. package/package.json +1 -1
  13. package/scripts/mcp-codex-stdio-adapter.js +0 -0
  14. package/scripts/mcp-server.js +1 -1
  15. package/scripts/microi-cli.js +66 -65
  16. package/scripts/microi-codex-broker.js +450 -450
  17. package/scripts/microi-codex-router.js +618 -618
  18. package/scripts/microi-skills.meta.json +384 -384
  19. package/skills/.microi-skills-version.json +2 -2
  20. package/skills/.progressive-disclosure-manifest.json +21 -21
  21. package/skills/README.md +287 -287
  22. package/skills/ai-engine/SKILL.md +269 -265
  23. package/skills/ai-engine/agents/openai.yaml +4 -4
  24. package/skills/ai-engine/references/ai-employees.md +48 -48
  25. package/skills/ai-engine/references/self-hosted-digital-human.md +59 -59
  26. package/skills/ai-platform-governance/SKILL.md +177 -177
  27. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
  28. package/skills/app-store/SKILL.md +525 -525
  29. package/skills/app-store/agents/openai.yaml +4 -4
  30. package/skills/business-blueprint/SKILL.md +193 -193
  31. package/skills/datasource-engine/SKILL.md +93 -93
  32. package/skills/datasource-engine/agents/openai.yaml +4 -4
  33. package/skills/dos-orm/SKILL.md +97 -95
  34. package/skills/dos-orm/references/api-reference.md +229 -229
  35. package/skills/email-engine/SKILL.md +81 -81
  36. package/skills/email-engine/references/v8-email.md +34 -34
  37. package/skills/job-engine/SKILL.md +176 -176
  38. package/skills/job-engine/agents/openai.yaml +4 -4
  39. package/skills/message-notification/SKILL.md +156 -156
  40. package/skills/message-notification/agents/openai.yaml +5 -5
  41. package/skills/message-notification/references/contracts.md +102 -102
  42. package/skills/microi/SKILL.md +14 -14
  43. package/skills/microi-ai-app-auth.js +652 -652
  44. package/skills/microi-ai-application/SKILL.md +115 -115
  45. package/skills/microi-ai-application/agents/openai.yaml +4 -4
  46. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  47. package/skills/microi-client-frontend/SKILL.md +246 -244
  48. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +144 -144
  49. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +196 -196
  50. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +167 -167
  51. package/skills/microi-codex/SKILL.md +102 -100
  52. package/skills/microi-codex-installer/SKILL.md +231 -231
  53. package/skills/microi-codex-installer/agents/openai.yaml +7 -7
  54. package/skills/microi-datasource-mapping/SKILL.md +122 -122
  55. package/skills/microi-db-schema/SKILL.md +175 -175
  56. package/skills/microi-db-schema/agents/openai.yaml +4 -4
  57. package/skills/microi-db-schema/references/core-tables.md +695 -695
  58. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  59. package/skills/microi-db-schema/references/schema-overview.md +202 -202
  60. package/skills/microi-db-schema/references/schema.md +646 -646
  61. package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
  62. package/skills/microi-deployment/SKILL.md +222 -220
  63. package/skills/microi-deployment/references/deployment-matrix.md +109 -109
  64. package/skills/microi-docs-coverage/SKILL.md +133 -133
  65. package/skills/microi-docs-coverage/references/capability-map.md +91 -91
  66. package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
  67. package/skills/microi-form-engine/SKILL.md +333 -333
  68. package/skills/microi-form-engine/references/component-catalog.md +218 -218
  69. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  70. package/skills/microi-form-layout/SKILL.md +205 -205
  71. package/skills/microi-form-layout/references/progressive-01-3-/344/270/211/347/247/215/345/210/206/347/273/204/347/232/204/345/255/230/345/202/250/344/270/216/351/205/215/347/275/256.md +235 -235
  72. package/skills/microi-frontend-sdk/SKILL.md +194 -194
  73. package/skills/microi-frontend-sdk/references/progressive-01-token-/345/275/223/345/211/215/347/231/273/345/275/225/347/224/250/346/210/267/344/270/216/345/275/223/345/211/215/347/273/210/347/253/257/347/231/273/345/275/225/345/215/217/350/256/256.md +176 -176
  74. package/skills/microi-left-right-layout/SKILL.md +141 -141
  75. package/skills/microi-microservice/SKILL.md +328 -326
  76. package/skills/microi-microservice/references/runtime-delivery.md +278 -278
  77. package/skills/microi-mobile-app-quality/SKILL.md +185 -185
  78. package/skills/microi-mobile-app-quality/references/progressive-01-4-/351/207/215/350/246/201/346/214/211/351/222/256/345/277/205/351/241/273/345/270/246/345/233/276/346/240/207.md +213 -213
  79. package/skills/microi-mobile-app-quality/references/progressive-02-9-/344/270/273/351/242/230/345/210/207/346/215/242/345/277/205/351/241/273/347/234/237/345/256/236/344/270/224/345/205/250/345/261/200/347/224/237/346/225/210.md +128 -128
  80. package/skills/microi-solution-quotation/SKILL.md +78 -78
  81. package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
  82. package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
  83. package/skills/microi-sso/SKILL.md +96 -90
  84. package/skills/microi-sso/references/acceptance.md +49 -49
  85. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  86. package/skills/microi-sso/references/inbound.md +53 -53
  87. package/skills/microi-sso/references/outbound.md +39 -39
  88. package/skills/microi-system-delivery/SKILL.md +137 -137
  89. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +193 -193
  90. package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +217 -217
  91. package/skills/microi-ui/SKILL.md +192 -192
  92. package/skills/microi-ui/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/234/272/346/231/257/350/223/235/345/233/276.md +183 -183
  93. package/skills/microi-uniapp-frontend/SKILL.md +193 -193
  94. package/skills/microi-uniapp-frontend/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/210/206/347/261/273-/345/217/214/346/240/217/345/210/227/350/241/250/347/213/254/347/253/213/346/273/232/345/212/250.md +225 -225
  95. package/skills/microi-uniapp-frontend/references/progressive-02-/345/205/263/351/224/256/344/270/232/345/212/241/350/265/204/344/272/247/344/270/215/345/276/227/351/273/230/350/256/244/351/200/211/344/270/255.md +154 -154
  96. package/skills/microi.v8.js +1921 -1921
  97. package/skills/module-engine/SKILL.md +255 -255
  98. package/skills/module-engine/references/module-config.md +204 -204
  99. package/skills/ocr-engine/SKILL.md +113 -113
  100. package/skills/ocr-engine/agents/openai.yaml +4 -4
  101. package/skills/page-engine/SKILL.md +206 -206
  102. package/skills/page-engine/examples/compact-dashboard.json +1444 -1444
  103. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +234 -234
  104. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +60 -60
  105. package/skills/performance-testing/SKILL.md +221 -221
  106. package/skills/playwright-e2e/SKILL.md +196 -196
  107. package/skills/playwright-e2e/references/progressive-01-/345/205/250/350/207/252/345/212/250/347/231/273/345/275/225-/345/205/215/351/252/214/350/257/201/347/240/201-/344/275/206/344/270/215/345/205/215/345/257/206/347/240/201-/345/277/205/350/257/273.md +173 -173
  108. package/skills/playwright-e2e/references/progressive-02-/346/226/207/345/255/227/345/257/271/346/257/224/345/272/246/344/270/216/345/217/257/350/257/273/346/200/247/350/207/252/345/212/250/345/214/226/346/243/200/346/237/245-/345/277/205/345/201/232.md +183 -183
  109. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -221
  110. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +115 -115
  111. package/skills/print-engine/SKILL.md +259 -259
  112. package/skills/production-readonly-audit/SKILL.md +41 -41
  113. package/skills/report-engine/SKILL.md +71 -71
  114. package/skills/report-engine/agents/openai.yaml +4 -4
  115. package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
  116. package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
  117. package/skills/scripts/sync-embedded-skills.mjs +46 -46
  118. package/skills/scripts/validate-progressive-disclosure.mjs +57 -57
  119. package/skills/search-engine/SKILL.md +75 -75
  120. package/skills/search-engine/agents/openai.yaml +4 -4
  121. package/skills/spider-engine/SKILL.md +190 -190
  122. package/skills/system-observability/SKILL.md +249 -246
  123. package/skills/system-observability/references/memory-incident-triage.md +77 -77
  124. package/skills/translate-engine/SKILL.md +140 -140
  125. package/skills/translate-engine/agents/openai.yaml +4 -4
  126. package/skills/ui-design/SKILL.md +223 -223
  127. package/skills/ui-design/assets/pattern-showcase/app.js +54 -54
  128. package/skills/ui-design/assets/pattern-showcase/index.html +163 -163
  129. package/skills/ui-design/assets/pattern-showcase/styles.css +311 -311
  130. package/skills/ui-design/assets/templates/MCI-DESIGN.md +206 -206
  131. package/skills/ui-design/references/design-pattern-library.md +184 -184
  132. package/skills/ui-design/references/mci-design-contract.md +163 -163
  133. package/skills/ui-design/references/motion-and-media.md +78 -78
  134. package/skills/ui-design/references/product-flow-recipes.md +94 -94
  135. package/skills/ui-design/references/progressive-01-/351/242/234/350/211/262/344/275/223/347/263/273-css-variables-/346/224/257/346/214/201/344/270/273/351/242/230/345/210/207/346/215/242.md +218 -218
  136. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +164 -164
  137. package/skills/ui-design/references/progressive-03-/345/212/250/346/225/210/350/247/204/350/214/203-/344/270/260/345/257/214/344/275/206/344/270/215/345/215/241.md +235 -235
  138. package/skills/ui-design/references/progressive-04-/347/273/204/344/273/266/351/243/216/346/240/274/351/200/237/346/237/245.md +152 -152
  139. package/skills/ui-design/references/progressive-05-/347/247/273/345/212/250/347/253/257/344/270/223/347/224/250/350/247/204/350/214/203.md +238 -238
  140. package/skills/ui-design/references/progressive-06-/344/270/273/351/242/230/345/210/207/346/215/242/345/256/236/347/216/260.md +194 -194
  141. package/skills/ui-design/references/progressive-07-/351/200/237/346/237/245-/344/273/216/345/244/264/346/220/255/345/273/272/344/270/200/344/270/252/347/247/273/345/212/250/347/253/257/351/241/265/351/235/242.md +207 -207
  142. package/skills/ui-design/references/progressive-08-/350/241/250/345/215/225/345/210/206/347/273/204/350/247/204/350/214/203-tabs-vs-collapsegroup-/345/274/272/345/210/266.md +142 -142
  143. package/skills/uniapp-mall-assets/SKILL.md +176 -176
  144. package/skills/unity-integration/SKILL.md +171 -171
  145. package/skills/unity-integration/agents/openai.yaml +4 -4
  146. package/skills/unity-integration/references/ai-app-delivery.md +119 -119
  147. package/skills/unity-integration/references/sdk-api.md +82 -82
  148. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  149. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  150. package/skills/v8-api-config/SKILL.md +388 -388
  151. package/skills/v8-cache-pattern/SKILL.md +312 -312
  152. package/skills/v8-crud-api/SKILL.md +178 -178
  153. package/skills/v8-crud-api/references/progressive-01-/346/237/245/350/257/242/345/210/227/350/241/250-/345/210/206/351/241/265.md +226 -226
  154. package/skills/v8-crud-api/references/progressive-02-where-/346/235/241/344/273/266/350/257/255/346/263/225/351/200/237/346/237/245.md +49 -49
  155. package/skills/v8-debugging/SKILL.md +284 -284
  156. package/skills/v8-explorer-tree/SKILL.md +228 -228
  157. package/skills/v8-export-import/SKILL.md +219 -219
  158. package/skills/v8-export-import/references/progressive-01-excellayout-/351/253/230/347/272/247/350/207/252/347/224/261/345/270/203/345/261/200.md +211 -211
  159. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -202
  160. package/skills/v8-export-import/references/progressive-03-/345/256/211/345/205/250-/346/200/247/350/203/275/346/263/250/346/204/217.md +42 -42
  161. package/skills/v8-file-upload/SKILL.md +284 -284
  162. package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +263 -263
  163. package/skills/v8-file-upload/references/progressive-02-office-/346/226/207/344/273/266/345/234/250/347/272/277/347/274/226/350/276/221/347/211/210/346/234/254/345/217/267/350/247/204/345/210/231.md +161 -161
  164. package/skills/v8-formengine-http/SKILL.md +238 -238
  165. package/skills/v8-frontend-events/SKILL.md +180 -180
  166. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  167. package/skills/v8-frontend-events/references/bluetooth-print.md +258 -258
  168. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -219
  169. package/skills/v8-http-integration/SKILL.md +182 -182
  170. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -220
  171. package/skills/v8-http-integration/references/progressive-02-/351/224/231/350/257/257/345/244/204/347/220/206/346/250/241/345/274/217.md +44 -44
  172. package/skills/v8-image-processing/SKILL.md +190 -190
  173. package/skills/v8-image-processing/agents/openai.yaml +4 -4
  174. package/skills/v8-image-processing/references/api-reference.md +623 -623
  175. package/skills/v8-menu-buttons/SKILL.md +186 -186
  176. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +222 -222
  177. package/skills/v8-menu-buttons/references/progressive-02-8-/346/250/241/345/274/217-f-/345/220/216/345/217/260/344/273/273/345/212/241/346/214/211/351/222/256-/351/225/277/344/273/273/345/212/241.md +228 -228
  178. package/skills/v8-menu-buttons/references/progressive-03-10-/345/217/215/346/250/241/345/274/217-/351/201/277/345/205/215.md +104 -104
  179. package/skills/v8-mongodb/SKILL.md +200 -200
  180. package/skills/v8-mq-mqtt/SKILL.md +176 -176
  181. package/skills/v8-mq-mqtt/references/mqtt-production.md +342 -342
  182. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -181
  183. package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
  184. package/skills/v8-saas-multi-tenant/SKILL.md +305 -305
  185. package/skills/v8-security/SKILL.md +210 -210
  186. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +200 -200
  187. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +160 -160
  188. package/skills/v8-sql-query/SKILL.md +302 -302
  189. package/skills/v8-table-event/SKILL.md +176 -176
  190. package/skills/v8-table-event/references/progressive-01-informv8-js-/350/241/250/345/215/225/346/211/223/345/274/200/344/272/213/344/273/266.md +216 -216
  191. package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +46 -46
  192. package/skills/v8-tcp-integration/SKILL.md +147 -147
  193. package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
  194. package/skills/v8-template-engine/SKILL.md +167 -167
  195. package/skills/v8-utilities/SKILL.md +104 -104
  196. package/skills/v8-utilities/references/client-api-index.md +143 -143
  197. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  198. package/skills/v8-utilities/references/server-api-index.md +188 -188
  199. package/skills/v8-workflow/SKILL.md +252 -252
  200. package/skills/v8-workflow/references/progressive-01-/350/212/202/347/202/271/345/274/200/345/247/213-v8-/344/272/213/344/273/266.md +180 -180
  201. package/skills/v8-workflow/references/workflow-configuration.md +49 -49
  202. package/skills/vision-engine/SKILL.md +160 -160
  203. package/skills/vision-engine/agents/openai.yaml +4 -4
  204. package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
  205. package/skills/workspace-conventions/SKILL.md +273 -273
  206. package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +209 -209
  207. package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +217 -217
  208. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +27 -27
@@ -1,218 +1,218 @@
1
- # 表单组件目录
2
-
3
- 控件名称以
4
- `Microi.Client/src/views/form-engine/diy-field-component/diy-component-list.json`
5
- 为当前事实源;物理类型以服务器/MCP 允许类型为准。
6
-
7
- ## 基础输入
8
-
9
- | Component | 用途 | 推荐物理类型 |
10
- |---|---|---|
11
- | `Text` | 单行文本 | `varchar(200)` |
12
- | `Guid` | GUID/只读标识 | `varchar(50)` |
13
- | `Textarea` | 多行文本 | `mediumtext` |
14
- | `NumberText` | 整数/金额/小数 | `int` 或 `decimal(18,2)` |
15
- | `DateTime` | 日期时间选择 | `varchar(25)` |
16
- | `Select` | 下拉单选 | `varchar(50)` |
17
- | `MultipleSelect` | 下拉多选 | `varchar(500)` 或 `mediumtext` |
18
- | `Radio` | 单选 | `varchar(50)` |
19
- | `Checkbox` | 多选 | `varchar(500)` 或 `mediumtext` |
20
- | `Switch` | 0/1 开关 | `int` |
21
- | `Rate` | 评分 | `int` |
22
- | `Progress` | 进度展示/输入 | `int` |
23
- | `Slider` | 滑块 | `int` 或 `decimal(18,2)` |
24
- | `ColorPicker` | 颜色 | `varchar(50)` |
25
- | `AutoNumber` | 自动编号 | `varchar(200)` |
26
- | `Button` | 表单动作按钮 | 通常 `varchar(50)`,不承载核心业务值 |
27
-
28
- ## 布局与内容
29
-
30
- | Component | 用途 | 规则 |
31
- |---|---|---|
32
- | `Divider` | 分割线 | 布局字段,不进入关键查询 |
33
- | `CollapseGroup` | 局部分组折叠 | 先读 `microi-form-layout` |
34
- | `Tabs` | 字段级页签布局 | 整体多分区优先 `diy_table.Tabs` |
35
- | `Alert` | 提示说明 | 不承载业务状态 |
36
- | `StaticText` | 静态文本 | 不承载业务状态 |
37
- | `Html` | 可信 HTML 展示 | 必须净化,不拼接不可信内容 |
38
- | `RichText` | 富文本 | `mediumtext`;输出需净化 |
39
- | `CodeEditor` | 代码/JSON/SQL 编辑 | `mediumtext`;通常 `FormWidth=24`;未配置 `DisplayMode` 默认 `Inline`,长配置表单显式用 `Dialog`。`CodeEditor.ButtonText` 默认 `编辑代码({{charCount}}字)`,支持 `{{charCount}}` 字符数、`{{lineCount}}` 行数 |
40
- | `JsonTable` | JSON 表格 | `mediumtext`;定义结构与大小上限 |
41
-
42
- ## 文件与高级输入
43
-
44
- | Component | 用途 | 推荐物理类型 |
45
- |---|---|---|
46
- | `ImgUpload` | 图片上传 | `mediumtext` |
47
- | `FileUpload` | 文件上传 | `mediumtext` |
48
- | `Autocomplete` | 自动完成 | `varchar(200)` |
49
- | `TagInput` | 标签集合 | `varchar(500)` 或 `mediumtext` |
50
- | `Transfer` | 穿梭框多选 | `mediumtext` |
51
- | `Cascader` | 级联选择 | `varchar(500)` |
52
- | `Address` | 省市区地址 | `varchar(500)` |
53
- | `Department` | 部门选择 | `varchar(50)` |
54
- | `SelectTree` | 树形选择 | `varchar(50)` 或 `varchar(500)` |
55
- | `TreeCheckbox` | 树形权限多选 | `mediumtext` |
56
-
57
- ## 关联、地图与扩展
58
-
59
- | Component | 用途 | 关键约束 |
60
- |---|---|---|
61
- | `OpenTable` | 弹出列表选择 | 配置保存字段、显示字段和固定查询范围 |
62
- | `JoinTable` | 关联集合展示 | 查询与权限在服务端完成 |
63
- | `JoinForm` | 嵌入一个独立记录的完整表单 | 主表字段保存一个目标 Id;目标表不能与当前表相同 |
64
- | `TableChild` | 主表内嵌 0..N 条明细列表 | 独立子表、子表真实外键、隐藏子菜单、回查索引 |
65
- | `Map` | 点位 | 高德/百度/腾讯;`Config.MapCompany=System/AMap/Baidu/Tencent`;凭据只进租户“安全与服务接入”,不得写字段配置或公开 SysConfig |
66
- | `MapArea` | 区域 | 与 `Map` 共用供应商安全配置;`mediumtext` 保存 `Paths`,限制路径、点数和体积 |
67
- | `Qrcode` | 二维码卡片展示 | 优先 `IsVirtual=1`;扫码原文另存普通 `varchar` 字段 |
68
- | `FontAwesome` | 图标选择 | `varchar(200)` |
69
- | `DevComponent` | 主前端定制 Vue 控件 | 仅用于长期复用且标准控件无法满足的场景 |
70
-
71
- ### `Map / MapArea` 运行时与安全边界
72
-
73
- - 渲染事实源是 `Microi.Client/src/views/form-engine/diy-field-component/diy-map.vue`;公共错误分类与安全配置请求在同目录 `map-runtime.js`。
74
- - 字段只保存 `Config.MapCompany`,值为 `System / AMap / Baidu / Tencent`。禁止把 Key、securityJsCode、Secret 或代理凭据写入 `diy_field.Config`、V8 前端事件、公开 `sys_config` 投影或前端构建变量。
75
- - 租户凭据使用 `mci_system_setting` 的 `Map.*` 模板,在“系统设置 → 安全与服务接入”由超级管理员维护。运行时由可信后端按 DiyToken 租户和当前供应商做白名单投影,只返回一家的 `ClientKey`,必须 `no-store` 并拒绝访问密钥会话。
76
- - 旧 `sys_config.AMapKey / AMapSecret / BaiduAK` 仅在对应新设置未启用时兼容回退。不要为迁移直接重新公开这些字段。
77
- - 旧字段 `Config` 中的 `MapKey / MapSecret / AMapKey / AMapSecret / BaiduAK / TencentMapKey` 等明文属性不属于运行时配置;设计器保存地图配置时必须清除。迁移顺序固定为“先写入并启用租户 `Map.*` Secret,再清理字段元数据”。
78
- - 浏览器 JS Key 天然可见,必须配置供应商域名/Referer 白名单;高德生产环境优先配置 `Map.AMap.ServiceHost`,存在代理时不得再返回 `SecurityJsCode`。
79
- - 加载中、缺少 Key、运行时接口不匹配、SDK 网络/超时/鉴权/域名/WebGL/容器尺寸错误必须在控件区域显示明确原因码和重试入口,禁止只 `console.warn/error` 后留下空白地图。
80
- - `Map` 保持 `{Name}_Lng / {Name}_Lat / {Name}.{Address,Center,Zoom}`;`MapArea` 保持 `{Name}.{Paths,Center,Zoom}`。三家供应商切换不得改变持久化格式。
81
-
82
- ### `JoinForm` 不是子表
83
-
84
- - `JoinForm` 渲染 `diy-form`,通过 `Config.JoinForm.JoinFieldName` 从当前表单取出一个
85
- 目标记录 Id(也可用固定 `Id` / `_SearchEqual`),因此表达的是“这一条记录关联哪一条
86
- 独立记录”。当前表和目标表相同会被组件判为无效并拒绝渲染。
87
- - `TableChild` 渲染 `diy-table`,通过 `Config.TableChildFkFieldName` 把子表列表限定在
88
- 当前父记录,并依赖 `TableChildTableId` 与 `TableChildSysMenuId` 完成列表和行级增删改。
89
- - `TableChild` 控件字段通常不承担关系存储;真正的关系列位于子表,例如
90
- `order_detail.OrderId`。不得创建主表 `DetailId` 后用 `JoinForm` 冒充明细。
91
- - 生成前先问“一个父记录最多有几条目标记录”:答案可能大于 1 就选 `TableChild`;只有
92
- 明确恰好一个目标 Id 且需要嵌入完整目标表单时才选 `JoinForm`。不确定时先询问,不写入。
93
-
94
- ### `Qrcode` 的数据契约
95
-
96
- - 字段 `Config.Qrcode` 只保存 `DisplayWidth`、`ShowDownload`、`DownloadText` 等外观项,
97
- 不指定扫码内容。表单运行态必须通过
98
- `V8.FieldSet('<字段名>', 'DataAppend', payload)` 提供数据。
99
- - `payload.Code` 为必填扫码原文,兼容小写 `code`;可选 `title`、`titleValue`、
100
- `fields:[{Label,Value}]`(或旧版 `DataConfig:[{label,key}]`)、`Color`、
101
- `CardColor`、`FileName/fileName`、`createTime`。
102
- - 在 `InFormV8` 中设置时必须跳过 `V8.LoadMode === 'Design'`,否则设计器保存可能把
103
- 运行态 `DataAppend` 固化到字段模型。
104
- - 表单控件会生成 PNG Data URL 并回写控件值以兼容旧页面。纯展示字段优先设
105
- `IsVirtual=1`;若历史表已有物理字段,则通过 `V8.NotSaveField` 排除保存。不要把 Base64
106
- 图片写入短 `varchar`。需要持久化时保存原始 URL/编号,再把它传给 `Code`。
107
- - 列表二维码列直接渲染原始字段值;表单二维码卡片读取 `DataAppend.Code`,两种场景不得
108
- 混为同一输入协议。
109
- - 二维码中的 URL 仍需服务端鉴权,不得嵌入 DiyToken、访问密钥或长期业务秘密。
110
-
111
- ```js
112
- if (V8.LoadMode !== 'Design') {
113
- V8.FieldSet('Qrcode116', 'DataAppend', {
114
- Code: V8.Form.OrderNo || V8.Form.Id || 'https://microi.net',
115
- title: '订单二维码',
116
- titleValue: V8.Form.OrderNo || '',
117
- fields: [{ Label: '客户:', Value: V8.Form.CustomerName || '' }],
118
- FileName: '订单-' + (V8.Form.OrderNo || '二维码')
119
- });
120
- }
121
- ```
122
-
123
- ## 官网历史名称
124
-
125
- 中文官网可能仍展示 `PhoneSMS`、`Timeline` 等历史/业务扩展控件。生成新字段前
126
- 必须在当前 `diy-component-list.json`、目标租户 `diy_field.Component` 和实际客户端
127
- 中核对;未出现在当前控件清单的名称不得仅凭旧文档直接生成。
128
-
129
- ## 常用配置键
130
-
131
- 这些是 `diy_field.Config` 内的配置路径,不是可调用函数;保存后必须回读
132
- `Config` 并刷新 Schema 缓存:
133
-
134
- | 组件族 | 常用配置路径 |
135
- |---|---|
136
- | Textarea | `Textarea.DefaultRows` |
137
- | TagInput | `TagInput.Placeholder`、`TagInput.Options`、`TagInput.MaxCount` |
138
- | Transfer | `Transfer.LeftTitle`、`Transfer.RightTitle`、`Transfer.Filterable`、`Transfer.Options` |
139
- | AutoNumber | `AutoNumber.DataRule`、`AutoNumber.CreateRule`,以及 `AutoNumberFixed`、`AutoNumberLength`、`AutoNumberFields` |
140
- | Button | `Button.Type`、`Button.Icon`、`Button.Size`、`Button.PreviewCanClick`、`Button.RefreshTableAfterClick`、`Button.Loading`(`V8.FieldSet` 时使用 `Config.Button.Loading`) |
141
- | Divider / StaticText | `Divider.Icon`、`StaticText.Content` |
142
- | OpenTable | `OpenTable.BtnName`、`OpenTable.MultipleSelect`、`OpenTable.BeforeOpenV8`、`OpenTable.SubmitV8` |
143
- | CodeEditor / JsonTable | `CodeEditor.Height`、`JsonTable.Columns`、`JsonTable.Columns[].Config` |
144
- | JoinForm | `JoinForm.TableId`、`JoinForm.TableName`、`JoinForm.JoinFieldName`、`JoinForm.FormMode`、`JoinForm.Id`、`JoinForm._SearchEqual` |
145
- | TableChild | Config 根节点的 `TableChildTableId`、`TableChildSysMenuId`、`TableChildFkFieldName`;`TableChild.PrimaryTableFieldName`(默认 `Id`)及分页/导入选项 |
146
- | ImgUpload | `ImgUpload.Limit/Multiple/MaxCount/Tips/Preview/MaxSize/SaveFullPath`;`ImgUpload.Crop.Enabled` 仅表示默认开启,另有 `Mode=free/fixed/select`、`Ratio`、`CustomWidth/CustomHeight`、`AllowZoom/AllowRotate/AllowFlip`;运行时在上传面板内提供裁剪开关,裁剪弹层提供“不裁剪直接上传”;导出时会按最大图片数展开列 |
147
- | FileUpload | `FileUpload.Limit/Multiple/MaxCount/Tips/MaxSize/SaveFullPath`,Office 预览/编辑/版本,以及 `EnableRolePermission/HideUnauthorizedFiles/ShowUnauthorizedFileName/DisableRoleInheritance`(boolean,默认 false);开启角色权限强制私有存储,附件 `VisibleRoleIds` 多选真实角色 Id;文件不使用 `ImgUpload.Preview/Crop` |
148
- | RichText | `RichText.Limit`;`Image.Enabled/MaxSize/MaxCount/Preview/CompressMaxSize/CompressMaxWidth`;`Video.Enabled/MaxSize/MaxCount`;`File.Enabled/MaxSize/MaxCount/Accept`;私有正文存稳定标识而不是临时 URL |
149
- | Qrcode | `Qrcode.DisplayWidth`、`Qrcode.ShowDownload`、`Qrcode.DownloadText`;扫码内容使用运行态 `DataAppend.Code` |
150
-
151
- 其余选择、树、上传、关联和布局选项以当前字段设计器和
152
- `microi-db-schema/references/form-component-options.md` 为事实源;不要凭旧截图
153
- 发明配置键。
154
-
155
- ### `ImgUpload / FileUpload` 生成与运行时规则
156
-
157
- ```json
158
- {
159
- "ImgUpload": {
160
- "Limit": true,
161
- "Multiple": true,
162
- "MaxCount": 6,
163
- "Tips": "支持 JPG、PNG、WebP",
164
- "Preview": true,
165
- "MaxSize": 10,
166
- "SaveFullPath": false,
167
- "Crop": {
168
- "Enabled": true,
169
- "Mode": "select",
170
- "Ratio": "16:9",
171
- "CustomWidth": 1,
172
- "CustomHeight": 1,
173
- "AllowZoom": true,
174
- "AllowRotate": true,
175
- "AllowFlip": true
176
- }
177
- }
178
- }
179
- ```
180
-
181
- - `Limit=true` 表示字段配置为私有桶,`false` 表示配置为公有桶。普通用户有当前表单新增/编辑权限时也按此权威配置执行;运行时提交表、字段、菜单、记录上下文,后端回读 `diy_field.Config`,不得信任客户端 `Limit/Path`,也不得按用户等级统一强制私有。
182
- - `Multiple=true` 时 `MaxCount` 必须是正整数;`MaxSize` 单位为 MB。`Preview` 未配置时按 `true` 压缩,普通列表、卡片、商品图不要关闭。
183
- - `Crop.Enabled` 只决定运行时裁剪开关的初始状态;`false` 或缺失时用户仍可在紧凑上传面板主动开启。裁剪前原图始终进入 HDFS 私有桶,业务字段只保存展示图元数据。
184
- - 图片和文件都把拖放提示、存储范围、单/多文件、最大数量、处理方式和最大体积合并到同一个紧凑面板;不要在字段外再生成重复说明卡片。
185
-
186
- ### `RichText` 生成与运行时规则
187
-
188
- ```json
189
- {
190
- "RichText": {
191
- "EditorProduct": "WangEditor",
192
- "Limit": true,
193
- "Image": {
194
- "Enabled": true,
195
- "MaxSize": 20,
196
- "MaxCount": 10,
197
- "Preview": true,
198
- "CompressMaxSize": 500,
199
- "CompressMaxWidth": 1920
200
- },
201
- "Video": { "Enabled": true, "MaxSize": 200, "MaxCount": 3 },
202
- "File": { "Enabled": true, "MaxSize": 100, "MaxCount": 10, "Accept": "" }
203
- }
204
- }
205
- ```
206
-
207
- - 公开公告、商品详情等匿名网页内容显式用 `Limit=false`;内部公告、合同说明等用 `true`。旧字段缺失时默认私有,不能由 AI 猜成公有。
208
- - 普通用户经当前表单新增/编辑授权后可以发布公有 RichText;后端按字段权威配置选择桶。缺少 `FormEngineKey/FieldId` 等可验证上下文的普通上传仍保持私有,不能用裸 `Limit=false` 代替授权。
209
- - `MaxSize` 单位 MB,`CompressMaxSize` 单位 KB。图片压缩开启时原图仍先进入 HDFS 私有桶,正文只引用展示图。
210
- - 私有正文只保存 `/__microi_richtext_private__/...` 稳定标识;运行时携带当前菜单、表、记录和字段上下文换取短效代理 URL,禁止把临时 Token/Ticket 回写字段。
211
- - 普通文件通过富文本工具栏附件入口插入 `a.href`;私有授权只接受真实 `img/video/source.src` 与 `a.href` 的精确路径,不接受正文文字、`data-*` 或脚本标签。
212
- - RichText 通常使用 `FormWidth=24`,配置摘要保持单行紧凑,不要再生成独立的大说明卡。
213
-
214
- ## 宽度与重字段
215
-
216
- - 普通 Text、Select、NumberText、DateTime 默认不写 `FormWidth`。
217
- - Textarea、RichText、CodeEditor、JsonTable、上传、子表、地图、布局和定制组件通常 `FormWidth=24`。
218
- - 列表默认隐藏上传、富文本、地图、子表、布局等重字段;按需在详情中加载。
1
+ # 表单组件目录
2
+
3
+ 控件名称以
4
+ `Microi.Client/src/views/form-engine/diy-field-component/diy-component-list.json`
5
+ 为当前事实源;物理类型以服务器/MCP 允许类型为准。
6
+
7
+ ## 基础输入
8
+
9
+ | Component | 用途 | 推荐物理类型 |
10
+ |---|---|---|
11
+ | `Text` | 单行文本 | `varchar(200)` |
12
+ | `Guid` | GUID/只读标识 | `varchar(50)` |
13
+ | `Textarea` | 多行文本 | `mediumtext` |
14
+ | `NumberText` | 整数/金额/小数 | `int` 或 `decimal(18,2)` |
15
+ | `DateTime` | 日期时间选择 | `varchar(25)` |
16
+ | `Select` | 下拉单选 | `varchar(50)` |
17
+ | `MultipleSelect` | 下拉多选 | `varchar(500)` 或 `mediumtext` |
18
+ | `Radio` | 单选 | `varchar(50)` |
19
+ | `Checkbox` | 多选 | `varchar(500)` 或 `mediumtext` |
20
+ | `Switch` | 0/1 开关 | `int` |
21
+ | `Rate` | 评分 | `int` |
22
+ | `Progress` | 进度展示/输入 | `int` |
23
+ | `Slider` | 滑块 | `int` 或 `decimal(18,2)` |
24
+ | `ColorPicker` | 颜色 | `varchar(50)` |
25
+ | `AutoNumber` | 自动编号 | `varchar(200)` |
26
+ | `Button` | 表单动作按钮 | 通常 `varchar(50)`,不承载核心业务值 |
27
+
28
+ ## 布局与内容
29
+
30
+ | Component | 用途 | 规则 |
31
+ |---|---|---|
32
+ | `Divider` | 分割线 | 布局字段,不进入关键查询 |
33
+ | `CollapseGroup` | 局部分组折叠 | 先读 `microi-form-layout` |
34
+ | `Tabs` | 字段级页签布局 | 整体多分区优先 `diy_table.Tabs` |
35
+ | `Alert` | 提示说明 | 不承载业务状态 |
36
+ | `StaticText` | 静态文本 | 不承载业务状态 |
37
+ | `Html` | 可信 HTML 展示 | 必须净化,不拼接不可信内容 |
38
+ | `RichText` | 富文本 | `mediumtext`;输出需净化 |
39
+ | `CodeEditor` | 代码/JSON/SQL 编辑 | `mediumtext`;通常 `FormWidth=24`;未配置 `DisplayMode` 默认 `Inline`,长配置表单显式用 `Dialog`。`CodeEditor.ButtonText` 默认 `编辑代码({{charCount}}字)`,支持 `{{charCount}}` 字符数、`{{lineCount}}` 行数 |
40
+ | `JsonTable` | JSON 表格 | `mediumtext`;定义结构与大小上限 |
41
+
42
+ ## 文件与高级输入
43
+
44
+ | Component | 用途 | 推荐物理类型 |
45
+ |---|---|---|
46
+ | `ImgUpload` | 图片上传 | `mediumtext` |
47
+ | `FileUpload` | 文件上传 | `mediumtext` |
48
+ | `Autocomplete` | 自动完成 | `varchar(200)` |
49
+ | `TagInput` | 标签集合 | `varchar(500)` 或 `mediumtext` |
50
+ | `Transfer` | 穿梭框多选 | `mediumtext` |
51
+ | `Cascader` | 级联选择 | `varchar(500)` |
52
+ | `Address` | 省市区地址 | `varchar(500)` |
53
+ | `Department` | 部门选择 | `varchar(50)` |
54
+ | `SelectTree` | 树形选择 | `varchar(50)` 或 `varchar(500)` |
55
+ | `TreeCheckbox` | 树形权限多选 | `mediumtext` |
56
+
57
+ ## 关联、地图与扩展
58
+
59
+ | Component | 用途 | 关键约束 |
60
+ |---|---|---|
61
+ | `OpenTable` | 弹出列表选择 | 配置保存字段、显示字段和固定查询范围 |
62
+ | `JoinTable` | 关联集合展示 | 查询与权限在服务端完成 |
63
+ | `JoinForm` | 嵌入一个独立记录的完整表单 | 主表字段保存一个目标 Id;目标表不能与当前表相同 |
64
+ | `TableChild` | 主表内嵌 0..N 条明细列表 | 独立子表、子表真实外键、隐藏子菜单、回查索引 |
65
+ | `Map` | 点位 | 高德/百度/腾讯;`Config.MapCompany=System/AMap/Baidu/Tencent`;凭据只进租户“安全与服务接入”,不得写字段配置或公开 SysConfig |
66
+ | `MapArea` | 区域 | 与 `Map` 共用供应商安全配置;`mediumtext` 保存 `Paths`,限制路径、点数和体积 |
67
+ | `Qrcode` | 二维码卡片展示 | 优先 `IsVirtual=1`;扫码原文另存普通 `varchar` 字段 |
68
+ | `FontAwesome` | 图标选择 | `varchar(200)` |
69
+ | `DevComponent` | 主前端定制 Vue 控件 | 仅用于长期复用且标准控件无法满足的场景 |
70
+
71
+ ### `Map / MapArea` 运行时与安全边界
72
+
73
+ - 渲染事实源是 `Microi.Client/src/views/form-engine/diy-field-component/diy-map.vue`;公共错误分类与安全配置请求在同目录 `map-runtime.js`。
74
+ - 字段只保存 `Config.MapCompany`,值为 `System / AMap / Baidu / Tencent`。禁止把 Key、securityJsCode、Secret 或代理凭据写入 `diy_field.Config`、V8 前端事件、公开 `sys_config` 投影或前端构建变量。
75
+ - 租户凭据使用 `mci_system_setting` 的 `Map.*` 模板,在“系统设置 → 安全与服务接入”由超级管理员维护。运行时由可信后端按 DiyToken 租户和当前供应商做白名单投影,只返回一家的 `ClientKey`,必须 `no-store` 并拒绝访问密钥会话。
76
+ - 旧 `sys_config.AMapKey / AMapSecret / BaiduAK` 仅在对应新设置未启用时兼容回退。不要为迁移直接重新公开这些字段。
77
+ - 旧字段 `Config` 中的 `MapKey / MapSecret / AMapKey / AMapSecret / BaiduAK / TencentMapKey` 等明文属性不属于运行时配置;设计器保存地图配置时必须清除。迁移顺序固定为“先写入并启用租户 `Map.*` Secret,再清理字段元数据”。
78
+ - 浏览器 JS Key 天然可见,必须配置供应商域名/Referer 白名单;高德生产环境优先配置 `Map.AMap.ServiceHost`,存在代理时不得再返回 `SecurityJsCode`。
79
+ - 加载中、缺少 Key、运行时接口不匹配、SDK 网络/超时/鉴权/域名/WebGL/容器尺寸错误必须在控件区域显示明确原因码和重试入口,禁止只 `console.warn/error` 后留下空白地图。
80
+ - `Map` 保持 `{Name}_Lng / {Name}_Lat / {Name}.{Address,Center,Zoom}`;`MapArea` 保持 `{Name}.{Paths,Center,Zoom}`。三家供应商切换不得改变持久化格式。
81
+
82
+ ### `JoinForm` 不是子表
83
+
84
+ - `JoinForm` 渲染 `diy-form`,通过 `Config.JoinForm.JoinFieldName` 从当前表单取出一个
85
+ 目标记录 Id(也可用固定 `Id` / `_SearchEqual`),因此表达的是“这一条记录关联哪一条
86
+ 独立记录”。当前表和目标表相同会被组件判为无效并拒绝渲染。
87
+ - `TableChild` 渲染 `diy-table`,通过 `Config.TableChildFkFieldName` 把子表列表限定在
88
+ 当前父记录,并依赖 `TableChildTableId` 与 `TableChildSysMenuId` 完成列表和行级增删改。
89
+ - `TableChild` 控件字段通常不承担关系存储;真正的关系列位于子表,例如
90
+ `order_detail.OrderId`。不得创建主表 `DetailId` 后用 `JoinForm` 冒充明细。
91
+ - 生成前先问“一个父记录最多有几条目标记录”:答案可能大于 1 就选 `TableChild`;只有
92
+ 明确恰好一个目标 Id 且需要嵌入完整目标表单时才选 `JoinForm`。不确定时先询问,不写入。
93
+
94
+ ### `Qrcode` 的数据契约
95
+
96
+ - 字段 `Config.Qrcode` 只保存 `DisplayWidth`、`ShowDownload`、`DownloadText` 等外观项,
97
+ 不指定扫码内容。表单运行态必须通过
98
+ `V8.FieldSet('<字段名>', 'DataAppend', payload)` 提供数据。
99
+ - `payload.Code` 为必填扫码原文,兼容小写 `code`;可选 `title`、`titleValue`、
100
+ `fields:[{Label,Value}]`(或旧版 `DataConfig:[{label,key}]`)、`Color`、
101
+ `CardColor`、`FileName/fileName`、`createTime`。
102
+ - 在 `InFormV8` 中设置时必须跳过 `V8.LoadMode === 'Design'`,否则设计器保存可能把
103
+ 运行态 `DataAppend` 固化到字段模型。
104
+ - 表单控件会生成 PNG Data URL 并回写控件值以兼容旧页面。纯展示字段优先设
105
+ `IsVirtual=1`;若历史表已有物理字段,则通过 `V8.NotSaveField` 排除保存。不要把 Base64
106
+ 图片写入短 `varchar`。需要持久化时保存原始 URL/编号,再把它传给 `Code`。
107
+ - 列表二维码列直接渲染原始字段值;表单二维码卡片读取 `DataAppend.Code`,两种场景不得
108
+ 混为同一输入协议。
109
+ - 二维码中的 URL 仍需服务端鉴权,不得嵌入 DiyToken、访问密钥或长期业务秘密。
110
+
111
+ ```js
112
+ if (V8.LoadMode !== 'Design') {
113
+ V8.FieldSet('Qrcode116', 'DataAppend', {
114
+ Code: V8.Form.OrderNo || V8.Form.Id || 'https://microi.net',
115
+ title: '订单二维码',
116
+ titleValue: V8.Form.OrderNo || '',
117
+ fields: [{ Label: '客户:', Value: V8.Form.CustomerName || '' }],
118
+ FileName: '订单-' + (V8.Form.OrderNo || '二维码')
119
+ });
120
+ }
121
+ ```
122
+
123
+ ## 官网历史名称
124
+
125
+ 中文官网可能仍展示 `PhoneSMS`、`Timeline` 等历史/业务扩展控件。生成新字段前
126
+ 必须在当前 `diy-component-list.json`、目标租户 `diy_field.Component` 和实际客户端
127
+ 中核对;未出现在当前控件清单的名称不得仅凭旧文档直接生成。
128
+
129
+ ## 常用配置键
130
+
131
+ 这些是 `diy_field.Config` 内的配置路径,不是可调用函数;保存后必须回读
132
+ `Config` 并刷新 Schema 缓存:
133
+
134
+ | 组件族 | 常用配置路径 |
135
+ |---|---|
136
+ | Textarea | `Textarea.DefaultRows` |
137
+ | TagInput | `TagInput.Placeholder`、`TagInput.Options`、`TagInput.MaxCount` |
138
+ | Transfer | `Transfer.LeftTitle`、`Transfer.RightTitle`、`Transfer.Filterable`、`Transfer.Options` |
139
+ | AutoNumber | `AutoNumber.DataRule`、`AutoNumber.CreateRule`,以及 `AutoNumberFixed`、`AutoNumberLength`、`AutoNumberFields` |
140
+ | Button | `Button.Type`、`Button.Icon`、`Button.Size`、`Button.PreviewCanClick`、`Button.RefreshTableAfterClick`、`Button.Loading`(`V8.FieldSet` 时使用 `Config.Button.Loading`) |
141
+ | Divider / StaticText | `Divider.Icon`、`StaticText.Content` |
142
+ | OpenTable | `OpenTable.BtnName`、`OpenTable.MultipleSelect`、`OpenTable.BeforeOpenV8`、`OpenTable.SubmitV8` |
143
+ | CodeEditor / JsonTable | `CodeEditor.Height`、`JsonTable.Columns`、`JsonTable.Columns[].Config` |
144
+ | JoinForm | `JoinForm.TableId`、`JoinForm.TableName`、`JoinForm.JoinFieldName`、`JoinForm.FormMode`、`JoinForm.Id`、`JoinForm._SearchEqual` |
145
+ | TableChild | Config 根节点的 `TableChildTableId`、`TableChildSysMenuId`、`TableChildFkFieldName`;`TableChild.PrimaryTableFieldName`(默认 `Id`)及分页/导入选项 |
146
+ | ImgUpload | `ImgUpload.Limit/Multiple/MaxCount/Tips/Preview/MaxSize/SaveFullPath`;`ImgUpload.Crop.Enabled` 仅表示默认开启,另有 `Mode=free/fixed/select`、`Ratio`、`CustomWidth/CustomHeight`、`AllowZoom/AllowRotate/AllowFlip`;运行时在上传面板内提供裁剪开关,裁剪弹层提供“不裁剪直接上传”;导出时会按最大图片数展开列 |
147
+ | FileUpload | `FileUpload.Limit/Multiple/MaxCount/Tips/MaxSize/SaveFullPath`,Office 预览/编辑/版本,以及 `EnableRolePermission/HideUnauthorizedFiles/ShowUnauthorizedFileName/DisableRoleInheritance`(boolean,默认 false);开启角色权限强制私有存储,附件 `VisibleRoleIds` 多选真实角色 Id;文件不使用 `ImgUpload.Preview/Crop` |
148
+ | RichText | `RichText.Limit`;`Image.Enabled/MaxSize/MaxCount/Preview/CompressMaxSize/CompressMaxWidth`;`Video.Enabled/MaxSize/MaxCount`;`File.Enabled/MaxSize/MaxCount/Accept`;私有正文存稳定标识而不是临时 URL |
149
+ | Qrcode | `Qrcode.DisplayWidth`、`Qrcode.ShowDownload`、`Qrcode.DownloadText`;扫码内容使用运行态 `DataAppend.Code` |
150
+
151
+ 其余选择、树、上传、关联和布局选项以当前字段设计器和
152
+ `microi-db-schema/references/form-component-options.md` 为事实源;不要凭旧截图
153
+ 发明配置键。
154
+
155
+ ### `ImgUpload / FileUpload` 生成与运行时规则
156
+
157
+ ```json
158
+ {
159
+ "ImgUpload": {
160
+ "Limit": true,
161
+ "Multiple": true,
162
+ "MaxCount": 6,
163
+ "Tips": "支持 JPG、PNG、WebP",
164
+ "Preview": true,
165
+ "MaxSize": 10,
166
+ "SaveFullPath": false,
167
+ "Crop": {
168
+ "Enabled": true,
169
+ "Mode": "select",
170
+ "Ratio": "16:9",
171
+ "CustomWidth": 1,
172
+ "CustomHeight": 1,
173
+ "AllowZoom": true,
174
+ "AllowRotate": true,
175
+ "AllowFlip": true
176
+ }
177
+ }
178
+ }
179
+ ```
180
+
181
+ - `Limit=true` 表示字段配置为私有桶,`false` 表示配置为公有桶。普通用户有当前表单新增/编辑权限时也按此权威配置执行;运行时提交表、字段、菜单、记录上下文,后端回读 `diy_field.Config`,不得信任客户端 `Limit/Path`,也不得按用户等级统一强制私有。
182
+ - `Multiple=true` 时 `MaxCount` 必须是正整数;`MaxSize` 单位为 MB。`Preview` 未配置时按 `true` 压缩,普通列表、卡片、商品图不要关闭。
183
+ - `Crop.Enabled` 只决定运行时裁剪开关的初始状态;`false` 或缺失时用户仍可在紧凑上传面板主动开启。裁剪前原图始终进入 HDFS 私有桶,业务字段只保存展示图元数据。
184
+ - 图片和文件都把拖放提示、存储范围、单/多文件、最大数量、处理方式和最大体积合并到同一个紧凑面板;不要在字段外再生成重复说明卡片。
185
+
186
+ ### `RichText` 生成与运行时规则
187
+
188
+ ```json
189
+ {
190
+ "RichText": {
191
+ "EditorProduct": "WangEditor",
192
+ "Limit": true,
193
+ "Image": {
194
+ "Enabled": true,
195
+ "MaxSize": 20,
196
+ "MaxCount": 10,
197
+ "Preview": true,
198
+ "CompressMaxSize": 500,
199
+ "CompressMaxWidth": 1920
200
+ },
201
+ "Video": { "Enabled": true, "MaxSize": 200, "MaxCount": 3 },
202
+ "File": { "Enabled": true, "MaxSize": 100, "MaxCount": 10, "Accept": "" }
203
+ }
204
+ }
205
+ ```
206
+
207
+ - 公开公告、商品详情等匿名网页内容显式用 `Limit=false`;内部公告、合同说明等用 `true`。旧字段缺失时默认私有,不能由 AI 猜成公有。
208
+ - 普通用户经当前表单新增/编辑授权后可以发布公有 RichText;后端按字段权威配置选择桶。缺少 `FormEngineKey/FieldId` 等可验证上下文的普通上传仍保持私有,不能用裸 `Limit=false` 代替授权。
209
+ - `MaxSize` 单位 MB,`CompressMaxSize` 单位 KB。图片压缩开启时原图仍先进入 HDFS 私有桶,正文只引用展示图。
210
+ - 私有正文只保存 `/__microi_richtext_private__/...` 稳定标识;运行时携带当前菜单、表、记录和字段上下文换取短效代理 URL,禁止把临时 Token/Ticket 回写字段。
211
+ - 普通文件通过富文本工具栏附件入口插入 `a.href`;私有授权只接受真实 `img/video/source.src` 与 `a.href` 的精确路径,不接受正文文字、`data-*` 或脚本标签。
212
+ - RichText 通常使用 `FormWidth=24`,配置摘要保持单行紧凑,不要再生成独立的大说明卡。
213
+
214
+ ## 宽度与重字段
215
+
216
+ - 普通 Text、Select、NumberText、DateTime 默认不写 `FormWidth`。
217
+ - Textarea、RichText、CodeEditor、JsonTable、上传、子表、地图、布局和定制组件通常 `FormWidth=24`。
218
+ - 列表默认隐藏上传、富文本、地图、子表、布局等重字段;按需在详情中加载。