f0cdcd30 by zhangmeng

前台报名

1 parent f638433a
......@@ -257,7 +257,7 @@ export function recoverMySignFromCancel(cptId) {
return request({
url: `/league/sign/recoverMySignFromCancel`,
method: 'post',
data: {cptId: cptId}
data: { cptId: cptId }
})
}
......@@ -402,7 +402,7 @@ export function delPerson(id) {
})
}
//个人账号
// 个人账号
export function delPersonForPersonal(id) {
return request({
url: `/systemj/personInfo/singleDelete/${id}`,
......@@ -639,7 +639,7 @@ export function saveWdsfMin(obj, groupId) {
})
}
//todo
// todo
export function bindWdsf(perId, card) {
return request({
url: `/systemj/personInfo/bindWdsf/${perId}?card=${card}`,
......@@ -771,12 +771,14 @@ export function getAboutUs(params) {
params
})
}
export function getppInfo(params) {
return request({
url: `/portal/website/${params}`,
method: 'get'
})
}
export function getZNList(params) {
return request({
url: `/Portal/websiteInfo/list`,
......@@ -785,4 +787,21 @@ export function getZNList(params) {
})
}
// 团体报名校验
export function preCheckForGroup(groupId) {
return request({
url: `/systemj/personInfo/preCheckForGroup/${groupId}`,
method: 'get'
})
}
// 个人报名校验
export function preCheckForPerson(params) {
return request({
url: `/systemj/personInfo/preCheckForPerson`,
method: 'get',
params
})
}
......
<template>
<div style="padding: 0 20px 20px" v-if="language==0">
<div v-if="language==0" style="padding: 0 20px 20px">
<!--赛事详情-->
<div class="indexTitle">
<h3 class="leftboderTT">组织机构</h3>
</div>
<div class="xzbox" v-html="form.ocOrganizer">
</div>
<div class="indexTitle" v-if="form.languageSource!='100'"><h3 class="leftboderTT">报名须知</h3></div>
<div class="xzbox" v-if="form.languageSource!='100'">
<div v-html="form.signKnow"></div>
<div class="xzbox" v-html="form.ocOrganizer" />
<div v-if="form.languageSource!='100'" class="indexTitle"><h3 class="leftboderTT">报名须知</h3></div>
<div v-if="form.languageSource!='100'" class="xzbox">
<div v-html="form.signKnow" />
<div v-if="form.signKnowUrl">
<el-link v-for="(item,index) in JSON.parse(form.signKnowUrl)" type="primary"
:href="fillImgUrl(item.url)" target="_blank">
<el-link
v-for="(item,index) in JSON.parse(form.signKnowUrl)" :key="index" :href="fillImgUrl(item.url)"
target="_blank" type="primary"
>
<el-icon :size="20">
<Download />
</el-icon>
{{ item.name }}
</el-link>
</div>
</div>
<!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div class="indexTitle" v-if="form.languageSource=='100'"><h3 class="leftboderTT">赛事规程</h3></div>
<div class="xzbox" v-if="form.languageSource=='100'">
<div v-html="form.ruleContent"></div>
<el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">
<!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div v-if="form.languageSource=='100'" class="indexTitle"><h3 class="leftboderTT">赛事规程</h3></div>
<div v-if="form.languageSource=='100'" class="xzbox">
<div v-html="form.ruleContent" />
<el-link v-if="form.ruleUrl" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank" type="primary">
<el-icon :size="20">
<Download />
</el-icon>
{{ JSON.parse(form.ruleUrl)[0]?.name }}
</el-link>
</div>
<!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>-->
<!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">-->
<!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>-->
<!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">-->
<!-- </div>-->
<!-- </div>-->
</div>
<div style="padding: 0 20px 20px" v-else>
<div v-else style="padding: 0 20px 20px">
<!--赛事详情-->
<div class="indexTitle">
<h3 class="leftboderTT">Organization</h3>
</div>
<div class="xzbox" v-html="form.ocOrganizer">
</div>
<div class="xzbox" v-html="form.ocOrganizer" />
<div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div>
<div class="xzbox">
<div v-html="form.signKnow"></div>
<el-link v-if="form.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank">
<div v-html="form.signKnow" />
<el-link
v-if="form.signKnowUrl" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank"
type="primary"
>
<el-icon :size="20">
<Download />
</el-icon>
{{ JSON.parse(form.signKnowUrl)[0]?.name }}
</el-link>
</div>
<!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <div v-html="form.ruleContent">-->
<!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>-->
<!-- <div class="xzbox">-->
<!-- <div v-html="form.ruleContent">-->
<!-- </div>-->
<!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div>
<!-- </div>-->
<!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">-->
<!-- <el-icon :size="20">-->
<!-- <Download />-->
<!-- </el-icon>-->
<!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}-->
<!-- </el-link>-->
<!-- </div>-->
<div v-if="form.type==1 && form.cptProjectList?.length > 0" class="indexTitle"><h3 class="leftboderTT">Event
settings</h3></div>
<div v-if="form.type==1 && form.cptProjectList?.length > 0">
<match-info-project-list :match-id="form.id" :is-national="form.languageSource!='100'"/>
<match-info-project-list :is-national="form.languageSource!='100'" :match-id="form.id" />
</div>
</div>
</template>
<script setup>
import {ref} from "vue";
import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList";
import {useStorage} from "@vueuse/core/index";
import {onMounted} from "@vue/runtime-core";
import { ref } from 'vue'
import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList'
import { useStorage } from '@vueuse/core/index'
import { onMounted } from '@vue/runtime-core'
const language= useStorage('language',0)
const language = useStorage('language', 0)
const props = defineProps({
form:{
type:Object,
required:true
form: {
type: Object,
required: true
}
})
</script>
<style scoped lang="scss">
.indexTitle{margin: 20px 0 12px;
h3{
<style lang="scss" scoped>
.indexTitle {
margin: 20px 0 12px;
h3 {
font-size: 20px;
color:var(--el-color-primary);
color: var(--el-color-primary);
}
}
......
<template>
<div v-loading="loading" class="app-container">
<div class="mt30"/>
<div class="mt30" />
<div v-if="error">
<el-result
:title="language==0?'未找到赛事':'No Data'"
icon="error"
>
<template #extra>
</template>
<template #extra />
</el-result>
</div>
<div v-else class="box mb20">
......@@ -40,34 +39,44 @@
<!-- <p class="ppl" v-if="matchData.signEndTime"><label class="bm4">Registration Deadline:</label>{{ matchData.signEndTime?.slice(0, 10) }}</p>-->
<p class="ppl"><label>
<svg class="icon" height="18" p-id="37235" style="position: relative;top: 3px;"
<svg
class="icon" height="18" p-id="37235" style="position: relative;top: 3px;"
t="1712726889323"
version="1.1" viewBox="0 0 1024 1024" width="18" xmlns="http://www.w3.org/2000/svg">
version="1.1" viewBox="0 0 1024 1024" width="18" xmlns="http://www.w3.org/2000/svg"
>
<path
d="M290.88 128H928V96a64 64 0 0 0-64-64H288a192 192 0 0 0-192 192v576a192 192 0 0 0 192 192h576a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H290.88A64 64 0 0 1 224 192a64 64 0 0 1 66.88-64z m77.12 608l96-22.72v-29.12a123.2 123.2 0 0 1-58.24-84.48c-29.76-2.24-24.64-41.28-24.64-41.28 0-19.84 10.24-26.24 18.56-27.84v-19.2c0-148.48 128-128 128-128a128 128 0 0 1 55.04 5.12c34.56 11.2 72.32 42.24 72.32 123.2v19.2c8.32 1.92 18.56 8 18.56 28.16 0 0 5.12 39.04-24.64 41.28a123.2 123.2 0 0 1-58.24 84.48v29.12l96 22.72c47.04 16.64 0 96 0 96h-320S320 752 368 736z"
fill="#d3d8d9" p-id="37236"></path>
fill="#d3d8d9" p-id="37236"
/>
</svg>
{{ language == 0 ? '联&ensp;系&ensp;人' : 'CONTACT PERSON' }}</label>{{ matchData.contactPerson }}
</p>
<p class="ppl">
<label>
<svg class="icon" height="20" p-id="7920" style="position: relative;top: 2px;"
t="1711708779620" version="1.1" viewBox="0 0 1024 1024" width="20" xmlns="http://www.w3.org/2000/svg">
<svg
class="icon" height="20" p-id="7920" style="position: relative;top: 2px;"
t="1711708779620" version="1.1" viewBox="0 0 1024 1024" width="20"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M398.652952 165.692952c-32.280381-46.006857-58.172952-61.318095-92.867047-54.808381-14.969905 2.80381-24.210286 7.850667-41.20381 22.528l-12.946285 11.361524-25.185524 20.894476-6.582857 5.753905c-3.705905 3.413333-6.38781 6.217143-9.825524 10.118095-64 72.46019-81.724952 185.782857-44.470857 292.327619 26.794667 76.55619 74.605714 152.624762 142.774857 228.644572 72.289524 80.62781 133.046857 131.364571 202.922666 168.374857 54.857143 29.013333 96.865524 41.74019 145.676191 43.227429 59.001905 1.828571 110.957714-11.50781 153.648762-39.15581a162.133333 162.133333 0 0 0 19.553524-15.189333l8.289523-7.558095 16.335239-15.213715 5.534476-4.924952 10.922666-9.435429c22.040381-19.651048 29.184-31.939048 30.646858-51.370666 2.194286-29.647238-11.215238-52.736-49.737143-85.699048l-26.063238-21.820952-12.117334-10.581334-11.459047-9.825524c-37.229714-30.744381-64.804571-40.69181-100.205715-35.35238-24.283429 3.632762-38.278095 12.141714-63.073523 38.107428l-10.947048 11.654095c-18.041905 19.017143-28.330667 26.258286-43.544381 29.305905-22.25981 4.461714-44.373333-7.046095-80.262095-36.205714-46.250667-37.546667-84.626286-80.676571-117.613715-131.949714-22.869333-35.766857-31.890286-62.902857-24.941714-87.600762 2.82819-9.99619 9.679238-17.042286 24.064-28.184381l14.994286-11.312762 2.413714-1.877334 22.747429-18.553904c20.114286-16.822857 28.281905-28.281905 32.572952-45.836191 8.899048-36.10819 0.487619-66.072381-32.426667-117.638095l-15.62819-24.234667-5.558857-8.533333-6.436572-9.435429z"
fill="#d3d8d9" p-id="7921"></path>
fill="#d3d8d9" p-id="7921"
/>
</svg>
{{ language == 0 ? '联系电话' : 'TEL' }}</label>086-{{ matchData.contactTelno }}
</p>
<p class="ppl">
<label>
<svg class="icon" height="18" p-id="40177" style="position: relative;top: 4px;"
<svg
class="icon" height="18" p-id="40177" style="position: relative;top: 4px;"
t="1712726978978" version="1.1" viewBox="0 0 1024 1024"
width="18" xmlns="http://www.w3.org/2000/svg">
width="18" xmlns="http://www.w3.org/2000/svg"
>
<path
d="M853.333333 341.333333l-341.333333 213.333334-341.333333-213.333334V256l341.333333 213.333333 341.333333-213.333333m0-85.333333H170.666667c-47.36 0-85.333333 37.973333-85.333334 85.333333v512a85.333333 85.333333 0 0 0 85.333334 85.333333h682.666666a85.333333 85.333333 0 0 0 85.333334-85.333333V256a85.333333 85.333333 0 0 0-85.333334-85.333333z"
fill="#d3d8d9" p-id="40178"></path>
fill="#d3d8d9" p-id="40178"
/>
</svg>
{{ language == 0 ? '邮&ensp;&ensp;&ensp;&ensp;箱' : 'EMAIL' }}
</label>
......@@ -75,12 +84,15 @@
</p>
<p class="ppl">
<label>
<svg class="icon" height="18" p-id="6578" style="position: relative;top: 2px;"
<svg
class="icon" height="18" p-id="6578" style="position: relative;top: 2px;"
t="1711707785514" version="1.1" viewBox="0 0 1024 1024"
width="18" xmlns="http://www.w3.org/2000/svg">
width="18" xmlns="http://www.w3.org/2000/svg"
>
<path
d="M780 68H256c-71.6 0-130.2 55.5-130.2 123.2v711.2c1.5 42.8 50 69.3 90.6 50.6l227.2-105c38.5-17.8 83.4-18.5 122.6-1.9l255.4 108.6c34.8 14.8 76.1-2.7 86.3-37.6 1.6-5.4 2.4-11 2.4-16.9v-709C910.2 123.5 851.6 68 780 68zM276.9 231.3h255.9c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41z m386.8 464H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z m0-191H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z"
fill="#d3d8d9" p-id="6579"></path>
fill="#d3d8d9" p-id="6579"
/>
</svg>
{{ language == 0 ? '分&ensp;站&ensp;赛' : 'NO. OF TOURNAMENTS' }}</label>
{{ matchData.cpts.length }}
......@@ -112,30 +124,39 @@
<label>{{ language == 0 ? '邮&ensp;&ensp;&ensp;&ensp;箱' : 'EMAIL' }}</label>
{{ matchData.contactEmail }}</p>
</div>
<div style="height: 30px"></div>
<div style="height: 30px" />
<div class="ppl_pb">
<el-link v-if="matchData.signKnowUrl&&JSON.parse(matchData.signKnowUrl)?.length>0" :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)"
<el-link
v-if="matchData.signKnowUrl&&JSON.parse(matchData.signKnowUrl)?.length>0"
:href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)"
class="mr20"
target="_blank" type="primary">
target="_blank" type="primary"
>
<el-icon :size="20">
<Download/>
<Download />
</el-icon>
{{ language == 0 ? '报名须知' : 'Notes' }}
</el-link>
<el-link v-if="matchData.disclaimerUrl&&JSON.parse(matchData.disclaimerUrl)?.length>0" :href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)"
<el-link
v-if="matchData.disclaimerUrl&&JSON.parse(matchData.disclaimerUrl)?.length>0"
:href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)"
class="mr20"
target="_blank" type="primary">
target="_blank" type="primary"
>
<el-icon :size="20">
<Download/>
<Download />
</el-icon>
{{ language == 0 ? '免责声明' : 'Disclaimers' }}
</el-link>
<el-link v-if="matchData.ruleUrl&&JSON.parse(matchData.ruleUrl)?.length>0" :href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)"
<el-link
v-if="matchData.ruleUrl&&JSON.parse(matchData.ruleUrl)?.length>0"
:href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)"
target="_blank"
type="primary">
type="primary"
>
<el-icon :size="20">
<Download/>
<Download />
</el-icon>
{{ language == 0 ? '赛事规程' : 'Competition Regulations' }}
</el-link>
......@@ -165,9 +186,11 @@
</van-count-down>
<div class="flexCenter">
<el-button v-if="matchData.progressStatusCode=='2'" ref="RegisterRef" class="btn-lineG mt10 w100" round
<el-button
v-if="matchData.progressStatusCode=='2'" ref="RegisterRef" class="btn-lineG mt10 w100" round
style="font-size: 16px"
type="primary" @click="choseSignType">
type="primary" @click="choseSignType"
>
{{ language == 0 ? '我要报名' : 'REGISTER' }}
</el-button>
<div v-else-if="time<=0" class="btn-lineG mb20 mauto text-center" style="opacity: 0.5;">
......@@ -183,10 +206,11 @@
</el-col>
</el-row>
</el-card>
<!-- 只联赛有-->
<quick-row v-if="matchData.leagueId==0" :match-id="matchId"/>
<quick-row v-if="matchData.leagueId==0" :match-id="matchId" />
<el-row v-if="matchData.type=='0'" :gutter="20">
<el-col :lg="18">
......@@ -198,11 +222,11 @@
</li>
</ul>
</div>
<matchInfo v-if="menu[0].active==1" :form="matchData"/>
<matchInfo v-if="menu[0].active==1" :form="matchData" />
<div v-if="menu[1].active==1">
<match-info-project-list :is-national="isNational" :match-id="matchData.id"/>
<match-info-project-list :is-national="isNational" :match-id="matchData.id" />
</div>
<match-schedule-list v-if="menu[2].active==1" :match-data="matchData"/>
<match-schedule-list v-if="menu[2].active==1" :match-data="matchData" />
<div v-if="menu[3].active==1">
<div v-if="matchData.showPersonFlag=='1'">
<!-- <el-row :gutter="20" v-if="matchData.signType == '0'">-->
......@@ -217,32 +241,52 @@
<el-col :span="24">
<div class="fr mb20">
<div class="flex">
<el-input v-model="queryGroupList.groupName" :placeholder="language == 0 ? '请输入参赛队名称' :'Please enter the Team name'" :prefix-icon="Search" class="mr10"
<el-input
v-model="queryGroupList.groupName"
:placeholder="language == 0 ? '请输入参赛队名称' :'Please enter the Team name'"
:prefix-icon="Search" class="mr10"
clearable
size="small" @change="getGroupListByCptId"/>
<el-input v-model="queryGroupList.athleteName" :placeholder=" language == 0 ? '请输入运动员查询' :'Please enter the athlete name'" :prefix-icon="Search"
size="small" @change="getGroupListByCptId"
/>
<el-input
v-model="queryGroupList.athleteName"
:placeholder=" language == 0 ? '请输入运动员查询' :'Please enter the athlete name'"
:prefix-icon="Search"
clearable
size="small" @change="getGroupListByCptId"/>
size="small" @change="getGroupListByCptId"
/>
</div>
</div>
<el-table :data="signDoneGroupList">
<el-table-column :label="language == 0 ? '组别代码' :'EVENT CODE'" align="center" min-width="120"
prop="groupCode"/>
<el-table-column
:label="language == 0 ? '组别代码' :'EVENT CODE'" align="center" min-width="120"
prop="groupCode"
/>
<el-table-column :label="language == 0 ?'组别':'EVENT'" min-width="200" prop="group">
<template #default="scope">
<div class="esp">{{ scope.row.group }}</div>
</template>
</el-table-column>
<el-table-column :label="language == 0 ?'男运动员':'man name'" min-width="150"
prop="maleAthName"/>
<el-table-column :label="language == 0 ?'女运动员':'woman name'" min-width="150"
prop="femaleAthName"/>
<el-table-column :label="language == 0 ?'舞种':'Division'" align="center" min-width="90"
prop="danceType"/>
<el-table-column :label="language == 0 ?'国籍':'Representing'" align="center" min-width="130"
prop="countryName"/>
<el-table-column :label="language == 0 ?'参赛队名称':'Team name'" align="center" min-width="150"
prop="groupName"/>
<el-table-column
:label="language == 0 ?'男运动员':'man name'" min-width="150"
prop="maleAthName"
/>
<el-table-column
:label="language == 0 ?'女运动员':'woman name'" min-width="150"
prop="femaleAthName"
/>
<el-table-column
:label="language == 0 ?'舞种':'Division'" align="center" min-width="90"
prop="danceType"
/>
<el-table-column
:label="language == 0 ?'国籍':'Representing'" align="center" min-width="130"
prop="countryName"
/>
<el-table-column
:label="language == 0 ?'参赛队名称':'Team name'" align="center" min-width="150"
prop="groupName"
/>
</el-table>
<PaginationPc
v-show="signDoneGroupListToTal>0"
......@@ -255,22 +299,24 @@
</el-row>
</div>
<div v-else>
<el-empty :image="`/img/order_no.png`" :image-size="228" description=""/>
<el-empty :image="`/img/order_no.png`" :image-size="228" description="" />
</div>
</div>
<div v-if="menu[4].active==1">
<!--成绩-->
<el-empty :image="`/img/order_no.png`" :image-size="228" description=""/>
<el-empty :image="`/img/order_no.png`" :image-size="228" description="" />
</div>
<div v-if="menu[5].active==1" class="pd20">
<div class="xzbox">
<div v-html="matchData.signKnow"></div>
<div v-html="matchData.signKnow" />
<div v-if="matchData.signKnowUrl">
<el-link v-for="(item,index) in JSON.parse(matchData.signKnowUrl)" :href="fillImgUrl(item.url)"
target="_blank" type="primary">
<el-link
v-for="(item,index) in JSON.parse(matchData.signKnowUrl)" :href="fillImgUrl(item.url)"
target="_blank" type="primary"
>
<el-icon :size="20">
<Download/>
<Download />
</el-icon>
{{ item.name }}
</el-link>
......@@ -278,11 +324,11 @@
</div>
</div>
</el-card>
<div style="height: 20px"></div>
<div style="height: 20px" />
</el-col>
<el-col :lg="6">
<match-news :match-id="matchId"/>
<match-news :match-id="matchId" />
</el-col>
</el-row>
......@@ -297,24 +343,26 @@
</ul>
</div>
<!-- 分站赛-->
<substation-list v-if="menu1[0].active==1" :list="matchData.cpts"/>
<matchInfo v-if="menu1[1].active==1" :form="matchData"/>
<match-schedule-list v-if="menu1[2].active==1" :match-data="matchData"/>
<substation-list v-if="menu1[0].active==1" :list="matchData.cpts" />
<matchInfo v-if="menu1[1].active==1" :form="matchData" />
<match-schedule-list v-if="menu1[2].active==1" :match-data="matchData" />
</el-card>
</el-col>
</el-row>
</div>
<div v-if="matchData.leagueId==0" class="fixed_gg_l" @click="applyInvitation">
<img v-if="language==0" src="@/assets/logo/Invitation_c.png"/>
<img v-else src="@/assets/logo/Invitation_e.png"/>
<img v-if="language==0" src="@/assets/logo/Invitation_c.png">
<img v-else src="@/assets/logo/Invitation_e.png">
</div>
<affix-invitation ref="dialogInvitationRef"/>
<div style="height: 50px"></div>
<affix-invitation ref="dialogInvitationRef" />
<div style="height: 50px" />
<el-dialog v-model="signTypePop" center class="pcloginpop"
close-icon="CircleClose" title="Choose Type" width="450px">
<el-dialog
v-model="signTypePop" center class="pcloginpop"
close-icon="CircleClose" title="Choose Type" width="450px"
>
<div>
<div class="rItem r1" @click="goLogin">
<h3>{{ language == 0 ? '机构用户' : 'Organization' }}</h3>
......@@ -324,8 +372,10 @@
</div>
</div>
</el-dialog>
<el-dialog v-model="upgradePop" center class="pcloginpop"
close-icon="CircleClose" title="Upgrade" width="450px">
<el-dialog
v-model="upgradePop" center class="pcloginpop"
close-icon="CircleClose" title="Upgrade" width="450px"
>
<div>
<div class="rItem r1" @click="goUpdateTeam">
<h3>{{ language == 0 ? '升级机构用户' : 'Organization' }}</h3>
......@@ -336,35 +386,39 @@
</div>
</el-dialog>
<!-- v-if="matchData.leagueId==0"-->
<a class="ding" v-if="matchData.isAirView" @click="openPickup" >{{ language==0?'接 / 送机服务':'Pick-up/drop-off service' }}</a>
<pickup ref="pickupRef"></pickup>
<!-- v-if="matchData.leagueId==0"-->
<a
v-if="matchData.isAirView" class="ding"
@click="openPickup"
>{{ language == 0 ? '接 / 送机服务' : 'Pick-up/drop-off service' }}</a>
<pickup ref="pickupRef" />
</div>
</template>
<script setup>
import MatchInfo from '@/viewsPc/match/components/matchInfo'
import MatchScheduleList from "@/viewsPc/match/components/matchScheduleList";
import MatchNews from "@/viewsPc/match/components/matchNews";
import SubstationList from "@/viewsPc/match/components/substation-list";
import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList";
import QuickRow from "@/viewsPc/match/components/quick-row";
import MatchScheduleList from '@/viewsPc/match/components/matchScheduleList'
import MatchNews from '@/viewsPc/match/components/matchNews'
import SubstationList from '@/viewsPc/match/components/substation-list'
import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList'
import QuickRow from '@/viewsPc/match/components/quick-row'
import Pickup from '@/viewsPc/components/pickup'
import {getCurrentInstance, ref} from 'vue'
import {reactive, onMounted} from '@vue/runtime-core'
import {useRoute, useRouter} from 'vue-router'
import { getCurrentInstance, ref } from 'vue'
import { reactive, onMounted } from '@vue/runtime-core'
import { useRoute, useRouter } from 'vue-router'
import AffixInvitation from '@/viewsPc/match/components/affix-invitation'
const language = useStorage('language', 0)
const route = useRoute()
const router = useRouter()
const {proxy} = getCurrentInstance()
const { proxy } = getCurrentInstance()
import * as match from '@/apiPc/match'
import {toRefs} from '@vueuse/shared'
import {dayjs, ElMessage, ElMessageBox} from 'element-plus'
import useUserStore from "@/store/modules/user"
import {useStorage} from "@vueuse/core/index"
import {Search} from "@element-plus/icons-vue"
import { toRefs } from '@vueuse/shared'
import { dayjs, ElMessage, ElMessageBox } from 'element-plus'
import useUserStore from '@/store/modules/user'
import { useStorage } from '@vueuse/core/index'
import { Search } from '@element-plus/icons-vue'
import { preCheckForGroup } from '@/apiPc/match'
const user = useUserStore().user
const group = useUserStore().group
......@@ -376,16 +430,16 @@ const data = reactive({
groupId: '',
activeName2: 'first',
menu: [
{name: 'Event details', cn: '赛事详情', active: 1},
{name: 'Event settings', cn: '赛事设项', active: 0},
{name: 'Schedule', cn: '日程', active: 0},
{name: 'Participating teams', cn: '参赛人员', active: 0},
{name: 'Achievement', cn: '成绩', active: 0},
{name: 'Notes', cn: '报名须知', active: 0}],
{ name: 'Event details', cn: '赛事详情', active: 1 },
{ name: 'Event settings', cn: '赛事设项', active: 0 },
{ name: 'Schedule', cn: '日程', active: 0 },
{ name: 'Participating teams', cn: '参赛人员', active: 0 },
{ name: 'Achievement', cn: '成绩', active: 0 },
{ name: 'Notes', cn: '报名须知', active: 0 }],
menu1: [
{name: 'Tournaments', cn: '分站赛', active: 1},
{name: 'Event details', cn: '赛事详情', active: 0},
{name: 'Schedule', cn: '日程', active: 0}],
{ name: 'Tournaments', cn: '分站赛', active: 1 },
{ name: 'Event details', cn: '赛事详情', active: 0 },
{ name: 'Schedule', cn: '日程', active: 0 }],
signDoneGroupList: [],
signDoneGroupListToTal: 0,
queryGroupList: {
......@@ -426,7 +480,7 @@ onMounted(() => {
})
function getMatchId() {
match.getMaList({topFlag: 1, status: 1}).then((res) => {
match.getMaList({ topFlag: 1, status: 1 }).then((res) => {
matchId.value = res.rows[0].id
getMatch(matchId.value)
getGroupListByCptId()
......@@ -435,7 +489,7 @@ function getMatchId() {
function getMatch(id) {
loading.value = true
match.getMatchById({id: id}).then(res => {
match.getMatchById({ id: id }).then(res => {
matchData.value = res.data
loading.value = false
var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
......@@ -447,7 +501,7 @@ function getMatch(id) {
isNational.value = true
}
}).catch(res => {
router.push({path: '/match/list'})
router.push({ path: '/match/list' })
loading.value = false
// setTimeout("window.location.reload()", 1000)
})
......@@ -474,11 +528,12 @@ function changeMenu(menu, l) {
}
}
function choseSignType() {
console.log(matchData.value.signType, matchData.value.languageSource, user)
if (!user) {
//判断signType,如1个人注册-报名;
// 判断signType,如1个人注册-报名;
switch (matchData.value.signType) {
case '0':
goGeren()
......@@ -498,7 +553,7 @@ function choseSignType() {
}
function goUpdateTeam() {
//升级团队
// 升级团队
router.push({
name: 'teamRegister',
query: {
......@@ -509,7 +564,7 @@ function goUpdateTeam() {
}
function goUpdatePersonal() {
//升级团队
// 升级团队
router.push({
name: 'personalRegister',
query: {
......@@ -528,7 +583,7 @@ function goTeamSign() {
{
confirmButtonText: language.value == 1 ? 'OK' : '确定',
cancelButtonText: language.value == 1 ? 'Cancel' : '取消',
type: 'warning',
type: 'warning'
}
)
return
......@@ -552,7 +607,7 @@ function goTeamSign() {
{
confirmButtonText: language.value == 1 ? 'OK' : '确定',
cancelButtonText: language.value == 1 ? 'Cancel' : '取消',
type: 'warning',
type: 'warning'
}
)
return
......@@ -568,7 +623,6 @@ function goTeamSign() {
}
})
}
}
function goPersonalSign() {
......@@ -586,12 +640,12 @@ function goLogin() {
}
function goGeren() {
//注册
router.push({name: 'personalRegister', query: {matchId: matchId.value}})
// 注册
router.push({ name: 'personalRegister', query: { matchId: matchId.value }})
}
function popChangeType() {
//选择登录类型
// 选择登录类型
signTypePop.value = true
}
......@@ -614,7 +668,7 @@ function checkIsSign() {
{
confirmButtonText: language.value == 1 ? 'Withdraw the registration' : '撤回报名信息',
cancelButtonText: language.value == 1 ? 'Cancel' : '取消',
type: 'warning',
type: 'warning'
}
).then(() => {
withDraw(res.data.orderId)
......@@ -628,7 +682,7 @@ function checkIsSign() {
{
confirmButtonText: language.value == 1 ? 'OK' : '确定',
cancelButtonText: language.value == 1 ? 'Cancel' : '取消',
type: 'warning',
type: 'warning'
}
).then(() => {
reSign()
......@@ -642,7 +696,7 @@ function checkIsSign() {
{
confirmButtonText: language.value == 1 ? 'OK' : '确定',
cancelButtonText: language.value == 1 ? 'Cancel' : '取消',
type: 'warning',
type: 'warning'
}
).then(() => {
reSign()
......@@ -657,7 +711,7 @@ function checkIsSign() {
{
confirmButtonText: language.value == 1 ? 'OK' : '确定',
cancelButtonText: language.value == 1 ? 'Cancel' : '取消',
type: 'warning',
type: 'warning'
}
).then(() => {
// router.push({name: 'myMatch'})
......@@ -672,7 +726,7 @@ function checkIsSign() {
{
confirmButtonText: language.value == 1 ? 'OK' : '确定',
cancelButtonText: language.value == 1 ? 'Cancel' : '取消',
type: 'warning',
type: 'warning'
}
)
return Promise.reject('rejected message')
......@@ -695,9 +749,19 @@ function reSign() {
function switchSignType() {
switch (matchData.value.signType) {
case '0':
case '0':// 个人
if (user.utype == '1') {
match.preCheckForPerson().then(res => {
if (res.data == 1) {
goPersonalSign()
} else {
return proxy.$modal.msgError(
language.value == 0
? '您绑定的WDSF会员号已过期,请先到WDSF官网激活您的会员号。'
: 'Your bound WDSF Number has expired. Please activate your WDSF Number on the WDSF official website first.'
)
}
})
}
if (user.utype == '2') {
ElMessageBox.confirm(
......@@ -706,7 +770,7 @@ function switchSignType() {
{
confirmButtonText: language.value == 0 ? '好的' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning',
type: 'warning'
}
)
}
......@@ -714,7 +778,9 @@ function switchSignType() {
goGeren()
}
break
case '1':
case '1':// 团体
if (user.utype == '1') {
ElMessageBox.confirm(
language.value == 0 ? '当前活动是团队活动,无法报名' : 'The current event is a team event, cannot register',
......@@ -722,27 +788,29 @@ function switchSignType() {
{
confirmButtonText: language.value == 0 ? '好的' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning',
type: 'warning'
}
)
}
if (user.utype == '2') {
goTeamSign()
match.preCheckForGroup(groupId.value).then(goTeamSign)
}
if (user.utype == '3') {
// 团队活动 且 游客
upgradePop.value = true
}
break
case '2':
case '2':// 团体队伍
if (user.utype == '1') {
goPersonalSign()
match.preCheckForGroup(groupId.value).then(goPersonalSign)
// goPersonalSign()
}
if (user.utype == '2') {
goTeamSign()
match.preCheckForGroup(groupId.value).then(goTeamSign)
// goTeamSign()
}
if (user.utype == '3') {
//游客
// 游客
upgradePop.value = true
}
break
......@@ -752,7 +820,7 @@ function switchSignType() {
function applyInvitation() {
var obj = {
title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ',
cptId: matchId.value,
cptId: matchId.value
}
proxy.$refs['dialogInvitationRef'].open(obj)
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!