Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jijin
/
dance-pc
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
3a5fe9f7
authored
2026-06-26 16:26:16 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
大师课,报名调整
1 parent
d41baa03
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
103 additions
and
75 deletions
src/viewsPc/components/masterClass.vue
src/viewsPc/match/chooseSportsman.vue
src/viewsPc/components/masterClass.vue
View file @
3a5fe9f
...
...
@@ -13,28 +13,30 @@
</el-steps>
<div
v-if=
"activeStep==0"
>
<div
class=
"mb60 xzRich"
style=
"max-height: 50vh;overflow: auto"
>
<div
v-if=
"language==0"
style=
"width: 300px;margin: auto"
><br>
培训地点:无锡君来世尊酒店
<br>
详细地址:江苏省 无锡市 滨湖区 和风路111号
<br>
报到时间:2024年7月14日13:30 -17:00
<br>
联系人:蒋璐
<br>
联系电话:15961580050
<br>
报名截止日期:
<span
style=
"text-decoration: underline"
>
2026-06-30
</span><br>
<div
v-if=
"language==0"
style=
"width: 400px;margin: auto"
><br>
培训地点:南京国际博览会议中心
<br>
详细地址:江苏省南京市建邺区江东中路300号南京国际博览会议中心302、303、402、403。
<br>
上课时间:2026年7月13日-7月14日
<br>
报到时间:2026年7月12日 13:30- 17:00
<br>
联系人:祝昊乐
<br>
联系电话:010-67183764
<br>
报名截止日期:
<span
style=
"text-decoration: underline"
>
2026-07-10
</span><br>
</div>
<div
v-else
style=
"width: 400px;margin: auto;text-transform: capitalize"
><br>
<!-- The age limit for Youth Session: Born between 1st Jan, 2006 and 31st Dec., 2009.
<br/>
-->
<!-- The age limit for Juvenile Session: Born after 1 Jan., 2010.
<br/>
-->
Training Camp Venue:Worldhotel Grand Juna Wuxi
<br>
Address:No.111 Hefeng Road, Binhu District, Wuxi, Jiangsu
<br>
Check-in:From 13:30 to 17:00 on July 14, 2026.
<br>
Contact Person:Dean Ding
<br>
Tel:+86 19951486130
<br>
Registration Deadline:
<span
style=
"text-decoration: underline"
>
2026-06-30
</span><br>
Training Camp Venue:Nanjing International Exhibition and Convention Center
<br>
Address:No. 300 Jiangdong Zhong Road, Jianye District, Nanjing City, Jiangsu Province. Nanjing International Exhibition and Conference Center, Room 302, 303, 402, 403.
<br>
Schooltime:July 13th - July 14th, 2026.
<br>
Check-in:July 12, 2026 13:30 - 17:0.
<br>
Contact Person:Mr.Zhu
<br>
Tel:+86 010-67183764
<br>
Registration Deadline:
<span
style=
"text-decoration: underline"
>
2026-07-10
</span><br>
</div>
</div>
<div
v-loading=
"loading"
class=
"text-center"
>
<el-button
v-if=
"courseList.length>0"
class=
"btn-lineG"
round
type=
"primary"
@
click=
"setActive(1)"
>
<span
v-if=
"dayjs().format('YYYY-MM-DD')>'2026-0
6-3
0'"
>
<span
v-if=
"dayjs().format('YYYY-MM-DD')>'2026-0
7-1
0'"
>
{{
language
==
0
?
'报名已结束'
:
'Registration has ended'
}}
</span>
<span
v-else
>
{{
language
==
0
?
'下一步'
:
'NEXT'
}}
</span>
...
...
@@ -121,12 +123,12 @@
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
>
<h2
class=
"text-center"
>
{{
language
==
0
?
'申请已提交'
:
'Submitted successfully'
}}
</h2>
<h4
v-if=
"language == 0"
class=
"text-center"
>
我们已收到您的申请,请在7月14日到
无锡
报到。
我们已收到您的申请,请在7月14日到
南京
报到。
</h4>
<h4
v-else
>
Your application has been received,
<br>
Please re
gister in Wuxi on July 14
.
Please re
port to Nanjing on July 14th
.
</h4>
</div>
<div
v-else
>
...
...
@@ -151,7 +153,7 @@
</div>
<el-tag
v-if=
"(
form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&
c.viewStateEn == 0)"
v-if=
"(
c.viewStateCn == 0)||(
c.viewStateEn == 0)"
class=
"ml20"
effect=
"dark"
type=
"danger"
>
{{
language
==
0
?
'已报满'
:
'Already full'
}}
...
...
@@ -183,7 +185,7 @@
<
script
setup
>
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
getCurrentInstance
,
watch
,
onMounted
}
from
'vue'
import
{
getCurrentInstance
,
watch
,
onMounted
,
ref
}
from
'vue'
import
{
nextTick
}
from
'@vue/runtime-core'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
addInvitation
,
countryList
}
from
'@/apiPc/match'
...
...
@@ -208,6 +210,8 @@ const rules = ref(
{
nationality
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
}],
name
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
}],
phone
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
}],
gender
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
}],
email
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
}],
birth
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
}],
passportNo
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
}],
...
...
@@ -218,8 +222,11 @@ const rules = ref(
const
open
=
(
params
)
=>
{
console
.
log
(
params
)
show
.
value
=
true
title
.
value
=
language
.
value
==
0
?
'
亚洲青少年体育舞蹈公益课'
:
'Asian Youth DanceSport Training Camp
'
title
.
value
=
language
.
value
==
0
?
'
2026年亚洲青少年体育舞蹈公益课'
:
'2026 Asian Youth Sports Dance Charity Class
'
cptId
.
value
=
params
.
cptId
form
.
value
=
{
gender
:
'0'
}
getCourse
()
}
const
checkMobile
=
()
=>
{
...
...
@@ -230,19 +237,19 @@ onMounted(() => {
window
.
addEventListener
(
'resize'
,
checkMobile
)
})
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
sex
:
'0'
}
if
(
language
.
value
==
0
)
{
form
.
value
.
countryId
=
240
}
}
nextTick
(()
=>
{
// proxy.$refs['dialogRef'].clearValidate()
})
})
//
watch(show, (value) => {
//
if (!value) {
//
form.value = {
//
sex: '0'
//
}
//
if (language.value == 0) {
//
form.value.countryId = 240
//
}
//
}
//
nextTick(() => {
//
// proxy.$refs['dialogRef'].clearValidate()
//
})
//
})
function
getCourse
()
{
// '1777256058082189313'
...
...
@@ -332,6 +339,8 @@ function getCountryList() {
countryList
().
then
(
res
=>
{
countrys
.
value
=
res
.
data
})
console
.
log
(
countrys
.
value
)
}
const
submit
=
()
=>
{
...
...
src/viewsPc/match/chooseSportsman.vue
View file @
3a5fe9f
...
...
@@ -303,7 +303,7 @@ const data = reactive({
currProjectId
:
''
,
openTour
:
false
,
isNational
:
false
,
// 是否为国际赛
languageSource
:
''
,
singlePersonEntryLimit
:
''
,
doublePersonEntryLimit
:
''
languageSource
:
''
,
singlePersonEntryLimit
:
''
,
doublePersonEntryLimit
:
''
,
simlsEntryLimit
:
''
})
const
{
activeTeam
,
...
...
@@ -331,7 +331,7 @@ const {
tableType
,
zuQuery
,
openTour
,
currProjectId
,
tourCurrent
,
isNational
,
languageSource
,
singlePersonEntryLimit
,
doublePersonEntryLimit
tourCurrent
,
isNational
,
languageSource
,
singlePersonEntryLimit
,
doublePersonEntryLimit
,
simlsEntryLimit
}
=
toRefs
(
data
)
const
matchId
=
ref
(
route
.
query
.
matchId
)
...
...
@@ -759,8 +759,6 @@ function switchTabletype() {
}
}
let
isDanNum
=
0
let
isShuangNum
=
0
watch
(
projectIds
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
.
length
>
oldVal
.
length
)
{
currProjectId
.
value
=
_
.
last
(
newVal
)
...
...
@@ -768,31 +766,46 @@ watch(projectIds, (newVal, oldVal) => {
currProjectId
.
value
=
''
}
if
(
newVal
.
length
>
0
)
{
isDanNum
=
0
isShuangNum
=
0
for
(
const
hh
of
projectList
.
value
)
{
if
(
!
projectIds
.
value
.
includes
(
hh
.
id
))
{
continue
}
if
(
hh
.
singleFlag
==
'1'
)
{
isDanNum
+=
1
}
if
(
hh
.
doubleSingleProjectFlag
==
'1'
)
{
isShuangNum
+=
1
}
}
filterProjectList
()
}
else
{
resetProjectList
()
}
})
function
getSelectedProjects
()
{
return
projectList
.
value
.
filter
(
p
=>
projectIds
.
value
.
includes
(
p
.
id
))
function
getSelectedProjects
(
mtype
=
null
)
{
return
projectList
.
value
.
filter
(
p
=>
{
if
(
!
projectIds
.
value
.
includes
(
p
.
id
))
return
false
if
(
mtype
!=
null
&&
p
.
mtype
!==
mtype
)
return
false
return
true
})
}
function
normalizeMajorFlag
(
flag
)
{
if
(
flag
==
null
||
flag
===
''
)
return
null
return
String
(
flag
)
}
function
getProjectMajorFlag
(
p
)
{
const
flag
=
normalizeMajorFlag
(
p
.
majorFlag
)
if
(
flag
!=
null
)
return
flag
if
(
p
.
name
&&
p
.
name
.
indexOf
(
'业余'
)
>
-
1
)
return
'0'
return
'1'
}
function
isSimlsProject
(
p
)
{
return
p
.
simlsFlag
==
'1'
&&
p
.
almightyFlag
!=
'1'
}
function
countSimlsProjects
()
{
return
getSelectedProjects
().
filter
(
isSimlsProject
).
length
}
function
countSimlsSingleProjects
()
{
return
getSelectedProjects
().
filter
(
p
=>
p
.
singleFlag
==
'1'
&&
isSimlsProject
(
p
)).
length
}
function
isSameMtype
(
a
,
b
)
{
return
a
.
mtype
===
b
.
mtype
function
countSimlsDoubleSingleProjects
(
)
{
return
getSelectedProjects
().
filter
(
p
=>
p
.
doubleSingleProjectFlag
==
'1'
&&
isSimlsProject
(
p
)).
length
}
function
hasDanceCountConflict
(
pp
)
{
...
...
@@ -800,13 +813,10 @@ function hasDanceCountConflict(pp) {
return
false
}
const
ppDanceCount
=
pp
.
danceTypeDetailStr
.
split
(
','
).
length
return
getSelectedProjects
().
some
(
selected
=>
{
return
getSelectedProjects
(
pp
.
mtype
).
some
(
selected
=>
{
if
(
!
selected
.
pproperty
||
!
selected
.
danceTypeDetailStr
)
{
return
false
}
if
(
!
isSameMtype
(
selected
,
pp
))
{
return
false
}
if
(
selected
.
pproperty
!==
pp
.
pproperty
)
{
return
false
}
...
...
@@ -819,13 +829,10 @@ function hasPpropertyConflict(pp) {
if
(
!
pp
.
pproperty
)
{
return
false
}
return
getSelectedProjects
().
some
(
selected
=>
{
return
getSelectedProjects
(
pp
.
mtype
).
some
(
selected
=>
{
if
(
!
selected
.
pproperty
)
{
return
false
}
if
(
!
isSameMtype
(
selected
,
pp
))
{
return
false
}
return
selected
.
pproperty
!==
pp
.
pproperty
})
}
...
...
@@ -834,43 +841,53 @@ function hasPlevelConflict(pp) {
if
(
!
pp
.
plevel
)
{
return
false
}
return
getSelectedProjects
().
some
(
selected
=>
{
return
getSelectedProjects
(
pp
.
mtype
).
some
(
selected
=>
{
if
(
!
selected
.
plevel
)
{
return
false
}
if
(
!
isSameMtype
(
selected
,
pp
))
{
return
false
}
return
selected
.
plevel
!==
pp
.
plevel
})
}
function
hasMajorFlagConflict
(
pp
)
{
const
ppFlag
=
getProjectMajorFlag
(
pp
)
if
(
projectIds
.
value
.
includes
(
pp
.
id
))
{
return
false
}
return
getSelectedProjects
(
pp
.
mtype
).
some
(
selected
=>
{
return
getProjectMajorFlag
(
selected
)
!==
ppFlag
})
}
function
hasAlmightyDanceCountConflict
(
pp
)
{
if
(
pp
.
almightyFlag
!==
'1'
||
!
pp
.
danceTypeDetailStr
)
{
return
false
}
const
ppDanceCount
=
pp
.
danceTypeDetailStr
.
split
(
','
).
length
return
getSelectedProjects
().
some
(
selected
=>
{
return
getSelectedProjects
(
pp
.
mtype
).
some
(
selected
=>
{
if
(
selected
.
almightyFlag
!==
'1'
||
!
selected
.
danceTypeDetailStr
)
{
return
false
}
if
(
!
isSameMtype
(
selected
,
pp
))
{
return
false
}
return
selected
.
danceTypeDetailStr
.
split
(
','
).
length
!==
ppDanceCount
})
}
function
hasSimlsEntryLimitReached
(
pp
)
{
const
limit
=
Number
(
simlsEntryLimit
.
value
)
if
(
!
limit
||
!
isSimlsProject
(
pp
)
||
projectIds
.
value
.
includes
(
pp
.
id
))
return
false
return
countSimlsProjects
()
>=
limit
}
function
hasSingleEntryLimitReached
(
pp
)
{
return
isDanNum
==
Number
(
singlePersonEntryLimit
.
value
)
&&
pp
.
singleFlag
==
'1'
&&
!
projectIds
.
value
.
includes
(
pp
.
id
)
const
limit
=
Number
(
singlePersonEntryLimit
.
value
)
if
(
!
limit
||
pp
.
singleFlag
!=
'1'
||
projectIds
.
value
.
includes
(
pp
.
id
))
return
false
return
countSimlsSingleProjects
()
>=
limit
}
function
hasDoubleSingleEntryLimitReached
(
pp
)
{
return
isShuangNum
==
Number
(
doublePersonEntryLimit
.
value
)
&&
pp
.
doubleSingleProjectFlag
==
'1'
&&
!
projectIds
.
value
.
includes
(
pp
.
id
)
const
limit
=
Number
(
doublePersonEntryLimit
.
value
)
if
(
!
limit
||
pp
.
doubleSingleProjectFlag
!=
'1'
||
projectIds
.
value
.
includes
(
pp
.
id
))
return
false
return
countSimlsDoubleSingleProjects
()
>=
limit
}
function
filterProjectList
()
{
...
...
@@ -878,7 +895,9 @@ function filterProjectList() {
pp
.
disabled
=
hasDanceCountConflict
(
pp
)
||
hasPpropertyConflict
(
pp
)
||
hasPlevelConflict
(
pp
)
||
hasMajorFlagConflict
(
pp
)
||
hasAlmightyDanceCountConflict
(
pp
)
||
hasSimlsEntryLimitReached
(
pp
)
||
hasSingleEntryLimitReached
(
pp
)
||
hasDoubleSingleEntryLimitReached
(
pp
)
}
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment