task-history-6f569089.js 6.6 KB

1
  1. import{d as q,k as u,e as S,o as J,X as d,a6 as b,f as s,Z as l,u as a,Y as c,E as n,aa as Z,F as $,a2 as X}from"./vue-fae2b924.js";import{e as i,bj as E,aV as H,b3 as M,aG as P,a8 as r,a_ as Q,aZ as _,b4 as W,bk as ee,G as A,V as te}from"./radical-24ede98f.js";import{p as ae,o as se,z as le,J as ne}from"./index-bad227d6.js";const O=ae({requestOptions:{apiUrl:()=>se("monitor")}});function oe(h){return O.get({url:"/search/task/"+h})}function re(){return O.get({url:"/session/list"})}const ie={class:"task-history"},ue={key:1,class:"gantt-container"},de=q({__name:"task-history",setup(h){const C=u([]),T=u(null),Y=u([]),m=u([]),p=u("table"),v=u("default"),D=u(!1),k=u(!1),I=[{title:"会话ID",dataIndex:"id",key:"id",width:80},{title:"开始时间",key:"startTime",width:150,customRender:({record:t})=>s("span",null,[n(" "),g(t.startTime),n(" ")])},{title:"结束时间",key:"endTime",width:150,customRender:({record:t})=>s("span",null,[n(" "),g(t.endTime),n(" ")])}],R=[{title:"任务ID",dataIndex:"id",key:"id",width:80},{title:"类型",dataIndex:"type",key:"type",width:80},{title:"原因",dataIndex:"reason",key:"reason",width:100},{title:"所有者",dataIndex:"owner",key:"owner",width:150},{title:"开始时间",dataIndex:"startTime",key:"startTime",width:150,customRender:({record:t})=>s("span",null,[n(" "),g(t.startTime),n(" ")])},{title:"结束时间",dataIndex:"endTime",key:"endTime",width:150,customRender:({record:t})=>s("span",null,[n(" "),g(t.endTime),n(" ")])},{title:"描述",dataIndex:"description",key:"description"}];function V(t,e){e&&w(t)}function L(t){Y.value=t}const g=t=>{if(!t)return"-";const e=i(t),o=i();return e.isValid()?e.isSame(o,"day")?e.format("HH:mm:ss"):e.isSame(o,"year")?e.format("MM-DD HH:mm"):e.format("YYYY-MM-DD HH:mm"):"-"},z=t=>{var e;return t.id===((e=T.value)==null?void 0:e.id)?"active-row":""},w=t=>{T.value=t,j(t.id)},U=async()=>{D.value=!0;try{const t=await re();C.value=t,t.length>0&&await w(t[0])}catch{A.error("Failed to fetch session list")}finally{D.value=!1}},j=async t=>{k.value=!0;try{const e=await oe(t);m.value=e}catch{A.error("Failed to fetch task list")}finally{k.value=!1}},B=S(()=>{if(!m.value.length)return{start:i().format("YYYY-MM-DD HH:mm"),end:i().add(1,"day").format("YYYY-MM-DD HH:mm")};const t=m.value.map(F=>[i(F.startTime).valueOf(),i(F.endTime).valueOf()]).flat(),e=i(Math.min(...t)),o=i(Math.max(...t)),y=o.diff(e,"minute")*.1;return{start:e.subtract(y,"minute").format("YYYY-MM-DD HH:mm"),end:o.add(y,"minute").format("YYYY-MM-DD HH:mm")}}),G=t=>{const e=t.replace("#",""),o=parseInt(e.substr(0,2),16),f=parseInt(e.substr(2,2),16),y=parseInt(e.substr(4,2),16);return(o*299+f*587+y*114)/1e3<128},x={default:{1:"#1890ff",2:"#52c41a",3:"#f5222d",4:"#faad14",default:"#13c2c2"},creamy:{1:"#FFB6B9",2:"#FAE3D9",3:"#BBDED6",4:"#8AC6D1",default:"#FFD93D"},crimson:{1:"#DC143C",2:"#FF4D4D",3:"#FF6B6B",4:"#FF8787",default:"#FFA07A"},dark:{1:"#096DD9",2:"#237804",3:"#CF1322",4:"#D48806",default:"#08979C"},flare:{1:"#FF6B6B",2:"#4ECDC4",3:"#45B7D1",4:"#96CEB4",default:"#FFEEAD"},fuchsia:{1:"#FF1493",2:"#FF69B4",3:"#DA70D6",4:"#BA55D3",default:"#9370DB"},grove:{1:"#2ECC71",2:"#27AE60",3:"#16A085",4:"#1ABC9C",default:"#3498DB"},"material-blue":{1:"#2196F3",2:"#03A9F4",3:"#00BCD4",4:"#009688",default:"#4CAF50"},sky:{1:"#87CEEB",2:"#87CEFA",3:"#00BFFF",4:"#1E90FF",default:"#4169E1"},slumber:{1:"#2C3E50",2:"#34495E",3:"#7F8C8D",4:"#95A5A6",default:"#BDC3C7"},vue:{1:"#42B883",2:"#35495E",3:"#41B883",4:"#273849",default:"#3FB984"}},K=t=>{const e=x[v.value]||x.default,o=e[t]||e.default,f=G(o);return{background:o,color:f?"#ffffff":"#000000",borderRadius:"4px",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",border:"1px solid rgba(0,0,0,0.1)"}},N=S(()=>{const t={};return m.value.forEach(e=>{const o=e.owner||"未分配";t[o]||(t[o]=[]),t[o].push({startTime:i(e.startTime).format("YYYY-MM-DD HH:mm"),endTime:i(e.endTime).format("YYYY-MM-DD HH:mm"),ganttBarConfig:{id:e.id.toString(),label:`${e.id}: ${e.description||""}`,style:K(e.type)}})}),t});return J(()=>{U()}),(t,e)=>(d(),b("div",ie,[s(a(ee),{gutter:16,class:"full-height"},{default:l(()=>[s(a(E),{span:6,class:"full-height"},{default:l(()=>[s(a(H),{title:"历史进程",bordered:!1,class:"full-height session-card"},{default:l(()=>[s(a(M),{columns:I,"data-source":C.value,loading:D.value,pagination:!1,"row-class-name":z,scroll:{y:"calc(100vh - 260px)"},rowKey:"id",rowSelection:{type:"radio",selectedRowKeys:Y.value,onChange:L,onSelect:V},size:"small"},null,8,["data-source","loading","rowSelection"])]),_:1})]),_:1}),s(a(E),{span:18,class:"full-height"},{default:l(()=>[s(a(H),{bordered:!1,class:"full-height task-card"},{extra:l(()=>[s(a(P),null,{default:l(()=>[p.value==="gantt"?(d(),c(a(r),{key:0,value:v.value,"onUpdate:value":e[0]||(e[0]=o=>v.value=o),style:{width:"130px"}},{default:l(()=>[s(a(r).Option,{value:"default"},{default:l(()=>e[2]||(e[2]=[n("默认主题")])),_:1}),s(a(r).Option,{value:"creamy"},{default:l(()=>e[3]||(e[3]=[n("奶油色")])),_:1}),s(a(r).Option,{value:"crimson"},{default:l(()=>e[4]||(e[4]=[n("深红色")])),_:1}),s(a(r).Option,{value:"dark"},{default:l(()=>e[5]||(e[5]=[n("暗黑")])),_:1}),s(a(r).Option,{value:"flare"},{default:l(()=>e[6]||(e[6]=[n("光晕")])),_:1}),s(a(r).Option,{value:"fuchsia"},{default:l(()=>e[7]||(e[7]=[n("紫红")])),_:1}),s(a(r).Option,{value:"grove"},{default:l(()=>e[8]||(e[8]=[n("森林")])),_:1}),s(a(r).Option,{value:"material-blue"},{default:l(()=>e[9]||(e[9]=[n("材质蓝")])),_:1}),s(a(r).Option,{value:"sky"},{default:l(()=>e[10]||(e[10]=[n("天空")])),_:1}),s(a(r).Option,{value:"slumber"},{default:l(()=>e[11]||(e[11]=[n("暗沉")])),_:1}),s(a(r).Option,{value:"vue"},{default:l(()=>e[12]||(e[12]=[n("Vue风格")])),_:1})]),_:1},8,["value"])):Z("",!0),s(a(Q),{value:p.value,"onUpdate:value":e[1]||(e[1]=o=>p.value=o)},{default:l(()=>[s(a(_),{value:"table"},{default:l(()=>e[13]||(e[13]=[n("表格视图")])),_:1}),s(a(_),{value:"gantt"},{default:l(()=>e[14]||(e[14]=[n("时间轴")])),_:1})]),_:1},8,["value"])]),_:1})]),default:l(()=>[p.value==="table"?(d(),c(a(M),{key:0,columns:R,"data-source":m.value,loading:k.value,pagination:!1,scroll:{y:"calc(100vh - 260px)"},size:"small"},null,8,["data-source","loading"])):(d(),b("div",ue,[m.value.length?(d(),c(a(le),{key:0,"chart-start":B.value.start,"chart-end":B.value.end,"bar-start":"startTime","bar-end":"endTime","color-scheme":v.value,class:"gantt-chart"},{default:l(()=>[(d(!0),b($,null,X(N.value,(o,f)=>(d(),c(a(ne),{key:f,label:f||"未分配",bars:o},null,8,["label","bars"]))),128))]),_:1},8,["chart-start","chart-end","color-scheme"])):(d(),c(a(W),{key:1}))]))]),_:1})]),_:1})]),_:1})]))}});const pe=te(de,[["__scopeId","data-v-5995ac53"]]);export{pe as default};