2 lines
6.5 KiB
JavaScript
2 lines
6.5 KiB
JavaScript
import{_ as C,r as _,H as N,o as k,u as M,b as v,d as e,t as r,n as z,i as b,p as u,G as c,F as y,C as p,e as q,z as f}from"./index-DGJ6dnLh.js";import{b as Q}from"./tournament-DhC9_tfq.js";const B={class:"signup-page"},w={class:"signup-form"},D={class:"form-group"},F={class:"info-grid"},I={class:"info-item"},O={class:"value"},$={class:"info-item"},h={class:"value"},E={class:"info-item"},R={class:"value"},T={class:"info-item"},j={class:"value"},A={class:"info-item"},G={class:"value"},H={class:"info-item"},Z={class:"value"},J={class:"info-item"},K={class:"form-group"},L={class:"input-group"},P={class:"input-group"},W={class:"input-group"},X={class:"input-group"},Y={class:"input-group"},ee={class:"input-group"},te={class:"input-group"},ae={class:"input-group"},se=Object.assign({name:"CompetitionSignUp"},{__name:"CompetitionSignUp",setup(oe){const i=N(),m=M(),n=_({id:i.query.id||"",name:i.query.name||"",start_time:i.query.start_time||"",end_time:i.query.end_time||"",organizer:i.query.organizer||"",qq_code:i.query.qq_code||"",format:i.query.format||"",status:i.query.status||""}),a=_({type:"individual",teamName:"",username:"",faction:"random",qq:""}),g=o=>o?o.replace(/\//g,"-"):"",U=o=>({single:"单败淘汰",double:"双败淘汰",count:"积分赛"})[o]||o,V=o=>({prepare:"筹备中",starting:"进行中",finish:"已结束"})[o]||o,S=()=>{m.back()},x=async()=>{var t,s;if(a.value.type==="teamname"){if(!a.value.teamName||!a.value.username){alert("请填写完整的队伍信息");return}}else if(!a.value.username){alert("请填写完整的个人信息");return}const o=a.value.username.trim();if(!o){alert("参赛人员名称不能为空");return}if(o.length<2){alert("参赛人员名称至少需要2个字符");return}if(o.length>20){alert("参赛人员名称不能超过20个字符");return}if(!/^[\u4e00-\u9fa5a-zA-Z0-9_]+$/.test(o)){alert("参赛人员名称只能包含中文、英文、数字和下划线");return}if(/^\d+$/.test(o)){alert("参赛人员名称不能为纯数字");return}if(/^_+$/.test(o)){alert("参赛人员名称不能为纯下划线");return}try{if(!n.value.id||!n.value.name){alert("比赛信息不完整,请返回重试");return}const l={id:parseInt(n.value.id),tournament_name:n.value.name,type:a.value.type,team_name:a.value.type==="teamname"?a.value.teamName:"",sign_name:o,faction:a.value.faction,qq_code:String(n.value.qq_code)};console.log("提交的报名数据:",l);const d=await Q(l);if(console.log("报名结果:",d),d.signup&&d.result)alert("报名成功!"),m.push("/competition");else throw console.error("报名结果不完整:",d),new Error("报名数据不完整,请重试")}catch(l){console.error("报名失败:",l),console.error("错误详情:",{message:l.message,response:(t=l.response)==null?void 0:t.data,status:(s=l.response)==null?void 0:s.status}),l.message.includes("返回数据为空")?alert("服务器返回数据为空,请稍后重试"):l.message.includes("数据不完整")?alert("报名数据不完整,请重试"):l.message.includes("网络连接")?alert("网络连接失败,请检查网络后重试"):alert(l.message||"报名失败,请稍后重试")}};return k(()=>{n.value.name||m.push("/competition")}),(o,t)=>(f(),v("div",B,[t[20]||(t[20]=e("div",{class:"page-header"},[e("h1",null,"比赛报名")],-1)),e("div",w,[e("div",D,[t[15]||(t[15]=e("label",null,"比赛信息",-1)),e("div",F,[e("div",I,[t[8]||(t[8]=e("span",{class:"label"},"比赛名称:",-1)),e("span",O,r(n.value.name),1)]),e("div",$,[t[9]||(t[9]=e("span",{class:"label"},"开始时间:",-1)),e("span",h,r(g(n.value.start_time)),1)]),e("div",E,[t[10]||(t[10]=e("span",{class:"label"},"结束时间:",-1)),e("span",R,r(g(n.value.end_time)),1)]),e("div",T,[t[11]||(t[11]=e("span",{class:"label"},"主办方:",-1)),e("span",j,r(n.value.organizer),1)]),e("div",A,[t[12]||(t[12]=e("span",{class:"label"},"QQ号:",-1)),e("span",G,r(n.value.qq_code),1)]),e("div",H,[t[13]||(t[13]=e("span",{class:"label"},"赛制类型:",-1)),e("span",Z,r(U(n.value.format)),1)]),e("div",J,[t[14]||(t[14]=e("span",{class:"label"},"比赛状态:",-1)),e("span",{class:z(["value status-tag",n.value.status])},r(V(n.value.status)),3)])])]),e("div",K,[t[19]||(t[19]=e("label",null,"报名信息",-1)),e("div",L,[u(e("select",{"onUpdate:modelValue":t[0]||(t[0]=s=>a.value.type=s),class:"form-select"},t[16]||(t[16]=[e("option",{value:"teamname"},"队伍报名",-1),e("option",{value:"individual"},"个人报名",-1)]),512),[[c,a.value.type]])]),a.value.type==="teamname"?(f(),v(y,{key:0},[e("div",P,[u(e("input",{type:"text","onUpdate:modelValue":t[1]||(t[1]=s=>a.value.teamName=s),placeholder:"请输入队伍名称",class:"form-input"},null,512),[[p,a.value.teamName]])]),e("div",W,[u(e("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=s=>a.value.username=s),placeholder:"请输入参赛人员名称",class:"form-input"},null,512),[[p,a.value.username]])]),e("div",X,[u(e("select",{"onUpdate:modelValue":t[3]||(t[3]=s=>a.value.faction=s),class:"form-select"},t[17]||(t[17]=[q('<option value="allied" data-v-c07fba6c>盟军</option><option value="soviet" data-v-c07fba6c>苏联</option><option value="empire" data-v-c07fba6c>帝国</option><option value="ob" data-v-c07fba6c>OB</option><option value="voice" data-v-c07fba6c>解说</option><option value="random" data-v-c07fba6c>随机</option>',6)]),512),[[c,a.value.faction]])]),e("div",Y,[u(e("input",{type:"text","onUpdate:modelValue":t[4]||(t[4]=s=>a.value.qq=s),placeholder:"请输入QQ号",class:"form-input"},null,512),[[p,a.value.qq]])])],64)):b("",!0),a.value.type==="individual"?(f(),v(y,{key:1},[e("div",ee,[u(e("input",{type:"text","onUpdate:modelValue":t[5]||(t[5]=s=>a.value.username=s),placeholder:"请输入参赛人员名称",class:"form-input"},null,512),[[p,a.value.username]])]),e("div",te,[u(e("select",{"onUpdate:modelValue":t[6]||(t[6]=s=>a.value.faction=s),class:"form-select"},t[18]||(t[18]=[q('<option value="allied" data-v-c07fba6c>盟军</option><option value="soviet" data-v-c07fba6c>苏联</option><option value="empire" data-v-c07fba6c>帝国</option><option value="ob" data-v-c07fba6c>OB</option><option value="voice" data-v-c07fba6c>解说</option><option value="random" data-v-c07fba6c>随机</option>',6)]),512),[[c,a.value.faction]])]),e("div",ae,[u(e("input",{type:"text","onUpdate:modelValue":t[7]||(t[7]=s=>a.value.qq=s),placeholder:"请输入QQ号",class:"form-input"},null,512),[[p,a.value.qq]])])],64)):b("",!0)]),e("div",{class:"form-actions"},[e("button",{class:"btn-cancel",onClick:S},"取消"),e("button",{class:"btn-submit",onClick:x},"提交报名")])])]))}}),ie=C(se,[["__scopeId","data-v-c07fba6c"]]);export{ie as default};
|