Files
zsglpt/static/admin/assets/LogsPage-l4b_fzxa.js

2 lines
5.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{b as H}from"./users-BfeeRY2o.js";import{d as J,e as K}from"./tasks-Dm4gmqjR.js";import{_ as Q,r as n,y as W,o as X,c as N,a as d,b as t,w as o,d as s,e as Z,g as V,h as c,F as ee,s as te,k as E,j as ae,t as p,E as P,m as le}from"./index-BrN7V6n-.js";const oe={class:"page-stack"},ne={class:"app-page-title"},se={class:"toolbar"},ue={class:"filters"},re={class:"table-wrap"},ie={class:"ellipsis"},de={class:"pagination"},ce={class:"page-hint app-muted"},x=20,pe={__name:"LogsPage",setup(me){const k=n(!1),M=n([]),h=n(0),m=n(1),F=n(!1),B=n([]),f=n(""),_=n(""),g=n(""),b=n(""),y=n(""),S=W(()=>Math.max(1,Math.ceil((h.value||0)/x)));function I(l){if(l==null)return"-";const e=Number(l);return Number.isFinite(e)?e<60?`${e}`:`${Math.floor(e/60)}${e%60}`:"-"}function U(l){return{manual:{label:"手动",type:"success"},scheduled:{label:"定时",type:"primary"},immediate:{label:"即时",type:"warning"},resumed:{label:"恢复",type:"info"}}[l]||{label:l||"手动",type:"info"}}function T(l){return l==="success"?{label:"成功",type:"success"}:l==="failed"?{label:"失败",type:"danger"}:{label:l||"-",type:"info"}}async function Y(){F.value=!0;try{const l=await H();B.value=(l||[]).map(e=>({id:e.id,username:e.username}))}catch{B.value=[]}finally{F.value=!1}}async function v(){k.value=!0;try{const l=(m.value-1)*x,e={limit:x,offset:l};f.value&&(e.date=f.value),_.value&&(e.status=_.value),g.value&&(e.source=g.value),b.value&&(e.user_id=b.value),y.value&&(e.account=y.value);const r=await J(e);M.value=r?.logs||[],h.value=r?.total||0}catch{M.value=[],h.value=0}finally{k.value=!1}}function $(){m.value=1,v()}function O(){f.value="",_.value="",g.value="",b.value="",y.value="",m.value=1,v()}async function j(){let l;try{const e=await P.prompt("请输入要清理多少天前的日志默认30天","清理旧日志",{inputValue:"30",confirmButtonText:"下一步",cancelButtonText:"取消",inputValidator:r=>{const w=parseInt(String(r),10);return Number.isFinite(w)&&w>=1},inputErrorMessage:"请输入有效的天数大于0的整数"});l=parseInt(String(e.value),10)}catch{return}try{await P.confirm(`确定要删除 ${l} 天前的所有日志吗?此操作不可恢复!`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await K(l);le.success(e?.message||"清理成功"),m.value=1,await v()}catch{}}return X(async()=>{await Y(),await v()}),(l,e)=>{const r=s("el-button"),w=s("el-date-picker"),u=s("el-option"),C=s("el-select"),z=s("el-input"),D=s("el-card"),i=s("el-table-column"),L=s("el-tag"),A=s("el-tooltip"),R=s("el-table"),q=s("el-pagination"),G=Z("loading");return V(),N("div",oe,[d("div",ne,[e[7]||(e[7]=d("h2",null,"任务日志",-1)),d("div",se,[t(r,{onClick:v},{default:o(()=>[...e[6]||(e[6]=[c("刷新",-1)])]),_:1})])]),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[d("div",ue,[t(w,{modelValue:f.value,"onUpdate:modelValue":e[0]||(e[0]=a=>f.value=a),type:"date","value-format":"YYYY-MM-DD",placeholder:"日期",style:{width:"150px"}},null,8,["modelValue"]),t(C,{modelValue:_.value,"onUpdate:modelValue":e[1]||(e[1]=a=>_.value=a),placeholder:"状态",style:{width:"120px"}},{default:o(()=>[t(u,{label:"全部",value:""}),t(u,{label:"成功",value:"success"}),t(u,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),t(C,{modelValue:g.value,"onUpdate:modelValue":e[2]||(e[2]=a=>g.value=a),placeholder:"来源",style:{width:"120px"}},{default:o(()=>[t(u,{label:"全部",value:""}),t(u,{label:"手动",value:"manual"}),t(u,{label:"定时",value:"scheduled"}),t(u,{label:"即时",value:"immediate"}),t(u,{label:"恢复",value:"resumed"})]),_:1},8,["modelValue"]),t(C,{modelValue:b.value,"onUpdate:modelValue":e[3]||(e[3]=a=>b.value=a),placeholder:"用户",style:{width:"140px"},loading:F.value,filterable:"",clearable:""},{default:o(()=>[t(u,{label:"全部",value:""}),(V(!0),N(ee,null,te(B.value,a=>(V(),E(u,{key:a.id,label:a.username,value:String(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),t(z,{modelValue:y.value,"onUpdate:modelValue":e[4]||(e[4]=a=>y.value=a),placeholder:"账号关键字",style:{width:"170px"},clearable:""},null,8,["modelValue"]),t(r,{type:"primary",onClick:$},{default:o(()=>[...e[8]||(e[8]=[c("筛选",-1)])]),_:1}),t(r,{onClick:O},{default:o(()=>[...e[9]||(e[9]=[c("重置",-1)])]),_:1}),t(r,{type:"danger",plain:"",onClick:j},{default:o(()=>[...e[10]||(e[10]=[c("清理旧日志",-1)])]),_:1})])]),_:1}),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[d("div",re,[ae((V(),E(R,{data:M.value,style:{width:"100%"}},{default:o(()=>[t(i,{prop:"created_at",label:"时间",width:"180"}),t(i,{label:"来源",width:"90"},{default:o(({row:a})=>[t(L,{type:U(a.source).type,effect:"light"},{default:o(()=>[c(p(U(a.source).label),1)]),_:2},1032,["type"])]),_:1}),t(i,{prop:"user_username",label:"用户",width:"140"}),t(i,{prop:"username",label:"账号",width:"160"}),t(i,{prop:"browse_type",label:"浏览类型",width:"120"}),t(i,{label:"状态",width:"90"},{default:o(({row:a})=>[t(L,{type:T(a.status).type,effect:"light"},{default:o(()=>[c(p(T(a.status).label),1)]),_:2},1032,["type"])]),_:1}),t(i,{label:"内容/附件",width:"110"},{default:o(({row:a})=>[c(p(a.total_items)+" / "+p(a.total_attachments),1)]),_:1}),t(i,{label:"用时",width:"90"},{default:o(({row:a})=>[c(p(I(a.duration)),1)]),_:1}),t(i,{label:"失败原因","min-width":"220"},{default:o(({row:a})=>[t(A,{content:a.error_message||"",placement:"top","show-after":300},{default:o(()=>[d("span",ie,p(a.error_message||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[G,k.value]])]),d("div",de,[t(q,{"current-page":m.value,"onUpdate:currentPage":e[5]||(e[5]=a=>m.value=a),"page-size":x,total:h.value,layout:"prev, pager, next, jumper, ->, total",onCurrentChange:v},null,8,["current-page","total"]),d("div",ce,"第 "+p(m.value)+" / "+p(S.value)+" 页",1)])]),_:1})])}}},ge=Q(pe,[["__scopeId","data-v-a7a68d16"]]);export{ge as default};