上传确认弹窗遮挡及未决操作误显示待上传 #29

Open
opened 2026-10-05 10:22:46 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:缺陷
  • 所属 Epic:#2
  • 所属 MVP / 版本:#6
  • 阶段:待验收

依赖与并行

  • 前置工单:#27、#28 的 ERPGo 上传调用已实现;ERPGo 服务端操作状态自动归属仍待其项目处理。
  • 允许并行:是;本任务只修复 cmsp 确认弹窗和本地未决状态呈现,不改变 ERPGo 的 succeeded 判定。

原始需求

  • 来源:用户对话,2026-10-05。
  • 摘要:run_dev.bat 中勾选指定商品上传,确认弹窗一直在前,上传调用结束后列表仍显示“待上传”;使用者在货憨憨看到商品已有视频。

已核实事实

  • cmsp 本地本次操作为 processing,last_error=VIDEO_PROCESSING,商品 upload_status=pending;ERPGo 原键查询返回 operation 3 processing/check/submitted,当前 GET /video 返回 1 条视频。
  • 该商品在本次操作前已有 ERPGo 另一成功操作的视频;当前视频存在不能证明本次操作 succeeded。原契约只允许 ERPGo status=succeeded 更新本地完成状态。
  • 前端确认框的 onPositiveClick 等待整个 UploadVideos 与列表刷新 Promise,因此处理期间保持遮挡。

目标与方案

  • 确认上传后立即关闭确认弹窗,由列表按钮继续显示执行中;不把关闭弹窗当上传成功。
  • 远端操作 processing/unknown/查询异常等未终结结果在本地持久化为已有 unconfirmed 状态,界面统一显示“待确认”;不显示“待上传”,不自动换键或重发 PUT。
  • 保留原操作恢复、真实成功写回条件、覆盖确认和本地 MP4。已有无操作的预检未确认也可使用“待确认”文案,并由具体错误与提示区分原因。
  • 对已存在的当前本地 pending + 未决操作,后续原键查询后应转为 unconfirmed;不做 SQLite 迁移或批量重写。

非目标、风险与回退

  • 不因 GET /video 有视频就把本次上传记成功;不执行真实商品 PUT、不人工解锁 ERPGo 操作,不解决 ERPGo 服务端媒体归属缺口。
  • 风险:弹窗关闭后需有明确按钮加载状态与日志;用户可能误以为任务结束。保留加载与未决日志,状态显示待确认。可回退本次前端回调和状态赋值,不改数据库结构。

验收

  • 确认点击后弹窗立即关闭,上传按钮按原逻辑转圈直到调用结束;取消不调用 PUT。
  • ERPGo 返回 processing/unknown/查询失败时,本地状态和筛选为“待确认”;同键恢复不重发 PUT。
  • 只有 ERPGo succeeded 才标“已上传”,已存在的视频回读不被认领为本次成功。
  • Go 相关测试、前端构建、静态检查、Wiki 镜像检查通过;真机交互和真实店铺写入未验证项明确记录。

文档影响

更新 Wiki 上传状态规则与故障排查,导出核心 docs 镜像。Gitea MCP 无可调用工具,使用 Gitea API 回退,凭据仅在进程内读取。

