Files
GPT_Management/backend/internal/static/dist/assets/CardKeysPage-D_yaQdwx.js

3 lines
28 KiB
JavaScript

import{d as I,q as A,p as Ce,A as Je,a as $,o as h,w as l,b as t,u as e,P as Y,x as M,B as We,C as Xe,D,h as S,i as U,F as E,s as X,E as qe,g as ee,G as Ye,H as Qe,c as re,n as Ze,v as ne,I as Se,J as Ve,y as K,r as C,j as k,f as x,_ as j,e as b,t as B,K as ea}from"./index-Dn7IzCAm.js";import{_ as aa,a as ta,b as la,c as sa}from"./CardTitle.vue_vue_type_script_setup_true_lang-nfBPK_e7.js";import{_ as J,a as W}from"./Label.vue_vue_type_script_setup_true_lang--UC5tvAY.js";import{B as ue,C as oe,D as de,E as te,F as na,G as ua,H as oa,V as ra,I as Be,P as ia,J as Ae,K as da,_ as ca,T as ce,a as fa,b as va,c as fe,d as O,e as pa,f as ma,g as ya,h as _a,i as ba,j as ha,k as ga,l as wa,m as ka,n as xa,o as $a,p as Ca,q as qa,r as Sa,s as Va,t as Ba,u as Aa,v as Ea,w as P,x as Ra,y as Ia,z as Fa,A as Ta}from"./PaginationPrevious.vue_vue_type_script_setup_true_lang-Cpcjkb4w.js";import{u as le,a as Ee,r as Re,L as ve}from"./index-DTrJzHuX.js";import{_ as pe,a as me,P as ja,b as ye,c as _e,d as be,e as he,f as ge}from"./DialogTrigger.vue_vue_type_script_setup_true_lang-z4mExhxq.js";import{_ as Ua}from"./Skeleton.vue_vue_type_script_setup_true_lang-BCg0BhRz.js";function we(i,s){return ue(i)?!1:Array.isArray(i)?i.some(n=>oe(n,s)):oe(i,s)}const Da={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function La(i,s){return s!=="rtl"?i:i==="ArrowLeft"?"ArrowRight":i==="ArrowRight"?"ArrowLeft":i}function Oa(i,s,n){const v=La(i.key,n);if(!(s==="vertical"&&["ArrowLeft","ArrowRight"].includes(v))&&!(s==="horizontal"&&["ArrowUp","ArrowDown"].includes(v)))return Da[v]}function Pa(i,s=!1){const n=de();for(const v of i)if(v===n||(v.focus({preventScroll:s}),de()!==n))return}function Ma(i,s){return i.map((n,v)=>i[(s+v)%i.length])}const[za]=te("RovingFocusGroup");var Ha=I({__name:"RovingFocusItem",props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const s=i,n=za(),v=na(),m=A(()=>s.tabStopId||v),_=A(()=>n.currentTabStopId.value===m.value),{getItems:d,CollectionItem:w}=ua();Ce(()=>{s.focusable&&n.onFocusableItemAdd()}),Je(()=>{s.focusable&&n.onFocusableItemRemove()});function g(u){if(u.key==="Tab"&&u.shiftKey){n.onItemShiftTab();return}if(u.target!==u.currentTarget)return;const c=Oa(u,n.orientation.value,n.dir.value);if(c!==void 0){if(u.metaKey||u.ctrlKey||u.altKey||!s.allowShiftKey&&u.shiftKey)return;u.preventDefault();let f=[...d().map(y=>y.ref).filter(y=>y.dataset.disabled!=="")];if(c==="last")f.reverse();else if(c==="prev"||c==="next"){c==="prev"&&f.reverse();const y=f.indexOf(u.currentTarget);f=n.loop.value?Ma(f,y+1):f.slice(y+1)}We(()=>Pa(f))}}return(u,c)=>(h(),$(e(w),null,{default:l(()=>[t(e(Y),{tabindex:_.value?0:-1,"data-orientation":e(n).orientation.value,"data-active":u.active?"":void 0,"data-disabled":u.focusable?void 0:"",as:u.as,"as-child":u.asChild,onMousedown:c[0]||(c[0]=f=>{u.focusable?e(n).onItemFocus(m.value):f.preventDefault()}),onFocus:c[1]||(c[1]=f=>e(n).onItemFocus(m.value)),onKeydown:g},{default:l(()=>[M(u.$slots,"default")]),_:3},8,["tabindex","data-orientation","data-active","data-disabled","as","as-child"])]),_:3}))}}),Na=Ha,Ka=I({inheritAttrs:!1,__name:"VisuallyHiddenInputBubble",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(i){const s=i,{primitiveElement:n,currentElement:v}=oa(),m=A(()=>s.checked??s.value);return Xe(m,(_,d)=>{if(!v.value)return;const w=v.value,g=window.HTMLInputElement.prototype,c=Object.getOwnPropertyDescriptor(g,"value").set;if(c&&_!==d){const f=new Event("input",{bubbles:!0}),y=new Event("change",{bubbles:!0});c.call(w,_),w.dispatchEvent(f),w.dispatchEvent(y)}}),(_,d)=>(h(),$(ra,D({ref_key:"primitiveElement",ref:n},{...s,..._.$attrs},{as:"input"}),null,16))}}),ke=Ka,Ga=I({inheritAttrs:!1,__name:"VisuallyHiddenInput",props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:"fully-hidden"}},setup(i){const s=i,n=A(()=>typeof s.value=="object"&&Array.isArray(s.value)&&s.value.length===0&&s.required),v=A(()=>typeof s.value=="string"||typeof s.value=="number"||typeof s.value=="boolean"||s.value===null||s.value===void 0?[{name:s.name,value:s.value}]:typeof s.value=="object"&&Array.isArray(s.value)?s.value.flatMap((m,_)=>typeof m=="object"?Object.entries(m).map(([d,w])=>({name:`${s.name}[${_}][${d}]`,value:w})):{name:`${s.name}[${_}]`,value:m}):s.value!==null&&typeof s.value=="object"&&!Array.isArray(s.value)?Object.entries(s.value).map(([m,_])=>({name:`${s.name}[${m}]`,value:_})):[]);return(m,_)=>(h(),S(E,null,[U(" We render single input if it's required "),n.value?(h(),$(ke,D({key:m.name},{...s,...m.$attrs},{name:m.name,value:m.value}),null,16,["name","value"])):(h(!0),S(E,{key:1},X(v.value,d=>(h(),$(ke,D({key:d.name},{ref_for:!0},{...s,...m.$attrs},{name:d.name,value:d.value}),null,16,["name","value"]))),128))],2112))}}),Ie=Ga;const[Ja]=te("CheckboxGroupRoot");function ae(i){return i==="indeterminate"}function Fe(i){return ae(i)?"indeterminate":i?"checked":"unchecked"}const[Wa,Xa]=te("CheckboxRoot");var Ya=I({inheritAttrs:!1,__name:"CheckboxRoot",props:{defaultValue:{type:[Boolean,String],required:!1},modelValue:{type:[Boolean,String,null],required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:"on"},id:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(i,{emit:s}){const n=i,v=s,{forwardRef:m,currentElement:_}=le(),d=Ja(null),w=Ee(n,"modelValue",v,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),g=A(()=>d?.disabled.value||n.disabled),u=A(()=>ue(d?.modelValue.value)?w.value==="indeterminate"?"indeterminate":w.value:we(d.modelValue.value,n.value));function c(){if(ue(d?.modelValue.value))w.value=ae(w.value)?!0:!w.value;else{const p=[...d.modelValue.value||[]];if(we(p,n.value)){const R=p.findIndex(z=>oe(z,n.value));p.splice(R,1)}else p.push(n.value);d.modelValue.value=p}}const f=Be(_),y=A(()=>n.id&&_.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return Xa({disabled:g,state:u}),(p,R)=>(h(),$(Ye(e(d)?.rovingFocus.value?e(Na):e(Y)),D(p.$attrs,{id:p.id,ref:e(m),role:"checkbox","as-child":p.asChild,as:p.as,type:p.as==="button"?"button":void 0,"aria-checked":e(ae)(u.value)?"mixed":u.value,"aria-required":p.required,"aria-label":p.$attrs["aria-label"]||y.value,"data-state":e(Fe)(u.value),"data-disabled":g.value?"":void 0,disabled:g.value,focusable:e(d)?.rovingFocus.value?!g.value:void 0,onKeydown:qe(ee(()=>{},["prevent"]),["enter"]),onClick:c}),{default:l(()=>[M(p.$slots,"default",{modelValue:e(w),state:u.value}),e(f)&&p.name&&!e(d)?(h(),$(e(Ie),{key:0,type:"checkbox",checked:!!u.value,name:p.name,value:p.value,disabled:g.value,required:p.required},null,8,["checked","name","value","disabled","required"])):U("v-if",!0)]),_:3},16,["id","as-child","as","type","aria-checked","aria-required","aria-label","data-state","data-disabled","disabled","focusable","onKeydown"]))}}),Qa=Ya,Za=I({__name:"CheckboxIndicator",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const{forwardRef:s}=le(),n=Wa();return(v,m)=>(h(),$(e(ia),{present:v.forceMount||e(ae)(e(n).state.value)||e(n).state.value===!0},{default:l(()=>[t(e(Y),D({ref:e(s),"data-state":e(Fe)(e(n).state.value),"data-disabled":e(n).disabled.value?"":void 0,style:{pointerEvents:"none"},"as-child":v.asChild,as:v.as},v.$attrs),{default:l(()=>[M(v.$slots,"default")]),_:3},16,["data-state","data-disabled","as-child","as"])]),_:3},8,["present"]))}}),et=Za;const[at,tt]=te("SwitchRoot");var lt=I({__name:"SwitchRoot",props:{defaultValue:{type:Boolean,required:!1},modelValue:{type:[Boolean,null],required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:"on"},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:["update:modelValue"],setup(i,{emit:s}){const n=i,v=s,{disabled:m}=Qe(n),_=Ee(n,"modelValue",v,{defaultValue:n.defaultValue,passive:n.modelValue===void 0});function d(){m.value||(_.value=!_.value)}const{forwardRef:w,currentElement:g}=le(),u=Be(g),c=A(()=>n.id&&g.value?document.querySelector(`[for="${n.id}"]`)?.innerText:void 0);return tt({modelValue:_,toggleCheck:d,disabled:m}),(f,y)=>(h(),$(e(Y),D(f.$attrs,{id:f.id,ref:e(w),role:"switch",type:f.as==="button"?"button":void 0,value:f.value,"aria-label":f.$attrs["aria-label"]||c.value,"aria-checked":e(_),"aria-required":f.required,"data-state":e(_)?"checked":"unchecked","data-disabled":e(m)?"":void 0,"as-child":f.asChild,as:f.as,disabled:e(m),onClick:d,onKeydown:qe(ee(d,["prevent"]),["enter"])}),{default:l(()=>[M(f.$slots,"default",{modelValue:e(_)}),e(u)&&f.name?(h(),$(e(Ie),{key:0,type:"checkbox",name:f.name,disabled:e(m),required:f.required,value:f.value,checked:!!e(_)},null,8,["name","disabled","required","value","checked"])):U("v-if",!0)]),_:3},16,["id","type","value","aria-label","aria-checked","aria-required","data-state","data-disabled","as-child","as","disabled","onKeydown"]))}}),st=lt,nt=I({__name:"SwitchThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(i){const s=at();return le(),(n,v)=>(h(),$(e(Y),{"data-state":e(s).modelValue?.value?"checked":"unchecked","data-disabled":e(s).disabled.value?"":void 0,"as-child":n.asChild,as:n.as},{default:l(()=>[M(n.$slots,"default")]),_:3},8,["data-state","data-disabled","as-child","as"]))}}),ut=nt;const ot=re("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const rt=re("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);const it=re("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]),dt=I({__name:"Switch",props:{defaultValue:{type:Boolean},modelValue:{type:[Boolean,null]},disabled:{type:Boolean},id:{},value:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:["update:modelValue"],setup(i,{emit:s}){const n=i,v=s,m=Re(n,"class"),_=Ae(m,v);return(d,w)=>(h(),$(e(st),D({"data-slot":"switch"},e(_),{class:e(ne)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",n.class)}),{default:l(g=>[t(e(ut),{"data-slot":"switch-thumb",class:Ze(e(ne)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"))},{default:l(()=>[M(d.$slots,"thumb",Se(Ve(g)))]),_:2},1032,["class"])]),_:3},16,["class"]))}}),xe=I({__name:"Checkbox",props:{defaultValue:{type:[Boolean,String]},modelValue:{type:[Boolean,String,null]},disabled:{type:Boolean},value:{},id:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:["update:modelValue"],setup(i,{emit:s}){const n=i,v=s,m=Re(n,"class"),_=Ae(m,v);return(d,w)=>(h(),$(e(Qa),D({"data-slot":"checkbox"},e(_),{class:e(ne)("peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",n.class)}),{default:l(g=>[t(e(et),{"data-slot":"checkbox-indicator",class:"grid place-content-center text-current transition-none"},{default:l(()=>[M(d.$slots,"default",Se(Ve(g)),()=>[t(e(da),{class:"size-3.5"})])]),_:2},1024)]),_:3},16,["class"]))}});function ct(i){const s=new URLSearchParams;i?.page&&s.set("page",String(i.page)),i?.page_size&&s.set("page_size",String(i.page_size));const n=s.toString();return K.get(`/api/cardkeys${n?`?${n}`:""}`)}function ft(i){return K.post("/api/cardkeys",i)}function vt(i){return K.post("/api/cardkeys/batch",i)}function pt(i){return K.delete(`/api/cardkeys/delete?id=${i}`)}function mt(i){return K.delete("/api/cardkeys/batch",{data:{ids:i}})}function yt(i,s){return K.post("/api/cardkeys/toggle",{id:i,is_active:s})}var Q=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Z={exports:{}},_t=Z.exports,$e;function bt(){return $e||($e=1,(function(i,s){(function(n,v){v()})(_t,function(){function n(u,c){return typeof c>"u"?c={autoBom:!1}:typeof c!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),c={autoBom:!c}),c.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function v(u,c,f){var y=new XMLHttpRequest;y.open("GET",u),y.responseType="blob",y.onload=function(){g(y.response,c,f)},y.onerror=function(){console.error("could not download file")},y.send()}function m(u){var c=new XMLHttpRequest;c.open("HEAD",u,!1);try{c.send()}catch{}return 200<=c.status&&299>=c.status}function _(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(c)}}var d=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Q=="object"&&Q.global===Q?Q:void 0,w=d.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=d.saveAs||(typeof window!="object"||window!==d?function(){}:"download"in HTMLAnchorElement.prototype&&!w?function(u,c,f){var y=d.URL||d.webkitURL,p=document.createElement("a");c=c||u.name||"download",p.download=c,p.rel="noopener",typeof u=="string"?(p.href=u,p.origin===location.origin?_(p):m(p.href)?v(u,c,f):_(p,p.target="_blank")):(p.href=y.createObjectURL(u),setTimeout(function(){y.revokeObjectURL(p.href)},4e4),setTimeout(function(){_(p)},0))}:"msSaveOrOpenBlob"in navigator?function(u,c,f){if(c=c||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,f),c);else if(m(u))v(u,c,f);else{var y=document.createElement("a");y.href=u,y.target="_blank",setTimeout(function(){_(y)})}}:function(u,c,f,y){if(y=y||open("","_blank"),y&&(y.document.title=y.document.body.innerText="downloading..."),typeof u=="string")return v(u,c,f);var p=u.type==="application/octet-stream",R=/constructor/i.test(d.HTMLElement)||d.safari,z=/CriOS\/[\d]+/.test(navigator.userAgent);if((z||p&&R||w)&&typeof FileReader<"u"){var F=new FileReader;F.onloadend=function(){var T=F.result;T=z?T:T.replace(/^data:[^;]*;/,"data:attachment/file;"),y?y.location.href=T:location=T,y=null},F.readAsDataURL(u)}else{var H=d.URL||d.webkitURL,V=H.createObjectURL(u);y?y.location=V:location.href=V,y=null,setTimeout(function(){H.revokeObjectURL(V)},4e4)}});d.saveAs=g.saveAs=g,i.exports=g})})(Z)),Z.exports}var ht=bt();const gt={class:"space-y-6"},wt={class:"flex items-center justify-between"},kt={class:"flex items-center gap-2"},xt={class:"space-y-2"},$t={class:"space-y-2"},Ct={class:"space-y-2"},qt={class:"space-y-2"},St={class:"space-y-2"},Vt={key:0,class:"space-y-4"},Bt={key:1,class:"flex-1 flex flex-col items-center justify-center text-muted-foreground"},At={class:"flex-1"},Et={class:"flex items-center justify-between mt-4 pt-4 border-t"},Rt={class:"flex items-center gap-2"},It={class:"text-sm text-muted-foreground"},Pt=I({__name:"CardKeysPage",setup(i){const s=C([]),n=C(!1),v=C(!1),m=C(!1),_=C(0),d=C([]),w=A(()=>s.value.length>0&&d.value.length===s.value.length),g=A(()=>d.value.length),u=C(!1),c=C(null),f=C(!1),y=C(!1),p=C(1),R=C(10),z=[5,10,20,50],F=A(()=>Math.ceil(_.value/R.value)),H=C(!1),V=C({validity_days:"",max_uses:""}),T=C(!1),q=C({count:"",validity_days:"",max_uses:""});Ce(()=>{L()});async function L(){n.value=!0;try{const o=await ct({page:p.value,page_size:R.value});o.data.success?(s.value=o.data.keys||[],_.value=o.data.total||0):k.error(o.data.message||"获取卡密列表失败")}catch(o){k.error(o.response?.data?.message||"获取卡密列表失败")}finally{n.value=!1,d.value=[]}}async function Te(){v.value=!0;try{const o=await ft({validity_days:V.value.validity_days?Number(V.value.validity_days):void 0,max_uses:V.value.max_uses?Number(V.value.max_uses):void 0});o.data.success?(k.success("创建卡密成功"),H.value=!1,V.value={validity_days:"",max_uses:""},await L()):k.error(o.data.message||"创建失败")}catch(o){k.error(o.response?.data?.message||"创建失败")}finally{v.value=!1}}async function je(){if(!q.value.count||Number(q.value.count)<1){k.error("请输入有效的数量");return}m.value=!0;try{const o=await vt({count:Number(q.value.count),validity_days:q.value.validity_days?Number(q.value.validity_days):void 0,max_uses:q.value.max_uses?Number(q.value.max_uses):void 0});o.data.success?(k.success(`批量创建 ${q.value.count} 个卡密成功`),T.value=!1,q.value={count:"",validity_days:"",max_uses:""},await L()):k.error(o.data.message||"创建失败")}catch(o){k.error(o.response?.data?.message||"创建失败")}finally{m.value=!1}}function Ue(o){c.value=o,f.value=!1,u.value=!0}function De(){if(d.value.length===0){k.error("请先选择要删除的卡密");return}c.value=null,f.value=!0,u.value=!0}async function Le(){y.value=!0,u.value=!1;try{if(f.value){const o=[...d.value],a=await mt(o);a.data.success?(k.success(`成功删除 ${o.length} 个卡密`),await L()):k.error(a.data.message||"删除失败")}else if(c.value){const o=await pt(c.value);o.data.success?(k.success("删除成功"),await L()):k.error(o.data.message||"删除失败")}}catch(o){k.error(o.response?.data?.message||"删除失败")}finally{y.value=!1,c.value=null,f.value=!1}}async function Oe(o,a){try{const r=await yt(o.id,a);r.data.success?(o.is_active=a,k.success(a?"已启用":"已禁用")):k.error(r.data.message||"操作失败")}catch(r){k.error(r.response?.data?.message||"操作失败")}}function Pe(){w.value?d.value=[]:d.value=s.value.map(o=>o.id)}function Me(o){return d.value.includes(o)}function ze(o){const a=d.value.indexOf(o);a>-1?d.value.splice(a,1):d.value.push(o)}function He(o){navigator.clipboard.writeText(o),k.success("已复制到剪贴板")}function Ne(){if(d.value.length===0){k.error("请先选择要导出的卡密");return}try{const o=s.value.filter(se=>d.value.includes(se.id)),a=o.map(se=>se.key).join(`\r
`),r=`cardkeys_${new Date().toISOString().slice(0,10)}.txt`,N=new Blob([a],{type:"text/plain;charset=utf-8"});ht.saveAs(N,r),k.success(`已导出 ${o.length} 个卡密`)}catch(o){k.error("导出失败"),console.error("Export error:",o)}}function Ke(o){return o?new Date(o).toLocaleDateString("zh-CN"):"-"}function ie(o){return o.max_uses>0&&o.used_count>=o.max_uses?{text:"已使用",variant:"secondary"}:o.is_active?{text:"有效",variant:"default"}:{text:"已失效",variant:"destructive"}}function G(o){o>=1&&o<=F.value&&(p.value=o,L())}function Ge(o){o&&(R.value=Number(o),p.value=1,L())}return(o,a)=>(h(),S("div",gt,[x("div",wt,[a[23]||(a[23]=x("h1",{class:"text-2xl font-bold"},"卡密管理",-1)),x("div",kt,[s.value.length>0?(h(),S(E,{key:0},[t(e(j),{variant:"outline",onClick:Ne,disabled:g.value===0},{default:l(()=>[t(e(rt),{class:"h-4 w-4 mr-2"}),b(" 导出"+B(g.value>0?` (${g.value})`:""),1)]),_:1},8,["disabled"]),t(e(j),{variant:"destructive",onClick:De,disabled:g.value===0},{default:l(()=>[t(e(ce),{class:"h-4 w-4 mr-2"}),b(" 删除"+B(g.value>0?` (${g.value})`:""),1)]),_:1},8,["disabled"])],64)):U("",!0),t(e(pe),{open:H.value,"onUpdate:open":a[2]||(a[2]=r=>H.value=r)},{default:l(()=>[t(e(me),{"as-child":""},{default:l(()=>[t(e(j),{variant:"outline"},{default:l(()=>[t(e(ja),{class:"h-4 w-4 mr-2"}),a[12]||(a[12]=b(" 创建卡密 ",-1))]),_:1})]),_:1}),t(e(ye),null,{default:l(()=>[t(e(_e),null,{default:l(()=>[t(e(be),null,{default:l(()=>[...a[13]||(a[13]=[b("创建卡密",-1)])]),_:1}),t(e(he),null,{default:l(()=>[...a[14]||(a[14]=[b("创建单个卡密",-1)])]),_:1})]),_:1}),x("form",{onSubmit:ee(Te,["prevent"]),class:"space-y-4"},[x("div",xt,[t(e(J),{for:"validity_days"},{default:l(()=>[...a[15]||(a[15]=[b("有效天数(可选)",-1)])]),_:1}),t(e(W),{id:"validity_days",modelValue:V.value.validity_days,"onUpdate:modelValue":a[0]||(a[0]=r=>V.value.validity_days=r),type:"number",min:"1",placeholder:"留空默认30天",disabled:v.value},null,8,["modelValue","disabled"])]),x("div",$t,[t(e(J),{for:"max_uses"},{default:l(()=>[...a[16]||(a[16]=[b("最大使用次数(可选)",-1)])]),_:1}),t(e(W),{id:"max_uses",modelValue:V.value.max_uses,"onUpdate:modelValue":a[1]||(a[1]=r=>V.value.max_uses=r),type:"number",min:"1",placeholder:"留空默认1次",disabled:v.value},null,8,["modelValue","disabled"])]),t(e(ge),null,{default:l(()=>[t(e(j),{type:"submit",disabled:v.value},{default:l(()=>[v.value?(h(),$(e(ve),{key:0,class:"h-4 w-4 mr-2 animate-spin"})):U("",!0),b(" "+B(v.value?"创建中...":"创建"),1)]),_:1},8,["disabled"])]),_:1})],32)]),_:1})]),_:1},8,["open"]),t(e(pe),{open:T.value,"onUpdate:open":a[6]||(a[6]=r=>T.value=r)},{default:l(()=>[t(e(me),{"as-child":""},{default:l(()=>[t(e(j),null,{default:l(()=>[t(e(it),{class:"h-4 w-4 mr-2"}),a[17]||(a[17]=b(" 批量创建 ",-1))]),_:1})]),_:1}),t(e(ye),null,{default:l(()=>[t(e(_e),null,{default:l(()=>[t(e(be),null,{default:l(()=>[...a[18]||(a[18]=[b("批量创建卡密",-1)])]),_:1}),t(e(he),null,{default:l(()=>[...a[19]||(a[19]=[b("批量创建多个卡密",-1)])]),_:1})]),_:1}),x("form",{onSubmit:ee(je,["prevent"]),class:"space-y-4"},[x("div",Ct,[t(e(J),{for:"batch_count"},{default:l(()=>[...a[20]||(a[20]=[b("数量 *",-1)])]),_:1}),t(e(W),{id:"batch_count",modelValue:q.value.count,"onUpdate:modelValue":a[3]||(a[3]=r=>q.value.count=r),type:"number",min:"1",max:"100",placeholder:"1-100",disabled:m.value},null,8,["modelValue","disabled"])]),x("div",qt,[t(e(J),{for:"batch_validity_days"},{default:l(()=>[...a[21]||(a[21]=[b("有效天数(可选)",-1)])]),_:1}),t(e(W),{id:"batch_validity_days",modelValue:q.value.validity_days,"onUpdate:modelValue":a[4]||(a[4]=r=>q.value.validity_days=r),type:"number",min:"1",placeholder:"留空默认30天",disabled:m.value},null,8,["modelValue","disabled"])]),x("div",St,[t(e(J),{for:"batch_max_uses"},{default:l(()=>[...a[22]||(a[22]=[b("最大使用次数(可选)",-1)])]),_:1}),t(e(W),{id:"batch_max_uses",modelValue:q.value.max_uses,"onUpdate:modelValue":a[5]||(a[5]=r=>q.value.max_uses=r),type:"number",min:"1",placeholder:"留空默认1次",disabled:m.value},null,8,["modelValue","disabled"])]),t(e(ge),null,{default:l(()=>[t(e(j),{type:"submit",disabled:m.value},{default:l(()=>[m.value?(h(),$(e(ve),{key:0,class:"h-4 w-4 mr-2 animate-spin"})):U("",!0),b(" "+B(m.value?"创建中...":"批量创建"),1)]),_:1},8,["disabled"])]),_:1})],32)]),_:1})]),_:1},8,["open"])])]),t(e(aa),{class:"min-h-[600px] flex flex-col"},{default:l(()=>[t(e(ta),null,{default:l(()=>[t(e(la),null,{default:l(()=>[...a[24]||(a[24]=[b("卡密列表",-1)])]),_:1})]),_:1}),t(e(sa),{class:"flex-1 flex flex-col"},{default:l(()=>[n.value?(h(),S("div",Vt,[(h(),S(E,null,X(5,r=>t(e(Ua),{key:r,class:"h-12 w-full"})),64))])):s.value.length===0?(h(),S("div",Bt,[t(e(ea),{class:"h-12 w-12 mb-4 opacity-50"}),a[25]||(a[25]=x("p",null,"暂无卡密",-1)),a[26]||(a[26]=x("p",{class:"text-sm"},"点击上方按钮创建卡密",-1))])):(h(),S(E,{key:2},[x("div",At,[t(e(fa),null,{default:l(()=>[t(e(va),null,{default:l(()=>[t(e(fe),null,{default:l(()=>[t(e(O),{class:"w-[50px]"},{default:l(()=>[t(e(xe),{"model-value":w.value,"onUpdate:modelValue":Pe},null,8,["model-value"])]),_:1}),t(e(O),null,{default:l(()=>[...a[27]||(a[27]=[b("卡密",-1)])]),_:1}),t(e(O),null,{default:l(()=>[...a[28]||(a[28]=[b("状态",-1)])]),_:1}),t(e(O),null,{default:l(()=>[...a[29]||(a[29]=[b("使用次数",-1)])]),_:1}),t(e(O),null,{default:l(()=>[...a[30]||(a[30]=[b("有效期",-1)])]),_:1}),t(e(O),null,{default:l(()=>[...a[31]||(a[31]=[b("启用",-1)])]),_:1}),t(e(O),{class:"text-right"},{default:l(()=>[...a[32]||(a[32]=[b("操作",-1)])]),_:1})]),_:1})]),_:1}),t(e(pa),null,{default:l(()=>[(h(!0),S(E,null,X(s.value,r=>(h(),$(e(fe),{key:r.id},{default:l(()=>[t(e(P),null,{default:l(()=>[t(e(xe),{"model-value":Me(r.id),"onUpdate:modelValue":()=>ze(r.id)},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),t(e(P),{class:"font-mono text-sm"},{default:l(()=>[b(B(r.key),1)]),_:2},1024),t(e(P),null,{default:l(()=>[t(e(Ra),{variant:ie(r).variant},{default:l(()=>[b(B(ie(r).text),1)]),_:2},1032,["variant"])]),_:2},1024),t(e(P),null,{default:l(()=>[b(B(r.used_count)+" / "+B(r.max_uses||"∞"),1)]),_:2},1024),t(e(P),{class:"text-muted-foreground"},{default:l(()=>[b(B(Ke(r.expires_at)),1)]),_:2},1024),t(e(P),null,{default:l(()=>[t(e(dt),{"model-value":r.is_active,"onUpdate:modelValue":N=>Oe(r,N)},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),t(e(P),{class:"text-right space-x-2"},{default:l(()=>[t(e(j),{variant:"outline",size:"sm",onClick:N=>He(r.key)},{default:l(()=>[t(e(ot),{class:"h-4 w-4"})]),_:1},8,["onClick"]),t(e(j),{variant:"destructive",size:"sm",onClick:N=>Ue(r.id)},{default:l(()=>[t(e(ce),{class:"h-4 w-4"})]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),x("div",Et,[x("div",Rt,[a[33]||(a[33]=x("span",{class:"text-sm text-muted-foreground"},"每页",-1)),t(e(ma),{"model-value":String(R.value),"onUpdate:modelValue":Ge},{default:l(()=>[t(e(ya),{class:"w-[70px] h-8"},{default:l(()=>[t(e(_a))]),_:1}),t(e(ba),null,{default:l(()=>[(h(),S(E,null,X(z,r=>t(e(Ia),{key:r,value:String(r)},{default:l(()=>[b(B(r),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["model-value"]),x("span",It,"条,共 "+B(_.value)+" 条",1)]),F.value>1?(h(),$(e($a),{key:0,total:_.value,"items-per-page":R.value,"default-page":1},{default:l(()=>[t(e(ha),{class:"flex items-center gap-1"},{default:l(()=>[t(e(ga),{onClick:a[7]||(a[7]=r=>G(1))}),t(e(wa),{onClick:a[8]||(a[8]=r=>G(p.value-1))}),(h(!0),S(E,null,X(F.value,r=>(h(),S(E,{key:r},[r===1||r===F.value||r>=p.value-1&&r<=p.value+1?(h(),$(e(Fa),{key:0,value:r,onClick:N=>G(r)},{default:l(()=>[t(e(j),{class:"w-9 h-9 p-0",variant:r===p.value?"default":"outline"},{default:l(()=>[b(B(r),1)]),_:2},1032,["variant"])]),_:2},1032,["value","onClick"])):r===p.value-2||r===p.value+2?(h(),$(e(Ta),{key:1})):U("",!0)],64))),128)),t(e(ka),{onClick:a[9]||(a[9]=r=>G(p.value+1))}),t(e(xa),{onClick:a[10]||(a[10]=r=>G(F.value))})]),_:1})]),_:1},8,["total","items-per-page"])):U("",!0)])],64))]),_:1})]),_:1}),t(e(ca),{open:u.value,"onUpdate:open":a[11]||(a[11]=r=>u.value=r)},{default:l(()=>[t(e(Ca),null,{default:l(()=>[t(e(qa),null,{default:l(()=>[t(e(Sa),null,{default:l(()=>[...a[34]||(a[34]=[b("确认删除",-1)])]),_:1}),t(e(Va),null,{default:l(()=>[f.value?(h(),S(E,{key:0},[a[35]||(a[35]=b(" 确定要删除选中的 ",-1)),x("strong",null,B(g.value),1),a[36]||(a[36]=b(" 个卡密吗?此操作不可撤销。 ",-1))],64)):(h(),S(E,{key:1},[b(" 确定要删除此卡密吗?此操作不可撤销。 ")],64))]),_:1})]),_:1}),t(e(Ba),null,{default:l(()=>[t(e(Aa),null,{default:l(()=>[...a[37]||(a[37]=[b("取消",-1)])]),_:1}),t(e(Ea),{onClick:Le,class:"bg-destructive text-destructive-foreground hover:bg-destructive/90"},{default:l(()=>[...a[38]||(a[38]=[b(" 删除 ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"])]))}});export{Pt as default};