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