修复: 页面反馈真实性与竞态守卫八处
- 知识创建失败不再误关弹窗弹成功提示(补返回值检查) - AuditLog 翻页补请求序号守卫防慢响应覆盖新页 - TaskDrawer 切任务慢响应校验 taskId 才写入 - GitChanges 竞态序号+moduleId 双校验,三处静默失败补错误提示 - 回收站恢复/彻底删除操作中禁用防双击重复提交 - 灵感状态切换失败补错误反馈(原 unhandled rejection) - FileExplorer 三处失败仅 console 补 Message 提示 - Dashboard 消费 store.error 故障不再伪装空数据
This commit is contained in:
@@ -244,24 +244,27 @@ const wfSnap = computed(() => {
|
||||
|
||||
// 加载
|
||||
async function load() {
|
||||
if (!props.taskId) return
|
||||
const tid = props.taskId // 捕获发起时 taskId,响应回来校验未变才写入(防慢响应覆盖新任务)
|
||||
if (!tid) return
|
||||
loading.value = true
|
||||
errorMsg.value = ''
|
||||
try {
|
||||
const [t, ps, ideasList] = await Promise.all([
|
||||
taskApi.get(props.taskId),
|
||||
taskApi.get(tid),
|
||||
projectApi.list(),
|
||||
ideaApi.list(),
|
||||
])
|
||||
if (tid !== props.taskId) return // taskId 已切换,旧任务响应丢弃
|
||||
task.value = t
|
||||
projects.value = ps
|
||||
ideas.value = ideasList
|
||||
await loadChildren()
|
||||
await loadParentTitle()
|
||||
} catch (e: any) {
|
||||
if (tid !== props.taskId) return // 旧任务请求的失败不污染当前视图
|
||||
errorMsg.value = e?.toString() ?? t('common.unknownError')
|
||||
} finally {
|
||||
loading.value = false
|
||||
if (tid === props.taskId) loading.value = false // 新一轮 load 已接管 loading 态
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user