1import{d as ul,y as cl,A as ke,B as k,a1 as we,D as A,o as ml,r as M,Z as pl,b as c,e as i,f as o,g as u,a0 as fl,t as s,w as a,j as p,k as D,af as yl,ag as gl,ac as hl,i as v,I as C,S as V,x as g,U as bl,ah as vl,ai as _l,aj as kl,P as wl,J as Cl,Q as $l,F as L,K,a2 as xl}from"./index-DospXnVd.js";import{u as Vl}from"./configStore-Cl7rFVlv.js";import{u as Ue,s as Ce,b as $e,c as Ll,d as Ml,e as Re,g as Sl,f as Dl,h as Gl,i as Ul}from"./user-kdBy_Qck.js";import{A as Rl}from"./AppNavbar-CDhV9XOV.js";import{_ as Al}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./NotificationBell-C3KFuNft.js";const Fl={class:"min-h-screen bg-gray-50 dark:bg-gray-900"},Pl={class:"container mx-auto px-4 py-8"},zl={class:"flex items-center justify-between mb-6"},Nl={class:"text-3xl font-bold text-gray-900 dark:text-gray-100"},Bl={class:"space-x-2"},Ol={class:"space-y-4"},El={key:0,class:"text-center text-gray-400 py-12"},Il={class:"flex items-center justify-between mb-3"},Hl={class:"flex items-center"},jl={class:"font-medium text-lg text-gray-900 dark:text-gray-100"},ql={class:"space-x-2 flex items-center"},Tl={class:"text-sm leading-relaxed"},Yl={class:"text-sm leading-relaxed"},Jl={class:"flex flex-wrap gap-4 mb-3"},Kl={class:"text-xs text-gray-500 font-medium"},Ql={key:2,class:"flex items-start gap-2 mb-3 flex-wrap"},Wl={class:"text-xs text-gray-500 font-medium whitespace-nowrap mt-0.5"},Zl={class:"flex flex-wrap gap-1"},Xl={key:3,class:"flex items-center gap-3 mb-3 px-1"},et={class:"text-xs text-gray-500 font-medium whitespace-nowrap"},lt={class:"text-xs text-gray-600 dark:text-gray-400 whitespace-nowrap"},tt={key:4,class:"border-t border-gray-100 dark:border-gray-700 pt-3"},at={class:"flex items-center gap-4"},st={class:"text-gray-700 text-sm font-medium min-w-[100px]"},ot={class:"flex items-center gap-4 text-sm"},nt={key:0,class:"font-bold text-blue-600"},it={key:1,class:"text-gray-500"},dt={key:2,class:"text-gray-400"},rt={key:5,class:"border-t border-gray-100 dark:border-gray-700 pt-3 text-gray-400 text-sm"},ut={class:"w-full space-y-3"},ct={class:"text-sm font-medium text-gray-600 mb-1"},mt={class:"text-xs text-gray-400 mt-2"},pt={class:"text-xs text-gray-400 mt-1"},ft={class:"text-xs text-gray-400 mt-1"},yt={class:"text-xs text-gray-400 mt-1"},gt={class:"w-full space-y-3"},ht={class:"text-sm font-medium text-gray-600 mb-1"},bt={class:"text-xs text-gray-400 mt-2"},vt={class:"text-xs text-gray-400 mt-1"},_t={class:"text-xs text-gray-400 mt-1"},kt={class:"text-xs text-gray-400 mt-1"},wt={class:"space-y-4"},Ct={class:"bg-gray-100 dark:bg-gray-700 p-4 rounded-lg"},$t={class:"font-mono text-sm break-all"},xt={class:"text-sm text-gray-500"},Vt={key:0,class:"mb-2 text-sm text-gray-500"},Lt={class:"w-full space-y-3"},Mt={class:"text-sm font-medium text-gray-600 mb-1"},St={class:"text-xs text-gray-400 mt-2"},Dt={class:"text-xs text-gray-400 mt-1"},Gt={class:"text-xs text-gray-400 mt-1"},Ut={class:"text-xs text-gray-400 mt-1"},Rt={class:"mb-4"},At={class:"flex items-center justify-between mb-2"},Ft={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},Pt={class:"text-sm text-gray-500"},zt={key:0,class:"mb-4 flex gap-4"},Nt={class:"max-h-[300px] overflow-y-auto space-y-2"},Bt={class:"text-gray-700 dark:text-gray-300 truncate mr-2"},Ot={key:0,class:"text-gray-400"},Et={key:1,class:"text-blue-500"},It={key:2,class:"text-green-600"},Ht=["title"],jt=10,qt=ul({__name:"ClientManageView",setup(Tt){const{t:h,locale:xe}=cl(),se=Vl(),Q=ke(()=>[{key:"claude",label:"Claude"},{key:"codex",label:"GPT"},{key:"deepseek",label:"DeepSeek"},...se.siteSettings?.grok_enabled?[{key:"grok",label:"Grok"}]:[]]),W=k({claude:[],codex:[],gemini:[],deepseek:[],grok:[]}),Z=k([]),Ae={anthropic:"Claude (Anthropic)",openai:"OpenAI",google:"Gemini (Google)",deepseek:"DeepSeek",grok:"Grok"},oe=ke(()=>{const e=new Map;for(const r of Z.value){if(r.provider==="google"||!se.siteSettings?.grok_enabled&&r.provider==="grok")continue;const y=r.provider||"other";e.has(y)||e.set(y,[]),e.get(y).push(r)}const t=["anthropic","openai","google","deepseek","grok"];return Array.from(e.keys()).sort((r,y)=>{const w=t.indexOf(r),S=t.indexOf(y);return w===-1&&S===-1?r.localeCompare(y):w===-1?1:S===-1?-1:w-S}).map(r=>({label:Ae[r]||r||"Other",options:e.get(r)||[]}))}),X=ke(()=>{xe.value;const e={};for(const t of Object.keys(W.value))e[t]=W.value[t].map(d=>({...d,label:we(d.label),short_label:we(d.short_label)}));return e}),ee=k(!1),ne=k([]),le=k([]),I=k(!1),te=k(!1),H=k(!1),ie=k(!1),de=k(!1),re=k(!1),j=k(!1),ue=k(""),Fe=k(),z=k([]),Pe=e=>{z.value=e},q=k(!1),U=k(!1),G=k(!1),m=A({enableGroup:!1,enableDailyLimit:!1,enableAllowedModels:!1,claude:[],codex:[],gemini:[],deepseek:[],grok:[],dailyLimit:0,allowedModels:[]}),F=k([]),$=A({total:0,done:0,success:0,failed:0}),ze=()=>{m.enableGroup=!1,m.enableDailyLimit=!1,m.enableAllowedModels=!1,m.claude=[],m.codex=[],m.gemini=[],m.deepseek=[],m.grok=[],m.dailyLimit=0,m.allowedModels=[],U.value=!1,G.value=!1,F.value=[],$.total=0,$.done=0,$.success=0,$.failed=0,z.value=[],q.value=!0},Ne=()=>{G.value&&R()},Be=()=>{q.value=!1},Oe=async(e,t)=>{const d=new Array(e.length);let r=0;const y=async()=>{for(;r<e.length;){const S=r++;d[S]=await e[S]()}},w=Array.from({length:Math.min(t,e.length)},()=>y());return await Promise.all(w),d},Ee=async()=>{const e=z.value;if(e.length===0)return;U.value=!0,G.value=!1,$.total=e.length,$.done=0,$.success=0,$.failed=0,F.value=e.map(d=>({clientId:d.id,clientName:d.name,status:"pending"}));const t=e.map((d,r)=>async()=>{F.value[r].status="running";try{m.enableGroup&&await Ue(d.id,{claude:m.claude,codex:m.codex,gemini:m.gemini,deepseek:m.deepseek,grok:m.grok}),m.enableDailyLimit&&await Ce(d.id,m.dailyLimit),m.enableAllowedModels&&await $e(d.id,m.allowedModels),F.value[r].status="success",$.success++}catch(y){F.value[r].status="failed",F.value[r].error=y?.response?.data?.message||y?.message||h("clients.batch.unknownError"),$.failed++}finally{$.done++}});await Oe(t,jt),U.value=!1,G.value=!0},ce=k(),b=A({name:"",claude:[],codex:[],gemini:[],deepseek:[],grok:[],dailyLimit:0,allowedModels:[]}),Ie=A({name:[{required:!0,message:()=>h("clients.nameRequired"),trigger:"blur"},{min:1,max:50,message:()=>h("clients.nameLengthLimit"),trigger:"blur"}]}),me=k(),f=A({id:"",name:"",claude:[],codex:[],gemini:[],deepseek:[],grok:[],dailyLimit:0,allowedModels:[]}),He=A({name:[{required:!0,message:()=>h("clients.nameRequired"),trigger:"blur"},{min:1,max:50,message:()=>h("clients.nameLengthLimit"),trigger:"blur"}]}),pe=k(),T=A({token:""}),je=A({token:[{required:!0,message:()=>h("clients.tokenRequired"),trigger:"blur"}]}),Ve={claude:"claude_default",codex:"openai_default",gemini:"gemini_default",deepseek:"deepseek_default",grok:"grok_default"},qe={claude_default:["aws-q"]},fe=(e,t,d)=>{if(d.length<=1||t!=="claude")return;const r=Ve[t],y=qe[r]||[],w=_=>y.includes(_),S=d.includes(r),Y=d[d.length-1];Y===r?d.some(w)&&(e[t]=d.filter(_=>!w(_)),L.warning(h("clients.channelConflictDefault"))):S&&w(Y)&&(e[t]=d.filter(_=>
1_!==r),L.warning(h("clients.channelConflictReverse")));const P=e[t];P.includes(r)&&P.indexOf(r)>0&&(e[t]=[r,...P.filter(_=>_!==r)])},ye=(e,t)=>e?e[t]||[]:[],N=(e,t)=>e.map(d=>d==="default"?Ve[t]:d),Te=e=>{const t={};for(const d of["claude","codex","gemini","deepseek","grok"]){const r=e[d];r&&r.length>0&&(t[d]=N(r,d))}return t},Ye=(e,t)=>(X.value[e]||[]).find(y=>y.value===t)?.short_label||t,Je=e=>Z.value.find(d=>d.model_id===e)?.name||e,Ke=e=>e?new Date(e).toLocaleDateString(xe.value==="zh-CN"?"zh-CN":"en-US",{year:"numeric",month:"2-digit",day:"2-digit"}):"",Qe=e=>{if(!e)return!1;const t=Math.ceil((new Date(e).getTime()-Date.now())/(1e3*60*60*24));return t<=7&&t>0},We=async()=>{try{const e=await Ll(),t=Array.isArray(e)?e:e?.data||[];for(const d of t)d.ai_type in W.value&&(W.value[d.ai_type]=d.options)}catch{}},Ze=async()=>{try{Z.value=await Ml()}catch{Z.value=[]}},R=async()=>{ee.value=!0;try{const e=await K.get("/api/user/clients");ne.value=e;const t=new Map;await Promise.all(ne.value.map(async d=>{try{const r=await Re(d.id);t.set(d.id,r)}catch{t.set(d.id,{})}})),le.value=ne.value.map(d=>{const r=Te(t.get(d.id)||{}),y=[];if(d.vouchers&&d.vouchers.length>0)for(const w of d.vouchers)w.balance<=0||w.expire_date&&new Date(w.expire_date)<=new Date||y.push({id:w.id,name:w.name||"",billing_type:w.billing_type,balance:w.balance,expire_date:w.expire_date,allowed_models:w.allowed_models});return{id:d.id,name:d.name||h("clients.keyPrefix",{id:d.id}),token:d.token,is_active:d.is_active,supplier_groups:r,daily_limit_info:d.daily_limit_info||void 0,allowed_models:Array.isArray(d.allowed_models)?d.allowed_models:[],vouchers:y}})}catch(e){console.error("Failed to fetch clients:",e),L.error(h("clients.fetchFailed"))}finally{ee.value=!1}},Xe=async()=>{ce.value&&await ce.value.validate(async e=>{if(e){ie.value=!0;try{const t=await K.post("/api/user/clients/create",{name:b.name,claude:b.claude,codex:b.codex,gemini:b.gemini,deepseek:b.deepseek,grok:b.grok});if(b.dailyLimit>0&&t?.id)try{await Ce(t.id,b.dailyLimit)}catch{L.warning(h("clients.dailyLimitSetFailed"))}if(b.allowedModels.length>0&&t?.id)try{await $e(t.id,b.allowedModels)}catch{L.warning(h("clients.allowedModelsSetFailed"))}L.success(h("clients.createSuccess")),I.value=!1,b.name="",b.claude=[],b.codex=[],b.gemini=[],b.deepseek=[],b.grok=[],b.dailyLimit=0,b.allowedModels=[],await R()}catch(t){t.response?.data?.message?.includes("100")?L.error(h("clients.maxLimitReached")):L.error(t.response?.data?.message||h("clients.createFailed"))}finally{ie.value=!1}}})},el=async()=>{pe.value&&await pe.value.validate(async e=>{if(e){de.value=!0;try{await K.post("/api/user/clients/import",{token:T.token}),L.success(h("clients.importSuccess")),te.value=!1,T.token="",await R()}catch(t){L.error(t.response?.data?.message||h("clients.importFailed"))}finally{de.value=!1}}})},ll=async e=>{try{await navigator.clipboard.writeText(e.token),L.success(h("clients.copySuccess")),ue.value=e.token,j.value=!0}catch{ue.value=e.token,j.value=!0,L.warning(h("clients.copyManualHint"))}},tl=async e=>{f.id=e.id,f.name=e.name,f.claude=[],f.codex=[],f.gemini=[],f.deepseek=[],f.grok=[],f.dailyLimit=0,f.allowedModels=[],H.value=!0;try{const[t,d,r]=await Promise.all([Re(e.id),Dl(e.id).catch(()=>null),Gl(e.id).catch(()=>null)]);f.claude=N(t.claude||[],"claude"),f.codex=N(t.codex||[],"codex"),f.gemini=N(t.gemini||[],"gemini"),f.deepseek=N(t.deepseek||[],"deepseek"),f.grok=N(t.grok||[],"grok"),d?.enabled&&(f.dailyLimit=d.limit),r?.models&&(f.allowedModels=r.models)}catch{}},al=async()=>{me.value&&await me.value.validate(async e=>{if(e){re.value=!0;try{await K.put(`/api/user/clients/${f.id}/name`,{name:f.name}),await Ue(f.id,{claude:f.claude,codex:f.codex,gemini:f.gemini,deepseek:f.deepseek,grok:f.grok}),await Ce(f.id,f.dailyLimit),await $e(f.id,f.allowedModels),L.success(h("clients.updateSuccess")),H.value=!1,await R()}catch(t){L.error(t.response?.data?.message||h("clients.updateFailed"))}finally{re.value=!1}}})},sl=async e=>{try{await xl.confirm(h("clients.deleteConfirmMsg",{name:e.name}),h("clients.deleteConfirm"),{confirmButtonText:h("common.confirm"),cancelButtonText:h("common.cancel"),type:"warning"}),await K.delete(`/api/user/clients/${e.id}`),L.success(h("clients.deleteSuccess")),await R()}catch(t){t!=="cancel"&&L.error(t.response?.data?.message||h("clients.deleteFailed"))}},ol=async(e,t)=>{try{await Ul(e.id,t),L.success(h("clients.statusUpdateSuccess")),await R()}catch(d){e.is_active=!t,L.error(d.response?.data?.message||h("clients.statusUpdateFailed"))}},x=k(null),nl=async()=>{try{x.value=await Sl()}catch{x.value=null}},Le=e=>x.value?.claude?.clients?.[e]??0,ge=e=>x.value?.claude?.client_scores?.[e]??0,Me=e=>x.value?.openai?.clients?.[e]??0,he=e=>x.value?.openai?.client_scores?.[e]??0,B=e=>e?.threshold||x.value?.threshold||0,Se=(e,t)=>t>0&&e*2<t?"info":"warning";return ml(async()=>{se.loadSiteSettings(),await Promise.all([We(),Ze()]),R(),nl()}),(e,t)=>{const d=M("el-icon"),r=M("el-button"),y=M("el-tag"),w=M("el-switch"),S=M("el-alert"),Y=M("el-progress"),P=M("el-input"),_=M("el-form-item"),O=M("el-option"),E=M("el-select"),be=M("el-input-number"),ve=M("el-option-group"),ae=M("el-form"),J=M("el-dialog"),De=M("el-table-column"),il=M("el-table"),_e=M("el-checkbox"),dl=pl("loading");return i(),c("div",Fl,[o(Rl),u("div",Pl,[u("div",zl,[u("h1",Nl,s(e.$t("clients.title")),1),u("div",Bl,[o(r,{onClick:ze},{default:a(()=>[o(d,{class:"mr-1"},{default:a(()=>[o(D(yl))]),_:1}),p(" "+s(e.$t("clients.batch.batchEdit")),1)]),_:1}),o(r,{type:"primary",onClick:t[0]||(t[0]=l=>I.value=!0)},{default:a(()=>[o(d,{class:"mr-1"},{default:a(()=>[o(D(gl))]),_:1}),p(" "+s(e.$t("clients.createClient")),1)]),_:1}),o(r,{onClick:R},{default:a(()=>[o(d,{class:"mr-1"},{default:a(()=>[o(D(hl))]),_:1}),p(" "+s(e.$t("common.refresh")),1)]),_:1})])]),fl((i(),c("div",Ol,[le.value.length===0&&!ee.value?(i(),c("div",El,s(e.$t("clients.noClientsHint")),1)):v("",!0),(i(!0),c(C,null,V(le.value,l=>(i(),c("div",{key:l.id,class:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-5 hover:shadow-md transition-shadow"},[u("div",Il,[u("div",Hl,[o(d,{class:"mr-2 text-blue-500 text-lg"},{default:a(()=>[o(D(bl))]),_:1}),u("span",jl,s(l.name),1),l.is_active?v("",!0):(i(),g(y,{key:0,t
1ype:"danger",size:"small",class:"ml-2"},{default:a(()=>[p(s(e.$t("clients.disabled")),1)]),_:1})),l.vouchers.length>1?(i(),g(y,{key:1,size:"small",class:"ml-2"},{default:a(()=>[p(s(l.vouchers.length)+s(e.$t("clients.plansCount")),1)]),_:2},1024)):v("",!0)]),u("div",ql,[o(w,{modelValue:l.is_active,"onUpdate:modelValue":n=>l.is_active=n,"inline-prompt":"","active-text":e.$t("common.enabled"),"inactive-text":e.$t("clients.disabled"),onChange:n=>ol(l,n),class:"mr-2"},null,8,["modelValue","onUpdate:modelValue","active-text","inactive-text","onChange"]),o(r,{size:"small",onClick:n=>ll(l)},{default:a(()=>[p(s(e.$t("clients.copyToken")),1)]),_:2},1032,["onClick"]),o(r,{size:"small",onClick:n=>tl(l)},{default:a(()=>[o(d,{class:"mr-1"},{default:a(()=>[o(D(vl))]),_:1}),p(s(e.$t("common.edit")),1)]),_:2},1032,["onClick"]),o(r,{type:"danger",size:"small",onClick:n=>sl(l)},{default:a(()=>[o(d,{class:"mr-1"},{default:a(()=>[o(D(_l))]),_:1}),p(s(e.$t("common.delete")),1)]),_:2},1032,["onClick"])])]),x.value?.enabled&&Le(l.id)>0?(i(),g(S,{key:0,title:e.$t("clients.harmRiskTitleClaude",{score:ge(l.id),threshold:B(x.value.claude),windowDays:x.value.window_days}),type:Se(ge(l.id),B(x.value.claude)),"show-icon":"",closable:!1,class:"mb-3",style:{"margin-bottom":"10px"}},{default:a(()=>[u("div",Tl,s(e.$t("clients.harmRiskDescClaude",{count:Le(l.id),score:ge(l.id),threshold:B(x.value.claude),windowDays:x.value.window_days})),1)]),_:2},1032,["title","type"])):v("",!0),x.value?.enabled&&Me(l.id)>0?(i(),g(S,{key:1,title:e.$t("clients.harmRiskTitleOpenAI",{score:he(l.id),threshold:B(x.value.openai),windowDays:x.value.window_days}),type:Se(he(l.id),B(x.value.openai)),"show-icon":"",closable:!1,class:"mb-3",style:{"margin-bottom":"10px"}},{default:a(()=>[u("div",Yl,s(e.$t("clients.harmRiskDescOpenAI",{count:Me(l.id),score:he(l.id),threshold:B(x.value.openai),windowDays:x.value.window_days})),1)]),_:2},1032,["title","type"])):v("",!0),u("div",Jl,[(i(!0),c(C,null,V(Q.value,n=>(i(),c("div",{key:n.key,class:"flex items-center gap-1"},[u("span",Kl,s(n.label)+":",1),ye(l.supplier_groups,n.key).length>0?(i(!0),c(C,{key:0},V(ye(l.supplier_groups,n.key),(Ge,rl)=>(i(),c("span",{key:Ge,class:"inline-flex items-center"},[o(y,{size:"small",type:"info"},{default:a(()=>[p(s(Ye(n.key,Ge)),1)]),_:2},1024),rl<ye(l.supplier_groups,n.key).length-1?(i(),g(d,{key:0,class:"text-gray-400 mx-0.5"},{default:a(()=>[o(D(kl))]),_:1})):v("",!0)]))),128)):(i(),g(y,{key:1,size:"small",type:"info"},{default:a(()=>[p(s(e.$t("clients.defaultGroup")),1)]),_:1}))]))),128))]),l.allowed_models.length>0?(i(),c("div",Ql,[u("span",Wl,s(e.$t("clients.allowedModelsLabel"))+":",1),u("div",Zl,[(i(!0),c(C,null,V(l.allowed_models,n=>(i(),g(y,{key:n,size:"small",type:"warning"},{default:a(()=>[p(s(Je(n)),1)]),_:2},1024))),128))])])):v("",!0),l.daily_limit_info?.enabled?(i(),c("div",Xl,[u("span",et,s(e.$t("clients.dailyLimitUsage"))+":",1),o(Y,{percentage:Math.round(Math.min(l.daily_limit_info.percentage,100)*100)/100,format:n=>`${n.toFixed(2)}%`,"stroke-width":16,status:l.daily_limit_info.percentage>=100?"exception":l.daily_limit_info.percentage>=80?"warning":"",class:"flex-1"},null,8,["percentage","format","status"]),u("span",lt," $"+s(l.daily_limit_info.used.toFixed(2))+" / $"+s(l.daily_limit_info.limit.toFixed(2)),1),l.daily_limit_info.percentage>=100?(i(),g(y,{key:0,type:"danger",size:"small"},{default:a(()=>[p(s(e.$t("clients.dailyLimitExceeded")),1)]),_:1})):v("",!0)])):v("",!0),l.vouchers.length>0?(i(),c("div",tt,[(i(!0),c(C,null,V(l.vouchers,n=>(i(),c("div",{key:n.id,class:"flex items-center justify-between py-2 px-3 rounded hover:bg-gray-50 dark:hover:bg-gray-700"},[u("div",at,[u("span",st,s(D(we)(n.name)||e.$t("common.noData")),1),n.billing_type==="amount"?(i(),g(y,{key:0,type:"primary",size:"small"},{default:a(()=>[p(s(e.$t("subscription.amountBilling")),1)]),_:1})):v("",!0)]),u("div",ot,[n.billing_type==="amount"?(i(),c("span",nt," $"+s(n.balance?.toFixed(2)||"0.00"),1)):v("",!0),n.expire_date?(i(),c("span",it,[p(s(Ke(n.expire_date))+" ",1),Qe(n.expire_date)?(i(),g(y,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[p(s(e.$t("subscription.expiringSoon")),1)]),_:1})):v("",!0)])):(i(),c("span",dt,s(e.$t("subscription.permanent")),1)),n.allowed_models==="all"?(i(),g(y,{key:3,type:"primary",size:"small"},{default:a(()=>[p(s(e.$t("subscription.allModels")),1)]),_:1})):n.allowed_models==="sonnet"?(i(),g(y,{key:4,type:"success",size:"small"},{default:a(()=>[p(s(e.$t("subscription.sonnetOnly")),1)]),_:1})):n.allowed_models==="opus"?(i(),g(y,{key:5,type:"warning",size:"small"},{default:a(()=>[p(s(e.$t("subscription.opusOnly")),1)]),_:1})):v("",!0)])]))),128))])):(i(),c("div",rt,s(e.$t("clients.noPlans")),1
1))]))),128))])),[[dl,ee.value]]),o(J,{modelValue:I.value,"onUpdate:modelValue":t[5]||(t[5]=l=>I.value=l),title:e.$t("clients.createTitle"),width:"600px"},{footer:a(()=>[o(r,{onClick:t[4]||(t[4]=l=>I.value=!1)},{default:a(()=>[p(s(e.$t("common.cancel")),1)]),_:1}),o(r,{type:"primary",onClick:Xe,loading:ie.value},{default:a(()=>[p(s(e.$t("clients.createClient")),1)]),_:1},8,["loading"])]),default:a(()=>[o(ae,{ref_key:"createClientFormRef",ref:ce,model:b,rules:Ie},{default:a(()=>[o(_,{label:e.$t("clients.nameLabel"),prop:"name"},{default:a(()=>[o(P,{modelValue:b.name,"onUpdate:modelValue":t[1]||(t[1]=l=>b.name=l),placeholder:e.$t("clients.namePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),o(_,{label:e.$t("clients.supplierGroup")},{default:a(()=>[u("div",ut,[(i(!0),c(C,null,V(Q.value,l=>(i(),c("div",{key:l.key},[u("div",ct,s(l.label),1),o(E,{modelValue:b[l.key],"onUpdate:modelValue":n=>b[l.key]=n,multiple:"",placeholder:e.$t("clients.selectSupplierGroup",{type:l.label}),style:{width:"100%"},onChange:n=>fe(b,l.key,n)},{default:a(()=>[(i(!0),c(C,null,V(X.value[l.key],n=>(i(),g(O,{key:n.value,label:n.label,value:n.value},{default:a(()=>[u("span",null,s(n.label),1),n.offline?(i(),g(y,{key:0,type:"danger",size:"small",class:"ml-2"},{default:a(()=>[p(s(e.$t("clients.channelOffline")),1)]),_:1})):v("",!0)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder","onChange"])]))),128))]),u("div",mt,s(e.$t("clients.supplierGroupNote")),1),u("div",pt,s(e.$t("clients.multiplierNote")),1)]),_:1},8,["label"]),o(_,{label:e.$t("clients.dailyLimitLabel")},{default:a(()=>[o(be,{modelValue:b.dailyLimit,"onUpdate:modelValue":t[2]||(t[2]=l=>b.dailyLimit=l),min:0,precision:2,step:1,placeholder:e.$t("clients.dailyLimitPlaceholder"),"controls-position":"right",style:{width:"100%"}},null,8,["modelValue","placeholder"]),u("div",ft,s(e.$t("clients.dailyLimitPlaceholder")),1)]),_:1},8,["label"]),o(_,{label:e.$t("clients.allowedModelsLabel")},{default:a(()=>[o(E,{modelValue:b.allowedModels,"onUpdate:modelValue":t[3]||(t[3]=l=>b.allowedModels=l),multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:e.$t("clients.allowedModelsPlaceholder"),style:{width:"100%"}},{default:a(()=>[(i(!0),c(C,null,V(oe.value,l=>(i(),g(ve,{key:l.label,label:l.label},{default:a(()=>[(i(!0),c(C,null,V(l.options,n=>(i(),g(O,{key:n.model_id,label:n.name||n.model_id,value:n.model_id},null,8,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","placeholder"]),u("div",yt,s(e.$t("clients.allowedModelsNote")),1)]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"]),o(J,{modelValue:H.value,"onUpdate:modelValue":t[10]||(t[10]=l=>H.value=l),title:e.$t("clients.editTitle"),width:"600px"},{footer:a(()=>[o(r,{onClick:t[9]||(t[9]=l=>H.value=!1)},{default:a(()=>[p(s(e.$t("common.cancel")),1)]),_:1}),o(r,{type:"primary",onClick:al,loading:re.value},{default:a(()=>[p(s(e.$t("common.save")),1)]),_:1},8,["loading"])]),default:a(()=>[o(ae,{ref_key:"editClientFormRef",ref:me,model:f,rules:He},{default:a(()=>[o(_,{label:e.$t("clients.nameLabel"),prop:"name"},{default:a(()=>[o(P,{modelValue:f.name,"onUpdate:modelValue":t[6]||(t[6]=l=>f.name=l),placeholder:e.$t("clients.namePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),o(_,{label:e.$t("clients.supplierGroup")},{default:a(()=>[u("div",gt,[(i(!0),c(C,null,V(Q.value,l=>(i(),c("div",{key:l.key},[u("div",ht,s(l.label),1),o(E,{modelValue:f[l.key],"onUpdate:modelValue":n=>f[l.key]=n,multiple:"",placeholder:e.$t("clients.selectSupplierGroup",{type:l.label}),style:{width:"100%"},onChange:n=>fe(f,l.key,n)},{default:a(()=>[(i(!0),c(C,null,V(X.value[l.key],n=>(i(),g(O,{key:n.value,label:n.label,value:n.value},{default:a(()=>[u("span",null,s(n.label),1),n.offline?(i(),g(y,{key:0,type:"danger",size:"small",class:"ml-2"},{default:a(()=>[p(s(e.$t("clients.channelOffline")),1)]),_:1})):v("",!0)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder","onChange"])]))),128))]),u("div",bt,s(e.$t("clients.supplierGroupNote")),1),u("div",vt,s(e.$t("clients.multiplierNote")),1)]),_:1},8,["label"]),o(_,{label:e.$t("clients.dailyLimitLabel")},{default:a(()=>[o(be,{modelValue:f.dailyLimit,"onUpdate:modelValue":t[7]||(t[7]=l=>
1f.dailyLimit=l),min:0,precision:2,step:1,placeholder:e.$t("clients.dailyLimitPlaceholder"),"controls-position":"right",style:{width:"100%"}},null,8,["modelValue","placeholder"]),u("div",_t,s(e.$t("clients.dailyLimitPlaceholder")),1)]),_:1},8,["label"]),o(_,{label:e.$t("clients.allowedModelsLabel")},{default:a(()=>[o(E,{modelValue:f.allowedModels,"onUpdate:modelValue":t[8]||(t[8]=l=>f.allowedModels=l),multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:e.$t("clients.allowedModelsPlaceholder"),style:{width:"100%"}},{default:a(()=>[(i(!0),c(C,null,V(oe.value,l=>(i(),g(ve,{key:l.label,label:l.label},{default:a(()=>[(i(!0),c(C,null,V(l.options,n=>(i(),g(O,{key:n.model_id,label:n.name||n.model_id,value:n.model_id},null,8,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","placeholder"]),u("div",kt,s(e.$t("clients.allowedModelsNote")),1)]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"]),o(J,{modelValue:te.value,"onUpdate:modelValue":t[13]||(t[13]=l=>te.value=l),title:e.$t("clients.importTitle"),width:"500px"},{footer:a(()=>[o(r,{onClick:t[12]||(t[12]=l=>te.value=!1)},{default:a(()=>[p(s(e.$t("common.cancel")),1)]),_:1}),o(r,{type:"primary",onClick:el,loading:de.value},{default:a(()=>[p(s(e.$t("clients.import")),1)]),_:1},8,["loading"])]),default:a(()=>[o(ae,{ref_key:"importClientFormRef",ref:pe,model:T,rules:je},{default:a(()=>[o(_,{label:e.$t("clients.tokenLabel"),prop:"token"},{default:a(()=>[o(P,{modelValue:T.token,"onUpdate:modelValue":t[11]||(t[11]=l=>T.token=l),type:"textarea",rows:4,placeholder:e.$t("clients.importPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"]),o(J,{modelValue:j.value,"onUpdate:modelValue":t[15]||(t[15]=l=>j.value=l),title:e.$t("clients.tokenDialogTitle"),width:"500px"},{footer:a(()=>[o(r,{onClick:t[14]||(t[14]=l=>j.value=!1)},{default:a(()=>[p(s(e.$t("common.close")),1)]),_:1})]),default:a(()=>[u("div",wt,[u("div",Ct,[t[23]||(t[23]=u("p",{class:"text-sm text-gray-600 mb-2"},"Token:",-1)),u("p",$t,s(ue.value),1)]),u("div",xt,[u("p",null,s(e.$t("clients.tokenSafeNote")),1)])])]),_:1},8,["modelValue","title"]),o(J,{modelValue:q.value,"onUpdate:modelValue":t[22]||(t[22]=l=>q.value=l),title:e.$t("clients.batch.title"),width:"700px","close-on-click-modal":!U.value,"close-on-press-escape":!U.value,"show-close":!U.value,onClosed:Ne},{footer:a(()=>[!U.value&&!G.value?(i(),c(C,{key:0},[o(r,{onClick:t[21]||(t[21]=l=>q.value=!1)},{default:a(()=>[p(s(e.$t("common.cancel")),1)]),_:1}),o(r,{type:"primary",onClick:Ee,disabled:z.value.length===0||!m.enableGroup&&!m.enableDailyLimit&&!m.enableAllowedModels},{default:a(()=>[p(s(e.$t("clients.batch.execute")),1)]),_:1},8,["disabled"])],64)):G.value?(i(),g(r,{key:1,type:"primary",onClick:Be},{default:a(()=>[p(s(e.$t("common.close")),1)]),_:1})):v("",!0)]),default:a(()=>[!U.value&&!G.value?(i(),c(C,{key:0},[o(il,{ref_key:"batchTableRef",ref:Fe,data:le.value,"row-key":"id","max-height":"250",onSelectionChange:Pe,class:"mb-4"},{default:a(()=>[o(De,{type:"selection",width:"45","reserve-selection":""}),o(De,{label:e.$t("clients.name"),prop:"name"},null,8,["label"])]),_:1},8,["data"]),z.value.length>0?(i(),c("div",Vt,s(e.$t("clients.batch.selectedCount",{count:z.value.length})),1)):v("",!0),o(ae,{"label-position":"top"},{default:a(()=>[o(_,null,{default:a(()=>[o(_e,{modelValue:m.enableGroup,"onUpdate:modelValue":t[16]||(t[16]=l=>m.enableGroup=l)},{default:a(()=>[p(s(e.$t("clients.batch.setGroup")),1)]),_:1},8,["modelValue"])]),_:1}),m.enableGroup?(i(),g(_,{key:0,label:e.$t("clients.supplierGroup")},{default:a(()=>[u("div",Lt,[(i(!0),c(C,null,V(Q.value,l=>(i(),c("div",{key:l.key},[u("div",Mt,s(l.label),1),o(E,{modelValue:m[l.key],"onUpdate:modelValue":n=>m[l.key]=n,multiple:"",placeholder:e.$t("clients.selectSupplierGroup",{type:l.label}),style:{width:"100%"},onChange:n=>fe(m,l.key,n)},{default:a(()=>[(i(!0),c(C,null,V(X.value[l.key],n=>(i(),g(O,{key:n.value,label:n.label,value:n.value},{default:a(()=>
1[u("span",null,s(n.label),1),n.offline?(i(),g(y,{key:0,type:"danger",size:"small",class:"ml-2"},{default:a(()=>[p(s(e.$t("clients.channelOffline")),1)]),_:1})):v("",!0)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder","onChange"])]))),128))]),u("div",St,s(e.$t("clients.supplierGroupNote")),1),u("div",Dt,s(e.$t("clients.multiplierNote")),1)]),_:1},8,["label"])):v("",!0),o(_,null,{default:a(()=>[o(_e,{modelValue:m.enableDailyLimit,"onUpdate:modelValue":t[17]||(t[17]=l=>m.enableDailyLimit=l)},{default:a(()=>[p(s(e.$t("clients.batch.setDailyLimit")),1)]),_:1},8,["modelValue"])]),_:1}),m.enableDailyLimit?(i(),g(_,{key:1,label:e.$t("clients.dailyLimitLabel")},{default:a(()=>[o(be,{modelValue:m.dailyLimit,"onUpdate:modelValue":t[18]||(t[18]=l=>m.dailyLimit=l),min:0,precision:2,step:1,placeholder:e.$t("clients.dailyLimitPlaceholder"),"controls-position":"right",style:{width:"100%"}},null,8,["modelValue","placeholder"]),u("div",Gt,s(e.$t("clients.dailyLimitPlaceholder")),1)]),_:1},8,["label"])):v("",!0),o(_,null,{default:a(()=>[o(_e,{modelValue:m.enableAllowedModels,"onUpdate:modelValue":t[19]||(t[19]=l=>m.enableAllowedModels=l)},{default:a(()=>[p(s(e.$t("clients.batch.setAllowedModels")),1)]),_:1},8,["modelValue"])]),_:1}),m.enableAllowedModels?(i(),g(_,{key:2,label:e.$t("clients.allowedModelsLabel")},{default:a(()=>[o(E,{modelValue:m.allowedModels,"onUpdate:modelValue":t[20]||(t[20]=l=>m.allowedModels=l),multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:e.$t("clients.allowedModelsPlaceholder"),style:{width:"100%"}},{default:a(()=>[(i(!0),c(C,null,V(oe.value,l=>(i(),g(ve,{key:l.label,label:l.label},{default:a(()=>[(i(!0),c(C,null,V(l.options,n=>(i(),g(O,{key:n.model_id,label:n.name||n.model_id,value:n.model_id},null,8,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","placeholder"]),u("div",Ut,s(e.$t("clients.allowedModelsNote")),1)]),_:1},8,["label"])):v("",!0)]),_:1})],64)):v("",!0),U.value||G.value?(i(),c(C,{key:1},[u("div",Rt,[u("div",At,[u("span",Ft,s(e.$t("clients.batch.progress")),1),u("span",Pt,s($.done)+" / "+s($.total),1)]),o(Y,{percentage:$.total>0?Math.round($.done/$.total*100):0,status:G.value?$.failed>0?"warning":"success":"","stroke-width":18},null,8,["percentage","status"])]),G.value?(i(),c("div",zt,[o(y,{type:"success"},{default:a(()=>[p(s(e.$t("clients.batch.successCount",{count:$.success})),1)]),_:1}),$.failed>0?(i(),g(y,{key:0,type:"danger"},{default:a(()=>[p(s(e.$t("clients.batch.failCount",{count:$.failed})),1)]),_:1})):v("",!0)])):v("",!0),u("div",Nt,[(i(!0),c(C,null,V(F.value,l=>(i(),c("div",{key:l.clientId,class:"flex items-center justify-between px-3 py-2 rounded bg-gray-50 dark:bg-gray-700 text-sm"},[u("span",Bt,s(l.clientName),1),l.status==="pending"?(i(),c("span",Ot,s(e.$t("clients.batch.statusPending")),1)):l.status==="running"?(i(),c("span",Et,[o(d,{class:"is-loading mr-1"},{default:a(()=>[o(D(wl))]),_:1}),p(s(e.$t("clients.batch.statusRunning")),1)])):l.status==="success"?(i(),c("span",It,[o(d,{class:"mr-1"},{default:a(()=>[o(D(Cl))]),_:1}),p(s(e.$t("clients.batch.statusSuccess")),1)])):l.status==="failed"?(i(),c("span",{key:3,class:"text-red-500",title:l.error},[o(d,{class:"mr-1"},{default:a(()=>[o(D($l))]),_:1}),p(s(l.error||e.$t("clients.batch.statusFailed")),1)],8,Ht)):v("",!0)]))),128))])],64)):v("",!0)]),_:1},8,["modelValue","title","close-on-click-modal","close-on-press-escape","show-close"])])])}}}),Xt=Al(qt,[["__scopeId","data-v-52ba9bb1"]]);export{Xt 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.