mirror of
https://github.com/RaisFast/raisfast.git
synced 2026-10-13 00:03:10 +00:00
2 lines
7.3 KiB
JavaScript
2 lines
7.3 KiB
JavaScript
import{f as c,j as e}from"./vendor-react-j_G0Dyx0.js";import{u as re}from"./use-url-state-BBO3na5E.js";import{ci as ie,c9 as ce,c8 as K,i as p,aO as oe,bK as _,ao as Q,aW as D}from"./index-C-i99XXF.js";import{u as U}from"./useMutation-CrSU7LrM.js";import{C as L,a as $}from"./card-BwvuSgdv.js";import{I as l}from"./input-CX4DHDvW.js";import{L as r}from"./label-YdsyMzds.js";import{T as R,d as W,e as g,c as i,a as A,b as n}from"./table-CCu_JPDD.js";import{D as H,a as Y,d as G,e as J,c as V}from"./dialog-8LyJX3or.js";import{B as y}from"./badge-BxazBb-3.js";import{P as de}from"./pagination-bar-B67t1a6P.js";import{T as X}from"./table-skeleton-W4NmdKYl.js";import{E as me}from"./empty-state-v8u5VqOl.js";import{P as Z}from"./plus-CwjdK202.js";import"./vendor-xyflow-D6gjNkZe.js";import"./useRegisterFieldControl-BK92wKok.js";import"./useLabelableId-bx9DAHAI.js";import"./chevron-left-Dxx6wreE.js";function ee(a,v=2){const w=a??0,N=10**v,f=Math.floor(w/N),t=Math.abs(Math.round(w%N));return`${f}.${String(t).padStart(v,"0")}`}function Oe(){var q,B,E,F;const{t:a}=ie(),v=ce(),{getInt:w,set:N}=re(),f=w("page"),[t,se]=c.useState(null),[ae,C]=c.useState(!1),[te,b]=c.useState(!1),[o,d]=c.useState(""),[m,u]=c.useState(""),[x,h]=c.useState(""),[S,j]=c.useState(""),P=20,T=K({queryKey:["admin-wallets",f],queryFn:()=>D.admin.wallets.listWallets({page:f,page_size:P})}),M=K({queryKey:["admin-wallet-tx",t==null?void 0:t.id],queryFn:()=>D.admin.wallets.listTransactions({page:1,page_size:20}),enabled:!!t}),z=((q=T.data)==null?void 0:q.items)??[],ne=Math.ceil((((B=T.data)==null?void 0:B.total)??0)/P),I=((E=M.data)==null?void 0:E.items)??[],k=U({mutationFn:()=>D.admin.wallets.credit({user_id:o,currency:m.toUpperCase(),amount:Math.round(parseFloat(x)*100),transaction_no:`admin_${Date.now()}`,reference_type:"admin",reference_id:null,metadata:S||null}),onSuccess:()=>{_.success(a("wallets.creditSuccess")),v.invalidateQueries({queryKey:["admin-wallets"]}),C(!1),d(""),u(""),h(""),j("")},onError:s=>_.error(s instanceof Q?s.message:a("wallets.failedToCredit"))}),O=U({mutationFn:()=>D.admin.wallets.debit({user_id:o,currency:m.toUpperCase(),amount:Math.round(parseFloat(x)*100),transaction_no:`admin_${Date.now()}`,reference_type:"admin",reference_id:null,metadata:S||null}),onSuccess:()=>{_.success(a("wallets.debitSuccess")),v.invalidateQueries({queryKey:["admin-wallets"]}),b(!1),d(""),u(""),h(""),j("")},onError:s=>_.error(s instanceof Q?s.message:a("wallets.failedToDebit"))});function le(s){return s==="credit"?e.jsx(y,{variant:"default",className:"bg-emerald-600",children:"+"}):e.jsx(y,{variant:"destructive",children:"−"})}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"text-sm font-semibold",children:a("wallets.title")}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(p,{variant:"outline",size:"sm",onClick:()=>{d(""),u(""),h(""),j(""),C(!0)},children:[e.jsx(Z,{className:"size-4"}),a("wallets.credit")]}),e.jsxs(p,{variant:"outline",size:"sm",onClick:()=>{d(""),u(""),h(""),j(""),b(!0)},children:[e.jsx(Z,{className:"size-4"}),a("wallets.debit")]})]})]}),e.jsxs(L,{children:[e.jsx($,{className:"p-0",children:T.isLoading?e.jsx(X,{cols:4}):e.jsxs(R,{children:[e.jsx(W,{children:e.jsxs(g,{children:[e.jsx(i,{children:"ID"}),e.jsx(i,{children:a("wallets.currency")}),e.jsx(i,{children:a("wallets.balance")}),e.jsx(i,{children:a("common.status")})]})}),e.jsx(A,{children:z.length===0?e.jsx(g,{children:e.jsx(n,{colSpan:4,children:e.jsx(me,{icon:oe,title:a("wallets.noWallets"),description:a("wallets.noWalletsDesc")})})}):z.map(s=>e.jsxs(g,{className:`cursor-pointer ${(t==null?void 0:t.id)===s.id?"bg-muted":""}`,onClick:()=>se(s),children:[e.jsx(n,{className:"font-mono text-xs truncate max-w-[120px]",children:s.id}),e.jsx(n,{children:e.jsx(y,{variant:"outline",className:"font-mono",children:s.currency})}),e.jsx(n,{className:"font-medium",children:ee(s.balance)}),e.jsx(n,{children:s.status==="active"?e.jsx(y,{variant:"default",children:a("common.enabled")}):e.jsx(y,{variant:"destructive",children:a("wallets.frozen")})})]},s.id))})]})}),e.jsx(de,{page:f,totalPages:ne,total:((F=T.data)==null?void 0:F.total)??0,onPageChange:s=>N({page:s})})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h3",{className:"text-sm font-semibold",children:a("wallets.transactions")}),e.jsx(L,{children:e.jsx($,{className:"p-0",children:t?M.isLoading?e.jsx(X,{cols:4}):e.jsxs(R,{children:[e.jsx(W,{children:e.jsxs(g,{children:[e.jsx(i,{className:"w-8"}),e.jsx(i,{children:a("wallets.amount")}),e.jsx(i,{children:a("wallets.type")}),e.jsx(i,{children:a("orders.createdAt")})]})}),e.jsx(A,{children:I.length===0?e.jsx(g,{children:e.jsx(n,{colSpan:4,className:"text-center py-8 text-muted-foreground",children:a("wallets.noTransactions")})}):I.map(s=>e.jsxs(g,{children:[e.jsx(n,{children:le(s.entry_type)}),e.jsx(n,{className:"font-medium",children:ee(s.amount)}),e.jsx(n,{className:"text-xs text-muted-foreground",children:s.tx_type}),e.jsx(n,{className:"text-xs",children:new Date(s.created_at).toLocaleString()})]},s.id))})]}):e.jsx("div",{className:"p-8 text-center text-sm text-muted-foreground",children:a("wallets.noTransactions")})})})]})]}),e.jsx(H,{open:ae,onOpenChange:C,children:e.jsxs(Y,{children:[e.jsx(G,{children:e.jsx(J,{children:a("wallets.creditTitle")})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.userId")}),e.jsx(l,{value:o,onChange:s=>d(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.currency")}),e.jsx(l,{value:m,onChange:s=>u(s.target.value),placeholder:"CNY",className:"uppercase"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.amount")}),e.jsx(l,{type:"number",step:"0.01",value:x,onChange:s=>h(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.remark")}),e.jsx(l,{value:S,onChange:s=>j(s.target.value)})]})]}),e.jsxs(V,{children:[e.jsx(p,{variant:"outline",onClick:()=>C(!1),children:a("common.cancel")}),e.jsx(p,{onClick:()=>k.mutate(),disabled:k.isPending||!o||!m||!x,children:k.isPending?a("common.saving"):a("wallets.credit")})]})]})}),e.jsx(H,{open:te,onOpenChange:b,children:e.jsxs(Y,{children:[e.jsx(G,{children:e.jsx(J,{children:a("wallets.debitTitle")})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.userId")}),e.jsx(l,{value:o,onChange:s=>d(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.currency")}),e.jsx(l,{value:m,onChange:s=>u(s.target.value),placeholder:"CNY",className:"uppercase"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.amount")}),e.jsx(l,{type:"number",step:"0.01",value:x,onChange:s=>h(s.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r,{children:a("wallets.remark")}),e.jsx(l,{value:S,onChange:s=>j(s.target.value)})]})]}),e.jsxs(V,{children:[e.jsx(p,{variant:"outline",onClick:()=>b(!1),children:a("common.cancel")}),e.jsx(p,{variant:"destructive",onClick:()=>O.mutate(),disabled:O.isPending||!o||!m||!x,children:O.isPending?a("common.saving"):a("wallets.debit")})]})]})})]})}export{Oe as default};
|