2 lines
4.1 KiB
JavaScript
2 lines
4.1 KiB
JavaScript
import{_ as S,r as u,c as V,b as o,d as s,i as C,q as g,n as _,t as l,p as y,C as B,G as M,F as N,B as U,u as D,z as r,l as F}from"./index-DGJ6dnLh.js";import{g as Q}from"./tournament-DhC9_tfq.js";const T={class:"competition-page"},I={class:"action-bar"},$={class:"left-actions"},E=["disabled"],G={class:"right-actions"},R={class:"search-box"},j={key:0,class:"error-message"},A={class:"competition-table"},H=["onClick"],J={class:"competition-name"},K={class:"action-cell"},O=["onClick","disabled"],P={key:0,class:"loading-overlay"},W={key:1,class:"empty-state"},X={__name:"Competition",setup(Y){const v=D(),m=u([]),i=u(""),d=u("all"),n=u(!1),c=u(""),h=V(()=>{let t=m.value;if(i.value){const e=i.value.toLowerCase();t=t.filter(a=>a.name.toLowerCase().includes(e)||a.organizer.toLowerCase().includes(e))}return d.value!=="all"&&(t=t.filter(e=>d.value==="ongoing"?e.status==="starting":e.status==="finish")),t}),p=t=>t.replace(/\//g,"-"),q=()=>{},k=()=>{},w=t=>{v.push({path:"/competition/detail",query:{id:t.id,name:t.name,start_time:t.start_time,end_time:t.end_time,organizer:t.organizer,qq_code:t.qq_code,format:t.format,status:t.status}})},z=t=>{v.push({name:"CompetitionSignUp",query:{id:t.id,name:t.name,start_time:t.start_time,end_time:t.end_time,organizer:t.organizer,qq_code:t.qq_code,format:t.format,status:t.status}})},x=()=>{v.push("/competition/add")},f=async()=>{var t,e;try{n.value=!0,c.value="";const a=await Q();m.value=a,console.log("刷新赛程数据成功")}catch(a){console.error("获取赛程数据失败:",a),c.value=((e=(t=a.response)==null?void 0:t.data)==null?void 0:e.message)||"获取赛程数据失败,请重试"}finally{n.value=!1}};return f(),(t,e)=>(r(),o("div",T,[e[9]||(e[9]=s("div",{class:"page-header"},[s("h1",null,"赛程信息"),s("div",{class:"header-subtitle"},[s("span",{class:"date-range"},"点击即可查看和报名")])],-1)),s("div",I,[s("div",$,[s("button",{class:"btn-common btn-gradient",onClick:x},e[2]||(e[2]=[s("i",{class:"fas fa-plus"},null,-1),g(" 添加赛程 ")])),s("button",{class:"btn-common btn-light",onClick:f,disabled:n.value},[s("i",{class:_(["fas",n.value?"fa-spinner fa-spin":"fa-sync-alt"])},null,2),g(" "+l(n.value?"刷新中...":"刷新赛程"),1)],8,E)]),s("div",G,[s("div",R,[y(s("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=a=>i.value=a),placeholder:"搜索赛程...",onInput:q},null,544),[[B,i.value]]),e[3]||(e[3]=s("i",{class:"fas fa-search search-icon"},null,-1))]),y(s("select",{"onUpdate:modelValue":e[1]||(e[1]=a=>d.value=a),onChange:k,class:"filter-select"},e[4]||(e[4]=[s("option",{value:"all"},"全部状态",-1),s("option",{value:"ongoing"},"进行中",-1),s("option",{value:"finished"},"已结束",-1)]),544),[[M,d.value]])])]),c.value?(r(),o("div",j,[e[5]||(e[5]=s("i",{class:"fas fa-exclamation-circle"},null,-1)),g(" "+l(c.value)+" ",1),s("button",{class:"retry-btn",onClick:f}," 重试 ")])):C("",!0),s("div",{class:_(["table-container",{loading:n.value}])},[s("table",A,[e[6]||(e[6]=s("thead",null,[s("tr",null,[s("th",null,"序号"),s("th",null,"赛程名称"),s("th",null,"开始时间"),s("th",null,"结束时间"),s("th",null,"状态"),s("th",null,"组织者"),s("th",null,"QQ号"),s("th",null,"赛制类型"),s("th",null,"操作")])],-1)),s("tbody",null,[(r(!0),o(N,null,U(h.value,(a,b)=>(r(),o("tr",{key:b,class:"competition-row",onClick:L=>w(a)},[s("td",null,l(b+1),1),s("td",J,l(a.name),1),s("td",null,l(p(a.start_time)),1),s("td",null,l(p(a.end_time)),1),s("td",null,[s("span",{class:_(["status-tag",a.status])},l(a.status==="prepare"?"筹备中":a.status==="starting"?"进行中":"已结束"),3)]),s("td",null,l(a.organizer),1),s("td",null,l(a.qq_code),1),s("td",null,l(a.format==="single"?"单败淘汰":a.format==="double"?"双败淘汰":"积分赛"),1),s("td",K,[s("button",{class:"action-btn view",onClick:F(L=>z(a),["stop"]),disabled:a.status==="finish"}," 报名 ",8,O)])],8,H))),128))])]),n.value?(r(),o("div",P,e[7]||(e[7]=[s("i",{class:"fas fa-spinner fa-spin"},null,-1),s("span",null,"加载中...",-1)]))):h.value.length===0?(r(),o("div",W,e[8]||(e[8]=[s("i",{class:"fas fa-calendar-times"},null,-1),s("p",null,"暂无赛程信息",-1)]))):C("",!0)],2)]))}},ts=S(X,[["__scopeId","data-v-8bdb25e5"]]);export{ts as default};
|