From 3465825d3859f10eee76631b1174699b0cc94a08 Mon Sep 17 00:00:00 2001 From: ymq Date: Thu, 10 Sep 2026 16:14:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(todos):=20=E5=BE=85=E5=8A=9E=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E6=8C=89source=3Dticket=E5=88=86=E6=B5=81=E2=80=94?= =?UTF-8?q?=E2=80=94=E5=B7=A5=E5=8D=95badge(=E9=9D=92)+=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=8C=87=E5=90=91/ticket/api/ticket=5Fdetail=5Fpopup.dspy=3Ffr?= =?UTF-8?q?om=5Ftodo=3D1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 配合pipeline-service的register_todo_provider(工单模块注入): 平台待办通道新增工单来源, 客户回复待确认/运维待认领/受理人待处理 统一在头部角标+待办弹窗异步通知 --- wwwroot/api/my_todos_popup.dspy | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/wwwroot/api/my_todos_popup.dspy b/wwwroot/api/my_todos_popup.dspy index 811b7c7..7229843 100644 --- a/wwwroot/api/my_todos_popup.dspy +++ b/wwwroot/api/my_todos_popup.dspy @@ -23,6 +23,7 @@ TYPE_COLOR = { } detail_url = entire_url("/pipeline-sdlc/api/todo_detail.dspy") +ticket_detail_url = entire_url("/ticket/api/ticket_detail_popup.dspy") def _s(v): @@ -60,7 +61,13 @@ for t in (todos or []): tid = _s(t.get('id')) kind = 'question' if src == 'question' else 'human_task' task_type = _s(t.get('task_type')) - if src == 'question': + if src == 'ticket': + # 工单待办(2026-09-10 接入平台待办):badge 用 provider 给的分类 + badge = _s(t.get('badge')) or '工单' + badge_color = '#0ea5e9' + title = _clip(t.get('title'), 80) or '工单' + summary = _clip(t.get('description'), 110) + elif src == 'question': badge = '待答问题' badge_color = '#8b5cf6' title = _clip(t.get('question'), 80) or '冒泡问题' @@ -79,10 +86,18 @@ for t in (todos or []): if t.get('created_at'): meta_bits.append(_s(t.get('created_at'))) - open_script = ("var du=" + _json.dumps(detail_url) + "+'?kind=" + kind + "&id='+encodeURIComponent(" - + _json.dumps(tid) + ");" - "var rp=await fetch(du);var dd=await rp.json();" - "await bricks.widgetBuild(dd,bricks.app);") + if src == 'ticket': + # 工单待办详情走 ticket 模块自持端点(from_todo=1 → 弹窗 id 用待办专用, + # 关闭时连带关待办列表弹窗) + open_script = ("var du=" + _json.dumps(ticket_detail_url) + "+'?from_todo=1&id='+encodeURIComponent(" + + _json.dumps(tid) + ");" + "var rp=await fetch(du);var dd=await rp.json();" + "await bricks.widgetBuild(dd,bricks.app);") + else: + open_script = ("var du=" + _json.dumps(detail_url) + "+'?kind=" + kind + "&id='+encodeURIComponent(" + + _json.dumps(tid) + ");" + "var rp=await fetch(du);var dd=await rp.json();" + "await bricks.widgetBuild(dd,bricks.app);") sub = [ {