From f51ca01000efb62dd8f2370982b4e4878222bbb7 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 13 Aug 2026 12:32:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(REQ-013):=20=E4=BF=AE=E5=A4=8D=202=20?= =?UTF-8?q?=E4=B8=AA=20P0=20Bug=20=E2=80=94=20TopBar=20v-model=20=E5=91=BD?= =?UTF-8?q?=E5=90=8D=20+=20OtpBindDialog=20API=20=E7=AB=AF=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QA Round 1 修复(不改 PRD 偏离和 P2/P3 项): ## Bug #1 — TopBar.vue v-model 与 Dialog props 不匹配 - Line 120: → v-model:visible - Line 125: → v-model:visible - 原因:Vue 3 v-model 无参数展开为 modelValue/update:modelValue,Dialog 组件用 visible props + update:visible emit,名称错配导致弹窗打不开 + TS2345 报错 ## Bug #2 — OtpBindDialog 调用了不存在的 /agents/otp-* 端点 - import: @/api/agent → @/api/otp(真实端点 /auth/otp-*) - 二维码字段: qr_code → qr_code_base64 - 增加 getOtpStatus() 状态判断:bound=true 走已绑定分支(不再用 !!data.secret 误判) - verifyOtp(otpCode) / unbindOtp(otpCode) 改为单参数(otp.ts 新签名) - 删除未使用的 useAgentStore import - 二维码 src: data:image/png;base64, ${qr_code_base64} ## Bonus 修复 - AgentProfileDialog.vue:18 与 OtpBindDialog.vue:18 同样添加 (val: boolean) 类型注解(TS7006 隐式 any) ## 验证 - vue-tsc --noEmit: TopBar.vue / OtpBindDialog.vue / AgentProfileDialog.vue 全部 0 报错 - 残留 111 个 vue-tsc 错误均为项目其他文件预先存在(AxiosResponse 类型不匹配等),与本次修复无关 --- .../components/agent/AgentProfileDialog.vue | 603 ++++++++++++++++++ .../src/components/agent/OtpBindDialog.vue | 219 +++++++ .../src/components/layout/TopBar.vue | 376 ++++++----- 3 files changed, 1005 insertions(+), 193 deletions(-) create mode 100644 src/frontend-agent/src/components/agent/AgentProfileDialog.vue create mode 100644 src/frontend-agent/src/components/agent/OtpBindDialog.vue diff --git a/src/frontend-agent/src/components/agent/AgentProfileDialog.vue b/src/frontend-agent/src/components/agent/AgentProfileDialog.vue new file mode 100644 index 0000000..e60e74b --- /dev/null +++ b/src/frontend-agent/src/components/agent/AgentProfileDialog.vue @@ -0,0 +1,603 @@ + + + + + + + \ No newline at end of file diff --git a/src/frontend-agent/src/components/agent/OtpBindDialog.vue b/src/frontend-agent/src/components/agent/OtpBindDialog.vue new file mode 100644 index 0000000..65fe038 --- /dev/null +++ b/src/frontend-agent/src/components/agent/OtpBindDialog.vue @@ -0,0 +1,219 @@ + + + + + \ No newline at end of file diff --git a/src/frontend-agent/src/components/layout/TopBar.vue b/src/frontend-agent/src/components/layout/TopBar.vue index 2c71588..8db9900 100644 --- a/src/frontend-agent/src/components/layout/TopBar.vue +++ b/src/frontend-agent/src/components/layout/TopBar.vue @@ -1,8 +1,9 @@