前台报名
Showing
3 changed files
with
278 additions
and
187 deletions
| ... | @@ -257,7 +257,7 @@ export function recoverMySignFromCancel(cptId) { | ... | @@ -257,7 +257,7 @@ export function recoverMySignFromCancel(cptId) { |
| 257 | return request({ | 257 | return request({ |
| 258 | url: `/league/sign/recoverMySignFromCancel`, | 258 | url: `/league/sign/recoverMySignFromCancel`, |
| 259 | method: 'post', | 259 | method: 'post', |
| 260 | data: {cptId: cptId} | 260 | data: { cptId: cptId } |
| 261 | }) | 261 | }) |
| 262 | } | 262 | } |
| 263 | 263 | ||
| ... | @@ -402,7 +402,7 @@ export function delPerson(id) { | ... | @@ -402,7 +402,7 @@ export function delPerson(id) { |
| 402 | }) | 402 | }) |
| 403 | } | 403 | } |
| 404 | 404 | ||
| 405 | //个人账号 | 405 | // 个人账号 |
| 406 | export function delPersonForPersonal(id) { | 406 | export function delPersonForPersonal(id) { |
| 407 | return request({ | 407 | return request({ |
| 408 | url: `/systemj/personInfo/singleDelete/${id}`, | 408 | url: `/systemj/personInfo/singleDelete/${id}`, |
| ... | @@ -639,7 +639,7 @@ export function saveWdsfMin(obj, groupId) { | ... | @@ -639,7 +639,7 @@ export function saveWdsfMin(obj, groupId) { |
| 639 | }) | 639 | }) |
| 640 | } | 640 | } |
| 641 | 641 | ||
| 642 | //todo | 642 | // todo |
| 643 | export function bindWdsf(perId, card) { | 643 | export function bindWdsf(perId, card) { |
| 644 | return request({ | 644 | return request({ |
| 645 | url: `/systemj/personInfo/bindWdsf/${perId}?card=${card}`, | 645 | url: `/systemj/personInfo/bindWdsf/${perId}?card=${card}`, |
| ... | @@ -771,12 +771,14 @@ export function getAboutUs(params) { | ... | @@ -771,12 +771,14 @@ export function getAboutUs(params) { |
| 771 | params | 771 | params |
| 772 | }) | 772 | }) |
| 773 | } | 773 | } |
| 774 | |||
| 774 | export function getppInfo(params) { | 775 | export function getppInfo(params) { |
| 775 | return request({ | 776 | return request({ |
| 776 | url: `/portal/website/${params}`, | 777 | url: `/portal/website/${params}`, |
| 777 | method: 'get' | 778 | method: 'get' |
| 778 | }) | 779 | }) |
| 779 | } | 780 | } |
| 781 | |||
| 780 | export function getZNList(params) { | 782 | export function getZNList(params) { |
| 781 | return request({ | 783 | return request({ |
| 782 | url: `/Portal/websiteInfo/list`, | 784 | url: `/Portal/websiteInfo/list`, |
| ... | @@ -785,4 +787,21 @@ export function getZNList(params) { | ... | @@ -785,4 +787,21 @@ export function getZNList(params) { |
| 785 | }) | 787 | }) |
| 786 | } | 788 | } |
| 787 | 789 | ||
| 790 | // 团体报名校验 | ||
| 791 | export function preCheckForGroup(groupId) { | ||
| 792 | return request({ | ||
| 793 | url: `/systemj/personInfo/preCheckForGroup/${groupId}`, | ||
| 794 | method: 'get' | ||
| 795 | }) | ||
| 796 | } | ||
| 797 | |||
| 798 | // 个人报名校验 | ||
| 799 | export function preCheckForPerson(params) { | ||
| 800 | return request({ | ||
| 801 | url: `/systemj/personInfo/preCheckForPerson`, | ||
| 802 | method: 'get', | ||
| 803 | params | ||
| 804 | }) | ||
| 805 | } | ||
| 806 | |||
| 788 | 807 | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div style="padding: 0 20px 20px" v-if="language==0"> | 2 | <div v-if="language==0" style="padding: 0 20px 20px"> |
| 3 | <!--赛事详情--> | 3 | <!--赛事详情--> |
| 4 | <div class="indexTitle"> | 4 | <div class="indexTitle"> |
| 5 | <h3 class="leftboderTT">组织机构</h3> | 5 | <h3 class="leftboderTT">组织机构</h3> |
| 6 | </div> | 6 | </div> |
| 7 | <div class="xzbox" v-html="form.ocOrganizer"> | 7 | <div class="xzbox" v-html="form.ocOrganizer" /> |
| 8 | </div> | 8 | <div v-if="form.languageSource!='100'" class="indexTitle"><h3 class="leftboderTT">报名须知</h3></div> |
| 9 | <div class="indexTitle" v-if="form.languageSource!='100'"><h3 class="leftboderTT">报名须知</h3></div> | 9 | <div v-if="form.languageSource!='100'" class="xzbox"> |
| 10 | <div class="xzbox" v-if="form.languageSource!='100'"> | 10 | <div v-html="form.signKnow" /> |
| 11 | <div v-html="form.signKnow"></div> | ||
| 12 | <div v-if="form.signKnowUrl"> | 11 | <div v-if="form.signKnowUrl"> |
| 13 | <el-link v-for="(item,index) in JSON.parse(form.signKnowUrl)" type="primary" | 12 | <el-link |
| 14 | :href="fillImgUrl(item.url)" target="_blank"> | 13 | v-for="(item,index) in JSON.parse(form.signKnowUrl)" :key="index" :href="fillImgUrl(item.url)" |
| 14 | target="_blank" type="primary" | ||
| 15 | > | ||
| 15 | <el-icon :size="20"> | 16 | <el-icon :size="20"> |
| 16 | <Download /> | 17 | <Download /> |
| 17 | </el-icon> | 18 | </el-icon> |
| 18 | {{ item.name }} | 19 | {{ item.name }} |
| 19 | </el-link> | 20 | </el-link> |
| 20 | </div> | 21 | </div> |
| 21 | |||
| 22 | </div> | 22 | </div> |
| 23 | <!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>--> | 23 | <!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>--> |
| 24 | <!-- <div class="xzbox">--> | 24 | <!-- <div class="xzbox">--> |
| 25 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> | 25 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> |
| 26 | <!-- <el-icon :size="20">--> | 26 | <!-- <el-icon :size="20">--> |
| 27 | <!-- <Download />--> | 27 | <!-- <Download />--> |
| 28 | <!-- </el-icon>--> | 28 | <!-- </el-icon>--> |
| 29 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> | 29 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> |
| 30 | <!-- </el-link>--> | 30 | <!-- </el-link>--> |
| 31 | <!-- </div>--> | 31 | <!-- </div>--> |
| 32 | <div class="indexTitle" v-if="form.languageSource=='100'"><h3 class="leftboderTT">赛事规程</h3></div> | 32 | <div v-if="form.languageSource=='100'" class="indexTitle"><h3 class="leftboderTT">赛事规程</h3></div> |
| 33 | <div class="xzbox" v-if="form.languageSource=='100'"> | 33 | <div v-if="form.languageSource=='100'" class="xzbox"> |
| 34 | <div v-html="form.ruleContent"></div> | 34 | <div v-html="form.ruleContent" /> |
| 35 | <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank"> | 35 | <el-link v-if="form.ruleUrl" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank" type="primary"> |
| 36 | <el-icon :size="20"> | 36 | <el-icon :size="20"> |
| 37 | <Download /> | 37 | <Download /> |
| 38 | </el-icon> | 38 | </el-icon> |
| 39 | {{ JSON.parse(form.ruleUrl)[0]?.name }} | 39 | {{ JSON.parse(form.ruleUrl)[0]?.name }} |
| 40 | </el-link> | 40 | </el-link> |
| 41 | </div> | 41 | </div> |
| 42 | <!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>--> | 42 | <!-- <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>--> |
| 43 | <!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">--> | 43 | <!-- <div v-if="form.type==1&&form.cptProjectList?.length > 0">--> |
| 44 | 44 | ||
| 45 | <!-- </div>--> | 45 | <!-- </div>--> |
| 46 | 46 | ||
| 47 | </div> | 47 | </div> |
| 48 | <div style="padding: 0 20px 20px" v-else> | 48 | <div v-else style="padding: 0 20px 20px"> |
| 49 | <!--赛事详情--> | 49 | <!--赛事详情--> |
| 50 | <div class="indexTitle"> | 50 | <div class="indexTitle"> |
| 51 | <h3 class="leftboderTT">Organization</h3> | 51 | <h3 class="leftboderTT">Organization</h3> |
| 52 | </div> | 52 | </div> |
| 53 | <div class="xzbox" v-html="form.ocOrganizer"> | 53 | <div class="xzbox" v-html="form.ocOrganizer" /> |
| 54 | </div> | ||
| 55 | <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div> | 54 | <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div> |
| 56 | <div class="xzbox"> | 55 | <div class="xzbox"> |
| 57 | <div v-html="form.signKnow"></div> | 56 | <div v-html="form.signKnow" /> |
| 58 | <el-link v-if="form.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank"> | 57 | <el-link |
| 58 | v-if="form.signKnowUrl" :href="fillImgUrl(JSON.parse(form.signKnowUrl)[0]?.url)" target="_blank" | ||
| 59 | type="primary" | ||
| 60 | > | ||
| 59 | <el-icon :size="20"> | 61 | <el-icon :size="20"> |
| 60 | <Download /> | 62 | <Download /> |
| 61 | </el-icon> | 63 | </el-icon> |
| 62 | {{ JSON.parse(form.signKnowUrl)[0]?.name }} | 64 | {{ JSON.parse(form.signKnowUrl)[0]?.name }} |
| 63 | </el-link> | 65 | </el-link> |
| 64 | </div> | 66 | </div> |
| 65 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>--> | 67 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>--> |
| 66 | <!-- <div class="xzbox">--> | 68 | <!-- <div class="xzbox">--> |
| 67 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> | 69 | <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">--> |
| 68 | <!-- <el-icon :size="20">--> | 70 | <!-- <el-icon :size="20">--> |
| 69 | <!-- <Download />--> | 71 | <!-- <Download />--> |
| 70 | <!-- </el-icon>--> | 72 | <!-- </el-icon>--> |
| 71 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> | 73 | <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}--> |
| 72 | <!-- </el-link>--> | 74 | <!-- </el-link>--> |
| 73 | <!-- </div>--> | 75 | <!-- </div>--> |
| 74 | 76 | ||
| 75 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>--> | 77 | <!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>--> |
| 76 | <!-- <div class="xzbox">--> | 78 | <!-- <div class="xzbox">--> |
| 77 | <!-- <div v-html="form.ruleContent">--> | 79 | <!-- <div v-html="form.ruleContent">--> |
| 78 | 80 | ||
| 79 | <!-- </div>--> | 81 | <!-- </div>--> |
| 80 | <!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">--> | 82 | <!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">--> |
| 81 | <!-- <el-icon :size="20">--> | 83 | <!-- <el-icon :size="20">--> |
| 82 | <!-- <Download />--> | 84 | <!-- <Download />--> |
| 83 | <!-- </el-icon>--> | 85 | <!-- </el-icon>--> |
| 84 | <!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}--> | 86 | <!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}--> |
| 85 | <!-- </el-link>--> | 87 | <!-- </el-link>--> |
| 86 | <!-- </div>--> | 88 | <!-- </div>--> |
| 87 | <div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div> | 89 | <div v-if="form.type==1 && form.cptProjectList?.length > 0" class="indexTitle"><h3 class="leftboderTT">Event |
| 90 | settings</h3></div> | ||
| 88 | <div v-if="form.type==1 && form.cptProjectList?.length > 0"> | 91 | <div v-if="form.type==1 && form.cptProjectList?.length > 0"> |
| 89 | <match-info-project-list :match-id="form.id" :is-national="form.languageSource!='100'"/> | 92 | <match-info-project-list :is-national="form.languageSource!='100'" :match-id="form.id" /> |
| 90 | </div> | 93 | </div> |
| 91 | </div> | 94 | </div> |
| 92 | </template> | 95 | </template> |
| 93 | 96 | ||
| 94 | <script setup> | 97 | <script setup> |
| 95 | import {ref} from "vue"; | 98 | import { ref } from 'vue' |
| 96 | import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList"; | 99 | import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList' |
| 97 | import {useStorage} from "@vueuse/core/index"; | 100 | import { useStorage } from '@vueuse/core/index' |
| 98 | import {onMounted} from "@vue/runtime-core"; | 101 | import { onMounted } from '@vue/runtime-core' |
| 99 | 102 | ||
| 100 | const language= useStorage('language',0) | 103 | const language = useStorage('language', 0) |
| 101 | 104 | ||
| 102 | const props = defineProps({ | 105 | const props = defineProps({ |
| 103 | form:{ | 106 | form: { |
| 104 | type:Object, | 107 | type: Object, |
| 105 | required:true | 108 | required: true |
| 106 | } | 109 | } |
| 107 | }) | 110 | }) |
| 108 | 111 | ||
| 109 | 112 | ||
| 110 | |||
| 111 | </script> | 113 | </script> |
| 112 | 114 | ||
| 113 | <style scoped lang="scss"> | 115 | <style lang="scss" scoped> |
| 114 | .indexTitle{margin: 20px 0 12px; | 116 | .indexTitle { |
| 115 | h3{ | 117 | margin: 20px 0 12px; |
| 118 | |||
| 119 | h3 { | ||
| 116 | font-size: 20px; | 120 | font-size: 20px; |
| 117 | color:var(--el-color-primary); | 121 | color: var(--el-color-primary); |
| 118 | } | 122 | } |
| 119 | } | 123 | } |
| 120 | 124 | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div v-loading="loading" class="app-container"> | 2 | <div v-loading="loading" class="app-container"> |
| 3 | <div class="mt30"/> | 3 | <div class="mt30" /> |
| 4 | <div v-if="error"> | 4 | <div v-if="error"> |
| 5 | <el-result | 5 | <el-result |
| 6 | :title="language==0?'未找到赛事':'No Data'" | 6 | :title="language==0?'未找到赛事':'No Data'" |
| 7 | icon="error" | 7 | icon="error" |
| 8 | > | 8 | > |
| 9 | <template #extra> | 9 | <template #extra /> |
| 10 | </template> | ||
| 11 | </el-result> | 10 | </el-result> |
| 12 | </div> | 11 | </div> |
| 13 | <div v-else class="box mb20"> | 12 | <div v-else class="box mb20"> |
| ... | @@ -40,34 +39,44 @@ | ... | @@ -40,34 +39,44 @@ |
| 40 | <!-- <p class="ppl" v-if="matchData.signEndTime"><label class="bm4">Registration Deadline:</label>{{ matchData.signEndTime?.slice(0, 10) }}</p>--> | 39 | <!-- <p class="ppl" v-if="matchData.signEndTime"><label class="bm4">Registration Deadline:</label>{{ matchData.signEndTime?.slice(0, 10) }}</p>--> |
| 41 | 40 | ||
| 42 | <p class="ppl"><label> | 41 | <p class="ppl"><label> |
| 43 | <svg class="icon" height="18" p-id="37235" style="position: relative;top: 3px;" | 42 | <svg |
| 43 | class="icon" height="18" p-id="37235" style="position: relative;top: 3px;" | ||
| 44 | t="1712726889323" | 44 | t="1712726889323" |
| 45 | version="1.1" viewBox="0 0 1024 1024" width="18" xmlns="http://www.w3.org/2000/svg"> | 45 | version="1.1" viewBox="0 0 1024 1024" width="18" xmlns="http://www.w3.org/2000/svg" |
| 46 | > | ||
| 46 | <path | 47 | <path |
| 47 | 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" | 48 | 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" |
| 48 | fill="#d3d8d9" p-id="37236"></path> | 49 | fill="#d3d8d9" p-id="37236" |
| 50 | /> | ||
| 49 | </svg> | 51 | </svg> |
| 50 | {{ language == 0 ? '联 系 人' : 'CONTACT PERSON' }}:</label>{{ matchData.contactPerson }} | 52 | {{ language == 0 ? '联 系 人' : 'CONTACT PERSON' }}:</label>{{ matchData.contactPerson }} |
| 51 | </p> | 53 | </p> |
| 52 | 54 | ||
| 53 | <p class="ppl"> | 55 | <p class="ppl"> |
| 54 | <label> | 56 | <label> |
| 55 | <svg class="icon" height="20" p-id="7920" style="position: relative;top: 2px;" | 57 | <svg |
| 56 | t="1711708779620" version="1.1" viewBox="0 0 1024 1024" width="20" xmlns="http://www.w3.org/2000/svg"> | 58 | class="icon" height="20" p-id="7920" style="position: relative;top: 2px;" |
| 59 | t="1711708779620" version="1.1" viewBox="0 0 1024 1024" width="20" | ||
| 60 | xmlns="http://www.w3.org/2000/svg" | ||
| 61 | > | ||
| 57 | <path | 62 | <path |
| 58 | 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" | 63 | 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" |
| 59 | fill="#d3d8d9" p-id="7921"></path> | 64 | fill="#d3d8d9" p-id="7921" |
| 65 | /> | ||
| 60 | </svg> | 66 | </svg> |
| 61 | {{ language == 0 ? '联系电话' : 'TEL' }}:</label>086-{{ matchData.contactTelno }} | 67 | {{ language == 0 ? '联系电话' : 'TEL' }}:</label>086-{{ matchData.contactTelno }} |
| 62 | </p> | 68 | </p> |
| 63 | <p class="ppl"> | 69 | <p class="ppl"> |
| 64 | <label> | 70 | <label> |
| 65 | <svg class="icon" height="18" p-id="40177" style="position: relative;top: 4px;" | 71 | <svg |
| 72 | class="icon" height="18" p-id="40177" style="position: relative;top: 4px;" | ||
| 66 | t="1712726978978" version="1.1" viewBox="0 0 1024 1024" | 73 | t="1712726978978" version="1.1" viewBox="0 0 1024 1024" |
| 67 | width="18" xmlns="http://www.w3.org/2000/svg"> | 74 | width="18" xmlns="http://www.w3.org/2000/svg" |
| 75 | > | ||
| 68 | <path | 76 | <path |
| 69 | 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" | 77 | 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" |
| 70 | fill="#d3d8d9" p-id="40178"></path> | 78 | fill="#d3d8d9" p-id="40178" |
| 79 | /> | ||
| 71 | </svg> | 80 | </svg> |
| 72 | {{ language == 0 ? '邮    箱' : 'EMAIL' }}: | 81 | {{ language == 0 ? '邮    箱' : 'EMAIL' }}: |
| 73 | </label> | 82 | </label> |
| ... | @@ -75,12 +84,15 @@ | ... | @@ -75,12 +84,15 @@ |
| 75 | </p> | 84 | </p> |
| 76 | <p class="ppl"> | 85 | <p class="ppl"> |
| 77 | <label> | 86 | <label> |
| 78 | <svg class="icon" height="18" p-id="6578" style="position: relative;top: 2px;" | 87 | <svg |
| 88 | class="icon" height="18" p-id="6578" style="position: relative;top: 2px;" | ||
| 79 | t="1711707785514" version="1.1" viewBox="0 0 1024 1024" | 89 | t="1711707785514" version="1.1" viewBox="0 0 1024 1024" |
| 80 | width="18" xmlns="http://www.w3.org/2000/svg"> | 90 | width="18" xmlns="http://www.w3.org/2000/svg" |
| 91 | > | ||
| 81 | <path | 92 | <path |
| 82 | 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" | 93 | 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" |
| 83 | fill="#d3d8d9" p-id="6579"></path> | 94 | fill="#d3d8d9" p-id="6579" |
| 95 | /> | ||
| 84 | </svg> | 96 | </svg> |
| 85 | {{ language == 0 ? '分 站 赛' : 'NO. OF TOURNAMENTS' }}:</label> | 97 | {{ language == 0 ? '分 站 赛' : 'NO. OF TOURNAMENTS' }}:</label> |
| 86 | {{ matchData.cpts.length }} | 98 | {{ matchData.cpts.length }} |
| ... | @@ -112,30 +124,39 @@ | ... | @@ -112,30 +124,39 @@ |
| 112 | <label>{{ language == 0 ? '邮    箱' : 'EMAIL' }}:</label> | 124 | <label>{{ language == 0 ? '邮    箱' : 'EMAIL' }}:</label> |
| 113 | {{ matchData.contactEmail }}</p> | 125 | {{ matchData.contactEmail }}</p> |
| 114 | </div> | 126 | </div> |
| 115 | <div style="height: 30px"></div> | 127 | <div style="height: 30px" /> |
| 116 | <div class="ppl_pb"> | 128 | <div class="ppl_pb"> |
| 117 | <el-link v-if="matchData.signKnowUrl&&JSON.parse(matchData.signKnowUrl)?.length>0" :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" | 129 | <el-link |
| 130 | v-if="matchData.signKnowUrl&&JSON.parse(matchData.signKnowUrl)?.length>0" | ||
| 131 | :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" | ||
| 118 | class="mr20" | 132 | class="mr20" |
| 119 | target="_blank" type="primary"> | 133 | target="_blank" type="primary" |
| 134 | > | ||
| 120 | <el-icon :size="20"> | 135 | <el-icon :size="20"> |
| 121 | <Download/> | 136 | <Download /> |
| 122 | </el-icon> | 137 | </el-icon> |
| 123 | {{ language == 0 ? '报名须知' : 'Notes' }} | 138 | {{ language == 0 ? '报名须知' : 'Notes' }} |
| 124 | </el-link> | 139 | </el-link> |
| 125 | 140 | ||
| 126 | <el-link v-if="matchData.disclaimerUrl&&JSON.parse(matchData.disclaimerUrl)?.length>0" :href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)" | 141 | <el-link |
| 142 | v-if="matchData.disclaimerUrl&&JSON.parse(matchData.disclaimerUrl)?.length>0" | ||
| 143 | :href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)" | ||
| 127 | class="mr20" | 144 | class="mr20" |
| 128 | target="_blank" type="primary"> | 145 | target="_blank" type="primary" |
| 146 | > | ||
| 129 | <el-icon :size="20"> | 147 | <el-icon :size="20"> |
| 130 | <Download/> | 148 | <Download /> |
| 131 | </el-icon> | 149 | </el-icon> |
| 132 | {{ language == 0 ? '免责声明' : 'Disclaimers' }} | 150 | {{ language == 0 ? '免责声明' : 'Disclaimers' }} |
| 133 | </el-link> | 151 | </el-link> |
| 134 | <el-link v-if="matchData.ruleUrl&&JSON.parse(matchData.ruleUrl)?.length>0" :href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)" | 152 | <el-link |
| 153 | v-if="matchData.ruleUrl&&JSON.parse(matchData.ruleUrl)?.length>0" | ||
| 154 | :href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)" | ||
| 135 | target="_blank" | 155 | target="_blank" |
| 136 | type="primary"> | 156 | type="primary" |
| 157 | > | ||
| 137 | <el-icon :size="20"> | 158 | <el-icon :size="20"> |
| 138 | <Download/> | 159 | <Download /> |
| 139 | </el-icon> | 160 | </el-icon> |
| 140 | {{ language == 0 ? '赛事规程' : 'Competition Regulations' }} | 161 | {{ language == 0 ? '赛事规程' : 'Competition Regulations' }} |
| 141 | </el-link> | 162 | </el-link> |
| ... | @@ -165,9 +186,11 @@ | ... | @@ -165,9 +186,11 @@ |
| 165 | </van-count-down> | 186 | </van-count-down> |
| 166 | 187 | ||
| 167 | <div class="flexCenter"> | 188 | <div class="flexCenter"> |
| 168 | <el-button v-if="matchData.progressStatusCode=='2'" ref="RegisterRef" class="btn-lineG mt10 w100" round | 189 | <el-button |
| 190 | v-if="matchData.progressStatusCode=='2'" ref="RegisterRef" class="btn-lineG mt10 w100" round | ||
| 169 | style="font-size: 16px" | 191 | style="font-size: 16px" |
| 170 | type="primary" @click="choseSignType"> | 192 | type="primary" @click="choseSignType" |
| 193 | > | ||
| 171 | {{ language == 0 ? '我要报名' : 'REGISTER' }} | 194 | {{ language == 0 ? '我要报名' : 'REGISTER' }} |
| 172 | </el-button> | 195 | </el-button> |
| 173 | <div v-else-if="time<=0" class="btn-lineG mb20 mauto text-center" style="opacity: 0.5;"> | 196 | <div v-else-if="time<=0" class="btn-lineG mb20 mauto text-center" style="opacity: 0.5;"> |
| ... | @@ -183,10 +206,11 @@ | ... | @@ -183,10 +206,11 @@ |
| 183 | 206 | ||
| 184 | </el-col> | 207 | </el-col> |
| 185 | </el-row> | 208 | </el-row> |
| 209 | |||
| 186 | </el-card> | 210 | </el-card> |
| 187 | 211 | ||
| 188 | <!-- 只联赛有--> | 212 | <!-- 只联赛有--> |
| 189 | <quick-row v-if="matchData.leagueId==0" :match-id="matchId"/> | 213 | <quick-row v-if="matchData.leagueId==0" :match-id="matchId" /> |
| 190 | 214 | ||
| 191 | <el-row v-if="matchData.type=='0'" :gutter="20"> | 215 | <el-row v-if="matchData.type=='0'" :gutter="20"> |
| 192 | <el-col :lg="18"> | 216 | <el-col :lg="18"> |
| ... | @@ -198,11 +222,11 @@ | ... | @@ -198,11 +222,11 @@ |
| 198 | </li> | 222 | </li> |
| 199 | </ul> | 223 | </ul> |
| 200 | </div> | 224 | </div> |
| 201 | <matchInfo v-if="menu[0].active==1" :form="matchData"/> | 225 | <matchInfo v-if="menu[0].active==1" :form="matchData" /> |
| 202 | <div v-if="menu[1].active==1"> | 226 | <div v-if="menu[1].active==1"> |
| 203 | <match-info-project-list :is-national="isNational" :match-id="matchData.id"/> | 227 | <match-info-project-list :is-national="isNational" :match-id="matchData.id" /> |
| 204 | </div> | 228 | </div> |
| 205 | <match-schedule-list v-if="menu[2].active==1" :match-data="matchData"/> | 229 | <match-schedule-list v-if="menu[2].active==1" :match-data="matchData" /> |
| 206 | <div v-if="menu[3].active==1"> | 230 | <div v-if="menu[3].active==1"> |
| 207 | <div v-if="matchData.showPersonFlag=='1'"> | 231 | <div v-if="matchData.showPersonFlag=='1'"> |
| 208 | <!-- <el-row :gutter="20" v-if="matchData.signType == '0'">--> | 232 | <!-- <el-row :gutter="20" v-if="matchData.signType == '0'">--> |
| ... | @@ -217,32 +241,52 @@ | ... | @@ -217,32 +241,52 @@ |
| 217 | <el-col :span="24"> | 241 | <el-col :span="24"> |
| 218 | <div class="fr mb20"> | 242 | <div class="fr mb20"> |
| 219 | <div class="flex"> | 243 | <div class="flex"> |
| 220 | <el-input v-model="queryGroupList.groupName" :placeholder="language == 0 ? '请输入参赛队名称' :'Please enter the Team name'" :prefix-icon="Search" class="mr10" | 244 | <el-input |
| 245 | v-model="queryGroupList.groupName" | ||
| 246 | :placeholder="language == 0 ? '请输入参赛队名称' :'Please enter the Team name'" | ||
| 247 | :prefix-icon="Search" class="mr10" | ||
| 221 | clearable | 248 | clearable |
| 222 | size="small" @change="getGroupListByCptId"/> | 249 | size="small" @change="getGroupListByCptId" |
| 223 | <el-input v-model="queryGroupList.athleteName" :placeholder=" language == 0 ? '请输入运动员查询' :'Please enter the athlete name'" :prefix-icon="Search" | 250 | /> |
| 251 | <el-input | ||
| 252 | v-model="queryGroupList.athleteName" | ||
| 253 | :placeholder=" language == 0 ? '请输入运动员查询' :'Please enter the athlete name'" | ||
| 254 | :prefix-icon="Search" | ||
| 224 | clearable | 255 | clearable |
| 225 | size="small" @change="getGroupListByCptId"/> | 256 | size="small" @change="getGroupListByCptId" |
| 257 | /> | ||
| 226 | </div> | 258 | </div> |
| 227 | </div> | 259 | </div> |
| 228 | <el-table :data="signDoneGroupList"> | 260 | <el-table :data="signDoneGroupList"> |
| 229 | <el-table-column :label="language == 0 ? '组别代码' :'EVENT CODE'" align="center" min-width="120" | 261 | <el-table-column |
| 230 | prop="groupCode"/> | 262 | :label="language == 0 ? '组别代码' :'EVENT CODE'" align="center" min-width="120" |
| 263 | prop="groupCode" | ||
| 264 | /> | ||
| 231 | <el-table-column :label="language == 0 ?'组别':'EVENT'" min-width="200" prop="group"> | 265 | <el-table-column :label="language == 0 ?'组别':'EVENT'" min-width="200" prop="group"> |
| 232 | <template #default="scope"> | 266 | <template #default="scope"> |
| 233 | <div class="esp">{{ scope.row.group }}</div> | 267 | <div class="esp">{{ scope.row.group }}</div> |
| 234 | </template> | 268 | </template> |
| 235 | </el-table-column> | 269 | </el-table-column> |
| 236 | <el-table-column :label="language == 0 ?'男运动员':'man name'" min-width="150" | 270 | <el-table-column |
| 237 | prop="maleAthName"/> | 271 | :label="language == 0 ?'男运动员':'man name'" min-width="150" |
| 238 | <el-table-column :label="language == 0 ?'女运动员':'woman name'" min-width="150" | 272 | prop="maleAthName" |
| 239 | prop="femaleAthName"/> | 273 | /> |
| 240 | <el-table-column :label="language == 0 ?'舞种':'Division'" align="center" min-width="90" | 274 | <el-table-column |
| 241 | prop="danceType"/> | 275 | :label="language == 0 ?'女运动员':'woman name'" min-width="150" |
| 242 | <el-table-column :label="language == 0 ?'国籍':'Representing'" align="center" min-width="130" | 276 | prop="femaleAthName" |
| 243 | prop="countryName"/> | 277 | /> |
| 244 | <el-table-column :label="language == 0 ?'参赛队名称':'Team name'" align="center" min-width="150" | 278 | <el-table-column |
| 245 | prop="groupName"/> | 279 | :label="language == 0 ?'舞种':'Division'" align="center" min-width="90" |
| 280 | prop="danceType" | ||
| 281 | /> | ||
| 282 | <el-table-column | ||
| 283 | :label="language == 0 ?'国籍':'Representing'" align="center" min-width="130" | ||
| 284 | prop="countryName" | ||
| 285 | /> | ||
| 286 | <el-table-column | ||
| 287 | :label="language == 0 ?'参赛队名称':'Team name'" align="center" min-width="150" | ||
| 288 | prop="groupName" | ||
| 289 | /> | ||
| 246 | </el-table> | 290 | </el-table> |
| 247 | <PaginationPc | 291 | <PaginationPc |
| 248 | v-show="signDoneGroupListToTal>0" | 292 | v-show="signDoneGroupListToTal>0" |
| ... | @@ -255,22 +299,24 @@ | ... | @@ -255,22 +299,24 @@ |
| 255 | </el-row> | 299 | </el-row> |
| 256 | </div> | 300 | </div> |
| 257 | <div v-else> | 301 | <div v-else> |
| 258 | <el-empty :image="`/img/order_no.png`" :image-size="228" description=""/> | 302 | <el-empty :image="`/img/order_no.png`" :image-size="228" description="" /> |
| 259 | </div> | 303 | </div> |
| 260 | 304 | ||
| 261 | </div> | 305 | </div> |
| 262 | <div v-if="menu[4].active==1"> | 306 | <div v-if="menu[4].active==1"> |
| 263 | <!--成绩--> | 307 | <!--成绩--> |
| 264 | <el-empty :image="`/img/order_no.png`" :image-size="228" description=""/> | 308 | <el-empty :image="`/img/order_no.png`" :image-size="228" description="" /> |
| 265 | </div> | 309 | </div> |
| 266 | <div v-if="menu[5].active==1" class="pd20"> | 310 | <div v-if="menu[5].active==1" class="pd20"> |
| 267 | <div class="xzbox"> | 311 | <div class="xzbox"> |
| 268 | <div v-html="matchData.signKnow"></div> | 312 | <div v-html="matchData.signKnow" /> |
| 269 | <div v-if="matchData.signKnowUrl"> | 313 | <div v-if="matchData.signKnowUrl"> |
| 270 | <el-link v-for="(item,index) in JSON.parse(matchData.signKnowUrl)" :href="fillImgUrl(item.url)" | 314 | <el-link |
| 271 | target="_blank" type="primary"> | 315 | v-for="(item,index) in JSON.parse(matchData.signKnowUrl)" :href="fillImgUrl(item.url)" |
| 316 | target="_blank" type="primary" | ||
| 317 | > | ||
| 272 | <el-icon :size="20"> | 318 | <el-icon :size="20"> |
| 273 | <Download/> | 319 | <Download /> |
| 274 | </el-icon> | 320 | </el-icon> |
| 275 | {{ item.name }} | 321 | {{ item.name }} |
| 276 | </el-link> | 322 | </el-link> |
| ... | @@ -278,11 +324,11 @@ | ... | @@ -278,11 +324,11 @@ |
| 278 | </div> | 324 | </div> |
| 279 | </div> | 325 | </div> |
| 280 | </el-card> | 326 | </el-card> |
| 281 | <div style="height: 20px"></div> | 327 | <div style="height: 20px" /> |
| 282 | 328 | ||
| 283 | </el-col> | 329 | </el-col> |
| 284 | <el-col :lg="6"> | 330 | <el-col :lg="6"> |
| 285 | <match-news :match-id="matchId"/> | 331 | <match-news :match-id="matchId" /> |
| 286 | </el-col> | 332 | </el-col> |
| 287 | </el-row> | 333 | </el-row> |
| 288 | 334 | ||
| ... | @@ -297,24 +343,26 @@ | ... | @@ -297,24 +343,26 @@ |
| 297 | </ul> | 343 | </ul> |
| 298 | </div> | 344 | </div> |
| 299 | <!-- 分站赛--> | 345 | <!-- 分站赛--> |
| 300 | <substation-list v-if="menu1[0].active==1" :list="matchData.cpts"/> | 346 | <substation-list v-if="menu1[0].active==1" :list="matchData.cpts" /> |
| 301 | <matchInfo v-if="menu1[1].active==1" :form="matchData"/> | 347 | <matchInfo v-if="menu1[1].active==1" :form="matchData" /> |
| 302 | <match-schedule-list v-if="menu1[2].active==1" :match-data="matchData"/> | 348 | <match-schedule-list v-if="menu1[2].active==1" :match-data="matchData" /> |
| 303 | </el-card> | 349 | </el-card> |
| 304 | </el-col> | 350 | </el-col> |
| 305 | </el-row> | 351 | </el-row> |
| 306 | </div> | 352 | </div> |
| 307 | 353 | ||
| 308 | <div v-if="matchData.leagueId==0" class="fixed_gg_l" @click="applyInvitation"> | 354 | <div v-if="matchData.leagueId==0" class="fixed_gg_l" @click="applyInvitation"> |
| 309 | <img v-if="language==0" src="@/assets/logo/Invitation_c.png"/> | 355 | <img v-if="language==0" src="@/assets/logo/Invitation_c.png"> |
| 310 | <img v-else src="@/assets/logo/Invitation_e.png"/> | 356 | <img v-else src="@/assets/logo/Invitation_e.png"> |
| 311 | </div> | 357 | </div> |
| 312 | 358 | ||
| 313 | <affix-invitation ref="dialogInvitationRef"/> | 359 | <affix-invitation ref="dialogInvitationRef" /> |
| 314 | <div style="height: 50px"></div> | 360 | <div style="height: 50px" /> |
| 315 | 361 | ||
| 316 | <el-dialog v-model="signTypePop" center class="pcloginpop" | 362 | <el-dialog |
| 317 | close-icon="CircleClose" title="Choose Type" width="450px"> | 363 | v-model="signTypePop" center class="pcloginpop" |
| 364 | close-icon="CircleClose" title="Choose Type" width="450px" | ||
| 365 | > | ||
| 318 | <div> | 366 | <div> |
| 319 | <div class="rItem r1" @click="goLogin"> | 367 | <div class="rItem r1" @click="goLogin"> |
| 320 | <h3>{{ language == 0 ? '机构用户' : 'Organization' }}</h3> | 368 | <h3>{{ language == 0 ? '机构用户' : 'Organization' }}</h3> |
| ... | @@ -324,8 +372,10 @@ | ... | @@ -324,8 +372,10 @@ |
| 324 | </div> | 372 | </div> |
| 325 | </div> | 373 | </div> |
| 326 | </el-dialog> | 374 | </el-dialog> |
| 327 | <el-dialog v-model="upgradePop" center class="pcloginpop" | 375 | <el-dialog |
| 328 | close-icon="CircleClose" title="Upgrade" width="450px"> | 376 | v-model="upgradePop" center class="pcloginpop" |
| 377 | close-icon="CircleClose" title="Upgrade" width="450px" | ||
| 378 | > | ||
| 329 | <div> | 379 | <div> |
| 330 | <div class="rItem r1" @click="goUpdateTeam"> | 380 | <div class="rItem r1" @click="goUpdateTeam"> |
| 331 | <h3>{{ language == 0 ? '升级机构用户' : 'Organization' }}</h3> | 381 | <h3>{{ language == 0 ? '升级机构用户' : 'Organization' }}</h3> |
| ... | @@ -336,35 +386,39 @@ | ... | @@ -336,35 +386,39 @@ |
| 336 | </div> | 386 | </div> |
| 337 | </el-dialog> | 387 | </el-dialog> |
| 338 | 388 | ||
| 339 | <!-- v-if="matchData.leagueId==0"--> | 389 | <!-- v-if="matchData.leagueId==0"--> |
| 340 | <a class="ding" v-if="matchData.isAirView" @click="openPickup" >{{ language==0?'接 / 送机服务':'Pick-up/drop-off service' }}</a> | 390 | <a |
| 341 | <pickup ref="pickupRef"></pickup> | 391 | v-if="matchData.isAirView" class="ding" |
| 392 | @click="openPickup" | ||
| 393 | >{{ language == 0 ? '接 / 送机服务' : 'Pick-up/drop-off service' }}</a> | ||
| 394 | <pickup ref="pickupRef" /> | ||
| 342 | </div> | 395 | </div> |
| 343 | </template> | 396 | </template> |
| 344 | 397 | ||
| 345 | <script setup> | 398 | <script setup> |
| 346 | import MatchInfo from '@/viewsPc/match/components/matchInfo' | 399 | import MatchInfo from '@/viewsPc/match/components/matchInfo' |
| 347 | import MatchScheduleList from "@/viewsPc/match/components/matchScheduleList"; | 400 | import MatchScheduleList from '@/viewsPc/match/components/matchScheduleList' |
| 348 | import MatchNews from "@/viewsPc/match/components/matchNews"; | 401 | import MatchNews from '@/viewsPc/match/components/matchNews' |
| 349 | import SubstationList from "@/viewsPc/match/components/substation-list"; | 402 | import SubstationList from '@/viewsPc/match/components/substation-list' |
| 350 | import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList"; | 403 | import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList' |
| 351 | import QuickRow from "@/viewsPc/match/components/quick-row"; | 404 | import QuickRow from '@/viewsPc/match/components/quick-row' |
| 352 | import Pickup from '@/viewsPc/components/pickup' | 405 | import Pickup from '@/viewsPc/components/pickup' |
| 353 | import {getCurrentInstance, ref} from 'vue' | 406 | import { getCurrentInstance, ref } from 'vue' |
| 354 | import {reactive, onMounted} from '@vue/runtime-core' | 407 | import { reactive, onMounted } from '@vue/runtime-core' |
| 355 | import {useRoute, useRouter} from 'vue-router' | 408 | import { useRoute, useRouter } from 'vue-router' |
| 356 | import AffixInvitation from '@/viewsPc/match/components/affix-invitation' | 409 | import AffixInvitation from '@/viewsPc/match/components/affix-invitation' |
| 357 | 410 | ||
| 358 | const language = useStorage('language', 0) | 411 | const language = useStorage('language', 0) |
| 359 | const route = useRoute() | 412 | const route = useRoute() |
| 360 | const router = useRouter() | 413 | const router = useRouter() |
| 361 | const {proxy} = getCurrentInstance() | 414 | const { proxy } = getCurrentInstance() |
| 362 | import * as match from '@/apiPc/match' | 415 | import * as match from '@/apiPc/match' |
| 363 | import {toRefs} from '@vueuse/shared' | 416 | import { toRefs } from '@vueuse/shared' |
| 364 | import {dayjs, ElMessage, ElMessageBox} from 'element-plus' | 417 | import { dayjs, ElMessage, ElMessageBox } from 'element-plus' |
| 365 | import useUserStore from "@/store/modules/user" | 418 | import useUserStore from '@/store/modules/user' |
| 366 | import {useStorage} from "@vueuse/core/index" | 419 | import { useStorage } from '@vueuse/core/index' |
| 367 | import {Search} from "@element-plus/icons-vue" | 420 | import { Search } from '@element-plus/icons-vue' |
| 421 | import { preCheckForGroup } from '@/apiPc/match' | ||
| 368 | 422 | ||
| 369 | const user = useUserStore().user | 423 | const user = useUserStore().user |
| 370 | const group = useUserStore().group | 424 | const group = useUserStore().group |
| ... | @@ -376,16 +430,16 @@ const data = reactive({ | ... | @@ -376,16 +430,16 @@ const data = reactive({ |
| 376 | groupId: '', | 430 | groupId: '', |
| 377 | activeName2: 'first', | 431 | activeName2: 'first', |
| 378 | menu: [ | 432 | menu: [ |
| 379 | {name: 'Event details', cn: '赛事详情', active: 1}, | 433 | { name: 'Event details', cn: '赛事详情', active: 1 }, |
| 380 | {name: 'Event settings', cn: '赛事设项', active: 0}, | 434 | { name: 'Event settings', cn: '赛事设项', active: 0 }, |
| 381 | {name: 'Schedule', cn: '日程', active: 0}, | 435 | { name: 'Schedule', cn: '日程', active: 0 }, |
| 382 | {name: 'Participating teams', cn: '参赛人员', active: 0}, | 436 | { name: 'Participating teams', cn: '参赛人员', active: 0 }, |
| 383 | {name: 'Achievement', cn: '成绩', active: 0}, | 437 | { name: 'Achievement', cn: '成绩', active: 0 }, |
| 384 | {name: 'Notes', cn: '报名须知', active: 0}], | 438 | { name: 'Notes', cn: '报名须知', active: 0 }], |
| 385 | menu1: [ | 439 | menu1: [ |
| 386 | {name: 'Tournaments', cn: '分站赛', active: 1}, | 440 | { name: 'Tournaments', cn: '分站赛', active: 1 }, |
| 387 | {name: 'Event details', cn: '赛事详情', active: 0}, | 441 | { name: 'Event details', cn: '赛事详情', active: 0 }, |
| 388 | {name: 'Schedule', cn: '日程', active: 0}], | 442 | { name: 'Schedule', cn: '日程', active: 0 }], |
| 389 | signDoneGroupList: [], | 443 | signDoneGroupList: [], |
| 390 | signDoneGroupListToTal: 0, | 444 | signDoneGroupListToTal: 0, |
| 391 | queryGroupList: { | 445 | queryGroupList: { |
| ... | @@ -426,7 +480,7 @@ onMounted(() => { | ... | @@ -426,7 +480,7 @@ onMounted(() => { |
| 426 | }) | 480 | }) |
| 427 | 481 | ||
| 428 | function getMatchId() { | 482 | function getMatchId() { |
| 429 | match.getMaList({topFlag: 1, status: 1}).then((res) => { | 483 | match.getMaList({ topFlag: 1, status: 1 }).then((res) => { |
| 430 | matchId.value = res.rows[0].id | 484 | matchId.value = res.rows[0].id |
| 431 | getMatch(matchId.value) | 485 | getMatch(matchId.value) |
| 432 | getGroupListByCptId() | 486 | getGroupListByCptId() |
| ... | @@ -435,7 +489,7 @@ function getMatchId() { | ... | @@ -435,7 +489,7 @@ function getMatchId() { |
| 435 | 489 | ||
| 436 | function getMatch(id) { | 490 | function getMatch(id) { |
| 437 | loading.value = true | 491 | loading.value = true |
| 438 | match.getMatchById({id: id}).then(res => { | 492 | match.getMatchById({ id: id }).then(res => { |
| 439 | matchData.value = res.data | 493 | matchData.value = res.data |
| 440 | loading.value = false | 494 | loading.value = false |
| 441 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | 495 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| ... | @@ -447,7 +501,7 @@ function getMatch(id) { | ... | @@ -447,7 +501,7 @@ function getMatch(id) { |
| 447 | isNational.value = true | 501 | isNational.value = true |
| 448 | } | 502 | } |
| 449 | }).catch(res => { | 503 | }).catch(res => { |
| 450 | router.push({path: '/match/list'}) | 504 | router.push({ path: '/match/list' }) |
| 451 | loading.value = false | 505 | loading.value = false |
| 452 | // setTimeout("window.location.reload()", 1000) | 506 | // setTimeout("window.location.reload()", 1000) |
| 453 | }) | 507 | }) |
| ... | @@ -474,11 +528,12 @@ function changeMenu(menu, l) { | ... | @@ -474,11 +528,12 @@ function changeMenu(menu, l) { |
| 474 | } | 528 | } |
| 475 | } | 529 | } |
| 476 | 530 | ||
| 531 | |||
| 477 | function choseSignType() { | 532 | function choseSignType() { |
| 478 | console.log(matchData.value.signType, matchData.value.languageSource, user) | 533 | console.log(matchData.value.signType, matchData.value.languageSource, user) |
| 479 | 534 | ||
| 480 | if (!user) { | 535 | if (!user) { |
| 481 | //判断signType,如1个人注册-报名; | 536 | // 判断signType,如1个人注册-报名; |
| 482 | switch (matchData.value.signType) { | 537 | switch (matchData.value.signType) { |
| 483 | case '0': | 538 | case '0': |
| 484 | goGeren() | 539 | goGeren() |
| ... | @@ -498,7 +553,7 @@ function choseSignType() { | ... | @@ -498,7 +553,7 @@ function choseSignType() { |
| 498 | } | 553 | } |
| 499 | 554 | ||
| 500 | function goUpdateTeam() { | 555 | function goUpdateTeam() { |
| 501 | //升级团队 | 556 | // 升级团队 |
| 502 | router.push({ | 557 | router.push({ |
| 503 | name: 'teamRegister', | 558 | name: 'teamRegister', |
| 504 | query: { | 559 | query: { |
| ... | @@ -509,7 +564,7 @@ function goUpdateTeam() { | ... | @@ -509,7 +564,7 @@ function goUpdateTeam() { |
| 509 | } | 564 | } |
| 510 | 565 | ||
| 511 | function goUpdatePersonal() { | 566 | function goUpdatePersonal() { |
| 512 | //升级团队 | 567 | // 升级团队 |
| 513 | router.push({ | 568 | router.push({ |
| 514 | name: 'personalRegister', | 569 | name: 'personalRegister', |
| 515 | query: { | 570 | query: { |
| ... | @@ -528,7 +583,7 @@ function goTeamSign() { | ... | @@ -528,7 +583,7 @@ function goTeamSign() { |
| 528 | { | 583 | { |
| 529 | confirmButtonText: language.value == 1 ? 'OK' : '确定', | 584 | confirmButtonText: language.value == 1 ? 'OK' : '确定', |
| 530 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', | 585 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', |
| 531 | type: 'warning', | 586 | type: 'warning' |
| 532 | } | 587 | } |
| 533 | ) | 588 | ) |
| 534 | return | 589 | return |
| ... | @@ -552,7 +607,7 @@ function goTeamSign() { | ... | @@ -552,7 +607,7 @@ function goTeamSign() { |
| 552 | { | 607 | { |
| 553 | confirmButtonText: language.value == 1 ? 'OK' : '确定', | 608 | confirmButtonText: language.value == 1 ? 'OK' : '确定', |
| 554 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', | 609 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', |
| 555 | type: 'warning', | 610 | type: 'warning' |
| 556 | } | 611 | } |
| 557 | ) | 612 | ) |
| 558 | return | 613 | return |
| ... | @@ -568,7 +623,6 @@ function goTeamSign() { | ... | @@ -568,7 +623,6 @@ function goTeamSign() { |
| 568 | } | 623 | } |
| 569 | }) | 624 | }) |
| 570 | } | 625 | } |
| 571 | |||
| 572 | } | 626 | } |
| 573 | 627 | ||
| 574 | function goPersonalSign() { | 628 | function goPersonalSign() { |
| ... | @@ -586,12 +640,12 @@ function goLogin() { | ... | @@ -586,12 +640,12 @@ function goLogin() { |
| 586 | } | 640 | } |
| 587 | 641 | ||
| 588 | function goGeren() { | 642 | function goGeren() { |
| 589 | //注册 | 643 | // 注册 |
| 590 | router.push({name: 'personalRegister', query: {matchId: matchId.value}}) | 644 | router.push({ name: 'personalRegister', query: { matchId: matchId.value }}) |
| 591 | } | 645 | } |
| 592 | 646 | ||
| 593 | function popChangeType() { | 647 | function popChangeType() { |
| 594 | //选择登录类型 | 648 | // 选择登录类型 |
| 595 | signTypePop.value = true | 649 | signTypePop.value = true |
| 596 | } | 650 | } |
| 597 | 651 | ||
| ... | @@ -614,7 +668,7 @@ function checkIsSign() { | ... | @@ -614,7 +668,7 @@ function checkIsSign() { |
| 614 | { | 668 | { |
| 615 | confirmButtonText: language.value == 1 ? 'Withdraw the registration' : '撤回报名信息', | 669 | confirmButtonText: language.value == 1 ? 'Withdraw the registration' : '撤回报名信息', |
| 616 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', | 670 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', |
| 617 | type: 'warning', | 671 | type: 'warning' |
| 618 | } | 672 | } |
| 619 | ).then(() => { | 673 | ).then(() => { |
| 620 | withDraw(res.data.orderId) | 674 | withDraw(res.data.orderId) |
| ... | @@ -628,7 +682,7 @@ function checkIsSign() { | ... | @@ -628,7 +682,7 @@ function checkIsSign() { |
| 628 | { | 682 | { |
| 629 | confirmButtonText: language.value == 1 ? 'OK' : '确定', | 683 | confirmButtonText: language.value == 1 ? 'OK' : '确定', |
| 630 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', | 684 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', |
| 631 | type: 'warning', | 685 | type: 'warning' |
| 632 | } | 686 | } |
| 633 | ).then(() => { | 687 | ).then(() => { |
| 634 | reSign() | 688 | reSign() |
| ... | @@ -642,7 +696,7 @@ function checkIsSign() { | ... | @@ -642,7 +696,7 @@ function checkIsSign() { |
| 642 | { | 696 | { |
| 643 | confirmButtonText: language.value == 1 ? 'OK' : '确定', | 697 | confirmButtonText: language.value == 1 ? 'OK' : '确定', |
| 644 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', | 698 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', |
| 645 | type: 'warning', | 699 | type: 'warning' |
| 646 | } | 700 | } |
| 647 | ).then(() => { | 701 | ).then(() => { |
| 648 | reSign() | 702 | reSign() |
| ... | @@ -657,7 +711,7 @@ function checkIsSign() { | ... | @@ -657,7 +711,7 @@ function checkIsSign() { |
| 657 | { | 711 | { |
| 658 | confirmButtonText: language.value == 1 ? 'OK' : '确定', | 712 | confirmButtonText: language.value == 1 ? 'OK' : '确定', |
| 659 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', | 713 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', |
| 660 | type: 'warning', | 714 | type: 'warning' |
| 661 | } | 715 | } |
| 662 | ).then(() => { | 716 | ).then(() => { |
| 663 | // router.push({name: 'myMatch'}) | 717 | // router.push({name: 'myMatch'}) |
| ... | @@ -672,7 +726,7 @@ function checkIsSign() { | ... | @@ -672,7 +726,7 @@ function checkIsSign() { |
| 672 | { | 726 | { |
| 673 | confirmButtonText: language.value == 1 ? 'OK' : '确定', | 727 | confirmButtonText: language.value == 1 ? 'OK' : '确定', |
| 674 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', | 728 | cancelButtonText: language.value == 1 ? 'Cancel' : '取消', |
| 675 | type: 'warning', | 729 | type: 'warning' |
| 676 | } | 730 | } |
| 677 | ) | 731 | ) |
| 678 | return Promise.reject('rejected message') | 732 | return Promise.reject('rejected message') |
| ... | @@ -695,9 +749,19 @@ function reSign() { | ... | @@ -695,9 +749,19 @@ function reSign() { |
| 695 | 749 | ||
| 696 | function switchSignType() { | 750 | function switchSignType() { |
| 697 | switch (matchData.value.signType) { | 751 | switch (matchData.value.signType) { |
| 698 | case '0': | 752 | case '0':// 个人 |
| 699 | if (user.utype == '1') { | 753 | if (user.utype == '1') { |
| 754 | match.preCheckForPerson().then(res => { | ||
| 755 | if (res.data == 1) { | ||
| 700 | goPersonalSign() | 756 | goPersonalSign() |
| 757 | } else { | ||
| 758 | return proxy.$modal.msgError( | ||
| 759 | language.value == 0 | ||
| 760 | ? '您绑定的WDSF会员号已过期,请先到WDSF官网激活您的会员号。' | ||
| 761 | : 'Your bound WDSF Number has expired. Please activate your WDSF Number on the WDSF official website first.' | ||
| 762 | ) | ||
| 763 | } | ||
| 764 | }) | ||
| 701 | } | 765 | } |
| 702 | if (user.utype == '2') { | 766 | if (user.utype == '2') { |
| 703 | ElMessageBox.confirm( | 767 | ElMessageBox.confirm( |
| ... | @@ -706,7 +770,7 @@ function switchSignType() { | ... | @@ -706,7 +770,7 @@ function switchSignType() { |
| 706 | { | 770 | { |
| 707 | confirmButtonText: language.value == 0 ? '好的' : 'OK', | 771 | confirmButtonText: language.value == 0 ? '好的' : 'OK', |
| 708 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 772 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', |
| 709 | type: 'warning', | 773 | type: 'warning' |
| 710 | } | 774 | } |
| 711 | ) | 775 | ) |
| 712 | } | 776 | } |
| ... | @@ -714,7 +778,9 @@ function switchSignType() { | ... | @@ -714,7 +778,9 @@ function switchSignType() { |
| 714 | goGeren() | 778 | goGeren() |
| 715 | } | 779 | } |
| 716 | break | 780 | break |
| 717 | case '1': | 781 | case '1':// 团体 |
| 782 | |||
| 783 | |||
| 718 | if (user.utype == '1') { | 784 | if (user.utype == '1') { |
| 719 | ElMessageBox.confirm( | 785 | ElMessageBox.confirm( |
| 720 | language.value == 0 ? '当前活动是团队活动,无法报名' : 'The current event is a team event, cannot register', | 786 | language.value == 0 ? '当前活动是团队活动,无法报名' : 'The current event is a team event, cannot register', |
| ... | @@ -722,27 +788,29 @@ function switchSignType() { | ... | @@ -722,27 +788,29 @@ function switchSignType() { |
| 722 | { | 788 | { |
| 723 | confirmButtonText: language.value == 0 ? '好的' : 'OK', | 789 | confirmButtonText: language.value == 0 ? '好的' : 'OK', |
| 724 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', | 790 | cancelButtonText: language.value == 0 ? '取消' : 'Cancel', |
| 725 | type: 'warning', | 791 | type: 'warning' |
| 726 | } | 792 | } |
| 727 | ) | 793 | ) |
| 728 | } | 794 | } |
| 729 | if (user.utype == '2') { | 795 | if (user.utype == '2') { |
| 730 | goTeamSign() | 796 | match.preCheckForGroup(groupId.value).then(goTeamSign) |
| 731 | } | 797 | } |
| 732 | if (user.utype == '3') { | 798 | if (user.utype == '3') { |
| 733 | // 团队活动 且 游客 | 799 | // 团队活动 且 游客 |
| 734 | upgradePop.value = true | 800 | upgradePop.value = true |
| 735 | } | 801 | } |
| 736 | break | 802 | break |
| 737 | case '2': | 803 | case '2':// 团体队伍 |
| 738 | if (user.utype == '1') { | 804 | if (user.utype == '1') { |
| 739 | goPersonalSign() | 805 | match.preCheckForGroup(groupId.value).then(goPersonalSign) |
| 806 | // goPersonalSign() | ||
| 740 | } | 807 | } |
| 741 | if (user.utype == '2') { | 808 | if (user.utype == '2') { |
| 742 | goTeamSign() | 809 | match.preCheckForGroup(groupId.value).then(goTeamSign) |
| 810 | // goTeamSign() | ||
| 743 | } | 811 | } |
| 744 | if (user.utype == '3') { | 812 | if (user.utype == '3') { |
| 745 | //游客 | 813 | // 游客 |
| 746 | upgradePop.value = true | 814 | upgradePop.value = true |
| 747 | } | 815 | } |
| 748 | break | 816 | break |
| ... | @@ -752,7 +820,7 @@ function switchSignType() { | ... | @@ -752,7 +820,7 @@ function switchSignType() { |
| 752 | function applyInvitation() { | 820 | function applyInvitation() { |
| 753 | var obj = { | 821 | var obj = { |
| 754 | title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ', | 822 | title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ', |
| 755 | cptId: matchId.value, | 823 | cptId: matchId.value |
| 756 | } | 824 | } |
| 757 | proxy.$refs['dialogInvitationRef'].open(obj) | 825 | proxy.$refs['dialogInvitationRef'].open(obj) |
| 758 | } | 826 | } | ... | ... |
-
Please register or sign in to post a comment