case-3c1dd866.js 7.2 KB

12
  1. import{bg as lt,bh as q,d as D,Z as _,a1 as b,n as s,a0 as e,a5 as l,a6 as n,a2 as $,a3 as j,$ as k,a7 as C,bm as F,aG as J,dX as rt,at as Q,bo as ct,aC as ut,c as V,r as A,f as it,e as _t,o as dt,j as pt,T as a,a8 as I,a9 as gt,bc as h,aQ as mt,dY as ft,c3 as ht,cm as yt,co as vt,aK as Ct,c1 as kt,bp as xt}from"./index-a8341fa1.js";/* empty css *//* empty css *//* empty css */import"./dayjs-919e6097.js";import{D as bt,_ as wt}from"./index-44447dae.js";import{_ as St}from"./FormItem-0af405a4.js";import"./toInteger-461bf1e0.js";const O=lt({requestOptions:{apiUrl:()=>q("test")}}),G={post(p,t){return O.post({url:p,data:t})},get(p,t){return O.get({url:p,params:t})}},R=p=>G.post("/cases/execute",{names:p}),Mt=()=>G.post("/stop/all",{});const Tt={class:"test-logs-modal"},It={class:"logs-content"},$t=D({__name:"LogsModal",props:{record:{}},setup(p){const t=r=>({idle:"default",running:"processing",success:"success",failed:"error",stopped:"warning"})[r]||"default",S=r=>({idle:"空闲",running:"运行中",success:"成功",failed:"失败",stopped:"已停止"})[r]||r;return(r,u)=>{const g=bt,w=F,M=J,T=wt,d=rt;return _(),b("div",Tt,[s(T,{column:2,bordered:"",style:{"margin-bottom":"16px"}},{default:e(()=>[s(g,{label:"用例名称"},{default:e(()=>[l(n(r.record.name),1)]),_:1}),s(g,{label:"状态"},{default:e(()=>[s(w,{color:t(r.record.status)},{default:e(()=>[l(n(S(r.record.status)),1)]),_:1},8,["color"])]),_:1}),s(g,{label:"描述"},{default:e(()=>[l(n(r.record.description),1)]),_:1}),s(g,{label:"任务"},{default:e(()=>[s(M,null,{default:e(()=>[(_(!0),b($,null,j(r.record.tasks,y=>(_(),k(w,{key:y.action,color:"blue"},{default:e(()=>[l(n(y.action)+" "+n(y.format)+" "+n(y.delay/1e9)+"s ",1)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),C("div",It,[u[0]||(u[0]=C("h4",null,"执行日志",-1)),s(d,{value:r.record.logs||"暂无日志信息",rows:15,readonly:"",style:{"font-family":"'Courier New', monospace","font-size":"12px","background-color":"#f5f5f5"}},null,8,["value"])])])}}});const Et=Q($t,[["__scopeId","data-v-66e282f1"]]),zt=(p,t)=>{ct({content:s(Et,{record:p},null),modalConfig:{appContext:t,title:"执行日志",width:800,footer:null,destroyOnClose:!0}})},Bt={class:"test-case-container"},Lt={class:"header"},Nt={class:"title"},Ut={class:"actions"},Vt={class:"filters"},At={class:"content"},Ot=D({__name:"case",setup(p){const{t}=ut(),S=V(!1),r=V([]),u=A({status:"",tags:[]}),g=A({current:1,pageSize:50,total:0,showSizeChanger:!0,showQuickJumper:!0,showTotal:o=>t("routes.test.共条记录",{total:o})}),w=it(()=>[{title:t("routes.test.用例名称"),dataIndex:"name",key:"name",width:200},{title:t("routes.test.描述"),dataIndex:"description",key:"description",ellipsis:!0},{title:t("routes.test.状态"),dataIndex:"status",key:"status",width:100},{title:t("routes.test.标签"),dataIndex:"tags",key:"tags",width:150},{title:t("routes.test.操作"),key:"action",width:200,fixed:"right"}]),M=o=>({init:"default",starting:"processing",running:"processing",success:"success",failed:"error"})[o]||"default",T=o=>({init:t("routes.test.待执行"),starting:t("routes.test.启动中"),running:t("routes.test.运行中"),success:t("routes.test.成功"),failed:t("routes.test.失败")})[o]||o;let d=null;const y=()=>{d&&d.close();const o=new URLSearchParams;u.status&&o.append("status",u.status),u.tags&&u.tags.length>0&&o.append("tags",u.tags.join(","));const c=`${q("test","/sse")}/cases?${o.toString()}`;d=new EventSource(c),d.onmessage=v=>{try{const m=JSON.parse(v.data);r.value=m||[]}catch(m){console.error(t("routes.test.解析SSE数据失败"),m)}},d.onerror=v=>{console.error(t("routes.test.SSE连接错误"),v)}},K=()=>{d&&(d.close(),d=null)},E=()=>{g.current=1,y()},P=o=>{g.current=o.current,g.pageSize=o.pageSize},X=_t()?.appContext,Y=o=>{zt(o,X)},Z=async o=>{try{await R([o.name]),h.success(t("routes.test.执行成功"))}catch{h.error(t("routes.test.执行失败"))}},H=async(o,c)=>{o?await Z(c):h.info(t("routes.test.停止功能待实现"))},W=()=>{y(),h.success(t("routes.test.刷新成功"))},tt=async()=>{try{const o=r.value.filter(c=>c.status!=="running");if(o.length===0){h.warning(t("routes.test.没有待执行的测试用例"));return}await R(o.map(c=>c.name)),h.success(t("routes.test.执行全部成功"))}catch{h.error(t("routes.test.执行全部失败"))}},et=async()=>{try{await Mt(),h.success(t("routes.test.停止全部成功"))}catch{h.error(t("routes.test.停止全部失败"))}};return dt(()=>{y()}),pt(()=>{K()}),(o,c)=>{const v=mt,m=ft,z=ht,B=St,L=yt,st=vt,ot=Ct,N=F,U=J,nt=kt,at=xt;return _(),b("div",Bt,[C("div",Lt,[C("div",Nt,n(a(t)("routes.test.测试用例管理")),1),C("div",Ut,[s(v,{onClick:W},{icon:e(()=>[s(a(I),{icon:"mdi:refresh",class:"v-text-bottom"})]),default:e(()=>[l(" "+n(a(t)("routes.test.刷新")),1)]),_:1}),s(v,{type:"primary",onClick:tt},{icon:e(()=>[s(a(I),{icon:"mdi:play",class:"v-text-bottom"})]),default:e(()=>[l(" "+n(a(t)("routes.test.执行全部")),1)]),_:1}),s(v,{danger:"",onClick:et},{icon:e(()=>[s(a(I),{icon:"mdi:stop",class:"v-text-bottom"})]),default:e(()=>[l(" "+n(a(t)("routes.test.停止全部")),1)]),_:1})])]),C("div",Vt,[s(st,{gutter:16},{default:e(()=>[s(L,{span:6},{default:e(()=>[s(B,{label:a(t)("routes.test.状态")},{default:e(()=>[s(z,{value:u.status,"onUpdate:value":c[0]||(c[0]=f=>u.status=f),placeholder:a(t)("routes.test.选择状态"),"allow-clear":"",onChange:E},{default:e(()=>[s(m,{value:"init"},{default:e(()=>[l(n(a(t)("routes.test.待执行")),1)]),_:1}),s(m,{value:"starting"},{default:e(()=>[l(n(a(t)("routes.test.启动中")),1)]),_:1}),s(m,{value:"running"},{default:e(()=>[l(n(a(t)("routes.test.运行中")),1)]),_:1}),s(m,{value:"success"},{default:e(()=>[l(n(a(t)("routes.test.成功")),1)]),_:1}),s(m,{value:"failed"},{default:e(()=>[l(n(a(t)("routes.test.失败")),1)]),_:1})]),_:1},8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),s(L,{span:6},{default:e(()=>[s(B,{label:a(t)("routes.test.标签")},{default:e(()=>[s(z,{value:u.tags,"onUpdate:value":c[1]||(c[1]=f=>u.tags=f),mode:"tags",placeholder:a(t)("routes.test.输入标签"),"allow-clear":"",onChange:E},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1})]),C("div",At,[s(at,{columns:w.value,"data-source":r.value,loading:S.value,pagination:g,onChange:P,"row-key":"id"},{bodyCell:e(({column:f,record:i})=>[f.key==="name"?(_(),k(ot,{key:0,title:i.description},{default:e(()=>[C("span",null,n(i.name),1)]),_:2},1032,["title"])):f.key==="status"?(_(),k(N,{key:1,color:M(i.status)},{default:e(()=>[l(n(T(i.status)),1)]),_:2},1032,["color"])):f.key==="categoryType"?(_(),b($,{key:2},[l(n(i.category)+"_"+n(i.testType),1)],64)):f.key==="tags"?(_(),k(U,{key:3},{default:e(()=>[(_(!0),b($,null,j(i.tags,x=>(_(),k(N,{key:x,color:"blue"},{default:e(()=>[l(n(x),1)]),_:2},1024))),128))]),_:2},1024)):f.key==="action"?(_(),k(U,{key:4},{default:e(()=>[s(v,{type:"link",size:"small",onClick:x=>Y(i)},{default:e(()=>[l(n(a(t)("routes.test.查看")),1)]),_:2},1032,["onClick"]),s(nt,{checked:i.status==="running",loading:i.status==="running",onChange:x=>H(x,i)},null,8,["checked","loading","onChange"])]),_:2},1024)):gt("",!0)]),_:1},8,["columns","data-source","loading","pagination"])])])}}});const Kt=Q(Ot,[["__scopeId","data-v-1134e550"]]);export{Kt as default};
  2. //# sourceMappingURL=case-3c1dd866.js.map