1 line
4.5 KiB
JavaScript
1 line
4.5 KiB
JavaScript
import{_ as e,t}from"./VSelect-3h-EI23Y.js";import{Ar as n,At as r,Dr as i,Er as a,L as o,Nr as s,Tr as c,Xt as l,_i as u,b as d,br as f,in as p,jr as m,qr as h,ri as g,ui as _,v,xi as y}from"./index-a0fi5f-0.js";import{t as b}from"./usePageActivateRefresh-BntaOABK.js";import{t as x}from"./useSnackbar-u_XK4ZNm.js";import{n as S}from"./dataTable-esDY4cOk.js";import{i as C,t as w}from"./VCard-BwwttBcf.js";import{t as T}from"./VTextField-GUQr1tUN.js";import{t as E}from"./VDataTableServer-BysXbZ8p.js";import{a as D,n as O,r as k,t as A}from"./auditNormalize-xrm2MK_4.js";var j=new Set([`batch_install_agent`,`batch_upgrade_agent`,`batch_uninstall_agent`,`batch_detect_path`,`batch_health_check`,`batch_update_category`,`batch_server_op`]);function M(e){return j.has(e)}function N(e){let t=(e||``).trim();if(!t.startsWith(`{`))return null;try{let e=JSON.parse(t);return typeof e.job_id!=`number`||!e.summary?null:e}catch{return null}}function P(e){let t=[e.summary],n=e.failures||[];if(n.length){let e=n.slice(0,3).map(e=>e.server_name).join(`、`);t.push(`失败: ${e}${n.length>3?`…`:``}`)}return t.join(` · `)}var F={class:`font-weight-medium`},I={class:`text-body-2`},L={class:`d-flex align-center ga-2 flex-wrap`},R={class:`text-body-2 text-medium-emphasis`,style:{"max-width":`360px`}},z={class:`text-caption text-medium-emphasis`},B={class:`text-caption text-medium-emphasis`},V=s({name:`AuditPage`,__name:`AuditPage`,setup(s){let j=x(),V=_(!1),H=_([]),U=_(0),W=_(1),G=_(null),K=_(``),q=_(``),J=O,Y=S([{title:`操作`,key:`action`,width:100},{title:`用户`,key:`admin_username`,width:100},{title:`目标`,key:`target`,width:140},{title:`详情`,key:`detail`},{title:`IP`,key:`ip_address`,width:120},{title:`时间`,key:`created_at`,width:160}]);async function X(e=!1){e||(V.value=!0);try{let e=(W.value-1)*50,t=await p.get(`/audit/`,{limit:50,offset:e,action:G.value||void 0,admin_username:K.value||void 0,date_from:q.value||void 0});H.value=A(t.items||[]),U.value=t.total||0}catch{H.value=[],e||j(`加载审计日志失败`,`error`)}finally{e||(V.value=!1)}}function Z(e){return e.startsWith(`create`)||e===`login`?`success`:e.startsWith(`update`)?`info`:e.startsWith(`delete`)||e===`logout`?`error`:e.includes(`execute`)||e.includes(`push`)||e.includes(`retry`)?`warning`:`primary`}function Q(e){return M(e.action)?N(e.detail):null}function $(e){let t=Q(e);return t?P(t):(e.detail||``).trim()||`—`}function ee(e){r(e.job_id,e.summary)}return b(e=>X(e)),(r,s)=>(h(),a(e,{fluid:``,class:`pa-6`},{default:g(()=>[m(w,{elevation:`0`,border:``,rounded:`lg`},{default:g(()=>[m(C,{class:`d-flex align-center`},{default:g(()=>[s[7]||=n(` 审计日志 `,-1),m(v),m(t,{modelValue:G.value,"onUpdate:modelValue":[s[0]||=e=>G.value=e,s[1]||=e=>{W.value=1,X()}],items:u(J),"item-title":`label`,"item-value":`value`,label:`操作类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`200px`},clearable:``},null,8,[`modelValue`,`items`]),m(T,{modelValue:K.value,"onUpdate:modelValue":[s[2]||=e=>K.value=e,s[3]||=e=>{W.value=1,X()}],"prepend-inner-icon":`mdi-account`,label:`用户`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`]),m(T,{modelValue:q.value,"onUpdate:modelValue":[s[4]||=e=>q.value=e,s[5]||=e=>{W.value=1,X()}],"prepend-inner-icon":`mdi-calendar`,label:`日期`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},class:`ml-3`,type:`date`,clearable:``},null,8,[`modelValue`])]),_:1}),m(E,{items:H.value,headers:u(Y),"items-length":U.value,loading:V.value,page:W.value,"items-per-page":50,hover:``,density:`compact`,"onUpdate:page":s[6]||=e=>{W.value=e,X()}},{"item.action":g(({item:e})=>[m(d,{color:Z(e.action),size:`small`,variant:`tonal`,label:``},{default:g(()=>[n(y(u(k)(e.action)),1)]),_:2},1032,[`color`])]),"item.admin_username":g(({item:e})=>[c(`span`,F,y(e.admin_username),1)]),"item.target":g(({item:e})=>[c(`span`,I,y(u(D)(e)),1)]),"item.detail":g(({item:e})=>[c(`div`,L,[c(`span`,R,y($(e)),1),Q(e)?(h(),a(o,{key:0,size:`x-small`,variant:`tonal`,color:`primary`,onClick:f(t=>ee(Q(e)),[`stop`])},{default:g(()=>[...s[8]||=[n(` 查看结果 `,-1)]]),_:1},8,[`onClick`])):i(``,!0)])]),"item.ip_address":g(({item:e})=>[c(`span`,z,y(e.ip_address||`—`),1)]),"item.created_at":g(({item:e})=>[c(`span`,B,y(u(l)(e.created_at)),1)]),"no-data":g(()=>[...s[9]||=[c(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{V as default}; |