index-65-L6oWk.js 4.2 KB

1
  1. import{df as G,fG as Y,fL as Z,cT as j,cS as q,fu as H,fY as s,fZ as J,fw as c,cs as _,h2 as t,h3 as O,g as Q,cu as V,cy as l,cr as A,gA as k,cx as i,ct as w,u as R,fP as f,m as p,ae as W}from"./admin-ChNvQhEc.js";const C="/platform/api-keys",X=r=>G(C,void 0,r),ee=(r,u)=>Y(C,r,u),te=(r,u,y)=>Z(`${C}/${r}`,u,y),ae=(r,u)=>j(`${C}/${r}`,void 0,u),le={class:"flex"},oe={key:0},se={class:"api-key-code"},ne={key:0,class:"created-key-box"},ie=q({__name:"index",setup(r){const u=f(!1),y=f(!1),x=f([]),v=f(!1),n=f(""),g=f({name:""}),b=async()=>{u.value=!0;try{const o=await X();x.value=o.data||[]}finally{u.value=!1}},I=()=>{g.value={name:""},n.value="",v.value=!0},P=async()=>{y.value=!0;try{const o=await ee(g.value);n.value=o.data.api_key,p.success("API Key 创建成功,请立即保存"),await b()}catch(o){p.error(o?.message||"创建失败")}finally{y.value=!1}},$=async o=>{const e=o.status==="active"?"disabled":"active";try{await te(o.id,{status:e}),p.success("状态已更新"),await b()}catch(d){p.error(d?.message||"操作失败")}},h=async o=>{try{await ae(o),p.success("已删除"),await b()}catch(e){p.error(e?.message||"删除失败")}},D=()=>{navigator.clipboard.writeText(n.value),p.success("已复制到剪贴板")};return H(()=>{b()}),(o,e)=>{const d=s("el-button"),m=s("el-table-column"),S=s("el-tag"),B=s("el-popconfirm"),L=s("el-table"),N=s("el-empty"),K=s("el-input"),T=s("el-form-item"),z=s("el-form"),U=s("el-alert"),E=s("el-dialog"),M=J("loading");return c(),_(R,null,{default:t(()=>[O((c(),_(Q,{header:"API Key 管理",backTo:"/model"},{search:t(()=>[A("div",le,[l(d,{type:"primary",onClick:I},{default:t(()=>[...e[5]||(e[5]=[i("创建 API Key",-1)])]),_:1})])]),default:t(()=>[x.value.length>0?(c(),V("div",oe,[l(L,{data:x.value,style:{width:"100%"}},{default:t(()=>[l(m,{prop:"api_key_prefix",label:"API Key","min-width":"200"},{default:t(({row:a})=>[A("code",se,k(a.api_key_prefix),1)]),_:1}),l(m,{prop:"name",label:"名称","min-width":"150"},{default:t(({row:a})=>[i(k(a.name||"未命名"),1)]),_:1}),l(m,{prop:"status",label:"状态",width:"100"},{default:t(({row:a})=>[l(S,{type:a.status==="active"?"success":"info",size:"small"},{default:t(()=>[i(k(a.status==="active"?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),l(m,{prop:"last_used_at",label:"最后使用",width:"180"},{default:t(({row:a})=>[i(k(a.last_used_at||"从未使用"),1)]),_:1}),l(m,{prop:"create_time",label:"创建时间",width:"180"}),l(m,{label:"操作",width:"180",fixed:"right"},{default:t(({row:a})=>[l(d,{size:"small",onClick:F=>$(a)},{default:t(()=>[i(k(a.status==="active"?"禁用":"启用"),1)]),_:2},1032,["onClick"]),l(B,{title:"确定要删除此 API Key 吗?",onConfirm:F=>h(a.id)},{reference:t(()=>[l(d,{size:"small",type:"danger"},{default:t(()=>[...e[6]||(e[6]=[i("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:1})]),_:1},8,["data"])])):(c(),_(N,{key:1,description:"暂无 API Key"}))]),_:1})),[[M,u.value]]),l(E,{modelValue:v.value,"onUpdate:modelValue":e[4]||(e[4]=a=>v.value=a),title:"创建 API Key",width:"480px"},{footer:t(()=>[n.value?w("",!0):(c(),_(d,{key:0,onClick:e[2]||(e[2]=a=>v.value=!1)},{default:t(()=>[...e[8]||(e[8]=[i("取消",-1)])]),_:1})),n.value?w("",!0):(c(),_(d,{key:1,type:"primary",onClick:P,loading:y.value},{default:t(()=>[...e[9]||(e[9]=[i(" 创建 ",-1)])]),_:1},8,["loading"])),n.value?(c(),_(d,{key:2,type:"primary",onClick:e[3]||(e[3]=a=>{v.value=!1,n.value=""})},{default:t(()=>[...e[10]||(e[10]=[i(" 我已保存 ",-1)])]),_:1})):w("",!0)]),default:t(()=>[l(z,{model:g.value,"label-width":"80px"},{default:t(()=>[l(T,{label:"名称"},{default:t(()=>[l(K,{modelValue:g.value.name,"onUpdate:modelValue":e[0]||(e[0]=a=>g.value.name=a),placeholder:"输入 Key 名称(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),n.value?(c(),V("div",ne,[l(U,{title:"API Key 已创建",description:"请立即复制保存,此密钥仅显示一次!",type:"warning","show-icon":"",closable:!1,class:"mb-16"}),l(K,{modelValue:n.value,"onUpdate:modelValue":e[1]||(e[1]=a=>n.value=a),readonly:""},{append:t(()=>[l(d,{onClick:D},{default:t(()=>[...e[7]||(e[7]=[i("复制",-1)])]),_:1})]),_:1},8,["modelValue"])])):w("",!0)]),_:1},8,["modelValue"])]),_:1})}}}),de=W(ie,[["__scopeId","data-v-2a3ef3bc"]]);export{de as default};