@microi.net/cli 5.7.8 → 5.7.9

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 (191) 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 +6 -6
  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 +102 -101
  15. package/scripts/microi-cli.js +57 -57
  16. package/scripts/microi-codex-broker.js +450 -450
  17. package/scripts/microi-codex-router.js +0 -0
  18. package/scripts/microi-skills.meta.json +366 -366
  19. package/skills/.microi-skills-version.json +2 -2
  20. package/skills/.progressive-disclosure-manifest.json +27 -27
  21. package/skills/README.md +286 -286
  22. package/skills/ai-engine/SKILL.md +265 -265
  23. package/skills/ai-engine/agents/openai.yaml +4 -4
  24. package/skills/ai-platform-governance/SKILL.md +177 -177
  25. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
  26. package/skills/app-store/SKILL.md +392 -396
  27. package/skills/app-store/agents/openai.yaml +4 -4
  28. package/skills/business-blueprint/SKILL.md +193 -193
  29. package/skills/datasource-engine/SKILL.md +90 -90
  30. package/skills/datasource-engine/agents/openai.yaml +4 -4
  31. package/skills/dos-orm/references/api-reference.md +229 -229
  32. package/skills/email-engine/SKILL.md +78 -78
  33. package/skills/email-engine/references/v8-email.md +34 -34
  34. package/skills/job-engine/SKILL.md +171 -172
  35. package/skills/job-engine/agents/openai.yaml +4 -4
  36. package/skills/message-notification/SKILL.md +155 -156
  37. package/skills/message-notification/agents/openai.yaml +5 -5
  38. package/skills/message-notification/references/contracts.md +102 -102
  39. package/skills/microi-ai-app-auth.js +652 -652
  40. package/skills/microi-ai-application/SKILL.md +102 -106
  41. package/skills/microi-ai-application/agents/openai.yaml +4 -4
  42. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  43. package/skills/microi-client-frontend/SKILL.md +235 -240
  44. 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
  45. 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
  46. 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
  47. package/skills/microi-codex/SKILL.md +72 -76
  48. package/skills/microi-codex-installer/SKILL.md +225 -223
  49. package/skills/microi-codex-installer/agents/openai.yaml +7 -7
  50. package/skills/microi-datasource-mapping/SKILL.md +107 -111
  51. package/skills/microi-db-schema/SKILL.md +175 -175
  52. package/skills/microi-db-schema/agents/openai.yaml +4 -4
  53. package/skills/microi-db-schema/references/core-tables.md +695 -695
  54. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  55. package/skills/microi-db-schema/references/schema-overview.md +202 -202
  56. package/skills/microi-db-schema/references/schema.md +646 -646
  57. package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
  58. package/skills/microi-deployment/references/deployment-matrix.md +101 -101
  59. package/skills/microi-docs-coverage/references/capability-map.md +0 -1
  60. package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
  61. package/skills/microi-form-engine/SKILL.md +226 -226
  62. package/skills/microi-form-engine/references/component-catalog.md +216 -216
  63. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  64. package/skills/microi-form-layout/SKILL.md +205 -205
  65. 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
  66. package/skills/microi-frontend-sdk/SKILL.md +188 -188
  67. 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
  68. package/skills/microi-left-right-layout/SKILL.md +141 -141
  69. package/skills/microi-microservice/SKILL.md +322 -323
  70. package/skills/microi-microservice/references/runtime-delivery.md +278 -278
  71. package/skills/microi-mobile-app-quality/SKILL.md +181 -181
  72. 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
  73. 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
  74. package/skills/microi-solution-quotation/SKILL.md +78 -78
  75. package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
  76. package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
  77. package/skills/microi-sso/references/acceptance.md +49 -49
  78. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  79. package/skills/microi-sso/references/inbound.md +53 -53
  80. package/skills/microi-sso/references/outbound.md +39 -39
  81. package/skills/microi-system-delivery/SKILL.md +134 -134
  82. 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
  83. 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 +189 -189
  84. package/skills/microi-ui/SKILL.md +174 -174
  85. 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
  86. package/skills/microi-uniapp-frontend/SKILL.md +193 -193
  87. 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
  88. 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
  89. package/skills/microi.v8.js +1921 -1921
  90. package/skills/module-engine/SKILL.md +237 -250
  91. package/skills/module-engine/references/module-config.md +204 -204
  92. package/skills/ocr-engine/SKILL.md +113 -113
  93. package/skills/ocr-engine/agents/openai.yaml +4 -4
  94. package/skills/page-engine/SKILL.md +180 -191
  95. 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
  96. 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
  97. package/skills/performance-testing/SKILL.md +221 -221
  98. package/skills/playwright-e2e/SKILL.md +197 -197
  99. 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
  100. 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
  101. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -221
  102. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +115 -115
  103. package/skills/print-engine/SKILL.md +259 -259
  104. package/skills/production-readonly-audit/SKILL.md +41 -41
  105. package/skills/report-engine/SKILL.md +71 -71
  106. package/skills/report-engine/agents/openai.yaml +4 -4
  107. package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
  108. package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
  109. package/skills/search-engine/SKILL.md +75 -75
  110. package/skills/search-engine/agents/openai.yaml +4 -4
  111. package/skills/spider-engine/SKILL.md +190 -190
  112. package/skills/system-observability/SKILL.md +238 -238
  113. package/skills/system-observability/references/memory-incident-triage.md +70 -70
  114. package/skills/translate-engine/SKILL.md +140 -140
  115. package/skills/translate-engine/agents/openai.yaml +4 -4
  116. package/skills/ui-design/SKILL.md +191 -191
  117. package/skills/ui-design/assets/templates/MCI-DESIGN.md +198 -198
  118. package/skills/ui-design/references/design-pattern-library.md +184 -184
  119. package/skills/ui-design/references/mci-design-contract.md +163 -163
  120. 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
  121. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +137 -137
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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 +117 -117
  128. package/skills/uniapp-mall-assets/SKILL.md +176 -176
  129. package/skills/unity-integration/SKILL.md +155 -155
  130. package/skills/unity-integration/agents/openai.yaml +4 -4
  131. package/skills/unity-integration/references/ai-app-delivery.md +103 -103
  132. package/skills/unity-integration/references/sdk-api.md +82 -82
  133. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  134. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  135. package/skills/v8-cache-pattern/SKILL.md +306 -306
  136. package/skills/v8-crud-api/SKILL.md +175 -175
  137. 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
  138. 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
  139. package/skills/v8-debugging/SKILL.md +284 -284
  140. package/skills/v8-explorer-tree/SKILL.md +228 -228
  141. package/skills/v8-export-import/SKILL.md +209 -209
  142. 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
  143. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -202
  144. 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
  145. package/skills/v8-file-upload/SKILL.md +256 -263
  146. 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 +101 -101
  147. 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 +150 -150
  148. package/skills/v8-formengine-http/SKILL.md +219 -219
  149. package/skills/v8-frontend-events/SKILL.md +178 -178
  150. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  151. package/skills/v8-frontend-events/references/bluetooth-print.md +246 -246
  152. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -219
  153. package/skills/v8-http-integration/SKILL.md +182 -182
  154. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -220
  155. 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
  156. package/skills/v8-image-processing/SKILL.md +190 -190
  157. package/skills/v8-image-processing/agents/openai.yaml +4 -4
  158. package/skills/v8-image-processing/references/api-reference.md +623 -623
  159. package/skills/v8-menu-buttons/SKILL.md +180 -180
  160. 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
  161. 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
  162. 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
  163. package/skills/v8-mongodb/SKILL.md +192 -192
  164. package/skills/v8-mq-mqtt/SKILL.md +175 -176
  165. package/skills/v8-mq-mqtt/references/mqtt-production.md +342 -342
  166. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -181
  167. package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
  168. package/skills/v8-saas-multi-tenant/SKILL.md +219 -219
  169. package/skills/v8-security/SKILL.md +168 -168
  170. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +198 -198
  171. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +158 -158
  172. package/skills/v8-sql-query/SKILL.md +302 -302
  173. package/skills/v8-table-event/SKILL.md +144 -144
  174. 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 +197 -197
  175. 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
  176. package/skills/v8-tcp-integration/SKILL.md +147 -147
  177. package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
  178. package/skills/v8-template-engine/SKILL.md +167 -167
  179. package/skills/v8-utilities/SKILL.md +90 -90
  180. package/skills/v8-utilities/references/client-api-index.md +143 -143
  181. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  182. package/skills/v8-utilities/references/server-api-index.md +188 -188
  183. package/skills/v8-workflow/SKILL.md +216 -243
  184. 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
  185. package/skills/vision-engine/SKILL.md +159 -159
  186. package/skills/vision-engine/agents/openai.yaml +4 -4
  187. package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
  188. package/skills/workspace-conventions/SKILL.md +261 -261
  189. 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 +208 -208
  190. 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 +216 -216
  191. 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,235 +1,235 @@
