@microi.net/cli 5.8.0 → 5.8.1

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 (97) 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/assets/build-meta.json +5 -5
  7. package/cordis.patch.yml +1 -1
  8. package/package.json +1 -1
  9. package/scripts/mcp-server.js +64 -64
  10. package/scripts/microi-skills.meta.json +284 -281
  11. package/skills/.microi-skills-version.json +2 -2
  12. package/skills/.progressive-disclosure-manifest.json +432 -432
  13. package/skills/README.md +2 -1
  14. package/skills/ai-engine/references/ai-employees.md +4 -0
  15. package/skills/ai-platform-governance/SKILL.md +8 -8
  16. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +9 -9
  17. package/skills/app-store/SKILL.md +53 -3
  18. package/skills/microi/SKILL.md +14 -0
  19. package/skills/microi-ai-application/SKILL.md +9 -0
  20. package/skills/microi-client-frontend/SKILL.md +5 -5
  21. 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 +3 -3
  22. 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 +4 -4
  23. 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 +3 -3
  24. package/skills/microi-codex/SKILL.md +9 -0
  25. package/skills/microi-deployment/SKILL.md +7 -0
  26. package/skills/microi-deployment/references/deployment-matrix.md +8 -0
  27. package/skills/microi-form-layout/SKILL.md +6 -6
  28. 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 +3 -3
  29. package/skills/microi-frontend-sdk/SKILL.md +6 -6
  30. 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 +7 -7
  31. package/skills/microi-mobile-app-quality/SKILL.md +12 -8
  32. 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 +10 -10
  33. 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 +4 -4
  34. package/skills/microi-system-delivery/SKILL.md +5 -5
  35. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +1 -1
  36. 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 +6 -4
  37. package/skills/microi-ui/SKILL.md +6 -6
  38. 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 +5 -5
  39. package/skills/microi-uniapp-frontend/SKILL.md +10 -10
  40. 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 +7 -7
  41. 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 +10 -10
  42. package/skills/page-engine/SKILL.md +8 -8
  43. 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 +3 -3
  44. 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 +4 -4
  45. package/skills/playwright-e2e/SKILL.md +8 -8
  46. 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 +5 -5
  47. 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 +3 -3
  48. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +7 -7
  49. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +4 -4
  50. package/skills/system-observability/SKILL.md +3 -0
  51. package/skills/ui-design/SKILL.md +7 -7
  52. 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 +2 -2
  53. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +3 -3
  54. 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 +2 -2
  55. 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 +1 -1
  56. 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 +3 -3
  57. 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 +2 -2
  58. 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 +4 -4
  59. 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 +5 -5
  60. package/skills/unity-integration/references/ai-app-delivery.md +16 -0
  61. package/skills/v8-api-config/SKILL.md +6 -0
  62. package/skills/v8-crud-api/SKILL.md +9 -7
  63. 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 +8 -8
  64. 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 +2 -2
  65. package/skills/v8-export-import/SKILL.md +4 -4
  66. 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 +3 -3
  67. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +4 -4
  68. 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 +1 -1
  69. package/skills/v8-file-upload/SKILL.md +25 -4
  70. 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 +3 -3
  71. 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 +3 -3
  72. package/skills/v8-frontend-events/SKILL.md +6 -6
  73. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +5 -5
  74. package/skills/v8-http-integration/SKILL.md +4 -4
  75. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +7 -7
  76. 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 +2 -2
  77. package/skills/v8-image-processing/SKILL.md +1 -1
  78. package/skills/v8-menu-buttons/SKILL.md +4 -4
  79. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +4 -4
  80. 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 +5 -5
  81. 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 +3 -3
  82. package/skills/v8-mq-mqtt/SKILL.md +2 -2
  83. package/skills/v8-mq-mqtt/references/mqtt-production.md +1 -1
  84. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +1 -1
  85. package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +1 -1
  86. package/skills/v8-security/SKILL.md +15 -5
  87. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +3 -3
  88. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +8 -6
  89. package/skills/v8-table-event/SKILL.md +5 -5
  90. 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 +6 -6
  91. 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 +2 -2
  92. package/skills/v8-workflow/SKILL.md +15 -7
  93. 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 +7 -7
  94. package/skills/workspace-conventions/SKILL.md +16 -7
  95. 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 +5 -4
  96. 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 +14 -14
  97. 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 +1 -1
@@ -222,6 +222,9 @@ UnblockIp:<ip>
222
222
  - 报表参数按类型分开:只有 13/15 传非空 Area,1/3/9/11 传非空 HttpCode,21/23 传 IsOverseas;17 不传 DomainName。不得统一附加无关或空筛选项,否则阿里云返回 InvalidParameter。内嵌调用的 V8.Param 可能是 CLR JObject,不向它写入配置对象,创建独立 JS 请求并从服务端读取接入配置。
223
223
  - SLS 只用固定查询模板与已校验域名/项目/地域/Logstore;自动判断基于 `remote_ip`、`response_size` 字节以及完整窗口、采集延迟、连续命中、白名单、冷却与限额。私网/环回/链路本地/组播和与保护 CIDR 重叠的地址不封禁。动态阈值须满足历史样本数,默认观察。
224
224
  - 云端变更先 `Preview` 再 `Submit`,请求号幂等、配置快照比较、独立持久化状态和租约不可省略。超时/崩溃记 Unknown 并 `Reconcile`,不能自动重发不确定写入。到期只删除本应用新增条目,重叠封禁延后回收。
