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
42450b62
authored
2024-05-07 14:59:45 +0800
by
杨炀
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
国内赛修改
1 parent
0cb2e2e0
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1406 additions
and
219 deletions
src/apiPc/match.js
src/layoutPc/components/AppBottom.vue
src/viewsPc/match/chooseProject.vue
src/viewsPc/match/chooseProject_bak.vue
src/viewsPc/match/components/addWdsf.vue
src/viewsPc/match/components/allSportsmanListForPersonal.vue
src/viewsPc/match/components/matchInfo-projectList.vue
src/viewsPc/match/components/matchInfo.vue
src/viewsPc/match/detail.vue
src/viewsPc/match/detail_en.vue
src/viewsPc/register/personal.vue
src/apiPc/match.js
View file @
42450b6
...
...
@@ -39,11 +39,12 @@ export function getMySignDetailById(params) {
}
// 获取赛事下的已报团队
export
function
getGroupListByCptId
(
cptId
)
{
export
function
getGroupListByCptId
(
cptId
,
query
)
{
return
request
({
// url: `/league/group/getGroupListByCptId/${cptId}`,
url
:
`/league/sign/getSignInfoDataByCptId/
${
cptId
}
`
,
method
:
'get'
method
:
'get'
,
params
:
query
})
}
...
...
@@ -363,6 +364,13 @@ export function savePersonForMyPerson(data) {
data
:
data
})
}
export
function
savePersonForMyPerson2
(
data
)
{
return
request
({
url
:
`/systemj/personInfo/savePersonForMyPerson2`
,
method
:
'post'
,
data
:
data
})
}
// 人员修改
export
function
editPersonInfo
(
params
)
{
...
...
@@ -380,6 +388,13 @@ export function delPerson(id) {
method
:
'delete'
})
}
//个人账号
export
function
delPersonForPersonal
(
id
)
{
return
request
({
url
:
`/systemj/personInfo/singleDelete/
${
id
}
`
,
method
:
'delete'
})
}
export
function
singleSignSavePerson
(
data
)
{
return
request
({
...
...
@@ -657,6 +672,13 @@ export function checkIdcCode(query) {
params
:
query
})
}
export
function
getProjectByCptId
(
cptId
,
query
)
{
return
request
({
url
:
`/league/competitionProject/getTableByLanguageSourceAndCptId/
${
cptId
}
`
,
method
:
'get'
,
params
:
query
})
}
export
function
addInvitation
(
data
)
{
return
request
({
url
:
`/league/person`
,
...
...
src/layoutPc/components/AppBottom.vue
View file @
42450b6
...
...
@@ -95,7 +95,7 @@
</div>
<div
@
click=
"goHelp"
>
<img
class=
"kf"
src=
"@/assets/logo/btn02.png"
/>
<div
class=
"text-center gradient-text
"
>
GUIDELINE
</div>
<div
class=
"text-center gradient-text
uppercase"
>
Video Guide
</div>
</div>
</div>
</div>
...
...
src/viewsPc/match/chooseProject.vue
View file @
42450b6
...
...
@@ -17,59 +17,64 @@
<h3
class=
"panel-title"
v-else
>
My Information
</h3>
</div>
<div
class=
"panel-body"
>
<div
v-if=
"form.danceMate"
>
<div
class=
"text-danger fontsize14 mb10"
v-if=
"language==0"
>
*如果您报名双人舞项目,请勾选您的舞伴
</div>
<div
class=
"text-danger fontsize14 mb10"
v-else
>
*Please select your dance partner if you are registering for a couple event
</div>
</div>
<div
class=
"chooseForm"
style=
"display: flex;flex-wrap: wrap;"
>
<div
@
click=
"editPerson"
class=
"mb20"
style=
"width: 50%;text-align: center;"
>
<el-avatar
fit=
"cover"
v-if=
"form.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.picUrl)"
/>
<div
v-else
>
<el-avatar
fit=
"cover"
v-if=
"form.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-if=
"form.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
</div>
<div
class=
"text-center mt10"
>
<span
class=
"mName"
>
{{
form
.
realName
}}
</span>
<el-icon
size=
"20"
>
<Edit/>
</el-icon>
</div>
</div>
<!--舞伴-->
<div
style=
"width:50%;text-align: center;"
v-if=
"form.danceMate"
>
<el-checkbox-group
v-model=
"mateChosed"
@
change=
"changeMate"
>
<el-checkbox
:label=
"form.danceMate.id"
>
<!--
<div
@
click=
"editPerson"
class=
"mb20"
style=
"width: 50%;text-align: center;"
>
-->
<!--
<el-avatar
fit=
"cover"
v-if=
"form.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.picUrl)"
/>
-->
<!--
<div
v-else
>
-->
<!--
<el-avatar
fit=
"cover"
v-if=
"form.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
-->
<!--
<el-avatar
fit=
"cover"
v-if=
"form.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
-->
<!--
</div>
-->
<!--
<div
class=
"text-center mt10"
>
-->
<!--
<span
class=
"mName"
>
{{
form
.
realName
}}
</span>
-->
<!--
<el-icon
size=
"20"
>
-->
<!--
<Edit/>
-->
<!--
</el-icon>
-->
<!--
</div>
-->
<!--
</div>
-->
<!-- <!–舞伴–>-->
<!--
<div
style=
"width:50%;text-align: center;"
v-if=
"form.danceMate"
>
-->
<!--
<el-checkbox-group
v-model=
"mateChosed"
@
change=
"changeMate"
>
-->
<!--
<el-checkbox
:label=
"form.danceMate.id"
>
-->
<!--
<div>
-->
<!--
<el-avatar
fit=
"cover"
v-if=
"form.danceMate.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.danceMate.picUrl)"
/>
-->
<!--
<el-avatar
fit=
"cover"
v-else-if=
"form.danceMate.sex == 0"
:size=
"60"
--
>
<!-- src="/img/head1.png"/>-->
<!--
<el-avatar
fit=
"cover"
v-else-if=
"form.danceMate.sex == 1"
:size=
"60"
--
>
<!-- src="/img/head0.png"/>-->
<!--
<div
class=
"text-center mt10"
@
click=
"editMate(form.danceMate)"
>
-->
<!--
<span
class=
"mName"
>
{{
form
.
danceMate
.
realName
}}
</span>
-->
<!--
<el-icon
@
click
.
stop=
"editMate(form.danceMate)"
size=
"20"
>
-->
<!--
<Edit/>
-->
<!--
</el-icon>
-->
<!--<!–
<el-icon
@
click
.
stop=
"delMate(form.danceMate)"
>
–>
-->
<!--<!–
<Delete/>
–>
-->
<!--<!–
</el-icon>
–>
-->
<!--
</div>
-->
<!--
</div>
-->
<!--
</el-checkbox>
-->
<!--
</el-checkbox-group>
-->
<!--
</div>
-->
<div
style=
"width:50%;text-align: center;"
v-for=
"s in choosedList"
>
<div>
<el-avatar
fit=
"cover"
v-if=
"
form.danceMate
.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.danceMate.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"
form.danceMate
.sex == 0"
:size=
"60"
<el-avatar
fit=
"cover"
v-if=
"
s
.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.danceMate.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"
s
.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"
form.danceMate
.sex == 1"
:size=
"60"
<el-avatar
fit=
"cover"
v-else-if=
"
s
.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<div
class=
"text-center mt10"
@
click=
"editMate(
form.danceMate
)"
>
<span
class=
"mName"
>
{{
form
.
danceMate
.
realName
}}
</span>
<el-icon
@
click
.
stop=
"editMate(
form.danceMate
)"
size=
"20"
>
<div
class=
"text-center mt10"
@
click=
"editMate(
s
)"
>
<span
class=
"mName"
>
{{
s
.
realName
}}
</span>
<el-icon
@
click
.
stop=
"editMate(
s
)"
size=
"20"
>
<Edit/>
</el-icon>
<!--
<el-icon
@
click
.
stop=
"delMate(form.danceMate)"
>
-->
<!--
<Delete/>
-->
<!--
</el-icon>
-->
</div>
</div>
</el-checkbox>
</el-checkbox-group>
</div>
<!--
<div
style=
"min-width:50%;"
v-else
@
click=
"addMate"
hidden
>
-->
<!--
<div
class=
"addBttn"
style=
"margin: 0 auto"
>
+
</div>
-->
<!--
<div
class=
"text-center mt10 text-primary text-sm"
>
-->
<!-- Please add your partner-->
<!--
<el-icon>
-->
<!--
<Edit/>
-->
<!--
</el-icon>
-->
<!--
</div>
-->
<!--
</div>
-->
</div>
<div
class=
"text-center mt20"
>
<el-button
type=
"primary"
plain
@
click=
"switchPerson"
>
{{
language
==
0
?
'切换'
:
'Switch'
}}
</el-button>
</div>
</div>
</div>
</el-col>
...
...
@@ -84,9 +89,10 @@
clearable
/>
</div>
</div>
<div
class=
"pl-15 text-danger fontsize14"
v-if=
"cantBao.flag"
>
*
{{
language
==
0
?
`请上传 ${ cantBao.name
}
的有效证件`
:
`Please upload the Valid Passport of ${cantBao.name
}
`
}}
<
/div
>
<
div
v
-
loading
=
"loadingProject"
style
=
"height: 55vh;overflow: auto;"
>
<
el
-
checkbox
-
group
v
-
model
=
"projectIds"
>
<el-checkbox
class=
"flexBetweenBox"
v-for=
"c in projectList"
:label=
"c.id"
:key=
"c.id"
>
<
el
-
checkbox
class
=
"flexBetweenBox"
v
-
for
=
"c in projectList"
:
label
=
"c.id"
:
key
=
"c.id"
:
disabled
=
"cantBao.flag"
>
<
div
class
=
"flexBetween w100"
>
<
div
class
=
"l"
>
{{
c
.
code
}}
:{{
c
.
name
}}
...
...
@@ -187,6 +193,7 @@
<
/el-card
>
<
/div
>
<
DialogAllSportsmanListPerson
ref
=
"dialogAllSportsmanListPersonalRef"
@
transfer
=
"getChoosed"
/>
<
dialogEditWdsf
ref
=
"dialogEditWdsfRef"
@
submitForm
=
"changeMeDone"
/>
<
dialogEditAccompany
ref
=
"dialogEditAccompanyRef"
@
submitForm
=
"getMyMemberTable"
/>
<
addCoachEn
ref
=
"dialogAddCoachEnRef"
@
submitForm
=
"getMyMemberTable"
/>
...
...
@@ -201,7 +208,7 @@ import {getCurrentInstance, onMounted} from '@vue/runtime-core'
import
DialogEditWdsf
from
'./components/addWdsf'
import
DialogEditAccompany
from
'./components/addAccompany'
import
AddCoachEn
from
'./components/addCoach_en'
import
DialogAllSportsmanList
from
'./components/allSportsmanList
'
import
DialogAllSportsmanList
Person
from
'./components/allSportsmanListForPersonal
'
import
DialogExtraForm
from
'./components/extraForm'
import
{
Search
,
Switch
}
from
"@element-plus/icons-vue"
;
...
...
@@ -248,35 +255,31 @@ const data = reactive({
projectIds
:
[],
projectList
:
[],
choosed2List
:
[],
projectQuery
:
{
}
,
tableType
:
1
,
isNational
:
true
,
cantBao
:
{
flag
:
false
,
name
:
''
}
}
)
const
{
activeTeam
,
names
,
tableData
,
myMemberTable
,
signInfoList
,
zuTableList
,
choosedList
,
showExtraForm
,
extraPersonInfoMapList
,
teamList
,
choosedList
,
isNational
,
extraform
,
groupId
,
signType
,
coachOrLeaderFlag
,
showResult
,
noPhotoCanSign
,
extraTableHead
,
coachForm
,
projectIds
,
choosedchoosed
,
mateChosed
,
activeStep
,
projectList
,
choosed2List
,
loadingProject
,
projectQuery
,
tableType
tableType
,
cantBao
}
=
toRefs
(
data
)
const
matchId
=
ref
(
route
.
query
.
matchId
)
let
signInfoType
=
null
...
...
@@ -289,7 +292,7 @@ onMounted(() => {
if
(
useUserStore
().
user
)
{
userId
.
value
=
useUserStore
().
user
.
userId
}
signType
.
value
=
route
.
query
.
signType
signType
.
value
=
route
.
query
.
signType
||
null
getSignInfoList
()
getMatch
(
matchId
.
value
)
getMyInfo
()
...
...
@@ -300,6 +303,17 @@ onMounted(() => {
function
getMyInfo
()
{
match
.
getMyPersonInfo
().
then
(
res
=>
{
form
.
value
=
res
.
data
if
(
form
.
value
.
danceMate
){
choosedList
.
value
=
[
form
.
value
,
form
.
value
.
danceMate
]
if
(
!
form
.
value
.
danceMate
.
passportUrl
){
cantBao
.
value
.
flag
=
true
cantBao
.
value
.
name
=
form
.
value
.
danceMate
.
realName
}
else
{
cantBao
.
value
.
flag
=
false
}
}
else
{
choosedList
.
value
=
[
form
.
value
]
}
myId
.
value
=
res
.
data
.
id
getProjectList
()
}
).
catch
(
err
=>
{
...
...
@@ -308,7 +322,6 @@ function getMyInfo() {
}
function
getMyMemberTable
()
{
//
match
.
getPerPersonList
({
cptId
:
matchId
.
value
,
searchLabels
:
'1,2,3,4,5,6'
}
,
userId
.
value
).
then
(
res
=>
{
myMemberTable
.
value
=
res
.
rows
if
(
res
.
rows
.
length
>
0
){
...
...
@@ -455,45 +468,27 @@ function commit() {
matchId
:
matchId
.
value
}
}
)
// ElMessageBox.confirm(language.value == 0 ? '确定提交吗?' : 'Are you sure to submit?',
// language.value == 0 ? '提示' : 'Tip',
// {
// confirmButtonText: language.value == 0 ? '确定' : 'Yes',
// cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
// }).then(()=>{
// match.commitSign({
// groupId: 0,
// cptId: matchId.value
// }).then(res => {
// router.push({
// name: `commitDone`,
// params: {
// orderId: res.data
// }
// })
// })}
// )
}
function
getChoosed
(
list
)
{
console
.
log
(
list
)
choosedList
.
value
=
list
getProjectList
()
}
function
getProjectList
()
{
let
arr
=
[]
for
(
var
l
of
choosedList
.
value
){
arr
.
push
(
l
.
id
)
}
projectIds
.
value
=
[]
loadingProject
.
value
=
true
//根据已选人员id 获取项目列表
var
obj
=
{
}
if
(
mateChosed
.
value
.
length
>
0
&&
form
.
value
.
danceMate
)
{
obj
=
{
cptId
:
matchId
.
value
,
perIds
:
`
${
myId
.
value
}
,
${
form
.
value
.
danceMate
?.
id
}
`
,
perIds
:
arr
.
toString
()
,
name
:
projectQuery
.
value
.
name
}
} else {
obj = {
cptId: matchId.value,
perIds: myId.value,
name: projectQuery.value.name
}
}
match
.
getProjectPageByPerIds
(
obj
).
then
(
res
=>
{
projectList
.
value
=
res
.
rows
loadingProject
.
value
=
false
...
...
@@ -569,14 +564,14 @@ function signUp() {
}
return
}
let
arr
=
[]
for
(
var
l
of
choosedList
.
value
){
arr
.
push
(
l
.
id
)
}
let
obj
=
{
projectIds
:
projectIds
.
value
.
toString
(),
groupId: 0
}
if (mateChosed.value.length > 0 && form.value.danceMate) {
obj.athleteIds= `
$
{
myId
.
value
},
$
{
form
.
value
.
danceMate
?.
id
}
`
} else {
obj.athleteIds= myId.value
groupId
:
0
,
athleteIds
:
arr
.
toString
()
}
match
.
sportsmanDone
(
obj
).
then
(
res
=>
{
getSignInfoList
()
...
...
@@ -600,21 +595,18 @@ function removeThis(id) {
}
)
}
function changeCoach(cptId, groupId) {
// 更换教练
function
switchPerson
(){
const
params
=
{
title: '修改教练',
groupId: groupId,
cptId: cptId
title
:
language
.
value
==
0
?
'选择运动员'
:
'Participating athletes'
,
matchId
:
matchId
.
value
,
signType
:
signType
.
value
,
noPhotoCanSign
:
noPhotoCanSign
.
value
,
coachOrLeaderFlag
:
coachOrLeaderFlag
.
value
,
choosedList
:
choosedList
.
value
,
isNational
:
isNational
.
value
,
mateId
:
form
.
value
.
danceMate
?.
id
||
0
,
}
proxy.$refs['popChangeCoach'].open(params)
}
function goMySign() {
router.push({
name: 'myMatch'
})
proxy
.
$refs
[
'dialogAllSportsmanListPersonalRef'
].
open
(
params
)
}
const
goPersonInfo
=
(
row
)
=>
{
...
...
@@ -630,8 +622,6 @@ const goPersonInfo = (row) => {
return
}
// 完善补充信息
console.log(row)
// debugger
const
params
=
{
matchId
:
matchId
.
value
,
title
:
language
.
value
==
0
?
'完善补充信息'
:
'Complete the supplementary information'
,
...
...
@@ -644,13 +634,6 @@ const goPersonInfo = (row) => {
proxy
.
$refs
[
'popExtraForm'
].
open
(
_
.
cloneDeep
(
params
))
}
function downloadVoucher() {
// 下载凭证
proxy.download(
`
/
pdf
/
getPayedOrderPdf
/
$
{
matchId
.
value
}
/${groupId.value || 0}`, {}, '报项凭证.pdf
'
)
}
function
editPerson
()
{
proxy
.
$refs
[
'dialogEditWdsfRef'
].
open
({
title
:
language
.
value
==
0
?
'编辑个人信息'
:
'Edit My Information'
,
...
...
@@ -658,14 +641,6 @@ function editPerson() {
}
)
}
function
addMate
()
{
proxy
.
$refs
[
'dialogEditWdsfRef'
].
open
({
title
:
language
.
value
==
0
?
'添加舞伴'
:
'Add My Mate'
,
isMe
:
false
,
cptId
:
matchId
.
value
,
id
:
0
})
}
function
editMate
(
obj
)
{
proxy
.
$refs
[
'dialogEditWdsfRef'
].
open
({
title
:
language
.
value
==
0
?
'编辑舞伴'
:
'Edit My Mate'
,
...
...
@@ -676,18 +651,6 @@ function editMate(obj) {
}
)
}
function
delMate
(
mate
)
{
delperson
(
mate
)
// ElMessageBox.confirm(language.value == 0 ? '确定删除队友吗?' : 'Are you sure to delete the teammate?',
// language.value == 0 ? '提示' : 'Tip',
// {
// confirmButtonText: language.value == 0 ? '确定' : 'Yes',
// cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
// }).then(()=>{
//
// })
}
function
changeMate
(
e
)
{
console
.
log
(
e
,
mateChosed
.
value
,
form
.
value
.
danceMate
.
passportUrl
)
if
(
form
.
value
.
danceMate
.
passportUrl
==
''
||!
form
.
value
.
danceMate
.
passportUrl
){
...
...
src/viewsPc/match/chooseProject_bak.vue
0 → 100644
View file @
42450b6
<
template
>
<div>
<!-- 个人报名-国外-->
<div
class=
"box ph-30"
>
<el-card
class=
"mb20"
>
<single-sign-step
:activeStep=
"1"
:language=
"language"
/>
</el-card>
<el-card
:body-style=
"
{'padding': '0'}">
<match-info-row
:match-id=
"matchId"
/>
<div
class=
"pd20"
>
<el-row
:gutter=
"20"
>
<el-col
:lg=
"6"
>
<div
class=
"panel border"
>
<div
class=
"panel-header "
>
<h3
class=
"panel-title"
v-if=
"language==0"
>
完善我的信息
</h3>
<h3
class=
"panel-title"
v-else
>
My Information
</h3>
</div>
<div
class=
"panel-body"
>
<div
v-if=
"form.danceMate"
>
<div
class=
"text-danger fontsize14 mb10"
v-if=
"language==0"
>
*如果您报名双人舞项目,请勾选您的舞伴
</div>
<div
class=
"text-danger fontsize14 mb10"
v-else
>
*Please select your dance partner if you are registering for a couple event
</div>
</div>
<div
class=
"chooseForm"
style=
"display: flex;flex-wrap: wrap;"
>
<div
@
click=
"editPerson"
class=
"mb20"
style=
"width: 50%;text-align: center;"
>
<el-avatar
fit=
"cover"
v-if=
"form.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.picUrl)"
/>
<div
v-else
>
<el-avatar
fit=
"cover"
v-if=
"form.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-if=
"form.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
</div>
<div
class=
"text-center mt10"
>
<span
class=
"mName"
>
{{
form
.
realName
}}
</span>
<el-icon
size=
"20"
>
<Edit/>
</el-icon>
</div>
</div>
<!--舞伴-->
<div
style=
"width:50%;text-align: center;"
v-if=
"form.danceMate"
>
<el-checkbox-group
v-model=
"mateChosed"
@
change=
"changeMate"
>
<el-checkbox
:label=
"form.danceMate.id"
>
<div>
<el-avatar
fit=
"cover"
v-if=
"form.danceMate.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.danceMate.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"form.danceMate.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"form.danceMate.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<div
class=
"text-center mt10"
@
click=
"editMate(form.danceMate)"
>
<span
class=
"mName"
>
{{
form
.
danceMate
.
realName
}}
</span>
<el-icon
@
click
.
stop=
"editMate(form.danceMate)"
size=
"20"
>
<Edit/>
</el-icon>
<!--
<el-icon
@
click
.
stop=
"delMate(form.danceMate)"
>
-->
<!--
<Delete/>
-->
<!--
</el-icon>
-->
</div>
</div>
</el-checkbox>
</el-checkbox-group>
</div>
<!--
<div
style=
"min-width:50%;"
v-else
@
click=
"addMate"
hidden
>
-->
<!--
<div
class=
"addBttn"
style=
"margin: 0 auto"
>
+
</div>
-->
<!--
<div
class=
"text-center mt10 text-primary text-sm"
>
-->
<!-- Please add your partner-->
<!--
<el-icon>
-->
<!--
<Edit/>
-->
<!--
</el-icon>
-->
<!--
</div>
-->
<!--
</div>
-->
</div>
</div>
</div>
</el-col>
<el-col
:lg=
"18"
>
<div
class=
"panel border"
>
<div
class=
"panel-header "
>
<h3
class=
"panel-title"
v-if=
"language==0"
>
可参与报名的项目
</h3>
<h3
class=
"panel-title"
v-else
>
Search Events
</h3>
<div
class=
"fr"
>
<el-input
size=
"small"
v-model=
"projectQuery.name"
:prefix-icon=
"Search"
@
change=
"getProjectList"
clearable
/>
</div>
</div>
<div
v-loading=
"loadingProject"
style=
"height: 55vh;overflow: auto;"
>
<el-checkbox-group
v-model=
"projectIds"
>
<el-checkbox
class=
"flexBetweenBox"
v-for=
"c in projectList"
:label=
"c.id"
:key=
"c.id"
>
<div
class=
"flexBetween w100"
>
<div
class=
"l"
>
{{
c
.
code
}}
:
{{
c
.
name
}}
<div>
{{
c
.
danceTypeDetailStr
}}
</div>
</div>
<div
class=
"text-primary"
>
{{
language
==
0
?
'¥'
:
'€'
}}{{
c
.
serviceFee
}}
</div>
</div>
</el-checkbox>
</el-checkbox-group>
<el-empty
v-if=
"projectList.length==0"
:image=
"`/img/order_no.png`"
:image-size=
"228"
:description=
"language==0?'无可选项目':''"
/>
</div>
</div>
</el-col>
</el-row>
</div>
<el-row
class=
"mt20"
>
<el-col
:span=
"24"
>
<div
class=
"text-center"
>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"signUp"
>
{{
language
==
0
?
'确定'
:
'Confirm'
}}
</el-button>
</div>
</el-col>
</el-row>
<div
class=
"m20"
>
<!--
<el-button
type=
"success"
@
click=
"importSportman"
>
批量导入人员
</el-button>
-->
<!--
<el-button
type=
"success"
@
click=
"addCoach"
>
新增运动员
</el-button>
-->
<div
class=
"ttbb"
>
<div
:class=
"tableType==1 ? 'active' : ''"
@
click=
"switchTabletype"
>
{{
language
==
0
?
'按组别查看报项'
:
'Check Registrations by Group'
}}
</div>
<div
:class=
"tableType==0 ? 'active' : ''"
@
click=
"switchTabletype"
>
{{
language
==
0
?
'按人员查看报项'
:
'Check Registrations by Participant'
}}
</div>
</div>
<sign-info-table
v-if=
"tableType==0"
:match-id=
"matchId"
:extraform=
"extraform"
:language=
"language"
:list=
"signInfoList"
@
editExtra=
"goPersonInfo"
/>
<zu-table
v-else
:list=
"zuTableList"
:language=
"language"
@
delete=
"removeThis"
/>
<div
v-if=
"showPersonList||myMemberTable.length>0"
>
<el-row
class=
"mt20"
>
<el-col
:span=
"24"
>
<el-button
@
click=
"addAccompany"
type=
"primary"
plain
>
{{
language
==
0
?
'添加随行人员'
:
'Add accompanying personnel'
}}
</el-button>
</el-col>
</el-row>
<el-table
class=
"mt20"
:data=
"myMemberTable"
border
>
<el-table-column
type=
"index"
:label=
"language==0?'序号':'Index'"
width=
"70"
align=
"center"
/>
<el-table-column
:label=
"language==0?'姓氏':'Surname'"
prop=
"xing"
min-width=
"100"
/>
<el-table-column
:label=
"language==0?'名':'Name'"
prop=
"ming"
min-width=
"100"
/>
<el-table-column
:label=
"language==0?'国家/地区':'Nationality'"
prop=
"countryName"
min-width=
"100"
/>
<!--
<el-table-column
:label=
"language==0?'证件号':'Valid Documents'"
prop=
"idcCode"
min-width=
"120"
/>
-->
<!--
<el-table-column
label=
"Birthday"
prop=
"birth"
/>
-->
<el-table-column
:label=
"language==0?'性别':'Gender'"
prop=
"sexStr"
/>
<el-table-column
:label=
"language==0?'会员角色':'Role'"
min-width=
"160"
>
<template
#
default=
"scope"
>
<div
class=
"roletd"
>
<span
v-for=
"item in scope.row.label?.split(',')"
:key=
"item.id"
class=
"text-primary"
>
<span
v-if=
"item==='0'"
class=
"ml5"
>
{{
language
==
0
?
'运动员'
:
'Athletes'
}}
</span>
<span
v-if=
"item==='1'"
class=
"ml5"
>
{{
language
==
0
?
'教练'
:
'Coach'
}}
</span>
<span
v-if=
"item==='2'"
class=
"ml5"
>
{{
language
==
0
?
'领队'
:
'Head Of Team'
}}
</span>
<span
v-if=
"item==='4'"
class=
"ml5"
>
{{
language
==
0
?
'队医'
:
'Team doctor'
}}
</span>
<span
v-if=
"item==='5'"
class=
"ml5"
>
{{
language
==
0
?
'翻译'
:
'Interpreter'
}}
</span>
<span
v-if=
"item==='6'"
class=
"ml5"
>
{{
language
==
0
?
'官员'
:
'Official'
}}
</span>
<span
v-if=
"item==='3'"
class=
"ml5"
>
{{
language
==
0
?
'其他'
:
'Other'
}}
</span>
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"Actions"
>
<
template
#
default=
"scope"
>
<a
class=
"text-primary pd10"
@
click=
"delperson(scope.row)"
>
{{
language
==
0
?
'删除'
:
'Delete'
}}
</a>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"text-center mt20"
>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"submitForm()"
>
{{ language == 0 ? '预览报名信息' : 'Preview Registration Information' }}
</el-button>
</div>
<!-- <div class="text-center mt20">-->
<!-- <el-button type="primary" class="" plain round @click="submitForm(0)">-->
<!-- {{ language == 0 ? '保存暂不提交审核' : 'Save, Do Not Submit for Review Yet' }}-->
<!-- </el-button>-->
<!-- <el-button type="primary" class="btn-lineG w200px" round @click="submitForm(1)">-->
<!-- {{ language == 0 ? '提交审核' : 'Submit for review' }}-->
<!-- </el-button>-->
<!-- </div>-->
</div>
</el-card>
</div>
<dialogEditWdsf
ref=
"dialogEditWdsfRef"
@
submitForm=
"changeMeDone"
/>
<dialogEditAccompany
ref=
"dialogEditAccompanyRef"
@
submitForm=
"getMyMemberTable"
/>
<addCoachEn
ref=
"dialogAddCoachEnRef"
@
submitForm=
"getMyMemberTable"
/>
<dialogExtraForm
ref=
"popExtraForm"
@
submitForm=
"getSignInfoList"
/>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
}
from
'vue'
import
*
as
match
from
'@/apiPc/match'
import
{
getCurrentInstance
,
onMounted
}
from
'@vue/runtime-core'
import
DialogEditWdsf
from
'./components/addWdsf'
import
DialogEditAccompany
from
'./components/addAccompany'
import
AddCoachEn
from
'./components/addCoach_en'
import
DialogAllSportsmanList
from
'./components/allSportsmanList'
import
DialogExtraForm
from
'./components/extraForm'
import
{
Search
,
Switch
}
from
"@element-plus/icons-vue"
;
const
{
proxy
}
=
getCurrentInstance
()
const
router
=
useRouter
()
const
route
=
useRoute
()
import
_
from
'lodash'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
cache
from
"@/plugins/cache"
import
TeamSignStep
from
"@/viewsPc/match/components/teamSignStep"
import
CoachInfoRow
from
"@/viewsPc/match/components/coachInfo-row"
import
SignInfoTable
from
"@/viewsPc/match/components/signInfo-table"
import
ZuTable
from
'@/viewsPc/match/components/zu-table'
import
SingleSignStep
from
"@/viewsPc/match/components/singleSignStep"
;
import
MatchInfoRow
from
"@/viewsPc/match/components/matchInfo-row"
;
import
useUserStore
from
"@/store/modules/user"
;
import
{
getPerPersonList
}
from
"@/apiPc/match"
;
import
{
useStorage
}
from
"@vueuse/core/index"
;
const
language
=
useStorage
(
'language'
,
0
)
const
data
=
reactive
({
coachForm
:
{},
activeStep
:
2
,
tableData
:
[],
signInfoList
:
[],
zuTableList
:
[],
choosedList
:
[],
myMemberTable
:
[],
extraPersonInfoMapList
:
[],
teamList
:
[],
extraform
:
[],
groupId
:
0
,
signType
:
''
,
coachOrLeaderFlag
:
null
,
noPhotoCanSign
:
null
,
showResult
:
false
,
showExtraForm
:
false
,
loadingProject
:
false
,
extraTableHead
:
[],
activeTeam
:
''
,
names
:
{},
choosedchoosed
:
[],
mateChosed
:
[],
projectIds
:
[],
projectList
:
[],
choosed2List
:
[],
projectQuery
:
{},
tableType
:
1
,
})
const
{
activeTeam
,
names
,
tableData
,
myMemberTable
,
signInfoList
,
zuTableList
,
choosedList
,
showExtraForm
,
extraPersonInfoMapList
,
teamList
,
extraform
,
groupId
,
signType
,
coachOrLeaderFlag
,
showResult
,
noPhotoCanSign
,
extraTableHead
,
coachForm
,
projectIds
,
choosedchoosed
,
mateChosed
,
activeStep
,
projectList
,
choosed2List
,
loadingProject
,
projectQuery
,
tableType
}
=
toRefs
(
data
)
const
matchId
=
ref
(
route
.
query
.
matchId
)
let
signInfoType
=
null
const
form
=
ref
({})
const
showPersonList
=
ref
(
false
)
const
signEndTime
=
ref
(
''
)
const
userId
=
ref
(
''
)
const
myId
=
ref
(
''
)
onMounted
(()
=>
{
if
(
useUserStore
().
user
)
{
userId
.
value
=
useUserStore
().
user
.
userId
}
signType
.
value
=
route
.
query
.
signType
getSignInfoList
()
getMatch
(
matchId
.
value
)
getMyInfo
()
getMyMemberTable
()
getMySignInfo
()
})
function
getMyInfo
()
{
match
.
getMyPersonInfo
().
then
(
res
=>
{
form
.
value
=
res
.
data
myId
.
value
=
res
.
data
.
id
getProjectList
()
}).
catch
(
err
=>
{
router
.
push
({
name
:
'home'
})
})
}
function
getMyMemberTable
()
{
//
match
.
getPerPersonList
({
cptId
:
matchId
.
value
,
searchLabels
:
'1,2,3,4,5,6'
},
userId
.
value
).
then
(
res
=>
{
myMemberTable
.
value
=
res
.
rows
if
(
res
.
rows
.
length
>
0
){
showPersonList
.
value
=
true
}
})
}
function
addAccompany
()
{
proxy
.
$refs
[
'dialogAddCoachEnRef'
].
open
({
title
:
language
.
value
==
0
?
'添加随行人员'
:
'Add accompanying personnel'
,
cptId
:
matchId
.
value
,
id
:
0
})
}
function
changeMeDone
(
mateId
)
{
console
.
log
(
mateId
)
getMyInfo
()
getProjectList
()
}
let
chargeFlag
function
getMatch
(
id
)
{
match
.
getMatchById
({
id
:
id
}).
then
(
res
=>
{
signEndTime
.
value
=
res
.
data
.
signEndTime
chargeFlag
=
res
.
data
.
chargeFlag
noPhotoCanSign
.
value
=
res
.
data
.
noPhotoCanSign
coachOrLeaderFlag
.
value
=
res
.
data
.
coachOrLeaderFlag
extraform
.
value
=
JSON
.
parse
(
res
.
data
.
participantsInfo
)
})
}
function
getMySignInfo
()
{
// 获取已报
match
.
getMySignInfo
({
cptId
:
matchId
.
value
,
groupId
:
0
}).
then
(
res
=>
{
tableData
.
value
=
res
.
data
.
signInfo
signInfoType
=
res
.
data
.
type
})
}
function
getSignInfoList
()
{
match
.
getMySignInfoList
({
cptId
:
matchId
.
value
,
groupId
:
0
}).
then
(
res
=>
{
signInfoList
.
value
=
res
.
data
.
singleData
||
[]
zuTableList
.
value
=
res
.
data
.
zuData
||
[]
})
}
function
submitForm
(
n
)
{
if
(
signInfoList
.
value
.
length
==
0
)
{
if
(
language
.
value
==
0
)
{
ElMessage
.
warning
(
'请至少选择一个项目'
)
}
else
{
ElMessage
.
warning
(
'select at least one project'
)
}
return
}
if
(
signInfoType
==
'1'
)
{
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'已报项,前往我的报项'
:
'Reported items, go to my submission'
,
language
.
value
==
0
?
'提示'
:
'Tips'
,
{
confirmButtonText
:
language
.
value
==
0
?
'确定'
:
'OK'
,
cancelButtonText
:
language
.
value
==
0
?
'取消'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
router
.
push
({
name
:
'myMatch'
})
})
return
}
if
(
extraform
.
value
&&
extraform
.
value
.
length
>
0
)
{
let
needBuchong
=
false
for
(
const
e
of
extraform
.
value
)
{
if
(
e
.
status
==
'0'
)
{
needBuchong
=
true
}
}
for
(
const
s
of
signInfoList
.
value
)
{
if
(
s
.
extraPersonInfo
==
null
&&
needBuchong
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请完善运动员补充信息'
:
'Complete Supplementary Information'
)
tableType
.
value
=
0
return
}
}
}
if
(
showPersonList
.
value
)
{
if
(
myMemberTable
.
value
.
length
==
0
)
{
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'是否继续添加随行人员?'
:
'Do you want to add casual personnel?'
,
language
.
value
==
0
?
'提示'
:
'Tip'
,
{
confirmButtonText
:
language
.
value
==
0
?
'是'
:
'Yes'
,
cancelButtonText
:
language
.
value
==
0
?
'否,进入下一步'
:
'NO,Go Next'
,
type
:
'warning'
}).
then
(()
=>
{
}).
catch
(()
=>
{
commit
()
})
}
else
{
commit
()
}
}
else
{
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'是否添加随行人员?'
:
'Do you want to add casual personnel?'
,
language
.
value
==
0
?
'提示'
:
'Tip'
,
{
confirmButtonText
:
language
.
value
==
0
?
'是'
:
'Yes'
,
cancelButtonText
:
language
.
value
==
0
?
'否,进入下一步'
:
'NO,Go Next'
,
type
:
'warning'
}).
then
(()
=>
{
showPersonList
.
value
=
true
}).
catch
(()
=>
{
commit
()
})
}
// if (n == 0) {
// ElMessageBox.confirm(language.value==0?`您当前的操作为暂存,并不是提交审核,
// 必须在报名截止时间${signEndTime.value}之前完成提交。
// 您也可以在个人中心-我的报名中,找到这条报名,点击提交审核。`:
// `Your current operation is temporary and not submitted for review,
// Submission must be completed before the registration deadline${signEndTime.value}。
// You can also find this registration in the My Registration section of your personal center and click submit for review.`,
// language.value == 0 ? '提示' : 'Tip', {
// confirmButtonText: language.value == 0 ? '去个人中心' : 'Go My Registration ',
// cancelButtonText: language.value == 0 ? '知道了' : 'OK',
// type: 'warning'
// }).then((res) => {
// console.log(res)
// router.push({name: 'myMatch'})
// })
// }
}
function
commit
()
{
router
.
push
({
name
:
'signPreview'
,
query
:
{
matchId
:
matchId
.
value
}
})
// ElMessageBox.confirm(language.value == 0 ? '确定提交吗?' : 'Are you sure to submit?',
// language.value == 0 ? '提示' : 'Tip',
// {
// confirmButtonText: language.value == 0 ? '确定' : 'Yes',
// cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
// }).then(()=>{
// match.commitSign({
// groupId: 0,
// cptId: matchId.value
// }).then(res => {
// router.push({
// name: `commitDone`,
// params: {
// orderId: res.data
// }
// })
// })}
// )
}
function
getProjectList
()
{
projectIds
.
value
=
[]
loadingProject
.
value
=
true
//根据已选人员id 获取项目列表
var
obj
=
{}
if
(
mateChosed
.
value
.
length
>
0
&&
form
.
value
.
danceMate
)
{
obj
=
{
cptId
:
matchId
.
value
,
perIds
:
`
${
myId
.
value
}
,
${
form
.
value
.
danceMate
?.
id
}
`,
name: projectQuery.value.name
}
} else {
obj = {
cptId: matchId.value,
perIds: myId.value,
name: projectQuery.value.name
}
}
match.getProjectPageByPerIds(obj).then(res => {
projectList.value = res.rows
loadingProject.value = false
}).catch(err => {
loadingProject.value = false
ElMessage.warning(err.msg)
})
}
function addCoach() {
if (signInfoType == '2') {
match.recoverMySign({
cptId: matchId.value,
groupId: groupId.value
}).then(res => {
if (res.msg.indexOf('Exception:') > -1) {
const msg = res.msg.slice(10)
ElMessageBox.confirm(msg, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
console.log('用户点击确定')
})
return
}
getMySignInfo()
})
}
const params = {
title: '新增运动员',
id: 0,
groupId: groupId.value
}
proxy.$refs['dialogEditWdsfRef'].open(params)
}
function delperson(p) {
//删除团队下的人
let text = ''
let t = '提示'
let s = '确定'
let c = '取消'
let msg = '操作成功'
if (language.value == 0) {
text = `
确定删除
$
{
p
.
realName
}
吗?
`
} else {
text = `
Delete
$
{
p
.
realName
}?
`
t = 'Tips'
s = 'Confirm'
c = 'Cancel'
msg = ' Successful!'
}
ElMessageBox.confirm(text, t, {
confirmButtonText: s,
cancelButtonText: c,
type: 'warning'
}).then(() => {
match.delPerson(p.id).then(res => {
ElMessage.success(msg)
getMyMemberTable()
getMyInfo()
})
})
}
function signUp() {
if (projectIds.value.length == 0) {
if (language.value == 0) {
ElMessage.warning('请选择项目')
} else {
ElMessage.warning('Please select project')
}
return
}
let obj = {
projectIds: projectIds.value.toString(),
groupId: 0
}
if (mateChosed.value.length > 0 && form.value.danceMate) {
obj.athleteIds= `
$
{
myId
.
value
},
$
{
form
.
value
.
danceMate
?.
id
}
`
} else {
obj.athleteIds= myId.value
}
match.sportsmanDone(obj).then(res => {
getSignInfoList()
getProjectList()
})
}
function removeThis(id) {
ElMessageBox.confirm(language.value == 0 ? '确定移除这条报项吗?' : 'Are you sure to remove this report item',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
match.deleteSign(id).then(res => {
// 重新获取已报名信息
ElMessage.success(language.value == 0 ? '已移除该报项' : 'success')
getSignInfoList()
getProjectList()
})
})
}
function changeCoach(cptId, groupId) {
// 更换教练
const params = {
title: '修改教练',
groupId: groupId,
cptId: cptId
}
proxy.$refs['popChangeCoach'].open(params)
}
function goMySign() {
router.push({
name: 'myMatch'
})
}
const goPersonInfo = (row) => {
if (signInfoType == '1') {
ElMessageBox.alert(
language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: 'OK',
callback: (Action) => {
router.push({name: 'myMatch'})
}
})
return
}
// 完善补充信息
console.log(row)
// debugger
const params = {
matchId: matchId.value,
title: language.value==0?'完善补充信息':'Complete the supplementary information',
participantsInfoArr: extraform.value,
personId: row.personInfo.id,
extraId: row.extraPersonInfo?.id || 0,
isNational:true
}
proxy.$refs['popExtraForm'].open(_.cloneDeep(params))
}
function downloadVoucher() {
// 下载凭证
proxy.download(
`
/
pdf
/
getPayedOrderPdf
/
$
{
matchId
.
value
}
/${groupId.value || 0}`, {}, '报项凭证.pdf
'
)
}
function
editPerson
()
{
proxy
.
$refs
[
'dialogEditWdsfRef'
].
open
({
title
:
language
.
value
==
0
?
'编辑个人信息'
:
'Edit My Information'
,
isMe
:
true
})
}
function
addMate
()
{
proxy
.
$refs
[
'dialogEditWdsfRef'
].
open
({
title
:
language
.
value
==
0
?
'添加舞伴'
:
'Add My Mate'
,
isMe
:
false
,
cptId
:
matchId
.
value
,
id
:
0
})
}
function
editMate
(
obj
)
{
proxy
.
$refs
[
'dialogEditWdsfRef'
].
open
({
title
:
language
.
value
==
0
?
'编辑舞伴'
:
'Edit My Mate'
,
isMe
:
false
,
form
:
obj
||
{},
cptId
:
matchId
.
value
,
id
:
obj
?.
id
||
0
})
}
function
delMate
(
mate
)
{
delperson
(
mate
)
// ElMessageBox.confirm(language.value == 0 ? '确定删除队友吗?' : 'Are you sure to delete the teammate?',
// language.value == 0 ? '提示' : 'Tip',
// {
// confirmButtonText: language.value == 0 ? '确定' : 'Yes',
// cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
// }).then(()=>{
//
// })
}
function
changeMate
(
e
)
{
console
.
log
(
e
,
mateChosed
.
value
,
form
.
value
.
danceMate
.
passportUrl
)
if
(
form
.
value
.
danceMate
.
passportUrl
==
''
||!
form
.
value
.
danceMate
.
passportUrl
){
mateChosed
.
value
=
[]
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'请先上传舞伴的有效证件'
:
'Please upload the valid certificate of the teammate'
,
language
.
value
==
0
?
'提示'
:
'Tip'
,
{
confirmButtonText
:
language
.
value
==
0
?
'确定'
:
'Yes'
,
cancelButtonText
:
language
.
value
==
0
?
'取消'
:
'Cancel'
,
}).
then
(()
=>
{
editMate
(
form
.
value
.
danceMate
)
return
}).
catch
(()
=>
{
return
})
}
getProjectList
()
}
function
switchTabletype
()
{
if
(
tableType
.
value
==
0
)
{
tableType
.
value
=
1
}
else
{
tableType
.
value
=
0
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
:deep
(
.el-checkbox__label
)
{
flex
:
1
1
auto
;
}
.flexBetweenBox
{
width
:
100%
;
margin-right
:
0
;
height
:
auto
;
border-bottom
:
1px
solid
#eee
;
padding
:
0
10px
;
}
.flexBetweenBox
:nth-child
(
odd
)
{
background
:
#FAFBFD
;
}
.flexBetween
{
padding
:
10px
;
border-left
:
1px
solid
#eee
;
.l
{
div
{
margin
:
4px
0
0
;
color
:
#999
;
}
}
}
.app-container
{
padding
:
0
;
background
:
#F5F7F9
;
}
.panel-footer
.el-button--success
{
background
:
#254385
;
border
:
none
;
padding
:
0
40px
;
font-size
:
16px
;
}
.panel-footer
.el-button--success.is-plain
{
background
:
#fff
;
border
:
1px
solid
#2ED981
;
color
:
#2ED981
;
}
.hasChoose
{
margin
:
0
0
20px
;
display
:
flex
;
justify-content
:
space-between
;
button
{
position
:
relative
;
margin
:
10px
;
}
.choseItem
{
margin
:
10px
;
position
:
relative
;
.poClose
{
position
:
absolute
;
right
:
-6px
;
top
:
-12px
;
z-index
:
1
;
}
}
}
.chooseForm
{
:deep(.el-form-item__content)
{
background
:
rgba
(
245
,
247
,
249
,
0.38
);
padding
:
20px
40px
10px
;
}
.el-checkbox
{
height
:
auto
;
margin-right
:
20px
;
}
:deep
(
.el-checkbox__input
)
{
position
:
absolute
;
right
:
0
;
top
:
0
;
}
.name
{
text-align
:
center
;
}
}
:deep
(
.el-avatar
)
>
img
{
width
:
100%
;
}
.panel
{
height
:
100%
;
}
.border-info
{
.item
{
margin
:
5px
0
;
color
:
#4C5359
;
font-size
:
14px
;
label
{
font-size
:
14px
;
margin-right
:
14px
}
}
}
.ttbb
{
font-size
:
14px
;
color
:
#4C5359
;
display
:
flex
;
justify-content
:
center
;
div
{
padding
:
20px
;
position
:
relative
;
cursor
:
pointer
;
}
div
:first-child::after
{
content
:
''
;
position
:
absolute
;
right
:
0
;
background
:
#ccc
;
width
:
1px
;
height
:
14px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
}
.active
{
color
:
var
(
--el-color-primary
);
&::before
{
width
:
33px
;
content
:
''
;
position
:
absolute
;
height
:
2px
;
bottom
:
14px
;
left
:
0
;
right
:
0
;
margin
:
auto
;
background
:
#453DEA
;
border-radius
:
1px
;
}
}
}
.roletd
{
.ml5
{
display
:
inline-block
}
}
.mName
{
color
:
#000
;
font-size
:
15px
;
display
:
inline-block
;
max-width
:
6.5em
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;}
</
style
>
src/viewsPc/match/components/addWdsf.vue
View file @
42450b6
...
...
@@ -281,7 +281,7 @@ function submitForm() {
}
}
function
addPersonal
()
{
match
.
savePersonForMyPerson
(
form
.
value
).
then
(
res
=>
{
match
.
savePersonForMyPerson
2
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
'保存成功'
)
show
.
value
=
false
emit
(
'submitForm'
,
res
.
data
)
...
...
src/viewsPc/match/components/allSportsmanListForPersonal.vue
0 → 100644
View file @
42450b6
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"1000px"
append-to-body
@
close=
"close"
center
>
<div
class=
"funcBtns"
>
<el-button
type=
"primary"
@
click=
"addMember"
>
{{
language
==
0
?
'添加选手'
:
'Add Player'
}}
</el-button>
</div>
<div
class=
"from-Card"
>
<el-form
:inline=
"true"
:model=
"query"
class=
"mt20"
label-width=
"60"
size=
"small"
>
<el-form-item
:label=
"language==0?'姓名':'Name'"
>
<el-input
v-model=
"query.realName"
style=
"width: 120px;"
clearable
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件类型':'ID Type'"
v-if=
"!isNational"
>
<el-select
v-model=
"query.idcType"
style=
"width: 100px;"
clearable
@
change=
"getList"
@
clear=
"getList"
>
<el-option
v-for=
"item in certificates"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'证件号码':'ID NO.'"
v-if=
"!isNational"
>
<el-input
v-model=
"query.idcode"
style=
"width: 120px;"
clearable
/>
</el-form-item>
<!--
<el-form-item
label=
"角色"
>
-->
<!--
<el-input
v-model=
"query.label"
style=
"width: 120px;"
clearable
/>
-->
<!--
</el-form-item>
-->
<el-form-item>
<el-button
type=
"primary"
@
click=
"getList"
>
{{
language
==
0
?
'查询'
:
'Search'
}}
</el-button>
</el-form-item>
<el-form-item
class=
"fr"
>
<el-button
@
click=
"resetChose"
type=
"primary"
plain
>
{{
language
==
0
?
'清空选择'
:
'Clear Selection'
}}
</el-button>
</el-form-item>
</el-form>
</div>
<p
v-if=
"noPhotoCanSign == 0"
class=
"text-danger"
>
{{
language
==
0
?
'*需上传照片才可报名'
:
'*Please upload photo before sign up'
}}
</p>
<el-table
ref=
"allSportmenTable"
v-loading=
"loading"
:data=
"tableData"
height=
"60vh"
@
selection-change=
"handleSelectionChange"
:row-key=
"getRowKeys"
>
<el-table-column
type=
"selection"
:label=
"language==0?'选择':'Selection'"
:reserve-selection=
"true"
:selectable=
"selectable"
/>
<!--
<el-table-column
align=
"center"
type=
"index"
:label=
"language==0?'序号':'Index'"
width=
"60"
:selectable=
"selectable"
/>
-->
<el-table-column
v-if=
"isNational"
:label=
"language==0?'WDSF MIN':'WDSF MIN'"
prop=
"wdsfMin"
width=
"100"
/>
<el-table-column
align=
"center"
:label=
"language==0?'姓氏':'Surname'"
prop=
"xing"
min-width=
"100"
/>
<el-table-column
align=
"center"
:label=
"language==0?'名':'Name'"
prop=
"ming"
min-width=
"100"
/>
<el-table-column
align=
"center"
v-if=
"isNational"
:label=
"language==0?'代表':'Representing'"
prop=
"representing"
min-width=
"120"
/>
<el-table-column
align=
"center"
v-if=
"!isNational"
:label=
"language==0?'所属国家/地区':'Nationality'"
prop=
"countryName"
min-width=
"110"
/>
<el-table-column
:label=
"language==0?'性别':'Gender'"
align=
"center"
prop=
"sexStr"
/>
<el-table-column
align=
"center"
v-if=
"isNational"
:label=
"language==0?'年龄组':'Age group'"
prop=
"ageGroup"
min-width=
"100"
/>
<el-table-column
align=
"center"
v-if=
"isNational"
:label=
"language==0?'舞种':'Division'"
prop=
"division"
min-width=
"100"
/>
<el-table-column
v-if=
"!isNational"
:label=
"language==0?'年龄':'Age'"
prop=
"age"
/>
<el-table-column
v-if=
"!isNational"
:label=
"language==0?'出生日期':'Date of Birth'"
prop=
"birth"
width=
"130"
/>
<el-table-column
v-if=
"!isNational"
:label=
"language==0?'证件类型':'ID Type'"
prop=
"idcTypeStr"
width=
"120"
/>
<el-table-column
v-if=
"!isNational"
:label=
"language==0?'证件号码':'ID NO.'"
prop=
"idcCode"
width=
"200"
/>
<!--
<el-table-column
label=
"会员角色"
width=
"200"
>
-->
<!--
<template
#
default=
"scope"
>
-->
<!--
<div>
-->
<!--
<div
style=
"white-space: nowrap"
class=
"esp"
>
-->
<!--
<span
v-for=
"item in scope.row.label?.split(',')"
:key=
"item.id"
>
-->
<!--
<span
v-if=
"item==='0'"
class=
"ml5"
>
{{
language
==
0
?
'运动员'
:
'athletes'
}}
</span>
-->
<!--
<span
v-if=
"item==='1'"
class=
"ml5"
>
{{
language
==
0
?
'教练'
:
'coach'
}}
</span>
-->
<!--
<span
v-if=
"item==='2'"
class=
"ml5"
>
{{
language
==
0
?
'领队'
:
'team leader'
}}
</span>
-->
<!--
<span
v-if=
"item==='3'"
class=
"ml5"
>
{{
language
==
0
?
'队医'
:
'team doctor'
}}
</span>
-->
<!--
<span
v-if=
"item==='4'"
class=
"ml5"
>
{{
language
==
0
?
'翻译'
:
'translator'
}}
</span>
-->
<!--
<span
v-if=
"item==='5'"
class=
"ml5"
>
{{
language
==
0
?
'官员'
:
'official'
}}
</span>
-->
<!--
<span
v-if=
"item==='6'"
class=
"ml5"
>
{{
language
==
0
?
'其他'
:
'other'
}}
</span>
-->
<!--
</span>
-->
<!--
</div>
-->
<!--
</div>
-->
<!--
</
template
>
-->
<!-- </el-table-column>-->
<el-table-column
:label=
"language==0?'操作':'Actions'"
:width=
"language==0?180:200"
fixed=
"right"
align=
"center"
>
<
template
#
default=
"scope"
>
<span
class=
"text-primary pointer"
v-if=
"scope.row.passportUrl"
@
click=
"editPerson(scope.row)"
>
{{
language
==
0
?
'编辑'
:
'Edit'
}}
</span>
<span
v-else
class=
"text-danger pointer"
@
click=
"editPerson(scope.row)"
>
{{
language
==
0
?
'上传证件'
:
'Upload Valid Passport'
}}
</span>
<span
class=
"text-primary pd10 pointer"
v-if=
"scope.row.userId=='0'&&mateId!=scope.row.id"
@
click=
"deletePerson(scope.row)"
>
{{
language
==
0
?
'删除'
:
'Delete'
}}
</span>
</
template
>
</el-table-column>
</el-table>
<paginationPc
v-show=
"total>0"
v-model:page=
"query.pageNum"
v-model:limit=
"query.pageSize"
:total=
"total"
@
pagination=
"getList"
/>
<
template
#
footer
>
<div
class=
"dialog-footer text-center"
>
<el-button
type=
"primary"
@
click=
"submit"
>
{{
language
==
0
?
'确定'
:
'Confirm'
}}
</el-button>
<el-button
@
click=
"cancel"
>
{{
language
==
0
?
'取消'
:
'Cancel'
}}
</el-button>
</div>
</
template
>
</el-dialog>
<!-- 国内赛运动员-->
<add-coach
ref=
"dialogAddCoach"
@
submitForm=
"getList"
/>
<!-- 国际赛运动员-->
<add-wdsf
ref=
"dialogAddWdsf"
@
submitForm=
"getList"
/>
<Import
ref=
"dialogImportProps"
@
submitForm=
"getList"
/>
</template>
<
script
setup
>
import
{
reactive
,
ref
,
toRefs
,
watch
}
from
'vue'
import
{
getCurrentInstance
,
nextTick
,
onMounted
}
from
'@vue/runtime-core'
import
*
as
match
from
'@/apiPc/match'
import
AddCoach
from
'../components/addCoach'
import
AddWdsf
from
'../components/addWdsf'
import
Import
from
'../components/import'
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
delPersonForPersonal
,
getPerPersonList
}
from
"@/apiPc/match"
;
import
useUserStore
from
"@/store/modules/user"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
_
from
"lodash"
;
const
language
=
useStorage
(
'language'
,
0
)
const
user
=
useUserStore
().
user
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'transfer'
])
const
data
=
reactive
({
query
:
{
label
:
'0'
,
pageSize
:
10
,
pageNum
:
1
},
tableData
:
[],
show
:
false
,
loading
:
false
,
title
:
'选择运动员'
,
noPhotoCanSign
:
0
,
total
:
0
,
isNational
:
false
,
mateId
:
0
})
const
{
query
,
tableData
,
show
,
title
,
loading
,
noPhotoCanSign
,
total
,
isNational
,
mateId
}
=
toRefs
(
data
)
const
certificates
=
ref
([
{
value
:
'0'
,
label
:
language
.
value
==
0
?
'居民身份证'
:
'Resident ID card'
},
{
value
:
'1'
,
label
:
language
.
value
==
0
?
'护照'
:
'Passport'
},
{
value
:
'2'
,
label
:
language
.
value
==
0
?
'其他'
:
'Other'
}
])
let
matchId
let
choosedList
=
[]
let
choosedIds
=
[]
const
open
=
(
params
)
=>
{
title
.
value
=
params
.
title
matchId
=
params
.
matchId
mateId
.
value
=
params
.
mateId
noPhotoCanSign
.
value
=
params
.
noPhotoCanSign
show
.
value
=
true
isNational
.
value
=
params
.
isNational
choosedList
=
params
.
choosedList
getList
()
}
defineExpose
({
open
})
const
reSetChoosed
=
()
=>
{
choosedIds
=
[]
for
(
const
p
of
choosedList
)
{
choosedIds
.
push
(
p
.
id
)
}
console
.
log
(
choosedIds
,
choosedList
)
for
(
const
n
of
tableData
.
value
)
{
if
(
choosedIds
.
indexOf
(
n
.
id
)
>
-
1
)
{
proxy
.
$refs
[
'allSportmenTable'
].
toggleRowSelection
(
n
,
true
)
}
}
}
const
resetChose
=
()
=>
{
proxy
.
$refs
[
'allSportmenTable'
].
clearSelection
()
}
const
selectable
=
(
row
)
=>
{
if
(
!
row
.
picUrl
&&
noPhotoCanSign
.
value
==
0
)
{
return
false
}
else
if
(
!
row
.
passportUrl
)
{
// ElMessageBox.confirm(language.value == 0 ? `请上传${row.realName}的有效证件` : `Please Upload ${row.realName}'s Valid Passport`)
return
false
}
else
{
return
true
}
}
const
getList
=
()
=>
{
loading
.
value
=
true
getPerPersonList
(
query
.
value
,
user
.
userId
).
then
(
res
=>
{
total
.
value
=
res
.
total
// const startIndex = (query.value.pageNum - 1) * query.value.pageSize;
// const endIndex = startIndex + query.value.pageSize;
// tableData.value = res.rows.slice(startIndex, endIndex)
tableData
.
value
=
res
.
rows
nextTick
(()
=>
{
reSetChoosed
()
})
loading
.
value
=
false
})
}
function
handleSelectionChange
(
val
)
{
// console.log('change',val)
choosedList
=
val
for
(
const
p
of
val
)
{
choosedIds
.
push
(
p
.
id
)
}
//判断是否队友
if
(
val
.
length
==
2
){
if
(
val
[
0
].
sex
!=
val
[
1
].
sex
){
checkTwo
(
val
[
0
].
id
,
val
[
1
].
id
)
}
}
if
(
val
.
length
>
0
){
const
newVal
=
_
.
last
(
val
)
match
.
signgetSignInfoConflict
({
cptId
:
matchId
,
perId
:
newVal
.
id
,
groupId
:
'0'
}).
then
(
res
=>
{
if
(
!
res
.
data
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'该人员已在其他团队中报名,请重新选择'
:
'This person has already registered in another team, please select again'
)
proxy
.
$refs
[
'allSportmenTable'
].
toggleRowSelection
(
newVal
,
false
)
}
})
}
}
function
checkTwo
(
a
,
b
)
{
match
.
checkMate
({
per1Id
:
a
,
per2Id
:
b
,
cptId
:
matchId
}).
then
(
res
=>
{
if
(
!
res
.
data
){
ElMessage
.
warning
(
language
.
value
==
0
?
'他们不是固定组合'
:
'They\'re not a couple'
)
proxy
.
$refs
[
'allSportmenTable'
].
clearSelection
()
}
})
}
function
submit
()
{
if
(
choosedIds
.
length
==
0
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请选择运动员'
:
'Please select athletes'
)
return
}
emit
(
'transfer'
,
choosedList
)
show
.
value
=
false
}
function
getRowKeys
(
row
)
{
return
row
.
id
}
function
close
()
{
choosedIds
=
[]
}
function
cancel
()
{
show
.
value
=
false
}
function
editPerson
(
row
)
{
console
.
log
(
isNational
.
value
)
const
params
=
{
id
:
row
.
id
,
title
:
language
.
value
==
0
?
'编辑人员'
:
'Edit Person'
,
groupId
:
'0'
,
label
:
'0'
}
if
(
isNational
.
value
){
proxy
.
$refs
[
'dialogAddWdsf'
].
open
(
params
)
}
else
{
proxy
.
$refs
[
'dialogAddCoach'
].
open
(
params
)
}
}
function
addMember
()
{
console
.
log
(
isNational
.
value
)
const
params
=
{
title
:
language
.
value
==
0
?
'添加人员'
:
'Add'
,
id
:
0
,
groupId
:
'0'
,
label
:
'0'
}
if
(
isNational
.
value
){
proxy
.
$refs
[
'dialogAddWdsf'
].
open
(
params
)
}
else
{
proxy
.
$refs
[
'dialogAddCoach'
].
open
(
params
)
}
}
function
deletePerson
(
p
)
{
let
text
=
''
let
t
=
'提示'
let
s
=
'确定'
let
c
=
'取消'
let
msg
=
'操作成功'
if
(
language
.
value
==
0
){
text
=
`确定删除
${
p
.
realName
}
和
${
p
.
sex
==
'1'
?
'他'
:
'她'
}
的舞伴吗?`
}
else
{
text
=
`Delete
${
p
.
realName
}
${
p
.
sex
==
'1'
?
'he'
:
'she'
}
and
${
p
.
sex
==
'1'
?
'his'
:
'hers'
}
dance mate?`
t
=
'Tips'
s
=
'Confirm'
c
=
'Cancel'
msg
=
' Successful!'
}
ElMessageBox
.
confirm
(
text
,
t
,
{
confirmButtonText
:
s
,
cancelButtonText
:
c
,
type
:
'warning'
}).
then
(()
=>
{
match
.
delPersonForPersonal
(
p
.
id
).
then
(
res
=>
{
ElMessage
.
success
(
msg
)
getList
()
})
})
}
</
script
>
<
style
scoped
lang=
"scss"
>
.el-form--inline
.el-form-item
{
width
:
auto
;
}
</
style
>
src/viewsPc/match/components/matchInfo-projectList.vue
View file @
42450b6
<
template
>
<div
class=
"collapsebox"
>
<div
class=
"pd20"
>
<div
class=
"fr mb20"
>
<el-input
size=
"small"
v-model=
"query.projectName"
:prefix-icon=
"Search"
@
change=
"getList"
clearable
/>
</div>
<el-table
:data=
"list"
border
>
<el-table-column
:label=
"language==0?'组别编号':'Event Code'"
prop=
"code"
align=
"center"
></el-table-column>
<el-table-column
:label=
"language==0?'组别编号':'Event Code'"
prop=
"code"
align=
"center"
:min-width=
"language==0?70:100"
>
</el-table-column>
<el-table-column
:label=
"language==0?'组别名称':'Event'"
min-width=
"150"
prop=
"name"
align=
"center"
></el-table-column>
<el-table-column
:label=
"language==0?'舞种':'DISCIPLINE'"
width=
"110"
prop=
"danceType"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"language==0?'舞种明细':'Dance Detail'"
width=
"120"
prop=
"danceTypeDetailStr"
align=
"center"
></el-table-column>
<el-table-column
:label=
"language==0?'舞种明细':'Dance Detail'"
width=
"120"
prop=
"danceTypeDetailStr"
align=
"center"
>
</el-table-column>
<el-table-column
:label=
"language==0?'参赛性别':'Sex'"
align=
"center"
>
<template
#
default=
"scope"
>
...
...
@@ -45,76 +53,40 @@
</
template
>
</el-table-column>
</el-table>
<!-- <table class="table" cellspacing="0" cellpadding="0" v-if="list.length > 0">-->
<!-- <tr v-if="language==0">-->
<!-- <th>组别编号</th>-->
<!-- <th>组别名称</th>-->
<!-- <th>舞种</th>-->
<!-- <th>舞种明细</th>-->
<!-- <th>参赛性别</th>-->
<!-- <th>参赛年龄</th>-->
<!-- <th>服务费(元)</th>-->
<!-- </tr>-->
<!-- <tr v-else>-->
<!-- <th>EVENT code</th>-->
<!-- <th>EVENT</th>-->
<!-- <th>DISCIPLINE</th>-->
<!-- <th>Dance Detail</th>-->
<!-- <th>Sex</th>-->
<!-- <th>Age</th>-->
<!-- <th>Registration Fee</th>-->
<!-- </tr>-->
<!-- <tr v-for="(p,index) in list" :key="index">-->
<!-- <td>{{ p.code }}</td>-->
<!-- <td>{{ p.name }}</td>-->
<!-- <td>{{ p.danceType }}</td>-->
<!-- <td>{{ p.danceTypeDetailStr }}</td>-->
<!-- <td>{{ p.playTypeStr }}</td>-->
<!-- <td>-->
<!--<!– {{ isNational }}–>-->
<!-- <div v-if="isNational">-->
<!-- <span v-if="p.ageGroup == '0'" >{{ language==0?'不限制':'Unlimited' }}</span>-->
<!-- <span v-if="p.ageGroup == '1'" >Juvenile I</span>-->
<!-- <span v-if="p.ageGroup == '2'" >Juvenile II</span>-->
<!-- <span v-if="p.ageGroup == '3'" >Juv1& II (comb.)</span>-->
<!-- <span v-if="p.ageGroup == '4'" >Junior I</span>-->
<!-- <span v-if="p.ageGroup == '5'" >Junior II</span>-->
<!-- <span v-if="p.ageGroup == '6'" >Juv I & II (comb.)</span>-->
<!-- <span v-if="p.ageGroup == '7'" >Youth</span>-->
<!-- <span v-if="p.ageGroup == '8'" >Under 21</span>-->
<!-- <span v-if="p.ageGroup == '9'" >Adult</span>-->
<!-- <span v-if="p.ageGroup == '10'" >Senior I</span>-->
<!-- <span v-if="p.ageGroup == '11'" >Senior II</span>-->
<!-- <span v-if="p.ageGroup == '12'" >Senior III</span>-->
<!-- <span v-if="p.ageGroup == '13'" >Senior IV</span>-->
<!-- <span v-if="p.ageGroup == '14'" >Senior V</span>-->
<!-- </div>-->
<!-- <div v-else>-->
<!-- <div>{{ p.birthPeriod }}</div>-->
<!-- <div>{{p.birthPeriodSecond}}</div>-->
<!-- </div>-->
<!-- <!– <div>{{ p.birthAgeGroup }};{{p.birthAgeSecondGroup}}</div>–>-->
<!-- </td>-->
<!-- <td>{{ language==0?'¥':'€' }}{{ p.serviceFee }}</td>-->
<!-- </tr>-->
<!-- </table>-->
<PaginationPc
v-show=
"total>0"
:total=
"total"
v-model:page=
"query.pageNum"
v-model:limit=
"query.pageSize"
@
pagination=
"getList"
/>
</div>
<!-- <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list.length == 0" description=""/>-->
</div>
</template>
<
script
setup
>
import
{
Search
}
from
"@element-plus/icons-vue"
;
import
{
useStorage
}
from
"@vueuse/core/index"
import
{
getProjectByCptId
}
from
"@/apiPc/match"
;
import
PaginationPc
from
"@/components/PaginationPc"
;
const
language
=
useStorage
(
'language'
,
0
)
const
list
=
ref
([])
const
total
=
ref
(
0
)
const
query
=
ref
({
projectName
:
''
,
pageSize
:
10
,
pageNum
:
1
})
const
props
=
defineProps
({
list
:
{
type
:
Array
,
required
:
true
,
default
:[]
// list: {
// type: Array,
// required: true,
// default:[]
// },
matchId
:
{
type
:
String
,
required
:
false
},
isNational
:
{
type
:
Boolean
,
...
...
@@ -122,6 +94,13 @@ const props = defineProps({
default
:
false
},
})
getList
()
function
getList
()
{
getProjectByCptId
(
props
.
matchId
,
query
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
total
.
value
=
res
.
total
})
}
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/viewsPc/match/components/matchInfo.vue
View file @
42450b6
...
...
@@ -82,7 +82,7 @@
<!--
</div>
-->
<div
class=
"indexTitle"
v-if=
"form.type==1 && form.cptProjectList?.length > 0"
><h3
class=
"leftboderTT"
>
Event settings
</h3></div>
<div
v-if=
"form.type==1 && form.cptProjectList?.length > 0"
>
<match-info-project-list
:
list=
"form.cptProjectList
"
:is-national=
"form.languageSource!='100'"
/>
<match-info-project-list
:
match-id=
"form.id
"
:is-national=
"form.languageSource!='100'"
/>
</div>
</div>
</
template
>
...
...
src/viewsPc/match/detail.vue
View file @
42450b6
...
...
@@ -99,7 +99,7 @@
</div>
<matchInfo
:form=
"matchData"
v-if=
"menu[0].active==1"
/>
<div
v-if=
"menu[1].active==1"
>
<match-info-project-list
:
list=
"matchData.cptProjectList
"
/>
<match-info-project-list
:
match-id=
"matchData.id
"
/>
</div>
<match-schedule-list
:match-data=
"matchData"
v-if=
"menu[2].active==1"
/>
<div
v-if=
"menu[3].active==1"
>
...
...
src/viewsPc/match/detail_en.vue
View file @
42450b6
...
...
@@ -185,10 +185,11 @@
</div>
<matchInfo
:form=
"matchData"
v-if=
"menu[0].active==1"
/>
<div
v-if=
"menu[1].active==1"
>
<match-info-project-list
:
list=
"matchData.cptProjectList
"
:is-national=
"isNational"
/>
<match-info-project-list
:
match-id=
"matchData.id
"
:is-national=
"isNational"
/>
</div>
<match-schedule-list
:match-data=
"matchData"
v-if=
"menu[2].active==1"
/>
<div
v-if=
"menu[3].active==1"
>
<div
v-if=
"matchData.showPersonFlag=='1'"
>
<el-row
:gutter=
"20"
v-if=
"matchData.signType == '0'"
>
<el-col
v-for=
"t in signDoneGroupList"
:key=
"t.id"
:span=
"8"
>
<div
class=
"teamItem"
>
...
...
@@ -199,18 +200,33 @@
</el-row>
<el-row
:gutter=
"20"
class=
"pd20"
v-else
>
<el-col
:span=
"24"
>
<div
class=
"fr mb20"
>
<el-input
size=
"small"
v-model=
"queryGroupList.name"
:prefix-icon=
"Search"
@
change=
"getGroupListByCptId"
clearable
/>
</div>
<el-table
:data=
"signDoneGroupList"
>
<el-table-column
prop=
"groupCode
"
:label=
"language == 0 ? '组别代码' :'EVENT CODE'"
min-width=
"120"
/>
<el-table-column
prop=
"EVENT"
:label=
"language == 0 ?'组别':'Group
'"
min-width=
"120"
/>
<el-table-column
prop=
"groupCode"
align=
"center
"
:label=
"language == 0 ? '组别代码' :'EVENT CODE'"
min-width=
"120"
/>
<el-table-column
prop=
"group"
:label=
"language == 0 ?'组别':'EVENT
'"
min-width=
"120"
/>
<el-table-column
prop=
"maleAthName"
:label=
"language == 0 ?'男运动员':'man name'"
min-width=
"150"
/>
<el-table-column
prop=
"femaleAthName"
:label=
"language == 0 ?'女运动员':'woman name'"
min-width=
"150"
/>
<el-table-column
prop=
"danceType"
:label=
"language == 0 ?'舞种':'Division'"
min-width=
"120"
/>
<el-table-column
prop=
"countryName
"
:label=
"language == 0 ?'国籍':'Representing'"
min-width=
"130"
/>
<el-table-column
prop=
"groupName
"
:label=
"language == 0 ?'参赛队名称':'Team name'"
min-width=
"150"
/>
<el-table-column
prop=
"countryName"
align=
"center
"
:label=
"language == 0 ?'国籍':'Representing'"
min-width=
"130"
/>
<el-table-column
prop=
"groupName"
align=
"center
"
:label=
"language == 0 ?'参赛队名称':'Team name'"
min-width=
"150"
/>
</el-table>
<PaginationPc
v-show=
"signDoneGroupListToTal>0"
:total=
"signDoneGroupListToTal"
v-model:page=
"queryGroupList.pageNum"
v-model:limit=
"queryGroupList.pageSize"
@
pagination=
"getGroupListByCptId"
/>
</el-col>
</el-row>
</div>
<div
v-else
>
<el-empty
:image=
"`/img/order_no.png`"
:image-size=
"228"
description=
""
/>
</div>
</div>
<div
v-if=
"menu[4].active==1"
>
<!--成绩-->
<el-empty
:image=
"`/img/order_no.png`"
:image-size=
"228"
description=
""
/>
...
...
@@ -309,9 +325,9 @@ const {proxy} = getCurrentInstance()
import
*
as
match
from
'@/apiPc/match'
import
{
toRefs
}
from
'@vueuse/shared'
import
{
dayjs
,
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
useUserStore
from
"@/store/modules/user"
;
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
useUserStore
from
"@/store/modules/user"
import
{
useStorage
}
from
"@vueuse/core/index"
import
{
Search
}
from
"@element-plus/icons-vue"
const
user
=
useUserStore
().
user
const
group
=
useUserStore
().
group
const
data
=
reactive
({
...
...
@@ -333,6 +349,12 @@ const data = reactive({
{
name
:
'Event details'
,
cn
:
'赛事详情'
,
active
:
0
},
{
name
:
'Schedule'
,
cn
:
'日程'
,
active
:
0
}],
signDoneGroupList
:
[],
signDoneGroupListToTal
:
0
,
queryGroupList
:{
name
:
''
,
pageSize
:
10
,
pageNum
:
1
},
time
:
''
,
startSign
:
''
,
isNational
:
false
...
...
@@ -343,10 +365,9 @@ const {
matchData
,
matchId
,
groupId
,
activeName2
,
menu
,
menu1
,
signDoneGroupList
,
signDoneGroupList
,
signDoneGroupListToTal
,
queryGroupList
,
time
,
startSign
,
isNational
}
=
toRefs
(
data
)
const
signTypePop
=
ref
(
false
)
...
...
@@ -370,7 +391,7 @@ function getMatchId() {
match
.
getMaList
({
topFlag
:
1
,
status
:
1
}).
then
((
res
)
=>
{
matchId
.
value
=
res
.
rows
[
0
].
id
getMatch
(
matchId
.
value
)
getGroupListByCptId
(
matchId
.
value
)
getGroupListByCptId
()
})
}
...
...
@@ -394,9 +415,10 @@ function getMatch(id) {
})
}
function
getGroupListByCptId
(
id
)
{
match
.
getGroupListByCptId
(
id
).
then
(
res
=>
{
signDoneGroupList
.
value
=
res
.
data
function
getGroupListByCptId
()
{
match
.
getGroupListByCptId
(
matchId
.
value
,
queryGroupList
.
value
).
then
(
res
=>
{
signDoneGroupList
.
value
=
res
.
rows
signDoneGroupListToTal
.
value
=
res
.
total
})
}
...
...
src/viewsPc/register/personal.vue
View file @
42450b6
...
...
@@ -330,7 +330,7 @@ function bigNext(){
ElMessage
.
warning
(
language
.
value
==
0
?
'请选择性别'
:
'Please select your gender'
)
return
}
if
(
user
.
utype
==
'3'
){
if
(
user
&&
user
.
utype
==
'3'
){
let
obj
=
{
card
:
form
.
value
.
card
,
userId
:
user
.
userId
,
...
...
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