50ce5172 by 杨炀

Merge branch 'dev' into order

# Conflicts:
#	src/assets/styles/ruoyi.scss
#	src/viewsPc/index_en.vue
#	src/viewsPc/match/components/quick-row.vue
2 parents e665b5d8 e0d73fd9
......@@ -7,7 +7,11 @@
.popo{position: absolute;left: 0;}
.no-pointer { pointer-events: none }
.blur20 { filter: blur(20px) }
.flex{display: flex;}
.text-gray{color: #999}
.pt5 {
padding-top: 5px;
}
......
......@@ -13,7 +13,7 @@
<el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item>
<el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item>
<el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item>
<el-menu-item index="/match/list">{{ language==0?'大赛报名':'SIGN UP' }}</el-menu-item>
<el-menu-item index="/match/list">{{ language==0?'大赛报名':'REGISTRATION' }}</el-menu-item>
<el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item>
<el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item>
<el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item>
......@@ -31,7 +31,7 @@
<el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item>
<el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item>
<el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item>
<el-menu-item index="/match/list">{{ language==0?'大赛报名':'SIGN UP' }}</el-menu-item>
<el-menu-item index="/match/list">{{ language==0?'大赛报名':'REGISTRATION' }}</el-menu-item>
<el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item>
<el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item>
<el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item>
......@@ -122,7 +122,7 @@
<el-menu-item index="/">HOME</el-menu-item>
<el-menu-item index="/news">NEWS</el-menu-item>
<el-menu-item index="/notice">NOTICEBOARD</el-menu-item>
<el-menu-item index="/match/list">SIGN UP</el-menu-item>
<el-menu-item index="/match/list">REGISTRATION</el-menu-item>
<el-menu-item index="/saiC">COMPETITIONS</el-menu-item>
<el-menu-item index="/meta">MEDIA</el-menu-item>
<el-menu-item index="/guide">GUIDELINE</el-menu-item>
......@@ -216,14 +216,14 @@ const logout = () => {
})
}
const goLogin = (flag) => {
let param = null
if (_.isBoolean(flag)) {
param = {
notShowClose: flag
}
}
proxy.$refs['pcloginDialog'].open(param)
const goLogin = (query) => {
let param = {}
// if (_.isBoolean(flag)) {
// param = {
// notShowClose: flag
// }
// }
proxy.$refs['pcloginDialog'].open(query)
}
const reFlash = () => {
......@@ -231,8 +231,9 @@ const reFlash = () => {
location.reload()
}
watch(() => useUserStore().reLogin, (val) => {
if (val) {
goLogin()
if (val.show) {
console.log(val)
goLogin(val.query)
}
})
......
......@@ -30,7 +30,7 @@ const useUserStore = defineStore(
isExam: '1', // 是否为考点,0:是;1:否,
genFlag: '', // 是否是自动的协会
badge: {},
reLogin: false,
reLogin: {show:false,query:{}},
language: 0
}),
actions: {
......@@ -138,10 +138,11 @@ const useUserStore = defineStore(
this.badge = res.data
})
},
setReLogin() {
this.reLogin = true
setReLogin(query) {
console.log(query)
this.reLogin = {show:true,query:query}
setTimeout(() => {
this.reLogin = false
this.reLogin = {show:false,query:query}
}, 1000)
},
checkAndLogin() {
......
......@@ -19,7 +19,7 @@
<h3>{{ n.name }}</h3>
</el-col>
<el-col :lg="8">
<p class="ppl"><label>{{ language==0?'赛事级别':'Event Type' }}</label>{{ n.level }}</p>
<p class="ppl"><label>{{ language==0?'赛事级别':'Event Level' }}</label>{{ n.level }}</p>
<p class="ppl" v-if="n.languageSource=='100'"><label v-if="n.groupName">{{ language==0?'参赛队':'Name of participating team' }}</label>{{n.groupName}}</p>
</el-col>
<el-col :lg="8">
......
......@@ -2,6 +2,61 @@
<div>
<index-Ch v-if="language ==0"/>
<index-En v-else/>
<div v-if="showgg" class="fixed_gg">
<!--天气-->
<el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon>
<div class="bg-lineg pd20">
<div class="smallToday" @click="popWeather">
<div>
<div class="type">
<weather-icon :type="weatherObj.forecast[0]?.type" :width="50"/>
</div>
</div>
<div>
<h3 v-if="language == 0">无锡</h3>
<h3 v-else>WUXI</h3>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
</div>
</div>
</div>
<el-dialog v-model="weatherdialog" width="540" :close-on-click-modal="true"
style="--el-dialog-padding-primary:0;--el-dialog-border-radius:15px;
--el-dialog-bg-color:transparent;overflow: hidden;">
<div class="bg-lineg pd20">
<div class="weatherbox">
<div class="today">
<div>
<div class="wd">{{weatherObj.wendu}}°c</div>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
<div class="week">{{weatherObj.forecast[0]?.week}}</div>
</div>
<div>
<div class="type">
<weather-icon :type="weatherObj.forecast[0].type" :width="64"/>
</div>
</div>
</div>
<ul class="wlist">
<li v-for="n in weatherObj.forecast.slice(1,6)">
<div class="type">
<weather-icon :type="n.type" :width="32"/>
</div>
<div class="wd">{{n.low.slice(2,-1)}}/{{n.high.slice(2)}}</div>
<div class="week" v-if="language==1">
{{n.week=='星期一'?'Mon':n.week=='星期二'?'Tue':n.week=='星期三'?'Wed':n.week=='星期四'?'Thu':n.week=='星期五'?'Fri':n.week=='星期六'?'Sat':n.week=='星期日'?'Sun':''}}
</div>
<div class="week" v-else>
{{n.week}}
</div>
<div class="date mt10">{{n.ymd.slice(5,10)}}</div>
</li>
</ul>
</div>
</div>
</el-dialog>
</div>
</div>
</template>
......@@ -9,9 +64,29 @@
<script setup>
import IndexCh from '/src/viewsPc/index'
import IndexEn from '/src/viewsPc/index_en'
import WeatherIcon from '@/viewsPc/components/weatherIcon'
import {useStorage} from "@vueuse/core/index";
import {ref} from "vue";
import {getWeather} from "@/apiPc/webSite";
const showgg = ref(true)
const language = useStorage('language', 0)
const weatherObj = ref({
forecast:[]
})
const weatherdialog = ref(false)
init()
function init(){
getWeather().then(res=>{
weatherObj.value = JSON.parse(res.data).data
console.log(weatherObj.value)
})
}
const popWeather = () => {
weatherdialog.value = true
}
</script>
<style scoped lang="scss">
......
......@@ -331,62 +331,6 @@
</el-col>
</el-row>
</div>
<div v-if="showgg" class="fixed_gg">
<!--天气-->
<el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon>
<!-- <img src="@/assets/dance/weather_en.png">-->
<div class="bg-lineg pd10">
<div class="smallToday" @click="popWeather">
<div>
<div class="type">
<weather-icon :type="weatherObj.forecast[0]?.type" :width="50"/>
</div>
</div>
<div>
<h3>无锡</h3>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
</div>
</div>
<!-- <iframe width="150" scrolling="no" height="60" frameborder="0" allowtransparency="true" src="https://i.tianqi.com?c=code&id=84&color=%23FFFFFF&bgc=%23&icon=1&py=binhuqu&site=17"></iframe>-->
</div>
<el-dialog v-model="weatherdialog" width="540" :close-on-click-modal="true" :show-close="false"
style="--el-dialog-padding-primary:0;--el-dialog-border-radius:15px;
--el-dialog-bg-color:transparent;overflow: hidden;">
<div class="bg-lineg pd20">
<!-- <iframe width="500" scrolling="no" height="270" frameborder="0" allowtransparency="true" src="https://i.tianqi.com?c=code&id=95&color=%23FFFFFF&icon=4&py=binhuqu&site=15"></iframe>-->
<div class="weatherbox">
<div class="today">
<div>
<div class="wd">{{weatherObj.wendu}}°c</div>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
<div class="week">{{weatherObj.forecast[0]?.week}}</div>
</div>
<div>
<div class="type">
<weather-icon :type="weatherObj.forecast[0].type" :width="64"/>
<!-- <div class="mt10">{{weatherObj.forecast[0].type}}</div>-->
</div>
</div>
</div>
<ul class="wlist">
<li v-for="n in weatherObj.forecast.slice(1,6)">
<div class="type">
<weather-icon :type="n.type" :width="32"/>
</div>
<div class="wd">{{n.low.slice(2,-1)}}/{{n.high.slice(2)}}</div>
<!-- <div class="date">{{n.ymd}}</div>-->
<div class="week">
{{n.week}}
</div>
</li>
</ul>
</div>
</div>
</el-dialog>
</div>
</div>
</template>
<script setup>
......@@ -402,7 +346,6 @@ import {Autoplay, Navigation} from 'swiper'
import 'swiper/css'
import {dayjs} from 'element-plus'
import * as match from "@/apiPc/match";
import WeatherIcon from '@/viewsPc/components/weatherIcon'
const modules = [Autoplay, Navigation]
const navigationPic = ref({
nextEl: '.picnext',
......@@ -444,7 +387,7 @@ const weatherdialog = ref(false)
const picList = ref([])
const calendarValue = ref(dayjs('2024-07-22').toDate())
const calendarRange = ref([dayjs('2024-07-21').toDate(), dayjs('2024-07-27').toDate()])
const showgg = ref(true)
onMounted(() => {
init()
})
......@@ -492,11 +435,6 @@ const init = () => {
}
matchData.value = maList.value[0]
})
getWeather().then(res=>{
weatherObj.value = JSON.parse(res.data).data
console.log(weatherObj.value)
})
}
const carouselChange = (e) => {
console.log(e)
......
......@@ -29,7 +29,7 @@
</van-count-down>
</div>
<div class="banner-count bb" v-else @click="goMatch(n)">
Register Now
REGISTER NOW
<!-- <el-button class="btn-lineG" style="font-size: 17px;height: 40px" round type="primary">开始报名</el-button>-->
</div>
</div>
......@@ -47,13 +47,43 @@
<div class="bgbg">
<h1 style="color: #fff">WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024</h1>
<a class="zn-btn" @click="goGuide">
ENTRY GUIDE
GUIDELINE
<el-icon><download /></el-icon>
</a>
</div>
</el-col>
<el-col :sm="24" :lg="14">
<HomeQuick :match-id="matchData?.id"/>
<div class="itemBox">
<el-row :gutter="20">
<el-col :sm="12" :lg="8">
<div class="item" @click="building"><img src="@/assets/dance/btn01.png">
<p>Hotel Reservation</p>
</div></el-col>
<el-col :sm="12" :lg="8">
<div class="item" @click="building"><img src="@/assets/dance/btn02.png">
<p>Vehicle Reservation</p>
</div></el-col>
<el-col :sm="12" :lg="8">
<div class="item" @click="building"><img src="@/assets/dance/btn03.png">
<p>Dining Reservation</p>
</div>
</el-col>
<el-col :sm="12" :lg="8">
<div class="item" @click="building"><img src="@/assets/dance/btn04.png">
<p>Ticket Booking</p>
</div>
</el-col>
<el-col :sm="12" :lg="8">
<div class="item" @click="building"><img src="@/assets/dance/btn05.png">
<p>Makeup Appointment</p>
</div></el-col>
<el-col :sm="12" :lg="8">
<div class="item" @click="building"><img src="@/assets/dance/btn06.png">
<p>Photography Appointment</p>
</div></el-col>
</el-row>
</div>
</el-col>
</el-row>
</div>
......@@ -338,69 +368,19 @@
</el-row>
</div>
<div v-if="showgg" class="fixed_gg">
<!--天气-->
<el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon>
<div class="bg-lineg pd20">
<div class="smallToday" @click="popWeather">
<div>
<div class="type">
<weather-icon :type="weatherObj.forecast[0]?.type" :width="50"/>
</div>
</div>
<div>
<h3>WUXI</h3>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
</div>
</div>
</div>
<el-dialog v-model="weatherdialog" width="540" :close-on-click-modal="true"
style="--el-dialog-padding-primary:0;--el-dialog-border-radius:15px;
--el-dialog-bg-color:transparent;overflow: hidden;">
<div class="bg-lineg pd20">
<div class="weatherbox">
<div class="today">
<div>
<div class="wd">{{weatherObj.wendu}}°c</div>
<div class="wd_p">{{weatherObj.forecast[0]?.low.slice(2)}}~{{weatherObj.forecast[0]?.high.slice(2)}}</div>
<div class="week">{{weatherObj.forecast[0]?.week}}</div>
</div>
<div>
<div class="type">
<weather-icon :type="weatherObj.forecast[0].type" :width="64"/>
</div>
</div>
</div>
<ul class="wlist">
<li v-for="n in weatherObj.forecast.slice(1,6)">
<div class="type">
<weather-icon :type="n.type" :width="32"/>
</div>
<div class="wd">{{n.low.slice(2,-1)}}/{{n.high.slice(2)}}</div>
<!-- <div class="date">{{n.ymd}}</div>-->
<div class="week">
{{n.week=='星期一'?'Mon':n.week=='星期二'?'Tue':n.week=='星期三'?'Wed':n.week=='星期四'?'Thu':n.week=='星期五'?'Fri':n.week=='星期六'?'Sat':n.week=='星期日'?'Sun':''}}
</div>
</li>
</ul>
</div>
</div>
</el-dialog>
</div>
</div>
</template>
<script setup>
import HomeQuick from '@/viewsPc/components/homeQuick'
import { ref, nextTick, onMounted, watch } from 'vue'
import { getCurrentInstance } from '@vue/runtime-core'
import { getNewsListById, getNewsList,getWeather} from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
import WeatherIcon from '@/viewsPc/components/weatherIcon'
import _ from 'lodash'
import { Swiper, SwiperSlide } from 'swiper/vue'
import { Autoplay, Navigation } from 'swiper'
import 'swiper/css'
import { dayjs } from 'element-plus'
import {dayjs, ElMessage} from 'element-plus'
import * as match from "@/apiPc/match";
import {rankList} from '@/assets/js/data'
const modules = [Autoplay, Navigation]
......@@ -411,10 +391,7 @@ const navigationPic = ref({
const router = useRouter()
const { proxy } = getCurrentInstance()
const time = ref(0)
const weatherObj = ref({
forecast:[]
})
const weatherdialog = ref(false)
const personList = ref([
{ name: 'Wolfgang Eliasch', pp: 'Chairperson for Latin AUT', src: '/img/1.png' },
{ name: 'Nenad Jeftic', pp: 'Chairperson for Standard SRB', src: '/img/2.png' },
......@@ -438,7 +415,7 @@ const livelist = ref([])
const maList = ref([])
const picList = ref([])
const calendarValue = ref('2024-07-22')
const showgg = ref(true)
const matchData = ref({})
onMounted(() => {
init()
......@@ -477,10 +454,6 @@ const init = () => {
}
matchData.value = maList.value[0]
})
getWeather().then(res=>{
weatherObj.value = JSON.parse(res.data).data
console.log(weatherObj.value)
})
}
......@@ -515,13 +488,14 @@ const goMatch = (n) => {
path: `/match/list/${n.id}`
})
}
const popWeather = () => {
weatherdialog.value = true
const building = () => {
ElMessage.warning('Building')
}
const goGuide = () => {
router.push({
name: 'guide',
query: {
path: `/guide`,
query:{
index:8
}
})
......@@ -539,11 +513,24 @@ const goGuide = () => {
justify-content: space-between;
img{margin: 5% 0}
}
.itemBox{
padding: 20px 40px;
p{margin: 0;height: 40px;line-height: 20px;display: flex;align-items: center;}
}
border-radius: 15px;
.zn-btn{background: #FFFFFF;
font-size: 18px; width: fit-content;
color: #453DEA;
border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;}
.item{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 40px 0 0;
display: flex;align-items: center;text-align: center;
font-size: 18px; flex-direction: column;padding: 35px 10px 20px;
background:url("@/assets/dance/znbb.png") no-repeat left #FFFFFF;
background-size: cover;
position: relative;
border-radius: 15px;
img{position: absolute;top: -30px}
}
}
.app-main {
......
......@@ -4,8 +4,8 @@
destroy-on-close :show-close="showClose" :close-on-click-modal="false" @close="close"
>
<div class="pd10"></div>
<el-form ref="loginRef" :model="loginForm" :rules="language==0?loginRules:loginRules_en" class="login-form"
v-if="loginStatus==0">
<el-form v-if="loginStatus==0" ref="loginRef" :model="loginForm"
:rules="language==0?loginRules:loginRules_en" class="login-form">
<el-form-item prop="username">
<el-input
......@@ -81,6 +81,7 @@
</el-form>
<div v-if="loginStatus==1">
<a class="poLeft" @click="close()"><el-icon><ArrowLeftBold /></el-icon></a>
<div class="rItem r1" @click="goRegister(1)">
<h3>{{ language == 0 ? '机构用户' : 'Organization' }}</h3>
</div>
......@@ -89,6 +90,7 @@
</div>
</div>
<div v-if="loginStatus==2">
<a class="poLeft" @click="close()"><el-icon><ArrowLeftBold /></el-icon></a>
<el-form ref="changePasswordRef" :model="changePasswordForm"
:rules="language==0?changePasswordRules:changePasswordRules_en" class="login-form">
<el-form-item prop="username">
......@@ -241,8 +243,11 @@ const changePasswordForm = ref({
})
const open = (params) => {
console.log(params)
show.value = true
showClose.value = !(params?.notShowClose || false)
loginStatus.value = params?.active || 0
changePasswordForm.value.username = params?.account || ''
if (language.value == 0) {
title.value = '用户登录'
} else {
......@@ -561,4 +566,5 @@ function handleChangePassword() {
border: var(--el-color-primary) solid 1px;
border-radius: 0;
}
.poLeft{position: absolute;top:24px;font-size: 20px;left:20px}
</style>
......
......@@ -24,6 +24,10 @@
</el-button>
</template>
</el-input>
<a class="text-primary text-sm mt10" href="https://www.worlddancesport.org/Athlete/List" target="_blank">
<el-icon><Link /></el-icon>
{{language==0?'去WDSF官网查询我的会员号':'Search my WSDF MIN on the WDSF official website'}}
</a>
</el-form-item>
<el-form-item :label="language==0?'姓氏':'Surname'" prop="xing" :required="!editDis">
<el-input v-model="form.xing" :disabled="editDis"/>
......@@ -37,7 +41,10 @@
<el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'所属国家/地区':'Nationality'" prop="countryId" required>
<el-form-item v-if="form.wdsfMin" :label="language==0?'代表':'Representing'" required>
<el-input v-model="form.representing" disabled/>
</el-form-item>
<el-form-item v-else :label="language==0?'所属国家/地区':'Nationality'" prop="countryId" required>
<el-select filterable v-model="form.countryId" style="width: 100%;" @change="changeCountry">
<el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName"
:value="item.id"/>
......@@ -244,6 +251,13 @@ const open = (params) => {
match.getPersonInfoById(params.id).then(res => {
form.value = res.data
form.value.id = params.id
if(form.value.wdsfMin){
editDis.value = true
}
if(form.value.idcType=='3'){
form.value.idcType = ''
form.value.idcCode = ''
}
if (form.value.label) {
// {0:0,1:1,2:3}
form.value.labelArr = form.value.label.split(',')
......
......@@ -255,7 +255,7 @@ function codeSuccess(msg) {
if (language.value == 0) {
ElMessage.warning('WDSF卡号错误')
} else {
ElMessage.warning('WDSF ID is Error')
ElMessage.warning('WDSF MIN is Error')
}
}
})
......
......@@ -7,10 +7,10 @@
<!-- wdsf 个人/舞伴/国际赛运动员-->
<div class="pd10"></div>
<el-form ref="dialogRef" :model="form" :label-width="language==0?120:180" inline>
<el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" v-if="form.id&&form.id!='0'">
<el-form-item :label="language==0?'WDSF卡号':'WDSF MIN'" v-if="form.id&&form.id!='0'">
{{ form.wdsfMin }}
</el-form-item>
<el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" required v-else>
<el-form-item :label="language==0?'WDSF卡号':'WDSF MIN'" required v-else>
<el-input type="text" v-model="card" @change="resetCode">
<template #append>
<el-button type="primary" plain style="width: 110px" @click="checkCard">
......@@ -21,6 +21,11 @@
</el-button>
</template>
</el-input>
<a class="text-primary text-sm mt10" href="https://www.worlddancesport.org/Athlete/List" target="_blank">
<el-icon><Link /></el-icon>
{{language==0?'去WDSF官网查询我的会员号':'Search my WSDF MIN on the WDSF official website'}}
</a>
<Vcode :show="showVcode" :z-index="2999" @success="codeSuccess()"></Vcode>
</el-form-item>
<div class="h30"></div>
......@@ -319,7 +324,7 @@ function codeSuccess(msg) {
if (language.value == 0) {
ElMessage.warning('WDSF卡号错误')
} else {
ElMessage.warning('WDSF ID is Error')
ElMessage.warning('WDSF MIN is Error')
}
}
})
......
......@@ -7,7 +7,8 @@
<img class="w100" :src="fillImgUrl(groupInfo.imgUrl)"/>
</el-col>
<el-col :span="20">
<div class="item"><label>{{ language==0?'团体名称':'Team Name' }}</label>{{ groupInfo.name }}</div>
<div class="item" v-if="groupInfo.type=='4'"><label>{{ language==0?'代表队':'Represent' }}</label>{{ groupInfo.name?.substring(0,3) }}</div>
<div class="item" v-if="groupInfo.type!='4'"><label>{{ language==0?'团体名称':'Team name' }}</label>{{ groupInfo.name?.substring(0,3) }}</div>
<div class="item"><label>{{ language==0?'团体类型':'Group type' }}</label>
<text v-if="groupInfo.type=='0'">{{language==0?'普通院校':'School'}}</text>
<text v-if="groupInfo.type=='1'">{{language==0?'专业舞蹈学校':'Professional dance school'}}</text>
......
......@@ -2,7 +2,7 @@
<div class="border-info" style="margin: 20px" v-loading="loading">
<el-row v-if="language==0">
<el-col :lg="8"><div class="item"><label>赛事名称</label>{{matchInfo.name}}</div></el-col>
<el-col :lg="8"><div class="item"><label>赛事类型</label>{{matchInfo.level}}</div></el-col>
<el-col :lg="8"><div class="item"><label>赛事级别</label>{{matchInfo.level}}</div></el-col>
<el-col :lg="8"><div class="item"><label>赛事时间</label>{{matchInfo.beginTime?.slice(0,10)}}{{ matchInfo.endTime?.slice(0,10) }}</div></el-col>
<el-col :lg="8"><div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0,10) }}{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col>
<el-col :lg="16"><div class="item"><label>比赛地址</label>{{matchInfo.address}}</div></el-col>
......@@ -12,7 +12,7 @@
</el-row>
<el-row v-else>
<el-col :lg="8"><div class="item"><label>Event Name</label>{{matchInfo.name}}</div></el-col>
<el-col :lg="8"><div class="item"><label>Event Type</label>{{matchInfo.level}}</div></el-col>
<el-col :lg="8"><div class="item"><label>Event Level</label>{{matchInfo.level}}</div></el-col>
<el-col :lg="8"><div class="item"><label>Event Date</label>{{matchInfo.beginTime?.slice(0,10)}} ~ {{ matchInfo.endTime?.slice(0,10) }}</div></el-col>
<el-col :lg="8"><div class="item"><label>Registration Period</label>{{ matchInfo.signBeginTime?.slice(0,10) }} ~{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col>
<el-col :lg="16"><div class="item"><label>Event Address</label>{{matchInfo.address}}</div></el-col>
......
<template>
<el-steps :active="activeStep" align-center>
<el-step :title="language==0?'校验 WDSF 会员号':'Check WDSF ID'" />
<el-step :title="language==0?'校验 WDSF 会员号':'Check WDSF MIN'" />
<el-step :title="language==0?'选手报名':'Participant Registration'" />
<el-step :title="language==0?'提交审核':'Submit for review'" />
</el-steps>
......
......@@ -50,6 +50,7 @@
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">
{{ language == 0 ? '报名已结束' : 'Registration has ended' }}
</div>
<p class="text-gray">{{ language==0?'报名截止':'Registration Deadline' }}:{{ n.signEndTime?.slice(0,10) }}</p>
</div>
</el-col>
</el-row>
......
......@@ -5,7 +5,7 @@
<el-table-column :label="language==0?'组别代码':'Group code'" width="120px" prop="zuName"/>
<el-table-column :label="language==0?'组别':'Group'" prop="project.name"/>
<el-table-column :label="language==0?'舞种':'Dance Style'" width="120px" prop="project.danceType"/>
<el-table-column :label="language==0?'参赛说明':'Participation Instructions'">
<el-table-column :label="language==0?'参赛说明':'Participation Instructions'" min-width="110px">
<template #default="scope">
<div v-html="scope.row.project.remarks"></div>
</template>
......@@ -17,7 +17,7 @@
</div>
</template>
</el-table-column>
<el-table-column :label="language==0?'报名费':'Registration Fee'" width="120px" prop="">
<el-table-column :label="language==0?'报名费':'Registration Fee'" width="130px" prop="">
<template #default="scope">
<div class="text-primary">
{{ language==0?'¥':'€' }}{{ scope.row.project.serviceFee }}
......
......@@ -272,7 +272,7 @@ function changeMenu(menu, l) {
}
}
function goLogin() {
useUserStore().setReLogin(true)
useUserStore().setReLogin()
}
function choseSignType() {
console.log(matchData.value.signType,user)
......
......@@ -104,11 +104,9 @@
<label>{{ language == 0 ? '邮&ensp;&ensp;&ensp;&ensp;箱' : 'E-mail' }}:</label>
{{ matchData.contactEmail }}</p>
</div>
<div style="height: 30px"></div>
<div class="ppl_pb">
<el-link class="mr20" v-if="matchData.signKnowUrl" type="primary"
<el-link class="mr20" v-if="matchData.signKnowUrl&&JSON.parse(matchData.signKnowUrl)?.length>0" type="primary"
:href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download/>
......@@ -116,14 +114,14 @@
{{ language == 0 ? '报名须知' : 'Notes' }}
</el-link>
<el-link class="mr20" v-if="matchData.disclaimerUrl" type="primary"
<el-link class="mr20" v-if="matchData.disclaimerUrl&&JSON.parse(matchData.disclaimerUrl)?.length>0" type="primary"
:href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download/>
</el-icon>
{{ language == 0 ? '免责声明' : 'Disclaimers' }}
</el-link>
<el-link v-if="matchData.ruleUrl" type="primary"
<el-link v-if="matchData.ruleUrl&&JSON.parse(matchData.ruleUrl)?.length>0" type="primary"
:href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)"
target="_blank">
<el-icon :size="20">
......@@ -155,7 +153,7 @@
<div class="flexCenter">
<el-button v-if="matchData.progressStatusCode=='2'" ref="RegisterRef" type="primary" round
class="btn-lineG mb20 mt20 w100"
class="btn-lineG mt10 w100"
@click="choseSignType" style="font-size: 16px">
{{ language == 0 ? '我要报名' : 'Register' }}
</el-button>
......@@ -165,8 +163,9 @@
<div v-else-if="startSign>0" style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">
{{ language == 0 ? '报名未开始' : 'Not started yet' }}
</div>
</div>
<p class="text-gray text-center">{{ language==0?'报名截止':'Registration Deadline' }}:{{ matchData.signEndTime?.slice(0,10) }}</p>
</el-col>
</el-row>
</el-card>
......@@ -520,7 +519,7 @@ function goPersonalSign() {
}
function goLogin() {
useUserStore().setReLogin(true)
useUserStore().setReLogin()
}
function goGeren() {
......
......@@ -104,6 +104,7 @@
<a class="btn-lineG mb20 mauto" v-if="n.time>0" style="display: block;">
{{ language==0?'我要报名':'Register' }}</a>
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto">{{ language==0?'报名已结束':'Registration has ended' }}</div>
<p class="text-gray">{{ language==0?'报名截止':'Registration Deadline' }}:{{ n.signEndTime?.slice(0,10) }}</p>
</div>
</el-col>
</el-row>
......
<template>
<el-card>
<el-steps :active="activeStep" finish-status="success" align-center>
<el-step :title="language==0?'创建账号':'Check WDSF ID'"/>
<el-step :title="language==0?'创建账号':'Check WDSF MIN'"/>
<el-step :title="language==0?'账号信息':'Participant Registration'" />
<!-- <el-step :title="language==0?'提交审核':'Submit for review'" />-->
<el-step :title="language==0?'注册完成':'stered successfully'" />
......
<template>
<el-card>
<el-steps :active="activeStep" finish-status="success" align-center>
<el-step :title="language==0?'创建账号':'Check WDSF ID'"/>
<el-step :title="language==0?'创建账号':'Check WDSF MIN'"/>
<el-step :title="language==0?'选手报名':'Participant Registration'" />
<el-step :title="language==0?'提交审核':'Submit for review'" />
<!-- <el-step :title="language==0?'注册完成':'stered successfully'" />-->
......
......@@ -20,6 +20,11 @@
</el-button>
</template>
</el-input>
<a class="text-primary text-sm mt10" href="https://www.worlddancesport.org/Athlete/List" target="_blank">
<el-icon><Link /></el-icon>
{{language==0?'去WDSF官网查询我的会员号':'Search my WSDF MIN on the WDSF official website'}}
</a>
</el-form-item>
<div class="h30"></div>
<div class="leftboderTT">{{ language == 0 ? '个人信息' : 'Personal information' }}
......@@ -91,8 +96,14 @@
v-if="language==0">(登录时需要验证,保护账户信息)</span></div>
<div class="h20"></div>
<el-form-item :label="language==0?'邮箱':'E-mail'" required>
<div class="pvbox">
<el-input type="text" v-model="wdsfData.email" @change="resetCode(1)" autocomplete="false"
@blur="verifyCode" :disabled="wdsfData.personFlag=='1'"/>
<span class="text-primary" v-if="wdsfData.personFlag=='1'" @click="forgetPassword(wdsfData.email)">忘记密码</span>
</div>
<div class="tip" v-if="wdsfData.personFlag=='0'">
<div v-if="language==0">
(请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。
......@@ -138,7 +149,7 @@
<el-button class="primary-kx" round @click="goBack"> {{ language == 0 ? '取消' : 'Cancel' }}</el-button>
<el-button type="primary" class="btn-lineG w200px" round @click="next" v-if="wdsfData.wdsfFlag=='1'">
<span v-if="matchId=='0'">{{ language == 0 ? '立即注册' : 'Register Now' }}</span>
<span>{{ language == 0 ? '下一步' : 'Next' }}</span>
<span v-else>{{ language == 0 ? '下一步' : 'Next' }}</span>
</el-button>
</div>
</el-card>
......@@ -163,6 +174,7 @@ import PersonalStep from "@/viewsPc/register/components/personal-step";
import FileUpload from "@/components/FileUpload";
import {useRouter, useRoute} from "vue-router";
import {useStorage} from "@vueuse/core/index";
import useUserStore from "@/store/modules/user";
const language= useStorage('language',0)
const router = useRouter()
......@@ -275,6 +287,7 @@ function codeSuccess(msg) {
counting.value = true
getCaptchaSms({account: wdsfData.value.email}).then(res => {
isCodeTrue.value = 1
ElMessage.success(language.value == 0 ? '发送成功,请关注邮箱邮件' :'Send success, please check your email')
}).catch(err => {
isCodeTrue.value = 1
})
......@@ -306,6 +319,7 @@ function next() {
ElMessage.warning(language.value == 0 ? '请上传护照文件' :'Please upload your passport file')
return
}
console.log(wdsfData.value.personFlag)
if (wdsfData.value.personFlag == '0') {
let obj = {
card: form.value.card,
......@@ -383,9 +397,15 @@ function afterR() {
})
}
}
function forgetPassword(account) {
useUserStore().setReLogin({account: account,active:2})
}
</script>
<style scoped lang="scss">
.pvbox{position: relative;width: 100%;
.text-primary{position: absolute;right: -5em;cursor: pointer;text-decoration: underline;}
}
.tip {
line-height: 1.6;
font-size: 12px;
......
......@@ -115,6 +115,7 @@ function codeSuccess(msg) {
getCaptchaSms({account: form.value.account}).then(res => {
counting.value = true
isCodeTrue.value = true
ElMessage.success(language.value == 0 ? '发送成功,请关注邮箱邮件' :'Send success, please check your email')
})
}
......
......@@ -25,7 +25,7 @@
<el-form class="d-form" size="large" :model="form" ref="registerRef"
:rules="form.is=='0'?registerRules:registerRulesEn" label-width="120" :label-position="language==0?'left':'top'"
style="max-width: 500px;margin: auto">
<el-form-item :label="language==0?'是否国家队':'National Team'" required>
<el-form-item :label="language==0?'是否国家队':'National Team'" required v-show="language==0">
<el-select filterable v-model="form.is" @change="changeIs">
<el-option :label="language==0?'是':'Yes'" value="1"></el-option>
<el-option :label="language==0?'否':'No'" value="0"></el-option>
......
......@@ -19,10 +19,7 @@
<script setup>
import {reactive,toRefs} from "@vue/runtime-core";
const router = useRouter()
import Vcode from "vue3-puzzle-vcode"
import {ElMessage} from 'element-plus'
import CountDown from '@chenfengyuan/vue-countdown'
import {getCaptchaSms, checkRegisterCode} from "@/apiPc/match"
import {useRouter} from "vue-router";
import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
......
......@@ -33,7 +33,7 @@ const data = reactive({
isCodeTrue:false,
counting:false,
form:{
userName:'1111'
userName:''
},
activeStep: 0
})
......
......@@ -40,7 +40,7 @@
<table class="table table-striped">
<thead>
<tr class="bg-lineg">
<td class="text-center">{{ language==0?'名次':'RANK' }}</td>
<td class="text-center" style="width: 120px;">{{ language==0?'名次':'RANK' }}</td>
<td class="text-center">{{ language==0?'组合':'COUPLE' }}</td>
<td class="text-center w15">{{ language==0?'国家':'COUNTRY' }}</td>
<td class="text-center w15">START #</td>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!