225
+ - CMS 历史公有媒体的专用动作是 `RefreshCmsMedia/CmsRefreshStatus`;先验证 Capabilities 的 `CmsMediaRefresh/CmsRefreshTaskReadback`。管理员只能提交 `RendId/CmsTaskId`;服务端必须从当前租户已 Offline 的衍生、同站/同版本/同 InputHash 的原源删除检查点、可信 FileServer 与 `/当前租户/mci-cms-public/` 路径计算唯一旧 URL。拒绝任意 URL/目录/正则/客户端任务 Id/云密钥;普通 CMS 角色不能进入管理员入口,内部调用仍须重查权威撤销记录。
226
+ - 云刷新前独立提交操作请求键、租约、原任务快照和 `CloudWriteStarted`;未知只读回原任务,不重复云写入。缺失 TaskId 仅可依据原 URL、执行时间与前快照恢复唯一新任务,歧义保持 Unknown。任务全部 Complete/100%、原 URL 严格 HTTP404 后,CMS 还必须重查源对象不存在和当前发布权限,并在站点锁内消费当前租户权威 outbox。客户端 CacheVerified 标记、隐藏前台、源404、刷新受理或加随机参数404均不能作撤权成功。用户保存/下载副本不可召回。
227
+ - 精确文件刷新通常约5~6分钟;单 URL 入口保留默认每日10,000文件刷新额度、50QPS写入与5QPS任务读取边界,任务历史仅3天且同秒同 URL 任务可能合并,不假定请求与 TaskId 一一对应。刷新本身无独立费用,回源对象存储请求/流量仍可能计费。以阿里云 [RefreshObjectCaches](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-refreshobjectcaches)、[DescribeRefreshTasks](https://www.alibabacloud.com/help/en/cdn/developer-reference/api-cdn-2018-05-10-describerefreshtasks)及[刷新预热说明](https://help.aliyun.com/zh/cdn/user-guide/refresh-and-prefetch/)核对实际额度。验收先 warm 自有测试旧 URL 至真实缓存命中,再原请求撤回,保留源删除后旧 URL 仍200的红证、云任务与原 URL404绿证;Node模型通过不能替代真实云端。
225
228
  - 单域名 IP 黑名单与全账号海量封禁必须分开;后者需阿里云开通,须明确 `ALL_CDN_DOMAINS`,不在验收时自动开通付费服务。`limit_rate` 是至少 100 KB/s 的下载速率,不是 QPS;日志规则也不等于实时边缘 WAF。
226
229
  - `mci-cdn-security-tick` 回收到期封禁;每条启用规则通过 `V8.Method.SaveScheduleJob` 创建错峰任务并使用独立数据库租约。安装包包含基础调度及三张表的结构,不带云密钥、规则实例、白名单或任何测试 IP。
227
230
  - 验收分开记录 Node 行为测试、真实管理员/云端只读、文档保留 IP 的受控封禁/到期恢复、真实宿主页面、包正文 SHA 与安装。日志未投递或海量服务未开通时,如实标为待配置,不伪造云端通过。
@@ -16,7 +16,7 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
16
16
  ---
17
17
 
18
18
  <!-- microi-progressive:begin -->
19
- <!-- microi-progressive:chunk id=ui-design-000 sha256=ba7fc233da47ef8d477540bc5a2b982eb0fef852cfffe9da12e5c0d03a57614d -->
19
+ <!-- microi-progressive:chunk id=ui-design-000 sha256=cb6d5153948310d2ec489d63189cef0387e23e5023b0977a39e4981ac7ddf8f5 -->
20
20
  ## 整体风格定义
21
21
 
22
22
  - **禁止弧形包边**:Tab、卡片、导航项、提示条和分组标题不得把强调色 `border-left` / `border-right` 与容器圆角组合成沿上下圆角弯曲的侧框,也不得用渐变、阴影或伪元素模拟同样的包边。默认不加侧框;需要强调时使用与容器边框独立的直竖线,垂直居中、与上下边缘留出间距且不随容器圆角弯折。直线端点可以有轻微圆角,容器本身仍可使用中性圆角边框。横向 Tabs 继续使用独立选中表面,不添加装饰线。亮色、暗色与移动端截图都必须核对这一规则。
@@ -54,7 +54,7 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
54
54
  ---
55
55
 
56
56
  <!-- /microi-progressive:chunk -->
57
- <!-- microi-progressive:chunk id=ui-design-001 sha256=9593e1ab2bf4931cf4f0d96b87ce59c04a8d340dbf30c705f90375ec38d131fd -->
57
+ <!-- microi-progressive:chunk id=ui-design-001 sha256=1fe31e1ccbb6ede7c2f549b374f91056fa8a11c0b8f4e86e60041f68b23d434b -->
58
58
  ## 样式隔离与抗覆盖
59
59
 
60
60
  - Microi.UI 页面或局部 UI 必须使用 `.mci-page`、`data-mci-ui-root` 或项目级 `.mci-*` 根容器包裹,避免被宿主项目、第三方组件库、Markdown 渲染器的全局 CSS 意外覆盖。
@@ -67,7 +67,7 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
67
67
  ---
68
68
 
69
69
  <!-- /microi-progressive:chunk -->
70
- <!-- microi-progressive:chunk id=ui-design-002 sha256=0d1bac0d19d61d288a6eb25f18fc15a045bca3df9a01399d5ce5224c8accffd3 -->
70
+ <!-- microi-progressive:chunk id=ui-design-002 sha256=ee85cba1f72b3b7e8327aaf86b4a713e0c45792c910b18a8d3518cfdcc42b572 -->
71
71
  ## 高端视觉标准
72
72
 
73
73
  - 每个新页面必须有首屏视觉重心:核心数据、主任务、产品/品牌对象或可操作内容应在第一屏明确出现,不能只有说明文字或空白装饰。
@@ -92,7 +92,7 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
92
92
  ---
93
93
 
94
94
  <!-- /microi-progressive:chunk -->
95
- <!-- microi-progressive:chunk id=ui-design-003 sha256=62b9d5696d23ded43a0a7c82d520b69ee8182269579c7171808325877144abd3 -->
95
+ <!-- microi-progressive:chunk id=ui-design-003 sha256=e1d719d0eeab855b943a4f0de45af1c5b5d08b310e9ea6b183c229c3f5ae0e06 -->
96
96
  ## PC 后台菜单宫格 / 入口页规范
97
97
 
98
98
  适用于 `sys_menu` 子菜单入口、工作台快捷入口、后台功能入口页。此类页面是操作入口,不是营销卡片墙,重点是密度克制、对齐稳定、快速识别。
@@ -106,7 +106,7 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
106
106
  - 修改后必须截图验收 1366/1440/1920 桌面宽度和 390 左右移动宽度,检查每行数量、行列对齐、卡片内边距、标题与统计间距、文字溢出和横向滚动。
107
107
 
108
108
  <!-- /microi-progressive:chunk -->
109
- <!-- microi-progressive:chunk id=ui-design-004 sha256=5d3aebaa07bf0df572b5eadfbc567fa58138a78816f0edf25fcff1a93d914ac7 -->
109
+ <!-- microi-progressive:chunk id=ui-design-004 sha256=ea379e7873b78b532fa959b64d4a97b89af19959037c5211afec47c30d58410f -->
110
110
  ## PC 后台数据卡片模式规范
111
111
 
112
112
  适用于 `diy-table` 卡片模式、任务/应用/客户/资产列表。它是高频数据操作容器,不是营销海报或入口宫格。
@@ -122,7 +122,7 @@ description: Microi UI 设计系统指南。用于设计 PC Vue、Element Plus
122
122
  ---
123
123
 
124
124
  <!-- /microi-progressive:chunk -->
125
- <!-- microi-progressive:chunk id=ui-design-005 sha256=99d3734279a75fe306ebf09943b0c550433d311c1df0b9cc63137aca835b9972 -->
125
+ <!-- microi-progressive:chunk id=ui-design-005 sha256=02cd6f4dfc86ebafc58fd770795f4ccb55fe43f1e851ef450ae49ceb0413bc1d -->
126
126
  ## 形态模式(圆角 / 扁平)
127
127
 
128
128
  Microi 项目必须支持用户或项目级形态偏好:`data-mci-shape="rounded"` 与 `data-mci-shape="flat"`。
@@ -158,7 +158,7 @@ Microi 项目必须支持用户或项目级形态偏好:`data-mci-shape="round
158
158
  ---
159
159
 
160
160
  <!-- /microi-progressive:chunk -->
161
- <!-- microi-progressive:chunk id=ui-design-006 sha256=f8d9a7c96a2c2696f82b596bdf1a7d02bed72ff796036c05d771ca3954bf68ba -->
161
+ <!-- microi-progressive:chunk id=ui-design-006 sha256=0a13456c54c0413d3055802d8789f924eb0d2f5918de2763d1e1fc0b5f60f634 -->
162
162
  ## 圆角
163
163
 
164
164
  ```css
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-007 sha256=b32dac5c75835929c6c55607807cad0cd14a013ddc1a41e307263549f2047867 -->
5
+ <!-- microi-progressive:chunk id=ui-design-007 sha256=bd9e24e1cdc0017a1bffccbe48505ad8d0a274d65f28f4e6a80e591dec813407 -->
6
6
  ## 颜色体系(CSS Variables — 支持主题切换)
7
7
 
8
8
  所有颜色必须通过 CSS 变量引用,禁止硬编码色值。变量定义放在全局样式入口(PC 端 `src/styles/mci-design.scss`,移动端 `<style>` 内或独立 CSS 文件)。
@@ -150,7 +150,7 @@
150
150
  ---
151
151
 
152
152
  <!-- /microi-progressive:chunk -->
153
- <!-- microi-progressive:chunk id=ui-design-008 sha256=80df5bdb440dea278d96692425780d40232b8ab4bbb604ee1b3f9727679ea65a -->
153
+ <!-- microi-progressive:chunk id=ui-design-008 sha256=01af2cebf85683f180693fd76cf6c5f1db4380274a9924acf5542b7b5f868ebc -->
154
154
  ## 阴影体系(层次与质感)
155
155
 
156
156
  阴影是塑造层次感、可点击性和高级质感的关键。采用多层阴影叠加,但不要做脏、糊、重的阴影。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-009 sha256=3e553809ea501d359553ba0e78a1cf83c9fccc0cdc06a5d562d73af7ebc0c09d -->
5
+ <!-- microi-progressive:chunk id=ui-design-009 sha256=e7dcc4c0be203d5cddf6ec93d7db66ff78f4997e60eafcbd4c91cabab227767f -->
6
6
  ## 字体
7
7
 
8
8
  ```css
@@ -73,7 +73,7 @@
73
73
  ---
74
74
 
75
75
  <!-- /microi-progressive:chunk -->
76
- <!-- microi-progressive:chunk id=ui-design-010 sha256=06dccf8f187ce38d807057735f6b6acbf9a9037f37f64544fb933f16f28e58f0 -->
76
+ <!-- microi-progressive:chunk id=ui-design-010 sha256=cb6d86f002d44d484b3bb10b12e4194360739323609450f9c99e6aa10004cb24 -->
77
77
  ## 间距与触摸目标
78
78
 
79
79
  ### 界面引擎仪表盘密度与对齐
@@ -119,7 +119,7 @@
119
119
  ---
120
120
 
121
121
  <!-- /microi-progressive:chunk -->
122
- <!-- microi-progressive:chunk id=ui-design-011 sha256=fba089e9a092efca57bfad2a34a4b9bada857c1072b09488e29b3cf28eefaba1 -->
122
+ <!-- microi-progressive:chunk id=ui-design-011 sha256=dc8c655353a6349e385ea9187fe23a377b4d69e1f2bf102aa736e987a624bcc5 -->
123
123
  ## 骨架屏 Loading 设计规范
124
124
 
125
125
  所有依赖接口、数据库、远程资源或异步计算的数据区域,首屏加载态必须使用骨架屏(Skeleton Screen),不能只显示 spinner、进度圈、空图标或“数据加载中...”文案。骨架屏属于基础体验规范,适用于 PC、移动端 H5、uni-app、小程序和 WebView。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-012 sha256=d59ae14c3991bb27949dcdcc0df3114ecbd1e627d6a69f5f78d1247ea2e02cd6 -->
5
+ <!-- microi-progressive:chunk id=ui-design-012 sha256=78f4544796729b2eb49bc892472e397962ec4fd3112dd4cecf29eba883a6888a -->
6
6
  ## 动效规范(丰富但不卡)
7
7
 
8
8
  ### 性能铁律
@@ -206,7 +206,7 @@
206
206
  ---
207
207
 
208
208
  <!-- /microi-progressive:chunk -->
209
- <!-- microi-progressive:chunk id=ui-design-013 sha256=385528713388a28e0182e2df9e2ed828ddb7cccaf7a3a5e78354f46a588f6f1c -->
209
+ <!-- microi-progressive:chunk id=ui-design-013 sha256=c2a784b1fc7d6f6f554661f4f1719d35c6c667037a817f697cb72e9535ae15eb -->
210
210
  ## Vue 3 过渡动画
211
211
 
212
212
  ```scss
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-014 sha256=abc0a2e1f26a1cfbfa5d73399e09479b7b71314a727bec8b0bf4258a5a3733dc -->
5
+ <!-- microi-progressive:chunk id=ui-design-014 sha256=cf27a0b68280343d0a942dd327a92ee6753527756e48123daf5fa4a15c36520f -->
6
6
  ## 组件风格速查
7
7
 
8
8
  ### 卡片(通用)
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-015 sha256=18e252a8b3e87b6522a9f434e7332afc9be1a5ab0797d7bd9e5d639bdcc9d240 -->
5
+ <!-- microi-progressive:chunk id=ui-design-015 sha256=4b94ff9643e3db76b247a63e8460e1768b6fdfeb87d65e3ec07fba94460e75c1 -->
6
6
  ## 移动端专用规范
7
7
 
8
8
  ### 1. 视口设置
@@ -136,7 +136,7 @@
136
136
  ---
137
137
 
138
138
  <!-- /microi-progressive:chunk -->
139
- <!-- microi-progressive:chunk id=ui-design-016 sha256=2c997040cef24fb5e8b6f2faab6d354473d4a962560fdaffd13f11294eb4cf1f -->
139
+ <!-- microi-progressive:chunk id=ui-design-016 sha256=fa50a41e93b623948d7f21521953413b049bc401d8a4c4af3bf7e8f3e3f8fbde -->
140
140
  ## 装饰性背景(低性能消耗方案)
141
141
 
142
142
  ### 结构化背景
@@ -209,7 +209,7 @@ Microi 背景必须服务内容层级,不能喧宾夺主。优先使用网格
209
209
  ---
210
210
 
211
211
  <!-- /microi-progressive:chunk -->
212
- <!-- microi-progressive:chunk id=ui-design-017 sha256=dfd5e3fe5ccef15772d0687dc031ce302cc9b2277e06f5c6dd0ad7113343f540 -->
212
+ <!-- microi-progressive:chunk id=ui-design-017 sha256=8d90d30831026b8cf401dac69b15d5a1439719aa5640b1eb868722e24567e113 -->
213
213
  ## 性能检查清单
214
214
 
215
215
  - [ ] 动画只使用 `transform` / `opacity`
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-018 sha256=c83c67d0a4520a52e8933e5b8785fe3a725e1b47b675cf1f5aa945187c9cfd2c -->
5
+ <!-- microi-progressive:chunk id=ui-design-018 sha256=0775731c9096616e8a72cdc5bcef34d8069d72bee2f2e00d1bc1fe78a82b91e6 -->
6
6
  ## 主题切换实现
7
7
 
8
8
  ### 首选:Microi.UI 运行时
@@ -179,7 +179,7 @@ function toggle() { cur.value = toggleTheme(); uni.showToast({ title: '已切换
179
179
 
180
180
 
181
181
  <!-- /microi-progressive:chunk -->
182
- <!-- microi-progressive:chunk id=ui-design-019 sha256=535f58f5173e164ebe23480d3a65ce894fcf0aab65dddc209dabd86c939cf9b6 -->
182
+ <!-- microi-progressive:chunk id=ui-design-019 sha256=b18f827091a6dd59b45177b6004ba86dfabdb299b9e22ea1f232ea0412765e30 -->
183
183
  ## 命名规范
184
184
 
185
185
  - CSS 变量前缀:`--mci-`
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-020 sha256=25aa81a39c664b1873ff5e7a3c5d0e8ad2b929824c90e16bd020f64c98a34b54 -->
5
+ <!-- microi-progressive:chunk id=ui-design-020 sha256=2efd631603aff04a45f251f0fc06ac83b39b2aebc1551b311920aac4ac6b9273 -->
6
6
  ## 速查:从头搭建一个移动端页面
7
7
 
8
8
  ```vue
@@ -56,7 +56,7 @@
56
56
  ---
57
57
 
58
58
  <!-- /microi-progressive:chunk -->
59
- <!-- microi-progressive:chunk id=ui-design-021 sha256=8a8884b0b064e7805cd03d904541b12da4539e73172d31f00d32c1ecfaee32f6 -->
59
+ <!-- microi-progressive:chunk id=ui-design-021 sha256=210d5091c308f562b56bce93b257a74ed1894cf0f15393f703149c05c3ac2584 -->
60
60
  ## 🚨 移动端低代码项目落地踩坑(必读,2026.5)
61
61
 
62
62
  实战中频繁出现的 7 类问题,统一按以下规则处理。
@@ -122,7 +122,7 @@ Scoped SCSS 中的 `.entry text { font-size: 40rpx; }` 会同时放大图标文
122
122
  - 长任务使用后台任务并持久化进度;普通接口写入后以远端回读为最终依据。
123
123
 
124
124
  <!-- /microi-progressive:chunk -->
125
- <!-- microi-progressive:chunk id=ui-design-022 sha256=4962a1ec7bc49ae1a2706c58fb6f929304ca254e3fd4d8b626fefbc17067bce2 -->
125
+ <!-- microi-progressive:chunk id=ui-design-022 sha256=8f8a9a69e2816682ac2b6a26d932c23240c477191d4f3029a821dafe23250c7b -->
126
126
  ## 🔗 关联字段:保存真实 Id,界面展示可读标签
127
127
 
128
128
  关联字段的数据库事实值通常是 `XxxId`。表单使用 `JoinForm`、`OpenTable` 或带数据源的 `Select` 显示名称,`SelectSaveField` 保存 `Id`,`SelectLabel` 展示名称。不要因为列表默认显示 Id,就强制所有业务表冗余一对可编辑的 `XxxId/XxxName` 字段。
@@ -165,7 +165,7 @@ Scoped SCSS 中的 `.entry text { font-size: 40rpx; }` 会同时放大图标文
165
165
  ---
166
166
 
167
167
  <!-- /microi-progressive:chunk -->
168
- <!-- microi-progressive:chunk id=ui-design-023 sha256=1c731f6915dae4de788e84af3f6a59cf5d116a4de1f9ca5541f13b55110521ca -->
168
+ <!-- microi-progressive:chunk id=ui-design-023 sha256=9767f1e46e8491d63a9f9a00fadef9125d124841a79141f07dd7e4529da3bc25 -->
169
169
  ## 表单布局规范(Column)
170
170
 
171
171
  > 平台默认设计标准:所有 `diy_table` **应使用双列布局** (`Column = 2`),更紧凑现代,符合主流后台 SaaS 视觉密度。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=ui-design-024 sha256=7af53d03d0828232aaf7ab54d6527f5e2cf292d8eb493d75d9ab42adc3030ba3 -->
5
+ <!-- microi-progressive:chunk id=ui-design-024 sha256=19bc007acce56bb980d647154c2eb455e0a24aee5a020c4eed4231baf56e38f4 -->
6
6
  ## 表单分组规范:Tabs vs CollapseGroup(强制)
7
7
 
8
8
  > **核心原则**:默认**不分组** → 小业务域用 **`CollapseGroup` 折叠分组** → 只有足够长或强任务隔离的业务域才用 **`Tabs` 分页**。禁止只按字段数判断:双列布局中 8 个短字段约占 4 行,仍不应独占 Tab;普通业务域通常达到 6 个有效表单行才考虑 Tab。
@@ -53,7 +53,7 @@
53
53
  ---
54
54
 
55
55
  <!-- /microi-progressive:chunk -->
56
- <!-- microi-progressive:chunk id=ui-design-025 sha256=e6e11a8153bc5d1a1c5e9f1868aaae9a101843961fcf94dba42681b0a6091ad7 -->
56
+ <!-- microi-progressive:chunk id=ui-design-025 sha256=3809bc3c37dcfc812f58d9a0f7811a24e612944f2ade248104223fbd4172fa15 -->
57
57
  ## 缓存刷新(解决"我改了字段但页面不变"问题)
58
58
 
59
59
  平台对 `diy_field` 的字段列表有 Redis 缓存,键格式 `Microi:{OsClient}:FormData:diy_table_field_list:{TableId|TableName}`。
@@ -72,7 +72,7 @@ microi_refresh_schema_cache { "tables": ["mall_address", "mall_member"] }
72
72
  ---
73
73
 
74
74
  <!-- /microi-progressive:chunk -->
75
- <!-- microi-progressive:chunk id=ui-design-026 sha256=3d53780b3ae17dabba22a2567d0d6e2c51e4dbce504d6e341b737881a3c4e749 -->
75
+ <!-- microi-progressive:chunk id=ui-design-026 sha256=97d1198e46e1b759a59e47ccfc1a69ada9f068fcd2ce481d4f9b0f53124c5704 -->
76
76
  ## 接口引擎匿名访问
77
77
 
78
78
  登录、注册、首页公共数据等接口必须 `AllowAnonymous=1`,否则未登录用户调用会拿到 `null`:
@@ -86,7 +86,7 @@ microi_set_engine_anonymous {
86
86
 
87
87
 
88
88
  <!-- /microi-progressive:chunk -->
89
- <!-- microi-progressive:chunk id=ui-design-027 sha256=e6e15cc34871821da89f70cb2a5326942d9d90fe99ed5c5a315415ac57f1532c -->
89
+ <!-- microi-progressive:chunk id=ui-design-027 sha256=4ff1aff2f0309fe2bacaae1e12a1ca40875211c010b4041f1d0c11d89634650d -->
90
90
  ## MCI-UI 与第三方组件库策略
91
91
 
92
92
  Microi 的 UI 规范不应该只停留在 skills 文档。面向品牌长期建设时,应形成可复用的 MCI-UI 体系:设计变量、基础样式、组件约定、示例站点、移动端与 PC 网站组件库。
@@ -102,7 +102,7 @@ Microi 的 UI 规范不应该只停留在 skills 文档。面向品牌长期建
102
102
  - `microi.doc` 作为 VitePress 官方文档站,应逐步成为 MCI-UI 的展示入口:组件演示、设计变量、移动端骨架屏、安全区、富文本、上传资源、主题切换都应该有可查看示例,而不是只写在 skill 中。
103
103
 
104
104
  <!-- /microi-progressive:chunk -->
105
- <!-- microi-progressive:chunk id=ui-design-028 sha256=eee54b657b766f1d1ef137fb1df07fc8eec0b5363502838475eda81f9d031512 -->
105
+ <!-- microi-progressive:chunk id=ui-design-028 sha256=3d8b5773f340f253a48a09657a3d01b80eeccd4874c34c641547cb5994dc0a42 -->
106
106
  ## MCI-UI 源码落地位置
107
107
 
108
108
  MCI-UI 已在吾码源码根目录落地:`Microi.UI/`。
@@ -75,6 +75,22 @@ tests/
75
75
 
76
76
  租户 Hook 使用新的稳定 Key;首次安装后归租户维护,同 Key 后续版本不能改回 `Managed`。
77
77
 
78
+ ### 仅共享编译运行产物
79
+
80
+ 消费者只获得运行应用、不安装业务资源时,商城发布显式传
81
+ `RuntimeAssetsOnly=true`。只接受 `ProtocolVersion=3`、`ApplicationType=Web`、
82
+ 显式 `IncludeSource=false` 和已通过提交证明校验的 `SharedPublicRuntime`。
83
+ 源码是否在本地或私有开发端保管,与消费者包不含源码分别验收;此模式本身不要求上传本地源码。
84
+
85
+ - 请求资源选择、历史 `SelectMenu/SelectTable/SelectApiEngine/SelectData` 和
86
+ `PreparedAssets.MenuContract` 均为空,非空时拒绝,不自动抹除;禁止混用 `DatabaseOnlyBuild`。
87
+ - 通过既有 `microi_run_engine.params` 向 `ai_app_publish_store` 传入开关,先
88
+ `InspectResourceSnapshot` 再 `Publish + ExpectedResourceSnapshotHash`,两次使用同一组冻结参数。
89
+ - 回读真实包的十一项资源数组、`SourceFiles/BuildAssets` 均为零,`SourceZip/BuildZip` 为空,
90
+ 只保留共享运行交付。完整数组和兼容条件见 [应用商城 Skill](../../app-store/SKILL.md#仅共享编译运行产物)。
91
+ - 此模式的目标验收检查编译入口、宿主身份和实际服务契约;没有声明的表、菜单、接口及 Hook
92
+ 不应在消费者租户生成。需要租户业务资源时使用普通资源包流程。
93
+
78
94
  ## 官方发布顺序
79
95
 
80
96
  只有当前 MCP 明确绑定官方 `https://api.itdos.com`、`OsClient=iTdos` 且用户已授权写入时才执行:
@@ -380,3 +380,9 @@ return { Code: 1, Data: { Upstream: resp.Content, Summary: summary.Data } };
380
380
  ❌ 内部接口忘开 `StopHttp` → 被外部直接调用绕过校验
381
381
  ❌ 对账接口未配置 `LockKey` → 集群多实例并发执行 → 数据双倍
382
382
  ❌ 文件下载接口未开 `IsResponseFile` → 返回 JSON 而非文件流
383
+
384
+ ## 复盘:后台任务调度路由与执行目标的参数边界
385
+
386
+ - HTTP 调用持久后台任务时使用固定 `/apiengine/platform-background-task?OsClient=` 与 `Action: 'RunApiEngine'`;目标接口放在独立的 `TargetApiEngineKey`,业务参数放在 `Param`,幂等和并发策略放在 `Options`。不可用正文 `ApiEngineKey` 改写路由调度器。
387
+ - 回归至少验证嵌套业务参数与 Options 能完整抵达可信后台原子、同一幂等键返回原任务、匿名及未授权身份拒绝执行。页面提交成功后还需回读后台任务终态,不能将“已排队”视为业务完成。
388
+ - 原子能力若按持久任务记录中的接口 Key 校验可信执行身份,队列目标必须是该原子允许的工作器本身;嵌套调用不会改写任务记录的接口身份。禁止把兼容提交器排入队列后再调用工作器,并通过扩大 Key 白名单或省略栅栏令牌校验掩盖目标不一致。回归应对照队列目标与原子的固定 Key,并走一次真实写流程到终态。
@@ -10,7 +10,7 @@ description: Microi V8 CRUD 接口引擎开发。用于编写服务端 JavaScrip
10
10
  你正在开发 Microi 吾码平台的 V8 接口引擎。接口引擎是运行在服务端的 JavaScript 函数,通过 `V8.FormEngine` 操作数据库,通过 `V8.Result` 或 `return` 返回结果。
11
11
 
12
12
  <!-- microi-progressive:begin -->
13
- <!-- microi-progressive:chunk id=v8-crud-api-000 sha256=d385cc7f9c0048ae1e2263e922ec33a97e8a321bcb88df4dc72a07c269fe1829 -->
13
+ <!-- microi-progressive:chunk id=v8-crud-api-000 sha256=522eba2beee1f0b0df087fe86f1ff70bc74b8e9f68a844a5bea1471389a0df22 -->
14
14
  ## 本地优先与版本头(必做)
15
15
 
16
16
  AI 本地开发接口引擎时,优先修改 `microi-v8-engine/<租户>/<项目>/接口引擎/.../*.js` 本地文件,再通过 MCP 或 VS Code 插件同步到数据库。插件提示“本地和远端不一致”时,必须先读取本地与远端代码并合并有效差异,不能盲目用任一侧覆盖另一侧。
@@ -38,12 +38,14 @@ Microi.net.Api 普通本地启动不要额外设置 `ASPNETCORE_ENVIRONMENT` / `
38
38
  生成接口引擎代码时,代码内容本身(文件头、普通注释、`console.log`、返回 `Msg` 等)不要包含 `Microi`、`吾码` 等平台品牌文字,除非业务数据或字段值本身必须如此。生成代码要有可维护注释:每个 `function` 前写清用途、关键参数和返回值;跨表事务、权限校验、状态机、金额/库存计算、复杂 `_Where` 条件等代码段前写短注释说明业务原因;避免“给变量赋值”这类无信息量注释。
39
39
 
40
40
  <!-- /microi-progressive:chunk -->
41
- <!-- microi-progressive:chunk id=v8-crud-api-001 sha256=38155b3a9dedd994309b15913a160a6647ca4c4a7200546268fe0f5e321c4575 -->
41
+ <!-- microi-progressive:chunk id=v8-crud-api-001 sha256=2e7809a53af3dcbafecc617f40dbb528a892fc734ab6029072d1fcf55e7ed968 -->
42
42
  ## 核心规则
43
43
 
44
44
  - 接口引擎文件是纯 JavaScript(Jint 引擎,非 Node.js)
45
45
  - 全局对象 `V8` 是所有后端能力的入口
46
46
  - 通过 `V8.Param` 获取前端传入的参数(URL参数 / form-data / payload-json)
47
+ - 严格业务字段白名单先逐项排除本入口支持的宿主传输字段:固定 `ApiEngineKey / ApiAddress`、调用类型、设备和 HTTP 请求元数据;不得把整个下划线前缀视为安全字段,不解析 `_RawBody` 重写动作,也不从传输字段取授权。历史调试器的 `TestParam1` 仅兼容 null/undefined、最多 200 字符的字符串、有限数字或布尔值并立即丢弃;对象、数组、超长值和其它未知字段继续拒绝。真实 HTTP 与内部调用都须验收,普通岗位无初始化配置副作用,权限继续读取权威当前用户与目标租户。
48
+ - `V8.Param` 中嵌套 JSON 的 `JObject/JArray` 可能是 Jint 宿主对象,`Array.isArray` 不一定成立。需要严格数组、布尔或结构校验时,在业务入口对有界业务参数使用 `JSON.parse(JSON.stringify(V8.Param || {}))` 转为纯 JSON,再执行原字段白名单、类型、大小与权限校验;不能把只有 `length` 的对象当数组。只规范化业务参数,不复制或信任客户端身份、`V8.CurrentUser`、`V8.DbTrans` 或 `V8.WF`;大文件继续使用专用文件通道。验收须同时覆盖真实 HTTP 宿主集合和离线 JavaScript 数组。
47
49
  - 通过 `V8.CurrentUser` 获取当前登录用户信息
48
50
  - 返回结果统一格式:`{ Code: 1, Data: any, Msg: '成功' }`
49
51
  - 所有 FormEngine 方法在服务器端支持第三个参数传入 `V8.DbTrans`(事务对象)
@@ -51,7 +53,7 @@ Microi.net.Api 普通本地启动不要额外设置 `ASPNETCORE_ENVIRONMENT` / `
51
53
  - 接口内 `return Code=1` 自动提交事务、`Code≠1` 自动回滚事务,**禁止**手动 Commit/Rollback
52
54
 
53
55
  <!-- /microi-progressive:chunk -->
54
- <!-- microi-progressive:chunk id=v8-crud-api-002 sha256=b1ec527e9a5e97b93ed9d59fdd9cd1dfae74149ab438d1a4a9e3b198976bb6a6 -->
56
+ <!-- microi-progressive:chunk id=v8-crud-api-002 sha256=8a2aee7581fd589e15b219f2f79fdb442cb29adba667fc76e1e2e7a1f3bb1b43 -->
55
57
  ## 性能底线(必须自检)
56
58
 
57
59
  - 写接口引擎前必须先做数据访问计划:需要哪些表、哪些字段、预计数据量、是否分页、是否需要缓存。
@@ -71,7 +73,7 @@ Microi.net.Api 普通本地启动不要额外设置 `ASPNETCORE_ENVIRONMENT` / `
71
73
  - 为便于用户核对,可以保存经过空白归一化的用户输入短摘要;摘要按 Unicode 文本元素截取,不能截断 emoji 或代理对,也不要把完整请求 JSON 当摘要。
72
74
 
73
75
  <!-- /microi-progressive:chunk -->
74
- <!-- microi-progressive:chunk id=v8-crud-api-003 sha256=d46768bbaaf8b2ebfdd38e09d11e886b135cb65e78984dbfa67d75ec5f947175 -->
76
+ <!-- microi-progressive:chunk id=v8-crud-api-003 sha256=a60257da3c153170b731b125c9b58614fe84030645c343688f70c9d060b0e0eb -->
75
77
  ## DosResult 状态码
76
78
 
77
79
  | Code | 含义 |
@@ -91,7 +93,7 @@ if (r.Code !== 1) return r;
91
93
  ```
92
94
 
93
95
  <!-- /microi-progressive:chunk -->
94
- <!-- microi-progressive:chunk id=v8-crud-api-004 sha256=6d58584cabd1659ae3af6cbddb797df2c0844c99fd8d2627d02a9c0eae98e8c2 -->
96
+ <!-- microi-progressive:chunk id=v8-crud-api-004 sha256=4efce43d196d67f3b6125747c645477442235b39ecf0ddfca325fb3bd1f444ae -->
95
97
  ## 全局日期函数
96
98
 
97
99
  ```javascript
@@ -101,7 +103,7 @@ DateAdd(new Date(), 'd', 7, 'yyyy-MM-dd') // 加减(s/m/h/d/w/q/M/y)
101
103
  ```
102
104
 
103
105
  <!-- /microi-progressive:chunk -->
104
- <!-- microi-progressive:chunk id=v8-crud-api-005 sha256=35220022799bbed7f9b3d82fe14dc0855aa8f77d0640ac411c61d222d02b0eda -->
106
+ <!-- microi-progressive:chunk id=v8-crud-api-005 sha256=f3d8f0628ddd51845fc700fe63bfa037480f131484c8238874d380cb05a89a92 -->
105
107
  ## 查询单条
106
108
 
107
109
  ```javascript
@@ -123,7 +125,7 @@ return { Code: 1, Data: result.Data };
123
125
  ```
124
126
 
125
127
  <!-- /microi-progressive:chunk -->
126
- <!-- microi-progressive:chunk id=v8-crud-api-006 sha256=510588ad14503caff0a92c614f0e7453bdd343a1e22711c6c5a2b3f8893b5a8d -->
128
+ <!-- microi-progressive:chunk id=v8-crud-api-006 sha256=b8ae0ea6ccd746994ea5fa74f4ae4e6163c1ffd09eb141d6fd5863d77d36f35b -->
127
129
  ## 新增
128
130
 
129
131
  ```javascript
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=v8-crud-api-007 sha256=0c2f3755beaa958d4642f98835743cc37063725746a256db7c18e1e0628a0e90 -->
5
+ <!-- microi-progressive:chunk id=v8-crud-api-007 sha256=66648d1a9ca67cc9cb1cdc0dd231f73c61723fbc48fc197cbd74ba6a2cde4319 -->
6
6
  ## 查询列表(分页)
7
7
 
8
8
  ```javascript
@@ -80,7 +80,7 @@ var result = V8.FormEngine.GetTableDataCount('SysUser', {
80
80
  ```
81
81
 
82
82
  <!-- /microi-progressive:chunk -->
83
- <!-- microi-progressive:chunk id=v8-crud-api-008 sha256=f7141662789ec6013eb3a7723d9c76449f3ef705e76c694e0fa6b1a065869f6a -->
83
+ <!-- microi-progressive:chunk id=v8-crud-api-008 sha256=3ac0bc88bec40eb1a24e0d4829fae58094760efd3a5b77d1cc52d87c5931a58b -->
84
84
  ## 更新
85
85
 
86
86
  ```javascript
@@ -115,7 +115,7 @@ V8.FormEngine.UptTableData(uptList);
115
115
  ```
116
116
 
117
117
  <!-- /microi-progressive:chunk -->
118
- <!-- microi-progressive:chunk id=v8-crud-api-009 sha256=b4c668215e95f9c25b0581251b5ba0a3ac52ac30a5deed994383d22334c3f484 -->
118
+ <!-- microi-progressive:chunk id=v8-crud-api-009 sha256=70e57be16e8676712be6910bfe9d50b87482d02cbbe0ab18a397a58f70916dae -->
119
119
  ## 删除
120
120
 
121
121
  ```javascript
@@ -138,7 +138,7 @@ V8.FormEngine.DelTableData(delList);
138
138
  ```
139
139
 
140
140
  <!-- /microi-progressive:chunk -->
141
- <!-- microi-progressive:chunk id=v8-crud-api-010 sha256=62326b11ca42eb72bddd7e9e72974aa6b1e36f3a85c10ac19e677fed197b03ec -->
141
+ <!-- microi-progressive:chunk id=v8-crud-api-010 sha256=620f7edf12046f4cc4f7142b9e8dbae4495d826b38efb97abdf36fde4206e7d4 -->
142
142
  ## 按条件批量操作
143
143
 
144
144
  ```javascript
@@ -156,7 +156,7 @@ V8.FormEngine.DelFormDataByWhere('SysUser', {
156
156
  ```
157
157
 
158
158
  <!-- /microi-progressive:chunk -->
159
- <!-- microi-progressive:chunk id=v8-crud-api-011 sha256=e3fac807511be04f71971c32cfce5c4b87f7a5a349d171624e5c598452dc1def -->
159
+ <!-- microi-progressive:chunk id=v8-crud-api-011 sha256=8bfaf89705627a0c0dd1a7723c09832cb00a1206910e3ed70ebdbde7ffa832f4 -->
160
160
  ## 事务处理
161
161
 
162
162
  ```javascript
@@ -175,7 +175,7 @@ V8.ApiEngine.Run('other-engine-key', { Id: 'xxx' }, V8.DbTrans);
175
175
  ```
176
176
 
177
177
  <!-- /microi-progressive:chunk -->
178
- <!-- microi-progressive:chunk id=v8-crud-api-012 sha256=c8fe5dc10f0a971d3763b51f54cd77e4f23aed816206edf019db56dd37f603ce -->
178
+ <!-- microi-progressive:chunk id=v8-crud-api-012 sha256=9ddaf59ae87f41e640674a98efe47cee9d9a614b68e32003d229e16d48056609 -->
179
179
  ## 请求内异步与后台处理
180
180
 
181
181
  ```javascript
@@ -193,7 +193,7 @@ return resp.StatusCode >= 200 && resp.StatusCode < 300
193
193
  禁止用 `setTimeout` / `Task.Run` 实现“立即返回、后台继续”:接口返回后 Jint Engine、租户上下文、事务和执行租约会释放。脱离请求的任务使用后台任务、Job、MQ 或 outbox,并按 `EventId` 幂等处理与恢复。
194
194
 
195
195
  <!-- /microi-progressive:chunk -->
196
- <!-- microi-progressive:chunk id=v8-crud-api-013 sha256=2bc08bec5b03ec51679c79db4b654c5c4f66179d8258de61d949d3e3affa379d -->
196
+ <!-- microi-progressive:chunk id=v8-crud-api-013 sha256=6af864eb1b50594c3c0dcae5e550e51bd65e58b5cd1cb792e2dc7cda39432e5f -->
197
197
  ## 动态加字段(运行时改表结构)
198
198
 
199
199
  ```javascript
@@ -213,7 +213,7 @@ V8.FormEngine.AddField({
213
213
  日期时间字段统一使用 `varchar(25)` 保存 `yyyy-MM-dd HH:mm:ss`,组件使用 `DateTime`。禁止 `datetime/date/timestamp/float/double/boolean/string/text/nvarchar` 等平台不允许的物理类型。动态表/字段属于控制面能力,只允许 `Level >= 9999` 的可信管理脚本使用。
214
214
 
215
215
  <!-- /microi-progressive:chunk -->
216
- <!-- microi-progressive:chunk id=v8-crud-api-014 sha256=42b43027eb510916aed85a3a21ea8a1c1c7697581ac8c48863e8ba8d0c793784 -->
216
+ <!-- microi-progressive:chunk id=v8-crud-api-014 sha256=c2d308a122ce6bb284fef1cecc98aabb861cafcd7b2f6c8e12cfda664fdb359f -->
217
217
  ## 旧版 _Where 兼容
218
218
 
219
219
  ```javascript
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=v8-crud-api-015 sha256=f68c7713878a84a265a5185940d25db21525e73a7dba6d05ba6f82030b96e60a -->
5
+ <!-- microi-progressive:chunk id=v8-crud-api-015 sha256=75eb96d81537ac44c7bca1a97a557c427baa198434cfab003e91982b8b81c419 -->
6
6
  ## _Where 条件语法速查
7
7
 
8
8
  ```javascript
@@ -36,7 +36,7 @@
36
36
  **支持的操作符:** `=`, `==`, `<>`, `!=`, `>`, `>=`, `<`, `<=`, `Like`, `NotLike`, `StartLike`, `EndLike`, `In`, `NotIn`
37
37
 
38
38
  <!-- /microi-progressive:chunk -->
39
- <!-- microi-progressive:chunk id=v8-crud-api-016 sha256=6fe2c6360151a569c46bdc2234b622f7ae8a2f3f76376fda5d90b2ab10ac4e51 -->
39
+ <!-- microi-progressive:chunk id=v8-crud-api-016 sha256=820f49da26c6be5baa52520152780fc155ed84e747e89a1f50b954d3112fa202 -->
40
40
  ## 注意事项
41
41
 
42
42
  - `_Where` 是参数化查询,自动防 SQL 注入,**不要拼接 SQL 字符串**
@@ -12,7 +12,7 @@ description: Microi V8 Office 导入导出指南。用于使用 V8.Office 导出
12
12
  文档维护必须优先更新既有后端 V8 主文档 `microi.doc/docs/doc/v8-engine/v8-server.md`,再按需补充已有专题页;不得为同一组 `V8.Office` API 新建重复 Markdown 页面或文档路由。只维护 `microi.doc/docs/doc/` 中文文档,`docs/en/` 由官网统一翻译生成,不手工同步英文版。
13
13
 
14
14
  <!-- microi-progressive:begin -->
15
- <!-- microi-progressive:chunk id=v8-export-import-000 sha256=e4f13e7292335a4ea683c34ae13c3f794bdc297079a61c4099e3f547eb5e07ac -->
15
+ <!-- microi-progressive:chunk id=v8-export-import-000 sha256=ea1d8edd1c2da7c7aeea5aa415d7b11d64c6243752b48b50667f3ba80be76e5b -->
16
16
  ## 核心 API
17
17
 
18
18
  标准表格导出使用 `.xlsx` 文件名及对应 OpenXML MIME。历史平台生成的“XLSX 内容但扩展名为 .xls”仅在 Excel 导入入口兼容:必须验证 OpenXML 工作簿包结构,再由 NPOI 解析;真正的 `.xls` 继续支持。禁止取消文件签名检查或把此兼容扩张到 OnlyOffice 回源、任意 ZIP、HTML/可执行文件。
@@ -27,7 +27,7 @@ description: Microi V8 Office 导入导出指南。用于使用 V8.Office 导出
27
27
  | `V8.Office.SendEmail({...})` | 发送邮件(HTML 内容) |
28
28
 
29
29
  <!-- /microi-progressive:chunk -->
30
- <!-- microi-progressive:chunk id=v8-export-import-001 sha256=9e166678e0cbc3b96814e9945a66c93426dd5ffb6a3c98bfbfe8dcb9e92ea5f9 -->
30
+ <!-- microi-progressive:chunk id=v8-export-import-001 sha256=71c2d539b2dbc034927410e093775be9251b5883e2551a77d87d4e6121eed73a -->
31
31
  ## 自定义导出 Excel(接口引擎)
32
32
 
33
33
  平台默认导出仅支持表格已展示的字段。如需自定义(如列重排、合并、计算列、图片),用接口引擎替换【导出接口】。
@@ -132,7 +132,7 @@ return {
132
132
  优先级:列级样式覆盖全局样式;`Width` 覆盖 `DefaultColumnWidth`;开启 `AutoSize` 后以自动宽度为准,再应用 `MinWidth/MaxWidth`。不传这些新参数时保持旧版导出行为。
133
133
 
134
134
  <!-- /microi-progressive:chunk -->
135
- <!-- microi-progressive:chunk id=v8-export-import-002 sha256=c18ba2c06baf3e7fb2cea79fe46637d3223d1f6b6454aa46057cfb80addd352a -->
135
+ <!-- microi-progressive:chunk id=v8-export-import-002 sha256=d26555b9a045d6a5920cf3dfd69cd20e2351aa3bab9c8499d3a5d79f58ffa6cd -->
136
136
  ## 文件响应与前端调用约定
137
137
 
138
138
  - 接口引擎必须开启【响应文件】,并返回正确的 `FileName`、`ContentType`、`FileByteBase64`。
@@ -154,7 +154,7 @@ return {
154
154
  | `NumberFormat/HeaderStyle/Style` | 数字格式与列级样式 |
155
155
 
156
156
  <!-- /microi-progressive:chunk -->
157
- <!-- microi-progressive:chunk id=v8-export-import-003 sha256=5975618ee1d3b9a4828d9f88cf35bc4efe4a8d7f45b94bd40077fa50b1d89c1f -->
157
+ <!-- microi-progressive:chunk id=v8-export-import-003 sha256=9adee471586dce589c6cf5dcaa32820ad05025c670ca885801cfa4711c584cdb -->
158
158
  ## 解析上传的 Excel / CSV(导入)
159
159
 
160
160
  ```javascript
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=v8-export-import-004 sha256=db7feb545a95cfb37daca76a8bd25c386f508be3d26914d8dcbdda860c8d2b05 -->
5
+ <!-- microi-progressive:chunk id=v8-export-import-004 sha256=828669707ddc19320767ac4b787383136ec820deb6ad1dc861b42b5d39097677 -->
6
6
  ## `ExcelLayout` 高级自由布局
7
7
 
8
8
  审批单、套打表、主子表、多级表头和复杂合并单元格不要硬塞入 `ExcelData + ExcelHeader`。改用 `ExcelLayout`:
@@ -94,7 +94,7 @@ V8.Result = exportResult;
94
94
  预览 URL 形式:`/?OsClient=tenant_demo#/online-office?fileUrl=<URL编码后的接口地址>&fileName=示例.xlsx&fileType=xlsx&canEdit=0`。`canEdit` 只是编辑申请,不是授权依据;未登录时即使传 `canEdit=1` 也必须强制只读,并隐藏左侧菜单、顶部导航和页签。公网匿名文件接口应配置频率限制或让导出逻辑足够轻量,不能依赖进程内变量控制并发。
95
95
 
96
96
  <!-- /microi-progressive:chunk -->
97
- <!-- microi-progressive:chunk id=v8-export-import-005 sha256=28d8f6a66069fa5774f090cab74c5231228f48425caa0145729c86a8405e535e -->
97
+ <!-- microi-progressive:chunk id=v8-export-import-005 sha256=401c2cd0a4b9ea45b1709d14277cf71d74ab29dcda72d404f452a0e67b56eddc -->
98
98
  ## 多 Sheet Excel 导出
99
99
 
100
100
  `ExcelSheets` 中每项是一张独立工作表,可以使用 `ExcelLayout` 高级布局,也可以传 `ExcelData + ExcelHeader` 标准表格;标准表格还可传 `FormEngineKey`、查询条件等让后端自行查询。两种模式可以在同一工作簿混用。`Sheets` 是兼容别名;新代码统一使用 `ExcelSheets`。
@@ -145,7 +145,7 @@ return {
145
145
  图片列:`ImgUpload.Multiple=1` 会按最大图片数展开为多列并合并表头;列上的 `Width` 会应用到每个展开列,`DataRowHeight/RowHeight` 控制图片行高。自动列宽会遍历单元格,大批量导出不要对所有列盲目开启。
146
146
 
147
147
  <!-- /microi-progressive:chunk -->
148
- <!-- microi-progressive:chunk id=v8-export-import-006 sha256=fd97ce1f87c32cad8539f3307bfdf679b0abc9e747281f6aaf06e7d322046c8f -->
148
+ <!-- microi-progressive:chunk id=v8-export-import-006 sha256=1a74f8359e67ca4b270de414000f8416a7564c1595189c091281d0fea6dd4a45 -->
149
149
  ## Word 导出
150
150
 
151
151
  新代码使用对象参数的 `ExportWord`;`ExportWordText` 继续保留,只用于兼容旧版纯文本场景。Word 的页面边距、图片宽高单位为厘米,字体大小单位为磅。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=v8-export-import-007 sha256=33d817757174d42d2833f2ce3bbca6d8da341938f242d48bdad3891d6ab25230 -->
5
+ <!-- microi-progressive:chunk id=v8-export-import-007 sha256=d2958751b32d5143693cbdb6fb72aeca97f450c80c360aa7d826d4f6595c0ab1 -->
6
6
  ## PowerPoint 导出
7
7
 
8
8
  PowerPoint 的幻灯片尺寸、图片/表格位置与宽高单位均为英寸,默认画布为 16:9(13.333 × 7.5)。
@@ -67,7 +67,7 @@ return {
67
67
  `Layout` 支持 `TitleSlide`、`TitleAndContent`。单页支持独立覆盖 `BackgroundColor/TitleColor/TextColor/TitleFontSize/BodyFontSize`。`TextItems` 支持 `Text/Level/Bullet/Bold/Italic/FontSize/FontColor/Alignment`;表格支持位置、尺寸、列宽、表头/单元格颜色;图片支持 Base64/data URI、位置和尺寸。
68
68
 
69
69
  <!-- /microi-progressive:chunk -->
70
- <!-- microi-progressive:chunk id=v8-export-import-008 sha256=4dcd566dd9c5b38703831c67cc5cc2f2a99b0e7121fe2d2be2c068cfc8f739c3 -->
70
+ <!-- microi-progressive:chunk id=v8-export-import-008 sha256=af467dae5c05433fe3be2759f48a6ed09f67be04f620791652033804535ea39c -->
71
71
  ## 完整导入模式(含进度跟踪)
72
72
 
73
73
  模块引擎【导入接口替换】+【导入进度接口替换】可实现实时进度提示。
@@ -139,7 +139,7 @@ return { Code: 1, Data: stepStr ? JSON.parse(stepStr) : [] };
139
139
  ```
140
140
 
141
141
  <!-- /microi-progressive:chunk -->
142
- <!-- microi-progressive:chunk id=v8-export-import-009 sha256=ba923bb2b464910d063e94a6f88dbb9b3229739cb5e39611c8cf275bc77b743c -->
142
+ <!-- microi-progressive:chunk id=v8-export-import-009 sha256=f1583c2154c79acea7445119be851654d0cec81620fe0c1f0fadeee90f330bbf -->
143
143
  ## 接收并下载文件(HTTP 链接转 Excel)
144
144
 
145
145
  ```javascript
@@ -152,7 +152,7 @@ var base64 = System.Convert.ToBase64String(bytes);
152
152
  ```
153
153
 
154
154
  <!-- /microi-progressive:chunk -->
155
- <!-- microi-progressive:chunk id=v8-export-import-010 sha256=372a60e928fe1b46d20ed8a7b8bd3736b2bc96465d6e6645c4ae849ca71ce987 -->
155
+ <!-- microi-progressive:chunk id=v8-export-import-010 sha256=0df463f76ba60100c087364b48dab1886d1315b093577ea9485471b34a7a3f6c -->
156
156
  ## 子表导入自动关联主表
157
157
 
158
158
  当单独导入 `TableChild` 子表时,Excel 经常没有主表 Id,只带项目编号、客户名称等业务字段。默认导入引擎支持通过子表控件配置批量反查主表,并自动补齐子表外键。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=v8-export-import-011 sha256=a98c3b7c70f039fdd37128c3254acebd6fb527e78900f8fb38294e03baca083e -->
5
+ <!-- microi-progressive:chunk id=v8-export-import-011 sha256=13a671d4b3628e57bdac68f283af740c405faf3a004ded4dcfa13c638b341505 -->
6
6
  ## 安全 / 性能注意
7
7
 
8
8
  - ❌ 不要在循环中逐条 `AddFormData` 而不传 `V8.DbTrans`:每条独立事务,性能差且部分失败会留脏数据