1import{j as e,l as L,m as H,v as ye,B as N,aR as Se,aY as Ce,M as Q,E as Ee,aH as be,aI as Ne,h as k,f as Re,T as ne,aJ as Ie,S as ve,C as Z,aE as X,aZ as De,R as ee,N as O,av as Te,aq as ke,n as Pe}from"./semi-ui-DaREz2Dk.js";import{r as f}from"./react-core-CbTnFS3E.js";import{C as Ae,u as ze,a as Fe}from"./useTableCompactMode-DOIw5EnW.js";import{C as _e}from"./CardTable-BJVnlf8o.js";import{r as ie,t as Me,c as re,b as Ue,A as P,s as b,a as $,a5 as qe,Q as Le,e as Ve,O as $e}from"./index-DIEzcWSf.js";import{w as Ke}from"./icons-B20TY-5b.js";import{d as te,q as G}from"./quota-DNYbWzTJ.js";import{u as le}from"./i18n-Bx9xRaoE.js";import"./tools-C_1hZ9u4.js";import"./react-components-BCk5goEb.js";const R={UNUSED:1,DISABLED:2,USED:3},oe={[R.UNUSED]:{color:"green",text:"æªä½¿ç¨"},[R.DISABLED]:{color:"red",text:"å·²ç¦ç¨"},[R.USED]:{color:"grey",text:"已使ç¨"}},M={DELETE:"delete",ENABLE:"enable",DISABLE:"disable"},J=t=>t.status===R.UNUSED&&t.expired_time!==0&&t.expired_time<Math.floor(Date.now()/1e3),se=t=>e.jsx(e.Fragment,{children:Me(t)}),Be=(t,s,n)=>{if(J(s))return e.jsx(L,{color:"orange",shape:"circle",children:n("å·²è¿æ")});const p=oe[t];return p?e.jsx(L,{color:p.color,shape:"circle",children:n(p.text)}):e.jsx(L,{color:"black",shape:"circle",children:n("æªç¥ç¶æ")})},Oe=({t,manageRedemption:s,copyText:n,setEditingRedemption:p,setShowEdit:m,refresh:h,redemptions:l,activePage:S,showDeleteRedemptionModal:w})=>[{title:t("ID"),dataIndex:"id"},{title:t("åç§°"),dataIndex:"name"},{title:t("ç¶æ"),dataIndex:"status",key:"status",render:(i,o)=>e.jsx("div",{children:Be(i,o,t)})},{title:t("é¢åº¦"),dataIndex:"quota",render:i=>e.jsx("div",{children:e.jsx(L,{color:"grey",shape:"circle",children:ie(parseInt(i))})})},{title:t("å建æ¶é´"),dataIndex:"created_time",render:i=>e.jsx("div",{children:se(i)})},{title:t("è¿ææ¶é´"),dataIndex:"expired_time",render:i=>e.jsx("div",{children:i===0?t("æ°¸ä¸è¿æ"):se(i)})},{title:t("å
æ¢äººID"),dataIndex:"used_user_id",render:i=>e.jsx("div",{children:i===0?t("æ "):i})},{title:"",dataIndex:"operate",fixed:"right",width:205,render:(i,o)=>{const C=[{node:"item",name:t("å é¤"),type:"danger",onClick:()=>{w(o)}}];return o.status===R.UNUSED&&!J(o)?C.push({node:"item",name:t("ç¦ç¨"),type:"warning",onClick:()=>{s(o.id,M.DISABLE,o)}}):J(o)||C.push({node:"item",name:t("å¯ç¨"),type:"secondary",onClick:()=>{s(o.id,M.ENABLE,o)},disabled:o.status===R.USED}
1),e.jsxs(H,{children:[e.jsx(ye,{content:o.key,style:{padding:20},position:"top",children:e.jsx(N,{type:"tertiary",size:"small",children:t("æ¥ç")})}),e.jsx(N,{size:"small",onClick:async()=>{await n(o.key)},children:t("å¤å¶")}),e.jsx(N,{type:"tertiary",size:"small",onClick:()=>{p(o),m(!0)},disabled:o.status!==R.UNUSED,children:t("ç¼è¾")}),e.jsx(Se,{trigger:"click",position:"bottomRight",menu:C,children:e.jsx(N,{type:"tertiary",size:"small",icon:e.jsx(Ce,{})})})]})}}],Qe=({visible:t,onCancel:s,record:n,manageRedemption:p,refresh:m,redemptions:h,activePage:l,t:S})=>{const w=async()=>{await p(n.id,M.DELETE,n),await m(),setTimeout(()=>{h.length===0&&l>1&&m(l-1)},100),s()};return e.jsx(Q,{title:S("ç¡®å®æ¯å¦è¦å 餿¤å æ¢ç ï¼"),visible:t,onCancel:s,onOk:w,type:"warning",children:S("æ¤ä¿®æ¹å°ä¸å¯é")})},Ge=t=>{const{redemptions:s,loading:n,activePage:p,pageSize:m,tokenCount:h,compactMode:l,handlePageChange:S,rowSelection:w,handleRow:i,manageRedemption:o,copyText:C,setEditingRedemption:v,setShowEdit:x,refresh:c,t:r}=t,[u,j]=f.useState(!1),[I,D]=f.useState(null),z=_=>{D(_),j(!0)},A=f.useMemo(()=>Oe({t:r,manageRedemption:o,copyText:C,setEditingRedemption:v,setShowEdit:x,refresh:c,redemptions:s,activePage:p,showDeleteRedemptionModal:z}),[r,o,C,v,x,c,s,p,z]),F=f.useMemo(()=>l?A.map(_=>{if(_.dataIndex==="operate"){const{fixed:U,...K}=_;return K}return _}):A,[l,A]);return e.jsxs(e.Fragment,{children:[e.jsx(_e,{columns:F,dataSource:s,scroll:l?void 0:{x:"max-content"},pagination:{currentPage:p,pageSize:m,total:h,showSizeChanger:!0,pageSizeOptions:[10,20,50,100],onPageSizeChange:t.handlePageSizeChange,onPageChange:S},hidePagination:!0,loading:n,rowSelection:w,onRow:i,empty:e.jsx(Ee,{image:e.jsx(Ne,{style:{width:150,height:150}}),darkModeImage:e.jsx(be,{style:{width:150,height:150}}),description:r("æç´¢æ ç»æ"),style:{padding:30}}),className:"rounded-xl overflow-hidden",size:"middle"}),e.jsx(Qe,{visible:u,onCancel:()=>j(!1),record:I,manageRedemption:o,refresh:c,redemptions:s,activePage:p,t:r})]})},He=({selectedKeys:t,setEditingRedemption:s,setShowEdit:n,batchCopyRedemptions:p,batchDeleteRedemptions:m,t:h})=>{const l=()=>{s({id:void 0}),n(!0)};return e.jsxs("div",{className:"flex flex-wrap gap-2 w-full md:w-auto order-2 md:order-1",children:[e.jsx(N,{type:"primary",className:"flex-1 md:flex-initial",onClick:l,size:"small",children:h("æ·»å å æ¢ç ")}),e.jsx(N,{type:"tertiary",className:"flex-1 md:flex-initial",onClick:p,size:"small",children:h("å¤å¶æéå æ¢ç å°åªè´´æ¿")}),e.jsx(N,{type:"danger",className:"w-full md:w-auto",onClick:m,size:"small",children:h("æ¸ é¤å¤±æå æ¢ç ")})]})},Je=({formInitValues:t,setFormApi:s,searchRedemptions:n,loading:p,searching:m,t:h})=>{const l=f.useRef(null),S=[{value:"",label:h("å ¨é¨ç¶æ")},...Object.entries(oe).map(([i,o])=>({value:i,label:h(o.text)})),{value:"expired",label:h("å·²è¿æ")}],w=()=>{l.current&&(l.current.reset(),setTimeout(()=>{n()},100))};return e.jsx(k,{initValues:t,getFormApi:i=>{s(i),l.current=i},onSubmit:n,allowEmpty:!0,autoComplete:"off",layout:"horizontal",trigger:"change",stopValidateWithError:!1,className:"w-full md:w-auto order-1 md:order-2",children:e.jsxs("div",{className:"flex flex-col md:flex-row items-center gap-2 w-full md:w-auto",children:[e.jsx("div",{className:"relative w-full md:w-64",children:e.jsx(k.Input,{field:"searchKeyword",prefix:e.jsx(Re,{}),placeholder:h("å ³é®å(id/åç§°/å æ¢ç )"),showClear:!0,pure:!0,size:"small"})}),e.jsx("div",{className:"w-full md:w-36",children:e.jsx(k.Select,{field:"statusFilter",optionList:S,placeholder:h("å ¨é¨ç¶æ"),pure:!0,size:"small",style:{width:"100%"}})}),e.jsxs("div",{className:"flex gap-2 w-full md:w-auto",children:[e.jsx(N,{type:"tertiary",htmlType:"submit",loading:p||m,className:"flex-1 md:flex-initial md:w-auto",size:"small",children:h("æ¥è¯¢")}),e.jsx(N,{type:"tertiary",onClick:w,className:"flex-1 md:flex-initial md:w-auto",size:"small",children:h("éç½®")})]})]})})},{Text:We}=ne,Ye=({compactMode:t,setCompactMode:s,t:n})=>e.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center gap-2 w-full",children:[e.jsxs("div",{className:"flex items-center text-orange-500",children:[e.jsx(Ke,{size:16,className:"mr-2"}),e.jsx(We,{children:n("å æ¢ç 管ç")})]}),e.jsx(Ae,{compactMode:t,setCompactMode:s,t:n})]}),{Text:ae,Title:Ze}=ne,Xe=t=>{const{t:s}=le(),n=t.editingRedemption.id!==void 0,[p,m]=f.useState(n),h=re(),l=f.useRef(null),[S,w]=f.useState(!1),i=()=>({name:"",quota:1e5,amount:Number(G(1e5).toFixed(6)),count:1,expired_time:null}),o=()=>{t.handleClose()},C=async()=>{var j;m(!0);let x=await P.get(`/api/redemption/${t.editingRedemption.id}`);const{success:c,message:r,data:u}=x.data;c?(u.expired_time===0?u.expired_time=null:u.expired_time=new Date(u.expired_time*1e3),u.amount=Number(G(u.quota||0).toFixed(6)),(j=l.current)==null||j.setValues({...i(),...u})):b(r),m(!1)};f.useEffect(()=>{l.current&&(n?C():l.current.setValues(i()))},[t.editingRedemption.id]);const v=async x=>{var z;let c=x.name;!n&&(!c||c==="")&&(c=ie(x.quota)),m(!0);let r={...x};if(r.count=parseInt(r.count)||0,r.quota=te(r.amount),r.quota<=0){b(s("请è¾å ¥éé¢")),m(!1);return}r.name=c,r.expired_time?r.expired_time=Math.floor(r.expired_time.getTime()/1e3):r.expired_time=0;let u;n?u=await P.put("/api/redemption/",{...r,id:parseInt(t.editingRedemption.id)}):u=await P.post("/api/redemption/",{...r});const{success:j,message:I,data:D}=u.data;if(j?n?($(s("å æ¢ç æ´æ°æåï¼")),t.refresh(),t.handleClose()):($(s("å æ¢ç å建æåï¼")),t.refresh(),(z=l.current)==null||z.setValues(i()),t.handleClose()):b(I),!n&&D){let A="";for(let F=0;F<D.length;F++)A+=D[F]+` 2`;Q.confirm({title:s("å æ¢ç å建æå"),content:e.jsxs("div",{children:[e.jsx("p",{children:s("å æ¢ç å建æåï¼æ¯å¦ä¸è½½å æ¢ç ï¼")}),e.jsx("p",{children:s("å æ¢ç å°ä»¥ææ¬æä»¶çå½¢å¼ä¸è½½ï¼æä»¶åä¸ºå æ¢ç çåç§°ã")})]}),onOk:()=>{qe(A,`${r.name}.txt`)}})}m(!1)};return e.jsx(e.Fragment,{children:e.jsx(Ie,{placement:n?"right":"left",title:e.jsxs(H,{
2children:[n?e.jsx(L,{color:"blue",shape:"circle",children:s("æ´æ°")}):e.jsx(L,{color:"green",shape:"circle",children:s("æ°å»º")}),e.jsx(Ze,{heading:4,className:"m-0",children:s(n?"æ´æ°å
æ¢ç ä¿¡æ¯":"å建æ°çå
æ¢ç ")})]}),bodyStyle:{padding:"0"},visible:t.visiable,width:h?"100%":600,footer:e.jsx("div",{className:"flex justify-end bg-white",children:e.jsxs(H,{children:[e.jsx(N,{theme:"solid",onClick:()=>{var x;return(x=l.current)==null?void 0:x.submitForm()},icon:e.jsx(ke,{}),loading:p,children:s("æäº¤")}),e.jsx(N,{theme:"light",type:"primary",onClick:o,icon:e.jsx(Pe,{}),children:s("åæ¶")})]})}),closeIcon:null,onCancel:()=>o(),children:e.jsx(ve,{spinning:p,children:e.jsx(k,{initValues:i(),getFormApi:x=>l.current=x,onSubmit:v,children:({values:x})=>e.jsxs("div",{className:"p-2",children:[e.jsxs(Z,{className:"!rounded-2xl shadow-sm border-0 mb-6",children:[e.jsxs("div",{className:"flex items-center mb-2",children:[e.jsx(X,{size:"small",color:"blue",className:"mr-2 shadow-md",children:e.jsx(De,{size:16})}),e.jsxs("div",{children:[e.jsx(ae,{className:"text-lg font-medium",children:s("åºæ¬ä¿¡æ¯")}),e.jsx("div",{className:"text-xs text-gray-600",children:s("设置å
æ¢ç çåºæ¬ä¿¡æ¯")})]})]}),e.jsxs(ee,{gutter:12,children:[e.jsx(O,{span:24,children:e.jsx(k.Input,{field:"name",label:s("åç§°"),placeholder:s("请è¾å
¥åç§°"),style:{width:"100%"},rules:n?[{required:!0,message:s("请è¾å
¥åç§°")}]:[],showClear:!0})}),e.jsx(O,{span:24,children:e.jsx(k.DatePicker,{field:"expired_time",label:s("è¿ææ¶é´"),type:"dateTime",placeholder:s("éæ©è¿ææ¶é´ï¼å¯éï¼ç空为永ä¹
ï¼"),style:{width:"100%"},showClear:!0})})]})]}),e.jsxs(Z,{className:"!rounded-2xl shadow-sm border-0",children:[e.jsxs("div",{className:"flex items-center mb-2",children:[e.jsx(X,{size:"small",color:"green",className:"mr-2 shadow-md",children:e.jsx(Te,{size:16})}),e.jsxs("div",{children:[e.jsx(ae,{className:"text-lg font-medium",children:s("é¢åº¦è®¾ç½®")}),e.jsx("div",{className:"text-xs text-gray-600",children:s("设置å
æ¢ç çé¢åº¦åæ°é")})]})]}),e.jsxs(ee,{gutter:12,children:[e.jsxs(O,{span:24,children:[e.jsx(k.InputNumber,{field:"amount",label:s("éé¢"),prefix:Ue().symbol,placeholder:s("è¾å
¥éé¢"),precision:6,min:0,step:1e-6,style:{width:"100%"},onChange:c=>{var u,j;const r=c===""||c==null?0:c;(u=l.current)==null||u.setValue("amount",r),(j=l.current)==null||j.setValue("quota",te(r))},showClear:!0}),e.jsx("div",{className:"text-xs cursor-pointer mt-1",style:{color:"var(--semi-color-text-2)"},onClick:()=>w(c=>!c),children:S?`â¾ ${s("æ¶èµ·åçé¢åº¦è¾å
¥")}`:`⸠${s("使ç¨åçé¢åº¦è¾å
¥")}`}),e.jsx("div",{style:{display:S?"block":"none"},className:"mt-2",children:e.jsx(k.InputNumber,{field:"quota",label:s("é¢åº¦"),placeholder:s("è¾å
¥é¢åº¦"),rules:[{required:!0,message:s("请è¾å
¥é¢åº¦")},{validator:(c,r)=>parseInt(r,10)>0?Promise.resolve():Promise.reject(s("é¢åº¦å¿
须大äº0"))}],onChange:c=>{var u,j;const r=c===""||c==null?0:c;(u=l.current)==null||u.setValue("quota",r),(j=l.current)==null||j.setValue("amount",Number(G(r).toFixed(6)))},style:{width:"100%"},showClear:!0})})]}),!n&&e.jsx(O,{span:12,children:e.jsx(k.InputNumber,{field:"count",label:s("çææ°é"),min:1,rules:[{required:!0,message:s("请è¾å
¥çææ°é")},{validator:(c,r)=>parseInt(r,10)>0?Promise.resolve():Promise.reject(s("çææ°éå¿
须大äº0"))}],style:{width:"100%"},showClear:!0})})]})]})]})})})})})},et=()=>{const{t}=le(),[s,n]=f.useState([]),[p,m]=f.useState(!0),[h,l]=f.useState(!1),[S,w]=f.useState(1),[i,o]=f.useState(Le),[C,v]=f.useState(0),[x,c]=f.useState([]),[r,u]=f.useState({id:void 0}),[j,I]=f.useState(!1),[D,z]=f.useState(null),[A,F]=ze("redemptions"),_={searchKeyword:"",statusFilter:""},U=()=>{const a=D?D.getValues():{};return{searchKeyword:a.searchKeyword||"",statusFilter:a.statusFilter||""}},K=a=>{n(a)},q=async(a=1,d)=>{m(!0);try{const g=await P.get(`/api/redemption/?p=${a}&page_size=${d}`),{success:y,message:T,data:E}=g.data;if(y){const V=E.items;w(E.page<=0?1:E.page),v(E.total),K(V)}else b(T)}catch(g){b(g.message)}m(!1)},B=async()=>{const{searchKeyword:a,statusFilter:d}=U();if(a===""&&d===""){await q(1,i);return}l(!0);try{const g=await P.get(`/api/redemption/search?keyword=${a}&status=${d}&p=1&page_size=${i}`),{success:y,message:T,data:E}=g.data;if(y){const V=E.items;w(E.page||1),v(E.total),K(V)}else b(T)}catch(g){b(g.message)}l(!1)},de=async(a,d,g)=>{m(!0);let y={id:a},T;try{switch(d){case M.DELETE:T=await P.delete(`/api/redemption/${a}/`);break;case M.ENABLE:y.status=R.UNUSED,T=await P.put("/api/redemption/?status_only=true",y);break;case M.DISABLE:y.status=R.DISABLED,T=await P.put("/api/redemption/?status_only=true",y);break;default:throw new Error("Unknown operation type")}const{success:E,message:V}=T.data;if(E){$(t("æä½æå宿ï¼"));let we=T.data.data,je=[...s];d!==M.DELETE&&(g.status=we.status),n(je)}else b(V)}catch(E){b(E.message)}m(!1)},W=async(a=S)=>{const{searchKeyword:d,statusFilter:g}=U();d===""&&g===""?await q(a,i):await B()},ce=a=>{w(a);const{searchKeyword:d,statusFilter:g}=U();d===""&&g===""?q(a,i):B()},me=a=>{o(a),w(1);const{searchKeyword:d,statusFilter:g}=U();d===""&&g===""?q(1,a):B()},ue={onSelect:(a,d)=>{},onSelectAll:(a,d)=>{},onChange:(a,d)=>{c(d)}},pe=(a,d)=>{const g=y=>y.status===R.UNUSED&&y.expired_time!==0&&y.expired_time<Math.floor(Date.now()/1e3);return a.status!==R.UNUSED||g(a)?{style:{background:"var(--semi-color-disabled-border)"}}:{}},Y=async a=>{await Ve(a)?$("å·²å¤å¶å°åªè´´æ¿ï¼"):Q.error({title:"æ æ³å¤å¶å°åªè´´æ¿ï¼è¯·æå¨å¤å¶",content:a,size:"large"})},he=async()=>
2{if(x.length===0){b(t("请è³å°éæ©ä¸ä¸ªå æ¢ç ï¼"));return}let a="";for(let d=0;d<x.length;d++)a+=x[d].name+" "+x[d].key+` 3`;await Y(a)},xe=async()=>{Q.confirm({title:t("ç¡®å®æ¸ 餿æå¤±æå æ¢ç ï¼"),content:t("å°å é¤å·²ä½¿ç¨ãå·²ç¦ç¨åè¿æçå æ¢ç ï¼æ¤æä½ä¸å¯æ¤éã"),onOk:async()=>{m(!0);const a=await P.delete("/api/redemption/invalid"),{success:d,message:g,data:y}=a.data;d?($(t("å·²å é¤ {{count}} æ¡å¤±æå æ¢ç ",{count:y})),await W()):b(g),m(!1)}})},ge=()=>{I(!1),setTimeout(()=>{u({id:void 0})},500)},fe=a=>{let d=[...s];if(a!=null){let g=d.findIndex(y=>y.key===a);g>-1&&(d.splice(g,1),n(d))}};return f.useEffect(()=>{q(1,i).then().catch(a=>{b(a)})},[i]),{redemptions:s,loading:p,searching:h,activePage:S,pageSize:i,tokenCount:C,selectedKeys:x,editingRedemption:r,showEdit:j,formApi:D,formInitValues:_,compactMode:A,setCompactMode:F,loadRedemptions:q,searchRedemptions:B,manageRedemption:de,refresh:W,copyText:Y,removeRecord:fe,setActivePage:w,setPageSize:o,setSelectedKeys:c,setEditingRedemption:u,setShowEdit:I,setFormApi:z,setLoading:m,handlePageChange:ce,handlePageSizeChange:me,rowSelection:ue,handleRow:pe,closeEdit:ge,getFormValues:U,batchCopyRedemptions:he,batchDeleteRedemptions:xe,t}},tt=()=>{const t=et(),s=re(),{showEdit:n,editingRedemption:p,closeEdit:m,refresh:h,selectedKeys:l,setEditingRedemption:S,setShowEdit:w,batchCopyRedemptions:i,batchDeleteRedemptions:o,formInitValues:C,setFormApi:v,searchRedemptions:x,loading:c,searching:r,compactMode:u,setCompactMode:j,t:I}=t;return e.jsxs(e.Fragment,{children:[e.jsx(Xe,{refresh:h,editingRedemption:p,visiable:n,handleClose:m}),e.jsx(Fe,{type:"type1",descriptionArea:e.jsx(Ye,{compactMode:u,setCompactMode:j,t:I}),actionsArea:e.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center gap-2 w-full",children:[e.jsx(He,{selectedKeys:l,setEditingRedemption:S,setShowEdit:w,batchCopyRedemptions:i,batchDeleteRedemptions:o,t:I}),e.jsx("div",{className:"w-full md:w-full lg:w-auto order-1 md:order-2",children:e.jsx(Je,{formInitValues:C,setFormApi:v,searchRedemptions:x,loading:c,searching:r,t:I})})]}),paginationArea:$e({currentPage:t.activePage,pageSize:t.pageSize,total:t.tokenCount,onPageChange:t.handlePageChange,onPageSizeChange:t.handlePageSizeChange,isMobile:s,t:t.t}),t:t.t,children:e.jsx(Ge,{...t})})]})},ut=()=>e.jsx("div",{className:"px-2",children:e.jsx(tt,{})});export{ut 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.