Files

2 lines
4.8 KiB
JavaScript
Raw Permalink Normal View History

import{d as E,o as F,b as g,c as f,f as o,w as n,V as P,n as j,e as d,r as w,v as z,E as K,i,a2 as O,p as $,W as J,T as Q,U as W,g as c,t as p,h as q}from"./index-BCt9h3P8.js";import{Q as G}from"./admin-yH4tDL3a.js";import{_ as H}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CTvVpU0T.js";const X={class:"audit-logs"},Z={class:"detail-block"},ee={class:"detail-json"},te={key:0,class:"detail-meta"},ae={class:"pagination-bar"},oe=E({__name:"AuditLogs",setup(le){const m=w(!1),v=w([]),l=z({employeeId:"",action:"",dateRange:null}),s=z({page:1,pageSize:50,total:0}),V=["config_change","login","logout","permission_change","role_assign","role_revoke","agent_create","agent_update","agent_delete","integration_update"],S=[{text:"最近24小时",value:()=>{const a=new Date,e=new Date;return e.setTime(e.getTime()-3600*1e3*24),[e,a]}},{text:"最近7天",value:()=>{const a=new Date,e=new Date;return e.setTime(e.getTime()-3600*1e3*24*7),[e,a]}}];function D(){const a={page:s.page,page_size:s.pageSize};return l.employeeId&&(a.employee_id=l.employeeId),l.action&&(a.action=l.action),l.dateRange&&l.dateRange.length===2&&(a.from=`${l.dateRange[0]}T00:00:00`,a.to=`${l.dateRange[1]}T23:59:59`),a}async function u(){m.value=!0;try{const{data:a}=await G(D());a.code===0&&(v.value=a.data.items||[],s.total=a.data.total||0)}catch{K.error("加载安全审计日志失败")}finally{m.value=!1}}function y(){s.page=1,u()}function k(){l.employeeId="",l.action="",l.dateRange=null,s.page=1,u()}function x(){s.page=1,u()}function C(a){if(!a)return"—";const e=new Date(a);return isNaN(e.getTime())?a:e.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function T(a){if(a==null)return"—";try{return JSON.stringify(a,null,2)}catch{return String(a)}}return F(()=>u()),(a,e)=>{const I=i("el-input"),_=i("el-form-item"),N=i("el-option"),R=i("el-select"),U=i("el-date-picker"),b=i("el-button"),L=i("el-form"),M=i("el-card"),r=i("el-table-column"),h=i("el-tag"),A=i("el-table"),B=i("el-pagination"),Y=O("loading");return g(),f("div",X,[o(M,{class:"filter-bar",shadow:"never"},{default:n(()=>[o(L,{inline:!0,onSubmit:e[3]||(e[3]=$(()=>{},["prevent"]))},{default:n(()=>[o(_,{label:"操作人"},{default:n(()=>[o(I,{modelValue:l.employeeId,"onUpdate:modelValue":e[0]||(e[0]=t=>l.employeeId=t),placeholder:"employee_id",clearable:"",style:{width:"200px"},onKeyup:J(y,["enter"])},null,8,["modelValue"])]),_:1}),o(_,{label:"操作类型"},{default:n(()=>[o(R,{modelValue:l.action,"onUpdate:modelValue":e[1]||(e[1]=t=>l.action=t),placeholder:"全部",clearable:"",filterable:"","allow-create":"","default-first-option":"",style:{width:"200px"}},{default:n(()=>[(g(),f(Q,null,W(V,t=>o(N,{key:t,label:t,value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),o(_,{label:"时间范围"},{default:n(()=>[o(U,{modelValue:l.dateRange,"onUpdate:modelValue":e[2]||(e[2]=t=>l.dateRange=t),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",shortcuts:S},null,8,["modelValue"])]),_:1}),o(_,null,{default:n(()=>[o(b,{type:"primary",onClick:y},{default:n(()=>[...e[6]||(e[6]=[c("查询",-1)])]),_:1}),o(b,{onClick:k},{default:n(()=>[...e[7]||(e[7]=[c("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),P((g(),j(A,{data:v.value,stripe:"",style:{width:"100%"}},{default:n(()=>[o(r,{type:"expand"},{default:n(({row:t})=>[d("div",Z,[e[8]||(e[8]=d("div",{class:"detail-title"},"详情 (details)",-1)),d("pre",ee,p(T(t.details)),1),t.resource_id?(g(),f("div",te,[d("span",null,"资源ID"+p(t.resource_id),1),d("span",null,"UA"+p(t.user_agent||"—"),1)])):q("",!0)])]),_:1}),o(r,{prop:"created_at",label:"时间",width:"170"},{default:n(({row:t})=>[c(p(C(t.created_at)),1)]),_:1}),o(r,{prop:"employee_id",label:"操作人",width:"130","show-overflow-tooltip":""}),o(r,{prop:"action",label:"操作类型",width:"150"},{default:n(({row:t})=>[o(h,{size:"small",effect:"plain"},{default:n(()=>[c(p(t.action||"—"),1)]),_:2},1024)]),_:1}),o(r,{prop:"resour