|
- <!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>训练编排返回列表与页面标签聚焦回归</title><style>*{box-sizing:border-box}body{margin:0;background:#f2f6f8;color:#203b46;font:15px/1.75 system-ui,"Microsoft YaHei",sans-serif}main{max-width:1180px;margin:auto;padding:28px 22px}header{background:#103c45;color:white;padding:26px 30px;border-radius:12px}h1{font-size:26px;margin:0 0 12px}h2{font-size:21px}h3{font-size:17px;overflow-wrap:anywhere}section,article{background:white;border:1px solid #dce6ec;border-radius:10px;padding:22px 26px;margin:20px 0}.pass{color:#14744f}.fail{color:#b5373e}header .pass{color:#a9f0d2}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8fa;padding:15px;max-height:440px;overflow:auto;font-size:12px}summary{color:#137d6e;cursor:pointer}figure{margin:18px 0 0}img{display:block;width:100%;height:auto;border:1px solid #dce6ec}figcaption,footer{font-size:13px;color:#637f8c;overflow-wrap:anywhere}li,p{overflow-wrap:anywhere}@media(max-width:700px){main{padding:14px 10px}header,section,article{padding:18px}h1{font-size:23px}}</style></head><body><main><header><h1>训练编排返回列表与页面标签聚焦回归 <span class="pass">PASS</span></h1><p>真实教员身份 · 已有狐狸 161 / 牛奶卡车 162 · localhost 与局域网</p><p>通过 8 / 8 项 · 业务真实写入 0 次</p></header><section><h2>资料 → 原型 → 设计 → 开发</h2><p>依据用户要求及现有标签约定:点击顶部“返回列表”完成导航后关闭当前编辑标签;导航取消或保存失败时保留。手动切换标签不关闭工程。</p><p>本次仅修改 LegacyTrainingPageView.vue 的返回回调,先等待路由与离开确认完成,再关闭捕获的原标签。保存、发布、标签 store 与 PageTabs 的路径保持现状。</p><ul><li>仅验证顶部返回列表及现有离开确认。打开已有训练 161/162,业务写请求全部由浏览器拦截。</li><li>“保存并离开”的失败由浏览器模拟 HTTP 503;不代表真实服务端故障。没有真实保存、发布、上传或修改这两条项目。</li><li>本轮未测试成功保存或成功发布;其业务路径未被本次代码修改。</li></ul></section><section><h2>测试与构建</h2><p><b>pnpm run build:PASS</b> · 根代理执行,含 vue-tsc、Vite 与 iframe 校验;既有构建警告不影响退出码 0。</p><p><b>git diff --check:PASS</b> · 根代理执行,退出码 0。</p><p>JSON 证据:<a href="evidence.json">evidence.json</a>。所有截图来自实际浏览器,测试凭据没有写入报告。</p></section><article><h3>手动切换标签保留原编辑页 <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "before": {
- "path": "/content/training-projects/162/legacy",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/161/legacy",
- "fullPath": "/content/training-projects/161/legacy",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/162/legacy",
- "fullPath": "/content/training-projects/162/legacy",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": false
- },
- {
- "title": "训练编排",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- }
- ]
- },
- "after": {
- "path": "/content/training-projects/161/legacy",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/161/legacy",
- "fullPath": "/content/training-projects/161/legacy",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/162/legacy",
- "fullPath": "/content/training-projects/162/legacy",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- },
- {
- "title": "训练编排",
- "active": false
- }
- ]
- },
- "method": "真实页面标签点击"
- }</pre></details><figure><a href="screenshots/01-manual-switch-keeps-editors.png" target="_blank"><img src="screenshots/01-manual-switch-keeps-editors.png" alt="手动切换标签保留原编辑页" loading="lazy"></a><figcaption>手动切换标签保留原编辑页 · screenshots/01-manual-switch-keeps-editors.png</figcaption></figure></article><article><h3>顶部返回只关闭当前编辑标签,保留列表及另一编辑标签 <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "path": "/content/training-projects",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/162/legacy",
- "fullPath": "/content/training-projects/162/legacy",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- },
- {
- "title": "训练编排",
- "active": false
- }
- ]
- }</pre></details><figure><a href="screenshots/02-return-closes-current.png" target="_blank"><img src="screenshots/02-return-closes-current.png" alt="顶部返回只关闭当前编辑标签,保留列表及另一编辑标签" loading="lazy"></a><figcaption>顶部返回只关闭当前编辑标签,保留列表及另一编辑标签 · screenshots/02-return-closes-current.png</figcaption></figure></article><article><h3>刷新后已关闭标签不复活 <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "path": "/content/training-projects",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/162/legacy",
- "fullPath": "/content/training-projects/162/legacy",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- },
- {
- "title": "训练编排",
- "active": false
- }
- ]
- }</pre></details><figure><a href="screenshots/03-refresh-no-resurrection.png" target="_blank"><img src="screenshots/03-refresh-no-resurrection.png" alt="刷新后已关闭标签不复活" loading="lazy"></a><figcaption>刷新后已关闭标签不复活 · screenshots/03-refresh-no-resurrection.png</figcaption></figure></article><article><h3>未保存时 Escape 取消返回,原页与修改保留 <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "path": "/content/training-projects/161/legacy",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/162/legacy",
- "fullPath": "/content/training-projects/162/legacy",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/161/legacy",
- "fullPath": "/content/training-projects/161/legacy",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": false
- },
- {
- "title": "训练编排",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- }
- ]
- }</pre></details><figure><a href="screenshots/04-unsaved-return-confirmation.png" target="_blank"><img src="screenshots/04-unsaved-return-confirmation.png" alt="未保存时 Escape 取消返回,原页与修改保留" loading="lazy"></a><figcaption>未保存时 Escape 取消返回,原页与修改保留 · screenshots/04-unsaved-return-confirmation.png</figcaption></figure><figure><a href="screenshots/05-escape-keeps-editor.png" target="_blank"><img src="screenshots/05-escape-keeps-editor.png" alt="未保存时 Escape 取消返回,原页与修改保留" loading="lazy"></a><figcaption>未保存时 Escape 取消返回,原页与修改保留 · screenshots/05-escape-keeps-editor.png</figcaption></figure></article><article><h3>保存并离开失败时不导航、不删除编辑标签(浏览器模拟 503) <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "tabs": {
- "path": "/content/training-projects/161/legacy",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/162/legacy",
- "fullPath": "/content/training-projects/162/legacy",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/161/legacy",
- "fullPath": "/content/training-projects/161/legacy",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": false
- },
- {
- "title": "训练编排",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- }
- ]
- },
- "writes": [
- {
- "origin": "http://127.0.0.1:6180",
- "path": "/api/tran/v1/content/projects/161/assets/upload",
- "method": "POST",
- "response": 503,
- "forwarded": false
- },
- {
- "origin": "http://127.0.0.1:6180",
- "path": "/api/tran/v1/content/projects/161",
- "method": "PUT",
- "response": 503,
- "forwarded": false
- }
- ],
- "simulated": true
- }</pre></details><figure><a href="screenshots/06-save-failure-keeps-editor.png" target="_blank"><img src="screenshots/06-save-failure-keeps-editor.png" alt="保存并离开失败时不导航、不删除编辑标签(浏览器模拟 503)" loading="lazy"></a><figcaption>保存并离开失败时不导航、不删除编辑标签(浏览器模拟 503) · screenshots/06-save-failure-keeps-editor.png</figcaption></figure></article><article><h3>明确放弃修改后返回并关闭当前编辑标签 <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "path": "/content/training-projects",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- },
- {
- "key": "/content/training-projects/162/legacy",
- "fullPath": "/content/training-projects/162/legacy",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- },
- {
- "title": "训练编排",
- "active": false
- }
- ]
- }</pre></details><figure><a href="screenshots/07-discard-closes-current.png" target="_blank"><img src="screenshots/07-discard-closes-current.png" alt="明确放弃修改后返回并关闭当前编辑标签" loading="lazy"></a><figcaption>明确放弃修改后返回并关闭当前编辑标签 · screenshots/07-discard-closes-current.png</figcaption></figure></article><article><h3>服务端两项目版本、封面与内容校验值未变 <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "projects": [
- {
- "id": "161",
- "version": 9,
- "currentVersionId": "213",
- "publishedVersionId": "213",
- "coverUri": "fsvc://unreal-tran/image/2026/09/05/32b2fb56adf53691ede867a8c957c573.jpg",
- "checksum": "d5a0f4c872c8e275db980808375d9351bd51ea0aaf6b52bf453b7e8f9cc55605",
- "unchanged": true,
- "after": {
- "id": "161",
- "version": 9,
- "currentVersionId": "213",
- "publishedVersionId": "213",
- "coverUri": "fsvc://unreal-tran/image/2026/09/05/32b2fb56adf53691ede867a8c957c573.jpg",
- "checksum": "d5a0f4c872c8e275db980808375d9351bd51ea0aaf6b52bf453b7e8f9cc55605"
- }
- },
- {
- "id": "162",
- "version": 6,
- "currentVersionId": "214",
- "publishedVersionId": "214",
- "coverUri": "fsvc://unreal-tran/image/2026/09/05/be78d4ad687c3872a15001b8333f1afe.jpg",
- "checksum": "e13b82f8fbc38ad327d8f83baec8295316e614132acf5eeeba25ea7371dfd9d3",
- "unchanged": true,
- "after": {
- "id": "162",
- "version": 6,
- "currentVersionId": "214",
- "publishedVersionId": "214",
- "coverUri": "fsvc://unreal-tran/image/2026/09/05/be78d4ad687c3872a15001b8333f1afe.jpg",
- "checksum": "e13b82f8fbc38ad327d8f83baec8295316e614132acf5eeeba25ea7371dfd9d3"
- }
- }
- ],
- "forwardedBusinessWrites": 0
- }</pre></details></article><article><h3>局域网地址返回列表也关闭当前编辑标签 <span class="pass">PASS</span></h3><details><summary>查看真实观察记录</summary><pre>{
- "origin": "http://192.168.31.168:6180",
- "tabs": {
- "path": "/content/training-projects",
- "entries": [
- {
- "key": "/dashboard",
- "fullPath": "/dashboard",
- "title": "工作总览",
- "locked": false
- },
- {
- "key": "/profile",
- "fullPath": "/profile",
- "title": "个人中心",
- "locked": false
- },
- {
- "key": "/content/training-projects",
- "fullPath": "/content/training-projects",
- "title": "训练编排",
- "locked": false
- }
- ],
- "labels": [
- {
- "title": "工作总览",
- "active": false
- },
- {
- "title": "个人中心",
- "active": false
- },
- {
- "title": "训练编排",
- "active": true
- }
- ]
- }
- }</pre></details><figure><a href="screenshots/08-lan-return-closes-current.png" target="_blank"><img src="screenshots/08-lan-return-closes-current.png" alt="局域网地址返回列表也关闭当前编辑标签" loading="lazy"></a><figcaption>局域网地址返回列表也关闭当前编辑标签 · screenshots/08-lan-return-closes-current.png</figcaption></figure></article><footer>开始 2026-09-05T16:40:46.677Z · 完成 2026-09-05T16:41:29.185Z · 新增业务数据 0;浏览器内临时修改已放弃。</footer></main></body></html>
|