From 3e2873fb90e398316be85033ab69d0ada2ef917f Mon Sep 17 00:00:00 2001 From: speakeloudest Date: Fri, 8 May 2026 14:26:46 +0300 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=B7=A5=E5=8D=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../public/assets/locales/zh-CN/ticket.json | 2 +- apps/admin/src/sections/ticket/index.tsx | 49 +++++++++++++++++-- 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/apps/admin/public/assets/locales/zh-CN/ticket.json b/apps/admin/public/assets/locales/zh-CN/ticket.json index 5864685..ae16596 100644 --- a/apps/admin/public/assets/locales/zh-CN/ticket.json +++ b/apps/admin/public/assets/locales/zh-CN/ticket.json @@ -12,7 +12,7 @@ "0": "状态", "1": "待跟进", "2": "待回复", - "3": "已解决", + "3": "已取消", "4": "已关闭" }, "ticketList": "工单列表", diff --git a/apps/admin/src/sections/ticket/index.tsx b/apps/admin/src/sections/ticket/index.tsx index f823ae3..b36436c 100644 --- a/apps/admin/src/sections/ticket/index.tsx +++ b/apps/admin/src/sections/ticket/index.tsx @@ -79,8 +79,45 @@ export default function Page() { action={ref} actions={{ render(row) { - if (row.status !== 4) { + if (row.status === 1) { return [ + { + setLoadingId(row.id); + try { + await updateTicketStatus({ + id: row.id, + status: 3, + }); + toast.success("已取消打款并关闭工单"); + ref.current?.refresh(); + } catch (e) { + console.error("Cancel payout failed", e); + toast.error("取消打款失败"); + } + setLoadingId(null); + }} + title="确认取消打款?" + trigger={ + + } + />, 1) { - const deductAmount = Number.parseFloat(parts[1]); - if (!isNaN(deductAmount)) { + const deductAmount = Number.parseFloat( + parts?.[1] ?? "0" + ); + if (!Number.isNaN(deductAmount)) { const res = await getUserDetail({ id: row.user_id }); const user = res?.data?.data; if (user && typeof user.commission !== "undefined") { @@ -194,11 +233,13 @@ export default function Page() { const parts = desc.split("-"); if (parts.length < 2) return ""; const content = parts[1]; - if (content.startsWith("data:image/")) { + if (content?.startsWith("data:image/")) { return ( withdrawal { const win = window.open(); win?.document.write(``);