From ea26e2fa1b0c8b8bad03b083bebe90802c48e0ac Mon Sep 17 00:00:00 2001 From: Eamon <17516219072@163.com> Date: Wed, 24 Jun 2026 16:07:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E6=98=93=E6=98=8E=E7=BB=86=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=A3=80=E6=9F=A5=E8=AE=A2=E5=8D=95=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=8C=E6=88=90=E8=AE=A2=E5=8D=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E7=94=A8=20=20&=20=E5=85=85=E5=80=BC?= =?UTF-8?q?=E5=92=8C=E6=89=A3=E6=AC=BE=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E8=AF=B4=E6=98=8E=20=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/actions/cust.ts | 7 +- src/actions/trade.ts | 26 ++++++- src/app/(root)/cust/deduction.tsx | 13 ++++ src/app/(root)/cust/deposit.tsx | 13 ++++ src/app/(root)/trade/page.tsx | 120 ++++++++++++++++++++++++++---- 5 files changed, 162 insertions(+), 17 deletions(-) diff --git a/src/actions/cust.ts b/src/actions/cust.ts index 13e9fb5..9935dfb 100644 --- a/src/actions/cust.ts +++ b/src/actions/cust.ts @@ -44,7 +44,11 @@ export async function createCust(data: { return callByUser>("/api/admin/user/create", data) } -export async function getDeposit(params: { user_id: number; amount: string }) { +export async function getDeposit(params: { + user_id: number + amount: string + remark: string +}) { return callByUser>( "/api/admin/user/update/balance-inc", params, @@ -54,6 +58,7 @@ export async function getDeposit(params: { user_id: number; amount: string }) { export async function getDeduction(params: { user_id: number amount: string + remark: string }) { return callByUser>( "/api/admin/user/update/balance-dec", diff --git a/src/actions/trade.ts b/src/actions/trade.ts index 736a5e3..5a7990b 100644 --- a/src/actions/trade.ts +++ b/src/actions/trade.ts @@ -39,7 +39,7 @@ export async function updateTradeRemark(params: { } type PayCloseData = { - status: 0 | 1 | 2 + Status: 0 | 1 | 2 TransId: string } @@ -49,3 +49,27 @@ export async function getTradeCheckk(params: { }) { return callByUser("/api/admin/trade/check", params) } + +export async function tradeComplete(params: { + trade_no: string + method: number + user_id: number +}) { + return callByUser("/api/admin/trade/complete", params) +} + +export async function tradeConvert(params: { + trade_no: string + method: number + user_id: number +}) { + return callByUser("/api/admin/trade/convert", params) +} + +export async function tradeCancel(params: { + trade_no: string + method: number + user_id: number +}) { + return callByUser("/api/admin/trade/cancel", params) +} diff --git a/src/app/(root)/cust/deduction.tsx b/src/app/(root)/cust/deduction.tsx index 69496a8..c800da6 100644 --- a/src/app/(root)/cust/deduction.tsx +++ b/src/app/(root)/cust/deduction.tsx @@ -18,6 +18,7 @@ import { } from "@/components/ui/dialog" import { Field, FieldError, FieldLabel } from "@/components/ui/field" import { Input } from "@/components/ui/input" +import { Textarea } from "@/components/ui/textarea" import type { User } from "@/models/user" const Schema = z.object({ @@ -26,6 +27,7 @@ const Schema = z.object({ .min(1, "请输入扣款金额") .refine(val => !Number.isNaN(Number(val)), "请输入有效的数字") .refine(val => Number(val) >= 0, "金额不能为负数"), + remark: z.string().min(1, "请输入操作说明"), }) type FormValues = z.infer @@ -52,6 +54,7 @@ export function DeductionDialog({ resolver: zodResolver(Schema), defaultValues: { deduction: "", + remark: "", }, }) @@ -61,6 +64,7 @@ export function DeductionDialog({ const result = await getDeduction({ user_id: user.id, amount: data.deduction, + remark: data.remark, }) if (result.success) { @@ -123,6 +127,15 @@ export function DeductionDialog({ /> {errors.deduction?.message} + + 操作说明 +