PageSourceSearch

https://nickz.ai/assets/js/index-nY9qaowk.js

js nickz.ai collected 2026-10-05 14:20:17 UTC 174,822 bytes, 1 lines download raw bytes

1import{A as e,u as t,v as s,a as r,s as a,w as i,U as n,S as l,G as o,$ as d,J as c,a0 as u,a1 as p,am as h,aX as m,ar as x,aY as y,aZ as g,V as j,N as f,aM as _,B as v,W as b,K as w,_ as k,M as S}from"./index-BeIIFw6E.js";import{r as N,u as C,j as z,L as I}from"./vendor-react-DejgYtBM.js";import{B as T,M as $,f as q,aS as F,aT as A,aU as R,o as B,aE as E,aV as P,i as O,z as M,p as D,j as L,aG as V,y as W,aP as U,Y as K,aI as H,G as Q,aK as J,F as G,aW as Y,aX as X,E as Z,W as ee,R as te,C as se,r as re,aY as ae,aO as ie,m as ne,k as le,a1 as oe,l as de,u as ce,S as ue,D as pe,A as he,T as me,x as xe,t as ye}from"./vendor-semi-D8d7bTtM.js";import{u as ge}from"./useIsMobile-D_kfVI0u.js";import{d as je,S as fe}from"./index-N09zZel9.js";import{C as _e}from"./Captcha-DqOlJ3BU.js";import{d as ve,e as be,L as we,w as ke,u as Se,af as Ne,bm as Ce,U as ze,t as Ie,C as Te,R as $e,ae as qe,bv as Fe,bJ as Ae,y as Re}from"./vendor-icons-EJvJ5X-w.js";import"./vendor-motion-Chfy_MiU.js";import"./iconBase-SIM2SzwB.js";import"./captchaCrypto-qWW2iG_E.js";const Be=/[\u2022\u30fb\u2219\u2027]/g,Ee=/^[\p{Script=Han}\u00b7\s]+$/u,Pe=/^[a-zA-Z\s]+$/,Oe=e=>String(e??"").replace(Be,"·").trim(),{Text:Me}=q,De=e=>(Math.floor(100*Number(e||0))/100).toFixed(2),Le={fontSize:12.5,color:"var(--semi-color-text-2)",whiteSpace:"nowrap",lineHeight:1.5},Ve={fontSize:13.5,color:"var(--semi-color-text-0)",wordBreak:"break-all",lineHeight:1.5},We={...Ve,fontWeight:600},Ue={...Ve,fontFamily:"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",letterSpacing:.3},Ke={pending_ocr:"blue",pending_verify:"blue",pending_review:"orange",approved:"green",rejected:"red",withdrawn:"grey"},He={pending_ocr:"审核中",pending_verify:"审核中",pending_review:"审核中",approved:"已通过",rejected:"已驳回",withdrawn:"已撤回"};function Qe({dashboard:e,t,style:r}){const a=e?.our_company_name||"",i=e?.our_company_tax_no||"";if(!a&&!i)return null;const n=({label:e,value:r,copyLabel:a})=>z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[z.jsx(Me,{type:"tertiary",size:"small",style:{flexShrink:0,width:84},children:e}),z.jsx(Me,{strong:!0,style:{flex:1,minWidth:0,wordBreak:"break-all",fontFamily:a===t("税号")?"ui-monospace, monospace":void 0},children:r}),z.jsx(T,{size:"small",theme:"borderless",type:"tertiary",icon:z.jsx(U,{}),onClick:()=>((e,r)=>{e&&(s(e),K.success(t("已复制{{label}}",{label:r})))})(r,a),style:{flexShrink:0}})]});return z.jsxs("div",{style:{border:"1px solid var(--semi-color-primary-light-active)",background:"var(--semi-color-primary-light-default)",borderRadius:10,padding:"12px 14px",...r},children:[z.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:10,gap:8},children:[z.jsx(Me,{strong:!0,style:{fontSize:13},children:t("开票信息(请把发票开给我方)")}),z.jsx(T,{size:"small",theme:"light",type:"primary",icon:z.jsx(U,{}),onClick:()=>{const e=[];a&&e.push(`${t("购方名称")}:${a}`),i&&e.push(`${t("统一信用代码")}:${i}`),s(e.join("\n")),K.success(t("已复制开票信息"))},children:t("复制开票信息")})]}),z.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[a&&z.jsx(n,{label:t("购方名称"),value:a,copyLabel:t("名称")}),i&&z.jsx(n,{label:t("统一信用代码"),value:i,copyLabel:t("税号")})]})]})}function Je({active:e,icon:t,title:s,subtitle:r,onClick:a}){const[i,n]=N.useState(!1),l=e?-3:i?-1:0;return z.jsxs("div",{role:"button",tabIndex:0,onClick:a,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||a?.()},style:{flex:1,minWidth:0,cursor:"pointer",border:"2px solid "+(e?"var(--semi-color-primary)":"var(--semi-color-border)"),background:e?"var(--semi-color-primary-light-default)":"var(--semi-color-bg-2)",borderRadius:18,padding:"14px 16px",position:"relative",overflow:"hidden",transition:"transform .2s cubic-bezier(.34,1.56,.64,1), box-shadow .2s ease",transform:`translateY(${l}px)`,boxShadow:e?"0 10px 22px -12px rgba(0,0,0,.3)":i?"0 6px 16px -10px rgba(0,0,0,.25)":"0 1px 2px rgba(0,0,0,.04)"},children:[e&&z.jsx("div",{style:{position:"absolute",top:10,right:10,width:18,height:18,borderRadius:"50%",background:"var(--semi-color-primary)",color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:800,lineHeight:1},children:"✓"}),z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[z.jsx("div",{style:{width:40,height:40,borderRadius:14,display:"flex",alignItems:"center",justifyContent:"center",background:e?"var(--semi-color-primary)":"var(--semi-color-fill-1)",color:e?"#fff":"var(--semi-color-text-2)",flexShrink:0,transition:"all .2s ease",transform:e?"rotate(-4deg) scale(1.05)":"none"},children:t}),z.jsxs("div",{style:{minWidth:0},children:[z.jsx("div",{style:{fontSize:14,fontWeight:700,color:"var(--semi-color-text-0)"},children:s}),z.jsx("div",{style:{fontSize:12,color:"var(--semi-color-text-2)",marginTop:2},children:r})]})]})]})}function Ge({t:e,dashboard:t}){const s=[{color:"#3b82f6",title:e("到账时效"),desc:e("对公账户通常 1-3 个工作日到账;对私支付宝一般当日到账,单笔与单日累计有限额。")},{color:"#fc8800",title:e("对公提现需上传发票"),desc:e("对公提现需在提交时同步上传与本次金额完全一致的增值税发票(销方为你的企业、购方为我方抬头)。
1发票与本次提现绑定,审核通过后放款,驳回则退回额度。")},{color:"#0f9d58",title:e("对私支付宝免发票"),desc:e("对私支付宝适合小额提现,无需上传发票,仅受单日累计上限约束,一般当日到账。")}],r=({title:e,points:t})=>z.jsxs("div",{style:{flex:1,minWidth:0,border:"1px solid var(--semi-color-border)",borderRadius:8,padding:"10px 12px",background:"var(--semi-color-bg-2)"},children:[z.jsx("div",{style:{fontSize:13,fontWeight:600,marginBottom:6},children:e}),z.jsx("ul",{style:{margin:0,paddingLeft:16,fontSize:12,color:"var(--semi-color-text-2)",lineHeight:1.7},children:t.map(e=>z.jsx("li",{children:e},e))})]});return z.jsxs("div",{children:[z.jsx("div",{style:{fontSize:15,fontWeight:600,marginBottom:14},children:e("提现说明")}),s.map(e=>z.jsxs("div",{style:{display:"flex",gap:10,marginBottom:14},children:[z.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:e.color,marginTop:6,flexShrink:0}}),z.jsxs("div",{style:{minWidth:0},children:[z.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--semi-color-text-0)",marginBottom:2},children:e.title}),z.jsx("div",{style:{fontSize:12,color:"var(--semi-color-text-2)",lineHeight:1.6},children:e.desc})]})]},e.title)),z.jsxs("div",{style:{display:"flex",gap:10,marginTop:4},children:[z.jsx(r,{title:e("对公账户(推荐)"),points:[e("适合大额提现"),e("需完成企业实名"),e("提现时上传等额发票"),e("1-3 个工作日到账")]}),z.jsx(r,{title:e("对私支付宝(小额)"),points:[e("适合小额提现"),e("免发票"),e("有单日累计上限"),e("一般当日到账")]})]}),z.jsx(Qe,{dashboard:t,t:e,style:{marginTop:14}})]})}function Ye({visible:s,dashboard:r,onClose:a,onSuccess:i}){const{t:n}=t(),l=C(),o=ge(),[d,c]=N.useState("corporate"),[u,p]=N.useState(!1),[h,m]=N.useState(!1),[x,y]=N.useState(!1),[g,j]=N.useState(null),[f,_]=N.useState(""),v=N.useRef(null),b=N.useRef(null),w=!!r?.enterprise_verified,k=!!r?.personal_verified,S=r?.corporate_payee_profile||null,I=!!S,q=r?.enterprise_info||{},O=q.ep_cert_name||"",M=q.ep_cert_no||"",D=q.legal_person_cert_name||"";N.useEffect(()=>{if(s&&b.current){b.current.setValue("quota_rmb","");try{if(r?.last_corporate_subtype&&b.current.setValue("corporate_subtype",r.last_corporate_subtype),r?.last_corporate_account&&b.current.setValue("corporate_account",r.last_corporate_account),r?.last_corporate_bank&&b.current.setValue("corporate_bank",r.last_corporate_bank),r?.last_corporate_account_name)b.current.setValue("corporate_account_name",r.last_corporate_account_name);else{const e=r?.last_corporate_subtype||"company",t=r?.enterprise_info||{},s="sole_proprietor"===e?t.legal_person_cert_name||"":t.ep_cert_name||"";s&&b.current.setValue("corporate_account_name",s)}}catch{}try{r?.last_alipay_account&&b.current.setValue("alipay_account",r.last_alipay_account),r?.last_alipay_real_name&&b.current.setValue("alipay_real_name",r.last_alipay_real_name)}catch{}b.current.setError&&Object.keys(b.current.getValues()||{}).forEach(e=>{try{b.current.setError(e,"")}catch{}})}},[s,r]),N.useEffect(()=>{m(!1),y(!1),j(null),_("")},[s]),N.useEffect(()=>{if(b.current){try{b.current.setValue("payee_type",d)}catch{}try{const e=b.current.getValues()||{};Object.keys(e).forEach(e=>{try{b.current.setError(e,"")}catch{}})}catch{}try{const e=b.current.getValues()?.quota_rmb;null!=e&&""!==String(e).trim()&&setTimeout(()=>{try{b.current?.validate(["quota_rmb"]).catch(()=>{})}catch{}},0)}catch{}}},[d]);const L=Number(r?.quota_per_rmb||0),V=L>0?Number(r?.aff_quota||0)/L:1/0,W=Number(r?.bound_invoice_max_per_tx_rmb||0)||1/0,U=Number(r?.withdraw_max_rmb||0)||1/0,H=Number(r?.withdraw_min_rmb||0),Q=Number(r?.personal_daily_cap_rmb||0),J=Q>0?Q:500,G=null!=r?.personal_today_remaining_rmb?Number(r.personal_today_remaining_rmb):J,Y=[V,W,U],X="personal"===d?Math.min(...Y,G):Math.min(...Y),Z=V<=X&&Number.isFinite(V),ee="personal"===d&&G<=X&&G<V,te=(Math.floor(100*X)/100).toFixed(2),se=N.useMemo(()=>({quota_rmb:[{required:!0,message:n("请输入提现金额")},{validator:(e,t)=>{if(null==t||""===t)return!0;const s=Number(t);return Number.isNaN(s)||s<=0?Promise.reject(n("请输入大于 0 的提现金额")):H>0&&s<H?Promise.reject(n("单笔提现不得低于 ¥{{r}}",{r:H.toFixed(2)})):!(r&&s>X)||Promise.reject(n(ee?"对私每日累计最多 ¥{{r}},超出请切换到对公线":Z?"超过账户可提现余额 ¥{{r}}":"金额必须 > 0 且不超过 ¥{{r}}",{r:te}))}}],corporate_account:[{required:!0,message:n("请填写对公账户号")},{pattern:/^\d{6,30}$/,message:n("对公账户号应为 6-30 位数字")}],corporate_account_name:[{required:!0,message:n("请填写户名")},{validator:(e,t)=>
1{if(!t)return!0;const s=String(t).trim();return s.length>=2&&s.length<=128||Promise.reject(n("户名长度需为 2-128 个字符"))}}],corporate_bank:[{required:!0,message:n("请填写对公开户银行")}],alipay_account:[{required:!0,message:n("请填写支付宝账号")},{validator:(e,t)=>!t||(!(!/^1[3-9]\d{9}$/.test(t)&&!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(t))||Promise.reject(n("支付宝账号需为手机号或邮箱")))}],alipay_real_name:[{required:!0,message:n("请填写真实姓名")},{validator:(e,t)=>!t||!!(e=>{const t=Oe(e);return!!t&&(Ee.test(t)||Pe.test(t))})(t)||Promise.reject(n("真实姓名需为纯中文或纯英文"))}]}),[n,r,X,te,ee,Z,H]),re="corporate"===d&&!w&&!I,ae=h?z.jsx("div",{style:{textAlign:"right"},children:z.jsx(T,{theme:"solid",type:"primary",onClick:()=>m(!1),children:n("返回填写")})}):re?z.jsxs("div",{style:{textAlign:"right"},children:[z.jsx(T,{onClick:a,style:{marginRight:k?0:8},children:n("关闭")}),!k&&z.jsx(T,{theme:"solid",type:"warning",onClick:()=>{a?.(),l("/console/personal?tab=verify")},children:n("前往实名认证")})]}):z.jsxs("div",{style:{textAlign:"right"},children:[z.jsx(T,{onClick:a,style:{marginRight:8,borderRadius:999},children:n("取消")}),z.jsx(T,{theme:"solid",type:"primary",loading:u,onClick:async()=>{if(b.current&&("corporate"!==d||w||I))if("corporate"!==d||g){try{const e="corporate"===d?I?["quota_rmb"]:["corporate_subtype","corporate_account_name","corporate_account","corporate_bank","quota_rmb"]:["alipay_account","alipay_real_name","quota_rmb"];v.current=await b.current.validate(e)}catch(e){return}if("corporate"===d){const e=Number(r?.quota_per_rmb||0)||5e5/7.3,t=Number(v.current?.quota_rmb||0);if(t>0&&e>0){const s=Math.floor(t*e),r=Math.floor(s/e*100)/100;v.current.quota_rmb=r,v.current.quota=s;try{b.current?.setValue("quota_rmb",De(r))}catch{}}}y(!0)}else _(n("请上传本次提现对应的发票"))},style:{border:"none",background:"linear-gradient(90deg, #3b82f6 0%, #8b5cf6 100%)",minWidth:120,borderRadius:999,boxShadow:"0 8px 18px -8px rgba(124,92,250,.6)"},children:n("提交提现")})]});return z.jsxs(z.Fragment,{children:[z.jsx($,{title:z.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[z.jsx("span",{style:{fontSize:18},children:"💰"}),n("提现申请")]}),visible:s,onCancel:a,width:o?"100%":760,bodyStyle:{maxHeight:o?"70vh":"calc(100vh - 220px)",overflowY:"auto",paddingRight:16},footer:ae,children:z.jsxs("div",{style:{display:"flex",flexDirection:o?"column":"row",gap:16,alignItems:"stretch"},children:[r&&z.jsxs("div",{style:{flexShrink:0,width:o?"100%":232,background:"var(--semi-color-fill-0)",borderRadius:20,padding:"20px 18px 16px",display:"flex",flexDirection:"column",boxShadow:"0 12px 30px -18px rgba(0,0,0,.25)"},children:[z.jsxs(Me,{type:"tertiary",size:"small",children:["🪙 ",n("本次最多可提")]}),z.jsxs("div",{style:{fontSize:32,fontWeight:800,lineHeight:1.1,marginTop:6,color:"var(--semi-color-primary)",fontVariantNumeric:"tabular-nums"},children:["¥",te]}),z.jsx("div",{style:{height:0,borderTop:"1px dashed var(--semi-color-border)",margin:"14px 0"}}),z.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[Number.isFinite(V)&&z.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[z.jsx(Me,{type:"tertiary",size:"small",children:n("账户余额")}),z.jsxs(Me,{size:"small",style:{fontVariantNumeric:"tabular-nums",fontWeight:Z?600:400,color:Z?"var(--semi-color-warning)":void 0},children:["¥",De(V)]})]}),"personal"===d?z.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[z.jsx(Me,{type:"tertiary",size:"small",children:n("今日剩余可提")}),z.jsxs(Me,{size:"small",style:{fontVariantNumeric:"tabular-nums",color:ee?"var(--semi-color-warning)":void 0},children:["¥",De(G)]})]}):Number.isFinite(W)&&z.jsxs("div",{style:{display:"flex",justifyContent:"space-between"},children:[z.jsx(Me,{type:"tertiary",size:"small",children:n("单笔上限")}),z.jsxs(Me,{size:"small",style:{fontVariantNumeric:"tabular-nums"},children:["¥",De(W)]})]})]}),z.jsx("div",{style:{marginTop:"auto",display:"flex",flexDirection:"column",alignItems:"flex-start",ga
1p:2,paddingTop:12},children:z.jsx(T,{theme:"borderless",type:"tertiary",icon:z.jsx(F,{}),size:"small",onClick:()=>m(!0),style:{paddingLeft:0},children:n("提现说明")})})]}),z.jsx("div",{style:{flex:1,minWidth:0},children:h?z.jsx(Ge,{t:n,dashboard:r}):z.jsxs(z.Fragment,{children:[z.jsxs("div",{style:{marginBottom:14},children:[z.jsx(Me,{type:"tertiary",size:"small",children:n("提现方式")}),z.jsxs("div",{style:{display:"flex",gap:10,marginTop:8},children:[z.jsx(Je,{active:"corporate"===d,icon:z.jsx(A,{}),title:n("对公账户"),subtitle:n("推荐"),onClick:()=>c("corporate")}),z.jsx(Je,{active:"personal"===d,icon:z.jsx(R,{}),title:n("对私支付宝"),subtitle:n("小额"),onClick:()=>c("personal")})]})]}),z.jsxs(B,{getFormApi:e=>{b.current=e},layout:"vertical",labelPosition:"top",initValues:{payee_type:"corporate",corporate_subtype:"company",quota_rmb:""},children:[z.jsxs("div",{style:{display:"corporate"===d?"block":"none"},children:[I?z.jsxs("div",{style:{border:"1px solid var(--semi-color-success-light-default)",background:"var(--semi-color-success-light-default)",borderRadius:12,padding:"14px 16px",marginBottom:14},children:[z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:12,fontSize:13,color:"var(--semi-color-success)"},children:[z.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:"var(--semi-color-success)"}}),z.jsx("span",{style:{fontWeight:600,letterSpacing:.2},children:n("对公收款主体已由平台配置(自动使用)")})]}),z.jsxs("div",{style:{display:"grid",gridTemplateColumns:"auto 1fr",rowGap:11,columnGap:16,alignItems:"baseline"},children:[z.jsx("span",{style:Le,children:n("公司名")}),z.jsx("span",{style:We,children:S.company_name||"—"}),z.jsx("span",{style:Le,children:n("统一信用代码")}),z.jsx("span",{style:Ue,children:S.tax_no||"—"}),z.jsx("span",{style:Le,children:n("户名")}),z.jsx("span",{style:We,children:S.account_name||"—"}),z.jsx("span",{style:Le,children:n("银行账号")}),z.jsx("span",{style:Ue,children:S.account_no||"—"}),z.jsx("span",{style:Le,children:n("开户行")}),z.jsx("span",{style:Ve,children:S.bank_name||"—"}),S.bank_branch_code?z.jsxs(z.Fragment,{children:[z.jsx("span",{style:Le,children:n("联行号")}),z.jsx("span",{style:Ue,children:S.bank_branch_code})]}):null]}),z.jsx("div",{style:{fontSize:12,color:"var(--semi-color-text-2)",lineHeight:1.7,marginTop:12,paddingTop:10,borderTop:"1px dashed var(--semi-color-success-light-active)"},children:n("以上信息由平台代填,无需修改;请上传与「公司名/税号」一致的销项发票后提交。")})]}):w?z.jsxs("div",{style:{border:"1px solid var(--semi-color-success-light-default)",background:"var(--semi-color-success-light-default)",borderRadius:10,padding:"12px 14px",marginBottom:14},children:[z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:8,fontSize:12,color:"var(--semi-color-success)"},children:[z.jsx("span",{style:{display:"inline-block",width:6,height:6,borderRadius:"50%",background:"var(--semi-color-success)"}}),z.jsx("span",{style:{fontWeight:600},children:n("已通过企业实名认证(自动复用)")})]}),z.jsxs("div",{style:{display:"grid",gridTemplateColumns:"auto 1fr",gap:"6px 12px",fontSize:12},children:[z.jsx(Me,{type:"tertiary",size:"small",children:n("企业名称")}),z.jsx(Me,{strong:!0,style:{wordBreak:"break-all"},children:O||"—"}),z.jsx(Me,{type:"tertiary",size:"small",children:n("统一信用代码")}),z.jsx(Me,{style:{fontFamily:"ui-monospace, monospace"},children:M||"—"}),D&&z.jsxs(z.Fragment,{children:[z.jsx(Me,{type:"tertiary",size:"small",children:n("法定代表人")}),z.jsx(Me,{children:D})]})]})]}):z.jsxs("div",{style:{border:"1px solid var(--semi-color-warning-light-default)",background:"var(--semi-color-warning-light-default)",borderRadius:10,padding:"16px 14px",marginBottom:14},children:[z.jsx("div",{style:{fontSize:13,fontWeight:600,color:"var(--semi-color-warning)",marginBottom:6},children:n("对公账户需完成企业实名认证")}),z.jsx("div",{style:{fontSize:12,color:"var(--semi-color-text-2)",lineHeight:1.7,marginBottom:k?0:12},children:n(k?"你已完成个人实名认证。本平台仅支持一种实名类型,如需使用对公账户,请联系客服更改认证类型;或切换至「对私支付宝(小额)」提现。":"使用对公账户提现需先完成「企业实名认证」。完成后下次将自动带入企业名称与统一信用代码,无需重复填写。")}),!k&&z.jsx(T,{size:"small",theme:"solid",type:"warning",onClick:()=>{a?.(),l("/console/personal?tab=verify")},children:n("前往实名认证")})]}),!I&&w&&z.jsxs(z.Fragment,{children:[z.jsxs(B.RadioGroup,{field:"corporate_subtype",label:n("主体类型"),rules:[{required:!0,message:n("请选择主体类型")}],onChange:e=>{const t="string"==typeof e?e:e?.target?.value;try{const e=String(b.current?.getValue("corporate_account_name")||"").trim(),s=String(O||"").trim(),r
1=String(D||"").trim();if(e&&e!==s&&e!==r)return;"sole_proprietor"===t&&r?b.current?.setValue("corporate_account_name",r):"company"===t&&s&&b.current?.setValue("corporate_account_name",s)}catch{}},children:[z.jsx(B.Radio,{value:"company",children:n("公司")}),z.jsx(B.Radio,{value:"sole_proprietor",children:n("个体工商户")})]}),z.jsx(B.Input,{field:"corporate_account_name",label:n("户名"),placeholder:n("与银行账户开户名一致,个体户可为法人姓名"),rules:se.corporate_account_name,extraText:n("须与银行卡开户名完全一致;个体户若未开公户、以法人个人卡收款,请填法人姓名")}),z.jsx(B.Input,{field:"corporate_account",label:n("对公账户号"),placeholder:n("纯数字,6-30 位"),rules:se.corporate_account}),z.jsx(B.Input,{field:"corporate_bank",label:n("对公开户银行"),placeholder:n("请填写到支行,如:中国工商银行北京分行营业部"),rules:se.corporate_bank,extraText:n("开户行需精确到支行,否则可能导致对公打款失败")})]})]}),z.jsxs("div",{style:{display:"personal"===d?"block":"none"},children:[z.jsx(B.Input,{field:"alipay_account",label:n("支付宝账号"),placeholder:n("手机号或邮箱"),rules:se.alipay_account}),z.jsx(B.Input,{field:"alipay_real_name",label:n("真实姓名"),placeholder:n("与支付宝实名一致"),rules:se.alipay_real_name})]}),z.jsx("div",{style:{display:re?"none":"block"},children:z.jsx(B.Input,{field:"quota_rmb",label:n("提现金额(RMB)"),onChange:e=>{if("string"!=typeof e)return;const t=e.match(/^\d*(\.\d{0,2})?/),s=t?t[0]:"";if(s!==e)try{b.current?.setValue("quota_rmb",s)}catch{}},placeholder:r?n("personal"===d?"对私每日累计最多 ¥{{r}}":"最大 ¥{{r}}",{r:te}):n("请输入金额"),extraText:"personal"===d&&r?n("对私单日累计提现不可超过 ¥{{c}},超出请切换到对公线",{c:J.toFixed(2)}):void 0,rules:se.quota_rmb,suffix:z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[z.jsx(T,{size:"small",theme:"borderless",type:"primary",disabled:!r||X<=0,onClick:()=>{try{const e=(Math.floor(100*X)/100).toFixed(2);b.current?.setValue("quota_rmb",e),b.current?.setError("quota_rmb","")}catch{}},style:{padding:"0 6px"},children:n("全部")}),z.jsx(Me,{type:"tertiary",children:n("元")})]})})}),"corporate"===d&&(w||I)&&z.jsxs("div",{style:{marginTop:4},children:[z.jsxs("div",{style:{fontSize:13,marginBottom:4},children:[z.jsx("span",{style:{color:"var(--semi-color-danger)",marginRight:4},children:"*"}),n("本次提现发票")]}),z.jsx(E,{accept:".pdf,.jpg,.jpeg,.png,.webp,.bmp",maxSize:20480,fileList:g?[{uid:"1",name:g.name,status:"success"}]:[],beforeUpload:({file:e})=>(j(e.fileInstance),_(""),!1),onRemove:()=>j(null),children:z.jsx(T,{icon:z.jsx(P,{}),children:n("选择发票文件")})}),f&&z.jsx("div",{style:{color:"var(--semi-color-danger)",fontSize:12,marginTop:4,lineHeight:1.4},children:f}),z.jsx("div",{style:{fontSize:12,color:"var(--semi-color-text-2)",marginTop:6,lineHeight:1.6},children:n('发票金额须与本次提现金额完全一致;销方为你的企业,购方按下方"开票信息"开给我方。')}),z.jsx(Qe,{dashboard:r,t:n,style:{marginTop:10}}),z.jsx("div",{style:{marginTop:8,color:"var(--semi-color-danger)",fontSize:12,fontWeight:500},children:n("严禁虚开发票。一经发现将冻结提现并依法追责。")})]})]})]})})]})}),z.jsx($,{title:n("确认提现信息"),visible:x,onCancel:()=>y(!1),onOk:async()=>{const t=v.current;if(t){p(!0);try{let s=Number(r?.quota_per_rmb||0);if(!s)try{const t=await e.get("/api/status"),r=t?.data?.data;s=Number(r?.quota_per_unit||5e5)/Number(r?.price||7.3)}catch{s=5e5/7.3}const l=Number(t.quota_rmb),o=Number(t.quota)>0?Number(t.quota):Math.floor(l*s);let c;if("corporate"===d){const s=new FormData;s.append("quota",String(o)),s.append("payee_type","corporate"),s.append("corporate_subtype",t.corporate_subtype||"company"),I||(s.append("corporate_account",t.corporate_account||""),s.append("corporate_bank",t.corporate_bank||""),s.append("corporate_account_name",(t.corporate_account_name||"").trim())),s.append("file",g),c=await e.post("/api/user/withdraw",s,{headers:{"Content-Type":"multipart/form-data"}})}else c=await e.post("/api/user/withdraw",{quota:o,payee_type:"personal",alipay_account:t.alipay_account,alipay_real_name:Oe(t.alipay_real_name)});const{success:u,message:p}=c.data||{};u?(K.success(n("corporate"===d?"提现申请已提交,发票审核通过后对公预计 1-3 个工作日到账":"提现申请已提交,对私一般当日到账")),y(!1),a?.(),i?.()):K.error(n(p||"提现失败"))}catch(s){K.error(s?.message||n("提现失败"))}finally{p(!1)}}},confirmLoading:u,okText:n("确认提现"),cancelText:n("返回修改"),okButtonProps:{style:{border:"none",background:"linear-gradient(90deg, #3b82f6 0%, #8b5cf6 100%)",borderRadius:999,boxShadow:"0 8px 18px -8px rgba(124,92,250,.6)"}},width:o?"100%":420,children:(()=>{const e=v.current||{},t=e=>{const t=String(e||"");return t.length<=4?t:`****${t.slice(-4)}`},s="corporate"===d?[{label:n("提现金额"),value:`¥${De(e.quota_rmb)}`,strong:!0},{label:n("提现方式"),value:n("对公账户")}
1,{label:n("户名"),value:I?S.account_name:e.corporate_account_name},{label:n("收款账户"),value:t(I?S.account_no:e.corporate_account)},{label:n("开户银行"),value:I?S.bank_name:e.corporate_bank},{label:n("本次提现发票"),value:g?.name||"—"}]:[{label:n("提现金额"),value:`¥${De(e.quota_rmb)}`,strong:!0},{label:n("提现方式"),value:n("对私支付宝")},{label:n("支付宝账号"),value:t(e.alipay_account)},{label:n("真实姓名"),value:e.alipay_real_name}];return z.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[s.map(e=>z.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:12,alignItems:"baseline"},children:[z.jsx(Me,{type:"tertiary",children:e.label}),z.jsx(Me,{strong:e.strong,style:{wordBreak:"break-all",textAlign:"right",color:e.strong?"var(--semi-color-primary)":void 0,fontSize:e.strong?17:void 0},children:e.value||"—"})]},e.label)),z.jsx("div",{style:{marginTop:4,padding:"8px 10px",borderRadius:6,background:"var(--semi-color-fill-0)",fontSize:12,color:"var(--semi-color-text-2)",lineHeight:1.6},children:"corporate"===d?n("发票金额须与提现金额 ¥{{amt}} 完全一致,否则无法通过审核。提交后发票将进入审核,审核通过后放款;若发票不符将驳回并退回额度。请核对收款信息无误。",{amt:De((v.current||{}).quota_rmb)}):n("提交后将进入审核,到账以实际打款为准。请核对收款信息无误。")})]})})()})]})}function Xe({list:e,total:t,page:s,pageSize:r,loading:a,onPageChange:i,onWithdraw:n,t:l}){if(a&&0===e.length)return z.jsx("div",{style:{padding:"32px 0",textAlign:"center",color:"var(--semi-color-text-2)"},children:l("加载中...")});if(!a&&0===e.length)return z.jsx("div",{style:{padding:"32px 0",textAlign:"center",color:"var(--semi-color-text-2)"},children:l("暂无回票记录")});const o=Math.max(1,Math.ceil(t/r));return z.jsxs("div",{children:[z.jsx("div",{style:{display:"flex",flexDirection:"column",gap:10},children:e.map(e=>{const t="rejected"===e.status||"pending_review"===e.status,s=["pending_ocr","pending_verify","pending_review"].includes(e.status);return z.jsxs("div",{style:{border:"1px solid var(--semi-color-border)",borderRadius:10,padding:"12px 14px",background:"var(--semi-color-bg-2)",display:"flex",flexDirection:"column",gap:6},children:[z.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:8},children:[z.jsx(Me,{strong:!0,style:{fontSize:14,flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.seller_name||l("(无销方)")}),z.jsxs(Me,{strong:!0,style:{fontSize:15,fontVariantNumeric:"tabular-nums",flexShrink:0},children:["¥",Number(e.total_amount||0).toFixed(2)]})]}),z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"var(--semi-color-text-2)"},children:[z.jsx(O,{size:"small",color:Ke[e.status]||"grey",children:l(He[e.status]||e.status)}),z.jsx("span",{style:{marginLeft:"auto"},children:e.created_at?new Date(1e3*e.created_at).toLocaleString():"-"})]}),e.review_remark&&z.jsx("div",{style:{fontSize:12,color:t?"var(--semi-color-danger)":"var(--semi-color-text-2)",lineHeight:1.5,background:"var(--semi-color-fill-0)",padding:"6px 8px",borderRadius:6},children:e.review_remark}),z.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:11,color:"var(--semi-color-text-2)"},children:[z.jsxs("span",{children:["#",e.id]}),s&&z.jsx(T,{size:"small",type:"danger",onClick:()=>n(e),children:l("撤回")})]})]},e.id)})}),o>1&&z.jsxs("div",{style:{marginTop:14,display:"flex",justifyContent:"center",alignItems:"center",gap:12},children:[z.jsx(T,{size:"small",disabled:s<=1,onClick:()=>i(s-1),children:l("上一页")}),z.jsxs(Me,{size:"small",type:"tertiary",children:[s," / ",o]}),z.jsx(T,{size:"small",disabled:s>=o,onClick:()=>i(s+1),children:l("下一页")})]})]})}function Ze({dashboard:s,onChanged:r}={}){const{t:a}=t(),i=ge(),[n,l]=N.useState([]),[o,d]=N.useState(0),[c,u]=N.useState(1),[p,h]=N.useState(10),[m,x]=N.useState(!1),y=N.useCallback(async(t=1,s=p)=>{x(!0);try{const r=await e.get(`/api/agent_invoice_return?page=${t}&page_size=${s}`),{success:a,data:i}=r.data||{};a&&i&&(l(i.list||[]),d(i.total||0),u(t))}finally{x(!1)}},[p]);N.useEffect(()=>{y(1)},[y]);const g=t=>{$.confirm({title:a("撤回该对公提现"),content:a("撤回后本次对公提现将被取消,已占用的提现额度会退回到你的账户。确定撤回吗?"),okText:a("确认撤回"),cancelText:a("再想想"),okButtonProps:{type:"danger"},onOk:async()=>{try{const s=await e.post(`/api/agent_invoice_return/${t.id}/withdraw`),{success:i,message:n}=s.data||{};i?(K.success(a("已撤回,额度已退回")),y(c),r?.()):K.error(a(n||"撤回失败"))}catch(s){K.error(s?.message||a("撤回失败"))}}})},j=[{title:a("序号"),width:80,render:(e,t,s)=>(c-1)*p+s+1},{title:a("销方"),dataIndex:"seller_name"},{title:a("金额"),dataIndex:"total_amount",render:e=>`¥${Number(e).toFixed(2)}`},{title:a("状态"),dataIndex:"status",width:130,render:(e,t)=>{const s=z.jsx(O,{color:Ke[e]||"grey",children:a(He[e]||e)});return"rejected"!==e&&"pending_review"!==e||!t.review_remark?s:z.jsx(M,{content:t.review_remark,children:s})}},{title:a("备注"),dataIndex:"review_remark",render:(e,t)=>{if(!e)return z.jsx(Me,{type:"tertiary",size:"small",children:"-"});const s="rejected"===t.status||"pending_review"===t.status;return z.jsx(Me,{type:s?"danger":"tertiary",size:"small",ellipsis:{showTooltip:!0},style:{maxWidth:280},children:e})}},{title:a("上传时间"),dataIndex:"created_at",width:180,render:e=>
1e?new Date(1e3*e).toLocaleString():"-"},{title:a("操作"),width:110,render:(e,t)=>["pending_ocr","pending_verify","pending_review"].includes(t.status)?z.jsx(T,{size:"small",type:"danger",onClick:()=>g(t),children:a("撤回")}):z.jsx(Me,{type:"tertiary",size:"small",children:"-"})}];return z.jsxs("div",{style:{width:"100%"},children:[s&&z.jsx(D,{type:"info",closeIcon:null,style:{marginBottom:16},title:a("对公提现发票审核记录"),description:a("对公提现的发票在提交提现时一并上传,这里展示其审核状态。审核通过后放款,驳回则退回额度。对私支付宝提现无需发票。")}),s&&z.jsx(Qe,{dashboard:s,t:a,style:{marginBottom:16}}),z.jsx(L,{wrap:!0,style:{marginBottom:16},children:z.jsx(T,{icon:z.jsx(V,{}),onClick:()=>y(c),block:i,children:a("刷新")})}),i?z.jsx(Xe,{list:n,total:o,page:c,pageSize:p,loading:m,onPageChange:e=>y(e),onWithdraw:g,t:a}):z.jsx(W,{columns:j,dataSource:n,rowKey:"id",loading:m,pagination:{currentPage:c,pageSize:p,total:o,showSizeChanger:!0,showQuickJumper:!0,showTotal:!0,onChange:(e,t)=>
1{h(t),y(e,t)}}})]})}const{Text:et,Title:tt}=q,st={company_name:"",tax_no:"",account_name:"",account_no:"",bank_name:"",bank_branch_code:"",enabled:!0};function rt(){const{t:s}=t(),r=ge(),[a,i]=N.useState([]),[n,l]=N.useState(0),[o,d]=N.useState(1),[c,u]=N.useState(10),[p,h]=N.useState(!1),[m,x]=N.useState(""),[y,g]=N.useState(!1),[j,f]=N.useState("create"),[_,v]=N.useState(""),[b,w]=N.useState({...st}),[k,S]=N.useState(!1),C=(e,t)=>w(s=>({...s,[e]:t})),I=N.useCallback(async(t=1,r="",a=10)=>{h(!0);try{const s=r?`&user_id=${parseInt(r,10)||0}`:"",n=await e.get(`/api/user/corporate_payee_profiles?page=${t}&page_size=${a}${s}`),{success:o,data:c}=n.data||{};o&&c&&(i(c.items||[]),l(c.total||0),d(t),u(a))}catch(n){K.error(s("获取失败"))}finally{h(!1)}},[s]);N.useEffect(()=>{I(1,"",10)},[I]);const $=()=>I(1,m.trim(),c),q=[{title:s("用户ID"),dataIndex:"user_id",width:90},{title:s("公司名"),dataIndex:"company_name",ellipsis:!0},{title:s("统一信用代码"),dataIndex:"tax_no",ellipsis:!0},{title:s("户名"),dataIndex:"account_name",ellipsis:!0},{title:s("银行账号"),dataIndex:"account_no",ellipsis:!0},{title:s("开户行"),dataIndex:"bank_name",ellipsis:!0},{title:s("启用"),dataIndex:"enabled",width:80,render:e=>!1!==e?z.jsx(O,{color:"green",children:s("启用")}):z.jsx(O,{color:"grey",children:s("已停用")})},{title:s("最后修改人"),dataIndex:"operator_name",width:110,ellipsis:!0},{title:s("操作"),width:150,render:(t,r)=>z.jsxs(L,{children:[z.jsx(T,{size:"small",theme:"light",type:"primary",icon:z.jsx(H,{}),onClick:()=>(e=>{f("edit"),v(String(e.user_id)),w({company_name:e.company_name||"",tax_no:e.tax_no||"",account_name:e.account_name||"",account_no:e.account_no||"",bank_name:e.bank_name||"",bank_branch_code:e.bank_branch_code||"",enabled:!1!==e.enabled}),g(!0)})(r),children:s("编辑")}),z.jsx(Q,{title:s("确认删除该用户的代填主体?"),content:s("删除后该用户对公提现将恢复走企业实名流程。"),onConfirm:()=>(async t=>{if(t)try{const r=await e.delete(`/api/user/corporate_payee_profile?user_id=${t}`),{success:i,message:n}=r.data||{};if(i){K.success(s("删除成功"));const e=1===a.length&&o>1?o-1:o;I(e,m.trim(),c)}else K.error(n||s("删除失败"))}catch(r){K.error(s("删除失败"))}})(r.user_id),children:z.jsx(T,{size:"small",theme:"light",type:"danger",icon:z.jsx(J,{})})})]})}],F={display:"block",marginBottom:4},A={marginBottom:14};return z.jsxs("div",{style:{width:"100%"},children:[z.jsx(D,{type:"info",closeIcon:null,description:s("仅用于无法企业实名的个人合同用户。配置后该用户对公提现的公司名/税号/收款账户将只读,优先级高于企业实名;未配置的用户不受影响。"),style:{marginBottom:16}}),z.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:12,marginBottom:16},children:[z.jsxs(L,{children:[z.jsx(G,{value:m,onChange:x,prefix:z.jsx(Y,{}),placeholder:s("按用户ID搜索"),style:{width:220},showClear:!0,onEnterPress:$,onClear:()=>{x(""),I(1,"",c)}}),z.jsx(T,{theme:"solid",loading:p,onClick:$,children:s("查询")}),z.jsx(T,{icon:z.jsx(V,{}),theme:"borderless",onClick:()=>I(o,m.trim(),c),children:s("刷新")})]}),z.jsx(T,{icon:z.jsx(X,{}),theme:"solid",type:"primary",onClick:()=>{f("create"),v(""),w({...st}),g(!0)},children:s("新建代填主体")})]}),z.jsx(W,{rowKey:"id",loading:p,dataSource:a,columns:q,size:"middle",empty:z.jsx(Z,{description:s("暂无配置")}),pagination:{currentPage:o,pageSize:c,total:n,onChange:(e,t)=>
1I(e,m.trim(),t||c),showSizeChanger:!0,showQuickJumper:!0,showTotal:!0}}),z.jsxs(ee,{placement:"right",visible:y,onCancel:()=>g(!1),width:r?"100%":600,maskClosable:!0,title:z.jsxs(L,{children:["create"===j?z.jsx(O,{color:"green",shape:"circle",children:s("新建")}):z.jsx(O,{color:"blue",shape:"circle",children:s("编辑")}),z.jsx(tt,{heading:5,style:{margin:0},children:s("create"===j?"新建代填主体":"编辑代填主体")})]}),footer:z.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:z.jsxs(L,{children:[z.jsx(T,{theme:"light",type:"tertiary",icon:z.jsx(ae,{}),onClick:()=>g(!1),children:s("取消")}),z.jsx(T,{theme:"solid",type:"primary",icon:z.jsx(ie,{}),loading:k,onClick:async()=>{const t=parseInt(_,10);if(!t||t<=0)K.warning(s("请输入有效的用户ID"));else if(b.company_name&&b.tax_no&&b.account_name&&b.account_no&&b.bank_name){S(!0);try{const r=await e.post("/api/user/corporate_payee_profile",{user_id:t,...b}),{success:a,message:i}=r.data||{};a?(K.success(s("保存成功")),g(!1),I(o,m.trim(),c)):K.error(i||s("保存失败"))}catch(r){K.error(s("保存失败"))}finally{S(!1)}}else K.warning(s("公司名、税号、户名、账号、开户行均为必填"))},children:s("保存")})]})}),children:[z.jsxs("div",{style:A,children:[z.jsxs(et,{style:F,children:[s("用户ID"),z.jsx(et,{type:"danger",children:" *"})]}),"create"===j?z.jsx(G,{value:_,onChange:v,placeholder:s("请输入要配置的用户ID")}):z.jsx(G,{value:_,disabled:!0})]}),z.jsxs(te,{gutter:16,children:[z.jsx(se,{span:12,children:z.jsxs("div",{style:A,children:[z.jsxs(et,{style:F,children:[s("公司名"),z.jsx(et,{type:"danger",children:" *"})]}),z.jsx(G,{value:b.company_name,onChange:e=>C("company_name",e),placeholder:s("对公主体全称")})]})}),z.jsx(se,{span:12,children:z.jsxs("div",{style:A,children:[z.jsxs(et,{style:F,children:[s("统一社会信用代码/税号"),z.jsx(et,{type:"danger",children:" *"})]}),z.jsx(G,{value:b.tax_no,onChange:e=>C("tax_no",e),placeholder:s("销方税号")})]})}),z.jsx(se,{span:12,children:z.jsxs("div",{style:A,children:[z.jsxs(et,{style:F,children:[s("户名"),z.jsx(et,{type:"danger",children:" *"})]}),z.jsx(G,{value:b.account_name,onChange:e=>C("account_name",e),placeholder:s("收款户名")})]})}),z.jsx(se,{span:12,children:z.jsxs("div",{style:A,children:[z.jsxs(et,{style:F,children:[s("银行账号"),z.jsx(et,{type:"danger",children:" *"})]}),z.jsx(G,{value:b.account_no,onChange:e=>C("account_no",e),placeholder:s("收款银行账号")})]})}),z.jsx(se,{span:12,children:z.jsxs("div",{style:A,children:[z.jsxs(et,{style:F,children:[s("开户行"),z.jsx(et,{type:"danger",children:" *"})]}),z.jsx(G,{value:b.bank_name,onChange:e=>C("bank_name",e),placeholder:s("请填写到支行,如:招商银行深圳分行科技园支行")}),z.jsx(et,{type:"tertiary",style:{fontSize:12,marginTop:4,display:"block"},children:s("开户行需精确到支行,否则可能导致对公打款失败")})]})}),z.jsx(se,{span:12,children:z.jsxs("div",{style:A,children:[z.jsx(et,{style:F,children:s("联行号(选填)")}),z.jsx(G,{value:b.bank_branch_code,onChange:e=>C("bank_branch_code",e),placeholder:s("银行联行号,选填")})]})})]}),z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[z.jsx(re,{checked:b.enabled,onChange:e=>C("enabled",e)}),z.jsx(et,{children:s("启用")}),z.jsx(et,{type:"tertiary",size:"small",children:s("关闭后该用户对公提现将恢复走企业实名流程")})]})]})]})}const at=e=>{const t=parseFloat(String(e??"").replace(/,/g,"").trim());return Number.isFinite(t)?t:NaN},it=(e,t,s)=>{if(!Number.isFinite(e)||e<=0)return!1;const r=Math.floor(100*e+1e-9)/100;return!(t>0&&r<Math.floor(100*t+1e-9)/100)&&!(s>0&&r>Math.floor(100*s+1e-9)/100)},nt=({visible:s,onClose:n,onSuccess:l,initialMoney:o="",initialOrderNos:d="",initialIds:c="",invoicePersonalEnabled:u=!0,invoiceEnterpriseEnabled:p=!0,invoiceMinAmount:h=0,invoiceMaxAmount:m=0})=>{const{t:x}=t(),y=r(),[g,j]=N.useState(null),[f,_]=N.useState("enterprise"),[v,b]=N.useState(""),[w,k]=N.useState(),[S,C]=N.useState(""),[I,F]=N.useState(""),[A,R]=N.useState("pdf"),[E,P]=N.useState(""),[O,M]=N.useState(""),[D,V]=N.useState(""),[W,U]=N.useState(""),[H,Q]=N.useState(""),[J,Y]=N.useState(!1),[X,Z]=N.useState(""),[ee,te]=N.useState(null),[se,re]=N.useState(!1),[ae,ie]=N.useState(""),oe=N.useMemo(()=>at(o),[o]),de=N.useMemo(()=>it(oe,Number(h)||0,Number(m)||0),[oe,h,m]),ce=N.useMemo(()=>{const e=Number(h)||0,t=Number(m)||0;return e<=0&&t<=0?"":e>0&&t>0?`${x("允许开票金额")} ${e.toFixed(2)}~${t.toFixed(2)} ${x("元")}`:e>0?`${x("单笔不低于")} ${e.toFixed(2)} ${x("元")}`:`${x("单笔不高于")} ${t.toFixed(2)} ${x("元")}`},[h,m,x]),[ue,pe]=N.useState([]),[he,me]=N.useState([]),[xe,ye]=N.useState([]);N.useEffect(()=>{s&&(j(null),_("enterprise"),b(""),k(""),C(""),F("normal"),R("pdf"),P(""),M(""),V(""),U(""),Q(""),Y(!1),Z(""),ie(""),me([]),ye([]),(async()=>{try{const t=await e.get("/api/identity_verify/success_list");if(t.data.success){const e=t.data.data||[];pe(e);const s=e.filter(e=>"personal"===e.verify_type),r=e.filter(e=>"enterprise"===e.verify_type);if(me(s),ye(r),s.length>0){const e=s[0];_("personal"),j(e.id),b(e.cert_name||""),k(e.cert_no||""),C("")}else if(r.length>0){const e=r[0];_("enterprise"),j(e.id),b(e.ep_cert_name||""),k(e.ep_cert_no||""),C(e.legal_person_cert_name||"")}}}catch(t){console.error("获取实名验证信息失败",t)}})())},[s]);const ge=async t=>{if(ae)if(g)if("personal"!==f||u)if("enterprise"!==f||p){if(!de){const e=Number(h)||0,t=Number(m)||0;return void a(e>0&&t>0?`开票金额需在 ${e.toFixed(2)}~${t.toFixed(2)} 元之间`:e>0?`开票金额不能低于 ${e.toFixed(2)} 元`:t>0?`开票金额不能高于 ${t.toFixed(2)} 元`:x("开票金额不在允许范围内"))}re(!0);try{const s={identity_verify_id:g,invoice_type:t.invoiceCategory,invoice_category:f,invoice_format:t.invoiceFormat,bank_name:t.bankName,bank_account:t.bankAccount,register_address:t.registerAddress,register_phone:t.registerPhone,invoice_remark:t.invoiceRemark,receive_email:t.receiveEmail,recharge_amount:o,order_nos:d,ids:Array.isArray(c)?c.join(","):String(c),captcha_token:ae};console?.log(s);const r=await e.post("/api/invoice/batch",s);if(r.data.success){const e=r.data?.data?.count||1,t=r.data?.data?.message||x("申请成功");i(e>1?t:x("申请成功")),ie(""),l&&l(),n&&n()}else K.error(r.data.message||x("申请失败"))}catch(s){a(s.message||x("申请失败"))}finally{re(!1)}}else a(x("暂时不支持企业申请开票"));else a(x("暂时不支持个人申请开票"));else a(x("请选择认证信息"));else a(x("请先完成滑块人机验证"))},je=z.jsx("div",{className:"flex items-center justify-center relative w-full pt-[20px] pb-[10px]",children:z.jsx(q.Text,{strong:!0,children:x("申请开票")})}),fe=y?{header:je}:{};return z.jsxs(z.Fragment,{children:[y&&z.jsx("style",{children:".invoice-modal .semi-modal-content { padding: 0 !important; }"}),z.jsx($,{className:"invoice-modal",title:x("申请开票"),...fe,closable:!y,visible:s,footer:y?z.jsx("div",{style:{padding:"24px",position:"absolute",margin:0,bottom:0,left:0,right:0,width:"100%",zIndex:1e3},children:ae?z.jsx(T,{type:"primary",block:!0,size:"large",style:{width:"100%",margin:"0 auto",padding:"10px 16px",zIndex:1e3,color:"#fff",background:"linear-gradient(44.999999999999964deg, #52c41a 0%, #73d13d 100%)"},loading:se,onClick:()=>
1ee?ee.submitForm():ge(),children:"✓ "+x("已验证,点击提交")}):z.jsx(_e,{onVerified:e=>{ie(e)},disabled:!1,children:z.jsx(T,{type:"primary",block:!0,size:"large",style:{width:"100%",margin:"0 auto",padding:"10px 16px",zIndex:1e3,color:"#fff",background:"linear-gradient(44.999999999999964deg, #46ACFF 0%, #0084FF 100%)"},children:x("开票")})})}):z.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:ae?z.jsx(T,{type:"primary",size:"large",style:{width:"120px",padding:"10px 16px",color:"#fff",zIndex:1e3,background:"linear-gradient(44.999999999999964deg, #52c41a 0%, #73d13d 100%)"},loading:se,onClick:()=>ee?ee.submitForm():ge(),children:"✓ "+x("提交")}):z.jsx(_e,{onVerified:e=>{ie(e)},disabled:!1,children:z.jsx(T,{type:"primary",size:"large",style:{width:"120px",padding:"10px 16px",color:"#fff",zIndex:1e3,background:"linear-gradient(44.999999999999964deg, #46ACFF 0%, #0084FF 100%)"},children:x("开票")})})}),okText:y?void 0:x("开票"),onCancel:n,confirmLoading:se,style:{padding:"0px",width:y?"80vw":720,height:y?"80vh":"800px",maxWidth:y?"100vw":720},bodyStyle:{padding:"10px 34px",overflow:"auto",marginBottom:y?"34px":"0"},children:z.jsxs(B,{labelPosition:"left",getFormApi:te,onSubmit:ge,children:[z.jsx(ne,{className:"!rounded-2xl",shadows:"always",bordered:!1,title:z.jsx(q.Text,{strong:!0,children:x("填写发票信息")}),children:z.jsxs(L,{vertical:!0,align:"start",style:{width:"100%"},spacing:12,children:[z.jsx(B.Input,{field:"amount",label:x("发票金额"),initValue:o,placeholder:x("金额由系统计算"),rules:[{required:!0,message:x("请输入发票金额")}],readonly:!0}),ce?z.jsx(q.Text,{type:"tertiary",size:14,children:ce}):null,z.jsx(B.Select,{field:"invoiceCategory",label:x("发票类型"),value:I,initValue:"normal",style:{minWidth:y?"100%":"185px"},onChange:e=>{F(e)},placeholder:x("请选择发票类型"),rules:[{required:!0,message:x("请选择发票类型")}],children:z.jsx(le.Option,{value:"normal",children:x("增值税普通发票")})}),z.jsxs(B.Select,{field:"invoiceFormat",label:x("开票格式"),value:A,initValue:"pdf",style:{minWidth:y?"100%":"185px"},onChange:e=>{R(e)},placeholder:x("请选择开票格式"),rules:[{required:!0,message:x("请选择开票格式")}],children:[z.jsx(le.Option,{value:"pdf",children:x("PDF 格式")}),z.jsx(le.Option,{value:"xml",children:x("XML 格式(数电发票原始凭证)")}),z.jsx(le.Option,{value:"both",children:x("PDF + XML(两种格式都要)")})]}),0===he.length&&0===xe.length&&z.jsx("div",{style:{width:"100%",padding:"12px 16px",background:"hsl(var(--warning) / 0.12)",borderRadius:8,color:"hsl(var(--warning))"},children:z.jsxs(q.Text,{style:{color:"inherit"},children:[x("您还未完成实名认证,请先到"),z.jsx("a",{href:"/console/personal",target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",textDecoration:"underline",fontWeight:600,cursor:"pointer"},children:x("「个人设置 > 实名认证」")}),x("完成认证后再申请开票")]})}),(he.length>0||xe.length>0)&&z.jsxs("div",{style:{width:"100%"},children:[z.jsx(q.Text,{style:{fontSize:14,fontWeight:500,marginBottom:8,display:"block"},children:x("抬头类型")}),z.jsxs("div",{style:{padding:"8px 12px",background:"hsl(var(--foreground) / 0.02)",borderRadius:6,display:"inline-flex",alignItems:"center",gap:8},children:[z.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:"hsl(var(--success))",display:"inline-block"}}),z.jsx(q.Text,{children:x("personal"===f?"个人":"企业")}),z.jsxs(q.Text,{type:"tertiary",size:14,children:["(",x("已认证"),")"]})]})]}),(he.length>0||xe.length>0)&&z.jsxs(z.Fragment,{children:[z.jsxs("div",{style:{width:"100%"},children:[z.jsx(q.Text,{style:{fontSize:14,fontWeight:500,marginBottom:8,display:"block"},children:x("发票抬头")}),z.jsx(G,{value:v,placeholder:x("认证信息自动填入"),readonly:!0,disabled:!0,style:{width:"100%"}})]}),"personal"===f?z.jsxs("div",{style:{width:"100%"},children:[z.jsx(q.Text,{style:{fontSize:14,fontWeight:500,marginBottom:8,display:"block"},children:x("身份证号")}),z.jsx(G,{value:w,placeholder:x("认证信息自动填入"),readonly:!0,disabled:!0,style:{width:"100%"}})]}):"enterprise"===f?z.jsxs(z.Fragment,{children:[z.jsxs("div",{style:{width:"100%"},children:[z.jsx(q.Text,{style:{fontSize:14,fontWeight:500,marginBottom:8,display:"block"},children:x("税号")}),z.jsx(G,{value:w,placeholder:x("认证信息自动填入"),readonly:!0,disabled:!0,style:{width:"100%"}})]}),z.jsxs("div",{style:{width:"100%"},children:[z.jsx(q.Text,{style:{fontSize:14,fontWeight:500,marginBottom:8,display:"block"},children:x("法人姓名")}),z.jsx(G,{value:S,placeholder:x("认证信息自动填入"),readonly:!0,disabled:!0,style:{width:"100%"}})]})]}):null]}),z.jsx(T,{type:"tertiary",theme:"outline",icon:J?z.jsx(ve,{size:16}):z.jsx(be,{size:16}),onClick:()=>Y(e=>
1!e),children:x(J?"收起发票信息":"更多发票信息")}),J&&z.jsxs(L,{vertical:!0,align:"start",style:{width:"100%"},spacing:12,children:[z.jsx(B.Input,{field:"bankName",label:x("开户银行"),value:E,onChange:P,placeholder:x("选填")}),z.jsx(B.Input,{field:"bankAccount",label:x("银行账号"),value:O,onChange:M,inputMode:"numeric",pattern:"[0-9]*",placeholder:x("请输入银行账号"),rules:[{validator:(e,t)=>t?/^[0-9]+$/.test(t)?Promise.resolve():Promise.reject(x("银行账号需为纯数字")):Promise.resolve()}]}),z.jsx(B.Input,{field:"registerAddress",label:x("注册地址"),value:D,onChange:V,placeholder:x("选填")}),z.jsx(B.Input,{field:"registerPhone",label:x("注册电话"),value:W,onChange:U,inputMode:"tel",placeholder:x("请输入注册电话"),rules:[{validator:(e,t)=>t?/^1[3-9]\d{9}$/.test(t)||/^0\d{2,3}-?\d{7,8}$/.test(t)?Promise.resolve():Promise.reject(x("请输入有效的手机或座机号码")):Promise.resolve()}]}),z.jsx(B.TextArea,{field:"invoiceRemark",label:x("发票备注"),value:H,onChange:Q,placeholder:x("选填"),autosize:!0})]})]})}),z.jsx(ne,{className:"!rounded-2xl",shadows:"always",bordered:!1,style:{marginTop:12},title:z.jsx(q.Text,{strong:!0,children:x("接收方式")}),children:z.jsx(B.Input,{field:"receiveEmail",label:x("电子邮箱"),value:X,onChange:Z,placeholder:x("用于向您发送电子发票"),inputMode:"email",rules:[{required:!0,message:x("请输入电子邮箱")},{type:"email",message:x("请输入有效的电子邮箱地址")}]})})]})})]})},{Text:lt}=q,ot=(e,t)=>`$${(Number(e||0)/(t||1)).toFixed(2)}`;function dt({visible:e,onCancel:s,onConfirm:r,record:a,quotaPerUnit:i=5e5,title:n,requireRemark:l=!0,okText:o,confirmLoading:d=!1}){const{t:c}=t(),[u,p]=N.useState(!1),[h,m]=N.useState("");N.useEffect(()=>{e&&(p(!1),m(""))},[e,a?.id]);const x=!!a?.quota_pre_deducted,y=Number(a?.refund_quota||0),g=Number(a?.user_quota??a?.userQuota??0),j=N.useMemo(()=>{const e=g,t=e+y;return{amount:ot(y,i),before:ot(e,i),after:ot(t,i)}},[g,y,i]);return z.jsxs($,{title:z.jsxs(L,{align:"center",children:[z.jsx("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:6,background:"#fef3c7",color:"#b45309"},children:z.jsx(we,{size:16})}),z.jsx("span",{children:n||c("驳回退款申请")})]}),visible:e,onCancel:s,onOk:()=>{l&&!h.trim()||r?.({restore_quota:!!x&&u,remark:h.trim()})},okText:o||c("确认驳回"),okButtonProps:{type:"warning",loading:d,disabled:l&&!h.trim()},cancelText:c("取消"),width:520,children:[a&&z.jsx("div",{style:{marginBottom:12},children:z.jsxs(lt,{type:"tertiary",children:[a.username?`${a.username} `:"","(ID:",a.user_id??a.id,") · ",c("退款额度")," ",j.amount]})}),z.jsxs("div",{style:{marginBottom:12},children:[z.jsxs(lt,{strong:!0,children:[c("驳回原因")," ",l?z.jsx(lt,{type:"danger",children:"*"}):null]}),z.jsx(oe,{value:h,onChange:m,rows:3,placeholder:c("请填写驳回原因(内部备注,用户可见对外文案另行处理)"),style:{marginTop:6}})]}),x&&z.jsxs(z.Fragment,{children:[z.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",border:"1px solid var(--semi-color-border)",borderRadius:8,marginBottom:10},children:[z.jsxs("div",{children:[z.jsx("div",{style:{fontWeight:600},children:c("退回预扣额度")}),u?z.jsx(lt,{type:"tertiary",size:"small",children:c("驳回后将 {{amount}} 退回至用户余额",{amount:j.amount})}):z.jsx(lt,{type:"danger",size:"small",strong:!0,children:c("关闭时不退回预扣的 {{amount}}",{amount:j.amount})})]}),z.jsx(re,{checked:u,onChange:p})]}),u?z.jsx("div",{style:{padding:"8px 12px",background:"#ecfdf5",border:"1px solid #6ee7b7",borderRadius:8,color:"#065f46",fontSize:13},children:c("驳回后用户余额将从 {{before}} 恢复至 {{after}},系统自动操作,无需手动处理。",{before:j.before,after:j.after})}):z.jsx("div",{style:{padding:"8px 12px",background:"#fffbeb",border:"1px solid #fcd34d",borderRadius:8,color:"#92400e",fontSize:13},children:c("未开启时,预扣的 {{amount}} 不会退回用户余额。",{amount:j.amount})})]})]})}function ct(e){return{pending_review:{label:e("待管理员审核"),color:"orange"}
1,pending_process:{label:e("待财务处理"),color:"blue"},pending_root:{label:e("待超管处理"),color:"purple"},done:{label:e("已处理"),color:"green"},rejected:{label:e("已驳回"),color:"red"}}}function ut(e,t){if(!e?.quota_pre_deducted)return{label:"—",color:"grey"};switch(e.status){case"pending_review":case"pending_process":case"pending_root":return{label:t("已预扣"),color:"orange"};case"done":return{label:t("已扣减入账"),color:"green"};case"rejected":return e.quota_restored?{label:t("已恢复"),color:"blue"}:{label:t("未恢复"),color:"red"};default:return{label:"—",color:"grey"}}}const{Text:pt}=q;function ht({topUpId:s,visible:r=!1,quotaPerUnit:a=5e5,reloadKey:i=0}){const{t:n}=t(),[l,o]=N.useState(!1),[d,c]=N.useState([]),u=ct(n);N.useEffect(()=>{if(!r||!s)return;let t=!1;return o(!0),c([]),(async()=>{try{const r=await e.get("/api/refund/admin/",{params:{top_up_id:s,page:1,page_size:50}});if(t)return;c(r.data?.success&&r.data.data?.items||[])}catch(r){t||c([])}finally{t||o(!1)}})(),()=>{t=!0}},[r,s,i]);const p=[{title:n("申请时间"),dataIndex:"created_at",width:168,render:e=>e?new Date(1e3*e).toLocaleString():"-"},{title:n("订单号"),dataIndex:"trade_no",width:180,ellipsis:!0,render:e=>e||"-"},{title:n("退款额度"),dataIndex:"refund_quota",width:96,render:e=>function(e,t=5e5){const s=Number(e||0)/(t||5e5);return Number.isFinite(s)?`$${s.toFixed(2)}`:"$0.00"}(e,a)},{title:n("状态"),dataIndex:"status",width:120,render:e=>{const t=u[e]||{label:e,color:"grey"};return z.jsx(O,{color:t.color,size:"small",children:t.label})}},{title:n("额度处理"),width:100,render:(e,t)=>{const s=ut(t,n);return"—"===s.label?z.jsx(pt,{type:"tertiary",children:"—"}):z.jsx(O,{color:s.color,size:"small",children:s.label})}}];return z.jsxs("div",{style:{marginTop:16},children:[z.jsx(pt,{strong:!0,style:{display:"block",marginBottom:8,fontSize:14},children:n("本单退款记录")}),z.jsx(de,{spinning:l,children:l||0!==d.length?z.jsx(W,{columns:p,dataSource:d,rowKey:"id",pagination:!1,size:"small",style:{width:"100%"}}):z.jsx(pt,{type:"tertiary",size:"small",children:n("暂无退款记录")})})]})}const{Text:mt,Title:xt}=q,yt=e=>{if(null==e||isNaN(Number(e)))return"0.00";const t=Number(e).toFixed(10),s=t.indexOf(".");return-1===s?t+".00":t.substring(0,s+3)},gt=()=>{const{t:C}=t(),F=ct(C);r();const A=e=>({zfb:C("支付宝支付"),alipay:C("支付宝支付"),wx:C("微信支付"),wxpay:C("微信支付"),stripe:"Stripe"}[e.type]||e.name),[R,P]=N.useContext(n),[V]=N.useContext(l);o();const U=R?.user?.activity_tag,H="active"===U||"agent"===U,Q="agent"===U?"https://relayrouter.ai/":"https://api.relayrouter.ai/",J="agent"===U?"relayrouter.ai":"api.relayrouter.ai",{available:Y,dashboard:X,refresh:Z}=function(t=!0){const[s,r]=N.useState(null),[a,i]=N.useState(null),[n,l]=N.useState(!1),o=N.useCallback(async()=>{if(!t)return i(null),r(!1),void l(!1);l(!0);try{const t=await e.get("/api/agent_invoice_return/dashboard"),{success:s,data:a}=t.data||{};s&&a?(i(a),r(!0)):(i(null),r(!1))}catch{i(null),r(!1)}finally{l(!1)}},[t]);return N.useEffect(()=>{o()},[o]),{available:s,dashboard:a,loading:n,refresh:o}}(!0),[ee,re]=N.useState(!1),[ae,ie]=N.useState("1"),[oe,de]=N.useState(!1),[ge,_e]=N.useState(""),[ve,be]=N.useState(""),[Be,Ee]=N.useState(0),[Pe,Oe]=N.useState(V?.status?.min_topup||1),[Me,De]=N.useState(V?.status?.min_topup||1),[Le,Ve]=N.useState(V?.status?.top_up_link||""),[We,Ue]=N.useState(V?.status?.enable_online_topup||!1),[Ke,He]=N.useState(V?.status?.price||1),[Qe,Je]=N.useState(V?.status?.stripe_min_topup||1),[Ge,Xe]=N.useState(V?.status?.enable_stripe_topup||!1),[et,tt]=N.useState(!1),st=!!(V?.status?.topup_sections_enabled??1),lt=!!(V?.status?.invite_reward_section_enabled??1),ot=!!(V?.status?.topup_records_section_enabled??1),pt=!!(V?.status?.withdrawal_records_section_enabled??1),gt=!!V?.status?.topup_star_level_enabled,jt=!!(V?.status?.invoice_enabled??1),ft=!!(V?.status?.invoice_personal_enabled??1),_t=!!(V?.status?.invoice_enterprise_enabled??1),vt=Number(V?.status?.invoice_min_amount)||0,bt=Number(V?.status?.invoice_max_amount)||0,[wt,kt]=N.useState(0),[St,Nt]=N.useState(!1),[Ct,zt]=N.useState(!1),[It,Tt]=N.useState(""),[$t,qt]=N.useState(!0),[Ft,At]=N.useState(!1),[Rt,Bt]=N.useState(!1),[Et,Pt]=N.useState(!1),[Ot,Mt]=N.useState([]),[Dt,Lt]=N.useState(""),[Vt,Wt]=N.useState(!1),[Ut,Kt]=N.useState(0),[Ht,Qt]=N.useState(null),[Jt,Gt]=N.useState(null),[Yt,Xt]=N.useState(!1),[Zt,es]=N.useState(""),[ts,ss]=N.useState(""),[rs,as]=N.useState(0),[is,ns]=N.useState(0),[ls,os]=N.useState(0),[ds,cs]=N.useState(!1),[us,ps]=N.useState(0),[hs,ms]=N.useState(!1),[xs,ys]=N.useState(""),[gs,js]=N.useState(""),[fs,_s]=N.useState([]),[vs,bs]=N.useState(1),[ws,ks]=N.useState(10),[Ss,Ns]=N.useState(0),[Cs,zs]=N.useState(null),Is=N.useRef(null),Ts=N.useRef(null),[$s,qs]=N.useState(null),[Fs,As]=N.useState([]),[Rs,Bs]=N.useState(1),[Es,Ps]=N.useState(10),[Os,Ms]=N.useState(0),[Ds,Ls]=N.useState(""),[Vs,Ws]=N.useState(""),[Us,Ks]=N.useState(""),[Hs,Qs]=N.useState(""),[Js,Gs]=N.useState(!1),[Ys,Xs]=N.useState(!1),[Zs,er]=N.useState("detail"),[tr,sr]=N.useState("month"),[rr,ar]=N.useState(null),[ir,nr]=N.useState([]),[lr,or]=N.useState(0),[dr,cr]=N.useState(0),[ur,pr]=N.useState(""),[hr,mr]=N.useState(!1),[xr,yr]=N.useState(!1),[gr,jr]=N.useState([]),[fr,_r]=N.useState(1),[vr,br]=N.useState(10),[wr,kr]=N.useState(0),[Sr,Nr]=N.useState(!1),[Cr,zr]=N.useState(!1),[Ir,Tr]=N.useState([]),[$r,qr]=N.useState([]),[Fr,Ar]=N.useState(1),[Rr,Br]=N.useState(0),[Er,Pr]=N.useState(!1),[Or,Mr]=N.useState(0),[Dr,Lr]=N.useState(""),Vr=5e5,[Wr,Ur]=N.useState(!1),[Kr,Hr]=N.useState(!1),[Qr,Jr]=N.useState(0),[Gr,Yr]=N.useState(null),[Xr,Zr]=N.useState(""),[ea,ta]=N.useState(""),[sa,ra]=N.useState(""),[aa,ia]=N.useState(""),[na,la]=N.useState(""),[oa,da]=N.useState(""),ca=N.useRef(null),ua=["用户要求退款","重复充值","支付错误","其他原因"],[pa,ha]=N.useState(!1),[ma,xa]=N.useState(!1),[ya,ga]=N.useState(null),[ja,fa]=N.useState(null),[_a,va]=N.useState([]),[ba,wa]=N.useState(!1),[ka,Sa]=N.useState([]),[Na,Ca]=N.useState([]),[za,Ia]=N.useState(1),[Ta,$a]=N.useState(0),[qa,Fa]=N.useState(!1),[Aa,Ra]=N.useState(""),[Ba,Ea]=N.useState(""),[Pa,Oa]=N.useState(""),[Ma,Da]=N.useState(""),[La,V
1a]=N.useState(!1),[Wa,Ua]=N.useState(!1),[Ka,Ha]=N.useState(null),[Qa,Ja]=N.useState(!1),[Ga,Ya]=N.useState([]),[Xa,Za]=N.useState(null),[ei,ti]=N.useState(!1),[si,ri]=N.useState([]),[ai,ii]=N.useState(!1),[ni,li]=N.useState(!1),[oi,di]=N.useState(null),[ci,ui]=N.useState(!1),[pi,hi]=N.useState(!1),[mi,xi]=N.useState(!1),[yi,gi]=N.useState(!1),[ji,fi]=N.useState(!1),[_i,vi]=N.useState(!1),[bi,wi]=N.useState(null),[ki,Si]=N.useState(1),[Ni,Ci]=N.useState(""),[zi,Ii]=N.useState([]),[Ti,$i]=N.useState(null),[qi,Fi]=N.useState(null),[Ai,Ri]=N.useState("fixed"),[Bi,Ei]=N.useState(""),[Pi,Oi]=N.useState("id"),[Mi,Di]=N.useState(!1),[Li,Vi]=N.useState("order_id"),[Wi,Ui]=N.useState(""),[Ki,Hi]=N.useState(""),[Qi,Ji]=N.useState(""),[Gi,Yi]=N.useState([]),[Xi,Zi]=N.useState("sub"),[en,tn]=N.useState(null),[sn,rn]=N.useState(""),[an,nn]=N.useState([]),[ln,on]=N.useState(!1),[dn,cn]=N.useState(!0),[un,pn]=N.useState(!1),[hn,mn]=N.useState(0),[xn,yn]=N.useState(null),[gn,jn]=N.useState([]),[fn,_n]=N.useState(!1),vn=V?.status?.transfer_fee_rate||0;N.useEffect(()=>{if(!Vt)return Qt(null),void Gt(null);let t=!1;return Xt(!0),(async()=>{try{const s=await e.get("/api/user/aff_transfer_info");if(t)return;const{success:r,data:a}=s.data||{};if(r&&a){Qt(a);const e=Number(a.max_transfer_amount);"number"==typeof e&&e>0&&!Number.isNaN(e)?Kt(parseFloat(a.max_transfer_amount_str)):Kt(Number(a.min_transfer_amount)||1)}else Qt(null)}catch(s){t||(Qt(null),a(C("获取划转信息失败")))}finally{t||Xt(!1)}})(),()=>{t=!0}},[Vt]),N.useEffect(()=>{if(!Vt||null==Ut||Ut<=0)return void Gt(null);Gt(null);const t=setTimeout(async()=>{const t=Ut;try{const s=await e.get("/api/user/aff_transfer_info",{params:{amount:t}}),{success:r,data:a}=s.data||{};r&&a&&Math.abs((a.preview_amount??0)-t)<1e-6?Gt(a):Gt(null)}catch{Gt(null)}},200);return()=>clearTimeout(t)},[Ut,Vt]);const[bn,wn]=N.useState(!1),[kn,Sn]=N.useState({initialMoney:"",initialOrderNos:[],initialIds:""}),[Nn,Cn]=N.useState([]),[zn,In]=N.useState(!1),[Tn,$n]=N.useState(!1),[qn,Fn]=N.useState(!1),[An,Rn]=N.useState(null),Bn=()=>R.user?R.user.username:"null",En=()=>{const e=V?.status?.currency_type||"USD";return"CNY"===e?"¥":"CUSTOM"===e?V?.status?.custom_currency_symbol||"¤":"$"},Pn=e=>{const t=Number(e);if(!Number.isFinite(t))return"$0.00";const s=V?.status?.currency_type||"USD";if("TOKENS"===s)return`${t}`;let r="$",a=t;return"CNY"===s?(a=t*(V?.status?.usd_exchange_rate||7.3),r="¥"):"CUSTOM"===s&&(a=t*(V?.status?.custom_currency_exchange_rate||1),r=V?.status?.custom_currency_symbol||"¤"),`${r}${a.toFixed(2)}`},On=e=>parseFloat(b(e)),Mn=e=>w(e),Dn=e=>{const t=parseFloat(b(e))*(Number(V?.status?.original_price)||0);return(Math.floor(100*t+1e-9)/100).toFixed(2)},Ln=async e=>{await s(e)?i(C("复制成功")):a(C("复制失败,请手动复制"))},Vn=async()=>{Xs(!0);try{const t=await e.get("/api/user/stuck_corporate_withdrawals/preview");if(!t.data.success)return void a(C(t.data.message)||C("获取失败"));const{count:s,user_count:r,total_rmb:n,list:l=[]}=t.data.data;if(!s||0===s)return void v(C("没有需要驳回的历史对公卡单"));$.confirm({title:C("一键驳回历史对公卡单"),width:560,content:z.jsxs("div",{children:[z.jsx("div",{style:{marginBottom:12},children:C("将驳回 {{count}} 笔历史对公提现(未上传发票、待处理),退还额度合计 ¥{{rmb}},涉及 {{users}} 个用户。退款将退回用户可提现余额,不会打款。确认执行?",{count:s,rmb:n,users:r})}),z.jsx("div",{style:{maxHeight:260,overflowY:"auto",border:"1px solid var(--semi-color-border)",borderRadius:6},children:z.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:13},children:[z.jsx("thead",{children:z.jsxs("tr",{style:{position:"sticky",top:0,background:"var(--semi-color-fill-0)"},children:[z.jsx("th",{style:{textAlign:"left",padding:"6px 10px"},children:C("用户 ID")}),z.jsx("th",{style:{textAlign:"left",padding:"6px 10px"},children:C("用户名")}),z.jsx("th",{style:{textAlign:"right",padding:"6px 10px"},children:C("金额")}),z.jsx("th",{style:{textAlign:"left",padding:"6px 10px"},children:C("订单号")})]})}),z.jsx("tbody",{children:l.map(e=>z.jsxs("tr",{style:{borderTop:"1px solid var(--semi-color-border)"},children:[z.jsx("td",{style:{padding:"6px 10px"},children:e.user_id}),z.jsx("td",{style:{padding:"6px 10px"},children:e.user_name}),z.jsxs("td",{style:{padding:"6px 10px",textAlign:"right"},children:["¥",e.amount_rmb]}),z.jsx("td",{style:{padding:"6px 10px"},children:e.order_number})]},e.order_id))})]})})]}),centered:!0,okText:C("确认驳回并退款"),cancelText:C("取消"),onOk:async()=>{try{const t=await e.post("/api/user/stuck_corporate_withdrawals/batch_reject",{});if(t.data.success){const{rejected:e,skipped:s,refunded_rmb:r}=t.data.data;i(C("已驳回 {{rejected}} 笔,跳过 {{skipped}} 笔,退还 ¥{{rmb}}
1",{rejected:e,skipped:s,rmb:r})),ll()}else a(C(t.data.message)||C("操作失败"))}catch(t){a(C("操作失败:{{message}}",{message:t.response?.data?.message||t.message}))}}})}catch(t){a(C("操作失败:{{message}}",{message:t.response?.data?.message||t.message}))}finally{Xs(!1)}},Wn=()=>!!H&&(a(C("本站已停止充值,请前往新站完成充值。")),!0),Un=e=>{const t=j(),s=Number(wt)||0,r=Number(e)*t,a=s+r;return!isFinite(r)||!isFinite(a)||a>0x8000000000000000},Kn=async e=>{if(!Wn())if(We){Tt(e),Bt(!0);try{if(await Yl(),Me<Pe)return void a(C("充值数量不能小于 {{min}}",{min:Pe}));if(Un(Me))return void a(C("充值金额过大,充值后账户余额将超出系统允许上限,请降低充值金额后重试"));"function"==typeof window.trackAnalyticsEvent&&window.trackAnalyticsEvent("begin_checkout",{value:Be/7,currency:"USD",items:[{item_name:C("充值额度"),quantity:Me,price:Be/7}]}),zt(!0)}catch(t){a(C("获取金额失败"))}finally{Bt(!1)}}else a(C("管理员未开启在线充值!"))},Hn=async()=>{if(!Wn())if(Ge){Tt("stripe"),Bt(!0);try{if(await Yl(),Me<Qe)return void a(C("充值数量不能小于 {{min}}",{min:Qe}));if(Un(Me))return void a(C("充值金额过大,充值后账户余额将超出系统允许上限,请降低充值金额后重试"));"function"==typeof window.trackAnalyticsEvent&&window.trackAnalyticsEvent("begin_checkout",{value:Be/7,currency:"USD",items:[{item_name:C("充值额度"),quantity:Me,price:Be/7}]}),tt(!0)}catch(e){a(C("获取金额失败"))}finally{Bt(!1)}}else a(C("管理员未开启在线充值!"))},Qn=async()=>{qt(!0);let t=await e.get("/api/user/self");const{success:s,message:r,data:i}=t.data;s?(kt(i.quota),P({type:"login",payload:i})):a(r),qt(!1)},Jn=async()=>{try{cn(!0);const s=await e.get("/api/user/self"),{success:r,message:i,data:n}=s.data;if(r){kt(n.quota),es(n.aff_code||""),ss(`${window.location.origin}/register?aff=${n.aff_code}`),as(n.aff_quota||0),ns(n.aff_history_quota||0),os(n.aff_count||0),ys(n.alipay_account||""),js(n.alipay_real_name||"");try{window.formApi&&(window.formApi.setValue("alipayAccount",n.alipay_account||""),window.formApi.setValue("alipayRealName",n.alipay_real_name||""))}catch(t){}P({type:"login",payload:n})}else a(C(i))}catch(s){a(C("获取用户信息失败"))}finally{cn(!1)}},Gn=async(t="")=>{if(pi){_n(!0);try{const s={page:1,size:100};t&&(s.keyword=t);const r=await e.get("/api/user/search",{params:s}),{success:a,data:i}=r.data;if(a&&i?.items){const e=i.items.map(e=>({value:e.id,label:`${e.username} (ID: ${e.id})`,username:e.username,id:e.id}));jn(e)}else jn([])}catch(s){console.error("获取用户列表失败:",s),a(C("获取用户列表失败")),jn([])}finally{_n(!1)}}},Yn=()=>{Is.current&&(clearInterval(Is.current),Is.current=null),Ts.current&&(clearTimeout(Ts.current),Ts.current=null),zs(null),qs(null)},Xn=(e,t)=>{Yn(),zs(e),qs(Date.now()),Zn(e,t),Is.current=setInterval(()=>{Zn(e,t)},3e3),Ts.current=setTimeout(()=>{Yn()},3e5)},Zn=async(t,s)=>{const r=await(async t=>{try{const s=await e.get(`/api/user/topuprecords/${t}`),{success:r,data:a}=s.data;return r?a:null}catch(s){return console.error("[Order Status Check] 查询订单状态失败:",s),null}})(t);if(r)if(r.status,"success"===r.status){if(Yn(),"function"==typeof window.trackAnalyticsEvent){const e=r.quota?parseFloat(b(r.quota)):s;window.trackAnalyticsEvent("purchase",{value:e,currency:"USD",transaction_id:r.trade_no||r.id.toString(),payment_method:r.payment_method||"unknown",items:[{item_name:C("在线充值"),quantity:r.quota||0,price:e}]}),r.trade_no,r.id,i(C("充值成功!"))}nl(),Qn()}else"failed"!==r.status&&"cancelled"!==r.status||Yn()};N.useEffect(()=>()=>{Yn()},[]);const el=async()=>{try{const s=await e.get("/api/user/pay-methods"),{success:r,data:a}=s.data;r&&Array.isArray(a)&&Mt((t=a,Array.isArray(t)?t.filter(e=>e.name&&e.type).map(e=>{const t={...e};return t.color||("zfb"===t.type?t.color="hsl(var(--primary))":"wxpay"===t.type||"wx"===t.type?t.color="hsl(var(--success))":"usdt"===t.type||"bepusdt"===t.type?t.color="#26A17B":"stablepay"===t.type?t.color="#2775CA":t.color="hsl(var(--primary))"),t}):[]))}catch(s){}var t},tl=mi||ci||yi||pi||ji,sl=mi||ci||yi||pi,rl=ji||ci||mi,al=ji||ci||yi||mi,il=()=>{$.confirm({title:C("确认导出"),content:Ss>0?C("将按当前筛选条件导出充值记录,共约 {{total}} 条,是否继续?",{total:Ss}):C("将按当前筛选条件导出充值记录,是否继续?"),okText:C("确认导出"),cancelText:C("取消"),onOk:()=>(async(t,s)=>{s(!0);try{const s=t.toString(),n="/api/user/topuprecords/export/xlsx"+(s?`?${s}`:""),l=await e.get(n,{responseType:"blob",disableDuplicate:!0});if((l.headers["content-type"]||"").toLowerCase().includes("application/json")){const e=await l.data.text();let t=C("导出失败");try{const s=JSON.parse(e);s.message&&(t=s.message)}catch(r){}return void a(t)}const o=new Blob([l.data],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),d=window.URL.createObjectURL(o),c=document.createElement("a");c.href=d;const u=l.headers["content-disposition"];let p=`topup_records_${(new Date).toISOString().slice(0,10)}.xlsx`;if(u){const e=u.match(/filename\*=UTF-8''([^;\s]+)/i);if(e)p=decodeURIComponent(e[1]);else{const e=u.match(/filename="?([^";\s]+)"?/i);e&&(p=decodeURIComponent(e[1]))}}c.download=p,document.body.appendChild(c),c.click(),document.body.removeChild(c),window.URL.revokeObjectURL(d),i(C("导出成功"))}catch(r){a(r?.response?.data?.message||r?.message||C("导出失败"))}finally{s(!1)}})(((e={})=>{const t=new URLSearchParams,s=e.search_type??Pi,r=e.keyword??Bi,a=e.order_search_type??Li,i=e.order_keyword??Wi,n=e.payment_method??Ki,l=e.status??Qi,o=e.scope??Xi,d=e.date_range??en,u=e.channel_id??sn;return tl&&r&&""!==r.trim()&&(t.set("search_type",s),t.set("keyword",r.trim())),i&&""!==i.trim()&&("trade_no"===a?t.set("trade_no",i.trim()):t.set("order_id",i.trim())),n&&t.set("payment_method",n),l&&t.set("status",l),c()&&o&&t.set("scope",o),d&&Array.isArray(d)&&2===d.length&&(t.set("start_time",
1String(Math.floor(new Date(d[0]).getTime()/1e3))),t.set("end_time",String(Math.floor(new Date(d[1]).getTime()/1e3)+86399))),u&&t.set("channel_id",String(u)),t})(),In)})},nl=async(t=vs,s=null,r=!1)=>{try{r&&Di(!0);const n={page:t,page_size:ws};let l,o;null!==s?(l=s.search_type,o=s.keyword):(l=Pi,o=Bi),tl&&o&&""!==o.trim()&&(n.search_type=l,n.keyword=o);const d=null!==s?s.order_search_type:Li,u=null!==s?s.order_keyword:Wi,p=null!==s?s.payment_method:Ki,h=null!==s?s.status:Qi,m=null!==s?s.scope:Xi,x=null!==s?s.date_range:en,y=null!==s?s.channel_id:sn;u&&""!==u.trim()&&("trade_no"===d?n.trade_no=u.trim():n.order_id=u.trim()),p&&(n.payment_method=p),h&&(n.status=h),c()&&m&&(n.scope=m),x&&Array.isArray(x)&&2===x.length&&(n.start_time=Math.floor(new Date(x[0]).getTime()/1e3),n.end_time=Math.floor(new Date(x[1]).getTime()/1e3)+86399),y&&(n.channel_id=y);const g=await e.get("/api/user/topuprecords",{params:n}),{success:j,message:f,data:_}=g.data;if(j){const s=_.records||[],r=s.map(e=>e.id).filter(Boolean);let a={};try{if(r.length>0){const t=await e.post("/api/recharge/getRecords",{ids:r.join(",")});a=(t?.data?.data?.records||t?.data?.data||[]).reduce((e,t)=>(e[t.id]={invoice_status:t.invoice_status||"",is_invoiced:!!t.is_invoiced},e),{})}}catch(i){}const n=s.map(e=>({...e,invoice_status:a[e.id]?.invoice_status??e.invoice_status??"",is_invoiced:a[e.id]?.is_invoiced??e.is_invoiced??!1}));_s(n),Ns(_.total),bs(t)}else a(f)}catch(n){a(C("获取充值记录失败:{{message}}",{message:n.response?.data?.error||n.message}))}finally{r&&Di(!1)}},ll=async(t=Rs,s=null,r=!1)=>{try{r&&Gs(!0);const i=null!==s?s.userId:Ds,n=null!==s?s.alipay:Vs,l=null!==s?s.status:Us,o=null!==s?s.payeeType??"":Hs,d={page:t,page_size:Es};i&&(d.search_user_id=i),n&&(d.alipay_keyword=n),l&&(d.search_status=l),o&&(d.payee_type=o);const c=await e.get("/api/user/withdrawalrecords",{params:d}),{success:u,message:p,data:h}=c.data;u?(As(Array.isArray(h?.records)?h.records:[]),Ms(h?.total??0),Bs(t)):a(C(p))}catch(i){a(C("获取提现记录失败"))}finally{r&&Gs(!1)}},ol=async(t={})=>{try{mr(!0);const s=t.granularity??tr,r=void 0!==t.dateRange?t.dateRange:rr,i=void 0!==t.userId?t.userId:ur,n={granularity:s};if(Array.isArray(r)&&2===r.length&&r[0]&&r[1]){const e=new Date(r[0]),t=new Date(r[1]);e.setHours(0,0,0,0),t.setHours(23,59,59,999),n.start_timestamp=Math.floor(e.getTime()/1e3),n.end_timestamp=Math.floor(t.getTime()/1e3)}i&&(n.search_user_id=i);const l=await e.get("/api/user/withdrawal_processed_stats",{params:n}),{success:o,message:d,data:c}=l.data;o?(nr(Array.isArray(c.rows)?c.rows:[]),or(Number(c.total_count)||0),cr(Number(c.total_quota)||0),yr(!0)):a(C(d))}catch(s){a(C("获取提现统计失败"))}finally{mr(!1)}},dl=async(t=fr)=>{try{Nr(!0);const s=await e.get("/api/invoice/records",{params:{page:t,page_size:vr}}),{success:r,data:i,message:n}=s.data;if(r){const e=i.items||i.records||i||[];jr(e),kr(i.total||0),_r(t)}else a(C(n||"加载失败"))}catch(s){a(C("获取开票记录失败"))}finally{Nr(!1)}},cl=async(t=Fr,s={})=>{try{Pr(!0);const r=void 0!==s.trade_no?s.trade_no:Dr,i={page:t,page_size:10};r?.trim()&&(i.trade_no=r.trim());const n=await e.get("/api/user/refundrecords",{params:i}),{success:l,data:o,message:d}=n.data;l?(qr(o.items||[]),Br(o.total||0),Ar(t),Mr(Number(o.pending_pre_deduct_quota||0))):a(C(d||"加载失败"))}catch(r){a(C("获取退款记录失败"))}finally{Pr(!1)}},ul=e=>{if(!e)return 0;if("refunded"===e.status)return 0;const t=Number(e.amount||0)*Vr,s=Number(e.active_refund_quota||0);return Number.isFinite(t)&&Number.isFinite(s)?Math.max(0,(t-s)/Vr):0},pl=e=>{if(!e)return 0;const t=Number(e.pending_refund_quota||0);return!Number.isFinite(t)||t<=0?0:t/Vr},hl=e=>{if(!e)return 0;const t=Number(e.refunded_quota||0);if(Number.isFinite(t)&&t>0)return t/Vr;if("refunded"===e.status){const t=Number(e.amount||0);return Number.isFinite(t)&&t>0?t:0}return 0},ml=e=>"success"===e?.status||"refunded"===e?.status,xl=(e,t=0)=>((e,t=0)=>{if(!e)return 0;let s=e.user_pending_refund_quota??e.userPendingRefundQuota;if(null==s){const t=e.user_id,r=fs.find(e=>e.user_id===t&&null!=(e.user_pending_refund_quota??e.userPendingRefundQuota));r&&(s=r.user_pending_refund_quota??r.userPendingRefundQuota)}const r=Number(s);return!Number.isFinite(r)||r<=0?0:Math.max(0,r-(Number(t)||0))})(e,t)/Vr,yl=(e,t=0)=>{const s=zl(e);if(void 0===s)return;const r=Number(t)||0;return Math.max(0,(s+r)/Vr)},gl=e=>{if("invoiced"===e?.invoice_status)return C("该订单已开票,不可退款");
1if("applied"===e?.invoice_status)return C("该订单已申请开票,不可退款");if(e?.is_invoiced&&("pending"===e?.invoice_status||!e?.invoice_status))return C("该订单已申请开票,不可退款");if("red_locked"===e?.invoice_status)return C("该订单开票锁定中,暂不可退款");if(0!==e?.parent_id)return C("该订单为子订单,不可单独退款");if("refunded"===e?.status)return C("该订单已全额退款");if("success"!==e?.status)return null;const t=Tl(e);return t.orderRemaining<=0&&t.done>0?C("该订单已退满"):t.showOrderPendingBlock?C("该订单有退款处理中"):!t.canApplyRefund&&t.orderRemaining>0?C("账户余额不足,暂不可申请退款"):null},jl=e=>{if(!ml(e))return null;const t=Tl(e),s=[];return t.done>0&&s.push(C("已退 {{amount}}",{amount:Pn(t.done)})),t.showOrderPendingBlock&&s.push(C("处理中 {{amount}}",{amount:Pn(t.orderPending)})),t.canApplyRefund&&s.push(C("还可退 {{amount}}",{amount:Pn(t.maxApplicable)})),s.length?z.jsx(mt,{type:"tertiary",size:"small",children:s.join(" · ")}):null},fl=(e,t,s)=>{const r={refundable:{bg:"#ecfdf5",dot:"#10b981",text:"#047857"},refunded:{bg:"#fef2f2",dot:"#ef4444",text:"#b91c1c"},pending:{bg:"#fffbeb",dot:"#f59e0b",text:"#b45309"},blocked:{bg:"#f4f4f5",dot:"#a1a1aa",text:"#71717a"}}[s];return z.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 10px",borderRadius:999,background:r.bg,fontSize:12,lineHeight:1.4,whiteSpace:"nowrap",flexShrink:0,width:"max-content",maxWidth:"none"},children:[z.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:r.dot,flexShrink:0}}),z.jsx("span",{style:{color:r.text,whiteSpace:"nowrap"},children:e}),t?z.jsx("span",{style:{color:r.text,fontWeight:600,whiteSpace:"nowrap"},children:t}):null]})},_l=()=>z.jsx("span",{style:{color:"var(--semi-color-text-3)",fontWeight:400,fontSize:12},children:"-"}),vl=e=>Tl(e).canApplyRefund,bl=z.jsx("span",{style:{margin:"0 10px",color:"var(--semi-color-text-2)",opacity:.35},children:"|"}),wl=(e,t,{highlight:s=!1}={})=>z.jsxs("span",{style:{whiteSpace:"nowrap",fontSize:13},children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[e," "]}),z.jsx(mt,{strong:!0,size:"small",style:s?{color:"#b45309"}:void 0,children:t})]}),kl=(e,t,s=0)=>z.jsxs(z.Fragment,{children:[z.jsxs("div",{style:{marginBottom:14},children:[z.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[z.jsxs(mt,{strong:!0,children:[C("退款金额")," ",z.jsx(mt,{type:"danger",children:"*"})]}),z.jsx(mt,{type:"tertiary",size:"small",style:{flexShrink:0},children:C("最高 {{max}}",{max:Pn(e)})})]}),z.jsx(B.Input,{field:"refund_quota",noLabel:!0,rules:Pl(e,t,s),onChange:e=>
1{const t=ql(e);Zr(t),ca.current?.setValue("refund_quota",t)},placeholder:"0.00",prefix:"$"}),Cl(Xr,t)?z.jsxs(mt,{type:"tertiary",size:"small",style:{display:"block",marginTop:6},children:[C("退款金额(系统自动计算)"),": ¥",Cl(Xr,t)]}):null]}),z.jsxs(te,{gutter:12,style:{marginBottom:4},children:[z.jsxs(se,{span:12,children:[z.jsxs(mt,{strong:!0,style:{display:"block",marginBottom:8},children:[C("支付宝账号")," ",z.jsx(mt,{type:"danger",children:"*"})]}),z.jsx(B.Input,{field:"alipay_account",noLabel:!0,rules:Rl,onChange:e=>{ia(e),ca.current?.setValue("alipay_account",e)},placeholder:C("请输入支付宝账号")})]}),z.jsxs(se,{span:12,children:[z.jsxs(mt,{strong:!0,style:{display:"block",marginBottom:8},children:[C("支付宝姓名")," ",z.jsx(mt,{type:"danger",children:"*"})]}),z.jsx(B.Input,{field:"alipay_real_name",noLabel:!0,rules:Bl,onChange:e=>{la(e),ca.current?.setValue("alipay_real_name",e)},placeholder:C("请输入真实姓名")})]})]}),z.jsxs("div",{style:{marginTop:14,marginBottom:14},children:[z.jsxs(mt,{strong:!0,style:{display:"block",marginBottom:8},children:[C("退款原因")," ",z.jsx(mt,{type:"danger",children:"*"})]}),z.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginBottom:10},children:ua.map(e=>z.jsx(O,{size:"large",color:oa===e?"blue":"grey",style:{cursor:"pointer",userSelect:"none"},onClick:()=>{da(e);const t="其他原因"===e?"":e;ta(t),ca.current?.setValue("reason_text",t)},children:C(e)},e))}),z.jsx(B.TextArea,{field:"reason_text",noLabel:!0,rules:El,onChange:e=>{ta(e),da(ua.includes(e)?e:""),ca.current?.setValue("reason_text",e)},rows:2,placeholder:C("请填写退款原因说明(必填)")})]}),z.jsxs("div",{children:[z.jsxs(mt,{strong:!0,style:{display:"block",marginBottom:4},children:[C("内部备注"),z.jsx(mt,{type:"tertiary",size:"small",style:{fontWeight:400,marginLeft:6},children:C("选填 · 用户不可见")})]}),z.jsx(B.Input,{field:"support_remark_text",noLabel:!0,onChange:e=>{ra(e),ca.current?.setValue("support_remark_text",e)},placeholder:C("仅管理员可见")})]})]}),Sl=()=>{Zr(""),ta(""),da(""),ra(""),ia(""),la("");try{ca.current?.reset()}catch{}},Nl=Number(V?.status?.original_price)||0,Cl=(e,t)=>{const s=Number(e),r=(e=>{const t=Number(e?.refund_unit_price);return Number.isFinite(t)&&t>0?t:Nl})(t);return!s||s<=0||!r?"":yt(s*r)},zl=e=>{if(!e)return;const t=e.user_quota??e.userQuota;if(null==t)return;const s=Number(t);return Number.isFinite(s)?s:void 0},Il=e=>{if(!e)return 0;const t=Number(e.amount||0),s=ul(e),r=yl(e);return void 0===r?Math.min(t,s):Math.min(t,s,r)},Tl=e=>{const t=hl(e),s=pl(e),r=xl(e),a=ul(e),i=Il(e),n=yl(e),l="success"===e?.status&&0===e?.parent_id&&"invoiced"!==e?.invoice_status&&"applied"!==e?.invoice_status&&"red_locked"!==e?.invoice_status&&!(e?.is_invoiced&&"pending"===e?.invoice_status),o=s>0;return{done:t,orderPending:s,userPending:r,orderRemaining:a,maxApplicable:i,userAvailable:n,baseEligible:l,canApplyRefund:l&&!o&&i>0,showOrderPendingBlock:o,showUserPendingBlock:!1}},$l=e=>{if(!e)return 0;const t=Number(e.order_quota||0)/Vr,s=Number(e.refund_quota||0),r=yl(e,s);return void 0===r?t:Math.min(t,r)},ql=e=>{if(""===e||null==e)return"";let t=String(e).replace(/[^\d.]/g,"");const s=t.indexOf(".");return-1!==s&&(t=t.slice(0,s+1)+t.slice(s+1).replace(/\./g,"")),t},Fl=(e,t,s=null,r=0)=>{if(""===e||null==e||"."===e)return"";const a=Number(e);if(!Number.isFinite(a)||a<=0)return C("退款额度必须大于 0");if(t>0&&a>t){const e=s?xl(s,r):0;return e>0?C("退款额度不能超过 {{max}},另有 {{pending}} 退款正在处理中",{max:t,pending:Pn(e)}):C("退款额度不能超过 {{max}}",{max:t})}return""},Al=(e,t,s,r,a,i)=>({user_id:e,items:t,reason_text:s,support_remark_text:r,alipay_account:a.trim(),alipay_real_name:i.trim()}),Rl=[{required:!0,message:C("请填写支付宝账号")}],Bl=[{required:!0,message:C("请填写支付宝姓名")}],El=[{required:!0,message:C("请填写退款原因")}],Pl=(e,t=null,s=0)=>[{required:!0,message:C("请输入退款额度")},{validator:(r,a)=>{const i=Fl(a,e,t,s);return i?Promise.reject(new Error(i)):Promise.resolve()}}],Ol=()=>({refund_quota:Xr,alipay_account:aa,alipay_real_name:na,reason_text:ea,support_remark_text:sa}),Ml=async(t,s,r)=>{ha(!0);try{const n=await e.post("/api/refund/admin/apply",t);if(!n.data.success)return void a(n.data.message);i(s),r?.(),Jr(e=>e+1),nl(),cl(1),Dl(1)}catch(n){a(n.response?.data?.message||n.message)}finally{ha(!1)}},Dl=async(t=za,s={})=>{Fa(!0);try{const r=void 0!==s.status?s.status:Aa,i=void 0!==s.keyword?s.keyword:Ba,n=void 0!==s.trade_no?s.trade_no:Pa,l=void 0!==s.search_user_id?s.search_user_id:Ma,o={page:t,page_size:10};r&&(o.status=r),i?.trim()&&(o.keyword=i.trim()),n?.trim()&&(o.trade_no=n.trim()),l?.toString().trim()&&(o.search_user_id=l.toString().trim());const d=await e.get("/api/refund/admin/",{params:o});d.data.success?(Ca(d.data.data.items||[]),$a(d.data.data.total||0),Ia(t)):a(d.data.message||C("获取退款记录失败"))}catch(r){a(r.response?.data?.message||r.message||C("获取退款记录失败"))}finally{Fa(!1)}},Ll=(e,{viewOnly:t=!1}={})=>{const s=fs.find(t=>
1t.id===e.id);Yr(s||e),t||Sl(),Hr(t),Ur(!0)},Vl=()=>{Ur(!1),Hr(!1)},Wl=()=>{const e=fs.filter(e=>_a.includes(e.id));e.length?[...new Set(e.map(e=>e.user_id))].length>1?a(C("批量退款仅支持同一用户的订单")):e.find(e=>!vl(e))?a(C("所选订单含不可退款记录,请重新选择")):(Sa(e.map(e=>({record:e,quota:""}))),Sl(),wa(!0)):a(C("请先选择要退款的订单"))},Ul=async(t=!1)=>{if(Ka)try{Ua(!0);const s=new FormData;s.append("file",Ka),t&&s.append("force_import","true");const r=await e.post("/api/user/import_alipay_receipt",s,{headers:{"Content-Type":"multipart/form-data"}}),{success:n,data:l,message:o}=r.data;n?(i(C("回执单导入成功")),$.success({title:C("导入完成"),content:z.jsxs("div",{children:[z.jsx("p",{children:C("总记录数:{{total}}",{total:l.total_count})}),z.jsx("p",{style:{color:"green"},children:C("成功:{{count}}",{count:l.success_count})}),z.jsx("p",{style:{color:"red"},children:C("失败:{{count}}",{count:l.fail_count})}),z.jsx("p",{style:{color:"orange"},children:C("跳过:{{count}}",{count:l.skipped_count})})]}),centered:!0,onOk:()=>{Kl()}}),Va(!1),Ha(null),ll()):a(C(o||"导入失败"))}catch(s){if(s.response?.data?.allow_force){const e=s.response.data.existing_import_id;$.confirm({title:C("文件已导入过"),content:z.jsxs("div",{children:[z.jsx("p",{children:C("此文件已于之前导入过")}),z.jsx("p",{style:{color:"hsl(var(--warning))"},children:C("导入ID: {{id}}",{id:e})}),z.jsx("p",{style:{marginTop:"12px"},children:C("是否强制重新导入?")}),z.jsx("p",{style:{color:"hsl(var(--foreground) / 0.08)",fontSize:"12px",marginTop:"8px"},children:C("注意:重新导入将再次处理所有记录")})]}),centered:!0,okText:C("强制导入"),cancelText:C("取消"),onOk:()=>{Ul(!0)}})}else a(C("导入失败:{{message}}",{message:s.response?.data?.message||s.message}))}finally{Ua(!1)}else a(C("请选择回执文件"))},Kl=async()=>{try{li(!0);const t=await e.get("/api/user/alipay_receipt_import_list"),{success:s,data:r,message:i}=t.data;s?Ya(Array.isArray(r)?r:[]):a(C(i||"获取导入记录列表失败"))}catch(t){console.error("获取导入记录列表失败:",t),Ya([])}finally{li(!1)}},Hl=N.useMemo(()=>(Xa?.logs||[]).map((e,t)=>({...e,key:t})),[Xa]),Ql=N.useMemo(()=>[{title:C("收款账号"),dataIndex:"alipay_account",width:150,render:e=>e||"-"},{title:C("姓名"),dataIndex:"alipay_name",width:100},{title:C("金额"),dataIndex:"amount",width:100,render:e=>`¥${e}`},{title:C("状态"),dataIndex:"status",width:80,filters:[{text:C("成功"),value:"成功"},{text:C("失败"),value:"失败"},{text:C("跳过"),value:"跳过"},{text:C("未匹配"),value:"未匹配"}],filterMultiple:!0,filteredValue:si,onFilter:(e,t)=>t.status===e,render:e=>z.jsx(O,{color:{"成功":"green","失败":"red","跳过":"orange","未匹配":"grey"}[e]||"grey",children:C(e)})},{title:C("消息"),dataIndex:"message"},{title:C("订单ID"),dataIndex:"order_id",width:100,render:e=>e||"-"}],[C,si]),Jl=N.useMemo(()=>({pageSize:10,showSizeChanger:!0,showTotal:!0}),[]);N.useEffect(()=>{"function"==typeof window.trackAnalyticsEvent&&window.trackAnalyticsEvent("view_item",{item_category:"topup",page_title:C("充值页面")}),Jn(),ui(d()),hi(c()),xi(u()),gi(p()),fi(h()),R?.user?.id&&(qt(!1),kt(R.user.quota)),Qn().then(),(async()=>{const t=await e.get("/api/user/aff"),{success:s,message:r,data:i}=t.data;if(s){let e=`${window.location.origin}/register?aff=${i}`;Lt(e)}else a(r)})().then(),el()},[]),N.useEffect(()=>{const t=()=>{"visible"===document.visibilityState&&(async()=>{try{const t=await e.get("/api/user/self"),{success:s,data:r}=t.data;s&&r&&(kt(r.quota),P({type:"login",payload:r}))}catch(t){}})()};document.addEventListener("visibilitychange",t),window.addEventListener("focus",t);const s=setInterval(t,8e3);return()=>{document.removeEventListener("visibilitychange",t),window.removeEventListener("focus",t),clearInterval(s)}},[]),N.useEffect(()=>{el()},[V?.status?.pay_methods]),N.useEffect(()=>{if(V?.status){const e=V.status;e.top_up_link&&(e.top_up_link,Ve(e.top_up_link)),void 0!==e.min_topup&&(e.min_topup,Oe(e.min_topup)),void 0!==e.enable_online_topup&&(e.enable_online_topup,Ue(e.enable_online_topup))}},[V?.status]),N.useEffect(()=>{V?.status&&(Oe(V.status.min_topup||1),Ve(V.status.top_up_link||""),Ue(V.status.enable_online_topup||!1),He(V.status.price||1),Je(V.status.stripe_min_topup||1),Xe(V.status.enable_str
1ipe_topup||!1))},[V?.status]),N.useEffect(()=>{const e=m();if(e&&"object"==typeof e){const t=Object.keys(e).map(t=>({amount:parseInt(t),discount:e[t]}));if(t.sort((e,t)=>e.amount-t.amount),Ii(t),t.length>0){const e=t[0].amount;$i(e),Fi(null),Ri("fixed")}else{const e=V?.status?.min_topup||Pe||1;$i(null),Fi(e),Ri("custom")}}else{const e=V?.status?.min_topup||Pe||1;Ii([]),$i(null),Fi(e),Ri("custom")}},[]),N.useEffect(()=>{"fixed"===Ai&&Ti?(De(Ti),Yl(Ti)):"custom"===Ai&&qi&&(De(qi),Yl(qi))},[Ti,qi,Ai]),N.useEffect(()=>{if(V?.status&&!Ti&&!qi&&Me<=1){const e=m();if(e&&"object"==typeof e){const t=Object.keys(e).map(t=>({amount:parseInt(t),discount:e[t]}));if(t.length>0){t.sort((e,t)=>e.amount-t.amount);const e=t[0].amount;$i(e),Ri("fixed")}}}},[V?.status]),N.useEffect(()=>{nl(),ll(),dl(),cl(),el(),(async()=>{try{const t=await e.get("/api/user/pay-methods"),{success:s,data:r}=t.data;s&&Array.isArray(r)&&Yi(r)}catch(t){}})(),(async()=>{try{const t=await e.get("/api/user/pay-channels"),{success:s,data:r}=t.data;s&&Array.isArray(r)&&nn(r)}catch(t){}})(),e.get("/api/identity_verify/success_list").then(e=>{if(e.data?.success){const t=e.data.data||[],s=t.find(e=>"personal"===e.verify_type),r=t.find(e=>"enterprise"===e.verify_type);Rn(s?"personal":r?"enterprise":"")}}).catch(()=>{})},[]),N.useEffect(()=>{R?.user&&(ui(d()),hi(c()),xi(u()),gi(p()),fi(h()))},[R?.user?.role]),N.useEffect(()=>{(ji||ci||yi||mi)&&Dl(1)},[ji,ci,yi,mi]),N.useEffect(()=>{const e=()=>{const e=document.getElementById("records-section");if(e){const t=e.getBoundingClientRect(),s=window.innerHeight,r=t.top<s&&t.bottom>0;on(r)}};return window.addEventListener("scroll",e),e(),()=>{window.removeEventListener("scroll",e)}},[]);const Gl=()=>C("{{amount}} 元",{amount:Be}),Yl=async t=>{if(!H){void 0===t&&(t=Me),At(!0);try{const s=await e.post("/api/user/amount",{amount:parseFloat(t),top_up_code:ve});if(void 0!==s){const{success:e,data:t,message:r}=s.data;e?Ee(parseFloat(t)):(Ee(0),K.error({content:C("错误")+":"+r,id:"getAmount"}))}else a(s)}catch(s){}At(!1)}},Xl=()=>{zt(!1),Wt(!1),cs(!1),ms(!1),ps(0)},Zl=(e,t="batch")=>{const s=function(e,t,s,r="batch"){if(it(e,Number(t)||0,Number(s)||0))return null;const a=Number(t)||0,i=Number(s)||0,n=Number.isFinite(e)?e.toFixed(2):"—",l="single"===r?`本笔充值开票金额为 ${n} 元`:`当前选中订单合计开票金额为 ${n} 元`;return a>0&&i>0?`${l}。管理员要求单笔开票金额须在 ${a.toFixed(2)}~${i.toFixed(2)} 元之间。${"single"===r?"请换一笔金额符合要求的订单,或合并/拆分订单后再试。":"请调整勾选的充值记录后再试。"}`:a>0?`${l}。单笔不得低于 ${a.toFixed(2)} 元。${"single"===r?"请选择更多订单合并开票,或等待充值累积后再试。":"请增加所选订单或合并更多记录后再试。"}`:i>0?`${l}。单笔不得高于 ${i.toFixed(2)} 元。${"single"===r?"请分次开票或减少本笔金额(若支持拆分)。":"请减少所选订单或分次开票。"}`:"开票金额不在允许范围内。"}(e,vt,bt,t);return!!s&&($.error({title:C("无法申请开票"),content:s,okText:C("我知道了")}),!0)},eo=e=>{const t=String(e?.payment_method||"").trim().toLowerCase();return"alipay"===t||"wxpay"===t||"zfb"===t||"wx"===t},to=async(t=null)=>{const s=t?{ids:t.join(",")}:{},r=await e.post("/api/recharge/getRecords",s);return r?.data?.data?.records||r?.data?.data||[]},so=async()=>{if("personal"!==An||ft)if("enterprise"!==An||_t){$n(!0);try{if(0===(await to()).filter(e=>"pending"===e.invoice_status&&!e.is_invoiced&&eo(e)).length)return void K.error(C("没有可开票的充值记录"));$.confirm({title:C("全部开票"),content:C("确认要为当前用户所有符合条件的充值记录开票吗?(仅支付宝/微信支付)"),okText:C("确认"),cancelText:C("取消"),onOk:async()=>{await ro()}})}catch(e){a(e.message||C("获取充值记录失败"))}finally{$n(!1)}}else K.error(C("暂时不支持企业申请开票"));else K.error(C("暂时不支持个人申请开票"))},ro=async()=>{$n(!0);try{const e=await to(),t=R?.user?.id,s=e.filter(e=>"pending"===e.invoice_status&&!e.is_invoiced&&e.user_id===t&&"success"===e.status&&eo(e));if(0===s.length)return void K.error(C("没有属于您的已支付且可开票充值记录"));const r=s.map(e=>
1e.id||e.recharge_id).filter(Boolean),a=s.map(e=>e.orderNo||e.trade_no).filter(Boolean),i=s.reduce((e,t)=>{const s=void 0!==t.money?Number(t.money):Number(t.amount??0);return e+(isNaN(s)?0:parseFloat(yt(s)))},0),n=parseFloat(yt(i))||0;if(Zl(n,"batch"))return;Sn({initialIds:r.join(","),initialMoney:parseFloat(yt(i))||"",initialOrderNos:a}),wn(!0)}catch(e){a(e.message||C("获取充值记录失败"))}finally{$n(!1)}},ao=async()=>{if("personal"!==An||ft)if("enterprise"!==An||_t)if(Nn&&0!==Nn.length){Fn(!0);try{const e=await to(Nn),t=R?.user?.id;if(e.filter(e=>e.user_id!==t||"success"!==e.status).length>0)return void K.error(C("包含不属于您的记录或包含未支付记录"));const s=e.filter(e=>"pending"===e.invoice_status&&!e.is_invoiced&&eo(e));if(0===s.length)return void K.error(C("所选记录中没有可开票的充值记录"));const r=s.map(e=>e.id||e.recharge_id).filter(Boolean),a=s.map(e=>e.orderNo||e.trade_no).filter(Boolean),i=s.reduce((e,t)=>{const s=void 0!==t.money?Number(t.money):Number(t.amount??0);return e+(isNaN(s)?0:parseFloat(yt(s)))},0),n=parseFloat(yt(i))||0;if(Zl(n,"batch"))return;Sn({initialIds:r.join(","),initialMoney:parseFloat(yt(i))||"",initialOrderNos:a}),wn(!0)}catch(e){a(e.message||C("获取充值记录失败"))}finally{Fn(!1)}}else K.error(C("请先选择要开票的充值记录"));else K.error(C("暂时不支持企业申请开票"));else K.error(C("暂时不支持个人申请开票"))},io=[{title:C("ID"),dataIndex:"id"},{title:C("用户 ID"),dataIndex:"user_id",render:e=>z.jsx(mt,{onClick:()=>Ln(e),style:{cursor:"pointer"},children:e})},{title:C("用户名"),dataIndex:"username",render:(e,t)=>z.jsx(mt,{onClick:()=>Ln(e),style:{cursor:"pointer"},children:t.display_name||e})},...tl?[{title:C("代理级别"),dataIndex:"agent_level",render:e=>0===e?C("普通用户"):C("代理 {{level}} 级",{level:e})},{title:C("上级代理"),dataIndex:"parent_name",render:(e,t)=>e||0!==t.parent_id?e?z.jsxs(mt,{onClick:()=>Ln(e),style:{cursor:"pointer"},children:[e," (ID: ",t.parent_id,")"]}):C("未知"):C("无")}]:[],{title:C("充值时间"),dataIndex:"create_time",render:e=>new Date(1e3*e).toLocaleString()},{title:C("充值额度"),dataIndex:"amount",render:e=>Pn(e)},{title:C("支付金额"),dataIndex:"money",render:e=>`¥${yt(e)}`},{title:C("支付方式"),dataIndex:"payment_method",render:e=>{const t={wxpay:C("微信支付"),wx:C("微信支付"),zfb:C("支付宝支付"),alipay:C("支付宝支付")};if(t[e])return t[e];const s=Ot.find(t=>t.type===e);return s?s.name:e}},...yi?[{title:C("支付渠道"),dataIndex:"channel_name",render:(e,t)=>e||(t.channel_id?`渠道${t.channel_id}`:"-")}]:[],{title:C("订单号"),dataIndex:"trade_no"},{title:C("状态"),dataIndex:"status",render:e=>(e=>{switch(e){case"pending":return z.jsxs(L,{children:[z.jsx(O,{color:"yellow",children:C("未支付")}),z.jsx(M,{content:C("如果付款后十分钟未到账,请联系客服处理"),children:z.jsx(qe,{size:16,style:{color:"hsl(var(--warning))",cursor:"help"}})})]});case"success":return z.jsx(O,{color:"green",children:C("已支付")});case"refunded":return z.jsx(O,{color:"orange",children:C("已退款")});default:return z.jsx(O,{color:"grey",children:C("失败")})}})(e)},...jt?[{title:C("开票"),render:(e,t)=>yi?"invoiced"===t.invoice_status?z.jsx(O,{color:"green",children:C("已开票")}):"red_locked"===t.invoice_status?z.jsx(O,{color:"purple",children:C("开票锁定")}):"applied"===t.invoice_status||t.is_invoiced&&"pending"===t.invoice_status?z.jsx(O,{color:"blue",children:C("已申请")}):"pending"===t.invoice_status?z.jsx(O,{color:"orange",children:C("待开票")}):z.jsx(O,{color:"grey",children:C("不可开票")}):"invoiced"===t.invoice_status?z.jsx(O,{color:"green",children:C("已开票")}):"red_locked"===t.invoice_status?z.jsx(O,{color:"purple",children:C("开票锁定")}):"applied"===t.invoice_status||t.is_invoiced&&"pending"===t.invoice_status?z.jsx(O,{color:"blue",children:C("已申请")}):t.user_id!==R?.user?.id||"success"!==t.status||"pending"!==t.invoice_status||!eo(t)||"personal"===An&&!ft||"enterprise"===An&&!_t?z.jsx(O,{color:"grey",children:C("不可开票")}):z.jsx(T,{onClick:()=>(e=>{if("invoiced"===e.invoice_status)return void K.error(C("该充值记录已开票"));if("applied"===e.invoice_status)return void K.error(C("该充值记录已提交开票申请,等待处理"));if("red_locked"===e.invoice_status)return void K.error(C("该充值记录已被冲红锁定,无法开票"));if("pending"!==e.invoice_status)return void K.error(C("该充值记录不支持开票(功能上线前的数据)"));if(e.is_invoiced)return void K.error(C("该充值记录已提交开票申请,等待处理"));if(e.user_id!==R.user.id)return void K.error(C("只能为自己的记录开票"));if("success"!==e.status)return void K.error(C("只能为已支付的记录开票"));if(!eo(e))return void K.error(C("仅支持支付宝/微信支付的充值记录开票"));if("personal"===An&&!ft)return void K.error(C("暂时不支持个人申请开票"));if("enterprise"===An&&!_t)return void K.error(C("暂时不支持企业申请开票"));const t=at(e.money??e.amount);!Number.isFinite(t)||t<=0?K.error(C("开票金额无效")):Zl(t,"single")||(Sn({initialIds:e.id||"",initialMoney:e.money||"",initialOrderNos:[e?.trade_no]}),wn(!0))})(t),children:C("开票")})}]:[],...rl?[{title:C("退款概览"),width:148,render:(e,t)=>
1(e=>{if(!ml(e))return _l();const t=Tl(e),s=[];return t.done>0&&s.push(fl(C("已退"),Pn(t.done),"refunded")),t.showOrderPendingBlock&&s.push(fl(C("退款中"),Pn(t.orderPending),"pending")),t.canApplyRefund&&s.push(fl(C("可退"),Pn(t.maxApplicable),"refundable")),!s.length&&("red_locked"===e?.invoice_status||"invoiced"===e?.invoice_status||"applied"===e?.invoice_status||e?.is_invoiced&&"pending"===e?.invoice_status||"refunded"===e?.status)&&s.push(fl((e=>{if("red_locked"===e?.invoice_status)return C("开票锁定");if("invoiced"===e?.invoice_status)return C("已开票");if("applied"===e?.invoice_status||e?.is_invoiced&&"pending"===e?.invoice_status)return C("已申请");const t=(e=>{if("invoiced"===e?.invoice_status)return{color:"red",label:C("已开票")};if("applied"===e?.invoice_status||e?.is_invoiced&&"pending"===e?.invoice_status)return{color:"orange",label:C("已申请")};if(0!==e?.parent_id||"red_locked"===e?.invoice_status)return{color:"grey",label:C("不可退款")};if("refunded"===e?.status)return{color:"green",label:C("已退款")};if("success"!==e?.status)return{color:"grey",label:C("不可退款")};const t=pl(e),s=ul(e),r=hl(e);return t>0?{color:"orange",label:C("退款中")}:s<=0&&r>0?{color:"green",label:C("已退款")}:s>0&&r>0?{color:"blue",label:C("部分已退")}:s<=0?{color:"grey",label:C("不可退款")}:null})(e);return t?.label||C("不可退款")})(e),"","blocked")),s.length?z.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:4,width:"max-content",minWidth:128},children:s}):_l()})(t)},{title:C("退款"),width:80,render:(e,t)=>(e=>{const{canApplyRefund:t}=Tl(e);return t?z.jsx(T,{type:"danger",theme:"light",size:"small",onClick:()=>Ll(e),children:C("退款")}):(e=>ml(e)&&0===e?.parent_id&&(e=>Number(e?.pending_refund_quota||0)>0||Number(e?.refunded_quota||0)>0||Number(e?.refund_record_count||0)>0)(e))(e)?z.jsx(T,{theme:"light",size:"small",onClick:()=>Ll(e,{viewOnly:!0}),children:C("详情")}):_l()})(t)}]:[]],no=[{title:C("用户 ID"),dataIndex:"user_id",render:e=>z.jsx(mt,{onClick:()=>Ln(e),style:{cursor:"pointer"},children:e})},{title:C("提现时间"),dataIndex:"created",render:e=>new Date(1e3*e).toLocaleString()},{title:C("提现金额"),dataIndex:"withdrawal_amount",render:e=>z.jsxs(mt,{onClick:()=>Ln(`¥${Dn(e)}`),style:{cursor:"pointer"},children:["¥",Dn(e)]})},{title:C("收款方信息"),render:(e,t)=>"corporate"===t.payee_type?z.jsxs("div",{style:{lineHeight:"1.6"},children:[z.jsxs("div",{children:[z.jsx(O,{color:"purple",size:"small",style:{marginRight:4},children:C("对公")}),t.corporate_bank&&z.jsx(mt,{onClick:()=>Ln(t.corporate_bank),style:{cursor:"pointer"},children:t.corporate_bank})]}),(t.corporate_account_name||t.corporate_name)&&z.jsxs("div",{children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[C("户名"),": "]}),z.jsx(mt,{onClick:()=>Ln(t.corporate_account_name||t.corporate_name),style:{cursor:"pointer"},children:t.corporate_account_name||t.corporate_name})]}),t.corporate_name&&t.corporate_account_name&&t.corporate_account_name!==t.corporate_name&&z.jsxs("div",{children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[C("企业名称"),": "]}),z.jsx(mt,{onClick:()=>Ln(t.corporate_name),style:{cursor:"pointer"},children:t.corporate_name})]}),t.corporate_account&&z.jsxs("div",{children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[C("账号"),": "]}),z.jsx(mt,{onClick:()=>Ln(t.corporate_account),style:{cursor:"pointer"},children:t.corporate_account})]})]}):t.bank_card_no||t.bank_name?z.jsxs("div",{style:{lineHeight:"1.6"},children:[z.jsxs("div",{children:[z.jsx(O,{color:"green",size:"small",style:{marginRight:4},children:C("银行卡")}),t.bank_name&&z.jsx(mt,{onClick:()=>Ln(t.bank_name),style:{cursor:"pointer"},children:t.bank_name})]}),t.bank_card_holder&&z.jsxs("div",{children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[C("持卡人"),": "]}),z.jsx(mt,{onClick:()=>Ln(t.bank_card_holder),style:{cursor:"pointer"},children:t.bank_card_holder})]}),t.bank_card_no&&z.jsxs("div",{children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[C("卡号"),": "]}),z.jsx(mt,{onClick:()=>Ln(t.bank_card_no),style:{cursor:"pointer"},children:t.bank_card_no})]}),t.bank_branch&&z.jsxs("div",{children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[C("支行"),": "]}),z.jsx(mt,{onClick:()=>Ln(t.bank_branch),style:{cursor:"pointer"},children:t.bank_branch})]})]}):t.alipay_account?z.jsxs("div",{style:{lineHeight:"1.6"},children:[z.jsxs("div",{children:[z.jsx(O,{color:"blue",size:"small",style:{marginRight:4},children:"支付宝"}),z.jsx(mt,{onClick:()=>Ln(t.alipay_account),style:{cursor:"pointer"},children:t.alipay_account})]}),t.alipay_real_name&&z.jsxs("div",{children:[z.jsxs(mt,{type:"tertiary",size:"small",children:[C("姓名"),": "]}),z.jsx(mt,{onClick:()=>Ln(t.alipay_real_name),style:{cursor:"pointer"},children:t.alipay_real_name})]})]}):z.jsx(mt,{type:"tertiary",children:"-"})},{title:C("状态"),dataIndex:"status",render:e=>{const t={1:{color:"orange",text:C("待处理")},2:{color:"green",text:C("已批准")},3:{color:"red",text:C("已拒绝")},4:{color:"blue",text:C("已处理")}}[e]||{color:"grey",text:C("未知")};return z.jsx(O,{color:t.color,size:20,children:t.text})}},{title:C("处理理由"),dataIndex:"comment",render:(e,t)=>e||t.invoice_review_remark||"-"},...mi||ci||yi?[{title:C("操作"),render:(e,t)=>z.jsx(T,{onClick:()=>(e=>{wi(e),Si(e.status.toString()),Ci(e.comment||""),vi(!0)})(t),children:C("编辑")})}]:[]],lo=[{title:C("用户 ID"),dataIndex:"user_id",render:e=>z.jsx(mt,{onClick:()=>Ln(e),style:{cursor:"pointer"},children:e})},{title:C("用户名"),dataIndex:"username",render:e=>z.jsx(mt,{onClick:()=>e&&Ln(e),style:{cursor:e?"pointer":"default"},children:e||"-"})}
1,{title:C("申请时间"),dataIndex:"created_at",render:e=>e?new Date(1e3*e).toLocaleString():"-"},{title:C("订单号"),dataIndex:"trade_no",render:e=>z.jsx(mt,{onClick:()=>e&&Ln(e),style:{cursor:e?"pointer":"default"},children:e||"-"})},{title:C("充值额度"),dataIndex:"order_quota",render:e=>Pn(Number(e||0)/Vr)},{title:C("退款额度"),dataIndex:"refund_quota",render:e=>Pn(Number(e||0)/Vr)},{title:C("退款金额"),dataIndex:"refund_money",render:e=>{const t=`¥${Number(e||0).toFixed(2)}`;return z.jsx(mt,{onClick:()=>Ln(t),style:{cursor:"pointer"},children:t})}},{title:C("支付宝账号"),dataIndex:"alipay_account",render:e=>z.jsx(mt,{onClick:()=>e&&Ln(e),style:{cursor:e?"pointer":"default"},children:e||"-"})},{title:C("支付宝姓名"),dataIndex:"alipay_real_name",render:e=>z.jsx(mt,{onClick:()=>e&&Ln(e),style:{cursor:e?"pointer":"default"},children:e||"-"})},{title:C("退款原因"),dataIndex:"reason_text",ellipsis:!0,render:e=>e||"-"},{title:C("提交人"),dataIndex:"support_name",render:e=>e||"-"},{title:C("状态"),dataIndex:"status",render:e=>{const t=F[e]||{label:e,color:"grey"};return z.jsx(O,{color:t.color,size:20,children:t.label})}},{title:C("额度处理"),render:(e,t)=>{const s=ut(t,C);return z.jsx(O,{color:s.color,size:20,children:s.label})}},{title:C("处理理由"),ellipsis:!0,render:(e,t)=>t.finance_remark||t.reviewer_remark||"-"},{title:C("操作"),width:260,render:(e,t)=>z.jsx(L,{wrap:!0,children:"pending_review"===t.status&&z.jsxs(z.Fragment,{children:[z.jsx(T,{size:"small",onClick:()=>(e=>{ga(e);const t=e.reason_text||"";Zr(Number(e.refund_quota||0)/Vr),ta(t),da(ua.includes(t)?t:""),ra(e.support_remark_text||""),ia(e.alipay_account||""),la(e.alipay_real_name||""),xa(!0)})(t),children:C("修改")}),z.jsx(T,{size:"small",onClick:()=>fa(t),children:C("撤回")})]})})}],oo=[{title:C("申请时间"),dataIndex:"created_at",render:e=>e?new Date(1e3*e).toLocaleString():"-"},{title:C("订单号"),dataIndex:"trade_no",render:e=>z.jsx(mt,{onClick:()=>e&&Ln(e),style:{cursor:e?"pointer":"default"},children:e||"-"})},{title:C("退款额度"),dataIndex:"refund_quota",render:e=>Pn(Number(e||0)/Vr)},{title:C("退款金额"),dataIndex:"refund_money",render:e=>`¥${Number(e||0).toFixed(2)}`},{title:C("退款原因"),dataIndex:"reason_text",ellipsis:!0},{title:C("状态"),dataIndex:"outer_status",render:e=>{const t="已处理"===e;return z.jsx(O,{color:t?"green":"orange",size:20,children:e})}}],co=async(t,s)=>{try{const r=s?`?format=${encodeURIComponent(s)}`:"",a=await e.get(`/api/invoice/records/${t.id}/pdf${r}`,{responseType:"blob"}),i=String(a.headers["content-type"]||"").toLowerCase().includes("xml"),n=new Blob([a.data],{type:i?"application/xml":"application/pdf"}),l=window.URL.createObjectURL(n),o=document.createElement("a");o.href=l,o.download=`发票_${t.title}_${t.recharge_amount}元.${i?"xml":"pdf"}`,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(l)}catch(r){a(r.message||C("下载发票失败"))}},uo=[{title:C("ID"),dataIndex:"id"},{title:C("用户 ID"),dataIndex:"user_id"},{title:C("发票类型"),dataIndex:"invoice_type",render:e=>C("special"===e?"增值税专用发票":"增值税普通发票")},{title:C("抬头类型"),dataIndex:"invoice_category",render:e=>({enterprise:C("企业"),personal:C("个人")}[e]||C("个人"))},{title:C("开票格式"),dataIndex:"invoice_format",render:e=>x(e)},{title:C("抬头"),dataIndex:"title"},{title:C("金额"),dataIndex:"recharge_amount",render:e=>`¥${yt(e)}`},{title:C("订单数"),dataIndex:"order_nos",render:e=>{try{const t="string"==typeof e?JSON.parse(e||"[]"):e||[],s=Array.isArray(t)?t.length:0;return s?z.jsx(T,{type:"tertiary",theme:"light",size:"small",onClick:()=>{Tr((Array.isArray(t)?t:[]).map(String)),zr(!0)},children:s}):0}catch(t){return 0}}},{title:C("接收邮箱"),dataIndex:"receive_email"},{title:C("创建时间"),dataIndex:"created_at",render:e=>e?new Date(1e3*e).toLocaleString():"-"},{title:C("状态"),dataIndex:"status",render:e=>({pending:C("待开"),issued:C("已开"),sent:C("已寄送"),returned:C("已退回"),red_locked:C("开票锁定"),red_flushed:C("已冲红")}[e]||e)},{title:C("操作"),dataIndex:"op",render:(e,t)=>"issued"===t.status||"sent"===t.status?z.jsx(T,{type:"tertiary",theme:"light",size:"small",icon:z.jsx(ke,{size:14}),onClick:()=>(e=>{const t=(e=>{let t=[];try{const s="string"==typeof e.invoice_files?JSON.parse(e.invoice_files||"[]"):e.invoice_files||[];Array.isArray(s)&&(t=s.filter(e=>e&&e.url))}catch(s){t=[]}return[...new Set(t.map(e=>"xml"===String(e.format).toLowerCase()?"xml":"pdf"))]})(e);if(t.length<=1)return void co(e,t[0]);const s={pdf:{label:C("PDF 格式"),desc:C("标准电子发票,可直接打印或用于报销"),icon:z.jsx(Re,{size:20}
1),color:"#e5533d"},xml:{label:C("XML 格式"),desc:C("数电发票原始凭证,可导入财务系统"),icon:z.jsx(Ae,{size:20}),color:"#2f6bd9"}},r=$.info({title:C("选择下载格式"),icon:null,footer:null,width:420,bodyStyle:{paddingBottom:20},content:z.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10,marginTop:4,paddingBottom:4},children:[z.jsx(mt,{type:"tertiary",style:{fontSize:13},children:C("该发票包含多种格式,请选择要下载的文件")}),t.map(t=>{const a=s[t]||s.pdf;return z.jsxs("div",{role:"button",tabIndex:0,onClick:()=>{r.destroy(),co(e,t)},onKeyDown:s=>{"Enter"!==s.key&&" "!==s.key||(s.preventDefault(),r.destroy(),co(e,t))},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--semi-color-primary)",e.currentTarget.style.background="var(--semi-color-primary-light-default)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--semi-color-border)",e.currentTarget.style.background="var(--semi-color-bg-2)"},style:{display:"flex",alignItems:"center",gap:12,padding:"12px 14px",border:"1px solid var(--semi-color-border)",borderRadius:10,background:"var(--semi-color-bg-2)",cursor:"pointer",transition:"border-color .15s, background .15s"},children:[z.jsx("div",{style:{width:40,height:40,flexShrink:0,borderRadius:8,display:"flex",alignItems:"center",justifyContent:"center",background:a.color,color:"#fff"},children:a.icon}),z.jsxs("div",{style:{flex:1,minWidth:0},children:[z.jsx("div",{style:{fontWeight:600,fontSize:14,color:"var(--semi-color-text-0)"},children:a.label}),z.jsx("div",{style:{fontSize:12,color:"var(--semi-color-text-2)",marginTop:2},children:a.desc})]}),z.jsx(ke,{size:18,style:{color:"var(--semi-color-text-2)",flexShrink:0}})]},t)})]})})})(t),children:C("下载")}):z.jsx(mt,{type:"tertiary",children:"-"})}],po=()=>{const e=!yi&&jt;if(!e&&!sl&&!rl)return null;const t=rl?z.jsx(T,{onClick:Wl,type:"primary",children:C("批量退款")}):null,s=sl?z.jsx(T,{icon:z.jsx(ke,{size:16}),onClick:il,loading:zn,children:C("导出")}):null,r=e?z.jsxs(z.Fragment,{children:[z.jsx(T,{onClick:ao,loading:qn,type:"primary",children:C("批量开票")}),z.jsx(T,{onClick:so,loading:Tn,children:C("全部开票")})]}):null;return z.jsxs(z.Fragment,{children:[z.jsx("div",{className:"block md:hidden",children:z.jsxs("div",{className:"flex flex-wrap gap-2",children:[t,r,s]})}),z.jsx("div",{className:"hidden md:block",children:z.jsxs(L,{spacing:8,children:[t,r,s]})})]})},ho=()=>{if(!tl)return null;const[e,t]=N.useState(Bi),[s,r]=N.useState(Pi),[a,i]=N.useState(Li),[n,l]=N.useState(Wi),[o,d]=N.useState(Ki),[c,u]=N.useState(Qi),[p,h]=N.useState(Xi),[m,x]=N.useState(en),[y,g]=N.useState(sn),j=yi||ci||mi,f=()=>{Ei(e),Oi(s),Vi(a),Ui(n),Hi(o),Ji(c),Zi(p),tn(m),rn(y),bs(1),nl(1,((t={})=>({search_type:t.type??s,keyword:t.keyword??e,order_search_type:t.orderType??a,order_keyword:t.orderKeyword??n,payment_method:t.payMethod??o,status:t.status??c,scope:t.scope??p,date_range:void 0!==t.dateRange?t.dateRange:m,channel_id:void 0!==t.channel?t.channel:y}))(),!0)},_=()=>{t(""),r("id"),i("order_id"),l(""),d(""),u(""),h("sub"),x(null),g(""),Ei(""),Oi("id"),Vi("order_id"),Ui(""),Hi(""),Ji(""),Zi("sub"),tn(null),rn(""),bs(1),nl(1,{search_type:"id",keyword:"",order_search_type:"order_id",order_keyword:"",payment_method:"",status:"",scope:"sub",date_range:null,channel_id:""},!0)},v=a=>z.jsxs("div",{className:"flex gap-2",children:[z.jsxs(le,{value:s,onChange:e=>r(e),style:{width:"large"===a?"100px":120,flex:"none"},size:a,children:[z.jsx(le.Option,{value:"id",children:C("用户 ID")}),z.jsx(le.Option,{value:"username",children:C("用户名")})]}),z.jsx(G,{value:e,onChange:e=>t(e),placeholder:C("搜索关键词"),style:"large"===a?{flex:1}:{width:160},showClear:!0,onEnterPress:f,size:a})]}),b=e=>z.jsxs("div",{className:"flex gap-2",children:[z.jsxs(le,{value:a,onChange:e=>i(e),style:{width:"large"===e?"100px":120,flex:"none"},size:e,children:[z.jsx(le.Option,{value:"order_id",children:C("订单ID")}),z.jsx(le.Option,{value:"trade_no",children:C("订单号")})]}),z.jsx(G,{value:n,onChange:e=>l(e),placeholder:"",style:"large"===e?{flex:1}:{width:160},showClear:!0,onEnterPress:f,size:e})]}),w=e=>z.jsx(le,{value:o,onChange:e=>d(e),placeholder:C("支付方式"),style:{width:"large"===e?"100%":140},showClear:!0,size:e,children:Gi.map(e=>z.jsx(le.Option,{value:e.type,children:z.jsx("span",{style:{color:e.color},children:e.name})},e.type))}),k=e=>z.jsxs(le,{value:c,onChange:e=>u(e),placeholder:C("支付状态"),style:{width:"large"===e?"100%":140},showClear:!0,size:e,children:[z.jsx(le.Option,{value:"pending",children:C("未支付")}),z.jsx(le.Option,{value:"success",children:C("已支付")}),z.jsx(le.Option,{value:"expired",children:C("失败")})]}),S=e=>pi?z.jsxs(le,{value:p,onChange:e=>h(e),placeholder:C("查询范围"),style:{width:"large"===e?"100%":120},showClear:!1,size:e,children:[z.jsx(le.Option,{value:"sub",children:C("仅看下级")}),z.jsx(le.Option,{value:"self",children:C("仅看自己")})]}):null,I=e=>j?z.jsx(xe,{type:"dateRange",value:m,onChange:e=>x(e),placeholder:[C("开始日期"),C("结束日期")],style:{width:"large"===e?"100%":260},size:e,density:"compact"}):null,$=e=>j&&0!==an.length?z.jsx(le,{value:y,onChange:e=>g(e),placeholder:C("支付渠道"),style:{width:"large"===e?"100%":140},showClear:!0,size:e,children:an.map(e=>z.jsx(le.Option,{value:e.id,children:e.name},e.id))}):null,q=e=>z.jsxs("div",{className:"flex gap-2",children:[z.jsx(T,{type:"primary",onClick:f,loading:Mi,disabled:Mi,style:"large"===e?{flex:1}:void 0,size:e,children:C(Mi?"搜索中...":"搜索")}),z.jsx(T,{onClick:_,loading:Mi,disabled:Mi,style:"large"===e?{flex:1}:void 0,size:e,children:C(Mi?"重置中...":"重置")})]});return z.jsxs("div",{style:{marginTop:20,marginBottom:20},children:[z.jsx("div",{className:"block md:hidden",children:z.jsxs("div",{className:"space-y-3",children:[v("large"),b("large"),w("large"),k("large"),S("large"),I("large"),$("large"),q("large")]})}),z.jsx("div",{className:"hidden md:block",children:z.jsxs(L,{spacing:8,wrap:!0,children:[v(),b(),w(),k(),S(),I(),$(),q()]})})]})},mo=()=>{const[e,t]=N.useState(Aa),[s,r]=N.useState(Ba),[a,i]=N.useState(Pa),[n,l]=N.useState(Ma),o=()=>{Ra(e),Ea(s),Oa(a),Da(n),Dl(1,{status:e,keyword:s,trade_no:a,search_user_id:n})},d=()=>{t(""),r(""),i(""),l(""),Ra(""),Ea(""),Oa(""),Da(""),Dl(1,{status:"",keyword:"",trade_no:"",search_user_id:""})},c=e=>z.jsx(G,{value:n,onChange:e=>l(e),placeholder:C("用户 ID"),style:{width:"large"===e?"100%":140},showClear:!0,onEnterPress:o,size:e}),u=e=>z.jsx(G,{value:s,onChange:e=>r(e),placeholder:C("用户名"),style:{width:"large"===e?"100%":160},showClear:!0,onEnterPress:o,size:e}
1),p=e=>z.jsx(G,{value:a,onChange:e=>i(e),placeholder:C("订单号"),style:{width:"large"===e?"100%":200},showClear:!0,onEnterPress:o,size:e}),h=s=>z.jsxs(le,{value:e,onChange:e=>t(e),placeholder:C("状态"),style:{width:"large"===s?"100%":130},showClear:!0,size:s,children:[z.jsx(le.Option,{value:"pending_review",children:C("待管理员审核")}),z.jsx(le.Option,{value:"pending_process",children:C("待财务处理")}),z.jsx(le.Option,{value:"done",children:C("已处理")}),z.jsx(le.Option,{value:"rejected",children:C("已驳回")})]}),m=e=>z.jsxs("div",{className:"flex gap-2",children:[z.jsx(T,{type:"primary",onClick:o,loading:qa,disabled:qa,style:"large"===e?{flex:1}:void 0,size:e,children:C(qa?"搜索中...":"搜索")}),z.jsx(T,{onClick:d,loading:qa,disabled:qa,style:"large"===e?{flex:1}:void 0,size:e,children:C(qa?"重置中...":"重置")})]});return z.jsxs("div",{style:{marginTop:20,marginBottom:20},children:[z.jsx("div",{className:"block md:hidden",children:z.jsxs("div",{className:"space-y-3",children:[c("large"),u("large"),p("large"),h("large"),m("large")]})}),z.jsx("div",{className:"hidden md:block",children:z.jsxs(L,{spacing:8,wrap:!0,children:[c(),u(),p(),h(),m()]})})]})},xo=()=>{const[e,t]=N.useState(Dr),s=()=>{Lr(e),cl(1,{trade_no:e})},r=()=>{t(""),Lr(""),cl(1,{trade_no:""})},a=r=>z.jsx(G,{value:e,onChange:e=>t(e),placeholder:C("订单号"),style:{width:"large"===r?"100%":220},showClear:!0,onEnterPress:s,size:r}),i=e=>z.jsxs("div",{className:"flex gap-2",children:[z.jsx(T,{type:"primary",onClick:s,loading:Er,disabled:Er,style:"large"===e?{flex:1}:void 0,size:e,children:C(Er?"搜索中...":"搜索")}),z.jsx(T,{onClick:r,loading:Er,disabled:Er,style:"large"===e?{flex:1}:void 0,size:e,children:C(Er?"重置中...":"重置")})]});return z.jsxs("div",{style:{marginTop:20,marginBottom:20},children:[z.jsx("div",{className:"block md:hidden",children:z.jsxs("div",{className:"space-y-3",children:[a("large"),i("large")]})}),z.jsx("div",{className:"hidden md:block",children:z.jsxs(L,{spacing:8,wrap:!0,children:[a(),i()]})})]})},yo=()=>{const[e,t]=N.useState(Ds),[s,r]=N.useState(Vs),[a,i]=N.useState(Us),[n,l]=N.useState(Hs),o=mi||ci||yi,d=()=>{Ls(e),Ws(s),Ks(a),Qs(n),Bs(1),ll(1,((t={})=>({userId:t.userId??e,alipay:t.alipay??s,status:t.status??a,payeeType:t.payeeType??n}))(),!0)},c=()=>{t(""),r(""),i(""),l(""),Ls(""),Ws(""),Ks(""),Qs(""),Bs(1),ll(1,{userId:"",alipay:"",status:"",payeeType:""},!0)},u=s=>mi||ci||yi?z.jsx(G,{value:e,onChange:e=>t(e),placeholder:C("用户 ID"),style:{width:"large"===s?"100%":140},showClear:!0,onEnterPress:d,size:s}):null,p=e=>z.jsx(G,{value:s,onChange:e=>r(e),placeholder:C("支付宝账号/姓名"),style:{width:"large"===e?"100%":180},showClear:!0,onEnterPress:d,size:e}),h=e=>z.jsxs(le,{value:a,onChange:e=>i(e),placeholder:C("状态"),style:{width:"large"===e?"100%":130},showClear:!0,size:e,children:[z.jsx(le.Option,{value:"1",children:C("待处理")}),z.jsx(le.Option,{value:"2",children:C("已批准")}),z.jsx(le.Option,{value:"3",children:C("已拒绝")}),z.jsx(le.Option,{value:"4",children:C("已处理")})]}),m=e=>o?z.jsxs(le,{value:n,onChange:e=>l(e),placeholder:C("收款类型"),style:{width:"large"===e?"100%":130},showClear:!0,size:e,children:[z.jsx(le.Option,{value:"personal",children:C("对私支付宝")}),z.jsx(le.Option,{value:"corporate",children:C("对公账户")})]}):null,x=e=>z.jsxs("div",{className:"flex gap-2",children:[z.jsx(T,{type:"primary",onClick:d,loading:Js,disabled:Js,style:"large"===e?{flex:1}:void 0,size:e,children:C(Js?"搜索中...":"搜索")}),z.jsx(T,{onClick:c,loading:Js,disabled:Js,style:"large"===e?{flex:1}:void 0,size:e,children:C(Js?"重置中...":"重置")})]}),y=e=>o?z.jsx(T,{type:"danger",theme:"light",onClick:Vn,loading:Ys,disabled:Ys,style:"large"===e?{width:"100%"}:void 0,size:e,children:C("一键驳回历史对公卡单")}):null;return z.jsxs("div",{style:{marginTop:20,marginBottom:20},children:[z.jsx("div",{className:"block md:hidden",children:z.jsxs("div",{className:"space-y-3",children:[u("large"),p("large"),h("large"),m("large"),x("large"),y("large")]})}),z.jsx("div",{className:"hidden md:block",children:z.jsxs(L,{spacing:8,wrap:!0,children:[u(),p(),h(),m(),x(),y()]})})]})},go=()=>{ol({dateRange:rr,granularity:tr,userId:ur})},jo=()=>{ar(null),sr("month"),pr(""),ol({dateRange:null,granularity:"month",userId:""})};return z.jsxs("div",{className:"mx-auto relative min-h-screen lg:min-h-0",children:[z.jsx($,{title:Kr?z.jsx(mt,{strong:!0,style:{fontSize:16},children:C("订单详情")}):z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[z.jsx(mt,{strong:!0,style:{fontSize:16,color:"var(--semi-color-danger)"},children:"↩"}),z.jsx(mt,{strong:!0,style:{fontSize:16},children:C("发起退款")})]}),visible:Wr,onCancel:Vl,maskClosable:!1,size:"medium",centered:!0,bodyStyle:{padding:"16px 20px 8px"},footer:Kr?z.jsx("div",{style:{display:"flex",justifyContent:"flex-end",width:"100%"},children:z.jsx(T,{onClick:Vl,children:C("关闭")})}):(fo=Vl,_o=async()=>
1{if(!Gr||!ca.current)return;let e;try{e=await ca.current.validate()}catch{return}const t=Number(e.refund_quota);await Ml(Al(Gr.user_id,[{top_up_id:Gr.id,refund_quota:Math.round(t*Vr)}],e.reason_text,e.support_remark_text||"",e.alipay_account,e.alipay_real_name),C("已提交退款申请,等待管理员审核"),()=>{Ur(!1),va([]),Cn([])})},z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",width:"100%"},children:z.jsxs(L,{children:[z.jsx(T,{onClick:fo,children:C("取消")}),z.jsx(T,{type:"danger",theme:"solid",loading:pa,icon:z.jsx(Fe,{size:14}),onClick:_o,children:C("提交退款申请")})]})})),children:Gr&&z.jsxs("div",{style:{width:"100%"},children:[(e=>{const t=zl(e),s=void 0===t?"—":f(t),r=Tl(e);return z.jsxs("div",{style:{width:"100%",padding:"12px 14px",borderRadius:8,background:"#f7f4ef",marginBottom:16},children:[z.jsx(mt,{type:"tertiary",size:"small",style:{display:"block",marginBottom:8},children:C("订单信息")}),z.jsxs(mt,{size:"small",type:"secondary",style:{display:"block",cursor:"pointer",wordBreak:"break-all",marginBottom:10,lineHeight:1.45},onClick:()=>Ln(e.trade_no),children:[e.trade_no," · ",C("用户")," ",e.user_id]}),z.jsxs("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",rowGap:6},children:[wl(C("充值"),Pn(e.amount)),bl,wl(C("支付"),`¥${yt(e.money)}`),bl,wl(C("已退"),Pn(r.done),{highlight:!0}),bl,wl(C("退款中"),Pn(r.orderPending),{highlight:r.orderPending>0}),bl,wl(C("账户"),s)]})]})})(Gr),Kr?z.jsxs(z.Fragment,{children:[gl(Gr)?z.jsx(D,{type:"warning",description:gl(Gr),style:{marginBottom:12}}):null,jl(Gr)?z.jsx("div",{style:{marginTop:4},children:jl(Gr)}):null,z.jsx(ht,{topUpId:Gr.id,visible:Wr,quotaPerUnit:Vr,reloadKey:Qr})]}):z.jsxs(z.Fragment,{children:[((e,t)=>{if(!e)return null;const s=parseFloat(Xr);if(!Number.isFinite(s)||s<=0)return null;if(Number.isFinite(t)&&s>t+1e-9)return null;const r=zl(e);if(void 0===r)return null;const a=r/Vr,i=Math.max(0,(r-s*Vr)/Vr);return z.jsxs("div",{style:{display:"flex",gap:8,alignItems:"flex-start",padding:"10px 12px",background:"#fffbeb",border:"1px solid #fcd34d",borderRadius:8,marginBottom:12},children:[z.jsx(we,{size:16,style:{color:"#b45309",flexShrink:0,marginTop:2}}),z.jsx(mt,{style:{color:"#92400e",fontSize:13},children:C("提交申请后将立即预扣 {{amount}} 账户余额,余额将从 {{before}} 变为 {{after}},退款审核通过后正式划出,驳回后可申请退回。",{amount:Pn(s),before:Pn(a),after:Pn(i)})})]})})(Gr,Il(Gr)),z.jsx(B,{getFormApi:e=>{ca.current=e},initValues:Ol(),style:{width:"100%"},children:kl(Il(Gr),Gr)},Gr?`refund-apply-${Gr.id}`:"refund-apply")]})]})}),z.jsx($,{title:z.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[z.jsx(mt,{strong:!0,style:{fontSize:16,color:"var(--semi-color-primary)"},children:"✎"}),z.jsx(mt,{strong:!0,style:{fontSize:16},children:C("修改退款")})]}),visible:ma,onCancel:()=>xa(!1),maskClosable:!1,size:"medium",centered:!0,bodyStyle:{padding:"16px 20px 8px"},footer:z.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",width:"100%"},children:z.jsxs(L,{children:[z.jsx(T,{onClick:()=>xa(!1),children:C("取消")}),z.jsx(T,{type:"primary",theme:"solid",loading:pa,onClick:async()=>{if(!ya||!ca.current)return;let t;try{t=await ca.current.validate()}catch{return}const s=Number(t.refund_quota);ha(!0);try{const r=await e.put(`/api/refund/admin/${ya.id}`,{refund_quota:Math.round(s*Vr),reason_text:t.reason_text,support_remark_text:t.support_remark_text||"",alipay_account:t.alipay_account.trim(),alipay_real_name:t.alipay_real_name.trim()});if(!r.data.success)return void a(r.data.message);i(C("已保存修改")),xa(!1),Dl(za)}catch(r){a(r.response?.data?.message||r.message)}finally{ha(!1)}},children:C("保存")})]})}),children:ya&&z.jsxs("div",{style:{width:"100%"},children:[((e,t=0)=>{const s=zl(e),r=void 0===s?"—":f(s),a=xl(e,t),i=$l(e),n=Number(e.order_quota||0)/Vr;return z.jsxs("div",{style:{width:"100%",padding:"12px 14px",borderRadius:8,background:"#f7f4ef",marginBottom:16},children:[z.jsx(mt,{type:"tertiary",size:"small",style:{display:"block",marginBottom:8},children:C("订单信息")}),z.jsxs(mt,{size:"small",type:"secondary",style:{display:"block",cursor:"pointer",w
1ordBreak:"break-all",marginBottom:10,lineHeight:1.45},onClick:()=>Ln(e.trade_no),children:[e.trade_no," · ",C("用户")," ",e.user_id]}),z.jsxs("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",rowGap:6},children:[wl(C("充值"),Pn(n)),bl,wl(C("支付"),`¥${yt(e.order_money)}`),a>0?z.jsxs(z.Fragment,{children:[bl,wl(C("其他处理中"),Pn(a),{highlight:!0})]}):null,bl,wl(C("账户"),r),bl,wl(C("最多可退"),Pn(i),{highlight:!0})]})]})})(ya,Number(ya.refund_quota||0)),z.jsx(B,{getFormApi:e=>{ca.current=e},initValues:Ol(),style:{width:"100%"},children:kl($l(ya),ya,Number(ya.refund_quota||0))},ya?`refund-edit-${ya.id}`:"refund-edit")]})}),z.jsx(dt,{visible:!!ja,record:ja,quotaPerUnit:Vr,title:C("撤回退款申请"),requireRemark:!1,okText:C("确认撤回"),onCancel:()=>fa(null),onConfirm:({restore_quota:t})=>{const s=ja;fa(null),s&&(async(t,s,r={})=>{try{const n=await e.post(t,r);if(!n.data.success)return void a(n.data.message);i(s),Jr(e=>e+1),Dl(za),nl()}catch(n){a(n.response?.data?.message||n.message)}})(`/api/refund/admin/${s.id}/withdraw`,C("已撤回"),{restore_quota:t})}}),z.jsx($,{title:C("批量退款"),visible:ba,onCancel:()=>wa(!1),maskClosable:!1,size:"large",centered:!0,footer:z.jsxs(L,{children:[z.jsx(T,{onClick:()=>wa(!1),children:C("取消")}),z.jsx(T,{type:"primary",loading:pa,onClick:async()=>{if(!ka.length||!ca.current)return;let e;try{e=await ca.current.validate()}catch{return}const t=[];let s=0;const r=yl(ka[0].record);for(const i of ka){const e=Number(i.quota);if(!e||e<=0)return void a(C("请为每笔订单填写退款额度"));const r=Il(i.record);if(e>r){const e=xl(i.record);return void a(e>0?C("退款额度不能超过 {{max}},另有 {{pending}} 退款正在处理中",{max:r,pending:Pn(e)}):C("退款额度不能超过 {{max}}",{max:r}))}s+=e,t.push({top_up_id:i.record.id,refund_quota:Math.round(e*Vr)})}void 0!==r&&s>r?a(C("批量退款总额不能超过 {{max}}",{max:Pn(r)})):await Ml(Al(ka[0].record.user_id,t,e.reason_text,e.support_remark_text||"",e.alipay_account,e.alipay_real_name),C("批量退款申请已提交,等待管理员审核"),()=>{wa(!1),va([]),Cn([])})},children:C("提交退款申请")})]}),children:z.jsxs(L,{vertical:!0,align:"start",style:{width:"100%"},spacing:8,children:[ka[0]&&((e,{mode:t="apply",excludeCurrentRefundQuota:s=0}={})=>{const r=zl(e),a=void 0===r?C("—(请刷新后重试)"):f(r),i=xl(e,s),n=ul(e),l=hl(e),o=pl(e),d={fontSize:13,lineHeight:1.45};if("batch"===t){const t=[`${C("用户 ID")} ${e.user_id}`,`${C("当前剩余额度")} ${a}`,`${C("还可申请退款")} ${Pn(yl(e)??0)}`];return i>0&&t.splice(2,0,`${C("其他退款处理中")} ${Pn(i)}`),z.jsx(mt,{type:"secondary",size:"small",style:d,children:t.join(" · ")})}const c=[];return"edit"===t?(void 0!==r&&c.push(`${C("账户")} ${a}`),i>0&&c.push(`${C("其他处理中")} ${Pn(i)}`),c.push(`${C("最多可退")} ${Pn($l(e))}`)):(c.push(`${C("充值")} ${Pn(e.amount)}`,`${C("支付")} ¥${yt(e.money)}`),l>0&&c.push(`${C("已退")} ${Pn(l)}`),o>0&&c.push(`${C("处理中")} ${Pn(o)}`),c.push(`${C("本单还可退")} ${Pn(n)}`),void 0!==r&&c.push(`${C("账户")} ${a}`),i>0&&c.push(`${C("其他处理中")} ${Pn(i)}`)),z.jsxs("div",{style:{width:"100%",padding:"8px 10px",borderRadius:6,background:"var(--semi-color-fill-0)"},children:[z.jsxs(mt,{size:"small",type:"secondary",style:{display:"block",cursor:"pointer",wordBreak:"break-all",marginBottom:2},onClick:()=>Ln(e.trade_no),children:[e.trade_no," · ",C("用户")," ",e.user_id]}),z.jsx(mt,{size:"small",style:d,children:c.join(" · ")})]})})(ka[0].record,{mode:"batch"}),z.jsx(W,{size:"small",pagination:!1,dataSource:ka,rowKey:e=>e.record.id,columns:[{title:C("订单号"),dataIndex:"record",render:e=>e.trade_no},{title:C("充值额度"),dataIndex:"record",render:e=>Pn(e.amount)},{title:C("退款额度"),dataIndex:"quota",render:(e,t,s)=>{const r=Il(t.record),a=Fl(e,r,t.record);return z.jsxs("div",{children:[z.jsx(G,{value:e,suffix:"$",validateStatus:a?"error":"default",placeholder:C("不超过 {{max}}",{max:Pn(r)}),onChange:e=>{const t=[...ka];t[s]={...t[s],quota:ql(e)},Sa(t)}}),a&&z.jsx(mt,{type:"danger",size:"small",style:{display:"block",marginTop:2},children:a})]})}}]}),z.jsx(B,{getFormApi:e=>{ca.current=e},initValues:Ol(),style:{width:"100%"},children:(({showQuota:e=!1,quotaMaxDisp:t=0,quotaPlaceholder:s="",quotaRecord:r=null,excludeCurrentRefundQuota:a=0}={})=>z.jsxs(z.Fragment,{children:[e&&z.jsx(B.Input,{field:"refund_quota",label:C("退款额度"),rules:Pl(t,r,a),onChange:e=>
1{const t=ql(e);Zr(t),ca.current?.setValue("refund_quota",t)},placeholder:s||C("不超过 {{max}}",{max:Pn(t)}),suffix:"$",extraText:Cl(Xr,r)?`${C("退款金额(系统自动计算)")}: ¥${Cl(Xr,r)}`:void 0}),z.jsxs(te,{gutter:12,children:[z.jsx(se,{span:12,children:z.jsx(B.Input,{field:"alipay_account",label:C("支付宝账号"),labelWidth:88,rules:Rl,onChange:e=>{ia(e),ca.current?.setValue("alipay_account",e)},placeholder:C("支付宝账号")})}),z.jsx(se,{span:12,children:z.jsx(B.Input,{field:"alipay_real_name",label:C("支付宝姓名"),labelWidth:72,rules:Bl,onChange:e=>{la(e),ca.current?.setValue("alipay_real_name",e)},placeholder:C("支付宝姓名")})})]}),z.jsx(B.TextArea,{field:"reason_text",label:C("退款原因"),rules:El,onChange:e=>{ta(e),ca.current?.setValue("reason_text",e)},rows:1,autosize:{minRows:1,maxRows:3},placeholder:C("请填写退款原因")}),z.jsx(B.Input,{field:"support_remark_text",label:C("内部备注"),onChange:e=>{ra(e),ca.current?.setValue("support_remark_text",e)},placeholder:C("选填,用户不可见")})]}))({showQuota:!1})},ba?`refund-batch-${ka[0]?.record?.user_id||"x"}`:"refund-batch")]})}),z.jsx($,{title:z.jsx(xt,{heading:4,children:C("请输入要划转的美元额度金额")}),visible:Vt,onOk:async()=>{if(!Ut||isNaN(Ut)||Ut<=0)return void a(C("请输入有效的划转金额"));if(Yt||!Ht)return void a(C("划转信息加载中,请稍候"));const t=Number(Ht.min_transfer_amount),s=Number(Ht.max_transfer_amount);if(Ut<t)return void a(C("划转金额低于最小值 {{amount}} 美元额度",{amount:Ht.min_transfer_amount_str||String(t)}));if(Ut>s+1e-6)return void a(C("划转金额不能超过最大可划转 {{amount}} 美元额度",{amount:Ht.max_transfer_amount_str||String(s)}));if(Jt&&!1===Jt.preview_sufficient)return void a(C("邀请余额不足"));const r=await e.post("/api/user/aff_transfer",{amount:Ut}),{success:n,message:l}=r.data;n?(i(C(l)),Wt(!1),Jn()):a(C(l))},onCancel:Xl,maskClosable:!1,size:"medium",centered:!0,okButtonProps:{disabled:Yt||!Ht},children:z.jsxs(L,{vertical:!0,align:"start",style:{width:"100%"},spacing:24,children:[Yt&&z.jsx(q.Text,{type:"secondary",children:C("划转信息加载中…")}),!Yt&&Ht&&z.jsxs(z.Fragment,{children:[z.jsxs(L,{vertical:!0,style:{width:"100%"},children:[z.jsx(q.Text,{children:C("可用收益:¥ {{amount}} 元",{amount:Ht.available_rmb})}),z.jsx(q.Text,{children:C("最大划转:$ {{amount}} 美元额度",{amount:Ht.max_transfer_amount_str})}),z.jsx(q.Text,{children:C("当前价格: {{rate}} 元人民币 = 1美元额度",{rate:Ht.transfer_price})}),z.jsx(G,{style:{marginTop:8},value:Ht.max_transfer_amount_str,disabled:!0,size:"large",suffix:"$"})]}),z.jsxs(L,{vertical:!0,style:{width:"100%"},children:[z.jsx(q.Text,{children:C("划转金额(美元额度)最低 {{amount}} 美元额度",{amount:Ht.min_transfer_amount_str})}),z.jsx(ce,{min:0,max:Number(Ht.max_transfer_amount),style:{marginTop:8,width:"100%"},value:Ut,onChange:e=>Kt(e),precision:2,size:"large"})]}),z.jsx(q.Text,{type:"secondary",children:C("划转后将获得 {{amount}}",{amount:Jt?.preview_receive_display?`${Jt.preview_receive_display} ${C("额度")}`:"—"})})]}),!Yt&&!Ht&&z.jsx(q.Text,{type:"danger",children:C("无法加载划转信息,请稍后重试")})]})}),z.jsx(Ye,{visible:ee,dashboard:X,onClose:()=>re(!1),onSuccess:()=>{Jn(),"function"==typeof Z&&Z()},onGoUploadInvoice:()=>{re(!1),ie("4"),de(!0),setTimeout(()=>{document.getElementById("records-section")?.scrollIntoView({behavior:"smooth",block:"start"})},300)}}),z.jsx($,{title:z.jsx(xt,{heading:4,children:C("请输入要提现的金额")}),visible:ds,onOk:async()=>{if(!xs||!gs)return void a(C("请填写支付宝账号和真实姓名"));const t=j();if(!t||isNaN(t)||t<=0)return void a(C("系统配置错误,请联系管理员(quota_per_unit未配置)"));let s;if(hs)s=rs;else{if(!us||isNaN(us)||us<=0)return void a(C("请输入有效的提现金额"));r=us,s=Math.floor(w(r/V?.status?.original_price))}var r;if(!s||isNaN(s)||s<=0)return void a(C("金额转换失败,请重试"));if(s<t)return void a(C("提现金额最低为 {{quota}}",{quota:f(t)}
1));const n=y(),l=g(),o=hs?us:parseFloat(us);if(n>0&&o<n)return void a(C("提现金额不能低于 {{amount}} 元",{amount:n}));if(l>0&&o>l)return void a(C("提现金额不能高于 {{amount}} 元",{amount:l}));const d=await e.post("/api/user/withdraw",{quota:Math.floor(s),alipay_account:xs,alipay_real_name:gs}),{success:c,message:u}=d.data;c?(i(C(u)),cs(!1),Jn()):a(C(u))},onCancel:Xl,maskClosable:!1,size:"medium",centered:!0,children:z.jsxs(B,{getFormApi:e=>{window.formApi=e},initValues:{withdrawAmount:us,alipayAccount:xs,alipayRealName:gs},children:[z.jsx(B.Slot,{label:C("可提现金额"),children:z.jsx(G,{value:Dn(rs)||0,disabled:!0,size:"large",suffix:C("元")})}),z.jsx(B.Input,{field:"withdrawAmount",label:C("提现金额(元)"),value:us,onChange:e=>{const t=(e=e.replace(/[^\d.]/g,"")).split(".");t.length>2&&(e=t[0]+"."+t[1]),2===t.length&&t[1].length>2&&(e=t[0]+"."+t[1].slice(0,2)),ps(e),window.formApi.setValue("withdrawAmount",e),hs&&ms(!1)},disabled:hs,placeholder:C("请输入提现金额"),size:"large",suffix:z.jsx(T,{type:hs?"primary":"tertiary",onClick:()=>{if(hs)ms(!1),ps("0"),window.formApi.setValue("withdrawAmount","0");else{const e=Dn(rs);ps(e),window.formApi.setValue("withdrawAmount",e),ms(!0)}},size:"large",children:C("全部提现")}),helpText:()=>{const e=y(),t=g(),s=Dn(j());let r="";return r+=e>0?C("最低提现额度 {{amount}} 元",{amount:e})+(t>0?",":""):C("基础提现门槛 {{amount}} 元",{amount:s})+(t>0?",":""),t>0&&(r+=C("最高提现额度 {{amount}} 元",{amount:t})),r}}),z.jsx(B.Input,{field:"alipayAccount",label:C("支付宝账号"),value:xs,onChange:e=>{ys(e);try{window.formApi.setValue("alipayAccount",e)}catch(t){}},placeholder:C("请输入支付宝账号"),size:"large"}),z.jsx(B.Input,{field:"alipayRealName",label:C("支付宝实名"),value:gs,onChange:e=>{js(e);try{window.formApi.setValue("alipayRealName",e)}catch(t){}},placeholder:C("请输入支付宝实名"),size:"large"})]})}),z.jsx($,{title:z.jsx(xt,{heading:4,children:C("划转余额到用户")}),visible:un,onOk:async()=>{if(!xn)return void a(C("请选择要划转的用户"));if(!hn||isNaN(hn)||hn<=0)return void a(C("请输入有效的划转金额"));const t=j();if(!t||isNaN(t)||t<=0)return void a(C("系统配置错误,请联系管理员(quota_per_unit未配置)"));const s=Mn(hn);if(!s||isNaN(s)||s<=0)a(C("金额转换失败,请重试"));else if(s<t)a(C("划转金额低于最小值 {{quota}}",{quota:f(t)}));else try{Nt(!0);const t=await e.post("/api/user/transfer_balance",{user_id:xn,quota:Math.floor(s)}),{success:r,message:n}=t.data;r?(i(C("划转成功")),pn(!1),yn(null),mn(0),Jn()):a(C(n||"划转失败"))}catch(r){console.error("划转失败:",r),a(C("划转失败,请重试"))}finally{Nt(!1)}},onCancel:()=>{pn(!1),yn(null),mn(0)},maskClosable:!1,size:"medium",centered:!0,confirmLoading:St,children:z.jsxs(L,{vertical:!0,align:"start",style:{width:"100%"},spacing:24,children:[z.jsxs(L,{vertical:!0,style:{width:"100%"},children:[z.jsx(q.Text,{children:C("可用账户余额:{{amount}}",{amount:f(wt)})}),z.jsx(q.Text,{children:C("最大划转:{{amount}}",{amount:f(wt)})})]}),z.jsxs(L,{vertical:!0,style:{width:"100%"},children:[z.jsx(q.Text,{children:C("选择用户")}),z.jsx(le,{style:{width:"100%"},placeholder:C("请选择或搜索用户"),value:xn,onChange:yn,filter:!0,remote:!0,onSearch:Gn,loading:fn,emptyContent:fn?C("加载中..."):0===gn.length?C("暂无用户"):C("未找到用户"),size:"large",children:gn.map(e=>z.jsx(le.Option,{value:e.value,children:e.label},e.value))})]}),z.jsxs(L,{vertical:!0,style:{width:"100%"},children:[z.jsx(q.Text,{children:C("划转金额(美元额度)最低 {{amount}} 美元额度",{amount:(Number(On(j()))||0).toFixed(2)})}),z.jsx(ce,{min:0,max:parseFloat((Number(On(wt))||0).toFixed(2)),style:{marginTop:8,width:"100%"},value:hn,onChange:e=>mn(e),precision:2,size:"large",suffix:"$"})]}),vn>0&&z.jsxs("div",{style:{background:"hsl(var(--warning) / 0.12)",border:"1px solid hsl(var(--warning))",borderRadius:8,padding:"12px 16px",width:"100%"},children:[z.jsx(q.Text,{strong:!0,style:{color:"hsl(var(--warning))",fontSize:14},children:C("平台手续费提示")}),z.jsx("div",{style:{marginTop:8},children:z.jsx(q.Text,{children:C("手续费率:{{rate}}%",{rate:vn})})}),z.jsx("div",{children:z.jsx(q.Text,{children:C("手续费额度:{{amount}}",{amount:f(Math.max(1,Math.floor(Mn(hn)*vn/100)))})})}),z.jsx("div",{children:z.jsx(q.Text,{strong:!0,children:C("您å°
1†å®žé™…被扣除:{{amount}}",{amount:f(Mn(hn)+Math.max(1,Math.floor(Mn(hn)*vn/100)))})})})]}),z.jsx(q.Text,{type:"secondary",children:C("划转后用户将获得 {{amount}} 额度",{amount:f(Mn(hn))})})]})}),z.jsx($,{title:C("编辑提现记录"),visible:_i,onOk:async()=>{try{const t=await e.post("/api/user/update_withdrawal_status",{order_id:bi.id,status:parseInt(ki),comment:Ni});t.data.success?(i(C("更新成功")),vi(!1),ll()):a(C(t.data.message)||C("更新失败"))}catch(t){a(C("更新失败:{{message}}",{message:t.response?.data?.message||t.message}))}},onCancel:()=>vi(!1),maskClosable:!1,children:z.jsx(B,{style:{padding:10,width:"100%"},onValueChange:e=>{void 0!==e.editStatus&&Si(e.editStatus),void 0!==e.editComment&&Ci(e.editComment)},initValues:{editStatus:ki,editComment:Ni},children:z.jsx(B.Section,{text:C("基本信息"),children:z.jsx(te,{children:z.jsxs(se,{span:24,children:[z.jsxs(B.Select,{field:"editStatus",label:C("状态"),style:{width:"100%"},placeholder:C("请选择状态"),initValue:ki,children:[z.jsx(B.Select.Option,{value:"1",children:C("待处理")}),z.jsx(B.Select.Option,{value:"2",children:C("已批准")}),z.jsx(B.Select.Option,{value:"3",children:C("已拒绝")}),z.jsx(B.Select.Option,{value:"4",children:C("已处理")})]}
1),z.jsx(B.TextArea,{field:"editComment",label:C("处理理由"),style:{width:"100%"},placeholder:C("请输入处理理由"),initValue:Ni})]})})})})}),z.jsx($,{title:C("导入支付宝回执单"),visible:La,onOk:()=>Ul(!1),onCancel:()=>{Va(!1),Ha(null)},maskClosable:!1,confirmLoading:Wa,okText:C("导入"),cancelText:C("取消"),children:z.jsxs(L,{vertical:!0,align:"start",style:{width:"100%"},spacing:16,children:[z.jsxs("div",{children:[z.jsx(mt,{strong:!0,children:C("选择回执文件")}),z.jsx(mt,{type:"tertiary",className:"block mt-1",children:C("请选择支付宝批量付款回执单文件(支持 Excel .xlsx)")})]}),z.jsx(E,{accept:".xlsx",limit:1,fileList:Ka?[{uid:"1",name:Ka.name,status:"success"}]:[],beforeUpload:({file:e})=>(e.fileInstance?.name?.toLowerCase()??"").endsWith(".xlsx")?(Ha(e.fileInstance),!1):(a(C("仅支持 .xlsx 格式的文件,.xls 请先在 Excel/WPS 中另存为 .xlsx")),!1),onRemove:()=>Ha(null),style:{width:"100%"},children:z.jsx(T,{children:C("点击选择回执文件(.xlsx)")})}),z.jsx(D,{type:"info",description:z.jsxs("div",{children:[z.jsx("p",{children:C("导入说明:")}),z.jsxs("ul",{style:{paddingLeft:"20px",marginTop:"8px"},children:[z.jsx("li",{children:C("文件格式:仅支持 Excel .xlsx")}),z.jsx("li",{children:C("若从支付宝下载的是 .xls 文件,请先用 Excel/WPS「另存为」.xlsx 再上传(直接改后缀无效)")}),z.jsx("li",{children:C("系统将根据账号/卡号、姓名、金额自动匹配提现记录")}),z.jsx("li",{children:C("匹配成功的记录将自动更新状态")}),z.jsx("li",{children:C("导入记录将保存30天,可随时查看")})]})]}),closeIcon:null})]})}),z.jsx($,{title:C("导入记录列表"),visible:ai,onCancel:()=>ii(!1),footer:z.jsx(T,{onClick:()=>ii(!1),children:C("关闭")}),style:{width:"80%",maxWidth:"1000px"},children:ni?z.jsx(ue,{active:!0}):Ga.length>0?z.jsx(W,{columns:[{title:C("导入时间"),dataIndex:"import_time",width:180,render:e=>new Date(1e3*e).toLocaleString()},{title:C("操作员"),dataIndex:"operator_username",width:120,render:(e,t)=>e||`ID:${t.operator_id}`},{title:C("文件名"),dataIndex:"file_name",ellipsis:!0},{title:C("总数"),dataIndex:"total_count",width:80},{title:C("成功"),dataIndex:"success_count",width:80,render:e=>z.jsx(mt,{type:"success",children:e})},{title:C("失败"),dataIndex:"fail_count",width:80,render:e=>z.jsx(mt,{type:"danger",children:e})},{title:C("跳过"),dataIndex:"skipped_count",width:80,render:e=>z.jsx(mt,{type:"warning",children:e})},{title:C("操作"),width:200,render:(t,s)=>z.jsxs(L,{spacing:8,children:[z.jsx(T,{size:"small",onClick:()=>(async t=>{try{ti(!0),ri([]);const s=await e.get("/api/user/alipay_receipt_logs",{params:{import_id:t}}),{success:r,data:i,message:n}=s.data;r?(Za(i),Ja(!0),ii(!1)):a(C(n||"获取导入记录失败"))}catch(s){a(C("获取导入记录失败:{{message}}",{message:s.response?.data?.message||s.message}))}finally{ti(!1)}})(s.import_id),loading:ei,children:C("查看详情")}),z.jsx(M,{content:C("将此批次已处理的订单恢复为待处理,并删除该导入记录"),children:z.jsx(T,{size:"small",type:"danger",onClick:()=>(async t=>{$.confirm({title:C("确认恢复"),content:C("确定要恢复此导入记录的数据吗?恢复后将删除该导入记录,且操作不可撤销。"),okText:C("确认恢复"),cancelText:C("取消"),okButtonProps:{type:"danger"},onOk:async()=>{try{di(t.import_id);const s=await e.post("/api/user/alipay_receipt_import_restore",{import_id:t.import_id}),{success:r,message:n}=s.data;r?(i(C("恢复成功,导入记录已删除")),await Kl(),await nl(1)):a(C(n||"恢复失败"))}catch(s){a(C("恢复失败:{{message}}",{message:s.response?.data?.message||s.message}))}finally{di(null)}}})})(s),loading:oi===s.import_id,disabled:null!==oi&&oi!==s.import_id,children:C("恢复")})})]})}],dataSource:Ga,pagination:{pageSize:10,showTotal:!0},size:"small"}):z.jsx("div",{className:"text-center py-8",children:z.jsx(mt,{type:"tertiary",children:C("暂无导入记录")})})}),z.jsx($,{title:C("导入记录详情"),visible:Qa,onCancel:()=>{Ja(!1),Za(null)},footer:z.jsxs(L,{children:[z.jsx(T,{onClick:()=>{Ja(!1),Za(null),ii(!0)},children:C("返回列表")}),z.jsx(T,{type:"primary",onClick:()=>{Ja(!1),Za(null)},children:C("关闭")})]}),style:{width:"80%",maxWidth:"1200px"},children:ei?z.jsx(ue,{active:!0}):Xa?z.jsxs(L,{vertical:!0,align:"start",style:{width:"100%"},spacing:16,children:[z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[z.jsxs("div",{children:[z.jsx(mt,{type:"tertiary",children:C("文件名")}),z.jsx("div",{className:"mt-2 font-semibold",children:Xa.file_name})]}),z.jsxs("div",{children:[z.jsx(mt,{type:"tertiary",children:C("导入时间")}),z.jsx("div",{className:"mt-2 font-semibold",children:new Date(1e3*Xa.import_time).toLocaleStr
1ing()})]}),z.jsxs("div",{children:[z.jsx(mt,{type:"tertiary",children:C("总记录数")}),z.jsx("div",{className:"mt-2 font-semibold",children:Xa.total_count})]}),z.jsxs("div",{children:[z.jsx(mt,{type:"tertiary",children:C("操作员")}),z.jsx("div",{className:"mt-2 font-semibold",children:Xa.operator_username||`ID:${Xa.operator_id}`})]})]}),z.jsx(pe,{style:{margin:"16px 0"}}),z.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[z.jsxs("div",{children:[z.jsx(mt,{type:"success",strong:!0,children:C("成功")}),z.jsx("div",{className:"mt-2 text-xl font-bold",style:{color:"hsl(var(--success))"},children:Xa.success_count})]}),z.jsxs("div",{children:[z.jsx(mt,{type:"danger",strong:!0,children:C("失败")}),z.jsx("div",{className:"mt-2 text-xl font-bold",style:{color:"hsl(var(--destructive))"},children:Xa.fail_count})]}),z.jsxs("div",{children:[z.jsx(mt,{type:"warning",strong:!0,children:C("跳过")}),z.jsx("div",{className:"mt-2 text-xl font-bold",style:{color:"hsl(var(--warning))"},children:Xa.skipped_count})]})]})]}),z.jsxs("div",{style:{width:"100%"},children:[z.jsxs("div",{className:"flex items-center justify-between mb-3",children:[z.jsx(mt,{strong:!0,children:C("详细日志")}),z.jsx(T,{size:"small",icon:z.jsx(ke,{size:14}),onClick:async()=>{const e=Xa?.logs||[],t=si.length?e.filter(e=>si.includes(e.status)):e;if(0!==t.length)try{const e=await k(()=>import("./vendor-xlsx-CXkWk0Zf.js"),[]),s=[[C("收款账号"),C("姓名"),C("金额"),C("状态"),C("消息"),C("订单ID")],...t.map(e=>[String(e.alipay_account??""),String(e.alipay_name??""),e.amount??"",String(e.status??""),String(e.message??""),e.order_id??""])],r=e.utils.aoa_to_sheet(s);r["!cols"]=[{wch:22},{wch:12},{wch:10},{wch:8},{wch:50},{wch:10}];const a=e.utils.book_new();e.utils.book_append_sheet(a,r,C("导入详情"));const i=si.length?`_${si.join("-")}`:"_all";e.writeFile(a,`import_logs_${Xa?.import_id||"detail"}${i}.xlsx`)}catch(s){a(C("导出失败:{{message}}",{message:s?.message||String(s)}))}else a(C("没有可导出的记录"))},children:si.length?C("导出筛选结果"):C("导出全部")})]}),z.jsx(W,{onChange:e=>{const t=(e?.filters||[]).find(e=>"status"===e.dataIndex);ri(t?.filteredValue||[])},columns:Ql,dataSource:Hl,pagination:Jl,size:"small"})]})]}):z.jsx(mt,{type:"tertiary",children:C("暂无数据")})}),z.jsx($,{title:z.jsxs("div",{className:"flex items-center",children:[z.jsx(Se,{className:"mr-2",size:18}),C("充值确认")]}),visible:Ct,onOk:async()=>{if(!Wn())if(0===Be&&await Yl(),Me<Pe)a(C("充值数量不能小于 {{min}}",{min:Pe}));else if(Un(Me))a(C("充值金额过大,充值后账户余额将超出系统允许上限,请降低充值金额后重试"));else{if("function"==typeof window.trackAnalyticsEvent){const e=Be/7;window.trackAnalyticsEvent("topup",{value:e,currency:"USD"})}Pt(!0);try{const t=await e.post("/api/user/pay",{amount:parseInt(Me),top_up_code:ve,payment_method:It});if(void 0!==t){const{success:e,data:s}=t.data;if(e){let e=s.params,t=s.url;if(s.order_id||s.trade_no||s.id){const e=s.order_id||s.trade_no||s.id;Xn(e,Be/7),v(C("支付窗口已打开,正在监控支付状态..."))}let r=document.createElement("form");r.action=t,r.method="POST",navigator.userAgent.indexOf("Safari")>-1&&navigator.userAgent.indexOf("Chrome")<1||(r.target="_blank");for(let s in e){let t=document.createElement("input");t.type="hidden",t.name=s,t.value=e[s],r.appendChild(t)}document.body.appendChild(r),r.submit(),document.body.removeChild(r)}else a(s)}else a(t)}catch(t){a(C("支付请求失败"))}finally{zt(!1),Pt(!1)}}},onCancel:Xl,maskClosable:!1,size:"small",centered:!0,confirmLoading:Et,children:z.jsxs("div",{className:"space-y-4",children:[z.jsxs("div",{className:"flex justify-between items-center py-2",children:[z.jsxs(mt,{strong:!0,children:[C("充值数量"),":"]}),z.jsx(mt,{children:_(Me)})]}),z.jsxs("div",{className:"flex justify-between items-center py-2",children:[z.jsxs(mt,{strong:!0,children:[C("实付金额"),":"]}),Ft?z.jsx(ue.Title,{style:{width:"60px",height:"16px"}}):z.jsx(mt,{type:"danger",strong:!0,children:Gl()})]}),z.jsxs("div",{className:"flex justify-between items-center py-2",children:[z.jsxs(mt,{strong:!0,children:[C("支付方式"),":"]}),z.jsx(mt,{children:(()=>{const e=Ot.find(e=>e.type===It);return e?z.jsxs("div",{className:"flex items-center",children:["zfb"===e.type?z.jsx(je,{className:"mr-1",size:16}):"wx"===e.type?z.jsx(fe,{className:"mr-1",size:16}):z.jsx(Se,{className:"mr-1",size:16}),A(e)]}):"zfb"===It?z.jsxs("div",{className:"flex items-center",children:[z.jsx(je,{className:"mr-1",size:16}),C("支付宝")]}):z.jsxs("div",{className:"flex items-center",children:[z.jsx(fe,{className:"mr-1",size:16}),C("微信")]})})()})]})]})}),z.jsxs($,{title:C("确定要充值吗"),visible:et,onOk:async()=>
1{if(!Wn())if(0===Be&&await Yl(),Me<Qe)a(C("充值数量不能小于 {{min}}",{min:Qe}));else if(Un(Me))a(C("充值金额过大,充值后账户余额将超出系统允许上限,请降低充值金额后重试"));else{if("function"==typeof window.trackAnalyticsEvent){const e=Be/7;window.trackAnalyticsEvent("topup",{value:e,currency:"USD"})}Pt(!0);try{const t=await e.post("/api/user/stripe/pay",{amount:parseInt(Me),payment_method:"stripe"});if(void 0!==t){const{success:e,data:s,message:r}=t.data;if(e){if(s.order_id||s.trade_no||s.id){const e=s.order_id||s.trade_no||s.id;Xn(e,Be/7),v(C("支付窗口已打开,正在监控支付状态..."))}(e=>{window.open(e.pay_link,"_blank")})(s)}else a(r)}else a(t)}catch(t){a(C("支付请求失败"))}finally{tt(!1),Pt(!1)}}},onCancel:()=>{tt(!1)},maskClosable:!1,size:"small",centered:!0,confirmLoading:Et,children:[z.jsxs("p",{children:[C("充值数量"),":",Pn(Me)]}),z.jsxs("p",{children:[C("实付金额"),":",Gl()]}),z.jsx("p",{children:C("是否确认充值?")})]}),!yi&&z.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-6",children:[z.jsx("div",{className:"space-y-6 w-full "+(lt?"lg:col-span-7":"lg:col-span-12"),children:z.jsx("div",{children:z.jsx(ne,{className:"!rounded-2xl",shadows:"always",bordered:!1,header:z.jsx("div",{className:"px-5 py-4 pb-0",children:z.jsxs("div",{className:"flex items-center justify-between",children:[z.jsxs("div",{className:"flex items-center",children:[z.jsx(he,{className:"mr-3 shadow-md flex-shrink-0",color:"blue",children:z.jsx(Se,{size:24})}),z.jsxs("div",{children:[z.jsx(xt,{heading:5,style:{margin:0},children:C("在线充值")}),z.jsx(mt,{type:"tertiary",className:"text-sm",children:C("快速方便的充值方式")})]})]}),z.jsx("div",{className:"flex items-center",children:dn?z.jsx(ue.Paragraph,{style:{width:"120px"},rows:1}):z.jsx(mt,{type:"tertiary",className:"hidden sm:block",children:z.jsxs("div",{className:"flex items-center",children:[z.jsx(ze,{size:14,className:"mr-1"}),z.jsxs("span",{className:"hidden md:inline",children:[Bn()," (",R.user?C(S(R.user.role)):C("普通用户"),")"]}),z.jsx("span",{className:"md:hidden",children:Bn()})]})})})]})}),children:z.jsxs("div",{className:"space-y-4",children:[z.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-2",children:[z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsxs("div",{className:"flex justify-between items-start mb-1",children:[z.jsx(mt,{type:"tertiary",children:C("当前余额")}),pi&&!dn&&z.jsx(T,{type:"primary",size:"small",disabled:!wt||wt<=0,onClick:()=>{pn(!0),mn(j()),yn(null),Gn()},children:C("划转到用户")})]}),dn?z.jsx(ue.Title,{style:{width:"100px",height:"30px"}}):z.jsx("div",{className:"text-xl font-semibold mt-2",children:f(R?.user?.quota||wt)})]}),z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsx(mt,{type:"tertiary",className:"mb-1",children:C("历史消耗")}),dn?z.jsx(ue.Title,{style:{width:"100px",height:"30px"}}):z.jsx("div",{className:"text-xl font-semibold mt-2",children:f(R?.user?.used_quota||0)})]})]}),Or>0&&z.jsxs("div",{style:{display:"flex",gap:8,alignItems:"flex-start",padding:"10px 12px",background:"#fffbeb",border:"1px solid #fcd34d",borderRadius:8},children:[z.jsx(we,{size:16,style:{color:"#b45309",flexShrink:0,marginTop:2}}),z.jsxs("div",{children:[z.jsx(mt,{style:{color:"#92400e",fontSize:13},children:C("您有 {{amount}} 余额处于退款预扣状态,审核期间暂不可用。审核通过后正式退款。",{amount:f(Or)})}),z.jsx("div",{style:{marginTop:2},children:z.jsxs(mt,{link:!0,style:{fontSize:13},onClick:()=>{ie("6"),cl(1),document.getElementById("records-section")?.scrollIntoView({behavior:"smooth",block:"start"})},children:[C("查看退款记录")," →"]})})]})]}),H&&z.jsx(D,{type:"warning",closeIcon:null,className:"!rounded-2xl",description:z.jsxs("span",{children:[C("本站已停止充值,请前往新站完成充值。")," ",z.jsx("a",{href:Q,target:"_blank",rel:"noopener noreferrer",children:J})]})}),We&&!H&&z.jsxs(z.Fragment,{children:[st&&z.jsxs("div",{className:"mb-4",children:[z.jsx(mt,{strong:!0,className:"block mb-3",children:C("充值类型")}),dn?z.jsxs("div",{className:"flex gap-4",children:[z.jsx(ue.Title,{style:{width:"100px",height:"40px"}}),z.jsx(ue.Title,{style:{width:"120px",height:"40px"}})]}):z.jsxs("div",{className:"flex gap-4",children:[z.jsx(T,{type:"fixed"===Ai?"primary":"secondary",onClick:()=>
1{if(Ri("fixed"),zi.length>0){const e=zi[0].amount;$i(e),Fi(null)}},children:C("固定金额")}),z.jsx(T,{type:"custom"===Ai?"primary":"secondary",onClick:()=>{Ri("custom"),Fi(Pe),$i(null)},children:C("自定义金额")})]})]}),st&&"fixed"===Ai&&dn&&z.jsxs("div",{children:[z.jsx(ue.Title,{style:{width:"200px",height:"20px",marginBottom:"12px"}}),z.jsx("div",{className:"hidden sm:grid sm:grid-cols-2 gap-3 "+(lt?"md:grid-cols-4":"md:grid-cols-4 lg:grid-cols-5"),children:[1,2,3,4].map(e=>z.jsx(ue.Title,{style:{width:"100%",height:"80px"}},e))}),z.jsx("div",{className:"sm:hidden flex gap-3 overflow-x-auto",children:[1,2,3,4].map(e=>z.jsx(ue.Title,{style:{width:"112px",height:"80px",flexShrink:0}},e))})]}),st&&"fixed"===Ai&&!dn&&zi.length>0&&z.jsxs("div",{children:[z.jsxs(mt,{strong:!0,className:"block mb-3",children:[C("选择充值金额"),"(",C("享受批量折扣"),")"]}),z.jsx("div",{className:"hidden sm:grid sm:grid-cols-2 gap-3 "+(lt?"md:grid-cols-4":"md:grid-cols-4 lg:grid-cols-5"),children:zi.map((e,t)=>z.jsxs(ne,{onClick:()=>{$i(e.amount),Fi(null),Ri("fixed")},className:"cursor-pointer !rounded-2xl transition-all hover:shadow-md",style:{borderColor:Ti===e.amount?"hsl(var(--primary))":"hsl(var(--border))",backgroundColor:Ti===e.amount?"hsl(var(--primary) / 0.12)":"hsl(var(--card))"},bodyStyle:{textAlign:"center"},children:[z.jsx("div",{className:"font-medium text-lg flex items-center justify-center mb-1",children:Pn(e.amount)}),z.jsxs(mt,{type:"tertiary",className:"text-xs mb-1",children:[(10*e.discount).toFixed(2),C("折")]}),z.jsxs(mt,{type:"success",className:"text-xs",children:[C("节省")," ",(100*(1-e.discount)).toFixed(1),"%"]})]},t))}),z.jsxs("div",{className:"sm:hidden",children:[z.jsx("div",{className:"flex gap-3 overflow-x-auto pb-3 scrollbar-thin scrollbar-thumb-gray-300 scrollbar-track-gray-100",style:{scrollbarWidth:"thin",WebkitOverflowScrolling:"touch",scrollBehavior:"smooth"},children:zi.map((e,t)=>z.jsxs("div",{onClick:()=>{$i(e.amount),Fi(null),Ri("fixed")},className:"flex-shrink-0 w-28 cursor-pointer rounded-xl border-2 transition-all p-3 text-center "+(Ti===e.amount?"border-blue-500":"hover:opacity-80"),style:{backgroundColor:Ti===e.amount?"hsl(var(--primary) / 0.12)":"hsl(var(--card))",borderColor:Ti===e.amount?"hsl(var(--primary))":"hsl(var(--border))"},children:[z.jsx("div",{className:"font-bold text-base mb-1 flex items-center justify-center",children:z.jsx(mt,{strong:!0,children:Pn(e.amount)})}),z.jsxs(mt,{type:"tertiary",className:"text-xs mb-1",children:[(10*e.discount).toFixed(1),C("折")]}),z.jsxs(mt,{type:"success",className:"text-xs font-medium",children:[C("省")," ",(100*(1-e.discount)).toFixed(0),"%"]})]},t))}),zi.length>3&&z.jsxs(mt,{type:"tertiary",className:"text-xs mt-1 text-center block",children:["← ",C("左右滑动查看更多选项")," →"]})]})]}),"custom"===Ai&&z.jsxs("div",{children:[z.jsx(mt,{strong:!0,className:"block mb-3",children:C("自定义充值金额")}),dn?z.jsx(ue.Paragraph,{rows:1,style:{width:"100%",height:"40px"}}):z.jsx(ce,{placeholder:C("最低充值金额 {{symbol}}{{min}}",{symbol:En(),min:Pe}),value:qi,onChange:e=>{Fi(e),$i(null),Ri("custom")},min:Pe,size:"large",style:{width:"100%"},prefix:En()})]}),st&&z.jsxs("div",{className:"p-4 rounded-xl mt-4",style:{backgroundColor:"hsl(var(--foreground) / 0.02)",border:"1px solid hsl(var(--border))"},children:[(()=>{if(!gt)return null;const e=R?.user,t=e&&0===Number(e.parent_id)&&"string"==typeof e.star_level?e.star_level:"";if(!t)return null;const s=Number(e.star_level_price)>0?Number(e.star_level_price):0,r=s>0?s:Me>0&&Be>0?Be/Me:0;return z.jsxs("div",{className:"flex justify-between items-center mb-3 pb-3",style:{borderBottom:"1px dashed hsl(var(--border))"},children:[z.jsxs(O,{color:"amber",shape:"circle",size:"large",children:[C("星级用户")," · ",t]}),r>0&&z.jsxs(mt,{type:"warning",strong:!0,children:[C("专属单价")," ",En(),r.toFixed(3),"/",C("额度")]})]})})(),z.jsxs("div",{className:"flex justify-between items-center",children:[z.jsx(mt,{strong:!0,children:C("充值数量")}),z.jsx(mt,{type:"primary",strong:!0,className:"text-lg",children:Pn(Me||0)})]}),z.jsxs("div",{className:"flex justify-between items-center mt-2",children:[z.jsx(mt,{type:"secondary",children:C("实付金额")}),Ft?z.jsx(ue.Title,{style:{width:"80px",height:"20px"}}):z.jsx(mt,{type:"danger",strong:!0,className:"text-lg",children:Gl()})]}),Ti&&zi.find(e=>e.amount===Ti)&&z.jsxs("div",{className:"flex justify-between items-center mt-2",children:[z.jsx(mt,{type:"secondary",children:C("折扣")}),z.jsxs(mt,{type:"success",strong:!0,children:[(10*zi.find(e=>e.amount===Ti).discount).toFixed(2),C("折")]})]})]}),st&&z.jsxs("div",{children:[z.jsx(mt,{strong:!0,className:"block mb-3",children:C("选择支付方式")}),dn?z.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[z.jsx(ue.Title,{style:{width:"100%",height:"40px"}}),z.jsx(ue.Title,{style:{width:"100%",height:"40px"}})]}):2===Ot.length?z.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:Ot.map(e=>z.jsx(T,{type:"primary",onClick:()=>"stripe"===e.type?Hn():Kn(e.type),size:"large",disabled:"stripe"===e.type?!Ge:!We,loading:Rt&&It===e.type,icon:"zfb"===e.type?z.jsx(je,{size:16}):"wx"===e.type?z.jsx(fe,{size:16}):z.jsx(Se,{size:16}),style:{height:"40px",color:e.color},className:"transition-all hover:shadow-md w-full",children:z.jsx("span",{className:"ml-1",children:A(e)})},e.type))}):3===Ot.length?z.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3",children:Ot.map(e=>z.jsx(T,{type:"primary",onClick:()=>"stripe"===e.type?Hn():Kn(e.type),size:"large",disabled:"stripe"===e.type?!Ge:!We,loading:Rt&&It===e.type,icon:"zfb"===e.type?z.jsx(je,{size:16}):"wx"===e.type?z.jsx(fe,{size:16}):z.jsx(Se,{size:16}),style:{height:"40px",color:e.color},className:"transition-all hover:shadow-md w-full",children:z.jsx("span",{className:"ml-1",children:A(e)})},e.type))}):Ot.length>3?z.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:Ot.map(e=>z.jsx(ne,{onClick:()=>"stripe"===e.type?Hn():Kn(e.type),disabled:"stripe"===e.type?!Ge:!We,className:"cursor-pointer !rounded-xl p-0 transition-all hover:shadow-md",style:{borderColor:Rt&&It===e.type?"hsl(var(--primary))":"hsl(var(--border))",backgroundColor:"hsl(var(--card))"},bodyStyle:{padding:"10px",textAlign:"center",opacity:("stripe"===e.type?Ge:We)?1:.5},children:Rt&&It===e.type?z.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[z.jsx("div",{className:"mb-1",children:z.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2",style:{borderColor:"hsl(var(--primary))"}})}),z.jsx(mt,{type:"tertiary",className:"text-xs",children:C("处理中")})]}):z.jsxs(z.Fragment,{children:[z.jsx("div",{className:"flex items-center justify-center mb-1",children:"zfb"===e.type?z.jsx(je,{size:20,color:e.color}):"wx"===e.type?z.jsx(fe,{size:20,color:e.color}):z.jsx(Se,{size:20,color:e.color})}),z.jsx("div",{className:"text-sm font-medium",children:A(e)})]})},e.type))}):z.jsx("div",{className:"grid grid-cols-1 gap-3",children:Ot.map(e=>z.jsx(T,{type:"primary",onClick:()=>"stripe"===e.type?Hn():Kn(e.type),size:"large",disabled:"stripe"===e.type?!Ge:!We,loading:Rt&&It===e.type,icon:"zfb"===e.type?z.jsx(je,{size:16}):"wx"===e.type?z.jsx(fe,{size:16}):z.jsx(Se,{size:16}),style:{height:"40px",color:e.color},className:"transition-all hover:shadow-md w-full",children:z.jsx("span",{className:"ml-1",children:A(e)})},e.type))})]})]}),!H&&!dn&&V?.status&&!We&&!(Ge&&Ot.some(e=>"stripe"===e.type))&&z.jsx(D,{type:"warning",description:C("管理员未开启在线充值功能,请联系管理员开启或使用兑换码充值。"),closeIcon:null,className:"!rounded-2xl"}),!H&&z.jsxs(z.Fragment,{children:[z.jsx(pe,{style:{margin:"24px 0"},children:z.jsx(mt,{className:"text-sm font-medium",children:C("兑换码充值")})}),dn?z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsx(ue.Title,{style:{width:"180px",height:"20px",marginBottom:"16
1px"}}),z.jsx(ue.Paragraph,{rows:1,style:{width:"100%",height:"40px",marginBottom:"16px"}}),z.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[z.jsx(ue.Title,{style:{width:"100%",height:"40px"}}),z.jsx(ue.Title,{style:{width:"100%",height:"40px"}})]})]}):z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsxs("div",{className:"flex items-start mb-4",children:[z.jsx(Ne,{size:16,className:"mr-2 mt-0.5"}),z.jsx(mt,{strong:!0,children:C("使用兑换码快速充值")})]}),z.jsx("div",{className:"mb-4",children:z.jsx(G,{placeholder:C("请输入兑换码"),value:ge,onChange:e=>_e(e),size:"large"})}),z.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[Le&&z.jsx(T,{type:"secondary",onClick:()=>{Le?window.open(Le,"_blank"):a(C("超级管理员未设置充值链接!"))},size:"large",className:"flex-1",icon:z.jsx(Ce,{size:16}),style:{height:"40px"},children:C("获取兑换码")}),z.jsx(T,{type:"primary",onClick:async()=>{if(!Wn())if(""!==ge){Nt(!0);try{const t=await e.post("/api/user/topup",{key:ge}),{success:s,message:r,data:n}=t.data;if(s){if(i(C("兑换成功!")),$.success({title:C("兑换成功!"),content:C("成功兑换额度:{{quota}}",{quota:f(n)}),centered:!0}),kt(e=>e+n),R.user){const e={...R.user,quota:R.user.quota+n};P({type:"login",payload:e})}_e("")}else a(r)}catch(t){a(C("请求失败"))}finally{Nt(!1)}}else v(C("请输入兑换码")+"!")},disabled:St||!ge,loading:St,size:"large",className:"flex-1",style:{height:"40px"},children:C(St?"兑换中...":"兑换")})]})]})]})]})})})}),lt&&z.jsx("div",{className:"lg:col-span-5",children:z.jsx(ne,{className:"!rounded-2xl",shadows:"always",bordered:!1,header:z.jsx("div",{className:"px-5 py-4 pb-0",children:z.jsx("div",{className:"flex items-center justify-between",children:z.jsxs("div",{className:"flex items-center",children:[z.jsx(he,{className:"mr-3 shadow-md flex-shrink-0",color:"green",children:z.jsx(Ie,{size:24})}),z.jsxs("div",{children:[z.jsx(xt,{heading:5,style:{margin:0},children:C("邀请奖励")}),z.jsx(mt,{type:"tertiary",className:"text-sm",children:C("邀请好友获得额外奖励")})]})]})})}),children:dn?z.jsxs("div",{className:"space-y-6",children:[z.jsxs("div",{className:"grid grid-cols-1 gap-4",children:[z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsxs("div",{className:"flex justify-between items-center mb-2",children:[z.jsx(ue.Title,{style:{width:"80px",height:"16px"}}),z.jsxs("div",{className:"flex gap-2",children:[z.jsx(ue.Title,{style:{width:"90px",height:"32px"}}),z.jsx(ue.Title,{style:{width:"60px",height:"32px"}})]})]}),z.jsx(ue.Title,{style:{width:"120px",height:"32px",marginTop:"8px"}})]}),z.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsx(ue.Title,{style:{width:"60px",height:"16px"}}),z.jsx(ue.Title,{style:{width:"100px",height:"28px",marginTop:"8px"}})]}),z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsx(ue.Title,{style:{width:"70px",height:"16px"}}),z.jsx(ue.Title,{style:{width:"60px",height:"28px",marginTop:"8px"}})]})]}),z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsx(ue.Title,{style:{width:"80px",height:"16px"}}),z.jsx(ue.Paragraph,{rows:1,style:{marginTop:"8px"}})]})]}),z.jsxs("div",{className:"space-y-4",children:[z.jsx(ue.Title,{style:{width:"80px",height:"20px"}}),z.jsx(ue.Paragraph,{rows:1,style:{width:"100%",height:"40px"}}),z.jsx(ne,{className:"!rounded-2xl",children:z.jsx(ue.Paragraph,{rows:3})})]})]}):z.jsxs("div",{className:"space-y-6",children:[z.jsxs("div",{className:"grid grid-cols-1 gap-4",children:[z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsxs("div",{className:"flex justify-between items-center mb-2",children:[z.jsx(mt,{type:"tertiary",children:C("待使用收益")}),z.jsxs("div",{className:"flex gap-2",children:[z.jsx(T,{type:"primary",theme:"solid",size:"small",disabled:!R?.user?.aff_quota||R?.user?.aff_quota<=0,onClick:()=>Wt(!0),children:C("划转到余额")}),z.jsxs("div",{children:[z.jsx(T,{type:"warning",theme:"solid",size:"small",disabled:!R?.user?.aff_quota||R?.user?.aff_quota<=0,onClick:()=>{!0===Y?re(!0):(Z?.(),v(C("提现入口加载中,请稍候…")))},children:C("提现")}),!0===Y&&X&&(()=>{const e=X.banner_level,t=Number(X.remaining_withdrawable_rmb||0);return"danger"===e?z.jsxs("div",{style:{fontSize:11,color:"#f93920",marginTop:3,textAlign:"center"},children:["⛔ ",C("需补票")]}):"warning"===e?z.jsxs("div",{style:{fontSize:11,color:"#fc8800",marginTop:3,textAlign:"center"},children:["⚠ ",C("敞口预警")]}):z.jsxs("div",{style:{fontSize:11,color:"#0f9d58",marginTop:3,textAlign:"center"},children:["✓ Â¥",t.toFixed(0)]})})()]})]})]}),z.jsx("div",{className:"text-2xl font-semibold mt-2",children:z.jsxs(mt,{type:"success",className:"text-2xl font-semibold",children:["Â¥",Dn(rs||R?.user?.aff_quota||0)]})})]}),z.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsx(mt,{type:"tertiary",children:C("总收益")}),z.jsx("div",{className:"text-xl font-semibold mt-2",children:z.jsxs(mt,{type:"primary",className:"text-xl font-semibold",children:["Â¥",Dn(is||R?.user?.aff_history_quota||0)]})})]}),z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsx(mt,{type:"tertiary",children:C("邀请人数")}),z.jsxs("div",{className:"text-xl font-semibold mt-2 flex items-center",children:[z.jsx(Ie,{size:16,className:"mr-1"}),R?.user?.aff_count||ls]})]})]}),V?.status?.invite_reward_enabled&&z.jsxs(ne,{className:"!rounded-2xl",children:[z.jsxs("div",{className:"flex items-center justify-between mb-2",children:[z.jsx(mt,{type:"tertiary",children:C("奖励比例")}),z.jsx(I,{to:"/setting",children:z.jsxs(mt,{type:"primary",style:{fontSize:"16px"},children:[V?.status?.invite_reward_rate,"%"]})})]}),z.jsx(mt,{type:"secondary",className:"text-sm",children:C("邀请好友注册,好友充值前3次,您可获得返现。")})]})]}),V?.status?.invite_reward_enabled&&z.jsxs("div",{className:"space-y-4",children:[z.jsx(xt,{heading:6,children:C("邀请链接")}),z.jsx(G,{value:Dt,readonly:!0,size:"large",suffix:z.jsx(T,{type:"primary",theme:"light",onClick:async()=>{await s(Dt),i(C("邀请链接已复制到剪切板"))},icon:z.jsx(Te,{size:14}),children:C("复制")})}),z.jsx("div",{className:"mt-4",children:z.jsx(ne,{className:"!rounded-2xl",children:z.jsxs("div",{className:"space-y-4",children:[z.jsxs("div",{className:"flex items-start",children:[z.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 mr-3 flex-shrink-0",style:{backgroundColor:"hsl(var(--primary))"}}),z.jsx(mt,{type:"tertiary",className:"text-sm leading-6",children:C("邀请好友注册,好友充值后您可获得相应奖励")})]}),z.jsxs("div",{className:"flex items-start",children:[z.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 mr-3 flex-shrink-0",style:{backgroundColor:"hsl(var(--success))"}}),z.jsx(mt,{type:"tertiary",className:"text-sm leading-6",children:C("通过划转功能将奖励额度转入到您的账户ä½
1™é¢ä¸­")})]}),z.jsxs("div",{className:"flex items-start",children:[z.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 mr-3 flex-shrink-0",style:{backgroundColor:"hsl(var(--foreground) / 0.08)"}}),z.jsx(mt,{type:"tertiary",className:"text-sm leading-6",children:C("邀请的好友越多,获得的奖励越多")})]})]})})})]})]})})})]}),(ot||pt)&&z.jsx("div",{id:"records-section",className:"mt-8",children:z.jsx(ne,{className:"!rounded-2xl",shadows:"always",bordered:!1,children:z.jsxs(me,{type:"line",activeKey:ae,onChange:e=>{ie(e),"6"===e&&(al?Dl(1):cl(1))},children:[ot&&z.jsx(me.TabPane,{tab:C("充值记录"),itemKey:"1",children:z.jsxs("div",{style:{width:"100%"},children:[z.jsx("div",{style:{marginTop:20,marginBottom:20},children:z.jsx(po,{})}),z.jsx(ho,{}),z.jsx("div",{className:"overflow-x-auto scrollbar-thin scrollbar-thumb-gray-300 scrollbar-track-gray-100",style:{width:"100%",scrollbarWidth:"thin"},children:z.jsx(W,{columns:io,dataSource:fs,rowKey:"id",rowSelection:rl?{selectedRowKeys:_a,onChange:e=>{va(e),Cn(e)},getCheckboxProps:e=>({disabled:!vl(e)})}:jt&&!yi?{selectedRowKeys:Nn,onChange:(e,t)=>
1{if(t&&t.length>0){const e=R?.user?.id;if(t.some(t=>t.user_id!==e||"success"!==t.status||!eo(t)))return void K.error(C("只能选择属于自己的且已支付且为支付宝/微信支付的充值记录"))}Cn(e)},getCheckboxProps:e=>({disabled:"pending"!==e.invoice_status||e.is_invoiced||e.user_id!==R?.user?.id||"success"!==e.status||!eo(e)||"personal"===An&&!ft||"enterprise"===An&&!_t})}:null,loading:Mi||dn,pagination:{currentPage:vs,pageSize:ws,total:Ss,onChange:(e,t)=>{ks(t),nl(e,{search_type:Pi,keyword:Bi,order_search_type:Li,order_keyword:Wi,payment_method:Ki,status:Qi,scope:Xi,date_range:en,channel_id:sn})},showSizeChanger:!0,showQuickJumper:!0,showTotal:!0},style:{marginTop:"16px",width:"max-content",minWidth:"100%"}})})]})}),pt&&z.jsx(me.TabPane,{tab:C("提现记录"),itemKey:"2",children:z.jsxs(me,{type:"card",activeKey:Zs,onChange:e=>{er(e),"stats"!==e||xr||hr||ol()},children:[z.jsx(me.TabPane,{tab:C("提现记录明细"),itemKey:"detail",children:z.jsxs("div",{style:{width:"100%"},children:[z.jsx(yo,{}),z.jsxs(L,{style:{marginBottom:20},children:[z.jsx(T,{icon:z.jsx($e,{size:16}),onClick:()=>ll(),children:C("刷新")}),(mi||ci||yi)&&z.jsxs(z.Fragment,{children:[z.jsx(T,{icon:z.jsx(ke,{size:16}),onClick:async()=>{try{v(C("正在生成批量付款文件..."));const t=await e.get("/api/user/export_alipay_batch_payment",{responseType:"blob"}),s=t.headers["content-disposition"];let r="支付宝批量付款.xlsx";if(s){const e=s.match(/filename=(.+)/);e&&e[1]&&(r=decodeURIComponent(e[1]))}const a=window.URL.createObjectURL(new Blob([t.data])),n=document.createElement("a");n.href=a,n.setAttribute("download",r),document.body.appendChild(n),n.click(),n.remove(),window.URL.revokeObjectURL(a),i(C("批量付款文件已导出"))}catch(t){if(t.response&&t.response.data instanceof Blob){const e=await t.response.data.text();try{const t=JSON.parse(e);a(C(t.message||"导出失败"))}catch{a(C("导出失败"))}}else a(C("导出失败:{{message}}",{message:t.response?.data?.message||t.message}))}},type:"primary",theme:"solid",children:C("导出批量付款文件")}),z.jsx(T,{icon:z.jsx(ke,{size:16,style:{transform:"rotate(180deg)"}}),onClick:()=>{Ha(null),Va(!0)},type:"secondary",theme:"solid",children:C("导入回执单")}),z.jsx(T,{icon:z.jsx(qe,{size:16}),onClick:async()=>{await Kl(),ii(!0)},type:"tertiary",loading:ni,children:C("查看导入记录")})]})]}),z.jsx(W,{columns:no,dataSource:Fs,loading:dn||Js,style:{width:"100%"},pagination:{currentPage:Rs,pageSize:Es,total:Os,onChange:(e,t)=>
1{Ps(t),ll(e,{userId:Ds,alipay:Vs,status:Us,payeeType:Hs})},showSizeChanger:!0,showQuickJumper:!0,showTotal:!0}})]})}),(mi||ci||yi)&&z.jsx(me.TabPane,{tab:C("提现记录统计"),itemKey:"stats",children:z.jsxs("div",{style:{width:"100%"},children:[z.jsx(D,{type:"info",fullMode:!1,closeIcon:null,description:C("仅统计已处理(status=4)的提现记录,按处理时间(processed_at)归类。未指定时间范围时默认统计最近 12 个自然月。"),style:{marginTop:20}}),z.jsxs("div",{style:{marginTop:16,marginBottom:16},children:[z.jsx("div",{className:"block md:hidden",children:z.jsxs("div",{className:"space-y-3",children:[z.jsx(xe,{type:"dateRange",value:rr,onChange:e=>ar(e),placeholder:[C("开始日期"),C("结束日期")],style:{width:"100%"},size:"large",density:"compact"}),z.jsxs(ye.Group,{type:"button",value:tr,onChange:e=>sr(e.target.value),style:{width:"100%"},children:[z.jsx(ye,{value:"month",children:C("按月")}),z.jsx(ye,{value:"day",children:C("按天")})]}),z.jsx(G,{value:ur,onChange:e=>pr(e),placeholder:C("用户 ID(可选)"),showClear:!0,size:"large",onEnterPress:go}),z.jsxs("div",{className:"flex gap-2",children:[z.jsx(T,{type:"primary",onClick:go,loading:hr,style:{flex:1},size:"large",children:C("查询")}),z.jsx(T,{onClick:jo,loading:hr,style:{flex:1},size:"large",children:C("重置")})]})]})}),z.jsx("div",{className:"hidden md:block",children:z.jsxs(L,{spacing:8,wrap:!0,children:[z.jsx(xe,{type:"dateRange",value:rr,onChange:e=>ar(e),placeholder:[C("开始日期"),C("结束日期")],style:{width:260},density:"compact"}),z.jsxs(ye.Group,{type:"button",value:tr,onChange:e=>sr(e.target.value),children:[z.jsx(ye,{value:"month",children:C("按月")}),z.jsx(ye,{value:"day",children:C("按天")})]}),z.jsx(G,{value:ur,onChange:e=>pr(e),placeholder:C("用户 ID(可选)"),style:{width:160},showClear:!0,onEnterPress:go}),z.jsx(T,{type:"primary",onClick:go,loading:hr,children:C("查询")}),z.jsx(T,{onClick:jo,loading:hr,children:C("重置")})]})})]}),z.jsxs(te,{gutter:16,style:{marginBottom:16},children:[z.jsx(se,{xs:24,md:12,children:z.jsxs(ne,{className:"!rounded-2xl",bordered:!1,shadows:"hover",children:[z.jsx(mt,{type:"tertiary",children:C("总笔数")}),z.jsx(xt,{heading:3,style:{marginTop:8},children:lr})]})}),z.jsx(se,{xs:24,md:12,children:z.jsxs(ne,{className:"!rounded-2xl",bordered:!1,shadows:"hover",children:[z.jsx(mt,{type:"tertiary",children:C("总金额")}),z.jsxs(xt,{heading:3,style:{marginTop:8},children:["¥",Dn(dr)]})]})})]}),z.jsx(W,{columns:[{title:C("day"===tr?"日期":"月份"),dataIndex:"period"},{title:C("笔数"),dataIndex:"count",render:e=>Number(e)||0},{title:C("总金额"),dataIndex:"total_quota",render:e=>z.jsxs(mt,{children:["¥",Dn(Number(e)||0)]})}],dataSource:ir,rowKey:"period",loading:hr,pagination:!1,style:{width:"100%"},empty:C(xr?"该时间范围内没有已处理的提现记录":"点击「查询」加载统计数据")})]})})]})}),jt&&z.jsx(me.TabPane,{tab:C("开票记录"),itemKey:"3",children:z.jsxs("div",{style:{width:"100%"},children:[z.jsx(T,{icon:z.jsx($e,{size:16}),onClick:()=>dl(),style:{marginTop:20,marginBottom:20},children:C("刷新")}),z.jsx(W,{columns:uo,dataSource:gr,rowKey:"id",loading:Sr,style:{width:"100%"},pagination:{currentPage:fr,pageSize:vr,total:wr,onChange:(e,t)=>
1{br(t),dl(e)},showSizeChanger:!0,showQuickJumper:!0,showTotal:!0}}),z.jsx($,{title:C("订单号列表"),visible:Cr,onCancel:()=>zr(!1),footer:null,children:Array.isArray(Ir)&&Ir.length?z.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"20px 0"},children:Ir.map((e,t)=>z.jsx(O,{size:20,children:String(e)},t))}):C("暂无订单")})]})}),!0===Y&&z.jsx(me.TabPane,{tab:C("我的回票"),itemKey:"4",children:z.jsx(Ze,{dashboard:X,onChanged:()=>{Jn(),"function"==typeof Z&&Z()}})}),z.jsx(me.TabPane,{tab:C("退款记录"),itemKey:"6",children:z.jsx("div",{style:{width:"100%"},children:al?z.jsxs(z.Fragment,{children:[z.jsx(mo,{}),z.jsx(L,{style:{marginBottom:20},children:z.jsx(T,{icon:z.jsx($e,{size:16}),onClick:()=>Dl(za),children:C("刷新")})}),z.jsx(W,{columns:lo,dataSource:Na,rowKey:"id",loading:qa,style:{width:"100%"},pagination:{currentPage:za,pageSize:10,total:Ta,onChange:e=>Dl(e),showSizeChanger:!0,showQuickJumper:!0,showTotal:!0}})]}):z.jsxs(z.Fragment,{children:[z.jsx(xo,{}),z.jsx(L,{style:{marginBottom:20},children:z.jsx(T,{icon:z.jsx($e,{size:16}),onClick:()=>cl(1),children:C("刷新")})}),z.jsx(W,{columns:oo,dataSource:$r,rowKey:"id",loading:Er,style:{width:"100%"},pagination:{currentPage:Fr,pageSize:10,total:Rr,onChange:e=>cl(e),showTotal:!0}})]})})}),(yi||ci||mi)&&z.jsx(me.TabPane,{tab:C("对公代填主体"),itemKey:"corp_payee",children:z.jsx("div",{style:{width:"100%"},children:z.jsx(rt,{})})})]})})}),!yi&&We&&ln&&!H&&z.jsx("div",{className:"md:hidden fixed bottom-0 left-0 right-0 p-3 shadow-lg z-50 border-t",style:{background:"hsl(var(--background))"},children:z.jsxs("div",{className:"flex items-center justify-between",children:[z.jsxs("div",{className:"flex-1",children:[z.jsxs(mt,{type:"tertiary",className:"text-sm",children:[C("已选择")," ",Pn(Me||Pe)]}),z.jsx(mt,{type:"primary",className:"text-sm font-semibold",children:Ft?C("计算中..."):C("实付 {{amount}}",{amount:Gl()})})]}),z.jsxs("div",{className:"flex gap-2",children:[z.jsx(T,{type:"secondary",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})},size:"large",icon:z.jsx(Ne,{size:16}),children:C("返回充值")}),Ot.length>0&&Me>=Pe&&z.jsx(T,{type:"primary",onClick:()=>Kn(Ot[0]?.type),loading:Rt,disabled:Rt||!We,size:"large",icon:"zfb"===Ot[0]?.type?z.jsx(je,{size:16}):"wx"===Ot[0]?.type?z.jsx(fe,{size:16}):z.jsx(Se,{size:16}),children:C("快捷充值")})]})]})}),bn&&z.jsx(nt,{visible:bn,onClose:()=>{wn(!1),nl(),dl()},invoicePersonalEnabled:ft,invoiceEnterpriseEnabled:_t,invoiceMinAmount:vt,invoiceMaxAmount:bt,...kn})]});var fo,_o};export{gt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.