1
- # microi-form-layout 详细参考 1
2
-
3
- > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
-
5
- <!-- microi-progressive:chunk id=microi-form-layout-006 sha256=483f58dcfce758809aed7ba010c3d3e402ae9c2701b1cadb5d49b5d1f80a3880 -->
6
- ## 3. 三种分组的存储与配置
7
-
8
- ### 3.1 diy_table.Tabs(表级 Tab)
9
-
10
- 存储:`diy_table.Tabs`(JSON 字符串)+ 每个字段的 `diy_field.Tab`(归属 Tab 名)。
11
-
12
- ```jsonc
13
- // diy_table.Tabs JSON 格式
14
- [
15
- { "Id": "basic", "Name": "基础信息", "Sort": 10 },
16
- { "Id": "business","Name": "业务明细", "Sort": 20 },
17
- { "Id": "attach", "Name": "附件备注", "Sort": 30 }
18
- ]
19
- ```
20
-
21
- 字段归属:在 `diy_field.Tab` 写 `Id`(不是 `Name`)。`Tab` 留空的字段属于"非 Tab 字段"(即 `diy_table.Tabs` 之外的字段),会作为隐藏的剩余字段自动归到最后 Tab。
22
-
23
- - 字段 `Tab="basic"` → 归属"基础信息"Tab
24
- - 字段 `Tab=""` 且 `diy_table.Tabs` 存在 → 自动归到最后一个 Tab 的剩余字段
25
- - 字段 `Tab=""` 且 `diy_table.Tabs` 不存在 → 全部在第一屏平铺
26
-
27
- **不推荐用法**:把 `diy_table.Tabs` 拆出 3 个 Tab、每个 Tab 内只有 2~3 个字段。这会让用户必须点击 3 次 Tab 才能看完一张表,且首屏只看到 2~3 个字段。
28
-
29
- ### 3.2 字段级 Tabs 控件(`diy_field.Component='Tabs'`)
30
-
31
- 存储:`diy_field` 行 + `Config.FieldTabs`(JSON)。
32
-
33
- ```jsonc
34
- // diy_field 必要字段
35
- {
36
- "Id": "TabsField_Main",
37
- "Name": "TabsMain",
38
- "Label": "主分组",
39
- "Component": "Tabs",
40
- "Type": "varchar(50)",
41
- "Sort": 50,
42
- "Visible": 0, // 通常设为 0,因为 Tabs 本身是布局控件
43
- "AppVisible": 0,
44
- "Config": "{\"FieldTabs\":{...}}"
45
- }
46
-
47
- // Config.FieldTabs
48
- {
49
- "ScopeMode": "FieldCount", // 或 "Manual"
50
- "TotalFieldCount": 0, // 0 表示直到下一个 Tabs
51
- "DefaultActiveKey": "tab1",
52
- "Type": "card", // "" | "card" | "border-card"
53
- "Position": "top", // top | bottom | left | right
54
- "Stretch": false,
55
- "ShowFieldCount": true,
56
- "CaptureRest": true,
57
- "Description": "",
58
- "Theme": "default",
59
- "Tabs": [
60
- { "Key": "tab1", "Title": "页签一", "Icon": "fas fa-info-circle", "FieldCount": 6, "Disabled": false }
61
- ]
62
- }
63
- ```
64
-
65
- **作用范围**:从该 Tabs 字段开始,到下一个 `Component in (Tabs, CollapseGroup, Divider)` 字段为止。
66
-
67
- ### 3.3 字段级 CollapseGroup 折叠分组(`diy_field.Component='CollapseGroup'`)
68
-
69
- 存储:`diy_field` 行 + `Config.CollapseGroup`(JSON)。
70
-
71
- ```jsonc
72
- // diy_field 必要字段
73
- {
74
- "Id": "CollapseGroup_MRP",
75
- "Name": "MrpGroup",
76
- "Label": "MRP 运算",
77
- "Component": "CollapseGroup",
78
- "Type": "",
79
- "Sort": 120,
80
- "Visible": 1,
81
- "AppVisible": 1,
82
- "FormWidth": 24,
83
- "Config": "{\"CollapseGroup\":{...}}"
84
- }
85
-
86
- // Config.CollapseGroup
87
- {
88
- "DefaultCollapsed": false, // 默认展开;高频访问分组可设 false
89
- "ScopeMode": "UntilNextGroup", // 直到下一个折叠/Tab/Divider
90
- "FieldCount": 5, // ScopeMode=FieldCount 时生效
91
- "Description": "MRP 运算结果与时间",
92
- "Icon": "fas fa-calculator",
93
- "Theme": "primary", // default | primary | success | warning | danger
94
- "ShowFieldCount": true
95
- }
96
- ```
97
-
98
- **作用范围**:从该 CollapseGroup 字段开始,到下一个 `Component in (Tabs, CollapseGroup, Divider)` 字段为止。
99
-
100
- **默认值硬规则**:`CollapseGroup` 必须保存 `FormWidth=24`(PC 表单 100% 宽度);
101
- `Config.CollapseGroup.ShowFieldCount` 省略时必须补为 `true`。只有用户明确要求隐藏数量时
102
- 才允许写 `ShowFieldCount=false`,只有用户明确要求非整行实验布局时才允许覆盖宽度。
103
-
104
- **与 Tab 的关键区别**:所有 CollapseGroup 标题**始终可见**,分组内字段**默认展开**或**默认收起**,但所有分组的字段**都在同一页面**,可同时展开多个。
105
-
106
- ### 3.4 控件视觉对比
107
-
108
- | 视觉表现 | Tabs | CollapseGroup |
109
- |---------|------|---------------|
110
- | 首屏可见字段数 | 仅一个 Tab 的字段 | **所有分组的标题 + 展开分组的字段** |
111
- | 用户切换分组方式 | 必须点击 Tab 头 | 可直接滚动或逐个点击展开 |
112
- | 同时看到多组 | ❌ | ✅ |
113
- | 适合"展开后阅读" | ❌(频繁切换会烦) | ✅ |
114
- | 适合"互斥分组" | ✅ | ❌ |
115
-
116
- <!-- /microi-progressive:chunk -->
117
- <!-- microi-progressive:chunk id=microi-form-layout-007 sha256=a54b3e56d39abb37261adc1d2f0ad92ecde35b70c4594f94fd2e830b8b4fa6e1 -->
118
- ## 7. 反例参考(必须避免)
119
-
120
- ### 反例 1:MRP 运算 3 字段单独建 Tab
121
-
122
- ```
123
- ❌ 错误:
124
- diy_table.Tabs = [
125
- { Id: 'basic', Name: '基础信息' }, // 5 字段
126
- { Id: 'mrp', Name: 'MRP 运算' }, // 3 字段
127
- { Id: 'remark', Name: '备注' } // 1 字段
128
- ]
129
- // 用户打开表单,第一屏只看到 5 个"基础信息"字段,"MRP 运算"和"备注"被藏在 Tab 里
130
-
131
- ✅ 正确:
132
- // 不创建 diy_table.Tabs,把"MRP 运算" 3 字段用 CollapseGroup 收在表单末尾(默认展开)
133
- // 把"备注"也用 CollapseGroup 或 Divider 收
134
- // 第一屏用户能看到所有基础信息 + MRP 运算
135
- ```
136
-
137
- ### 反例 1.1:项目收款记录拆成 2/9/2 三个 Tab
138
-
139
- ```
140
- ❌ 错误:
141
- 项目(2 个短字段) + 收款(9 个短字段) + 附件备注(2 个整行字段)分别建 Tab。
142
- 结果是每页只有 1~5 行内容,桌面抽屉出现大面积空白,用户要切换三次才能看完整记录。
143
-
144
- ✅ 正确:
145
- 取消表级 Tab,按原顺序建立“项目信息 / 收款信息 / 附件备注”三个 CollapseGroup。
146
- 核心组默认展开,低频附件备注可默认收起;保留原字段、数据源、必填规则和 V8 代码。
147
- ```
148
-
149
- ### 反例 2:13 字段表全平铺
150
-
151
- ```
152
- ❌ 错误:
153
- // 13 字段全部 Tab 留空
154
- // 用户必须向下滚动 3 屏才能看到所有字段
155
-
156
- ✅ 正确:
157
- // 13 字段按业务分两组:8 字段"基础信息" + 5 字段"业务明细"
158
- // 用 1 个 diy_table.Tabs(基础信息 + 业务明细)
159
- // 或用 1 个 CollapseGroup 把"业务明细"5 字段收起
160
- ```
161
-
162
- ### 反例 3:42 字段表用 6 个 Tab
163
-
164
- ```
165
- ❌ 错误:
166
- // 6 个 Tab:基础(14) + 项目业主(2) + 发货通知(13) + 生产需求(3) + 审核(4) + ERP出库(4) + 其他(2)
167
- // 用户要点 6 次才能看完,且"项目业主"和"生产需求"这种 2~3 字段的 Tab 完全没必要
168
-
169
- ✅ 正确:
170
- // 4 个 Tab:基础(14) + 发货通知+生产需求(16) + 审核+ERP出库(8) + 其他(4)
171
- // 或 3 个 Tab + 内部嵌套 CollapseGroup
172
- ```
173
-
174
- <!-- /microi-progressive:chunk -->
175
- <!-- microi-progressive:chunk id=microi-form-layout-008 sha256=72af1ae1c77f1acef09e4741141d2aa97beaa7124b4ac824f24535c7f1ca2468 -->
176
- ## 8. 快速参考代码片段
177
-
178
- ### 8.1 MCP 创建表级 Tab
179
-
180
- ```js
181
- // 假设已创建 diy_table,通过 microi_update_table 设置 Tabs
182
- // 注意:microi_create_table 不直接接收 Tabs JSON,需创建后 microi_update_table 补全
183
- microi_update_table({
184
- name: "yutaoliaojieguo",
185
- // 暂未直接传 Tabs,需要通过 microi_update_table 文档化的方式补全
186
- })
187
- ```
188
-
189
- > 实际写入 `diy_table.Tabs` 优先用 `microi_update_field` 之外的元数据写入方式或 `microi_upsert_engine` 委托接口引擎;后续 MCP 工具可补强 `Tabs` 参数。
190
-
191
- ### 8.2 MCP 创建字段级 CollapseGroup
192
-
193
- ```js
194
- // 1. 创建一个 CollapseGroup 字段
195
- microi_add_layout_field({
196
- tableId: "01KTASHWEBE514R1XTB0WVJJRX",
197
- name: "MrpGroup",
198
- label: "MRP 运算",
199
- component: "CollapseGroup",
200
- sort: 150,
201
- visible: 1,
202
- appVisible: 1,
203
- config: JSON.stringify({
204
- CollapseGroup: {
205
- DefaultCollapsed: false,
206
- ScopeMode: "UntilNextGroup",
207
- Description: "MRP 运算状态、批次号与时间",
208
- Icon: "fas fa-calculator",
209
- Theme: "primary",
210
- ShowFieldCount: true
211
- }
212
- }),
213
- confirmExecution: "MrpGroup"
214
- })
215
-
216
- // 工具默认写入 FormWidth=24;回读必须确认宽度为 24 且 ShowFieldCount=true。
217
-
218
- // 2. 让"MRP 运算"相关字段归属到该 CollapseGroup
219
- // 范围方式:把 CalcStatus、CalcBatchNo、MrpTime 三个字段的 Sort 排在 150~300 之间,
220
- // 下一个 CollapseGroup/Tabs/Divider 字段之前的所有字段都属于该分组
221
- ```
222
-
223
- ### 8.3 MCP 把字段 Tab 归属到 diy_table.Tabs
224
-
225
- ```js
226
- // 创建表级 Tab
227
- // 1. microi_update_table 设置 diy_table.Tabs 字段(待 MCP 工具补全)
228
- // 2. 给字段写 Tab 归属
229
- microi_update_field({
230
- id: "01KVTWDJ7WXB3Z60HGJ5BPTBJ0",
231
- tab: "basic" // 归属到 diy_table.Tabs.Id='basic' 的 Tab
232
- })
233
- ```
234
-
235
- <!-- /microi-progressive:chunk -->
1
+ # microi-form-layout 详细参考 1
2
+
3
+ > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
+
5
+ <!-- microi-progressive:chunk id=microi-form-layout-006 sha256=483f58dcfce758809aed7ba010c3d3e402ae9c2701b1cadb5d49b5d1f80a3880 -->
6
+ ## 3. 三种分组的存储与配置
7
+
8
+ ### 3.1 diy_table.Tabs(表级 Tab)
9
+
10
+ 存储:`diy_table.Tabs`(JSON 字符串)+ 每个字段的 `diy_field.Tab`(归属 Tab 名)。
11
+
12
+ ```jsonc
13
+ // diy_table.Tabs JSON 格式
14
+ [
15
+ { "Id": "basic", "Name": "基础信息", "Sort": 10 },
16
+ { "Id": "business","Name": "业务明细", "Sort": 20 },
17
+ { "Id": "attach", "Name": "附件备注", "Sort": 30 }
18
+ ]
19
+ ```
20
+
21
+ 字段归属:在 `diy_field.Tab` 写 `Id`(不是 `Name`)。`Tab` 留空的字段属于"非 Tab 字段"(即 `diy_table.Tabs` 之外的字段),会作为隐藏的剩余字段自动归到最后 Tab。
22
+
23
+ - 字段 `Tab="basic"` → 归属"基础信息"Tab
24
+ - 字段 `Tab=""` 且 `diy_table.Tabs` 存在 → 自动归到最后一个 Tab 的剩余字段
25
+ - 字段 `Tab=""` 且 `diy_table.Tabs` 不存在 → 全部在第一屏平铺
26
+
27
+ **不推荐用法**:把 `diy_table.Tabs` 拆出 3 个 Tab、每个 Tab 内只有 2~3 个字段。这会让用户必须点击 3 次 Tab 才能看完一张表,且首屏只看到 2~3 个字段。
28
+
29
+ ### 3.2 字段级 Tabs 控件(`diy_field.Component='Tabs'`)
30
+
31
+ 存储:`diy_field` 行 + `Config.FieldTabs`(JSON)。
32
+
33
+ ```jsonc
34
+ // diy_field 必要字段
35
+ {
36
+ "Id": "TabsField_Main",
37
+ "Name": "TabsMain",
38
+ "Label": "主分组",
39
+ "Component": "Tabs",
40
+ "Type": "varchar(50)",
41
+ "Sort": 50,
42
+ "Visible": 0, // 通常设为 0,因为 Tabs 本身是布局控件
43
+ "AppVisible": 0,
44
+ "Config": "{\"FieldTabs\":{...}}"
45
+ }
46
+
47
+ // Config.FieldTabs
48
+ {
49
+ "ScopeMode": "FieldCount", // 或 "Manual"
50
+ "TotalFieldCount": 0, // 0 表示直到下一个 Tabs
51
+ "DefaultActiveKey": "tab1",
52
+ "Type": "card", // "" | "card" | "border-card"
53
+ "Position": "top", // top | bottom | left | right
54
+ "Stretch": false,
55
+ "ShowFieldCount": true,
56
+ "CaptureRest": true,
57
+ "Description": "",
58
+ "Theme": "default",
59
+ "Tabs": [
60
+ { "Key": "tab1", "Title": "页签一", "Icon": "fas fa-info-circle", "FieldCount": 6, "Disabled": false }
61
+ ]
62
+ }
63
+ ```
64
+
65
+ **作用范围**:从该 Tabs 字段开始,到下一个 `Component in (Tabs, CollapseGroup, Divider)` 字段为止。
66
+
67
+ ### 3.3 字段级 CollapseGroup 折叠分组(`diy_field.Component='CollapseGroup'`)
68
+
69
+ 存储:`diy_field` 行 + `Config.CollapseGroup`(JSON)。
70
+
71
+ ```jsonc
72
+ // diy_field 必要字段
73
+ {
74
+ "Id": "CollapseGroup_MRP",
75
+ "Name": "MrpGroup",
76
+ "Label": "MRP 运算",
77
+ "Component": "CollapseGroup",
78
+ "Type": "",
79
+ "Sort": 120,
80
+ "Visible": 1,
81
+ "AppVisible": 1,
82
+ "FormWidth": 24,
83
+ "Config": "{\"CollapseGroup\":{...}}"
84
+ }
85
+
86
+ // Config.CollapseGroup
87
+ {
88
+ "DefaultCollapsed": false, // 默认展开;高频访问分组可设 false
89
+ "ScopeMode": "UntilNextGroup", // 直到下一个折叠/Tab/Divider
90
+ "FieldCount": 5, // ScopeMode=FieldCount 时生效
91
+ "Description": "MRP 运算结果与时间",
92
+ "Icon": "fas fa-calculator",
93
+ "Theme": "primary", // default | primary | success | warning | danger
94
+ "ShowFieldCount": true
95
+ }
96
+ ```
97
+
98
+ **作用范围**:从该 CollapseGroup 字段开始,到下一个 `Component in (Tabs, CollapseGroup, Divider)` 字段为止。
99
+
100
+ **默认值硬规则**:`CollapseGroup` 必须保存 `FormWidth=24`(PC 表单 100% 宽度);
101
+ `Config.CollapseGroup.ShowFieldCount` 省略时必须补为 `true`。只有用户明确要求隐藏数量时
102
+ 才允许写 `ShowFieldCount=false`,只有用户明确要求非整行实验布局时才允许覆盖宽度。
103
+
104
+ **与 Tab 的关键区别**:所有 CollapseGroup 标题**始终可见**,分组内字段**默认展开**或**默认收起**,但所有分组的字段**都在同一页面**,可同时展开多个。
105
+
106
+ ### 3.4 控件视觉对比
107
+
108
+ | 视觉表现 | Tabs | CollapseGroup |
109
+ |---------|------|---------------|
110
+ | 首屏可见字段数 | 仅一个 Tab 的字段 | **所有分组的标题 + 展开分组的字段** |
111
+ | 用户切换分组方式 | 必须点击 Tab 头 | 可直接滚动或逐个点击展开 |
112
+ | 同时看到多组 | ❌ | ✅ |
113
+ | 适合"展开后阅读" | ❌(频繁切换会烦) | ✅ |
114
+ | 适合"互斥分组" | ✅ | ❌ |
115
+
116
+ <!-- /microi-progressive:chunk -->
117
+ <!-- microi-progressive:chunk id=microi-form-layout-007 sha256=a54b3e56d39abb37261adc1d2f0ad92ecde35b70c4594f94fd2e830b8b4fa6e1 -->
118
+ ## 7. 反例参考(必须避免)
119
+
120
+ ### 反例 1:MRP 运算 3 字段单独建 Tab
121
+
122
+ ```
123
+ ❌ 错误:
124
+ diy_table.Tabs = [
125
+ { Id: 'basic', Name: '基础信息' }, // 5 字段
126
+ { Id: 'mrp', Name: 'MRP 运算' }, // 3 字段
127
+ { Id: 'remark', Name: '备注' } // 1 字段
128
+ ]
129
+ // 用户打开表单,第一屏只看到 5 个"基础信息"字段,"MRP 运算"和"备注"被藏在 Tab 里
130
+
131
+ ✅ 正确:
132
+ // 不创建 diy_table.Tabs,把"MRP 运算" 3 字段用 CollapseGroup 收在表单末尾(默认展开)
133
+ // 把"备注"也用 CollapseGroup 或 Divider 收
134
+ // 第一屏用户能看到所有基础信息 + MRP 运算
135
+ ```
136
+
137
+ ### 反例 1.1:项目收款记录拆成 2/9/2 三个 Tab
138
+
139
+ ```
140
+ ❌ 错误:
141
+ 项目(2 个短字段) + 收款(9 个短字段) + 附件备注(2 个整行字段)分别建 Tab。
142
+ 结果是每页只有 1~5 行内容,桌面抽屉出现大面积空白,用户要切换三次才能看完整记录。
143
+
144
+ ✅ 正确:
145
+ 取消表级 Tab,按原顺序建立“项目信息 / 收款信息 / 附件备注”三个 CollapseGroup。
146
+ 核心组默认展开,低频附件备注可默认收起;保留原字段、数据源、必填规则和 V8 代码。
147
+ ```
148
+
149
+ ### 反例 2:13 字段表全平铺
150
+
151
+ ```
152
+ ❌ 错误:
153
+ // 13 字段全部 Tab 留空
154
+ // 用户必须向下滚动 3 屏才能看到所有字段
155
+
156
+ ✅ 正确:
157
+ // 13 字段按业务分两组:8 字段"基础信息" + 5 字段"业务明细"
158
+ // 用 1 个 diy_table.Tabs(基础信息 + 业务明细)
159
+ // 或用 1 个 CollapseGroup 把"业务明细"5 字段收起
160
+ ```
161
+
162
+ ### 反例 3:42 字段表用 6 个 Tab
163
+
164
+ ```
165
+ ❌ 错误:
166
+ // 6 个 Tab:基础(14) + 项目业主(2) + 发货通知(13) + 生产需求(3) + 审核(4) + ERP出库(4) + 其他(2)
167
+ // 用户要点 6 次才能看完,且"项目业主"和"生产需求"这种 2~3 字段的 Tab 完全没必要
168
+
169
+ ✅ 正确:
170
+ // 4 个 Tab:基础(14) + 发货通知+生产需求(16) + 审核+ERP出库(8) + 其他(4)
171
+ // 或 3 个 Tab + 内部嵌套 CollapseGroup
172
+ ```
173
+
174
+ <!-- /microi-progressive:chunk -->
175
+ <!-- microi-progressive:chunk id=microi-form-layout-008 sha256=72af1ae1c77f1acef09e4741141d2aa97beaa7124b4ac824f24535c7f1ca2468 -->
176
+ ## 8. 快速参考代码片段
177
+
178
+ ### 8.1 MCP 创建表级 Tab
179
+
180
+ ```js
181
+ // 假设已创建 diy_table,通过 microi_update_table 设置 Tabs
182
+ // 注意:microi_create_table 不直接接收 Tabs JSON,需创建后 microi_update_table 补全
183
+ microi_update_table({
184
+ name: "yutaoliaojieguo",
185
+ // 暂未直接传 Tabs,需要通过 microi_update_table 文档化的方式补全
186
+ })
187
+ ```
188
+
189
+ > 实际写入 `diy_table.Tabs` 优先用 `microi_update_field` 之外的元数据写入方式或 `microi_upsert_engine` 委托接口引擎;后续 MCP 工具可补强 `Tabs` 参数。
190
+
191
+ ### 8.2 MCP 创建字段级 CollapseGroup
192
+
193
+ ```js
194
+ // 1. 创建一个 CollapseGroup 字段
195
+ microi_add_layout_field({
196
+ tableId: "01KTASHWEBE514R1XTB0WVJJRX",
197
+ name: "MrpGroup",
198
+ label: "MRP 运算",
199
+ component: "CollapseGroup",
200
+ sort: 150,
201
+ visible: 1,
202
+ appVisible: 1,
203
+ config: JSON.stringify({
204
+ CollapseGroup: {
205
+ DefaultCollapsed: false,
206
+ ScopeMode: "UntilNextGroup",
207
+ Description: "MRP 运算状态、批次号与时间",
208
+ Icon: "fas fa-calculator",
209
+ Theme: "primary",
210
+ ShowFieldCount: true
211
+ }
212
+ }),
213
+ confirmExecution: "MrpGroup"
214
+ })
215
+
216
+ // 工具默认写入 FormWidth=24;回读必须确认宽度为 24 且 ShowFieldCount=true。
217
+
218
+ // 2. 让"MRP 运算"相关字段归属到该 CollapseGroup
219
+ // 范围方式:把 CalcStatus、CalcBatchNo、MrpTime 三个字段的 Sort 排在 150~300 之间,
220
+ // 下一个 CollapseGroup/Tabs/Divider 字段之前的所有字段都属于该分组
221
+ ```
222
+
223
+ ### 8.3 MCP 把字段 Tab 归属到 diy_table.Tabs
224
+
225
+ ```js
226
+ // 创建表级 Tab
227
+ // 1. microi_update_table 设置 diy_table.Tabs 字段(待 MCP 工具补全)
228
+ // 2. 给字段写 Tab 归属
229
+ microi_update_field({
230
+ id: "01KVTWDJ7WXB3Z60HGJ5BPTBJ0",
231
+ tab: "basic" // 归属到 diy_table.Tabs.Id='basic' 的 Tab
232
+ })
233
+ ```
234
+
235
+ <!-- /microi-progressive:chunk -->