@microi.net/cli 5.7.7 → 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.
- package/.codebuddy-plugin/marketplace.json +2 -2
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.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/mcp-codex-stdio-adapter.js +0 -0
- package/scripts/mcp-server.js +102 -101
- package/scripts/microi-cli.js +57 -57
- package/scripts/microi-codex-broker.js +450 -450
- package/scripts/microi-codex-router.js +0 -0
- package/scripts/microi-skills.meta.json +366 -366
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +27 -27
- package/skills/README.md +286 -286
- package/skills/ai-engine/SKILL.md +265 -265
- package/skills/ai-engine/agents/openai.yaml +4 -4
- 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 +392 -396
- package/skills/app-store/agents/openai.yaml +4 -4
- package/skills/business-blueprint/SKILL.md +193 -193
- package/skills/datasource-engine/SKILL.md +90 -90
- package/skills/datasource-engine/agents/openai.yaml +4 -4
- package/skills/dos-orm/references/api-reference.md +229 -229
- package/skills/email-engine/SKILL.md +78 -78
- package/skills/email-engine/references/v8-email.md +34 -34
- package/skills/job-engine/SKILL.md +171 -172
- package/skills/job-engine/agents/openai.yaml +4 -4
- package/skills/message-notification/SKILL.md +155 -156
- package/skills/message-notification/agents/openai.yaml +5 -5
- package/skills/message-notification/references/contracts.md +102 -102
- package/skills/microi-ai-app-auth.js +652 -652
- package/skills/microi-ai-application/SKILL.md +102 -106
- 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 +235 -240
- 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 +75 -75
- package/skills/microi-codex-installer/SKILL.md +225 -223
- package/skills/microi-codex-installer/agents/openai.yaml +7 -7
- package/skills/microi-datasource-mapping/SKILL.md +107 -111
- 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/references/deployment-matrix.md +101 -101
- package/skills/microi-docs-coverage/references/capability-map.md +0 -1
- package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
- package/skills/microi-form-engine/SKILL.md +226 -226
- package/skills/microi-form-engine/references/component-catalog.md +216 -216
- 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 +188 -188
- 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 +322 -323
- package/skills/microi-microservice/references/runtime-delivery.md +278 -278
- package/skills/microi-mobile-app-quality/SKILL.md +181 -181
- 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/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 +134 -134
- 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 +189 -189
- package/skills/microi-ui/SKILL.md +174 -174
- 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 +237 -250
- 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 +180 -191
- 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 +197 -197
- 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/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 +238 -238
- package/skills/system-observability/references/memory-incident-triage.md +70 -70
- package/skills/translate-engine/SKILL.md +140 -140
- package/skills/translate-engine/agents/openai.yaml +4 -4
- package/skills/ui-design/SKILL.md +191 -191
- package/skills/ui-design/assets/templates/MCI-DESIGN.md +198 -198
- 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/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 +137 -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
- 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 +117 -117
- package/skills/uniapp-mall-assets/SKILL.md +176 -176
- package/skills/unity-integration/SKILL.md +155 -155
- package/skills/unity-integration/agents/openai.yaml +4 -4
- package/skills/unity-integration/references/ai-app-delivery.md +103 -103
- 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-cache-pattern/SKILL.md +306 -306
- package/skills/v8-crud-api/SKILL.md +175 -175
- 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 +209 -209
- 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 +256 -263
- 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
- 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
- package/skills/v8-formengine-http/SKILL.md +219 -219
- package/skills/v8-frontend-events/SKILL.md +178 -178
- package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
- package/skills/v8-frontend-events/references/bluetooth-print.md +246 -246
- 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 +180 -180
- 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 +192 -192
- package/skills/v8-mq-mqtt/SKILL.md +175 -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 +219 -219
- package/skills/v8-security/SKILL.md +168 -168
- package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +198 -198
- package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +158 -158
- package/skills/v8-sql-query/SKILL.md +302 -302
- package/skills/v8-table-event/SKILL.md +144 -144
- 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
- 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 +90 -90
- 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 +216 -243
- 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/vision-engine/SKILL.md +159 -159
- 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 +261 -261
- 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
- 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
- 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,243 +1,216 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: v8-workflow
|
|
3
|
-
description: Microi V8 工作流事件指南。用于编写审批流条件、节点 V8 代码、wf_flowdesign/wf_node/wf_line 逻辑、V8.WF 变量和工作流路由。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
> **Codex 非阻塞自动更新:** 当前宿主为 Codex 时,吾码 CLI、Codex 插件与工作区 AI/MCP 由后台自动更新;需要诊断时读取 `../microi-codex-installer/SKILL.md`。更新失败、等待空闲或尚未重载均不得阻断当前、正在进行或新建任务。非 Codex 宿主跳过此项。
|
|
7
|
-
|
|
8
|
-
# Microi V8 工作流事件开发
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
`
|
|
15
|
-
|
|
16
|
-
`
|
|
17
|
-
|
|
18
|
-
`
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
<!-- /microi-progressive:chunk -->
|
|
115
|
-
<!-- microi-progressive:chunk id=v8-workflow-
|
|
116
|
-
##
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
`V8.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
|
154
|
-
|
|
155
|
-
| `
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
{ Id: 'field1', Name: 'Name', Label: '姓名', Value: V8.Form.Name }
|
|
218
|
-
])
|
|
219
|
-
}, function(result) {
|
|
220
|
-
if (result.Code === 1) {
|
|
221
|
-
V8.Tips('流程发起成功', true);
|
|
222
|
-
V8.RefreshTable({ _PageIndex: 1 });
|
|
223
|
-
} else {
|
|
224
|
-
V8.Tips(result.Msg, false);
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
<!-- /microi-progressive:chunk -->
|
|
230
|
-
## “我的工作”与审核界面交付规则
|
|
231
|
-
|
|
232
|
-
- 模块使用“流程引擎”打开方式时,关联流程只能选择已启用的 `wf_flowdesign`;交付前同时验证流程已启用、模块 `OpenType=WorkFlow`、`FlowDesignId` 正确,且开始节点不存在测试阻断 V8。
|
|
233
|
-
- `StartWork` / `DoWork` 必须通过工作流与表单合并提交能力保存。审核态只保留“处理工作”、流转记录/流程图和关闭;不得同时显示普通保存、取消编辑、草稿箱、删除、显示隐藏字段或普通表单更多按钮。
|
|
234
|
-
- “我的工作”菜单角标使用“未处理待办 + 未读抄送”。待办 Tab 显示未处理数,抄送 Tab 显示未读数;我发起的、我处理的、我相关的按各自列表查询口径统计,不能用 `wf_work` 的近似口径代替 `wf_flow` 列表口径。
|
|
235
|
-
- 新抄送项应显式保存 `IsRead=false`,用户打开后由可信后端按当前身份标记已读。历史 `CopyUsers` 项没有 `IsRead` 时按已读兼容,避免升级后把全部历史抄送误报为未读。
|
|
236
|
-
- “查看流程图”验收必须从真实流转记录入口打开,确认流程定义、当前节点高亮、连线和弹窗尺寸正常,并检查浏览器无脚本错误;只验证流程 JSON 拓扑不等于完成 UI 验收。
|
|
237
|
-
|
|
238
|
-
## 详细参考路由(渐进披露)
|
|
239
|
-
|
|
240
|
-
仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
|
|
241
|
-
|
|
242
|
-
- [references/progressive-01-节点开始-v8-事件.md](references/progressive-01-节点开始-v8-事件.md):节点开始 V8 事件;节点结束 V8 事件;前端打开流程表单;MCP 创建/检查/测试工作流;发起流程与表单保存;流程相关表;注意事项
|
|
243
|
-
<!-- microi-progressive:end -->
|
|
1
|
+
---
|
|
2
|
+
name: v8-workflow
|
|
3
|
+
description: Microi V8 工作流事件指南。用于编写审批流条件、节点 V8 代码、wf_flowdesign/wf_node/wf_line 逻辑、V8.WF 变量和工作流路由。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **Codex 非阻塞自动更新:** 当前宿主为 Codex 时,吾码 CLI、Codex 插件与工作区 AI/MCP 由后台自动更新;需要诊断时读取 `../microi-codex-installer/SKILL.md`。更新失败、等待空闲或尚未重载均不得阻断当前、正在进行或新建任务。非 Codex 宿主跳过此项。
|
|
7
|
+
|
|
8
|
+
# Microi V8 工作流事件开发
|
|
9
|
+
|
|
10
|
+
你正在开发 Microi 吾码平台的工作流(审批流程)V8 事件。流程引擎基于表单引擎,通过 V8 事件控制审批逻辑。
|
|
11
|
+
|
|
12
|
+
## 后端类库与接口边界
|
|
13
|
+
|
|
14
|
+
- 工作流运行时固定属于独立 `Microi.WorkFlow` 类库;`Microi.net.Api` 只注册 `AddMicroiWorkFlow()`,不得恢复 `WorkFlowController` 或把流程业务写回 `Program.cs`。
|
|
15
|
+
- 对外与旧移动端路由统一由官方 Managed `platform-workflow` 接口引擎承载,历史 `/api/WorkFlow/*` 地址写入同一记录的 `ApiRoutes`。租户个性化逻辑写在 CreateIfMissing `platform-workflow-custom-hook`,默认只返回 `{ Code: 1 }`。
|
|
16
|
+
- `Microi.Core` 只保留避免循环引用所需的 `IWFEngine`、模型和最小运行时合同;发起、审批、撤回、移交、退回及审批人计算实现在 `Microi.WorkFlow`,并按职责拆分 partial 文件。
|
|
17
|
+
- 新业务规则仍优先写工作流 V8/接口引擎。只有事务、流程状态机、可信当前用户和运行时内核缺少不可伪造的底层原子时,才扩展 `Microi.WorkFlow`。
|
|
18
|
+
- 官方发布时 `Microi.WorkFlow` 必须生成 NuGet 包,并与 `Microi.AI` 使用同一 Obfuscar 配置加密后替换包内 DLL;不得推送未加密的 WorkFlow 包。开源安装只消费 NuGet,不要求存在私有源码。
|
|
19
|
+
|
|
20
|
+
<!-- microi-progressive:begin -->
|
|
21
|
+
<!-- microi-progressive:chunk id=v8-workflow-000 sha256=9030cd2de9f1febfb9a749c82cf83e97ccb8fb972a3f8f0ff11067488e14cd8e -->
|
|
22
|
+
## 本地优先与版本头(必做)
|
|
23
|
+
|
|
24
|
+
工作流节点、连线条件、开始/结束节点等 V8 代码如果有本地文件,必须优先修改 `microi-v8-engine/<租户>/<项目>/...` 下的本地文件,再同步到数据库。插件提示本地/远端不一致时,先比对并合并,不得直接覆盖。
|
|
25
|
+
|
|
26
|
+
每次修改、上传、推送工作流 V8 事件代码,都要维护顶部版本区域。版本号从 `v1.0.0` 开始;每次上传/推送/修改递增 1;补丁位和次版本位最大为 9 并向前进位(`v1.0.9 -> v1.1.0`、`v1.9.9 -> v2.0.0`、`v9.9.9 -> v10.0.0`)。代码头只写完整功能说明,不写修改历史、时间戳或 ChangeLog。
|
|
27
|
+
|
|
28
|
+
```javascript
|
|
29
|
+
/*
|
|
30
|
+
* V8 工作流
|
|
31
|
+
* WorkflowKey: 示例流程Key
|
|
32
|
+
* EventType: WFNodeLine/WFNodeStart/WFNodeEnd
|
|
33
|
+
* Version: v1.0.0
|
|
34
|
+
* 功能说明:
|
|
35
|
+
* - 完整说明该工作流 V8 控制的节点动作、路线条件、审批变量和副作用。
|
|
36
|
+
*/
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
保存工作流包前要先跑拓扑/条件检查;保存后用样例表单数据测试至少一条会经过该 V8 的路线。
|
|
40
|
+
|
|
41
|
+
生成工作流 V8 代码时,代码内容本身(文件头、普通注释、`console.log`、返回 `Msg` 等)不要包含 `Microi`、`吾码` 等平台品牌文字,除非业务数据或字段值本身必须如此。生成代码要有可维护注释:每个 `function` 前写清用途、关键参数和返回值;路线选择、审批人计算、状态回写、撤回/驳回处理、跨表联动等复杂代码段前写短注释说明业务原因;避免“给变量赋值”这类无信息量注释。若工作流存储表支持 `Version`/`ChangeHistory`,历史说明也必须最新在前并保留旧记录。
|
|
42
|
+
|
|
43
|
+
<!-- /microi-progressive:chunk -->
|
|
44
|
+
<!-- microi-progressive:chunk id=v8-workflow-001 sha256=53550786c531c347cfe9d92247b07d127c348210f07e302a1b68f278136c3e77 -->
|
|
45
|
+
## 工作流物理表
|
|
46
|
+
|
|
47
|
+
| 表名 | 说明 |
|
|
48
|
+
|------|------|
|
|
49
|
+
| `wf_flowdesign` | 流程设计(流程定义) |
|
|
50
|
+
| `wf_node` | 流程节点 |
|
|
51
|
+
| `wf_line` | 节点间连线/条件 |
|
|
52
|
+
| `wf_flow` | 流程实例(一次发起对应一行) |
|
|
53
|
+
| `wf_work` | 待办/已办工作 |
|
|
54
|
+
| `wf_history` | 审批历史(每次同意/拒绝/撤回的记录) |
|
|
55
|
+
|
|
56
|
+
### 原生人员、自动结束与取消快照契约
|
|
57
|
+
|
|
58
|
+
- `wf_node.Users` 是 JSON 序列化的 `IdName` 对象数组,例如 `[{"Id":"<user-id>","Name":"审核人"}]`;不能保存为字符串 Id 数组。`Name` 仅供显示,业务授权仍须按当前主库用户、角色和实际待办接收人判断。前端 `V8.WF.ForceSelectUsers` 的字符串数组是另一份 API 契约,不能混用。
|
|
59
|
+
- 自动结束节点的 `NodeType` 使用 `AutoEnd`。它可能继承上一人工节点的 `ApprovalType=Agree`,并生成一条结束历史;核对独立审批人数时只计入明确配置的人工节点,不能把结束节点当成额外审核人。
|
|
60
|
+
- 原生 `CancelFlow` 可将请求中的 `FormData` 写回 `wf_flow.FormData`;未传时可能保存 `{}`。应用不能把取消后的实例 `FormData` 当成不可变的原始提交快照。需要恢复冻结业务单时,优先核对业务表保存的服务端快照摘要;若使用原生历史,必须限定同一实例、同一业务表/行、唯一原始开始节点及发起人、自动提交历史,并检查版本、金额、配置摘要和零待办。此分支只能恢复草稿或驳回状态,不能据此批准或过账。
|
|
61
|
+
- 当前 `CancelFlow(WFParam)` 使用独立事务,没有 `StartWork/SendWork` 的共享 `DbTrans` 重载。应用不得在持有实例、工作或业务行锁的接口事务内调用取消,也不能假设给它多传一个参数便会共享事务。微服务可顺序执行“服务端核验并返回真实待办坐标 → 原生取消 → 业务终态复核”,每个请求完成后释放其事务;网络结果未知时先复核终态,不能盲目重发取消或提前恢复业务状态。
|
|
62
|
+
- 验收至少覆盖真实取消时不传 `FormData`、伪造取消载荷、退回后直接重提被拒绝、取消后新实例重提、自动结束继承 `Agree`,以及普通角色不能修改取证用的流程历史。模拟正确 JSON 不替代原生 HTTP 验收。
|
|
63
|
+
|
|
64
|
+
直接 SQL 查询常用场景:
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
// 我的待办
|
|
68
|
+
var todo = V8.Db.FromSql(
|
|
69
|
+
'SELECT Id, FlowId, NodeId, FlowTitle, WorkState, ReceiverId, TableRowId FROM wf_work WHERE ReceiverId = @p0 AND WorkState = @p1 ORDER BY CreateTime DESC'
|
|
70
|
+
).AddInParameter("@p0", V8.CurrentUser.Id)
|
|
71
|
+
.AddInParameter("@p1", 'Todo')
|
|
72
|
+
.ToArray();
|
|
73
|
+
|
|
74
|
+
// 我发起的
|
|
75
|
+
var mine = V8.Db.FromSql(
|
|
76
|
+
'SELECT Id, FlowTitle, FlowState, SenderId, TableRowId FROM wf_flow WHERE SenderId = @p0 ORDER BY CreateTime DESC'
|
|
77
|
+
).AddInParameter("@p0", V8.CurrentUser.Id)
|
|
78
|
+
.ToArray();
|
|
79
|
+
|
|
80
|
+
// 流程历史
|
|
81
|
+
var history = V8.Db.FromSql(
|
|
82
|
+
'SELECT * FROM wf_history WHERE FlowId = @p0 ORDER BY CreateTime ASC'
|
|
83
|
+
).AddInParameter("@p0", V8.Param.flowId)
|
|
84
|
+
.ToArray();
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
<!-- /microi-progressive:chunk -->
|
|
88
|
+
<!-- microi-progressive:chunk id=v8-workflow-002 sha256=377698ecb64266fb74399ea664010e0a46156d13c3e047de1b2cbae3dbba15c7 -->
|
|
89
|
+
## 流程 V8 事件执行顺序
|
|
90
|
+
|
|
91
|
+
工作流合并提交请求的 `_FormSubmitAction` 可使用 `Add/Edit`;表单后端事件中的
|
|
92
|
+
`V8.FormSubmitAction` 实际为 `Insert/Update/Delete`,两者不能混淆。删除事件把服务端
|
|
93
|
+
读取的待删除行放在 `V8.Form`,`V8.OldForm` 为空;校验删除归属、状态或引用时应以
|
|
94
|
+
`V8.Form.Id` 在共享事务中重新读取并锁定原行,不应假定 `OldForm` 与修改事件相同。
|
|
95
|
+
|
|
96
|
+
节点开始事件成功继续流转时保持 `V8.Result` 为空或设为布尔 `true`;不要用
|
|
97
|
+
`V8.Result={Code:1}`,非布尔结果会提前结束当前流转。节点校验失败应抛出异常,
|
|
98
|
+
尤其节点结束事件不可依赖 `return {Code:0}` 阻止事务提交。
|
|
99
|
+
|
|
100
|
+
1. 用户点击发起流程或处理工作
|
|
101
|
+
2. **表单进入 V8 事件(前端 FormIn)**
|
|
102
|
+
3. 用户点击【提交】按钮
|
|
103
|
+
4. **节点开始 V8 事件(前端 WFNodeStart)**
|
|
104
|
+
5. 表单提交前 V8 事件(前端 FormSubmitBefore)
|
|
105
|
+
6. 表单提交前 V8 事件(后端 FormSubmitBefore)
|
|
106
|
+
7. 表单提交后 V8 事件(后端 FormSubmitAfter)
|
|
107
|
+
8. 表单提交后 V8 事件(前端)
|
|
108
|
+
9. 调用后端处理工作接口
|
|
109
|
+
10. **条件判断 V8 事件(后端 WFNodeLine)**
|
|
110
|
+
11. **节点开始 V8 事件(后端 WFNodeStart)**
|
|
111
|
+
12. **节点结束 V8 事件(后端 WFNodeEnd)**
|
|
112
|
+
13. **节点结束 V8 事件(前端 WFNodeEnd)**
|
|
113
|
+
|
|
114
|
+
<!-- /microi-progressive:chunk -->
|
|
115
|
+
<!-- microi-progressive:chunk id=v8-workflow-003 sha256=f5776a5b8fe4e460f79e20e9806b3a80bcadf6f1e09408880bd5ca911cb79533 -->
|
|
116
|
+
## V8.WF 上下文属性
|
|
117
|
+
|
|
118
|
+
### 所有流程事件可访问
|
|
119
|
+
|
|
120
|
+
| 属性 | 类型 | 说明 |
|
|
121
|
+
|------|------|------|
|
|
122
|
+
| `V8.WF.ApprovalType` | string | 审批类型:`Agree`(同意)/`Disagree`(拒绝)/`Recall`(撤回)/`Auto`(自动) |
|
|
123
|
+
| `V8.WF.ApprovalIdea` | string | 用户填写的审批意见 |
|
|
124
|
+
| `V8.WF.AddUsers` | array | 用户添加的审批人 |
|
|
125
|
+
| `V8.WF.SelectUsers` | array | 用户选择的审批人 |
|
|
126
|
+
| `V8.WF.CurrentFlowDesign` | object | 当前流程设计图实体 |
|
|
127
|
+
| `V8.WF.CurrentNode` | object | 当前节点实体 |
|
|
128
|
+
| `V8.WF.BackNodeId` | string | 拒绝时选择退回的节点 Id |
|
|
129
|
+
|
|
130
|
+
### 节点开始事件(前端)额外属性
|
|
131
|
+
|
|
132
|
+
| 属性 | 说明 |
|
|
133
|
+
|------|------|
|
|
134
|
+
| `V8.WF.ForceSelectUsers` | 强制指定下一节点审批人(可写),赋值 `['userid1', 'userid2']` |
|
|
135
|
+
|
|
136
|
+
### 节点结束事件(后端)额外属性
|
|
137
|
+
|
|
138
|
+
| 属性 | 说明 |
|
|
139
|
+
|------|------|
|
|
140
|
+
| `V8.WF.NextNode` | 下一节点实体 |
|
|
141
|
+
| `V8.WF.NextTodoUsers` | 接收人,格式:`[{ Id: '', Name: '' }]` |
|
|
142
|
+
|
|
143
|
+
### 节点结束事件(前端)额外属性
|
|
144
|
+
|
|
145
|
+
| 属性 | 说明 |
|
|
146
|
+
|------|------|
|
|
147
|
+
| `V8.WF.WorkResult` | 流程执行结果(发送到了哪个节点、哪些审批人) |
|
|
148
|
+
|
|
149
|
+
<!-- /microi-progressive:chunk -->
|
|
150
|
+
<!-- microi-progressive:chunk id=v8-workflow-004 sha256=d8445c1d473579fde063179d6330eefaa2373f1166e837656b780058295de3a3 -->
|
|
151
|
+
## ApprovalType 审批类型
|
|
152
|
+
|
|
153
|
+
| 值 | 说明 |
|
|
154
|
+
|---|---|
|
|
155
|
+
| `Agree` | 同意 |
|
|
156
|
+
| `Disagree` | 拒绝 |
|
|
157
|
+
| `Recall` | 撤回 |
|
|
158
|
+
| `Auto` | 发起流程(开始节点) / 业务节点 / 自动结束节点 |
|
|
159
|
+
|
|
160
|
+
<!-- /microi-progressive:chunk -->
|
|
161
|
+
<!-- microi-progressive:chunk id=v8-workflow-005 sha256=96e49e15fcb4b9da83f46b6818e198f338cb77ce76d11c56dfddebc2cc24f881 -->
|
|
162
|
+
## 条件判断 V8 事件(后端 WFNodeLine)
|
|
163
|
+
|
|
164
|
+
根据业务规则决定流程走向。优先推荐设置 `V8.NextNodeId` 直接指定下一节点;如仍使用条件线的条件值,也可以设置 `V8.LineValue`。
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
// V8.EventName === 'WFNodeLine'
|
|
168
|
+
// V8.Form 是当前表单数据
|
|
169
|
+
|
|
170
|
+
if (V8.Form.Money <= 100) {
|
|
171
|
+
V8.NextNodeId = 'node_id_1'; // 直接走指定下一节点(推荐)
|
|
172
|
+
} else if (V8.Form.Money <= 10000) {
|
|
173
|
+
V8.LineValue = 2; // 也可走条件值为 2 的线(兼容旧配置)
|
|
174
|
+
} else {
|
|
175
|
+
V8.NextNodeId = 'node_id_3';
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
<!-- /microi-progressive:chunk -->
|
|
180
|
+
<!-- microi-progressive:chunk id=v8-workflow-006 sha256=8e2a82330c7f49c3a03920123531d310ea329fd310179918d835e3c05d49771a -->
|
|
181
|
+
## 前端发起流程
|
|
182
|
+
|
|
183
|
+
```javascript
|
|
184
|
+
// 在 V8 按钮或自定义逻辑中发起流程
|
|
185
|
+
V8.WF.StartWork({
|
|
186
|
+
FlowDesignId: 'flow-design-id', // 必传:流程设计 Id
|
|
187
|
+
TableRowId: V8.Form.Id, // 必传:关联数据 Id
|
|
188
|
+
FormData: JSON.stringify(V8.Form), // 可选:表单数据
|
|
189
|
+
NoticeFields: JSON.stringify([ // 可选:通知字段
|
|
190
|
+
{ Id: 'field1', Name: 'Name', Label: '姓名', Value: V8.Form.Name }
|
|
191
|
+
])
|
|
192
|
+
}, function(result) {
|
|
193
|
+
if (result.Code === 1) {
|
|
194
|
+
V8.Tips('流程发起成功', true);
|
|
195
|
+
V8.RefreshTable({ _PageIndex: 1 });
|
|
196
|
+
} else {
|
|
197
|
+
V8.Tips(result.Msg, false);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
<!-- /microi-progressive:chunk -->
|
|
203
|
+
## “我的工作”与审核界面交付规则
|
|
204
|
+
|
|
205
|
+
- 模块使用“流程引擎”打开方式时,关联流程只能选择已启用的 `wf_flowdesign`;交付前同时验证流程已启用、模块 `OpenType=WorkFlow`、`FlowDesignId` 正确,且开始节点不存在测试阻断 V8。
|
|
206
|
+
- `StartWork` / `DoWork` 必须通过工作流与表单合并提交能力保存。审核态只保留“处理工作”、流转记录/流程图和关闭;不得同时显示普通保存、取消编辑、草稿箱、删除、显示隐藏字段或普通表单更多按钮。
|
|
207
|
+
- “我的工作”菜单角标使用“未处理待办 + 未读抄送”。待办 Tab 显示未处理数,抄送 Tab 显示未读数;我发起的、我处理的、我相关的按各自列表查询口径统计,不能用 `wf_work` 的近似口径代替 `wf_flow` 列表口径。
|
|
208
|
+
- 新抄送项应显式保存 `IsRead=false`,用户打开后由可信后端按当前身份标记已读。历史 `CopyUsers` 项没有 `IsRead` 时按已读兼容,避免升级后把全部历史抄送误报为未读。
|
|
209
|
+
- “查看流程图”验收必须从真实流转记录入口打开,确认流程定义、当前节点高亮、连线和弹窗尺寸正常,并检查浏览器无脚本错误;只验证流程 JSON 拓扑不等于完成 UI 验收。
|
|
210
|
+
|
|
211
|
+
## 详细参考路由(渐进披露)
|
|
212
|
+
|
|
213
|
+
仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
|
|
214
|
+
|
|
215
|
+
- [references/progressive-01-节点开始-v8-事件.md](references/progressive-01-节点开始-v8-事件.md):节点开始 V8 事件;节点结束 V8 事件;前端打开流程表单;MCP 创建/检查/测试工作流;发起流程与表单保存;流程相关表;注意事项
|
|
216
|
+
<!-- microi-progressive:end -->
|