@microi.net/cli 6.1.7 → 6.1.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/.mcp.json +1 -1
- package/.workbuddy-plugin/marketplace.json +2 -2
- package/.workbuddy-plugin/plugin.json +1 -1
- package/assets/build-meta.json +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-server.js +101 -96
- package/scripts/mcp-trae-windows-launcher.cmd +21 -21
- package/scripts/microi-cli-mcp.js +7 -7
- package/scripts/microi-skills.meta.json +257 -239
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +90 -68
- package/skills/ai-engine/SKILL.md +303 -293
- package/skills/ai-engine/references/ai-employees.md +4 -0
- package/skills/app-store/SKILL.md +3 -1
- package/skills/job-engine/SKILL.md +12 -0
- package/skills/message-notification/SKILL.md +2 -0
- package/skills/microi-client-frontend/SKILL.md +260 -252
- package/skills/microi-codex/SKILL.md +8 -0
- package/skills/microi-datasource-mapping/SKILL.md +4 -0
- package/skills/microi-deployment/SKILL.md +85 -5
- package/skills/microi-deployment/references/deployment-matrix.md +27 -0
- package/skills/microi-deployment/references/offline-installer.md +64 -0
- package/skills/microi-docs-coverage/references/capability-map.md +3 -3
- package/skills/microi-form-engine/SKILL.md +13 -0
- package/skills/microi-form-engine/references/component-catalog.md +1 -1
- package/skills/microi-frontend-sdk/SKILL.md +12 -0
- package/skills/microi-microservice/SKILL.md +18 -1
- package/skills/microi-system-delivery/SKILL.md +8 -6
- package/skills/microi-system-delivery/references/delivery-pitfalls.md +50 -0
- package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +11 -9
- package/skills/microi-uniapp-frontend/SKILL.md +18 -3
- package/skills/microi.v8.js +445 -0
- package/skills/module-engine/SKILL.md +4 -5
- package/skills/page-engine/SKILL.md +233 -215
- package/skills/print-engine/SKILL.md +5 -0
- package/skills/report-engine/SKILL.md +9 -0
- package/skills/report-engine/scripts/check-demo-coverage.mjs +88 -0
- package/skills/report-engine/scripts/check-demo-coverage.test.mjs +52 -0
- package/skills/scripts/sync-embedded-skills.mjs +4 -1
- package/skills/scripts/sync-public-resource-router.mjs +29 -0
- package/skills/system-observability/SKILL.md +18 -2
- package/skills/ui-design/SKILL.md +1 -1
- package/skills/uniapp-mall-assets/SKILL.md +5 -0
- package/skills/v8-file-upload/SKILL.md +32 -31
- package/skills/v8-file-upload/references/hotspot-offload-operations.md +118 -0
- package/skills/v8-saas-multi-tenant/SKILL.md +17 -4
- package/skills/v8-security/SKILL.md +20 -5
- package/skills/vision-engine/SKILL.md +114 -3
- package/skills/vision-engine/references/architecture-and-acceptance.md +8 -0
- package/skills/workspace-conventions/SKILL.md +9 -3
- 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 +4 -4
- package/skills/workspace-conventions/references/progressive-04-/345/267/245/344/275/234/345/214/272/344/270/216/345/271/263/345/217/260/344/270/223/351/241/271/344/277/235/351/232/234.md +22 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
统计都应来自真实字段或真实接口引擎;配置写 `diy_table`,禁止写入 `sys_menu`。即使用户
|
|
8
8
|
没有逐项指定,也必须写入类型感知的合理默认值,不能交付空 Banner。
|
|
9
9
|
|
|
10
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-005 sha256=
|
|
10
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-005 sha256=c85ae239b7d277bc100e083c31b0846b832f786b9734e9dbb21634c653c915be -->
|
|
11
11
|
## 完整系统开发默认交付清单(原推荐提示词 1–8)
|
|
12
12
|
|
|
13
13
|
以下八项来自官网最后编号版推荐提示词,是完整系统新建/开发的默认交付要求。
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
- 在已授权生成验收数据的开发/验收租户,每张业务表准备至少 100 条左右可复现数据,已有足量数据优先复用、缺量才补齐;主子表关联、流程操作、状态流转、金额/库存等业务关系必须合理。字典/系统配置不为凑数量伪造无效选项;逐表报告数量及确有业务基数限制的例外。
|
|
27
27
|
- 业务界面和记录名称使用正常业务语义,不显示“测试001”等测试字眼,呈现完整运行环境;数据来源和可清理种子标识保留在验收记录中。不得把验收数据灌入未授权的生产库或声称其为真实交易。
|
|
28
28
|
- 补齐全部选项/关联字段的数据源,需要多个账号、角色和权限路径时一并创建并验收。
|
|
29
|
+
- 数据数量与时间覆盖分开验收:以目标业务时区的当前日期作为本次模拟数据锚点,覆盖报表默认的本日/本周/本月及关键状态、部门/仓库等维度;固定历史日期的百条数据不能证明当前报表可用。跨月/跨年后先盘点缺口,只补已授权的模拟数据,不迁移真实历史交易或修改统计值。日期与时间精度一致,承诺时间不得早于下单时间;状态、金额、库存通过正常业务事件/命令产生。执行 `report-engine/scripts/check-demo-coverage.mjs` 并保存实际服务端与原菜单对账证据。
|
|
29
30
|
|
|
30
31
|
### 3. 自主推进与 MCP 生成闭环
|
|
31
32
|
|
|
@@ -74,28 +75,29 @@
|
|
|
74
75
|
2. 菜单骨架使用独立 Manifest,只包含 `SecondMenu` 父菜单、用户可见业务/报表的 `Component` 占位叶菜单及必要菜单权限,不预绑定尚不存在的业务表、页面或微服务。独立执行 `microi_plan_system` 和 `dryRun`,在已授权的开发租户范围内优先落地,让用户立即看见功能结构。占位叶菜单使用 `OpenType=Component`、`ComponentPath=/ai-engine/developing`、`IsMicroiService=0`,并保存各自独立、稳定的业务 `Url`。一个共享 Vue 组件服务多个菜单,不能共用业务 URL 或复制多份源码。隐藏 `TableChild` 等数据/授权载体不使用占位组件,仍按原规范保留 `Diy`、真实表绑定及 `Display=0/AppDisplay=0`。
|
|
75
76
|
3. 共享页面在路由内容区按可用宽高 100% 展示“AI 正在开发中…”及当前菜单标题。菜单身份与名称来自平台生成的 `route.meta.Id/title`,不能从任意 URL 参数拼接 HTML。持续轻量动画必须支持平台明暗主题、窄屏和减少动态效果偏好;动画只表达等待,不模拟真实开发进度。没有可回读任务状态时不展示虚构百分比、完成数、倒计时或预计完成时间。
|
|
76
77
|
4. 菜单写入后回读 `Id/ParentId/Url/OpenType/ComponentPath/IsMicroiService/Sort` 与角色权限,逐个点击检查身份、标题、访问标签、刷新及切换。随后用分阶段最终资源 Manifest 开发业务表、接口和页面;先回读真实资源 Id,再更新已有菜单绑定,不用尚不存在的资源约束阻塞菜单骨架生成。蓝图记录每个菜单的实际状态、最终绑定及证据;占位不计作已开发页面或已交付功能。
|
|
77
|
-
5.
|
|
78
|
-
6.
|
|
78
|
+
5. 真实资源可运行后立即回读资源 Id,并更新同一条 `sys_menu` 的 `OpenType/ComponentPath/IsMicroiService` 或真实 MicroService/界面引擎/报表绑定,让用户从原菜单直接查看开发预览;不等待全部业务、权限和截图验收结束才切换,也不能只提供候选 URL、让原菜单继续显示“AI 开发中”。保持 `Id/ParentId/Url/Sort`、角色/按钮权限及关联;刷新菜单、移除旧占位缓存并回读,再从原菜单和原 URL 持续验收。MicroService 先发布并验证运行产物及页面绑定;仅有源码或资源尚不可运行时才保留占位。蓝图区分“可预览/待验收”和“验收通过”,展示预览不能冒充最终完成。
|
|
79
|
+
6. 预览中的局部缺陷保留为待修复项;若新绑定导致白屏、资源不可达或越权,精确恢复该菜单最近可运行且授权正确的绑定,确无可运行版本时才恢复占位。中断、失败或未完成保持诚实记录,存量正常功能继续可用;最终逐菜单验收,不能隐藏未完成菜单或把占位、预览可见视为通过。
|
|
79
80
|
|
|
80
81
|
占位组件是吾码框架前端能力,目标前端版本必须实际包含 `/ai-engine/developing`。
|
|
81
82
|
旧前端先按用户授权完成框架升级;未升级时先交付菜单规划并准确记录版本依赖,保留原可用路由,不能创建指向不存在组件的白屏菜单或把任意外部 URL 当作等价交付。检查版本不授权自动升级客户容器。具体配置读取 `module-engine`。
|
|
82
83
|
|
|
83
84
|
### 默认交付业务统计、老板经营与领导管理报表
|
|
84
85
|
|
|
85
|
-
-
|
|
86
|
+
- 完整系统蓝图必须主动设计统计报表,覆盖需求相关的业务运营统计、老板经营决策和领导管理分析,不等用户逐条要求。展示技术按 `microi-microservice` 的三方式决策:精细定制优先微服务,原生组件完整覆盖目标时使用界面引擎(Page Engine),接口返回HTML用于明确的独立嵌入或兼容需要。按业务域、角色和决策任务组织报表菜单;允许复用同一真实指标源并按角色提供视图,避免为了凑数量重复页面。逐项列出各类报表及适用指标;不适用指标说明业务依据,不伪造不存在的利润、成本、业绩或风险数据。
|
|
86
87
|
- 业务统计关注数量、金额、状态、趋势、分布、效率和异常;老板经营视角关注经营规模、收入/成本/利润(存在可核对来源时)、回款/现金与经营风险;领导管理视角关注部门/人员绩效、任务进展、待办/逾期、资源利用及达成情况。最终指标由需求与实际业务模型决定,不能机械套用无关行业指标,也不能只交一张无意义总数卡。
|
|
87
88
|
- 每项指标在蓝图中定义名称、数据源、计算公式、单位/精度、业务状态、时间字段、时区、区间边界、维度和可见角色;比较类指标明确同比/环比基期。前端筛选与后端查询口径一致,日期、部门/人员/项目等条件在服务端生效;统计接口继续按当前租户和真实用户数据范围授权,不能因老板/领导菜单名称就授予跨租户或全库读取。
|
|
88
|
-
-
|
|
89
|
+
- 使用真实业务表、数据源和接口引擎批量聚合,不下载全量明细在前端拼统计,不用随机数、模板演示数或本页合计冒充全量指标。界面引擎或微服务负责完整看板、图表、趋势与分析;需要分页明细、汇总表、查询和导出时配合 `report-engine` 的虚拟报表。列表 `StatisticsFields`、模块 Hero、菜单/按钮角标只是局部提示,不能替代这三类决策报表。
|
|
89
90
|
- 报表必须有合理的周期/维度筛选、加载、空数据、无权限和失败状态。真实零值显示为零;未配置、缺数据源或请求失败不能伪装为零。支持从指标/图表穿透到授权业务明细,带上同一筛选条件,并校验明细合计与统计一致;确无可穿透明细的汇总明确说明来源与限制。
|
|
90
|
-
-
|
|
91
|
+
- 默认周期必须在实际验收日期复测。每个独立组件都核对日期请求、指标、状态分布、趋势、排行和分页明细,而非仅核对顶部卡片;跨月后不能静默改成全历史、复制旧月份数值或把查询失败转成零。月初只有一天趋势是正常结果,可切本周验证多日趋势;确无业务的去年/未来区间保留真实空态。
|
|
92
|
+
- 先把报表入口纳入菜单骨架,再开发真实指标与页面。通过管理员、老板/领导业务角色、普通及无权限角色测试,覆盖时间边界、筛选组合、零/空/失败、跨部门/跨租户拒绝、明细对账、电脑/移动与明暗主题截图;界面引擎回读 `mic_page`,微服务回读私有源码、公有运行产物和页面路由,两者都回读绑定菜单、数据源及统计接口。示例 JSON 或独立预览只证明局部排版,不能证明真实报表已交付。细节读取 `page-engine`、`microi-microservice`、`report-engine` 和 `datasource-engine`。
|
|
91
93
|
|
|
92
94
|
### 新增验收清单
|
|
93
95
|
|
|
94
96
|
- [ ] 原 1–8 项逐条仍有实现与验收记录,没有被两项增补取代。
|
|
95
97
|
- [ ] 菜单骨架独立 Manifest 通过 plan/dryRun 并在授权范围落地,没有预绑定不存在的资源;仅可见业务/报表叶菜单使用占位及 `IsMicroiService=0`,URL 各自独立,隐藏数据载体和存量已完成功能保持正确绑定。
|
|
96
98
|
- [ ] 开发中页填满可用内容区,当前菜单身份/标题正确;持续动画、明暗/窄屏和减少动态效果可用,无假进度。
|
|
97
|
-
- [ ]
|
|
98
|
-
- [ ]
|
|
99
|
+
- [ ] 可运行页面已立即绑定同一原菜单供预览,保留菜单身份、URL、层级、权限及关联;刷新菜单/旧缓存后从原入口持续验收。可预览与验收通过分别记录,不存在候选地址可看而原菜单仍占位的遗留项;失败优先恢复最近可运行的正确绑定。
|
|
100
|
+
- [ ] 三类统计报表已按需求覆盖并记录微服务/界面引擎的选择依据,指标口径与数据来源完整,筛选和权限在服务端生效。
|
|
99
101
|
- [ ] 统计与同口径明细对账,穿透、时间边界、零/空/失败、角色隔离及跨端截图通过;局部/只读任务没有超范围创建资源。
|
|
100
102
|
|
|
101
103
|
## 标准工作流
|
|
@@ -106,7 +108,7 @@
|
|
|
106
108
|
- 用 `business-blueprint` 或同等文档固定:角色、菜单、状态机、关键表、接口引擎、按钮、任务调度、业务时间窗口、费率和权限边界。
|
|
107
109
|
- 用户新增或纠正规则后,立即同步到蓝图/方案文档,避免后续实现忘记业务口径。
|
|
108
110
|
- 生成系统前,用 MCP 读取现有 `diy_table`、`diy_field`、`sys_menu`、`sys_apiengine`,不要重复造表或编造字段。
|
|
109
|
-
-
|
|
111
|
+
- 按上方增补要求形成完整菜单树、逐菜单最终页面计划,以及业务/老板/领导三类统计报表、展示方式选择与指标口径。
|
|
110
112
|
|
|
111
113
|
### 2. MCP 建模阶段
|
|
112
114
|
|
|
@@ -9,12 +9,24 @@ description: Microi 吾码 UniApp/H5/App/小程序前端规范。用于创建或
|
|
|
9
9
|
|
|
10
10
|
本 Skill 适用于任何 Microi 吾码 UniApp/H5 项目,包括商城、OA、ERP、MES、CRM、互联网项目、预约项目等。不要把规则写成某一个业务应用专属规范。
|
|
11
11
|
|
|
12
|
+
## 视频选择与开发者工具兼容
|
|
13
|
+
|
|
14
|
+
视频上传必须区分微信开发者工具与真机:只在微信运行时明确返回 `platform='devtools'`
|
|
15
|
+
时,允许使用 `chooseMessageFile({count:1,type:'video'})` 选择电脑视频,绕开工具内部
|
|
16
|
+
视频信息解析失败。优先读取 `getDeviceInfo`,旧基础库兼容 `getSystemInfoSync`;不能
|
|
17
|
+
按模拟器显示的手机型号或窗口宽度判断。真机继续相册/拍摄,取消、权限拒绝或接口缺失
|
|
18
|
+
均不自动切到聊天文件;H5 保留浏览器文件选择。选择结果统一进入现有 SDK 上传和字段
|
|
19
|
+
授权链路。开发工具仍须拒绝误选图片、空结果和复制失败,非权限错误不得提示检查权限,
|
|
20
|
+
保留可诊断的原始错误。回归同时覆盖开发工具、iOS/Android、H5、取消和选错文件。
|
|
21
|
+
|
|
12
22
|
## 图片上传默认参数(强制)
|
|
13
23
|
|
|
14
24
|
UniApp/H5/小程序必须通过项目统一 `microi.v8.js` 的 `V8.uploadFile` / `V8.uploadFiles` 上传图片。调用方省略 `options.preview` 时,SDK 必须发送 `Preview=true` 并默认使用 `img` 路径;只有显式 `preview:false` 才允许关闭。服务端仍是最终事实源:即使旧客户端完全不传该字段,也要默认压缩到约 `500 KB`、最长边约 `1920 px`,并在 HDFS 私有桶保留一份 `_origin` 原图。页面不得为了“上传成功”自行改成 `preview:false`,也不得把私有原图或临时签名地址保存进业务字段。
|
|
15
25
|
|
|
16
26
|
动态表单上传还必须把控件已有的文件访问上下文透传为 `formFieldContext`:至少包含 `FormEngineKey + FieldId + SysMenuId`,编辑时再带 `FormDataId`,TableChild 再带 `_TableChildAuth`。后端回读 `diy_field.Config` 后决定“禁止匿名访问”与真实桶;普通用户不能被一刀切为私有桶,客户端自己传 `Limit=false` 也不能放宽私有字段。没有字段上下文的聊天、打卡、临时业务上传仍按普通私有上传处理。
|
|
17
27
|
|
|
28
|
+
图片安全校验开启时采用简单审核交互:服务端明确通过后才写入表单值;表单和批量操作按 `pendingCount`(包含上传与审核)及 `failedCount` 拦截提交,不能只检查 `uploadingCount`。客户端短轮询预算耗尽不等于服务端审核失败。`waitForContentSecurityBatch` 显式传 `deferContentSecurityReview:true` 时保留 `Pending` 和审核编号,并返回实际 `PendingCount`;该传输选项不授权待审业务保存,默认等待审核的旧调用保持超时失败契约。上传组件应支持有界刷新和历史已保存待审图片的状态恢复,取消/换图/离页后的迟到结果不得回写。只有服务端明确通过才解除审核占位,按原字段权限取预览地址;预览取址失败不能吞掉已确认的审核状态。拒绝、错误或明确超时仍失败关闭。回归覆盖待审提交拦截、通过后保存、终态、网络失败、重复刷新、删除与离页,不通过延长前台计时或把 Pending 改为 Passed 掩盖回调问题。
|
|
29
|
+
|
|
18
30
|
## 平台方通用 App 登录连接器(明确例外)
|
|
19
31
|
|
|
20
32
|
登录页默认不得展示 ApiBase、OsClient 或调试配置;但用户明确要求、且安装包由 Microi 平台方作为多租户聚合客户端发布时,允许仅在 `APP-PLUS` 登录页提供通用连接器。协议必须使用固定 `https://` / `http://` 下拉框,地址框禁止重复输入协议,HTTPS 默认,HTTP 显示明文风险并二次确认;H5、小程序和客户专属包不得因此自动开放。候选地址先匿名读取 `GetSysConfig`,验证成功后再持久化。真正切换时必须清除旧 DiyToken、用户、SignalR、菜单/元数据/页面缓存,按 `ApiBase + OsClient` 隔离记住的账号及 RSA 密文,并用端点代次拒绝切换前的迟到响应。支持任意 HTTP 时,最终 IPA 必须显式包含 ATS 例外,Android 安装包必须显式包含 cleartext 例外;不需要任意 HTTP 的正式包应保持平台默认安全策略,iOS ATS 例外还必须在 App Store 审核中说明。
|
|
@@ -26,7 +38,7 @@ UniApp/H5/小程序必须通过项目统一 `microi.v8.js` 的 `V8.uploadFile` /
|
|
|
26
38
|
创建、重构或修复任何 Microi 移动端项目前,必须同时应用 `microi.skills/microi-mobile-app-quality/SKILL.md`,并读取其[首版交付与外部服务验收](../microi-mobile-app-quality/references/mobile-first-delivery.md)。手机号快捷登录、会话续签、导航几何、真实地图、页面动效和公开发布回读从首版纳入需求与测试,不能先交静态占位版,再等待用户逐页指出问题。涉及后台与第三方服务时按实际业务范围执行,既有授权和租户策略优先。
|
|
27
39
|
|
|
28
40
|
<!-- /microi-progressive:chunk -->
|
|
29
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=
|
|
41
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=8b6124cf7267beae98f0321780bc1aece9494c669e0337a96a61f50f5cbf62e6 -->
|
|
30
42
|
## 标准产品、视图协议与租户扩展
|
|
31
43
|
|
|
32
44
|
地图提供行政区与附近距离两类筛选时,应复用省市区字典,并允许省、市、区逐级选“全部”;省级“全部”须显式启用,不能改变普通地址录入的默认值。行政区域查询不依赖手机定位、不叠加附近半径,空地区仍可保留既有附近模式。范围筛选必须在原有菜单/租户/行权限内执行,分批读取并丢弃迟到响应;来源列表存在同表不同菜单时,地图入口与查询应保留准确的来源菜单和固定业务条件。验收覆盖全国、全省、全市、区县、直辖市、定位拒绝、旧接口兼容和快速切换。
|
|
@@ -45,6 +57,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
45
57
|
统一视图协议归属 `sys_menu`。使用 `EnableViewSchema`、`ViewSchema`、`ViewSchemaVersion`、`ViewConfigVersion` 等明确物理字段保存 `List/Card/Detail/Edit`、`PC/Mobile/All`、角色视图、Hero、MetricStrip、ActionGrid 和 ResponsiveSection。`diy_table/diy_field/sys_menu.DiyConfig` 已废弃,禁止继续读取或写入。
|
|
46
58
|
|
|
47
59
|
- 后台新增字段或修改名称、顺序、显隐、组件、校验、数据源和分组后,客户端必须通过版本指纹刷新定义,无需重新发版。
|
|
60
|
+
- 关联表单尚未选择父记录或草稿未就绪时,租户可通过 `getRelatedPresentation.blockedReason` 保留分组标题并显示前置提示,平台延迟挂载关联控件;不要用 `visible:false` 表达暂时不可操作。局部保存必须区分未加载字段与用户明确清空,隐藏关联 Id 的选型变更须通过受控提交钩子携带;回归覆盖不同新增入口、初始化失败/恢复及部分字段投影。
|
|
48
61
|
- 表单元数据必须通过 `V8.FormEngine.GetDiyTableModel/GetDiyFieldList` 访问当前 FormEngine 缓存入口,并携带真实菜单授权上下文;页面和控件不得用普通 `GetFormData/GetTableData` 直查受保护的 `diy_table/diy_field`,也不得散落裸元数据接口 URL。
|
|
49
62
|
- ViewSchema 未配置、配置不完整或网络暂时失败时,必须回退到菜单移动字段和完整 `diy_field` 定义;定制详情还必须把未显式编排的新字段追加到折叠分组,不能静默丢字段。
|
|
50
63
|
- 列表、详情、编辑和保存请求应携带真实授权 `_SysMenuId`;客户端不能自行声明角色、数据范围或表权限,服务端仍是最终权限边界。
|
|
@@ -52,6 +65,8 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
52
65
|
- 原生详情进入编辑后,取消丢弃未保存字段并返回同一详情/Tab,保存成功后回读服务端结果并通知来源列表刷新;直接新增/编辑仍返回来源列表。验收覆盖系统返回、保存/子表失败、迟到响应和权限撤销,不能用重复压入详情页替代原实例恢复。
|
|
53
66
|
- IoT/关联快照的“记录不存在”应展示业务空状态并隐藏表名/SQL,权限与网络失败仍保留真实错误;未知遥测使用占位值,零值和离线不能被当作缺失。依赖租户 V8 的契约测试从授权同步目录按唯一 ApiEngineKey 定位,测试前核验源码完整性与哈希,不靠旧分类文件夹名定位或跳过缺失依赖。
|
|
54
67
|
- 小程序不得下载或执行任意前端 V8,不得使用 `eval/new Function`。字段显隐和联动使用白名单声明式规则,按钮使用 ActionSchema,复杂事务和校验进入 ApiEngine 或后端表单事件。
|
|
68
|
+
- 定时、策略等独立编辑入口须有受控原生适配,遵守字段移动端显隐、角色、只读和后端授权;不能仅因即时控制 Operations 不含该编辑动作而丢弃入口。沿用实际接口参数白名单,不把未经支持的菜单、角色或完整报文塞入请求。计划保存、准备、派发和查询使用同一编号,确认取消不写入,离页阻断后续派发;回归覆盖参数契约、撤权、响应丢失和内容不一致。
|
|
69
|
+
- 关联快照值默认完整换行,长标识、地址和周计划整行展示,短指标可双列;不得用单行省略替代完整数据。租户 `getRelatedPresentation` 可返回 `snapshotSections/snapshotNotes` 精简重复说明,保留原始口径、单位、脱敏、零值和待确认提示;通用组件不写业务字段映射。截图要实际滚动到长值和计划编辑区域,并断言内容、容器尺寸与末尾字段可达。
|
|
55
70
|
- 定制详情的按钮锚点必须从完整表单定义定位所属 Tab/分组,不能回退到当前 Tab 的第一个可见分组,否则关联、二维码等基础动作会串栏。后台 Button 只有受控原生适配才能进入小程序;设备控制同时取字段权限与服务端能力交集,较多动作按业务分组、双列和“更多”展开。涉及物理动作时沿用服务端稳定编号的准备/派发/查询协议,超时只查原编号,离页/切换记录取消后续派发;接口受理、设备回执和遥测复核分别展示。回归覆盖 Tab 往返、权限撤销、取消、连点、响应丢失、旧指令混入和迟到响应。
|
|
56
71
|
- 分片日志的时间筛选复用后台 SearchFieldIds 和统一筛选弹窗,不增加重复的月份、开始日期和结束日期控件。月份从已选时间推导,未筛选时查询当月;虚拟文本时间发送完整边界,缺省精度可按接口能力使用分钟,显式 DateTimeType 优先。草稿确认后生效、关闭取消、重置清空条件;结束包含整个所选精度。服务端在存储层过滤、计数和分页,缓存及迟到响应按已生效条件隔离;接口不支持跨月时在提交前明确提示。
|
|
57
72
|
- ActionSchema 只能描述文字、图标、颜色、确认提示、参数映射、ApiEngineKey、原生 ActionType 和成功后的刷新/跳转;扫码、定位、拍照、拨号、导航等由受控原生适配器执行。
|
|
@@ -118,7 +133,7 @@ Profile 覆盖层回归必须在独占临时夹具中执行,禁止为了测试
|
|
|
118
133
|
- 交付前至少检查 375px 与 430px 宽度首屏截图,确认标题、主按钮、次按钮、浮动面板、第二块内容没有重叠、裁切或不美观换行。
|
|
119
134
|
|
|
120
135
|
<!-- /microi-progressive:chunk -->
|
|
121
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-006 sha256=
|
|
136
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-006 sha256=2e0f32b44149c98ba70b96279fdb9d170dbcb07d48e14056fa9025b163f463e6 -->
|
|
122
137
|
## 资源 URL 必须集中解析
|
|
123
138
|
|
|
124
139
|
数据库中的图片、附件、头像、Logo、卡面图、单据图片等字段常见保存形式:
|
|
@@ -138,7 +153,7 @@ Profile 覆盖层回归必须在独占临时夹具中执行,禁止为了测试
|
|
|
138
153
|
- `http(s)://`、`data:`、`blob:` 原样返回。
|
|
139
154
|
- `/file/...` 走 API 服务。
|
|
140
155
|
- `/tenant/...`、`tenant/...` 等对象存储路径走 `V8.SysConfig.FileServer` 对应的文件服务器/CDN。
|
|
141
|
-
-
|
|
156
|
+
- 私有文件通过平台授权接口携带表单、记录、字段和菜单上下文获取短期地址;字段私有或附件实际 `Limit=true/1` 均须鉴权。签发失败显示受控错误,禁止回退到公开文件服务器路径。文档下载后的临时路径无后缀时,从附件 `Name/Path` 推导并显式传入 `openDocument.fileType`。
|
|
142
157
|
- 第三方占位图、已失效临时地址、空字符串统一清理为空,交给 UI 占位态。
|
|
143
158
|
|
|
144
159
|
<!-- /microi-progressive:chunk -->
|