@microi.net/cli 5.1.6 → 5.1.8
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/assets/build-meta.json +4 -4
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server.js +3 -2
- package/scripts/microi-skills.meta.json +187 -187
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +7 -7
- package/skills/app-store/SKILL.md +1 -1
- package/skills/microi-form-layout/SKILL.md +1 -1
- package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +3 -1
- package/skills/module-engine/SKILL.md +7 -4
- package/skills/module-engine/references/module-config.md +7 -1
- package/skills/ui-design/SKILL.md +1 -1
- package/skills/v8-security/SKILL.md +2 -2
- package/skills/v8-utilities/references/server-api-index.md +1 -0
- package/skills/v8-workflow/SKILL.md +13 -5
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
每个可见且绑定表的 Diy 模块还必须有 List/Card 展示设计:所有普通列给合理
|
|
35
35
|
`TableWidth`,至少一个 PC 复合列给 `MinWidth`,Hero 有业务标题、副标题和 2~4 个
|
|
36
36
|
真实指标,移动卡片覆盖可用的标题/副标题/顶部/状态/右侧/正文/Meta/底部区域。
|
|
37
|
-
|
|
37
|
+
复合列一般只用一个主字段加一个 `Lines` 次要字段,形成紧凑双行;可以配置多个各自双行
|
|
38
|
+
的复合列,但不要在同一列堆两个 `Lines` 形成三行。复合列和卡片区域使用过的字段不得
|
|
39
|
+
继续机械显示为普通列或在多个区域重复。
|
|
38
40
|
|
|
39
41
|
菜单角标只用于少量待办、未读、逾期、预警等重要入口;PageTabs 与按钮角标按业务价值
|
|
40
42
|
选择。相同页面的一组指标/角标使用一个批量接口,不逐指标、逐按钮、逐行请求。
|
|
@@ -123,6 +125,10 @@ FontWeight/DisplayStyle`。运行时会把引用字段并入 `_SelectFields`;
|
|
|
123
125
|
返回这些字段。多字段模板沿用对应 `diy_field.V8TmpEngineTable`,不在 ViewSchema 内保存
|
|
124
126
|
可执行脚本。
|
|
125
127
|
|
|
128
|
+
PC 复合列的常规高度上限是两行:`Field` 占主行,`Lines` 通常只放 1 项。多个信息组拆成
|
|
129
|
+
多个两行复合列;只有确有层级价值且完成桌面截图验收后,才允许在同一列放第 2 个
|
|
130
|
+
`Lines`。`TrailingFields` 位于右侧,不应被误用成增加纵向信息层级。
|
|
131
|
+
|
|
126
132
|
Hero 必须在 PageTabs 上方渲染。PC 无指标/含指标头部分别为 `44px / 62px`,连同间距的
|
|
127
133
|
总纵向占用约 `50px / 68px`。有指标时标题说明区占约 25%~30%,指标区弹性占满其余空间,
|
|
128
134
|
两区只用弱化渐变分隔;指标容器不加外框,单指标使用轻量语义色背景和图标色块,禁止
|
|
@@ -195,7 +195,7 @@ Microi 项目必须支持用户或项目级形态偏好:`data-mci-shape="round
|
|
|
195
195
|
- **尊重三种标签布局**:`left`、`right`、`top` 三种 `FormLabelPosition` 必须完整保留,标签宽度继续服从表单配置;移动窄屏允许回落到顶部标签,但不能破坏桌面配置语义。字段存在说明文字时,`left/right` 把灰色小字放在 Label 与控件整行下方,默认最多两行并压缩上下间距;`top` 把说明放在 Label 右侧,单行省略并通过原生 `title` 或等价可访问方式查看全文。不得再以孤立 `i` 图标和仅鼠标悬停 Tooltip 作为默认说明入口。
|
|
196
196
|
- **Label 与紧凑控件共用中心线**:左右标签布局下,普通字段 Label、输入控件、日期文字与日期前缀图标必须共用同一控件高度和垂直中心线;不得保留会把 Label 单独上抬/下压的底部外边距。多行文本、上传、子表等高控件才切换为顶部对齐。
|
|
197
197
|
- **弹窗与抽屉边界有区别**:表单对话框采用中性细边界、柔和遮罩与模糊背景,标题顶部不加装饰色线;抽屉必须贴边且无圆角,可在顶部保留克制的 2–3px 主题色识别线。两者都使用连续的柔和表单画布和紧凑操作区;设计器双击字段弹窗必须可拖动,并继续提供控件专项配置入口。
|
|
198
|
-
- **平台 Dialog 统一壳**:除 Drawer 外,框架弹层、微应用弹层、系统设置、商城、通知与业务表单默认使用 20–24px 大圆角、上下左右居中、标题栏可拖动的 Dialog;禁止页面自行恢复方角壳或顶部主题色粗线。标题栏左侧依次提供语义图标、英文眉题、大字标题和可选小字副标题;右上关闭按钮与标题区垂直居中并必须有可辨识的按钮底色。内容区使用连续、固定的柔和背景和整齐栅格;底部操作区右对齐大号关闭/保存按钮,两者都带语义图标。拖动与窗口缩放必须按弹层真实宽高重新约束,四边至少保留 8–18px 可视余量,不得把内容拖出视口。Teleport 到 `body` 的微应用弹层必须在弹层根同步 `data-mci-ui-root`、主题与必要 token,不能只依赖原祖先 CSS
|
|
198
|
+
- **平台 Dialog 统一壳**:除 Drawer 外,框架弹层、微应用弹层、系统设置、商城、通知与业务表单默认使用 20–24px 大圆角、上下左右居中、标题栏可拖动的 Dialog;禁止页面自行恢复方角壳或顶部主题色粗线。标题栏左侧依次提供语义图标、英文眉题、大字标题和可选小字副标题;右上关闭按钮与标题区垂直居中并必须有可辨识的按钮底色。内容区使用连续、固定的柔和背景和整齐栅格;底部操作区右对齐大号关闭/保存按钮,两者都带语义图标。拖动与窗口缩放必须按弹层真实宽高重新约束,四边至少保留 8–18px 可视余量,不得把内容拖出视口。Teleport 到 `body` 的微应用弹层必须在弹层根同步 `data-mci-ui-root`、主题与必要 token,不能只依赖原祖先 CSS 变量。遮罩毛玻璃由 `sys_config.FormMaskBlur=1/true` 全局显式开启,缺失或 `0/false` 默认关闭;`prefers-reduced-motion` 只能停止动画与过渡,不得擅自反转静态毛玻璃配置。
|
|
199
199
|
- **Dialog 关闭按钮可见性**:右上关闭按钮固定使用 40×40px(移动端不低于 40px)中性灰底、细边框和 10–12px 圆角,不能只显示悬空的细线 X;亮色和暗色主题都必须保持可辨识背景。hover/focus-visible 时使用更深一级灰底、主题色图标和清晰焦点环。底部关闭/取消/保存按钮高度不低于 42px、最小宽度 96px,并保持右对齐与 12px 间距。
|
|
200
200
|
- **Tabs 统一视觉**:顶部工作区、数据列表 PageTabs、表单 Tabs 与右侧关联数据 Tabs 使用同一套清爽、独立标签视觉。横向 Tabs 禁止铺设贯穿整行的有色轨道、边框底板、下划线或其它装饰线;未选项保持透明,悬停与选中只使用克制的文字色、浅色独立表面和轻阴影。纵向 Tabs 可使用截图式中性浅色分组容器,选中项是独立浅色卡片。数字角标放在标签文本之后且不得挤压标题;过渡只用于交互,并尊重 `prefers-reduced-motion`。
|
|
201
201
|
- **表格与卡片行为完整**:桌面数据卡片采用连续白色表面、弱边界和轻阴影,操作区不得再叠加有色底板或硬分割线;表格模块门头的标题/副标题卡片与每个动态统计卡片必须彼此独立,父布局保持透明,禁止用一个大卡片或外框把标题和全部统计项包在一起。表格默认取消无意义的纵向网格,只保留浅表头与轻量横向行节奏,工具栏和分页不得层层套框。`PageBtns`、`BatchSelect`、行内/行外 V8 按钮均不可因改版丢失;需多选而当前未选中时,应先把当前记录纳入选中集再执行。
|
|
@@ -12,7 +12,7 @@ description: Microi V8 安全指南。用于审查 DiyToken 与权限、可逆
|
|
|
12
12
|
访问密钥由 `microi_list_my_access_keys`、`microi_create_my_access_key`、`microi_revoke_my_access_key` 管理,只允许当前用户、限期、最小 scope,明文仅创建时返回一次。外部身份回调固定为 `/api/ExternalLogin/Callback`,服务端校验租户、Provider、state、redirect 和回调域名,验证成功后仍签发 DiyToken。
|
|
13
13
|
|
|
14
14
|
<!-- microi-progressive:begin -->
|
|
15
|
-
<!-- microi-progressive:chunk id=v8-security-000 sha256=
|
|
15
|
+
<!-- microi-progressive:chunk id=v8-security-000 sha256=0346bd9ca3fe98dd2b589d1777aa1e55cd24cf7dedc69ee65d4ca91461db7dee -->
|
|
16
16
|
## 0. 租户动态系统设置与密钥边界
|
|
17
17
|
|
|
18
18
|
第三方密钥(微信、支付宝、OpenAI、阿里云、ERP、SMTP)**禁止**硬编码在 V8 代码或前端。公开的租户配置必须建成当前租户 `sys_config` 的实体字段;敏感或仅供后端使用的租户业务配置保存到 `mci_system_setting`。数据库、Redis、MongoDB、MinIO、MQ 等部署控制面仍由主库 `sys_osclients` 托管,子租户不能修改。
|
|
@@ -20,7 +20,7 @@ description: Microi V8 安全指南。用于审查 DiyToken 与权限、可逆
|
|
|
20
20
|
```javascript
|
|
21
21
|
// ✅ 浏览器/前端 V8 只读取 sys_config 的浏览器安全投影
|
|
22
22
|
var sysTitle = V8.SysConfig.SysTitle;
|
|
23
|
-
var githubVisible = V8.SysConfig.
|
|
23
|
+
var githubVisible = V8.SysConfig.DisableLoginGitHub !== 1;
|
|
24
24
|
|
|
25
25
|
// ✅ 后端接口引擎/后端 V8 事件从独立节点读取私密设置
|
|
26
26
|
var privateSettings = V8.SysConfig.ServerPrivateSettings || {};
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
| `V8.Method.GetCurrentToken(token,osClient)` | 读取当前 Token 对象;不透传前端 |
|
|
51
51
|
| `V8.Method.RefreshLoginUser(userId,osClient)` | 刷新用户登录缓存 |
|
|
52
52
|
| `V8.Method.ClearUserLoginInfo(userId,osClient)` | 管理员吊销用户全部终端 Token |
|
|
53
|
+
| `V8.Method.GetDirectTableGrantPolicies()` | 读取平台表直连授权策略;仅供可信角色表单事件做最终校验 |
|
|
53
54
|
| `V8.Method.ConsumeIdentityVerificationTicket({Ticket,Purpose,ActionHash})` | 按当前 DiyToken 用户、租户、用途和操作摘要原子消费一次性 Passkey/TOTP/人脸票据 |
|
|
54
55
|
| `V8.Method.GetPrivateFileUrl({FilePathName})` | 签发当前租户短期私有文件代理地址 |
|
|
55
56
|
| `V8.Method.Upload(options)` | 受配额限制的上传 |
|
|
@@ -153,7 +153,7 @@ if (V8.Form.Money <= 100) {
|
|
|
153
153
|
|
|
154
154
|
<!-- /microi-progressive:chunk -->
|
|
155
155
|
<!-- microi-progressive:chunk id=v8-workflow-006 sha256=e67b72bf060a38ed5f94a57f3978026d151bb971fcf47a0b30a434dba819c264 -->
|
|
156
|
-
## 前端发起流程
|
|
156
|
+
## 前端发起流程
|
|
157
157
|
|
|
158
158
|
```javascript
|
|
159
159
|
// 在 V8 按钮或自定义逻辑中发起流程
|
|
@@ -172,10 +172,18 @@ V8.WF.StartWork({
|
|
|
172
172
|
V8.Tips(result.Msg, false);
|
|
173
173
|
}
|
|
174
174
|
});
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
<!-- /microi-progressive:chunk -->
|
|
178
|
-
##
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
<!-- /microi-progressive:chunk -->
|
|
178
|
+
## “我的工作”与审核界面交付规则
|
|
179
|
+
|
|
180
|
+
- 模块使用“流程引擎”打开方式时,关联流程只能选择已启用的 `wf_flowdesign`;交付前同时验证流程已启用、模块 `OpenType=WorkFlow`、`FlowDesignId` 正确,且开始节点不存在测试阻断 V8。
|
|
181
|
+
- `StartWork` / `DoWork` 必须通过工作流与表单合并提交能力保存。审核态只保留“处理工作”、流转记录/流程图和关闭;不得同时显示普通保存、取消编辑、草稿箱、删除、显示隐藏字段或普通表单更多按钮。
|
|
182
|
+
- “我的工作”菜单角标使用“未处理待办 + 未读抄送”。待办 Tab 显示未处理数,抄送 Tab 显示未读数;我发起的、我处理的、我相关的按各自列表查询口径统计,不能用 `wf_work` 的近似口径代替 `wf_flow` 列表口径。
|
|
183
|
+
- 新抄送项应显式保存 `IsRead=false`,用户打开后由可信后端按当前身份标记已读。历史 `CopyUsers` 项没有 `IsRead` 时按已读兼容,避免升级后把全部历史抄送误报为未读。
|
|
184
|
+
- “查看流程图”验收必须从真实流转记录入口打开,确认流程定义、当前节点高亮、连线和弹窗尺寸正常,并检查浏览器无脚本错误;只验证流程 JSON 拓扑不等于完成 UI 验收。
|
|
185
|
+
|
|
186
|
+
## 详细参考路由(渐进披露)
|
|
179
187
|
|
|
180
188
|
仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
|
|
181
189
|
|