## 基本信息 - 类型:缺陷 - 所属 Epic:#2 - 所属 MVP / 版本:#6 - 阶段:待验收 ## 依赖与并行 - 前置工单:#27、#28 的 ERPGo 上传调用已实现;ERPGo 服务端操作状态自动归属仍待其项目处理。 - 允许并行:是;本任务只修复 cmsp 确认弹窗和本地未决状态呈现,不改变 ERPGo 的 succeeded 判定。 ## 原始需求 - 来源:用户对话,2026-10-05。 - 摘要:run_dev.bat 中勾选指定商品上传,确认弹窗一直在前,上传调用结束后列表仍显示“待上传”;使用者在货憨憨看到商品已有视频。 ## 已核实事实 - cmsp 本地本次操作为 processing,last_error=VIDEO_PROCESSING,商品 upload_status=pending;ERPGo 原键查询返回 operation 3 processing/check/submitted,当前 GET /video 返回 1 条视频。 - 该商品在本次操作前已有 ERPGo 另一成功操作的视频;当前视频存在不能证明本次操作 succeeded。原契约只允许 ERPGo status=succeeded 更新本地完成状态。 - 前端确认框的 onPositiveClick 等待整个 UploadVideos 与列表刷新 Promise,因此处理期间保持遮挡。 ## 目标与方案 - 确认上传后立即关闭确认弹窗,由列表按钮继续显示执行中;不把关闭弹窗当上传成功。 - 远端操作 processing/unknown/查询异常等未终结结果在本地持久化为已有 unconfirmed 状态,界面统一显示“待确认”;不显示“待上传”,不自动换键或重发 PUT。 - 保留原操作恢复、真实成功写回条件、覆盖确认和本地 MP4。已有无操作的预检未确认也可使用“待确认”文案,并由具体错误与提示区分原因。 - 对已存在的当前本地 pending + 未决操作,后续原键查询后应转为 unconfirmed;不做 SQLite 迁移或批量重写。 ## 非目标、风险与回退 - 不因 GET /video 有视频就把本次上传记成功;不执行真实商品 PUT、不人工解锁 ERPGo 操作,不解决 ERPGo 服务端媒体归属缺口。 - 风险:弹窗关闭后需有明确按钮加载状态与日志;用户可能误以为任务结束。保留加载与未决日志,状态显示待确认。可回退本次前端回调和状态赋值,不改数据库结构。 ## 验收 - [ ] 确认点击后弹窗立即关闭,上传按钮按原逻辑转圈直到调用结束;取消不调用 PUT。 - [ ] ERPGo 返回 processing/unknown/查询失败时,本地状态和筛选为“待确认”;同键恢复不重发 PUT。 - [ ] 只有 ERPGo succeeded 才标“已上传”,已存在的视频回读不被认领为本次成功。 - [ ] Go 相关测试、前端构建、静态检查、Wiki 镜像检查通过;真机交互和真实店铺写入未验证项明确记录。 ## 文档影响 更新 Wiki 上传状态规则与故障排查,导出核心 docs 镜像。Gitea MCP 无可调用工具,使用 Gitea API 回退,凭据仅在进程内读取。
Author
Owner

2026-10-05 实施中补充:单商品已有未决本地操作时,下一次操作只查询原幂等键;现有预览仍按远端已有视频显示“上传会覆盖原视频”,与实际只读恢复不符。纳入本工单同一状态呈现范围:预览先识别未决/待本地恢复的原操作,显示“查询原上传操作”且不提示覆盖,不发新 PUT;终结失败后的新操作仍走原实时视频检查与覆盖确认。补测试覆盖该恢复入口。

2026-10-05 实施中补充:单商品已有未决本地操作时,下一次操作只查询原幂等键;现有预览仍按远端已有视频显示“上传会覆盖原视频”,与实际只读恢复不符。纳入本工单同一状态呈现范围:预览先识别未决/待本地恢复的原操作,显示“查询原上传操作”且不提示覆盖,不发新 PUT;终结失败后的新操作仍走原实时视频检查与覆盖确认。补测试覆盖该恢复入口。
Author
Owner

实现完成,待验收(2026-10-05)。

现场只读核对:本地商品的上传状态为 pending、last_error=VIDEO_PROCESSING,本次操作号 3;ERPGo 同键 GET /video/operation 返回 processing/check/submitted,GET /video 返回 1 条视频。该商品在本次操作前已由另一操作上传视频,当前有视频不能证明操作 3 成功,故 cmsp 不将其标为 done。ERPGo 状态归属需要服务端继续核实。

变更:用户确认后弹窗立即关闭,上传按钮继续显示调用执行中;未终结/无法查询的操作结果用本地 unconfirmed 状态和“待确认”列表文案,只有原操作 succeeded 才标已上传。单商品若已有未决本地操作,预览改为“恢复原上传操作”,只查询或恢复原键,不再显示错误的覆盖警告,也不再次 PUT。已失败操作仍按原流程实时检查视频后由用户决定是否新上传;本地 MP4 和幂等键保留。

验证:go test -count=1 ./...、go test -race -count=1 ./...、go vet ./...、npm --prefix frontend run build、DevHarness strict、Wiki sync --check 全部通过;Wails windows/amd64 构建成功,产物 build/bin/cmsp-29.exe。回归测试覆盖未决操作预览不读当前视频、不发 PUT、使用原键查询并转待确认。真实 Windows 弹窗点击的视觉交互尚未由自动化工具验证;没有执行任何真实店铺 PUT。

Wiki 在线回读并同步镜像:Business-Rules-and-Glossary revision 337733444b6e824e5c847a6648bbbd70e11ea8c5;Troubleshooting revision 0a176fa4cf7f3bd6a2c6b11ae3c6a58453500c85。Gitea MCP 无可调用工具,工单和 Wiki 使用 API 回退。

提交 e9a613d、5702286 已推送 main。用户既有 go.mod、go.sum、cmsp.code-workspace、cmsp.exe 未混入提交。

