feat(agent): TaskDetailView 操作区主操作+⋯ 收纳(PRD-REQ-坐席-011 §6.4 决策 C-8) #6
Reference in New Issue
Block a user
Delete Branch "feat/task-actions-pivot-v1.8"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
摘要
按 v1.8 原型 + PRD-REQ-坐席-011 §6.4 落地 TaskDetailView 操作区「主操作按钮 + ⋯ 次要动作收纳」设计。
改动清单(4 files,+1148/-53)
关键设计(决策 C-8)
Ticket 主操作(按 status 驱动):
Ticket ⋯ 收纳:开始处理 / 转派 / 挂起 / 升级优先级 / 打开原系统(全部 disabled 带 tooltip)
Approval 主操作(按 sp_status 驱动):
Approval ⋯ 收纳:拒绝 / 转交 / 加签(sp_status=1 时 enabled 真跳转)
收益(用户的痛点)
测试
架构原则
<a target="_blank">真跳转,不发请求、不修改 store不影响
提交
f1b12b7871— feat(agent): TaskDetailView 操作区主操作+⋯ 收纳(PRD-REQ-坐席-011 §6.4 决策 C-8)父 commit: b4e21e3(main 未改写)
主要变更: - P0-1 /itportal/ 500 修复闭环:nginx.conf line 139-142 08-03 fix 已生效,公网实测 500→404,迁移至已完成 - P0-NEW10: 后端 debug 端点全清单治理(test-ping/test-error/health/ready/metrics/version/openapi.json)生产暴露 - P1 治理-2/3: 看板-滴答双向同步铁律升级(dida→看板反向同步纳入巡检必做) - P1-Alembic / P1-Idx: dida→看板反向脱节补登(Alembic 053-057 迁移 + troubleshooting 索引) - console.{log,debug,info} 残留 128→129(h5 101 / agent 20 / admin 0 / terminal 8) - BLK-A/B 26→30 天阈值校正 - dida 同步 close: 6a6bfc2be (sensitive_words 13 端点补 auth), create: 6a7928a2 (P0-NEW10)按 v1.8 原型 + PRD-REQ-坐席-011 §6.4 落地 TaskDetailView 操作区「主操作按钮 + ⋯ 次要动作收纳」设计。 ## 改动清单(4 files) - **新增** src/frontend-agent/src/composables/useTaskActions.ts 工厂产出 TaskActionsConfig{main, more},状态驱动主操作按钮: - ticket pending → 「📥 接单」disabled(U-1.1 ITSM 阻塞) - ticket processing → 「✅ 结单」disabled(U-1.1 阻塞) - ticket resolved → 「✅ 已结单」disabled - approval sp_status=1 → 「✅ 审批通过」enabled(跳企微) - approval 其他 → 「🔗 在企微审批中打开」enabled ⋯ 内含: - ticket:开始处理/转派/挂起/升级优先级/打开原系统 - approval sp_status=1:拒绝/转交/加签(真跳转) - 其他审批:空数组(无可执行动作) 全部 pure 函数(isTicketClaimable / buildTicketMainAction / buildTicketMoreActions / buildApprovalMainAction / buildApprovalMoreActions)便于单测。 - **改造** src/frontend-agent/src/components/chat/task/TicketDetail.vue 原 1 按钮 → 主操作(按状态动态文案)+ ⋯ 收纳(5 项 disabled 待后端 API) 新增 ⋯ 菜单 DOM(task-actions-menu)、CSS(参考 v1.7 .conv-menu 风格)、click-out/Esc 关闭逻辑。 保留对 ITSM 的跳转能力(disabled 占位也带 href,不破坏可达性)。 - **改造** src/frontend-agent/src/components/chat/task/ApprovalDetail.vue 原 4 跳转按钮 → 主操作(按 sp_status 驱动)+ ⋯ 收纳(sp_status=1 时显示拒绝/转交/加签) 降级跳转精神保留:所有审批动作仍走 <a target="_blank"> 跳企微审批原系统。 - **新增** src/frontend-agent/src/composables/__tests__/useTaskActions.vitest.test.ts 27 例:覆盖 ticket 4 状态 + approval 3 状态 + 兜底 + 边界条件(pure 函数单测)。 ## 收益(用户的痛点) - 中栏 TaskDetailView 操作区按钮数从 4 / 1 → 2(主+⋯) - body 区可用高度 +50%↑,状态信息一眼可见 - v1.8 视觉与 PRD §6.4 一致 - TicketDetail 的接单/结单/转派按钮已「结构预留」,等 ITSM U-1.1 API 拿到后改 disabled=true 为 false 即可 ## 测试 vitest: 102/102 全绿(含 27 新增 + 75 已有) vue-tsc --noEmit: 我改的 4 个文件 0 个 TS 错误(30+ 历史遗留错误与本 PR 无关) ## 不影响 - 左栏三点菜单(PRD-012 §6.4 + useConversationMenuItems) - 中栏顶栏 UserInfoBar(v1.7 D-2 已删 3 留 1) - 后端 API(纯前端状态机调整 + 跳转 URL 保持原 wecomApprovalUrl) ## 已知阻塞 - Gitea 远端 192.168.3.200:8418 当前不可达(ping 100% 丢包) - 本地 commit 已就绪,待网络恢复后 pushPull request closed