bea288e414
== 已部署上线 (9项) == - 代办事项真实数据源集成 (企微审批API 8bug修复链) - H5/坐席端 Logo样式统一+绿色背景 - 视频引导页修复 (localStorage key v2) - 坐席端 v9 Vue版本修复 (ElMessage._context) - 截图按钮 v10 修复 (getDisplayMedia user gesture) - 扫码样式恢复+H5扫码登录跳转修复 - H5截图快捷键提示 == 代码完成待部署 (3项) == - 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查) - 会议室预定-小鱼易联终端 (40文件, 40/40测试通过) - IT资产升级审批推送 (asset_service.py) == 需求文档 (2项) == - 坐席端AI辅助消息框-PRD (4项新功能确认) - 坐席端布局优化建议 v2.0 (7天计划) == 新增文档 == - 日报-2026-07-11.md - 知识迭代Bug修复报告-20260711.md - 会议室预定-部署指南.md - CHANGELOG.md 更新 == 测试 == - test_todo_integration.py: 40/40 - test_meetingroom.py: 40/40 - test_bugfix_ki_suggestions.py: 21/21
2 lines
5.1 KiB
JavaScript
2 lines
5.1 KiB
JavaScript
import{d as G,o as M,b as k,c as W,f as t,w as n,V as Y,n as j,e as d,r as b,v as N,E as y,i as s,a2 as q,p as $,W as K,g as c,t as u}from"./index-CcYCuTIa.js";import{R as P,S as H}from"./admin-i6XhhI1Z.js";import{_ as J}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CPDTx6RU.js";const Q={class:"runtime-logs"},X={class:"detail-block"},Z={class:"detail-meta"},ee={class:"detail-message"},te={class:"pagination-bar"},ae=G({__name:"RuntimeLogs",setup(le){const f=b(!1),_=b(!1),R=b([]),o=N({level:"INFO",keyword:"",dateRange:null}),i=N({page:1,pageSize:50,total:0}),D=[{text:"最近24小时",value:()=>{const l=new Date,e=new Date;return e.setTime(e.getTime()-3600*1e3*24),[e,l]}},{text:"最近7天",value:()=>{const l=new Date,e=new Date;return e.setTime(e.getTime()-3600*1e3*24*7),[e,l]}}];function h(l=!1){const e={};return l||(e.page=i.page,e.page_size=i.pageSize),o.level&&(e.level=o.level),o.keyword&&(e.keyword=o.keyword),o.dateRange&&o.dateRange.length===2&&(e.from=`${o.dateRange[0]}T00:00:00`,e.to=`${o.dateRange[1]}T23:59:59`),e}async function g(){f.value=!0;try{const{data:l}=await P(h());l.code===0&&(R.value=l.data.items||[],i.total=l.data.total||0)}catch{y.error("加载运行期日志失败")}finally{f.value=!1}}async function I(){_.value=!0;try{const l=await H(h(!0)),e=window.URL.createObjectURL(l),r=document.createElement("a");r.href=e;const v=new Date().toISOString().replace(/[:.]/g,"-");r.download=`runtime-logs-${v}.log`,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(e),y.success("下载已开始")}catch{y.error("下载运行期日志失败")}finally{_.value=!1}}function C(){i.page=1,g()}function z(){o.level="INFO",o.keyword="",o.dateRange=null,i.page=1,g()}function S(){i.page=1,g()}function T(l){switch((l||"").toUpperCase()){case"DEBUG":return"info";case"INFO":return"success";case"WARNING":return"warning";case"ERROR":case"CRITICAL":return"danger";default:return"info"}}function L(l){if(!l)return"—";const e=new Date(l);return isNaN(e.getTime())?l:e.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return M(()=>g()),(l,e)=>{const r=s("el-option"),v=s("el-select"),m=s("el-form-item"),U=s("el-input"),V=s("el-date-picker"),w=s("el-button"),x=s("el-form"),O=s("el-card"),p=s("el-table-column"),E=s("el-tag"),B=s("el-table"),F=s("el-pagination"),A=q("loading");return k(),W("div",Q,[t(O,{class:"filter-bar",shadow:"never"},{default:n(()=>[t(x,{inline:!0,onSubmit:e[3]||(e[3]=$(()=>{},["prevent"]))},{default:n(()=>[t(m,{label:"级别"},{default:n(()=>[t(v,{modelValue:o.level,"onUpdate:modelValue":e[0]||(e[0]=a=>o.level=a),placeholder:"级别阈值",clearable:"",style:{width:"150px"}},{default:n(()=>[t(r,{label:"DEBUG",value:"DEBUG"}),t(r,{label:"INFO",value:"INFO"}),t(r,{label:"WARNING",value:"WARNING"}),t(r,{label:"ERROR",value:"ERROR"}),t(r,{label:"CRITICAL",value:"CRITICAL"})]),_:1},8,["modelValue"])]),_:1}),t(m,{label:"关键字"},{default:n(()=>[t(U,{modelValue:o.keyword,"onUpdate:modelValue":e[1]||(e[1]=a=>o.keyword=a),placeholder:"消息关键字(子串)",clearable:"",style:{width:"220px"},onKeyup:K(C,["enter"])},null,8,["modelValue"])]),_:1}),t(m,{label:"时间范围"},{default:n(()=>[t(V,{modelValue:o.dateRange,"onUpdate:modelValue":e[2]||(e[2]=a=>o.dateRange=a),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",shortcuts:D},null,8,["modelValue"])]),_:1}),t(m,null,{default:n(()=>[t(w,{type:"primary",onClick:C},{default:n(()=>[...e[6]||(e[6]=[c("查询",-1)])]),_:1}),t(w,{onClick:z},{default:n(()=>[...e[7]||(e[7]=[c("重置",-1)])]),_:1}),t(w,{type:"success",loading:_.value,onClick:I},{default:n(()=>[...e[8]||(e[8]=[c(" 下载命中行 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),Y((k(),j(B,{data:R.value,stripe:"",style:{width:"100%"}},{default:n(()=>[t(p,{type:"expand"},{default:n(({row:a})=>[d("div",X,[d("div",Z,[d("span",null,"模块:"+u(a.module||"—"),1),d("span",null,"函数:"+u(a.function||"—"),1),d("span",null,"行号:"+u(a.line||"—"),1)]),d("pre",ee,u(a.message||"—"),1)])]),_:1}),t(p,{prop:"timestamp",label:"时间",width:"170"},{default:n(({row:a})=>[c(u(L(a.timestamp)),1)]),_:1}),t(p,{prop:"level",label:"级别",width:"110"},{default:n(({row:a})=>[t(E,{type:T(a.level),size:"small",effect:"dark"},{default:n(()=>[c(u(a.level||"—"),1)]),_:2},1032,["type"])]),_:1}),t(p,{prop:"logger",label:"logger",width:"220","show-overflow-tooltip":""}),t(p,{prop:"message",label:"消息","min-width":"320","show-overflow-tooltip":""}),t(p,{prop:"request_id",label:"request_id",width:"200","show-overflow-tooltip":""},{default:n(({row:a})=>[c(u(a.request_id||"—"),1)]),_:1})]),_:1},8,["data"])),[[A,f.value]]),d("div",te,[t(F,{"current-page":i.page,"onUpdate:currentPage":e[4]||(e[4]=a=>i.page=a),"page-size":i.pageSize,"onUpdate:pageSize":e[5]||(e[5]=a=>i.pageSize=a),total:i.total,"page-sizes":[20,50,100],layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:g,onSizeChange:S},null,8,["current-page","page-size","total"])])])}}}),re=J(ae,[["__scopeId","data-v-1782f5da"]]);export{re as default};
|