@microi.net/cli 5.6.7 → 5.6.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 +5 -5
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server.js +80 -79
- package/scripts/microi-cli.js +53 -52
- package/scripts/microi-skills.meta.json +199 -199
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +8 -8
- package/skills/ai-engine/SKILL.md +3 -1
- package/skills/microi-codex/SKILL.md +9 -1
- package/skills/microi-codex-installer/SKILL.md +2 -2
- package/skills/microi-uniapp-frontend/SKILL.md +2 -0
- package/skills/ui-design/SKILL.md +10 -3
- package/skills/v8-export-import/SKILL.md +9 -7
- package/skills/v8-menu-buttons/SKILL.md +6 -2
|
@@ -29,6 +29,8 @@ UniApp/H5/小程序必须通过项目统一 `microi.v8.js` 的 `V8.uploadFile` /
|
|
|
29
29
|
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=8096a337726080dadd3ce98b935e8fc5f77b62cd68f9fb3418ff737dfef97a4b -->
|
|
30
30
|
## 标准产品、视图协议与租户扩展
|
|
31
31
|
|
|
32
|
+
动态表单的组织/树字段优先复用原生 `mci-native-field` 树形下拉与 `native-tree-options.mjs`,无需为小程序把后台 `Department` 改为普通 Select。读取 `Config.<Component>.Multiple/EmitPath`:组织单选叶值保存 Id,多选叶值保存 Id 数组,路径模式保存完整路径/路径数组,数组统一 JSON 序列化。支持祖先展开、搜索、清空、禁用、重试和只读回显;数据源旧模板不能代替当前授权组织树。业务字段联动放租户扩展,不执行任意前端 V8;验收覆盖保存格式、旧数据回显、失败/迟到响应及最近公司祖先联动。
|
|
33
|
+
|
|
32
34
|
Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile + 租户插件”架构,不能把某个交付项目直接写死成平台产品:
|
|
33
35
|
|
|
34
36
|
- `src/platform/`、通用 `mci-*` 组件、动态模块页和动态表单页只实现平台能力,不得出现租户表名、字段名、品牌文案、素材或客户路由。
|
|
@@ -193,9 +193,16 @@ Microi 项目必须支持用户或项目级形态偏好:`data-mci-shape="round
|
|
|
193
193
|
- [references/progressive-06-主题切换实现.md](references/progressive-06-主题切换实现.md):主题切换实现;命名规范
|
|
194
194
|
- [references/progressive-07-速查-从头搭建一个移动端页面.md](references/progressive-07-速查-从头搭建一个移动端页面.md):速查:从头搭建一个移动端页面;🚨 移动端低代码项目落地踩坑(必读,2026.5);🔗 关联字段:保存真实 Id,界面展示可读标签;表单布局规范(Column)
|
|
195
195
|
- [references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md](references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md):表单分组规范:Tabs vs CollapseGroup(强制);缓存刷新(解决"我改了字段但页面不变"问题);接口引擎匿名访问;MCI-UI 与第三方组件库策略;MCI-UI 源码落地位置;VitePress 中文文档布局规范
|
|
196
|
-
<!-- microi-progressive:end -->
|
|
197
|
-
|
|
198
|
-
##
|
|
196
|
+
<!-- microi-progressive:end -->
|
|
197
|
+
|
|
198
|
+
## 按钮文本可读性与多端验收(强制)
|
|
199
|
+
|
|
200
|
+
- 主按钮、下载按钮、CTA、标签式链接必须在组件自己的命名空间内显式声明默认、hover、focus-visible、active、disabled 的文字色、背景色和边框色;不得依赖父级文字色、全局 `a` 样式、浏览器默认色或透明背景上的偶然对比度。图标的 `color` / `stroke` / `fill` 必须跟随同一语义前景色。
|
|
201
|
+
- 普通文字与背景的对比度至少达到 4.5:1;大号文字至少达到 3:1;有意义的图标、边框和焦点指示至少达到 3:1。渐变、透明、毛玻璃和背景图片上的按钮,要按实际可出现的最差背景位置验收,不能只检查 CSS 变量名或设计稿色值。
|
|
202
|
+
- 每个关键按钮必须在真实渲染页逐一核对“按钮存在、完整文案可见、前景色和背景色可区分、hover/focus 后仍可读、点击区域未被遮挡”。自动化至少读取最终 computed style 并断言颜色不是透明或同色;视觉验收至少覆盖 1440px 桌面与约 390px 手机宽度的浅色、暗色截图。
|
|
203
|
+
- 禁止仅凭桌面截图、DOM 中存在文字或构建成功判定按钮验收通过。手机端折行、响应式覆盖、Markdown/VitePress 全局链接样式、主题切换和浏览器已访问链接状态都必须纳入回归检查;任一关键按钮在任一目标主题或宽度下看不清,即视为未完成。
|
|
204
|
+
|
|
205
|
+
## Microi 低代码工作台默认清爽体验(强制)
|
|
199
206
|
|
|
200
207
|
`diy-form`、`diy-table`、模块卡片、设计器弹窗和框架导航默认采用清爽、紧凑、层次明确的现代视觉;经典样式只能作为显式兼容模式保留,不能继续作为新页面或未配置页面的默认外观。
|
|
201
208
|
|
|
@@ -132,12 +132,14 @@ 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=
|
|
136
|
-
## 文件响应与前端调用约定
|
|
137
|
-
|
|
138
|
-
- 接口引擎必须开启【响应文件】,并返回正确的 `FileName`、`ContentType`、`FileByteBase64`。
|
|
139
|
-
-
|
|
140
|
-
-
|
|
135
|
+
<!-- microi-progressive:chunk id=v8-export-import-002 sha256=c18ba2c06baf3e7fb2cea79fe46637d3223d1f6b6454aa46057cfb80addd352a -->
|
|
136
|
+
## 文件响应与前端调用约定
|
|
137
|
+
|
|
138
|
+
- 接口引擎必须开启【响应文件】,并返回正确的 `FileName`、`ContentType`、`FileByteBase64`。
|
|
139
|
+
- 后台菜单的【导出接口替换】默认仍是登录态调用,不要为了消除“请求未携带 Token”而开启【允许匿名调用】。平台会把当前 DiyToken 放入 `Authorization: Bearer ...` 请求头;接口引擎保持【允许匿名调用】关闭即可使用 `V8.CurrentUser` 和既有权限边界。
|
|
140
|
+
- 自定义导出无论收到业务错误、无法解析的文件响应还是网络异常,都必须结束按钮 Loading;前端应 `await` 导出 Promise 并在 `finally` 恢复状态,不能只依赖成功分支回调。
|
|
141
|
+
- `V8.Office.ExportExcel/ExportWord/ExportPowerPoint` 返回的是 `DosResult<byte[]>`;先判断 `Code`,再对 `Data` 调用 `System.Convert.ToBase64String`。
|
|
142
|
+
- 前端调用 Office 导出接口时,新代码优先使用 `V8.Http.GetResponse/PostResponse`;`V8.Post/V8.Get` 仅用于兼容历史代码,不再作为新代码首选。
|
|
141
143
|
|
|
142
144
|
### 表头基础配置项
|
|
143
145
|
|
|
@@ -152,7 +154,7 @@ return {
|
|
|
152
154
|
| `NumberFormat/HeaderStyle/Style` | 数字格式与列级样式 |
|
|
153
155
|
|
|
154
156
|
<!-- /microi-progressive:chunk -->
|
|
155
|
-
<!-- microi-progressive:chunk id=v8-export-import-003 sha256=
|
|
157
|
+
<!-- microi-progressive:chunk id=v8-export-import-003 sha256=5975618ee1d3b9a4828d9f88cf35bc4efe4a8d7f45b94bd40077fa50b1d89c1f -->
|
|
156
158
|
## 解析上传的 Excel / CSV(导入)
|
|
157
159
|
|
|
158
160
|
```javascript
|
|
@@ -111,7 +111,9 @@ V8.OpenAppDialog({
|
|
|
111
111
|
| `AppKey` | 是 | - | `sys_microiservice.MsKey`,目标微服务必须已经编译发布。 |
|
|
112
112
|
| `RoutePath` | 否 | `/` | 子应用内部路由;`MicroRoute` 是兼容别名,优先取 `RoutePath`。 |
|
|
113
113
|
| `Version` | 否 | 当前 `BuildVersion` | 固定加载某个发布版本;通常省略以使用当前版本。 |
|
|
114
|
-
| `Title` | 否 | `应用` | Dialog/Drawer 标题。 |
|
|
114
|
+
| `Title` | 否 | `应用` | Dialog/Drawer 标题。 |
|
|
115
|
+
| `Header` | 否 | - | 初始外层标题栏 `{ title, tags, actions }`;仅可序列化文本和动作标识。 |
|
|
116
|
+
| `OnHeaderAction(actionId, V8)` | 否 | - | 可选调用方前端 V8 动作;不设置时由子应用处理按钮点击。 |
|
|
115
117
|
| `TitleIcon` | 否 | `fas fa-window-maximize` | 标题图标 class。 |
|
|
116
118
|
| `Width` | 否 | `min(920px, calc(100vw - 32px))` | CSS 宽度值,推荐带移动端安全边距。 |
|
|
117
119
|
| `OpenType` | 否 | `Dialog` | `Dialog` 或 `Drawer`。 |
|
|
@@ -120,7 +122,9 @@ V8.OpenAppDialog({
|
|
|
120
122
|
| `OnCancel(data)` | 否 | - | 子应用取消回调,回调后自动关闭。 |
|
|
121
123
|
| `OnError(error)` | 否 | - | 加载或执行错误回调,不自动关闭。 |
|
|
122
124
|
|
|
123
|
-
宿主还会自动传入 `apiBase`、`osClient`、`token`、`appKey`、`version`、`microRoute`、`dialog:true`。子应用返回协议:
|
|
125
|
+
宿主还会自动传入 `apiBase`、`osClient`、`token`、`appKey`、`version`、`microRoute`、`dialog:true`。子应用返回协议:
|
|
126
|
+
|
|
127
|
+
宿主支持 `dialogHeaderBridge:true` 时,子应用可隐藏内部工具栏,使用 `window.microApp.forceDispatch({ type:'app-dialog:header', data:{ title:'单据号', tags:[{text:'待审核',tone:'warning'}], actions:[{id:'approve',text:'审核',tone:'success'}] } })` 更新外层标题栏。若未传 `OnHeaderAction`,宿主会把按钮点击作为 `host:dialog-action` 数据消息回传 `actionId/requestId`,子应用仍需向后端重新核验权限;旧宿主继续显示子应用自己的工具栏。
|
|
124
128
|
|
|
125
129
|
```js
|
|
126
130
|
window.microApp.dispatch({ type: 'app-dialog:success', data: { message: '已提交' } });
|