@microi.net/cli 5.8.5 → 5.8.6
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.
- package/.codebuddy-plugin/marketplace.json +2 -2
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/.workbuddy-plugin/marketplace.json +2 -2
- package/.workbuddy-plugin/plugin.json +1 -1
- package/LICENSE +21 -21
- package/README.md +71 -71
- package/assets/build-meta.json +6 -6
- package/assets/feature-matrix.json +138 -138
- package/assets/logo.svg +4 -4
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/codex-marketplace.json +20 -20
- package/scripts/mcp-codex-stdio-adapter.js +189 -189
- package/scripts/mcp-trae-windows-launcher.cmd +21 -21
- package/scripts/microi-cli-mcp.js +7 -7
- package/scripts/microi-cli.js +66 -65
- package/scripts/microi-codex-broker.js +450 -450
- package/scripts/microi-codex-router.js +618 -618
- package/scripts/microi-skills.meta.json +384 -384
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +3566 -3566
- package/skills/README.md +287 -287
- package/skills/ai-engine/SKILL.md +269 -265
- package/skills/ai-engine/agents/openai.yaml +4 -4
- package/skills/ai-engine/references/ai-employees.md +48 -48
- package/skills/ai-engine/references/self-hosted-digital-human.md +59 -59
- package/skills/ai-platform-governance/SKILL.md +177 -177
- package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
- package/skills/app-store/SKILL.md +525 -525
- package/skills/app-store/agents/openai.yaml +4 -4
- package/skills/business-blueprint/SKILL.md +193 -193
- package/skills/datasource-engine/SKILL.md +93 -93
- package/skills/datasource-engine/agents/openai.yaml +4 -4
- package/skills/dos-orm/SKILL.md +97 -97
- package/skills/dos-orm/references/api-reference.md +229 -229
- package/skills/email-engine/SKILL.md +81 -81
- package/skills/email-engine/references/v8-email.md +34 -34
- package/skills/job-engine/SKILL.md +176 -176
- package/skills/job-engine/agents/openai.yaml +4 -4
- package/skills/message-notification/SKILL.md +156 -156
- package/skills/message-notification/agents/openai.yaml +5 -5
- package/skills/message-notification/references/contracts.md +102 -102
- package/skills/microi/SKILL.md +14 -14
- package/skills/microi-ai-app-auth.js +652 -652
- package/skills/microi-ai-application/SKILL.md +115 -115
- package/skills/microi-ai-application/agents/openai.yaml +4 -4
- package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
- package/skills/microi-client-frontend/SKILL.md +244 -244
- 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
- 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
- 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
- package/skills/microi-codex/SKILL.md +102 -102
- package/skills/microi-codex-installer/SKILL.md +231 -231
- package/skills/microi-codex-installer/agents/openai.yaml +7 -7
- package/skills/microi-datasource-mapping/SKILL.md +122 -122
- package/skills/microi-db-schema/SKILL.md +175 -175
- package/skills/microi-db-schema/agents/openai.yaml +4 -4
- package/skills/microi-db-schema/references/core-tables.md +695 -695
- package/skills/microi-db-schema/references/form-component-options.md +256 -256
- package/skills/microi-db-schema/references/schema-overview.md +202 -202
- package/skills/microi-db-schema/references/schema.md +646 -646
- package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
- package/skills/microi-deployment/SKILL.md +221 -221
- package/skills/microi-deployment/references/deployment-matrix.md +109 -109
- package/skills/microi-docs-coverage/SKILL.md +133 -133
- package/skills/microi-docs-coverage/references/capability-map.md +91 -91
- package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
- package/skills/microi-form-engine/SKILL.md +333 -333
- package/skills/microi-form-engine/references/component-catalog.md +218 -218
- package/skills/microi-form-engine/references/data-source-events.md +124 -124
- package/skills/microi-form-layout/SKILL.md +205 -205
- 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
- package/skills/microi-frontend-sdk/SKILL.md +194 -194
- 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
- package/skills/microi-left-right-layout/SKILL.md +141 -141
- package/skills/microi-microservice/SKILL.md +326 -324
- package/skills/microi-microservice/references/runtime-delivery.md +278 -278
- package/skills/microi-mobile-app-quality/SKILL.md +185 -185
- 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
- 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
- package/skills/microi-solution-quotation/SKILL.md +78 -78
- package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
- package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
- package/skills/microi-sso/SKILL.md +92 -92
- package/skills/microi-sso/references/acceptance.md +49 -49
- package/skills/microi-sso/references/configuration-and-security.md +53 -53
- package/skills/microi-sso/references/inbound.md +53 -53
- package/skills/microi-sso/references/outbound.md +39 -39
- package/skills/microi-system-delivery/SKILL.md +137 -137
- 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
- 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
- package/skills/microi-ui/SKILL.md +192 -192
- 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
- package/skills/microi-uniapp-frontend/SKILL.md +193 -193
- 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
- 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
- package/skills/microi.v8.js +1921 -1921
- package/skills/module-engine/SKILL.md +255 -255
- package/skills/module-engine/references/module-config.md +204 -204
- package/skills/ocr-engine/SKILL.md +113 -113
- package/skills/ocr-engine/agents/openai.yaml +4 -4
- package/skills/page-engine/SKILL.md +206 -206
- package/skills/page-engine/examples/compact-dashboard.json +1444 -1444
- 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
- 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
- package/skills/performance-testing/SKILL.md +221 -221
- package/skills/playwright-e2e/SKILL.md +196 -196
- 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
- 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
- package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -221
- package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +115 -115
- package/skills/print-engine/SKILL.md +259 -259
- package/skills/production-readonly-audit/SKILL.md +41 -41
- package/skills/report-engine/SKILL.md +71 -71
- package/skills/report-engine/agents/openai.yaml +4 -4
- package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
- package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
- package/skills/scripts/sync-embedded-skills.mjs +46 -46
- package/skills/scripts/validate-progressive-disclosure.mjs +57 -57
- package/skills/search-engine/SKILL.md +75 -75
- package/skills/search-engine/agents/openai.yaml +4 -4
- package/skills/spider-engine/SKILL.md +190 -190
- package/skills/system-observability/SKILL.md +248 -248
- package/skills/system-observability/references/memory-incident-triage.md +77 -77
- package/skills/translate-engine/SKILL.md +140 -140
- package/skills/translate-engine/agents/openai.yaml +4 -4
- package/skills/ui-design/SKILL.md +223 -223
- package/skills/ui-design/assets/pattern-showcase/app.js +54 -54
- package/skills/ui-design/assets/pattern-showcase/index.html +163 -163
- package/skills/ui-design/assets/pattern-showcase/styles.css +311 -311
- package/skills/ui-design/assets/templates/MCI-DESIGN.md +206 -206
- package/skills/ui-design/references/design-pattern-library.md +184 -184
- package/skills/ui-design/references/mci-design-contract.md +163 -163
- package/skills/ui-design/references/motion-and-media.md +78 -78
- package/skills/ui-design/references/product-flow-recipes.md +94 -94
- 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
- package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +164 -164
- 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
- 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
- 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
- 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
- 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
- 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
- package/skills/uniapp-mall-assets/SKILL.md +176 -176
- package/skills/unity-integration/SKILL.md +171 -171
- package/skills/unity-integration/agents/openai.yaml +4 -4
- package/skills/unity-integration/references/ai-app-delivery.md +119 -119
- package/skills/unity-integration/references/sdk-api.md +82 -82
- package/skills/unity-integration/references/toolbox-migration.md +66 -66
- package/skills/unity-integration/references/webgl-hosting.md +57 -57
- package/skills/v8-api-config/SKILL.md +388 -388
- package/skills/v8-cache-pattern/SKILL.md +312 -312
- package/skills/v8-crud-api/SKILL.md +178 -178
- 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
- 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
- package/skills/v8-debugging/SKILL.md +284 -284
- package/skills/v8-explorer-tree/SKILL.md +228 -228
- package/skills/v8-export-import/SKILL.md +219 -219
- 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
- package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -202
- 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
- package/skills/v8-file-upload/SKILL.md +284 -284
- 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
- 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
- package/skills/v8-formengine-http/SKILL.md +238 -238
- package/skills/v8-frontend-events/SKILL.md +180 -180
- package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
- package/skills/v8-frontend-events/references/bluetooth-print.md +258 -258
- package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -219
- package/skills/v8-http-integration/SKILL.md +182 -182
- package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -220
- 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
- package/skills/v8-image-processing/SKILL.md +190 -190
- package/skills/v8-image-processing/agents/openai.yaml +4 -4
- package/skills/v8-image-processing/references/api-reference.md +623 -623
- package/skills/v8-menu-buttons/SKILL.md +186 -186
- 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
- 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
- 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
- package/skills/v8-mongodb/SKILL.md +200 -200
- package/skills/v8-mq-mqtt/SKILL.md +176 -176
- package/skills/v8-mq-mqtt/references/mqtt-production.md +342 -342
- package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -181
- package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
- package/skills/v8-saas-multi-tenant/SKILL.md +305 -305
- package/skills/v8-security/SKILL.md +210 -210
- package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +200 -200
- package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +160 -160
- package/skills/v8-sql-query/SKILL.md +302 -302
- package/skills/v8-table-event/SKILL.md +176 -176
- 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
- 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
- package/skills/v8-tcp-integration/SKILL.md +147 -147
- package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
- package/skills/v8-template-engine/SKILL.md +167 -167
- package/skills/v8-utilities/SKILL.md +104 -104
- package/skills/v8-utilities/references/client-api-index.md +143 -143
- package/skills/v8-utilities/references/platform-http-routes.md +83 -83
- package/skills/v8-utilities/references/server-api-index.md +188 -188
- package/skills/v8-workflow/SKILL.md +252 -252
- 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
- package/skills/v8-workflow/references/workflow-configuration.md +49 -49
- package/skills/vision-engine/SKILL.md +160 -160
- package/skills/vision-engine/agents/openai.yaml +4 -4
- package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
- package/skills/workspace-conventions/SKILL.md +273 -273
- 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
- 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
- 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
|
+
- 列表默认隐藏上传、富文本、地图、子表、布局等重字段;按需在详情中加载。
|