1 line
3.9 KiB
JavaScript
1 line
3.9 KiB
JavaScript
import{t as e}from"./VDataTable-pRRodit6.js";import{_ as t}from"./VSelect-3h-EI23Y.js";import{Ar as n,Er as r,L as i,Nr as a,Or as o,Tr as s,Wr as c,_i as l,b as u,jr as d,qr as f,ri as p,ui as m,v as h,wr as g,xi as _}from"./index-a0fi5f-0.js";import{t as v}from"./VTextField-GUQr1tUN.js";import{n as y,r as b}from"./status-XDgjPQrL.js";import{t as x}from"./useBtPanelLogin-DDcleXPj.js";import{T as S}from"./btpanel-BsL25ffd.js";var C={class:`d-flex flex-wrap align-center ga-3 mb-4`},w={key:1,class:`text-medium-emphasis text-caption`},T={class:`text-caption text-truncate d-inline-block`,style:{"max-width":`220px`}},E=a({name:`BtPanelLoginPage`,__name:`BtPanelLoginPage`,setup(a){let E=m(!1),D=m(``),O=m([]),k=m([]),{loadingId:A,openBtLogin:j}=x(),M=[{title:`名称`,key:`name`,minWidth:120},{title:`地址`,key:`domain`,minWidth:120},{title:`状态`,key:`status`,width:88,sortable:!0},{title:`分类`,key:`category`,minWidth:80},{title:`API`,key:`configured`,width:110,sortable:!1},{title:`引导`,key:`bootstrap_state`,width:100,sortable:!1},{title:`面板地址`,key:`base_url`,minWidth:160,sortable:!1},{title:`操作`,key:`actions`,width:200,sortable:!1,align:`end`}],N={pending:`等待获取`,installing:`安装中`,ready:`已完成`,failed:`SSH 失败`,disabled:`已关闭`};function P(e){return N[e]??e}function F(e){return e.configured||e.bootstrap_state===`ready`?`success`:e.bootstrap_state===`failed`?`error`:e.bootstrap_state===`installing`?`warning`:`default`}let I=g(()=>{let e=D.value.trim().toLowerCase();return e?O.value.filter(t=>[t.name,t.domain,t.category??``,t.base_url??``,b(t.status)].join(` `).toLowerCase().includes(e)):O.value});async function L(){E.value=!0;try{O.value=await S(),k.value=k.value.filter(e=>O.value.some(t=>t.id===e))}catch(e){window.$snackbar?.(e instanceof Error?e.message:`加载服务器列表失败`,`error`)}finally{E.value=!1}}async function R(e){let t=!e.configured;await j(e.id,{needsBootstrap:t}),t&&await L()}return c(()=>{L()}),(a,c)=>(f(),r(t,{fluid:``,class:`pa-6`},{default:p(()=>[s(`div`,C,[c[2]||=s(`div`,null,[s(`h1`,{class:`text-h6 font-weight-bold`},`宝塔 · 服务器列表`),s(`p`,{class:`text-caption text-medium-emphasis mb-0`},` 批量获取 API 请在「服务器」页勾选后使用批量栏;配置完成后可一键登录面板 `)],-1),d(h),d(v,{modelValue:D.value,"onUpdate:modelValue":c[0]||=e=>D.value=e,density:`compact`,"hide-details":``,clearable:``,"prepend-inner-icon":`mdi-magnify`,label:`搜索名称 / IP / 分类`,style:{"max-width":`320px`,"min-width":`200px`}},null,8,[`modelValue`])]),d(e,{modelValue:k.value,"onUpdate:modelValue":c[1]||=e=>k.value=e,headers:M,items:I.value,loading:E.value,density:`compact`,"item-value":`id`,"show-select":``,hover:``},{"item.status":p(({item:e})=>[d(u,{color:l(y)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:p(()=>[n(_(l(b)(e.status)),1)]),_:2},1032,[`color`])]),"item.configured":p(({item:e})=>[d(u,{size:`x-small`,color:e.configured?`success`:`warning`,variant:`tonal`},{default:p(()=>[n(_(e.configured?`API 已配置`:`未配置`),1)]),_:2},1032,[`color`])]),"item.bootstrap_state":p(({item:e})=>[e.bootstrap_state?(f(),r(u,{key:0,size:`x-small`,color:F(e),variant:`tonal`},{default:p(()=>[n(_(P(e.bootstrap_state)),1)]),_:2},1032,[`color`])):(f(),o(`span`,w,`—`))]),"item.base_url":p(({item:e})=>[s(`span`,T,_(e.base_url||`—`),1)]),"item.actions":p(({item:e})=>[d(i,{size:`small`,variant:`tonal`,color:`primary`,"prepend-icon":`mdi-open-in-new`,loading:l(A)===e.id,title:e.configured?`打开宝塔临时登录`:`将自动获取 API 后打开面板`,onClick:t=>R(e)},{default:p(()=>[...c[3]||=[n(` 一键登录 `,-1)]]),_:1},8,[`loading`,`title`,`onClick`]),d(i,{size:`small`,variant:`text`,class:`ml-1`,to:`/btpanel/settings?server_id=${e.id}`},{default:p(()=>[...c[4]||=[n(` 连接配置 `,-1)]]),_:1},8,[`to`])]),_:1},8,[`modelValue`,`items`,`loading`])]),_:1}))}});export{E as default}; |