Files
Nexus/web/app/assets/AuditPage-CR1R3oad.js
T
Nexus Agent 0b2d7ac50d feat(scripts): 异步执行、全局进度看板与完成提示音设置
脚本 exec 立即返回 running 并在后台跑批次;/ws/alerts 推送 script_progress/complete;
新增 ScriptRunsPage、Telegram 汇总通知与可配置的浏览器完成提示音。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 07:07:02 +08:00

1 line
3.4 KiB
JavaScript

import{_ as e,t,v as n}from"./VSelect-BBtNL0eJ.js";import{B as r,Cr as i,F as a,Gr as o,Mr as s,N as c,R as l,Yr as u,dr as d,fr as f,or as p,pr as m,qt as h,sr as g,t as _,xr as v,zr as y}from"./index-DXg_pn7T.js";import{n as b}from"./dataTable-esDY4cOk.js";import{t as x}from"./VDataTableServer-CAOCfrD0.js";import{a as S,n as C,r as w,t as T}from"./auditNormalize-bmSA0RyN.js";var E={class:`font-weight-medium`},D={class:`text-body-2`},O={class:`text-body-2 text-medium-emphasis text-truncate`,style:{"max-width":`300px`,display:`inline-block`}},k={class:`text-caption text-medium-emphasis`},A={class:`text-caption text-medium-emphasis`},j=m({__name:`AuditPage`,setup(m){let j=e(),M=y(!1),N=y([]),P=y(0),F=y(1),I=y(null),L=y(``),R=y(``),z=C,B=b([{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 V(){M.value=!0;try{let e=(F.value-1)*50,t=await h.get(`/audit/`,{limit:50,offset:e,action:I.value||void 0,admin_username:L.value||void 0,date_from:R.value||void 0});N.value=T(t.items||[]),P.value=t.total||0}catch{N.value=[],j(`加载审计日志失败`,`error`)}finally{M.value=!1}}function H(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`}return v(()=>V()),(e,m)=>(i(),g(n,{fluid:``,class:`pa-6`},{default:s(()=>[f(l,{elevation:`0`,border:``,rounded:`lg`},{default:s(()=>[f(r,{class:`d-flex align-center`},{default:s(()=>[m[7]||=d(` 审计日志 `,-1),f(c),f(t,{modelValue:I.value,"onUpdate:modelValue":[m[0]||=e=>I.value=e,m[1]||=e=>{F.value=1,V()}],items:o(z),"item-title":`label`,"item-value":`value`,label:`操作类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`200px`},clearable:``},null,8,[`modelValue`,`items`]),f(_,{modelValue:L.value,"onUpdate:modelValue":[m[2]||=e=>L.value=e,m[3]||=e=>{F.value=1,V()}],"prepend-inner-icon":`mdi-account`,label:`用户`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`]),f(_,{modelValue:R.value,"onUpdate:modelValue":[m[4]||=e=>R.value=e,m[5]||=e=>{F.value=1,V()}],"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}),f(x,{items:N.value,headers:o(B),"items-length":P.value,loading:M.value,page:F.value,"items-per-page":50,hover:``,density:`compact`,"onUpdate:page":m[6]||=e=>{F.value=e,V()}},{"item.action":s(({item:e})=>[f(a,{color:H(e.action),size:`small`,variant:`tonal`,label:``},{default:s(()=>[d(u(o(w)(e.action)),1)]),_:2},1032,[`color`])]),"item.admin_username":s(({item:e})=>[p(`span`,E,u(e.admin_username),1)]),"item.target":s(({item:e})=>[p(`span`,D,u(o(S)(e.resource_type))+u(e.resource_id?` #${e.resource_id}`:``),1)]),"item.detail":s(({item:e})=>[p(`span`,O,u(e.detail||`—`),1)]),"item.ip_address":s(({item:e})=>[p(`span`,k,u(e.ip_address||`—`),1)]),"item.created_at":s(({item:e})=>[p(`span`,A,u(e.created_at),1)]),"no-data":s(()=>[...m[8]||=[p(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{j as default};