实现完成,待验收(2026-10-05)。 现场只读核对:本地商品的上传状态为 pending、last_error=VIDEO_PROCESSING,本次操作号 3;ERPGo 同键 GET /video/operation 返回 processing/check/submitted,GET /video 返回 1 条视频。该商品在本次操作前已由另一操作上传视频,当前有视频不能证明操作 3 成功,故 cmsp 不将其标为 done。ERPGo 状态归属需要服务端继续核实。 变更:用户确认后弹窗立即关闭,上传按钮继续显示调用执行中;未终结/无法查询的操作结果用本地 unconfirmed 状态和“待确认”列表文案,只有原操作 succeeded 才标已上传。单商品若已有未决本地操作,预览改为“恢复原上传操作”,只查询或恢复原键,不再显示错误的覆盖警告,也不再次 PUT。已失败操作仍按原流程实时检查视频后由用户决定是否新上传;本地 MP4 和幂等键保留。 验证:go test -count=1 ./...、go test -race -count=1 ./...、go vet ./...、npm --prefix frontend run build、DevHarness strict、Wiki sync --check 全部通过;Wails windows/amd64 构建成功,产物 build/bin/cmsp-29.exe。回归测试覆盖未决操作预览不读当前视频、不发 PUT、使用原键查询并转待确认。真实 Windows 弹窗点击的视觉交互尚未由自动化工具验证;没有执行任何真实店铺 PUT。 Wiki 在线回读并同步镜像:Business-Rules-and-Glossary revision 337733444b6e824e5c847a6648bbbd70e11ea8c5;Troubleshooting revision 0a176fa4cf7f3bd6a2c6b11ae3c6a58453500c85。Gitea MCP 无可调用工具,工单和 Wiki 使用 API 回退。 提交 e9a613d、5702286 已推送 main。用户既有 go.mod、go.sum、cmsp.code-workspace、cmsp.exe 未混入提交。
Author
Owner

2026-10-05 补充现场证据与判断修正:用户确认,商品 51118018926 在 cmsp 操作 3(约 10:18)提交前,ERPGo GET /video 曾返回 HTTP 200、video: [];操作后货憨憨页面可见视频。当前只读核对:ERPGo GET /video 返回 1 条视频,无 tempVideoUrl/videoUploadIdStr;原幂等键操作 3 仍为 processing/check/submitted,且有 videoUrl、无 media ID;cmsp 本地仍为 pending/VIDEO_PROCESSING。该“操作 3 前为空”的事实来自用户现场确认,尚未取得对应请求的服务端时间戳/快照;原先仅知操作 2 前为空,不能继续以“操作 3 前可能已有视频”作为本商品的默认解释。
商品当前已有视频可确认;ERPGo 仍未将视频归属并终结本次操作,是本地无法按现行 succeeded 契约自动落为 done 的直接原因。后续应核对 ERPGo 操作 3 的上传前快照和回读视频,并由 ERPGo 修正/确认该操作结果;cmsp 不应直接把任意 video 非空认领为本次操作成功。另:本地 pending 是旧运行版本留下的记录,当前代码再次原键查询后会显示“待确认”。Gitea MCP 当前无可调用工具,本评论经 API 回退写入;未发起 PUT 或修改线上商品。

2026-10-05 补充现场证据与判断修正:用户确认,商品 51118018926 在 cmsp 操作 3(约 10:18)提交前,ERPGo GET /video 曾返回 HTTP 200、video: [];操作后货憨憨页面可见视频。当前只读核对:ERPGo GET /video 返回 1 条视频,无 tempVideoUrl/videoUploadIdStr;原幂等键操作 3 仍为 processing/check/submitted,且有 videoUrl、无 media ID;cmsp 本地仍为 pending/VIDEO_PROCESSING。该“操作 3 前为空”的事实来自用户现场确认,尚未取得对应请求的服务端时间戳/快照;原先仅知操作 2 前为空,不能继续以“操作 3 前可能已有视频”作为本商品的默认解释。 商品当前已有视频可确认;ERPGo 仍未将视频归属并终结本次操作,是本地无法按现行 succeeded 契约自动落为 done 的直接原因。后续应核对 ERPGo 操作 3 的上传前快照和回读视频,并由 ERPGo 修正/确认该操作结果;cmsp 不应直接把任意 video 非空认领为本次操作成功。另:本地 pending 是旧运行版本留下的记录,当前代码再次原键查询后会显示“待确认”。Gitea MCP 当前无可调用工具,本评论经 API 回退写入;未发起 PUT 或修改线上商品。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmsp#29