@microi.net/cli 5.8.0 → 5.8.2
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 +99 -99
- package/scripts/microi-skills.meta.json +285 -282
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +432 -432
- package/skills/README.md +2 -1
- package/skills/ai-engine/references/ai-employees.md +4 -0
- package/skills/ai-platform-governance/SKILL.md +8 -8
- package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +9 -9
- package/skills/app-store/SKILL.md +53 -3
- package/skills/microi/SKILL.md +14 -0
- package/skills/microi-ai-application/SKILL.md +9 -0
- package/skills/microi-client-frontend/SKILL.md +5 -5
- 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
- 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
- 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
- package/skills/microi-codex/SKILL.md +9 -0
- package/skills/microi-deployment/SKILL.md +9 -0
- package/skills/microi-deployment/references/deployment-matrix.md +8 -0
- package/skills/microi-form-layout/SKILL.md +6 -6
- 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
- package/skills/microi-frontend-sdk/SKILL.md +6 -6
- 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
- package/skills/microi-mobile-app-quality/SKILL.md +12 -8
- 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
- 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
- package/skills/microi-system-delivery/SKILL.md +5 -5
- 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
- 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
- package/skills/microi-ui/SKILL.md +6 -6
- 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
- package/skills/microi-uniapp-frontend/SKILL.md +10 -10
- 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
- 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
- package/skills/page-engine/SKILL.md +8 -8
- 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
- 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
- package/skills/playwright-e2e/SKILL.md +8 -8
- 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
- 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
- package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +7 -7
- package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +4 -4
- package/skills/system-observability/SKILL.md +3 -0
- package/skills/ui-design/SKILL.md +7 -7
- 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
- package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +3 -3
- 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
- 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
- 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
- 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
- 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
- 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
- package/skills/unity-integration/references/ai-app-delivery.md +16 -0
- package/skills/v8-api-config/SKILL.md +6 -0
- package/skills/v8-crud-api/SKILL.md +9 -7
- 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
- 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
- package/skills/v8-export-import/SKILL.md +4 -4
- 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
- package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +4 -4
- 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
- package/skills/v8-file-upload/SKILL.md +25 -4
- 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
- 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
- package/skills/v8-frontend-events/SKILL.md +6 -6
- package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +5 -5
- package/skills/v8-http-integration/SKILL.md +4 -4
- package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +7 -7
- 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
- package/skills/v8-image-processing/SKILL.md +1 -1
- package/skills/v8-menu-buttons/SKILL.md +4 -4
- 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
- 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
- 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
- package/skills/v8-mq-mqtt/SKILL.md +2 -2
- package/skills/v8-mq-mqtt/references/mqtt-production.md +1 -1
- package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +1 -1
- package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +1 -1
- package/skills/v8-saas-multi-tenant/SKILL.md +6 -0
- package/skills/v8-security/SKILL.md +15 -5
- package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +3 -3
- package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +8 -6
- package/skills/v8-table-event/SKILL.md +5 -5
- 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
- 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
- package/skills/v8-workflow/SKILL.md +16 -7
- 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
- package/skills/workspace-conventions/SKILL.md +16 -7
- 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
- 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
- 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
|
@@ -20,13 +20,13 @@ UniApp/H5/小程序必须通过项目统一 `microi.v8.js` 的 `V8.uploadFile` /
|
|
|
20
20
|
登录页默认不得展示 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 审核中说明。
|
|
21
21
|
|
|
22
22
|
<!-- microi-progressive:begin -->
|
|
23
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-000 sha256=
|
|
23
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-000 sha256=ecb0fc85b5c3b15ac79c9049ca86de8c586d4ce3a6c975255464069d89f87ac4 -->
|
|
24
24
|
## 移动端质量门禁必须先读
|
|
25
25
|
|
|
26
26
|
创建、重构或修复任何 Microi 移动端项目前,必须同时应用 `microi.skills/microi-mobile-app-quality/SKILL.md`。该 Skill 中的底部导航真实图标、重要按钮图标化、登录 API 校验、微信手机号快捷登录、后台二级菜单和页面动效要求,属于交付验收条件,不是可选优化。
|
|
27
27
|
|
|
28
28
|
<!-- /microi-progressive:chunk -->
|
|
29
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=
|
|
29
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=b195b92de6175b7f184257a0ba3b53b94b8a6aaee7ab42fbb05fe1f5338ba097 -->
|
|
30
30
|
## 标准产品、视图协议与租户扩展
|
|
31
31
|
|
|
32
32
|
动态表单的组织/树字段优先复用原生 `mci-native-field` 树形下拉与 `native-tree-options.mjs`,无需为小程序把后台 `Department` 改为普通 Select。读取 `Config.<Component>.Multiple/EmitPath`:组织单选叶值保存 Id,多选叶值保存 Id 数组,路径模式保存完整路径/路径数组,数组统一 JSON 序列化。支持祖先展开、搜索、清空、禁用、重试和只读回显;数据源旧模板不能代替当前授权组织树。业务字段联动放租户扩展,不执行任意前端 V8;验收覆盖保存格式、旧数据回显、失败/迟到响应及最近公司祖先联动。
|
|
@@ -50,7 +50,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
50
50
|
仓库必须提供 AI 与人工协作约束文件、租户脚手架、Profile 构建/同步命令和架构检查。平台层改动至少同时构建标准 Profile 与默认交付 Profile;租户视觉改动还要执行多视口截图回归。这样其他同事使用 Codex、Claude、Copilot、Cursor 等工具继续开发时,会先读取相同规则,而不是依赖某次对话记忆。
|
|
51
51
|
|
|
52
52
|
<!-- /microi-progressive:chunk -->
|
|
53
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-002 sha256=
|
|
53
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-002 sha256=76ebf3985d21fbbc5d86093b95bdf348e526e3670da9bb6827b5e1a7184e617b -->
|
|
54
54
|
## H5 预览壳与底部导航强制规则
|
|
55
55
|
|
|
56
56
|
- 桌面浏览器允许使用 `Microi UniApp H5 Preview` 手机壳帮助用户理解移动端比例。
|
|
@@ -59,7 +59,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
59
59
|
- 自动化验收必须同时使用桌面视口与移动视口截图:桌面端断言手机壳存在,移动端断言 `.phone-status` 隐藏且 `.phone` 无圆角、无边框、宽高铺满;每个底部菜单的图标元素和文字都必须可见、可点击。
|
|
60
60
|
|
|
61
61
|
<!-- /microi-progressive:chunk -->
|
|
62
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-003 sha256=
|
|
62
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-003 sha256=5cedd05cb29746019a92db56a21123718fde23d5d9df4b8064dfc260bc89ee05 -->
|
|
63
63
|
## 登录页与手机号快捷登录
|
|
64
64
|
|
|
65
65
|
- 登录页必须是直接登录面,不要默认做“员工登录 / 客户登录”身份 Tab 切换,除非用户明确要求。默认展示系统账号密码登录,同时提供客户手机号快捷登录入口。
|
|
@@ -77,7 +77,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
77
77
|
- 微信小程序构建后必须扫描登录页源码以及 `dist/build/mp-weixin/pages/login/` 产物,并截图核对手机号快速验证前置页;命中上述混淆文案、官方图形或近似元素时必须阻止上传和提审,不能只检查按钮主文案而漏掉说明文字、错误弹窗或分享标题。
|
|
78
78
|
|
|
79
79
|
<!-- /microi-progressive:chunk -->
|
|
80
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-004 sha256=
|
|
80
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-004 sha256=cc25e3d896e6f7349a7a7e93b8025ee797bf9810e60214eb95e41d75aa083422 -->
|
|
81
81
|
## 微信小程序全页面分享
|
|
82
82
|
|
|
83
83
|
- 创建或维护 UniApp 微信小程序时,默认把好友转发与朋友圈分享视为页面基础能力;按 `pages.json` 全量路由逐页接入,不等待用户额外提出。
|
|
@@ -88,7 +88,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
88
88
|
- 验收不能只看首页右上角。用脚本比较 `pages.json` 路由数量与源码/微信构建产物中的两种分享生命周期数量,并在体验版抽测公开页、登录页和受保护详情页。
|
|
89
89
|
|
|
90
90
|
<!-- /microi-progressive:chunk -->
|
|
91
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-005 sha256=
|
|
91
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-005 sha256=d6f78d95dc0b0b042f0d0c525a9cb5295a0324f1c70d6f480c93f2e03d315cec -->
|
|
92
92
|
## 首屏 Hero 与浮动面板验收
|
|
93
93
|
|
|
94
94
|
- 移动端首屏 Hero 标题必须按真实中文文案调字号和行高,不能为了“震撼”把业务入口标题做得过大,导致一行半、孤字换行或压住按钮。
|
|
@@ -96,7 +96,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
96
96
|
- 交付前至少检查 375px 与 430px 宽度首屏截图,确认标题、主按钮、次按钮、浮动面板、第二块内容没有重叠、裁切或不美观换行。
|
|
97
97
|
|
|
98
98
|
<!-- /microi-progressive:chunk -->
|
|
99
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-006 sha256=
|
|
99
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-006 sha256=a39f7e4fb42c6d290463a9e40eed03235e4afe063d60208b5a3e73a170fbc39f -->
|
|
100
100
|
## 资源 URL 必须集中解析
|
|
101
101
|
|
|
102
102
|
数据库中的图片、附件、头像、Logo、卡面图、单据图片等字段常见保存形式:
|
|
@@ -120,7 +120,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
120
120
|
- 第三方占位图、已失效临时地址、空字符串统一清理为空,交给 UI 占位态。
|
|
121
121
|
|
|
122
122
|
<!-- /microi-progressive:chunk -->
|
|
123
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-007 sha256=
|
|
123
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-007 sha256=3894454672b6bde6f4a7b329103c9418804f4594b7e3505617590ebea5f136ab -->
|
|
124
124
|
## 移动端大资源优先使用租户 HDFS/CDN
|
|
125
125
|
|
|
126
126
|
定制 UniApp/H5/小程序中的大图、视频、音频、字体和大型第三方静态文件,默认不要塞进主包。应先确认目标 `OsClient`,通过该租户 MCP/HDFS 上传,再以 `sys_config.FileServer + Path` 的 CDN/公有桶地址引用;合同、证件等敏感资源仍必须使用私有桶和临时签名 URL。
|
|
@@ -136,7 +136,7 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
136
136
|
- 原始高清图、视频母版、设计源文件不得继续放在会被 UniApp 收集的 `src/static`、分包目录或其它构建入口中;应移到项目资料/设计源目录。主包仅保留小于门禁的轻量失败占位图和离线关键图标。
|
|
137
137
|
|
|
138
138
|
<!-- /microi-progressive:chunk -->
|
|
139
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-008 sha256=
|
|
139
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-008 sha256=d7b2b5c8ffe5c1dd8f51eb7d5e8368dba6813c2fa25d39dd3fb8f6659922b5b9 -->
|
|
140
140
|
## 头像必须异步统一解析
|
|
141
141
|
|
|
142
142
|
头像字段比普通图片更容易混合出现上传 JSON、私有路径、相对路径、历史字段名和脏数据。列表页、详情页、业务记录、审批记录、团队/会员卡片、聊天/消息等头像场景都必须走同一个头像解析入口。
|
|
@@ -157,7 +157,7 @@ row.OwnerAvatarUrl = await resolveAvatarUrl(rawAvatar);
|
|
|
157
157
|
禁止在模板中临时拼接文件服务器,禁止每个页面各写一套头像解析,禁止只在能查到关联用户时才解析接口已经返回的头像字段。
|
|
158
158
|
|
|
159
159
|
<!-- /microi-progressive:chunk -->
|
|
160
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-009 sha256=
|
|
160
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-009 sha256=0270fbc5a2ee0d20a4d1d2f2a9c7fc7304e18402d282e1efcf860bd31db9fcb0 -->
|
|
161
161
|
## 移动端富文本图文排版
|
|
162
162
|
|
|
163
163
|
商品详情、公告详情、活动说明、文章正文、协议说明等富文本在移动端渲染时,图片和文字不能使用同一套留白规则。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-010 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-010 sha256=2820c6dbc7641b03cb2d3af98f80ca654162fdac7995993be5cb7e25b8e5bdea -->
|
|
6
6
|
## 移动端分类/双栏列表独立滚动
|
|
7
7
|
|
|
8
8
|
商品分类、知识库分类、通讯录分组、资产分类等“左侧分类 + 右侧列表”的移动端页面,根节点必须固定在一个视口内,不能让整页和内部列表同时滚动。
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
<!-- /microi-progressive:chunk -->
|
|
37
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-011 sha256=
|
|
37
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-011 sha256=a28fba298274b738ef9039c6bd6a1707468687e2ae9644a819736374586749e9 -->
|
|
38
38
|
## 数据页必须使用骨架屏 Loading
|
|
39
39
|
|
|
40
40
|
任何依赖接口/数据库返回数据的移动端页面,都必须区分 `loading`、`data`、`empty`,并且首屏加载态必须使用骨架屏(Skeleton Screen)。接口请求结束前不能提前显示“暂无数据/暂无明细/空空如也”,也不能只用“图标 + 数据加载中...”或单独 spinner 作为页面级 loading。
|
|
@@ -72,7 +72,7 @@ async function load() {
|
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
<!-- /microi-progressive:chunk -->
|
|
75
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-012 sha256=
|
|
75
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-012 sha256=5554c817702cc491937fb2b32f5ba2ce76554a35ef0a2189979ff1d60789ab30 -->
|
|
76
76
|
## 移动端安全区必须兼容 iOS 与 Android
|
|
77
77
|
|
|
78
78
|
任何 UniApp/H5 移动端页面都必须同时适配 iPhone 刘海屏/Dynamic Island/Home Indicator、Android 状态栏/虚拟导航栏/手势条、微信/浏览器/WebView 容器差异。不要用固定 `20px/44px/64px` 直接硬编码顶部或底部间距。
|
|
@@ -92,7 +92,7 @@ async function load() {
|
|
|
92
92
|
- 独占屏幕且需要支持手机侧滑返回的功能应使用独立页面路由。`onBackPress`/页面返回先消费当前页内部的键盘、对话框和抽屉状态;内部状态清空后才弹出当前页,不能让一次返回直接退出小程序或越过底层业务页。
|
|
93
93
|
|
|
94
94
|
<!-- /microi-progressive:chunk -->
|
|
95
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-013 sha256=
|
|
95
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-013 sha256=591a8e5a3e33cfcdb102abf56ebc6eeb5c5896d621442c30e734f455d625842c -->
|
|
96
96
|
## 微信自定义组件的点击与拖动事件必须真机链路验收
|
|
97
97
|
|
|
98
98
|
- UniApp 可拖动浮动入口等自定义组件,不要给 `touchstart/touchmove/touchend/tap` 整组无差别添加 `.stop/.prevent`。这些修饰符会生成微信 `catchtouch* / catchtap`,部分 UniApp 自定义组件中可能吞掉事件桥,出现节点可见但点击和触摸方法完全不执行。
|
|
@@ -121,7 +121,7 @@ async function load() {
|
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
<!-- /microi-progressive:chunk -->
|
|
124
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-014 sha256=
|
|
124
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-014 sha256=62f20b920f2365d9f2f5062218b10b17aa181ccb3ae5d2260f795e086355f678 -->
|
|
125
125
|
## 列表型资料页必须提供完整管理动作
|
|
126
126
|
|
|
127
127
|
地址、联系人、收款方式、发票抬头、车辆、设备、证照、银行卡等用户维护型资料页,不能只展示简略列表。除非业务明确只读,移动端必须提供:
|
|
@@ -135,7 +135,7 @@ async function load() {
|
|
|
135
135
|
- 空态行动:没有数据时给出新增入口,但仍要遵守上面的加载态规则。
|
|
136
136
|
|
|
137
137
|
<!-- /microi-progressive:chunk -->
|
|
138
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-015 sha256=
|
|
138
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-015 sha256=d8e9280b5127d7dafd4dcb83b22bdb379fef39eac1e2e1b2e37f1c064cfe7fc6 -->
|
|
139
139
|
## 移动端资产/奖励流水展示
|
|
140
140
|
|
|
141
141
|
收益明细、积分明细、奖励明细、充值记录、订单流水等页面要面向用户展示“发生了什么”和“是否到账”,不要直接暴露后台调试字段。
|
|
@@ -147,7 +147,7 @@ async function load() {
|
|
|
147
147
|
- 后端接口应先把 `TypeLabel`、`SettleStatusLabel`、`DisplayTime`、`ContributorName`、`CardNo` 等字段整理好,前端只做轻展示,避免多个页面各自拼接导致重复或口径不一致。
|
|
148
148
|
|
|
149
149
|
<!-- /microi-progressive:chunk -->
|
|
150
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-016 sha256=
|
|
150
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-016 sha256=610b00696fd8a1548842974b5551e0e55bc276a3605459947251f508b4ef2ad3 -->
|
|
151
151
|
## H5 在 PC 浏览器必须自动模拟移动端
|
|
152
152
|
|
|
153
153
|
移动端 UniApp H5 被 PC 浏览器访问时,不能按桌面宽屏铺满。必须在全局样式里用媒体查询生成手机预览壳。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-017 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-017 sha256=f4c3bd827f3349b65dd40c894a51299d32ba7d75ba58a3a81d04aaba6b1733f2 -->
|
|
6
6
|
## 关键业务资产不得默认选中
|
|
7
7
|
|
|
8
8
|
凡是会扣减、消耗、转移、提交审批或触发财务后果的业务资产,都不能默认选中第一条。例如资产卡、余额账户、积分账户、优惠券、库存批次、付款账户、审批对象、设备工单等。
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
- 规则同时写在 UI 状态和提交前校验中。
|
|
16
16
|
|
|
17
17
|
<!-- /microi-progressive:chunk -->
|
|
18
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-018 sha256=
|
|
18
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-018 sha256=35f9826cc82000f9cedd3ccaffd8e7718b0efbec75cf12665145f1de4f8a6d23 -->
|
|
19
19
|
## 账号角色与会话状态
|
|
20
20
|
|
|
21
21
|
- Microi 企业移动端默认要从 `sys_user.RoleIds`、`_Roles`、`Roles`、`RoleName`、`Level` 解析内部账号角色,不要只用“是否登录”控制界面。
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
- 收到 `Code=1001/1002` 时用可完整阅读的模态框展示后端 `Msg`,包括过期分钟/小时/天或租户不匹配信息,确认后再跳登录;不能先覆盖成固定 Toast。
|
|
32
32
|
|
|
33
33
|
<!-- /microi-progressive:chunk -->
|
|
34
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-019 sha256=
|
|
34
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-019 sha256=72621b385229c3308cbe98dbfa0fb29de95e88d675dad31d9fbe4543b441fdbb -->
|
|
35
35
|
## 数字、主题、上传与消息
|
|
36
36
|
|
|
37
37
|
- 资产金额、积分、余额、库存值、累计充值、收益等数字要按空间自适应格式化。金额很大时显示为 `1.23万`、`123万`、`1.2亿` 等,不能撑破卡片。
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
- 私有图片、身份证照片、支付凭证等禁止匿名访问的文件,前端必须先换取临时 URL;不能直接把私有路径给 `<image>`。
|
|
47
47
|
|
|
48
48
|
<!-- /microi-progressive:chunk -->
|
|
49
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-020 sha256=
|
|
49
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-020 sha256=6f5c05a725b3325feb889fbb4c97621e247ca9d6eb89970bf9f8602a81177524 -->
|
|
50
50
|
## 图片上传必须支持替换与预览
|
|
51
51
|
|
|
52
52
|
头像、支付凭证、实名认证、收款码、证照、商品图、富文本图片等移动端图片上传场景,选择图片后不能把入口锁死。所有上传入口必须统一做到:
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
- 自动化或手工验收至少覆盖支付凭证、头像/实名认证/收款码中一个私有图场景,确认可替换、可预览、不会丢表单字段。
|
|
61
61
|
|
|
62
62
|
<!-- /microi-progressive:chunk -->
|
|
63
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-021 sha256=
|
|
63
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-021 sha256=ad8b543f8e0cd7a20464adb88d456bc21e0451e3f216b1419fa572631543cd49 -->
|
|
64
64
|
## 组件复用与页面去重
|
|
65
65
|
|
|
66
66
|
同一类 UniApp/H5 UI 在两个及以上页面出现时,必须抽成 `Mci*` 或项目级 `mci-*` 组件,不要复制模板和 scoped 样式到多个业务页面。常见必须复用的结构包括:未登录/授权提示、空态、错误态、骨架屏、列表卡片、商品卡、消息卡、筛选栏、Tab、底部操作栏、按钮组、头像/角标。
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
- 对复用组件补充自动化检查:静态检查至少确认业务页使用同一个组件;视觉检查至少覆盖两个不同业务页实例。
|
|
74
74
|
|
|
75
75
|
<!-- /microi-progressive:chunk -->
|
|
76
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-022 sha256=
|
|
76
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-022 sha256=79b92cb4a1e0b37d786b148a98848fbae3f4424b4d07febc96adbf62ef389431 -->
|
|
77
77
|
## 验收要求
|
|
78
78
|
|
|
79
79
|
每次改动 UniApp/H5 前端后,至少做以下验证:
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
- 未登录/未授权态必须额外截图确认:提示卡片位于 header 与 tabBar/底栏之间的可用区域中心,不能只横向居中但纵向贴顶。
|
|
91
91
|
|
|
92
92
|
<!-- /microi-progressive:chunk -->
|
|
93
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-023 sha256=
|
|
93
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-023 sha256=bdd657712c4a6a12698c619d22c58b43648c3a3ab32ded54f09c3dc7331ad8ab -->
|
|
94
94
|
## Microi 前端 SDK 必须接入
|
|
95
95
|
|
|
96
96
|
任何 Microi UniApp/H5 Vue3 项目都必须优先使用 `microi.skills/microi.v8.js` 作为统一前端 SDK,并参考 `microi.skills/microi-frontend-sdk/SKILL.md`。新项目不得再手写分散的 `uni.request`、Token 存储、上传、私有文件 URL、头像解析、`ApiEngine` 或 `FormEngine` 包装。
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
- SDK 不绑定任何 UI 库;页面 UI 仍遵守本 Skill 的骨架屏、安全区、移动端富文本和资源展示规范。
|
|
104
104
|
|
|
105
105
|
<!-- /microi-progressive:chunk -->
|
|
106
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-024 sha256=
|
|
106
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-024 sha256=b2b9b1ea707ab4bd114db5838eda185b7b7e375435cdca21effd7be24f996a27 -->
|
|
107
107
|
## MCI-UI Mobile 必须优先使用
|
|
108
108
|
|
|
109
109
|
新的 Microi UniApp/H5 Vue3 项目必须默认基于 `Microi.UI/src/uniapp` 建立页面基础组件,至少包括页面壳、导航栏、按钮、卡片、分段标签、指标卡、底部安全区操作栏、头像、商品卡、骨架屏、数据状态、富文本。用户未主动指定 UI 风格时,AI 必须自动采用 Microi吾码UI。项目可以使用 `uni-ui`、`uView`、`FirstUI` 等第三方组件,但应封装在 MCI-UI 或项目级 `mci-*` 组件后面,不要让业务页面直接散落多套视觉风格。
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
5. 商品详情、公告、协议等富文本使用 `MciRichText` 或遵循同等结构。
|
|
118
118
|
|
|
119
119
|
<!-- /microi-progressive:chunk -->
|
|
120
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-025 sha256=
|
|
120
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-025 sha256=c472359f2f16b287398c0781cb66cbfb98fea99accddbfa078e9f1e9356aa30d -->
|
|
121
121
|
## 登录、图标与主题补充规范
|
|
122
122
|
|
|
123
123
|
- 登录页不要同时铺开两套完整登录系统。H5/App 默认只做一个“账号/手机号 + 密码”表单;微信小程序默认展示 `<button open-type="getPhoneNumber">` 手机号授权登录,账号密码只能作为次级折叠/备用入口。
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
- 列表进入详情必须保持身份路径:员工列表点报告详情走员工 token/FormEngine 权限,客户列表点报告详情走 CustomerToken,分享链接走 ShareToken;禁止员工点击可见报告后因为传空 CustomerToken 被跳回登录。
|
|
137
137
|
|
|
138
138
|
<!-- /microi-progressive:chunk -->
|
|
139
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-026 sha256=
|
|
139
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-026 sha256=67c8816c77d24e6aef77f1706a72330c7a103b58c623178c056a71203e2b43d3 -->
|
|
140
140
|
## UniApp 上传路径与 Header 规则
|
|
141
141
|
|
|
142
142
|
任何移动端图片、头像、身份认证、付款凭证、富文本图片、收款码上传,都必须走项目统一的 `uploadFile` 包装,并最终委托 `microi.v8.js` 的 `V8.uploadFile`。页面里不得直接调用 `/api/HDFS/UniappUpload`,不得临时手写 `uni.uploadFile`。
|
|
@@ -32,7 +32,7 @@ MCP 的生成/保存入口包含 `microi_build_page_design` 与 `microi_save_pag
|
|
|
32
32
|
你正在为 Microi 吾码平台生成界面引擎页面的 JSON 数据。界面引擎页面由 `formData` 对象描述,用户导入 JSON 即可使用。
|
|
33
33
|
|
|
34
34
|
<!-- microi-progressive:begin -->
|
|
35
|
-
<!-- microi-progressive:chunk id=page-engine-000 sha256=
|
|
35
|
+
<!-- microi-progressive:chunk id=page-engine-000 sha256=5b79a31a8484bf0a618c2810e66c0ab542fd86ceeb76e7a5cd07a86284c4f6ac -->
|
|
36
36
|
## 设计器源码事件
|
|
37
37
|
|
|
38
38
|
只有在扩展界面引擎设计器源码时才使用全局事件总线。用
|
|
@@ -41,7 +41,7 @@ MCP 的生成/保存入口包含 `microi_build_page_design` 与 `microi_save_pag
|
|
|
41
41
|
触发多次;普通页面 JSON 生成不需要注册事件总线。
|
|
42
42
|
|
|
43
43
|
<!-- /microi-progressive:chunk -->
|
|
44
|
-
<!-- microi-progressive:chunk id=page-engine-001 sha256=
|
|
44
|
+
<!-- microi-progressive:chunk id=page-engine-001 sha256=53cf1992d4adcf8126f4d0a04d373d685d539b38c5d74840ba07905e9cbe4589 -->
|
|
45
45
|
## 核心数据结构
|
|
46
46
|
|
|
47
47
|
```
|
|
@@ -60,7 +60,7 @@ formData(页面)
|
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
<!-- /microi-progressive:chunk -->
|
|
63
|
-
<!-- microi-progressive:chunk id=page-engine-002 sha256=
|
|
63
|
+
<!-- microi-progressive:chunk id=page-engine-002 sha256=227ecf87086231eee28a9d91fde6a178a437e9196dd8f2ef1d14d53e5c5858df -->
|
|
64
64
|
## formConfig 页面全局配置
|
|
65
65
|
|
|
66
66
|
```json
|
|
@@ -78,7 +78,7 @@ formData(页面)
|
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
<!-- /microi-progressive:chunk -->
|
|
81
|
-
<!-- microi-progressive:chunk id=page-engine-003 sha256=
|
|
81
|
+
<!-- microi-progressive:chunk id=page-engine-003 sha256=7bb7cb860f9330002f60748e93de3c639b157cddfd77b63ac8b19f0535306e65 -->
|
|
82
82
|
## 容器类型
|
|
83
83
|
|
|
84
84
|
| type | label | 说明 |
|
|
@@ -133,7 +133,7 @@ formData(页面)
|
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
<!-- /microi-progressive:chunk -->
|
|
136
|
-
<!-- microi-progressive:chunk id=page-engine-004 sha256=
|
|
136
|
+
<!-- microi-progressive:chunk id=page-engine-004 sha256=66261254d94455648441bf3519a5c810ede60c64f341dce035f931e284f762ba -->
|
|
137
137
|
## 组件通用结构
|
|
138
138
|
|
|
139
139
|
```json
|
|
@@ -154,7 +154,7 @@ formData(页面)
|
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
<!-- /microi-progressive:chunk -->
|
|
157
|
-
<!-- microi-progressive:chunk id=page-engine-005 sha256=
|
|
157
|
+
<!-- microi-progressive:chunk id=page-engine-005 sha256=e9667b97462c9089a72d2a407cfde00e873afe7d64593bf33ad49a523255b38d -->
|
|
158
158
|
## widgetParams 参数类型
|
|
159
159
|
|
|
160
160
|
| type | 说明 | value 类型 |
|
|
@@ -169,7 +169,7 @@ formData(页面)
|
|
|
169
169
|
| `radio` | 单选组 | `string` |
|
|
170
170
|
|
|
171
171
|
<!-- /microi-progressive:chunk -->
|
|
172
|
-
<!-- microi-progressive:chunk id=page-engine-006 sha256=
|
|
172
|
+
<!-- microi-progressive:chunk id=page-engine-006 sha256=7347b2b4290db41ae8c3ef128acc9854a5e17290268b8e274e771de47b8f752a -->
|
|
173
173
|
## 数据来源(widgetParams[0])
|
|
174
174
|
|
|
175
175
|
大多数组件的第一个参数(sort=0)是"数据来源":
|
|
@@ -182,7 +182,7 @@ $ApiBase$/apiengine/{ApiEngineKey}
|
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
<!-- /microi-progressive:chunk -->
|
|
185
|
-
<!-- microi-progressive:chunk id=page-engine-007 sha256=
|
|
185
|
+
<!-- microi-progressive:chunk id=page-engine-007 sha256=5f2ed06aa1e0abbc5f968f026602d92f22f01836d76fdf502fd91ca0f945509b -->
|
|
186
186
|
## 运行态布局与滚动规范
|
|
187
187
|
|
|
188
188
|
- 页面只保留一个主滚动容器:仪表盘、首页和嵌套界面优先继承最外层页面滚动;单个 `pannel`、`workcenter`、`diytable`、`diycalendar`、嵌套 `pageengine` 在运行态默认使用内容自适应高度和 `overflow: visible`,不得无条件设置 `overflow: auto`。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=page-engine-008 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=page-engine-008 sha256=d3bd322f076bb16a6575e9d9a5b487a9b4fcf98189b163b6608937f4f7615beb -->
|
|
6
6
|
## 所有组件类型
|
|
7
7
|
|
|
8
8
|
### statistic — 统计面板
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
首页编排可以组合 `aiengine`、`workcenter`、`diycalendar`、`diytable` 和一个占大区域的 `pageengine`。公告应优先通过绑定 `diy_notice` 的 `diytable` 渲染,使增删改权限继续由 `sys_menu + _RoleLimits` 控制;统计子页面由客户独立替换时,只需修改被嵌入的 `mic_page`,无需重做首页布局。
|
|
125
125
|
|
|
126
126
|
<!-- /microi-progressive:chunk -->
|
|
127
|
-
<!-- microi-progressive:chunk id=page-engine-009 sha256=
|
|
127
|
+
<!-- microi-progressive:chunk id=page-engine-009 sha256=81364ae7567d4eeb5a2543d8e3f89ef752e34dfa829a6a53625486cd6458ffdb -->
|
|
128
128
|
## Office/PDF 在线预览自然语言生成规则
|
|
129
129
|
|
|
130
130
|
当用户用自然语言要求“界面引擎预览 PDF/Word/Excel/PPT”“接口引擎返回 PDF 文件”“打开时跳到第 N 页”“按角色显示不同页码”“每 5 秒/10 秒轮询,但只有文件变化才刷新”时,优先生成 `office` 组件,而不是 `iframe/html/browser` 拼接。
|
|
@@ -196,7 +196,7 @@ return { Code: 1, Data: { NotModified: true, FileKey: currentFileKey } };
|
|
|
196
196
|
生成示例接口时必须写清楚中文注释:每个参数的含义、Redis/缓存 Key 的作用、什么情况下返回 `NeedRefresh:false`、什么情况下返回新的 `FileByteBase64/FileUrl` 和 `PageNumber`。
|
|
197
197
|
|
|
198
198
|
<!-- /microi-progressive:chunk -->
|
|
199
|
-
<!-- microi-progressive:chunk id=page-engine-010 sha256=
|
|
199
|
+
<!-- microi-progressive:chunk id=page-engine-010 sha256=98256e1f8068f29e3e7cb2096fb8290966a58d47390371bec965001a9e706ddd -->
|
|
200
200
|
## searchData 查询条件通用结构
|
|
201
201
|
|
|
202
202
|
```json
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=page-engine-011 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=page-engine-011 sha256=44c991a664b2379ed0d88b8f307e8cfbff27e4c349270cd9872f856f0d0b570b -->
|
|
6
6
|
## 版本历史、并发保存与回滚
|
|
7
7
|
|
|
8
8
|
修改现有页面时必须先读取页面详情中的 `CurrentHash`,保存时把它作为 `expectedHash` 传入,并填写简短 `changeSummary`。不要仅凭本地旧 JSON 覆盖远端页面。
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
- 页面历史属于当前租户数据库;不要假定业务表有物理 `OsClient` 列。
|
|
23
23
|
|
|
24
24
|
<!-- /microi-progressive:chunk -->
|
|
25
|
-
<!-- microi-progressive:chunk id=page-engine-012 sha256=
|
|
25
|
+
<!-- microi-progressive:chunk id=page-engine-012 sha256=61a83f536eede477a85d7d49cadf516e705d7d67510c189f9fb6ab0e72ba63db -->
|
|
26
26
|
## 本地撤销、Vue 源码桥与资产包
|
|
27
27
|
|
|
28
28
|
- 设计器本地历史最多 50 步、总计最多 20MB;连续编辑允许合并,但保存前必须刷新当前 `CurrentHash`。
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
- 复杂页面需要完整工程能力时提升为前端微服务;不要承诺任意 Vue 源码无损反编译回界面引擎。
|
|
37
37
|
|
|
38
38
|
<!-- /microi-progressive:chunk -->
|
|
39
|
-
<!-- microi-progressive:chunk id=page-engine-013 sha256=
|
|
39
|
+
<!-- microi-progressive:chunk id=page-engine-013 sha256=b7b520f7d38872b7c5f3972548eb87586798bbc6dba11c6035a6d512c85be22f -->
|
|
40
40
|
## 生成 JSON 注意事项
|
|
41
41
|
|
|
42
42
|
1. **编号唯一**:`wrapperOption.number` 和 `widgetOption.number` 页面内唯一(随机5位整数)
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
7. **formConfig 完整**:所有字段都应包含,不能省略
|
|
49
49
|
8. **选项卡容器**:组件放在 `tabWidgetMap[tabKey][]` 中,不放在 `widgetList` 中
|
|
50
50
|
<!-- /microi-progressive:chunk -->
|
|
51
|
-
<!-- microi-progressive:chunk id=page-engine-014 sha256=
|
|
51
|
+
<!-- microi-progressive:chunk id=page-engine-014 sha256=18fecb3e402daeb1f95e8f501c4456455a4c1a3b9de83208d03676f5cbf1cf84 -->
|
|
52
52
|
## 经营看板周期筛选与布局规则
|
|
53
53
|
|
|
54
54
|
- 老板驾驶舱、经营看板、CRM/订单/售后统计页面,所有统计类组件默认都要提供统一周期筛选:本日、本周、本月、本季、本年、去年,以及“更多”里的自定义时间范围和业务条件。
|
|
@@ -16,7 +16,7 @@ description: 按 Microi 系统真实业务逻辑进行 Playwright 全自动化
|
|
|
16
16
|
`E2E` 是 `End-to-End`,中文通常叫"端到端测试"。它强调从用户入口开始,穿过前端页面、接口引擎、表单引擎、权限、缓存、数据库等真实链路,验证一条业务路径是否真的可交付。
|
|
17
17
|
|
|
18
18
|
<!-- microi-progressive:begin -->
|
|
19
|
-
<!-- microi-progressive:chunk id=playwright-e2e-000 sha256=
|
|
19
|
+
<!-- microi-progressive:chunk id=playwright-e2e-000 sha256=a6ef528a2a940fd0f58efaee6b73eb5dbc159db93d95afedf41c7b8642536d18 -->
|
|
20
20
|
## 是否需要 `-e2e` 后缀
|
|
21
21
|
|
|
22
22
|
建议保留 `playwright-e2e` 这个 skill 名称。
|
|
@@ -26,7 +26,7 @@ description: 按 Microi 系统真实业务逻辑进行 Playwright 全自动化
|
|
|
26
26
|
- 如果未来要补更细的能力,可以新增 `playwright-api` 或 `visual-regression`,不要把当前 skill 改成泛泛的 `playwright`。
|
|
27
27
|
|
|
28
28
|
<!-- /microi-progressive:chunk -->
|
|
29
|
-
<!-- microi-progressive:chunk id=playwright-e2e-001 sha256=
|
|
29
|
+
<!-- microi-progressive:chunk id=playwright-e2e-001 sha256=b3970a9a4603447651520667c05ab4ecfae01b65b3f752e9f318007c5e2699c1 -->
|
|
30
30
|
## 适用范围
|
|
31
31
|
|
|
32
32
|
- PC 管理端:`Microi.Client`、租户后台、运营后台。
|
|
@@ -38,7 +38,7 @@ description: 按 Microi 系统真实业务逻辑进行 Playwright 全自动化
|
|
|
38
38
|
不适合把 Playwright 用来替代 V8 单函数调试。单个接口引擎的入参输出优先用 VS Code 插件远程执行、MCP `microi_run_engine` 或后端单元测试。
|
|
39
39
|
|
|
40
40
|
<!-- /microi-progressive:chunk -->
|
|
41
|
-
<!-- microi-progressive:chunk id=playwright-e2e-002 sha256=
|
|
41
|
+
<!-- microi-progressive:chunk id=playwright-e2e-002 sha256=495c6f4b8388d94e16372d83c9e3ec3e6972112e03dba0adae413c8ac9d77232 -->
|
|
42
42
|
## 临时文件与产物放置规则(必须遵守)
|
|
43
43
|
|
|
44
44
|
AI 在工作区内生成的**一次性临时脚本、诊断文件、截图、测试报告**等,**绝对不能放在工作区根目录**,必须放在以下指定位置:
|
|
@@ -58,7 +58,7 @@ AI 在工作区内生成的**一次性临时脚本、诊断文件、截图、测
|
|
|
58
58
|
**2026-06 强制补充**:AI 手写的一次性 Playwright 验证脚本、运行日志、截图和报告只能写到工作区根目录 `.tmp/`。不要写到 `Microi.Client/`、`Microi.Server/`、`microi.doc/` 或其它子项目目录,即使这些目录已有 `tests/` 目录也不例外。只有 Microi.Agent 插件正式初始化的可复用 E2E 工程,才使用 `.microi-e2e/`。
|
|
59
59
|
|
|
60
60
|
<!-- /microi-progressive:chunk -->
|
|
61
|
-
<!-- microi-progressive:chunk id=playwright-e2e-003 sha256=
|
|
61
|
+
<!-- microi-progressive:chunk id=playwright-e2e-003 sha256=247ddb9017c174f0daa88d1f6e4220c5530b79c5ac976e61e128ed8bd0aa1fea -->
|
|
62
62
|
## 标准目录
|
|
63
63
|
|
|
64
64
|
前端项目中推荐使用 `tests/e2e`,而不是根目录 `e2e`,这样能和单元测试、组件测试并列。
|
|
@@ -79,7 +79,7 @@ AI 在工作区内生成的**一次性临时脚本、诊断文件、截图、测
|
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
<!-- /microi-progressive:chunk -->
|
|
82
|
-
<!-- microi-progressive:chunk id=playwright-e2e-004 sha256=
|
|
82
|
+
<!-- microi-progressive:chunk id=playwright-e2e-004 sha256=f71fe44f7d5753b93804dac958ea8205cddcaee25188a8417b33770e305c46ed -->
|
|
83
83
|
## 必备环境变量
|
|
84
84
|
|
|
85
85
|
```bash
|
|
@@ -101,7 +101,7 @@ PW_HOME_PATH=/#/pages/index/index
|
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
<!-- /microi-progressive:chunk -->
|
|
104
|
-
<!-- microi-progressive:chunk id=playwright-e2e-005 sha256=
|
|
104
|
+
<!-- microi-progressive:chunk id=playwright-e2e-005 sha256=a66696c3263f060d0b7be309a527fca6a9bad95dd534eabbe84f1b6539770d8e -->
|
|
105
105
|
## 本地测试账号自动发现
|
|
106
106
|
|
|
107
107
|
当没有显式传入 `PW_TEST_ACCOUNT` / `PW_TEST_PASSWORD` / `MICROI_OSCLIENT` 时,AI 不要把账号密码写入后端配置来制造旁路:
|
|
@@ -126,7 +126,7 @@ PW_HOME_PATH=/#/pages/index/index
|
|
|
126
126
|
Profile/`--user-data-dir`。自动化收尾只关闭自己创建的 context/browser。
|
|
127
127
|
|
|
128
128
|
<!-- /microi-progressive:chunk -->
|
|
129
|
-
<!-- microi-progressive:chunk id=playwright-e2e-006 sha256=
|
|
129
|
+
<!-- microi-progressive:chunk id=playwright-e2e-006 sha256=6aeefebda3a9e598564c53c2f8028a4ccefe2291c4c7c7ae4781ca15fb5d0697 -->
|
|
130
130
|
## 后端改动后的 E2E 前置动作
|
|
131
131
|
|
|
132
132
|
如果本轮任务修改过 `Microi.Server/**` 后端源码、配置、控制器、服务、依赖项目或接口行为,跑 Playwright、页面截图、接口验收或前后端联调前,必须先按 `workspace-conventions` 的“后端代码改动后的重启验收”完成:
|
|
@@ -139,7 +139,7 @@ PW_HOME_PATH=/#/pages/index/index
|
|
|
139
139
|
不要只说“代码已编译”或“需要用户自己重启后端”;除非用户明确要求不要中断当前服务,否则 AI 要主动完成重启。
|
|
140
140
|
|
|
141
141
|
<!-- /microi-progressive:chunk -->
|
|
142
|
-
<!-- microi-progressive:chunk id=playwright-e2e-007 sha256=
|
|
142
|
+
<!-- microi-progressive:chunk id=playwright-e2e-007 sha256=c8d57e63b1445bea306218ccbea953412c0f20aa908fab7a0a3f4ea45602071d -->
|
|
143
143
|
## 服务自启动纪律(必做)
|
|
144
144
|
|
|
145
145
|
执行自动化测试、截图巡检、接口引擎回读、`/apiengine/{key}` 验收时,如果本地后端或前端不可达,不能把 `fetch failed`、`ECONNREFUSED`、`000 Failed to connect`、端口无人监听当作任务终点。必须先自动启动所需服务,再继续完整验证。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=playwright-e2e-008 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=playwright-e2e-008 sha256=1ac51fe5663202a639d1983dcd882e4559201b68c90b5b81a17231ed04e24182 -->
|
|
6
6
|
## 全自动登录(免验证码,但不免密码)——必读
|
|
7
7
|
|
|
8
8
|
E2E 自动化最容易卡在「登录页有图形验证码」。Microi 后端允许自动化跳过验证码,但账号和密码必须始终走真实校验;如果密码配置错了,登录接口必须返回账号或密码错误。源码见 `Microi.Server/Microi.net.Api/Controllers/SysUserController.cs`(`Login` 方法开头)。
|
|
@@ -66,7 +66,7 @@ export async function automationLogin(page, {
|
|
|
66
66
|
> 直连接口验收(不进页面)使用自动化标记拿 Token;历史 `_DEV_BYPASS_`、Dev Key 和 `DevLoginBypass` 均不得继续使用。
|
|
67
67
|
|
|
68
68
|
<!-- /microi-progressive:chunk -->
|
|
69
|
-
<!-- microi-progressive:chunk id=playwright-e2e-009 sha256=
|
|
69
|
+
<!-- microi-progressive:chunk id=playwright-e2e-009 sha256=1466c4443d44a2957877971ecef64e228732af26a9030d02543f4a82c01e24ca -->
|
|
70
70
|
## 表单引擎卡死/递归更新全自动化诊断
|
|
71
71
|
|
|
72
72
|
当用户反馈“新增抽屉卡死”“设计页卡死”“点击控件无响应”“Maximum recursive updates exceeded”等表单引擎问题时,优先做可复现的 Playwright 诊断,而不是只靠猜测改代码。
|
|
@@ -121,7 +121,7 @@ npm run test:form-freeze:auto
|
|
|
121
121
|
- 修复后必须重跑同一个诊断用例,确认最后 trace 不再无限重复,并且页面在 10-15 秒后仍可响应。
|
|
122
122
|
|
|
123
123
|
<!-- /microi-progressive:chunk -->
|
|
124
|
-
<!-- microi-progressive:chunk id=playwright-e2e-010 sha256=
|
|
124
|
+
<!-- microi-progressive:chunk id=playwright-e2e-010 sha256=484eff47612bc41ec9abf825d776e49bd71335f5815b0d1ce8749d9c86ba07bf -->
|
|
125
125
|
## 移动端视觉与资源验收
|
|
126
126
|
|
|
127
127
|
uni-app H5、移动商城、分享海报、首页改版这类任务不能只跑接口和 DOM 断言。每次涉及页面风格、图片、二维码、商品卡片、首页聚合时,Playwright 必须补齐以下检查:
|
|
@@ -134,7 +134,7 @@ uni-app H5、移动商城、分享海报、首页改版这类任务不能只跑
|
|
|
134
134
|
- 对分享海报二维码,优先断言平台接口,如 `/api/Os/CreateQRCodeImage`,或平台接口引擎返回的 HDFS 图片路径。
|
|
135
135
|
|
|
136
136
|
<!-- /microi-progressive:chunk -->
|
|
137
|
-
<!-- microi-progressive:chunk id=playwright-e2e-011 sha256=
|
|
137
|
+
<!-- microi-progressive:chunk id=playwright-e2e-011 sha256=1aadaaf4d0a757e7225a33ff2a9b6621ea6e6430fb7eb92cb96d40ffb87f66af -->
|
|
138
138
|
## 测试证据必须绑定需求编号
|
|
139
139
|
|
|
140
140
|
当用户一次提出多个问题时,Playwright 用例、截图文件名和最终测试报告必须能回到原始 `1、2、3...` 编号。
|
|
@@ -145,7 +145,7 @@ uni-app H5、移动商城、分享海报、首页改版这类任务不能只跑
|
|
|
145
145
|
- 如果某项属于后台元数据或数据库配置,仍需通过接口/数据库回读给出证据;前端截图只能证明展示,不等价于后台配置已改。
|
|
146
146
|
|
|
147
147
|
<!-- /microi-progressive:chunk -->
|
|
148
|
-
<!-- microi-progressive:chunk id=playwright-e2e-012 sha256=
|
|
148
|
+
<!-- microi-progressive:chunk id=playwright-e2e-012 sha256=c5c754c843a1adfc4911e3676b36b6d4fc91cd2c269ee2dc000e547ac19428c6 -->
|
|
149
149
|
## 移动端/H5 回归纪律
|
|
150
150
|
|
|
151
151
|
处理 uni-app H5 移动商城的交易、资产、登录、购物车、抢购、充值、分享或图片相关问题时,不能只改代码后让用户手工发现问题。完成实现后必须至少执行(以下变量按项目实际情况替换):
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=playwright-e2e-013 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=playwright-e2e-013 sha256=ca9bd62faa3dbc125592e1185577e24f58d4bdc391afdc9c4537d261651442ec -->
|
|
6
6
|
## 文字对比度与可读性自动化检查(必做)
|
|
7
7
|
|
|
8
8
|
凡涉及前端样式、卡片、芯片、按钮、价格区间筛选条、退出登录、徽章、覆盖文字(金色/渐变背景上的小字)、列表副标题、空状态等,**测试与人眼复核都必须执行对比度检查**。典型教训:筛选条文字、幽灵按钮、轻色副标题在近似底色下肉眼几乎不可见,但接口/DOM 断言全部通过——这类对比度问题必须通过自动化审计捕捉。
|
|
@@ -72,7 +72,7 @@ expect(lowContrast, '低对比度文字: ' + JSON.stringify(lowContrast.slice(0,
|
|
|
72
72
|
5. 价格区间、状态、筛选这类**导航/筛选元素出现在列表中部作为标题**——必须移到顶部 sticky 工具栏,并与正文形成色彩区隔。
|
|
73
73
|
|
|
74
74
|
<!-- /microi-progressive:chunk -->
|
|
75
|
-
<!-- microi-progressive:chunk id=playwright-e2e-014 sha256=
|
|
75
|
+
<!-- microi-progressive:chunk id=playwright-e2e-014 sha256=e5858cce6f743573d699ed7d2d07f958d15be96c28028a91163e841f6d3c016a -->
|
|
76
76
|
## 安装
|
|
77
77
|
|
|
78
78
|
```bash
|
|
@@ -122,7 +122,7 @@ npx playwright test
|
|
|
122
122
|
手写 Playwright 脚本时读取 `PW_CHROMIUM_EXECUTABLE` / `PW_BROWSER_EXECUTABLE` 并传给 `chromium.launch({ executablePath })`;Playwright Test 配置中通过 `use.launchOptions.executablePath` 读取该环境变量。只有 CDN、系统浏览器和本地缓存都不可用时,才报告浏览器不可用。
|
|
123
123
|
|
|
124
124
|
<!-- /microi-progressive:chunk -->
|
|
125
|
-
<!-- microi-progressive:chunk id=playwright-e2e-015 sha256=
|
|
125
|
+
<!-- microi-progressive:chunk id=playwright-e2e-015 sha256=0ceff2869cb591370ba1cf1766ae673e7ed99f97f42bb757aadeae832f0f8803 -->
|
|
126
126
|
## playwright.config.js 模板
|
|
127
127
|
|
|
128
128
|
```js
|
package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=playwright-e2e-016 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=playwright-e2e-016 sha256=49c59ee833b3ac8ad96d0ff5876b47459e2a26c7a6d233ff08abf082d43076dd -->
|
|
6
6
|
## Microi helper 模板
|
|
7
7
|
|
|
8
8
|
```js
|
|
@@ -73,7 +73,7 @@ export function assertDosResultShape(json, label = 'DosResult') {
|
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
<!-- /microi-progressive:chunk -->
|
|
76
|
-
<!-- microi-progressive:chunk id=playwright-e2e-017 sha256=
|
|
76
|
+
<!-- microi-progressive:chunk id=playwright-e2e-017 sha256=d837b942878764ad94bedb09869dd50b627660d86a848043984de2f05f0e071b -->
|
|
77
77
|
## 典型用例
|
|
78
78
|
|
|
79
79
|
```js
|
|
@@ -103,7 +103,7 @@ test('公开接口引擎返回标准 DosResult', async ({ request }) => {
|
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
<!-- /microi-progressive:chunk -->
|
|
106
|
-
<!-- microi-progressive:chunk id=playwright-e2e-018 sha256=
|
|
106
|
+
<!-- microi-progressive:chunk id=playwright-e2e-018 sha256=90e55b07d1e2a71dbd9f8e82a07e361fd5ec5269753c7d193e55216eddbbc834 -->
|
|
107
107
|
## Microi 专属测试策略
|
|
108
108
|
|
|
109
109
|
1. 先用 MCP `microi_get_playwright_context` 获取当前租户的菜单路由、接口引擎、匿名状态。
|
|
@@ -121,7 +121,7 @@ test('公开接口引擎返回标准 DosResult', async ({ request }) => {
|
|
|
121
121
|
9. 用 `page.on('response', r => { if (r.url().includes('/file/') && !r.ok()) failedAssets.push(r.url()); })` 监听全部资源请求,断言 `failedAssets.length === 0`,能在断言前就抓到 404 图片。
|
|
122
122
|
|
|
123
123
|
<!-- /microi-progressive:chunk -->
|
|
124
|
-
<!-- microi-progressive:chunk id=playwright-e2e-019 sha256=
|
|
124
|
+
<!-- microi-progressive:chunk id=playwright-e2e-019 sha256=76dce4264c93b7ab5be25f42dcbda55cd1f08afd2f5811998f81d9c4d26e0377 -->
|
|
125
125
|
## 最少冒烟集
|
|
126
126
|
|
|
127
127
|
任何 Microi 业务系统建议至少覆盖:
|
|
@@ -134,7 +134,7 @@ test('公开接口引擎返回标准 DosResult', async ({ request }) => {
|
|
|
134
134
|
6. 退出登录能清理 Token 并回到登录页。
|
|
135
135
|
|
|
136
136
|
<!-- /microi-progressive:chunk -->
|
|
137
|
-
<!-- microi-progressive:chunk id=playwright-e2e-020 sha256=
|
|
137
|
+
<!-- microi-progressive:chunk id=playwright-e2e-020 sha256=a267a39f5fe3dab714c5275759f7bdd1b6150990fa00555e07c091aee5795a29 -->
|
|
138
138
|
## 完整业务验收门槛
|
|
139
139
|
|
|
140
140
|
当用户要求“完整测试”“全面测试”“不要让我手工测出接口 null/404/权限漏洞”时,不能只生成浅冒烟。至少补齐以下测试文件:
|
|
@@ -183,7 +183,7 @@ tests/e2e/
|
|
|
183
183
|
- 首页运营 banner 推荐从公告或配置表驱动;E2E 要同时断言接口返回、图片真实加载、点击进入详情页。
|
|
184
184
|
|
|
185
185
|
<!-- /microi-progressive:chunk -->
|
|
186
|
-
<!-- microi-progressive:chunk id=playwright-e2e-021 sha256=
|
|
186
|
+
<!-- microi-progressive:chunk id=playwright-e2e-021 sha256=3a2ad9d446d5169735e0cedfc0bec84d8a4ba5c23cd0401190bf23708d344dce -->
|
|
187
187
|
## 与 MCP 的配合
|
|
188
188
|
|
|
189
189
|
- `microi_get_db_schema`:写测试前确认表和字段。
|
|
@@ -193,7 +193,7 @@ tests/e2e/
|
|
|
193
193
|
- `microi_set_engine_anonymous`:登录、注册、公开首页接口需要匿名访问时使用;设置后仍要验证 HTTP `/apiengine/{key}` + `osclient` Header 返回标准 DosResult。
|
|
194
194
|
|
|
195
195
|
<!-- /microi-progressive:chunk -->
|
|
196
|
-
<!-- microi-progressive:chunk id=playwright-e2e-022 sha256=
|
|
196
|
+
<!-- microi-progressive:chunk id=playwright-e2e-022 sha256=4c8a62a896b5f1f97ea41bcd3afdb0dc3c3609ead6c92283dcfa703c09311b42 -->
|
|
197
197
|
## 与 VS Code 插件的配合
|
|
198
198
|
|
|
199
199
|
### Microi VS Code 插件
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
4
|
|
|
5
|
-
<!-- microi-progressive:chunk id=playwright-e2e-023 sha256=
|
|
5
|
+
<!-- microi-progressive:chunk id=playwright-e2e-023 sha256=d0fe6ae9a31033fca37017b9c065dba2ef9acfc91505eb113e4084180a322ace -->
|
|
6
6
|
## CI 建议
|
|
7
7
|
|
|
8
8
|
```yaml
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
<!-- /microi-progressive:chunk -->
|
|
31
|
-
<!-- microi-progressive:chunk id=playwright-e2e-024 sha256=
|
|
31
|
+
<!-- microi-progressive:chunk id=playwright-e2e-024 sha256=e14464e157beb905d85fdd1f284b677538f60d6d9d3a860515626e52738dac5b -->
|
|
32
32
|
## 常见问题
|
|
33
33
|
|
|
34
34
|
| 现象 | 原因 | 处理 |
|
|
@@ -90,7 +90,7 @@ OsClient 仍为空时调用目标站点域名租户解析接口或从成功请
|
|
|
90
90
|
Profile 或独立 `--user-data-dir`。
|
|
91
91
|
|
|
92
92
|
<!-- /microi-progressive:chunk -->
|
|
93
|
-
<!-- microi-progressive:chunk id=playwright-e2e-025 sha256=
|
|
93
|
+
<!-- microi-progressive:chunk id=playwright-e2e-025 sha256=be071153d695081b7c20d34cb5e9563480e3f09d9cd0292f2ca4b0245438787b -->
|
|
94
94
|
## 前端微服务 E2E 必测点
|
|
95
95
|
|
|
96
96
|
测试 Vue3 MicroApp 微服务时,不能只验证 `/micro-app/{OsClient}/{appKey}/index.html` 或带 token 的临时 URL。必须先建立真实登录态,再访问用户实际使用的不带 token 菜单路由,例如 `/#/micro-app/{MsKey}/{RoutePath}`,并确认地址栏没有退回旧的 `micro-app-host` 长地址。
|
|
@@ -102,7 +102,7 @@ Profile 或独立 `--user-data-dir`。
|
|
|
102
102
|
如果页面内提供 Microi SDK 调用按钮,必须点击并断言返回 `Code=1`,同时确认没有 `登录身份已过期`、`1001`、`1002`。只看到标题文本不代表鉴权链路通过。
|
|
103
103
|
|
|
104
104
|
<!-- /microi-progressive:chunk -->
|
|
105
|
-
<!-- microi-progressive:chunk id=playwright-e2e-026 sha256=
|
|
105
|
+
<!-- microi-progressive:chunk id=playwright-e2e-026 sha256=3c8a1e8bbe281064f30f406703230d8df213f1f1e1d124edb8f9fc8a1df782ea -->
|
|
106
106
|
## 动态模块按钮验收
|
|
107
107
|
|
|
108
108
|
修复或新增 `MoreBtns/FormBtns/PageBtns/PageTabs` 时,运行页看到按钮只证明“最终渲染结果”,不能证明入口确实可由模块引擎维护。至少同时保留三类证据:
|