51948469c2
- Stop ignoring web/app/index.html and web/app/assets/ - Bundle index-DBKIQT7H.js from current vite build (~101MB assets) Co-authored-by: Cursor <cursoragent@cursor.com>
3 lines
20 KiB
JavaScript
3 lines
20 KiB
JavaScript
import{$n as e,A as t,Dr as n,F as r,Hn as i,Jn as a,L as o,Lt as s,M as c,N as l,O as u,P as d,Pt as ee,Qn as f,Wn as p,Xn as m,Y as h,Yn as g,_r as _,cr as te,fr as v,j as y,jr as b,k as x,q as ne,qn as S,t as C,tr as w,ur as T,w as E,xr as D}from"./index-BIiyrbZh.js";import{a as re}from"./VSelectionControl-CUBoV6gk.js";import{n as O,t as k}from"./VRow-DH3qjAS6.js";import{t as A}from"./VSpacer-BEu8F5oE.js";import{t as ie}from"./useSnackbar-D7YOfKok.js";import{t as ae}from"./VChip-D-RIT7uO.js";import{t as j}from"./VDialog-DQZzzxmq.js";import{i as M,n as oe,r as N,t as se}from"./validation-DMwOxx4a.js";import{t as P}from"./VTextarea-9lp3nz5D.js";import{t as F}from"./VSwitch-DvkBpxxF.js";import{n as I,r as L}from"./useTerminalQuickCommands-Dz-2CxvP.js";var R={key:1,class:`text-medium-emphasis text-body-2 mb-4`},z={class:`text-caption text-medium-emphasis mr-2`,style:{"min-width":`1.5rem`}},B={class:`d-flex flex-wrap ga-2`},V=w({__name:`TerminalQuickCommandsSettings`,setup(i){let s=ie(),{commands:ee,loading:w,load:re,create:O,update:k,remove:M,reorder:oe,customCommands:N,builtinCommands:se}=I(),P=D(!1),F=D(null),V=D(``),H=D(``),U=D(!1),W=D(!1),G=D(!1),ce=D(null),le=D(``);function ue(){F.value=null,V.value=``,H.value=``,P.value=!0}function de(e){F.value=e.id,V.value=e.name,H.value=e.cmd.replace(/\r$/,``),P.value=!0}async function K(){if(!V.value.trim()||!H.value.trim()){s(`名称和命令不能为空`,`warning`);return}let e=H.value.trim();e.endsWith(`\r`)||(e+=`\r`),U.value=!0;try{F.value?await k(F.value,V.value,e):await O(V.value,e),P.value=!1,s(`已保存`)}catch(e){s(e instanceof Error?e.message:`保存失败`,`error`)}finally{U.value=!1}}function fe(e){ce.value=e.id,le.value=e.name,G.value=!0}async function q(){if(ce.value){U.value=!0;try{await M(ce.value),G.value=!1,s(`已删除`)}catch(e){s(e instanceof Error?e.message:`删除失败`,`error`)}finally{U.value=!1}}}async function J(e){let t=N();if(e<=0)return;let n=t.map(e=>e.id),r=n[e-1];n[e-1]=n[e],n[e]=r,await X(n)}async function Y(e){let t=N();if(e>=t.length-1)return;let n=t.map(e=>e.id),r=n[e+1];n[e+1]=n[e],n[e]=r,await X(n)}async function X(e){W.value=!0;try{await oe(e)}catch(e){s(e instanceof Error?e.message:`排序失败`,`error`)}finally{W.value=!1}}return te(()=>{re().catch(e=>s(e.message,`error`))}),(i,s)=>(T(),a(c,{id:`terminal-quick-commands`,elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[e(d,{class:`d-flex align-center flex-wrap ga-2`},{default:_(()=>[e(h,{class:`mr-1`},{default:_(()=>[...s[6]||=[f(`mdi-flash`,-1)]]),_:1}),s[8]||=f(` 终端快捷命令 `,-1),e(A),e(o,{size:`small`,color:`primary`,variant:`flat`,"prepend-icon":`mdi-plus`,onClick:ue},{default:_(()=>[...s[7]||=[f(` 添加命令 `,-1)]]),_:1})]),_:1}),e(y),e(l,null,{default:_(()=>[s[9]||=S(`div`,{class:`text-body-2 text-medium-emphasis mb-4`},` 自定义命令显示在终端栏最前(优先级最高)。终端页仅可点击执行;在此添加、编辑、删除与调整顺序。 `,-1),n(w)?(T(),a(ne,{key:0,indeterminate:``,color:`primary`,class:`mb-3`})):g(``,!0),n(N)().length===0&&!n(w)?(T(),m(`div`,R,` 暂无自定义命令,点击「添加命令」创建。 `)):g(``,!0),n(N)().length?(T(),a(E,{key:2,density:`compact`,class:`mb-4 pa-0`},{default:_(()=>[(T(!0),m(p,null,v(n(N)(),(r,i)=>(T(),a(u,{key:r.id,border:``,rounded:`lg`,class:`mb-2`},{prepend:_(()=>[S(`span`,z,b(i+1),1)]),append:_(()=>[e(o,{icon:`mdi-arrow-up`,size:`x-small`,variant:`text`,disabled:i===0||W.value,onClick:e=>J(i)},null,8,[`disabled`,`onClick`]),e(o,{icon:`mdi-arrow-down`,size:`x-small`,variant:`text`,disabled:i===n(N)().length-1||W.value,onClick:e=>Y(i)},null,8,[`disabled`,`onClick`]),e(o,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,onClick:e=>de(r)},null,8,[`onClick`]),e(o,{icon:`mdi-delete`,size:`x-small`,variant:`text`,color:`error`,onClick:e=>fe(r)},null,8,[`onClick`])]),default:_(()=>[e(x,null,{default:_(()=>[f(b(r.name),1)]),_:2},1024),e(t,{class:`font-mono text-truncate`},{default:_(()=>[f(b(r.cmd),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):g(``,!0),s[10]||=S(`div`,{class:`text-subtitle-2 mb-2`},`系统内置(不可编辑)`,-1),S(`div`,B,[(T(!0),m(p,null,v(n(se)(),e=>(T(),a(ae,{key:e.id,size:`small`,variant:`outlined`,label:``},{default:_(()=>[f(b(e.name),1)]),_:2},1024))),128))])]),_:1}),e(j,{modelValue:P.value,"onUpdate:modelValue":s[3]||=e=>P.value=e,"max-width":`520`},{default:_(()=>[e(c,{border:``},{default:_(()=>[e(d,null,{default:_(()=>[f(b(F.value?`编辑命令`:`添加快捷命令`),1)]),_:1}),e(l,null,{default:_(()=>[e(C,{modelValue:V.value,"onUpdate:modelValue":s[0]||=e=>V.value=e,label:`显示名称`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),s[11]||=S(`div`,{class:`text-body-2 text-medium-emphasis mb-2`},`命令内容(发送时自动追加回车)`,-1),e(L,{modelValue:H.value,"onUpdate:modelValue":s[1]||=e=>H.value=e,multiline:``,rows:4,placeholder:`systemctl status nginx`},null,8,[`modelValue`])]),_:1}),e(r,null,{default:_(()=>[e(A),e(o,{variant:`text`,onClick:s[2]||=e=>P.value=!1},{default:_(()=>[...s[12]||=[f(`取消`,-1)]]),_:1}),e(o,{color:`primary`,variant:`flat`,loading:U.value,onClick:K},{default:_(()=>[...s[13]||=[f(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),e(j,{modelValue:G.value,"onUpdate:modelValue":s[5]||=e=>G.value=e,"max-width":`400`},{default:_(()=>[e(c,{border:``},{default:_(()=>[e(d,null,{default:_(()=>[...s[14]||=[f(`删除命令`,-1)]]),_:1}),e(l,null,{default:_(()=>[f(`确定删除「`+b(le.value)+`」?`,1)]),_:1}),e(r,null,{default:_(()=>[e(A),e(o,{variant:`text`,onClick:s[4]||=e=>G.value=!1},{default:_(()=>[...s[15]||=[f(`取消`,-1)]]),_:1}),e(o,{color:`error`,variant:`flat`,loading:U.value,onClick:q},{default:_(()=>[...s[16]||=[f(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),H={class:`d-flex align-center mb-3`},U={key:0,class:`text-center mb-3`},W=[`src`],G={key:0,class:`d-flex align-center justify-center ga-2 mt-2`},ce={class:`text-caption pa-1 bg-grey-lighten-4 rounded`,style:{"user-select":`all`}},le={key:1},ue={key:1,class:`d-flex ga-2 align-center`},de={class:`d-flex align-center ga-2`},K=w({__name:`SettingsPage`,setup(t){let u=ie(),p=ee(),v=D(!1),x=D({system_name:``,system_title:``,cpu_alert_threshold:80,mem_alert_threshold:80,disk_alert_threshold:80,db_pool_size:10,db_max_overflow:20,telegram_bot_token:``,telegram_chat_id:``}),w=D(!1),E=D(!1),I=D(!1),L=D({current:``,new_pw:``,confirm:``,totp_code:``}),R=D(!1),z=D(``),B=D(``),K=D(``),fe=D(!1),q=D(!1),J=D(``),Y=D(``),X=D(!1),Z=D(!1),pe=D(``),Q=D(!1),$=D(``),me=D(!1),he=D(!1),ge=D(``),_e=D(!1);async function ve(){v.value=!0;try{let e=await s.get(`/settings/`),t=Array.isArray(e)?e:[],n=Object.keys(x.value);for(let e of t){let t=e.key;if(t&&n.includes(t)){let n=e.value;typeof n==`string`&&/^\d+(\.\d+)?$/.test(n)?x.value[t]=Number(n):x.value[t]=n}}}catch{u(`加载设置失败`,`error`)}finally{v.value=!1}}async function ye(){try{let e=await s.get(`/settings/ip-allowlist`);he.value=e.enabled||!1,ge.value=[...e.manual_ips||[],...e.subscription_ips||[]].join(`
|
|
`)}catch{u(`加载白名单失败`,`error`)}}async function be(){w.value=!0;try{let e=Object.entries(x.value).filter(([e])=>[`system_name`,`system_title`,`cpu_alert_threshold`,`mem_alert_threshold`,`disk_alert_threshold`,`db_pool_size`,`db_max_overflow`,`telegram_bot_token`,`telegram_chat_id`].includes(e));for(let[t,n]of e)await s.put(`/settings/${t}`,{value:n});u(`设置已保存`)}catch(e){u(e instanceof Error?e.message:`保存失败`,`error`)}finally{w.value=!1}}async function xe(){E.value=!0;try{await s.post(`/settings/telegram/test`),u(`测试消息已发送`)}catch(e){u(e.message||`发送失败`,`error`)}finally{E.value=!1}}async function Se(){if(L.value.new_pw!==L.value.confirm){u(`两次密码不一致`,`error`);return}R.value=!0;try{let e={current_password:L.value.current,new_password:L.value.new_pw};p.admin?.totp_enabled&&L.value.totp_code&&(e.totp_code=L.value.totp_code),await s.put(`/auth/password`,e),L.value={current:``,new_pw:``,confirm:``,totp_code:``},u(`密码已修改`)}catch(e){u(e instanceof Error?e.message:`修改失败`,`error`)}finally{R.value=!1}}async function Ce(){try{let e=await s.post(`/auth/totp/setup`);z.value=e.qr_code,B.value=e.secret||``}catch(e){u(e instanceof Error?e.message:`生成失败`,`error`)}}async function we(){fe.value=!0;try{await s.post(`/auth/totp/enable`,{code:K.value}),await p.fetchProfile(),z.value=``,K.value=``,u(`TOTP 已启用`)}catch(e){u(e.message||`启用失败`,`error`)}finally{fe.value=!1}}function Te(){q.value=!0}async function Ee(){X.value=!0;try{await s.post(`/auth/totp/disable`,{admin_id:p.admin?.id,current_password:J.value,totp_code:Y.value}),await p.fetchProfile(),q.value=!1,J.value=``,Y.value=``,u(`TOTP 已禁用`)}catch(e){u(e.message||`禁用失败`,`error`)}finally{X.value=!1}}function De(){B.value&&(navigator.clipboard.writeText(B.value),u(`密钥已复制`))}async function Oe(){if(Z.value){Z.value=!1;return}Q.value=!0,$.value=``}async function ke(){if(!$.value){u(`请输入密码`,`error`);return}me.value=!0;try{pe.value=(await s.post(`/settings/api-key/reveal`,{current_password:$.value})).api_key,Z.value=!0,Q.value=!1,$.value=``}catch(e){u(e.message||`验证失败`,`error`)}finally{me.value=!1}}function Ae(){pe.value&&(navigator.clipboard.writeText(pe.value),u(`已复制到剪贴板`))}async function je(){try{await s.post(`/settings/ip-allowlist/toggle`,{enabled:he.value})}catch(e){u(e.message||`操作失败`,`error`)}}async function Me(){_e.value=!0;try{let e=ge.value.split(`
|
|
`).map(e=>e.trim()).filter(Boolean);await s.post(`/settings/ip-allowlist`,{ips:e}),u(`白名单已保存`)}catch(e){u(e.message||`保存失败`,`error`)}finally{_e.value=!1}}return te(()=>{ve(),ye(),p.fetchProfile()}),(t,s)=>(T(),a(re,{fluid:``,class:`pa-6`},{default:_(()=>[e(k,null,{default:_(()=>[e(O,{cols:`12`,lg:`6`},{default:_(()=>[e(c,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[e(d,{class:`d-flex align-center`},{default:_(()=>[e(h,{class:`mr-2`},{default:_(()=>[...s[24]||=[f(`mdi-cog`,-1)]]),_:1}),s[25]||=f(` 系统设置 `,-1)]),_:1}),v.value?(T(),a(ne,{key:0,indeterminate:``,color:`primary`})):g(``,!0),e(y),e(l,null,{default:_(()=>[e(C,{modelValue:x.value.system_name,"onUpdate:modelValue":s[0]||=e=>x.value.system_name=e,label:`系统名称`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[n(M)(`系统名称`)]},null,8,[`modelValue`,`rules`]),e(C,{modelValue:x.value.system_title,"onUpdate:modelValue":s[1]||=e=>x.value.system_title=e,label:`系统标题`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[n(M)(`系统标题`)]},null,8,[`modelValue`,`rules`]),e(y,{class:`my-4`}),s[26]||=S(`div`,{class:`text-subtitle-2 mb-3`},`告警阈值`,-1),e(k,{dense:``},{default:_(()=>[e(O,{cols:`4`},{default:_(()=>[e(C,{modelValue:x.value.cpu_alert_threshold,"onUpdate:modelValue":s[2]||=e=>x.value.cpu_alert_threshold=e,label:`CPU %`,variant:`outlined`,density:`compact`,type:`number`,rules:[n(M)(`阈值`),n(N)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),e(O,{cols:`4`},{default:_(()=>[e(C,{modelValue:x.value.mem_alert_threshold,"onUpdate:modelValue":s[3]||=e=>x.value.mem_alert_threshold=e,label:`内存 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[n(M)(`阈值`),n(N)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),e(O,{cols:`4`},{default:_(()=>[e(C,{modelValue:x.value.disk_alert_threshold,"onUpdate:modelValue":s[4]||=e=>x.value.disk_alert_threshold=e,label:`磁盘 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[n(M)(`阈值`),n(N)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),e(y,{class:`my-4`}),s[27]||=S(`div`,{class:`text-subtitle-2 mb-3`},`连接池`,-1),e(k,{dense:``},{default:_(()=>[e(O,{cols:`6`},{default:_(()=>[e(C,{modelValue:x.value.db_pool_size,"onUpdate:modelValue":s[5]||=e=>x.value.db_pool_size=e,label:`连接池大小`,variant:`outlined`,density:`compact`,type:`number`,rules:[n(M)(),n(se)()]},null,8,[`modelValue`,`rules`])]),_:1}),e(O,{cols:`6`},{default:_(()=>[e(C,{modelValue:x.value.db_max_overflow,"onUpdate:modelValue":s[6]||=e=>x.value.db_max_overflow=e,label:`溢出连接数`,variant:`outlined`,density:`compact`,type:`number`,rules:[n(M)(),n(se)()]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1})]),_:1}),e(r,{class:`px-4 pb-4`},{default:_(()=>[e(A),e(o,{color:`primary`,variant:`flat`,onClick:be,loading:w.value},{default:_(()=>[...s[28]||=[f(`保存设置`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1}),e(V),e(c,{elevation:`0`,border:``,rounded:`lg`},{default:_(()=>[e(d,{class:`d-flex align-center`},{default:_(()=>[e(h,{class:`mr-2`},{default:_(()=>[...s[29]||=[f(`mdi-send`,-1)]]),_:1}),s[30]||=f(` Telegram 推送 `,-1)]),_:1}),e(y),e(l,null,{default:_(()=>[e(C,{modelValue:x.value.telegram_bot_token,"onUpdate:modelValue":s[7]||=e=>x.value.telegram_bot_token=e,label:`Bot Token`,variant:`outlined`,density:`compact`,class:`mb-3`,type:I.value?`text`:`password`,"append-inner-icon":I.value?`mdi-eye`:`mdi-eye-off`,"onClick:appendInner":s[8]||=e=>I.value=!I.value},null,8,[`modelValue`,`type`,`append-inner-icon`]),e(C,{modelValue:x.value.telegram_chat_id,"onUpdate:modelValue":s[9]||=e=>x.value.telegram_chat_id=e,label:`Chat ID`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),e(o,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-message-text`,onClick:xe,loading:E.value},{default:_(()=>[...s[31]||=[f(`发送测试消息`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1}),e(O,{cols:`12`,lg:`6`},{default:_(()=>[e(c,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[e(d,{class:`d-flex align-center`},{default:_(()=>[e(h,{class:`mr-2`},{default:_(()=>[...s[32]||=[f(`mdi-lock`,-1)]]),_:1}),s[33]||=f(` 修改密码 `,-1)]),_:1}),e(y),e(l,null,{default:_(()=>[e(C,{modelValue:L.value.current,"onUpdate:modelValue":s[10]||=e=>L.value.current=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[n(M)(`密码`)]},null,8,[`modelValue`,`rules`]),e(C,{modelValue:L.value.new_pw,"onUpdate:modelValue":s[11]||=e=>L.value.new_pw=e,label:`新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[n(M)(`密码`)]},null,8,[`modelValue`,`rules`]),e(C,{modelValue:L.value.confirm,"onUpdate:modelValue":s[12]||=e=>L.value.confirm=e,label:`确认新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[n(M)(`确认密码`),n(oe)(()=>L.value.new_pw)]},null,8,[`modelValue`,`rules`]),n(p).admin?.totp_enabled?(T(),a(C,{key:0,modelValue:L.value.totp_code,"onUpdate:modelValue":s[13]||=e=>L.value.totp_code=e,label:`TOTP 验证码`,variant:`outlined`,density:`compact`,type:`text`,inputmode:`numeric`,maxlength:`6`,class:`mb-3`,rules:n(p).admin?.totp_enabled?[n(M)(`验证码`)]:[]},null,8,[`modelValue`,`rules`])):g(``,!0)]),_:1}),e(r,{class:`px-4 pb-4`},{default:_(()=>[e(A),e(o,{color:`primary`,variant:`flat`,onClick:Se,loading:R.value},{default:_(()=>[...s[34]||=[f(`修改密码`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1}),e(c,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[e(d,{class:`d-flex align-center`},{default:_(()=>[e(h,{class:`mr-2`},{default:_(()=>[...s[35]||=[f(`mdi-shield-key`,-1)]]),_:1}),s[36]||=f(` 双因素认证 (TOTP) `,-1)]),_:1}),e(y),e(l,null,{default:_(()=>[S(`div`,H,[s[37]||=S(`span`,{class:`text-body-2`},`状态:`,-1),e(ae,{color:n(p).admin?.totp_enabled?`success`:`grey`,size:`small`,variant:`tonal`,label:``,class:`ml-2`},{default:_(()=>[f(b(n(p).admin?.totp_enabled?`已启用`:`未启用`),1)]),_:1},8,[`color`])]),z.value?(T(),m(`div`,U,[S(`img`,{src:z.value,alt:`TOTP QR`,style:{"max-width":`200px`}},null,8,W),B.value?(T(),m(`div`,G,[S(`code`,ce,b(B.value),1),e(o,{size:`x-small`,variant:`text`,icon:`mdi-content-copy`,onClick:De})])):g(``,!0),s[38]||=S(`div`,{class:`text-caption text-medium-emphasis mt-1`},`用认证器 App 扫描二维码或手动输入密钥`,-1)])):g(``,!0),n(p).admin?.totp_enabled?(T(),a(o,{key:2,size:`small`,variant:`tonal`,color:`error`,"prepend-icon":`mdi-shield-off`,onClick:Te},{default:_(()=>[...s[41]||=[f(`禁用 TOTP`,-1)]]),_:1})):(T(),m(`div`,le,[z.value?(T(),m(`div`,ue,[e(C,{modelValue:K.value,"onUpdate:modelValue":s[14]||=e=>K.value=e,label:`验证码`,variant:`outlined`,density:`compact`,style:{"max-width":`160px`}},null,8,[`modelValue`]),e(o,{color:`primary`,variant:`flat`,size:`small`,onClick:we,loading:fe.value},{default:_(()=>[...s[40]||=[f(`启用`,-1)]]),_:1},8,[`loading`])])):(T(),a(o,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-qrcode`,onClick:Ce},{default:_(()=>[...s[39]||=[f(`生成二维码`,-1)]]),_:1}))]))]),_:1})]),_:1}),e(c,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[e(d,{class:`d-flex align-center`},{default:_(()=>[e(h,{class:`mr-2`},{default:_(()=>[...s[42]||=[f(`mdi-key`,-1)]]),_:1}),s[43]||=f(` API Key `,-1)]),_:1}),e(y),e(l,null,{default:_(()=>[S(`div`,de,[e(C,{"model-value":Z.value?pe.value:`••••••••`,label:`API Key`,variant:`outlined`,density:`compact`,readonly:``,type:Z.value?`text`:`password`,style:{"max-width":`320px`}},null,8,[`model-value`,`type`]),e(o,{variant:`text`,size:`small`,icon:Z.value?`mdi-eye-off`:`mdi-eye`,onClick:Oe},null,8,[`icon`]),e(o,{variant:`text`,size:`small`,icon:`mdi-content-copy`,onClick:Ae})])]),_:1})]),_:1}),e(c,{elevation:`0`,border:``,rounded:`lg`},{default:_(()=>[e(d,{class:`d-flex align-center`},{default:_(()=>[e(h,{class:`mr-2`},{default:_(()=>[...s[44]||=[f(`mdi-ip-network`,-1)]]),_:1}),s[45]||=f(` IP 白名单 `,-1)]),_:1}),e(y),e(l,null,{default:_(()=>[e(F,{modelValue:he.value,"onUpdate:modelValue":[s[15]||=e=>he.value=e,je],label:`启用 IP 白名单`,color:`primary`,density:`compact`,"hide-details":``,class:`mb-3`},null,8,[`modelValue`]),e(P,{modelValue:ge.value,"onUpdate:modelValue":s[16]||=e=>ge.value=e,label:`IP 列表(每行一个)`,variant:`outlined`,density:`compact`,rows:`4`,class:`mb-2`},null,8,[`modelValue`]),e(o,{size:`small`,variant:`tonal`,onClick:Me,loading:_e.value},{default:_(()=>[...s[46]||=[f(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1})]),_:1}),e(j,{modelValue:Q.value,"onUpdate:modelValue":s[19]||=e=>Q.value=e,"max-width":`400`},{default:_(()=>[e(c,{border:``},{default:_(()=>[e(d,null,{default:_(()=>[...s[47]||=[f(`验证身份`,-1)]]),_:1}),e(l,null,{default:_(()=>[s[48]||=S(`div`,{class:`text-body-2 text-medium-emphasis mb-3`},`请输入当前密码以查看 API Key`,-1),e(C,{modelValue:$.value,"onUpdate:modelValue":s[17]||=e=>$.value=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,autofocus:``,onKeydown:i(ke,[`enter`]),rules:[n(M)(`密码`)]},null,8,[`modelValue`,`rules`])]),_:1}),e(r,null,{default:_(()=>[e(A),e(o,{variant:`text`,onClick:s[18]||=e=>Q.value=!1},{default:_(()=>[...s[49]||=[f(`取消`,-1)]]),_:1}),e(o,{color:`primary`,variant:`flat`,onClick:ke,loading:me.value},{default:_(()=>[...s[50]||=[f(`确认`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),e(j,{modelValue:q.value,"onUpdate:modelValue":s[23]||=e=>q.value=e,"max-width":`400`},{default:_(()=>[e(c,{border:``},{default:_(()=>[e(d,null,{default:_(()=>[...s[51]||=[f(`禁用 TOTP`,-1)]]),_:1}),e(l,null,{default:_(()=>[e(C,{modelValue:J.value,"onUpdate:modelValue":s[20]||=e=>J.value=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-2`,rules:[n(M)()]},null,8,[`modelValue`,`rules`]),e(C,{modelValue:Y.value,"onUpdate:modelValue":s[21]||=e=>Y.value=e,label:`验证码`,variant:`outlined`,density:`compact`,rules:[n(M)()]},null,8,[`modelValue`,`rules`])]),_:1}),e(r,null,{default:_(()=>[e(A),e(o,{variant:`text`,onClick:s[22]||=e=>q.value=!1},{default:_(()=>[...s[52]||=[f(`取消`,-1)]]),_:1}),e(o,{color:`error`,variant:`flat`,onClick:Ee,loading:X.value},{default:_(()=>[...s[53]||=[f(`禁用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{K as default}; |