DCFronted/dist/assets/CompetitionSignUp-srDkrN40.js
2025-07-06 20:54:40 +08:00

2 lines
6.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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};