Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
杨炀
/
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
ae1a1f37
authored
2025-10-15 09:29:45 +0800
by
李婷婷
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
个人随行人员
1 parent
2a7aa630
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
637 additions
and
58 deletions
src/apiPc/match.js
src/routerPc/cn.js
src/routerPc/en.js
src/routerPc/index.js
src/viewsPc/center/component/modifySign.vue
src/viewsPc/index.vue
src/viewsPc/index_en.vue
src/viewsPc/match/chooseCoach.vue
src/viewsPc/match/chooseProject.vue
src/viewsPc/match/chooseSportsman_bak.vue
src/viewsPc/match/components/chooseCoachPerson.vue
src/viewsPc/match/components/singleSignStep.vue
src/viewsPc/match/detail_en.vue
src/viewsPc/match/signPreview.vue
vite.config.js
src/apiPc/match.js
View file @
ae1a1f3
...
...
@@ -343,6 +343,13 @@ export function getPerPersonList(query, userId) {
params
:
query
})
}
export
function
getPerPersonList2
(
query
,
userId
)
{
return
request
({
url
:
`/systemj/personInfo/getPersonInfoListByPersonIdNoLabel2/
${
userId
}
`
,
method
:
'get'
,
params
:
query
})
}
// 选择队友
export
function
getMate
(
data
)
{
...
...
@@ -434,6 +441,13 @@ export function groupSignSavePerson(data) {
data
:
data
})
}
export
function
savePersonInfo
(
data
)
{
return
request
({
url
:
`/league/unitCompetitionRole/savePersonInfo`
,
method
:
'post'
,
data
:
data
})
}
export
function
getCanSignProjectList
(
cptId
)
{
return
request
({
...
...
src/routerPc/cn.js
View file @
ae1a1f3
...
...
@@ -565,6 +565,12 @@ export const constantRoutes = [
meta
:
{
title
:
'选择参赛项目'
}
},
{
path
:
'list/:id/chooseCoachPerson'
,
component
:
()
=>
import
(
'@/viewsPc/match/components/chooseCoachPerson'
),
name
:
'chooseCoachPerson'
,
meta
:
{
title
:
'选择教练/领队/其他'
}
},
{
path
:
'list/:id/signPreview'
,
component
:
()
=>
import
(
'@/viewsPc/match/signPreview'
),
name
:
'signPreview'
,
...
...
src/routerPc/en.js
View file @
ae1a1f3
...
...
@@ -735,6 +735,12 @@ export const constantRoutes = [
meta
:
{
title
:
'选择参赛项目'
}
},
{
path
:
'list/:id/chooseCoachPerson'
,
component
:
()
=>
import
(
'@/viewsPc/match/components/chooseCoachPerson'
),
name
:
'chooseCoachPerson'
,
meta
:
{
title
:
'选择教练/领队/其他'
}
},
{
path
:
'list/:id/signPreview'
,
component
:
()
=>
import
(
'@/viewsPc/match/signPreview'
),
name
:
'signPreview'
,
...
...
src/routerPc/index.js
View file @
ae1a1f3
...
...
@@ -426,7 +426,13 @@ export const constantRoutes = [
component
:
()
=>
import
(
'@/viewsPc/match/chooseProject'
),
name
:
'chooseProject'
,
meta
:
{
title
:
'选择参赛项目'
}
}
},
{
path
:
'list/:id/chooseCoachPerson'
,
component
:
()
=>
import
(
'@/viewsPc/match/components/chooseCoachPerson'
),
name
:
'chooseCoachPerson'
,
meta
:
{
title
:
'选择教练/领队/其他'
}
},
]
},
{
...
...
src/viewsPc/center/component/modifySign.vue
View file @
ae1a1f3
...
...
@@ -115,7 +115,19 @@ const goConti = () => {
matchId
:
cptId
}
})
}
else
if
(
signType
==
'1'
)
{
}
// else if (signType == '1') {
// alert('222')
// router.push({
// path: `/match/list/${cptId}/chooseCoach`,
// query: {
// matchId: cptId,
// groupId: form.value.signList[0].groupId,
// signType: 1
// }
// })
// }
else
if
(
signType
==
'1'
)
{
router
.
push
({
path
:
`/match/list/
${
cptId
}
/chooseSportsman`
,
query
:
{
...
...
src/viewsPc/index.vue
View file @
ae1a1f3
...
...
@@ -697,10 +697,10 @@ function applyInvitation() {
.zn-btn
{
background
:
#FFFFFF
;
font-size
:
1
8
px
;
font-size
:
1
6
px
;
color
:
#453DEA
;
border-radius
:
23px
;
padding
:
10px
20
px
;
padding
:
10px
18
px
;
display
:
inline-flex
;
align-items
:
center
;
}
...
...
@@ -1170,7 +1170,7 @@ function applyInvitation() {
}
h1
{
text-align
:
center
text-align
:
center
;
}
}
}
...
...
src/viewsPc/index_en.vue
View file @
ae1a1f3
...
...
@@ -124,7 +124,7 @@
<download
/>
</el-icon>
</a>
<a
class=
"zn-btn
ml20
btn-q"
@
click=
"reserveSearch"
>
Reservation Inquiry
</a>
<a
class=
"zn-btn btn-q"
@
click=
"reserveSearch"
>
Reservation Inquiry
</a>
<!-- <a
v-if="matchData.isCourseView==1" class="zn-btn ml20 btn-q forPc"
style="font-size: 15px;margin-right: 20px" @click="popMaster"
...
...
@@ -134,10 +134,10 @@
<Edit />
</el-icon>
</a> -->
<a
class=
"zn-btn
ml20
btn-q"
@
click=
"backNumberSearch"
>
Competition
<br/>
<a
class=
"zn-btn btn-q"
@
click=
"backNumberSearch"
>
Competition
Number
</a>
<a
class=
"zn-btn
ml20
btn-q"
@
click=
"schSearchSearch"
>
Schedule
<a
class=
"zn-btn btn-q"
@
click=
"schSearchSearch"
>
Schedule
Inquiry
</a>
</div>
...
...
@@ -716,7 +716,7 @@ function applyInvitation() {
text-transform
:
uppercase
;
font-size
:
16px
;
width
:
fit-content
;
margin
:
5px
5px
5px
0
;
margin
:
5px
5px
5px
15px
;
color
:
#453DEA
;
border-radius
:
23px
;
padding
:
10px
20px
;
...
...
@@ -1408,7 +1408,7 @@ function applyInvitation() {
}
.zn-btn
{
margin-top
:
1
0
px
margin-top
:
1
5
px
}
}
...
...
src/viewsPc/match/chooseCoach.vue
View file @
ae1a1f3
...
...
@@ -307,12 +307,12 @@ function geren() {
if
(
res
[
1
].
data
.
id
!=
null
)
{
hasChooseObj
.
value
=
res
[
1
].
data
hasChooseId
=
res
[
1
].
data
.
id
form
.
value
.
coachs
=
hasChooseObj
.
value
.
coachIds
.
split
(
','
)
form
.
value
.
leader
=
hasChooseObj
.
value
.
leaderIds
.
split
(
','
)
form
.
value
.
other
=
hasChooseObj
.
value
.
otherIds
.
split
(
','
)
form
.
value
.
doctor
=
hasChooseObj
.
value
.
doctorIds
.
split
(
','
)
form
.
value
.
translator
=
hasChooseObj
.
value
.
translatorIds
.
split
(
','
)
form
.
value
.
official
=
hasChooseObj
.
value
.
officialIds
.
split
(
','
)
form
.
value
.
coachs
=
hasChooseObj
.
value
.
coachIds
.
split
(
','
)
||
[]
form
.
value
.
leader
=
hasChooseObj
.
value
.
leaderIds
.
split
(
','
)
||
[]
form
.
value
.
other
=
hasChooseObj
.
value
.
otherIds
.
split
(
','
)
||
[]
form
.
value
.
doctor
=
hasChooseObj
.
value
.
doctorIds
.
split
(
','
)
||
[]
form
.
value
.
translator
=
hasChooseObj
.
value
.
translatorIds
.
split
(
','
)
||
[]
form
.
value
.
official
=
hasChooseObj
.
value
.
officialIds
.
split
(
','
)
||
[]
}
})
}
...
...
src/viewsPc/match/chooseProject.vue
View file @
ae1a1f3
...
...
@@ -3,7 +3,7 @@
<!-- 个人报名-国外-->
<div
class=
"box ph-30"
>
<el-card
class=
"mb20"
>
<single-sign-step
:active-step=
"
1
"
:language=
"language"
/>
<single-sign-step
:active-step=
"
2
"
:language=
"language"
/>
</el-card>
<el-card
:body-style=
"
{'padding': '0'}">
...
...
@@ -126,13 +126,13 @@
<
zu
-
table
v
-
else
:
language
=
"language"
:
list
=
"zuTableList"
@
delete
=
"removeThis"
/>
<
div
v
-
if
=
"showPersonList||myMemberTable.length>0"
>
<
el
-
row
class
=
"mt20"
>
<
!--
<
el
-
row
class
=
"mt20"
>
<
el
-
col
:
span
=
"24"
>
<
el
-
button
plain
type
=
"primary"
@
click
=
"addAccompany"
>
{{
language
==
0
?
'添加随行人员'
:
'Add accompanying personnel'
}}
<
/el-button
>
<
/el-col
>
<
/el-row
>
<
/el-row>
--
>
<
el
-
table
:
data
=
"myMemberTable"
border
class
=
"mt20"
>
<
el
-
table
-
column
:
label
=
"language==0?'序号':'Index'"
align
=
"center"
type
=
"index"
width
=
"70"
/>
<
el
-
table
-
column
:
label
=
"language==0?'姓氏':'Surname'"
min
-
width
=
"100"
prop
=
"xing"
/>
...
...
@@ -167,6 +167,7 @@
<
/div
>
<
div
class
=
"text-center mt20 father"
>
<
el
-
button
type
=
"primary"
class
=
"w200px"
plain
round
@
click
=
"goPrev()"
>
{{
language
==
0
?
'上一步'
:
'Go back'
}}
<
/el-button
>
<
el
-
button
class
=
"btn-lineG w200px"
round
style
=
"position: relative ; z-index: 99;"
type
=
"primary"
@
click
=
"submitForm"
...
...
@@ -360,7 +361,7 @@ function upDateChoosedList() {
}
function
getMyMemberTable
()
{
match
.
getPerPersonList
({
cptId
:
matchId
.
value
,
searchLabels
:
'1,2,3,4,5,6'
}
,
userId
.
value
).
then
(
res
=>
{
match
.
getPerPersonList
2
({
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
...
...
@@ -418,7 +419,16 @@ function getSignInfoList() {
zuTableList
.
value
=
res
.
data
.
zuData
||
[]
}
)
}
function
goPrev
()
{
router
.
push
({
name
:
'chooseCoachPerson'
,
query
:
{
matchId
:
matchId
.
value
,
groupId
:
groupId
.
value
,
isNational
:
true
,
}
}
)
}
function
submitForm
()
{
if
(
signInfoList
.
value
.
length
==
0
)
{
...
...
@@ -457,33 +467,34 @@ function submitForm() {
}
}
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
(()
=>
{
//
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
(()
=>
{
//
}
).
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
()
}
)
}
//
}
)
//
}
}
function
commit
()
{
...
...
src/viewsPc/match/chooseSportsman_bak.vue
View file @
ae1a1f3
...
...
@@ -209,7 +209,7 @@ import { useStorage } from '@vueuse/core/index'
const
language
=
useStorage
(
'language'
,
0
)
const
data
=
reactive
({
coachForm
:
{},
activeStep
:
2
,
coachForm
:
{},
activeStep
:
3
,
tourCurrent
:
0
,
tableData
:
[],
signInfoList
:
[],
...
...
src/viewsPc/match/components/chooseCoachPerson.vue
0 → 100644
View file @
ae1a1f3
<
template
>
<div
class=
""
>
<div
class=
"box ph-30"
>
<el-card
v-if=
"user"
>
<single-sign-step
v-if=
"user.utype=='1'"
activeStep=
"2"
:language=
"language"
/>
<team-sign-step
v-if=
"user.utype=='2'"
:activeStep=
"2"
:language=
"language"
/>
</el-card>
<el-card
class=
"mt20"
v-if=
"isNational"
>
<h3
class=
"text-center text-danger"
v-if=
"language==0"
>
是否添加随行人员,如果没有,请点击下一步,跳过此步骤
</h3>
<h3
class=
"text-center text-danger"
v-else
>
Do you need to add accompanying persons? If not, please proceed to the next step.
</h3>
</el-card>
<el-row
class=
"mt20"
:gutter=
"20"
>
<el-col
:lg=
"12"
>
<el-card
v-loading=
"loading"
>
<template
#
header
>
<div
class=
"card-header"
>
<img
src=
"@/assets/sign/tag01.png"
/>
{{
language
==
0
?
'教练'
:
'Coach'
}}
</div>
</
template
>
<div
class=
"chooseForm"
>
<el-checkbox-group
v-model=
"form.coachs"
@
change=
"changecoachs"
>
<div
class=
"addBttn"
@
click=
"addCoach('1')"
>
+
</div>
<el-checkbox
v-for=
"c in personAllList?.coaches"
:value=
"c.id"
>
<el-avatar
fit=
"cover"
v-if=
"c.picUrl"
:size=
"60"
:src=
"fillImgUrl(c.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<p
class=
"name"
>
{{ c.realName }}
<el-icon
@
click
.
stop=
"editPerson(c.id)"
>
<Edit/>
</el-icon>
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</el-col>
<el-col
:lg=
"12"
>
<el-card
v-loading=
"loading"
>
<
template
#
header
>
<div
class=
"card-header"
>
<img
src=
"@/assets/sign/tag02.png"
/>
{{
language
==
0
?
'领队'
:
'HEAD OF TEAM'
}}
<span
class=
"tip"
v-if=
"language==0&&!isNational"
>
(必选一位领队)
</span>
<span
class=
"tip"
v-if=
"language==1&&!isNational"
>
(Team Leader select at least one)
</span>
</div>
</
template
>
<div
class=
"chooseForm"
>
<el-checkbox-group
v-model=
"form.leader"
>
<div
class=
"addBttn"
@
click=
"addCoach('2')"
>
+
</div>
<el-checkbox
v-for=
"c in personAllList?.leaders"
:value=
"c.id"
>
<el-avatar
fit=
"cover"
v-if=
"c.picUrl"
:size=
"60"
:src=
"fillImgUrl(c.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<p
class=
"name"
>
{{ c.realName }}
<el-icon
@
click
.
stop=
"editPerson(c.id)"
>
<Edit/>
</el-icon>
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</el-col>
<el-col
:lg=
"12"
>
<el-card
class=
"mt20"
v-loading=
"loading"
>
<
template
#
header
>
<div
class=
"card-header"
v-if=
"isNational"
>
<img
src=
"@/assets/sign/tag03.png"
/>
{{
language
==
0
?
'队医'
:
'Team doctor'
}}
</div>
<div
class=
"card-header"
v-else
>
<img
src=
"@/assets/sign/gl.png"
/>
{{
language
==
0
?
'管理'
:
'Manager'
}}
</div>
</
template
>
<div
class=
"chooseForm"
>
<el-checkbox-group
v-model=
"form.doctor"
>
<div
class=
"addBttn"
@
click=
"addCoach('4')"
>
+
</div>
<el-checkbox
v-for=
"c in personAllList?.teamDoctors"
:value=
"c.id"
>
<el-avatar
fit=
"cover"
v-if=
"c.picUrl"
:size=
"60"
:src=
"fillImgUrl(c.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<p
class=
"name"
>
{{ c.realName }}
<el-icon
@
click
.
stop=
"editPerson(c.id)"
>
<Edit/>
</el-icon>
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</el-col>
<el-col
:lg=
"12"
>
<el-card
class=
"mt20"
v-loading=
"loading"
>
<
template
#
header
>
<div
class=
"card-header"
>
<img
src=
"@/assets/sign/tag04.png"
/>
{{
language
==
0
?
'翻译'
:
'Interpreter'
}}
</div>
</
template
>
<div
class=
"chooseForm"
>
<el-checkbox-group
v-model=
"form.translator"
>
<div
class=
"addBttn"
@
click=
"addCoach('5')"
>
+
</div>
<el-checkbox
v-for=
"c in personAllList?.translators"
:value=
"c.id"
>
<el-avatar
fit=
"cover"
v-if=
"c.picUrl"
:size=
"60"
:src=
"fillImgUrl(c.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<p
class=
"name"
>
{{ c.realName }}
<el-icon
@
click
.
stop=
"editPerson(c.id)"
>
<Edit/>
</el-icon>
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</el-col>
<el-col
:lg=
"12"
>
<el-card
class=
"mt20"
v-loading=
"loading"
>
<
template
#
header
>
<div
class=
"card-header"
>
<img
src=
"@/assets/sign/tag05.png"
/>
{{
language
==
0
?
'官员'
:
'Official'
}}
</div>
</
template
>
<div
class=
"chooseForm"
>
<el-checkbox-group
v-model=
"form.official"
>
<div
class=
"addBttn"
@
click=
"addCoach('6')"
>
+
</div>
<el-checkbox
v-for=
"c in personAllList?.officials"
:value=
"c.id"
>
<el-avatar
fit=
"cover"
v-if=
"c.picUrl"
:size=
"60"
:src=
"fillImgUrl(c.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<p
class=
"name"
>
{{ c.realName }}
<el-icon
@
click
.
stop=
"editPerson(c.id)"
>
<Edit/>
</el-icon>
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</el-col>
<el-col
:lg=
"12"
>
<el-card
class=
"mt20"
v-loading=
"loading"
>
<
template
#
header
>
<div
class=
"card-header"
>
<img
src=
"@/assets/sign/tag06.png"
/>
{{
language
==
0
?
'其他'
:
'Other'
}}
</div>
</
template
>
<div
class=
"chooseForm"
>
<el-checkbox-group
v-model=
"form.other"
>
<div
class=
"addBttn"
@
click=
"addCoach('3')"
>
+
</div>
<el-checkbox
v-for=
"c in personAllList?.others"
:value=
"c.id"
>
<el-avatar
fit=
"cover"
v-if=
"c.picUrl"
:size=
"60"
:src=
"fillImgUrl(c.picUrl)"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 0"
:size=
"60"
src=
"/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-else-if=
"c.sex == 1"
:size=
"60"
src=
"/img/head0.png"
/>
<p
class=
"name"
>
{{ c.realName }}
<el-icon
@
click
.
stop=
"editPerson(c.id)"
>
<Edit/>
</el-icon>
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</el-card>
</el-col>
</el-row>
<el-card
class=
"mt20"
>
<div
class=
"text-center"
>
<el-button
type=
"primary"
class=
"w200px"
plain
round
@
click=
"goPrev()"
>
{{ language==0?'上一步':'Go back' }}
</el-button>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"goNext()"
>
{{language==0?'下一步':'Next'}}
</el-button>
</div>
</el-card>
</div>
<dialogAddCoach
ref=
"dialogAddCoachRef"
@
submitForm=
"getList"
/>
<dialogAddCoach
_En
ref=
"dialogAddCoachRef_En"
@
submitForm=
"getList"
/>
</div>
</template>
<
script
setup
>
import
TeamSignStep
from
'./teamSignStep'
import
SingleSignStep
from
'./singleSignStep'
import
{
ref
,
reactive
,
toRefs
}
from
'vue'
import
{
getCurrentInstance
,
onMounted
}
from
'@vue/runtime-core'
import
*
as
match
from
'@/apiPc/match'
import
DialogAddCoach
from
'./addCoach'
import
DialogAddCoach_En
from
'./addCoach_en'
const
{
proxy
}
=
getCurrentInstance
()
const
router
=
useRouter
()
const
route
=
useRoute
()
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
useRoute
,
useRouter
}
from
'vue-router'
import
useUserStore
from
"@/store/modules/user"
;
import
{
useStorage
}
from
"@vueuse/core/index"
;
const
language
=
useStorage
(
'language'
,
0
)
const
data
=
reactive
({
loading
:
false
,
form
:
{
coachs
:
[],
leader
:
[],
doctor
:[],
other
:
[],
translator
:
[],
official
:
[]
},
personAllList
:
[],
hasChooseObj
:
{},
groupId
:
'0'
,
signType
:
''
,
activeStep
:
1
,
isNational
:
false
,
languageSource
:
''
})
const
{
loading
,
form
,
personAllList
,
rules
,
signType
,
groupId
,
hasChooseObj
,
activeStep
,
isNational
,
languageSource
}
=
toRefs
(
data
)
let
matchId
=
''
const
user
=
useUserStore
().
user
const
group
=
useUserStore
().
group
||
{}
onMounted
(()
=>
{
matchId
=
route
.
query
.
matchId
groupId
.
value
=
group
.
id
signType
.
value
=
route
.
query
.
signType
||
''
if
(
route
.
query
.
isNational
==
true
||
route
.
query
.
isNational
==
'true'
){
isNational
.
value
=
true
}
if
(
route
.
query
.
isNational
==
false
||
route
.
query
.
isNational
==
'false'
){
isNational
.
value
=
false
}
languageSource
.
value
=
route
.
query
.
languageSource
if
(
!
user
){
router
.
push
({
name
:
'home'
})
return
}
getList
()
})
function
getList
()
{
// console.log(user.utype)
if
(
user
.
utype
==
'1'
)
{
geren
()
}
if
(
user
.
utype
==
'2'
){
tuandui
()
}
}
function
changecoachs
(
e
)
{
// console.log(e)
}
// 获取报名时是否已选过
let
hasChooseId
function
tuandui
()
{
loading
.
value
=
true
Promise
.
all
([
match
.
getMyGroupForCpt
(
groupId
.
value
,
matchId
),
match
.
getChooseDoneGroupCoachs
(
matchId
,
groupId
.
value
)
]).
then
((
res
)
=>
{
personAllList
.
value
=
res
[
0
].
data
loading
.
value
=
false
if
(
res
[
1
].
data
.
id
!=
null
)
{
hasChooseObj
.
value
=
res
[
1
].
data
hasChooseId
=
res
[
1
].
data
.
id
if
(
hasChooseObj
.
value
.
coachIds
)
{
form
.
value
.
coachs
=
hasChooseObj
.
value
.
coachIds
.
split
(
','
)
}
else
{
form
.
value
.
coachs
=
[]
}
if
(
hasChooseObj
.
value
.
leaderIds
)
{
form
.
value
.
leader
=
hasChooseObj
.
value
.
leaderIds
.
split
(
','
)
}
else
{
form
.
value
.
leader
=
[]
}
form
.
value
.
other
=
hasChooseObj
.
value
.
otherIds
.
split
(
','
)
form
.
value
.
doctor
=
hasChooseObj
.
value
.
teamDoctorIds
.
split
(
','
)
form
.
value
.
translator
=
hasChooseObj
.
value
.
translatorIds
.
split
(
','
)
form
.
value
.
official
=
hasChooseObj
.
value
.
officialIds
.
split
(
','
)
}
})
}
function
geren
()
{
loading
.
value
=
true
Promise
.
all
([
match
.
getMyPersonInfoWithcptId
(
matchId
),
match
.
getChooseDoneSingleCoachs
(
matchId
)
]).
then
((
res
)
=>
{
personAllList
.
value
=
res
[
0
].
data
loading
.
value
=
false
console
.
log
(
999
,
res
[
1
].
data
)
if
(
res
[
1
].
data
.
id
!=
null
)
{
hasChooseObj
.
value
=
res
[
1
].
data
hasChooseId
=
res
[
1
].
data
.
id
form
.
value
.
coachs
=
hasChooseObj
.
value
.
coachIds
?
hasChooseObj
.
value
.
coachIds
.
split
(
','
)
:
[];
form
.
value
.
leader
=
hasChooseObj
.
value
.
leaderIds
?
hasChooseObj
.
value
.
leaderIds
.
split
(
','
)
:
[];
form
.
value
.
other
=
hasChooseObj
.
value
.
otherIds
?
hasChooseObj
.
value
.
otherIds
.
split
(
','
)
:
[];
form
.
value
.
doctor
=
hasChooseObj
.
value
.
doctorIds
?
hasChooseObj
.
value
.
doctorIds
.
split
(
','
)
:
[];
// 个人接口可能是doctorIds
form
.
value
.
translator
=
hasChooseObj
.
value
.
translatorIds
?
hasChooseObj
.
value
.
translatorIds
.
split
(
','
)
:
[];
form
.
value
.
official
=
hasChooseObj
.
value
.
officialIds
?
hasChooseObj
.
value
.
officialIds
.
split
(
','
)
:
[];
}
})
}
function
goNext
()
{
console
.
log
(
877
,
form
.
value
.
doctor
)
if
(
!
isNational
.
value
&&
(
form
.
value
.
leader
.
length
==
0
))
{
ElMessage
.
warning
(
language
.
value
==
0
?
'必选一位领队'
:
'Team Leaders select at least one'
)
return
}
// (personAllList.value.coaches.length>=0 && form.value.coachs?.toString().length == 0)&&
// (personAllList.value.teamDoctors.length>=0 && form.value.doctor?.toString().length == 0)&&
// (personAllList.value.translators.length>=0 && form.value.translator?.toString().length == 0)&&
// (personAllList.value.others.length>=0 && form.value.other?.toString().length == 0)&&
// (personAllList.value.officials.length>=0 && form.value.official?.toString().length == 0)&&
// (personAllList.value.leaders.length>=0 && form.value.leader?.toString().length == 0)
if
((
personAllList
.
value
.
coaches
.
length
>
0
||
personAllList
.
value
.
teamDoctors
.
length
>
0
||
personAllList
.
value
.
translators
.
length
>
0
||
personAllList
.
value
.
others
.
length
>
0
||
personAllList
.
value
.
officials
.
length
>
0
||
personAllList
.
value
.
leaders
.
length
>
0
)
&&
(
form
.
value
.
coachs
?.
toString
().
length
==
0
&&
form
.
value
.
leader
?.
toString
().
length
==
0
&&
form
.
value
.
other
?.
toString
().
length
==
0
&&
form
.
value
.
doctor
?.
toString
().
length
==
0
&&
form
.
value
.
translator
?.
toString
().
length
==
0
&&
form
.
value
.
official
?.
toString
().
length
==
0
)
){
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'您已添加随行人员,但尚未选中,是否进行下一步?'
:
'You have added a follower, but have not selected, do you want to continue?'
,
{
confirmButtonText
:
language
.
value
==
0
?
'下一步'
:
'Next'
,
cancelButtonText
:
language
.
value
==
0
?
'取消'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
next
()
})
return
}
next
()
}
function
next
()
{
var
obj
=
{
cptId
:
matchId
,
coachIds
:
form
.
value
.
coachs
?.
toString
()
||
''
,
leaderIds
:
form
.
value
.
leader
?.
toString
()
||
''
,
otherIds
:
form
.
value
.
other
?.
toString
()
||
''
,
teamDoctorIds
:
form
.
value
.
doctor
?.
toString
()
||
''
,
translatorIds
:
form
.
value
.
translator
?.
toString
()
||
''
,
officialIds
:
form
.
value
.
official
?.
toString
()
||
''
}
if
(
hasChooseId
)
{
obj
.
id
=
hasChooseId
}
if
(
groupId
.
value
&&
groupId
.
value
!=
0
)
{
obj
.
unitId
=
groupId
.
value
}
if
(
user
.
utype
==
'1'
)
{
// 个人报名
match
.
singleSignSavePerson
(
obj
).
then
(
res
=>
{
router
.
push
({
name
:
'chooseProject'
,
query
:
{
matchId
:
matchId
,
isNational
:
isNational
.
value
,
languageSource
:
languageSource
.
value
}
})
})
}
if
(
user
.
utype
==
'2'
){
// 团队报名
match
.
savePersonInfo
(
obj
).
then
(
res
=>
{
router
.
push
({
name
:
'chooseSportsman'
,
query
:
{
matchId
:
matchId
,
groupId
:
groupId
.
value
,
signType
:
signType
.
value
,
isNational
:
isNational
.
value
,
languageSource
:
languageSource
.
value
}
})
})
}
}
function
goPrev
()
{
if
(
languageSource
.
value
==
'100'
){
// router.push({
// name: `teamSignCn`,
// query: {
// matchId: matchId,
// groupId: groupId.value,
// languageSource:languageSource.value,
// isNational: false
// }
// })
router
.
push
({
name
:
'matchDetail'
,
params
:
{
id
:
matchId
},
query
:
{
matchId
:
matchId
}
})
}
else
{
// router.push({
// name: `teamSign`,
// query: {
// matchId: matchId,
// groupId: groupId.value,
// languageSource:languageSource.value,
// isNational:isNational.value
// }
// })
router
.
push
({
name
:
'matchDetail'
,
params
:
{
id
:
matchId
},
query
:
{
matchId
:
matchId
}
})
}
}
function
editPerson
(
id
)
{
var
obj
=
{
title
:
language
.
value
==
0
?
'编辑人员'
:
'Edit'
,
id
:
id
,
groupId
:
groupId
.
value
||
0
}
if
(
isNational
.
value
){
proxy
.
$refs
[
'dialogAddCoachRef_En'
].
open
(
obj
)
}
else
{
proxy
.
$refs
[
'dialogAddCoachRef'
].
open
(
obj
)
}
}
function
addCoach
(
n
)
{
var
obj
=
{
title
:
language
.
value
==
0
?
'新建人员'
:
'Add'
,
id
:
0
,
label
:
n
,
groupId
:
groupId
.
value
}
if
(
isNational
.
value
){
proxy
.
$refs
[
'dialogAddCoachRef_En'
].
open
(
obj
)
}
else
{
proxy
.
$refs
[
'dialogAddCoachRef'
].
open
(
obj
)
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.addBttn
{
margin-right
:
20px
;
width
:
60px
;
color
:
#7B7F83
;
font-size
:
20px
;
height
:
60px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
background
:
#FFFFFF
;
border
:
1px
dashed
#95A1A6
;
border-radius
:
50%
;
&:hover
{
cursor
:
pointer
;
color
:
var
(
--el-color-primary
);
border-color
:
var
(
--el-color-primary
);
}
}
.card-header
{
text-transform
:
uppercase
;
display
:
flex
;
align-items
:
center
;
color
:
var
(
--el-color-primary
);
img
{
margin-right
:
8px
;
flex
:
0
0
auto
;
}
}
.panel-footer
.el-button--success
{
padding
:
0
40px
;
}
.chooseForm
{
:deep(.el-form-item__content){
background
:
rgba
(
245
,
247
,
249
,
0.38
);
padding
:
20px
40px
10px
;}
.el-checkbox
{
height
:
auto
;
text-align
:
center
;}
:deep
(
.el-checkbox__input
)
{
position
:
absolute
;
right
:
0
;
top
:
0
;}
.name
{
text-align
:
center
;}
}
:deep
(
.el-avatar
)>
img
{
width
:
100%
;}
</
style
>
src/viewsPc/match/components/singleSignStep.vue
View file @
ae1a1f3
<
template
>
<el-steps
:active=
"activeStep"
align-center
>
<el-step
:title=
"language==0?'校验 WDSF 会员号':'Check WDSF MIN'"
/>
<el-step
:title=
"language==0?'教练/领队/其他':'Coach/Head Of Team/Other'"
/>
<el-step
:title=
"language==0?'选手报名':'Participant Registration'"
/>
<el-step
:title=
"language==0?'提交审核':'Submit for review'"
/>
</el-steps>
...
...
src/viewsPc/match/detail_en.vue
View file @
ae1a1f3
...
...
@@ -434,8 +434,8 @@
<div
v-if=
"matchData.leagueId==0"
class=
"fixed_gg_l"
@
click=
"applyInvitation"
>
<div>
<img
v-if=
"language==0"
src=
"@/assets/logo/Invitation_c.png"
>
<img
v-
else
src=
"@/assets/logo/Invitation_e.png"
>
<img
v-if=
"language==0
&& matchData.invitationSw == '1'
"
src=
"@/assets/logo/Invitation_c.png"
>
<img
v-
if=
"language!=0 && matchData.invitationSw == '1'"
src=
"@/assets/logo/Invitation_e.png"
>
</div>
</div>
...
...
@@ -783,9 +783,12 @@ function goTeamSignCn() {
async
function
goPersonalSign
()
{
// 选项目
await
router
.
push
({
name
:
'choose
Project
'
,
name
:
'choose
CoachPerson
'
,
query
:
{
matchId
:
matchId
.
value
matchId
:
matchId
.
value
,
groupId
:
groupId
.
value
,
isNational
:
true
,
languageSource
:
matchData
.
value
.
languageSource
}
})
}
...
...
src/viewsPc/match/signPreview.vue
View file @
ae1a1f3
...
...
@@ -207,7 +207,7 @@ function getMatch() {
}
function
getMyMemberTable
()
{
match
.
getPerPersonList
({
cptId
:
matchId
.
value
,
searchLabels
:
'1,2,3,4,5,6'
},
user
.
userId
).
then
(
res
=>
{
match
.
getPerPersonList
2
({
cptId
:
matchId
.
value
,
searchLabels
:
'1,2,3,4,5,6'
},
user
.
userId
).
then
(
res
=>
{
myMemberTable
.
value
=
res
.
rows
})
}
...
...
vite.config.js
View file @
ae1a1f3
...
...
@@ -64,14 +64,14 @@ export default defineConfig(({ mode, command }) => {
proxy
:
{
// https://cn.vitejs.dev/config/#server-proxy
'/dev-api/ztx-train'
:
{
target
:
'http://192.168.1.
22
:8081'
,
target
:
'http://192.168.1.
128
:8081'
,
// target: 'https://wdsfwuxicenter.com/stage-api',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-train/
,
''
)
},
'/dev-api/ztx-match'
:
{
target
:
'http://192.168.1.
22
:8081'
,
target
:
'http://192.168.1.
128
:8081'
,
// target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api/',
...
...
@@ -79,14 +79,14 @@ export default defineConfig(({ mode, command }) => {
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-match/
,
''
)
},
'/dev-api/ztx-webSite'
:
{
target
:
'http://192.168.1.
22
:8081'
,
target
:
'http://192.168.1.
128
:8081'
,
// target: 'https://wdsfwuxicenter.com/stage-api',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-webSite/
,
''
)
},
'/dev-api'
:
{
target
:
'http://192.168.1.
22
:8081'
,
target
:
'http://192.168.1.
128
:8081'
,
// target: 'http://192.168.1.169:8081',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api/',
...
...
@@ -96,7 +96,7 @@ export default defineConfig(({ mode, command }) => {
},
'/ticket'
:
{
// target: 'https://jijin.wtwuxicenter.com/stage-api',
target
:
'http://192.168.1.
22
:8081'
,
target
:
'http://192.168.1.
128
:8081'
,
// target: 'https://wdsfwuxicenter.com/h5/',
// target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
changeOrigin
:
true
,
...
...
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