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
8f61ec56
authored
2024-03-07 18:03:30 +0800
by
杨炀
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
no message
1 parent
6be47212
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1141 additions
and
228 deletions
src/apiPc/match.js
src/layoutPc/components/AppBottom.vue
src/layoutPc/components/AppHeader.vue
src/layoutPc/components/AppTop.vue
src/viewsPc/center/myInfo.vue
src/viewsPc/match/chooseProject.vue
src/viewsPc/match/components/addAccompany.vue
src/viewsPc/match/components/addCoach.vue
src/viewsPc/match/components/addWdsf.vue
src/viewsPc/match/components/extraForm.vue
src/viewsPc/match/components/signInfo-table.vue
src/viewsPc/match/detail_en.vue
src/viewsPc/register/personal.vue
src/viewsPc/register/team/step1.vue
src/apiPc/match.js
View file @
8f61ec5
...
...
@@ -105,6 +105,13 @@ export function registerSingle(data) {
data
:
data
})
}
export
function
loginSingle
(
data
)
{
return
request
({
url
:
`/userLoginAboard`
,
method
:
'post'
,
data
:
data
})
}
// 根据Id获取我的团队
export
function
getGroupInfo
()
{
...
...
src/layoutPc/components/AppBottom.vue
View file @
8f61ec5
...
...
@@ -8,7 +8,7 @@
<router-link
to=
"/about"
>
亚洲体育舞蹈节版权所有
</router-link>
</li>
<li>
<a
target=
"_blank"
href=
"https://beian.miit.gov.cn/"
>
ICP备案号:苏ICP备
17015770号-3
</a>
<a
target=
"_blank"
href=
"https://beian.miit.gov.cn/"
>
ICP备案号:苏ICP备
2023054420号-2
</a>
<!--
<a
class=
"ffoot"
target=
"_blank"
href=
"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010102004192"
>
-->
<!--
<img
src=
"@/assets/v1/beian.png"
>
-->
<!-- 京公网安备 11010102004192号
</a>
-->
...
...
src/layoutPc/components/AppHeader.vue
View file @
8f61ec5
...
...
@@ -176,7 +176,7 @@ function handleSelect(key, keyPath) {
}
const
logout
=
()
=>
{
proxy
.
$modal
.
confirm
(
'确定退出?
'
).
then
(
function
()
{
proxy
.
$modal
.
confirm
(
language
.
value
==
0
?
'确定退出?'
:
'Are you sure to exit?
'
).
then
(
function
()
{
return
useUserStore
().
logOut
()
}).
then
(()
=>
{
isLogin
.
value
=
true
...
...
src/layoutPc/components/AppTop.vue
View file @
8f61ec5
...
...
@@ -147,7 +147,7 @@ function handleSelect(key, keyPath) {
}
const
logout
=
()
=>
{
proxy
.
$modal
.
confirm
(
'确定退出?
'
).
then
(
function
()
{
proxy
.
$modal
.
confirm
(
language
.
value
==
0
?
'确定退出?'
:
'Are you sure to exit?
'
).
then
(
function
()
{
return
useUserStore
().
logOut
()
}).
then
(()
=>
{
isLogin
.
value
=
true
...
...
src/viewsPc/center/myInfo.vue
View file @
8f61ec5
...
...
@@ -20,26 +20,51 @@
<el-form-item
:label=
"language==0?'姓名':'Real Name'"
required
prop=
"realName"
>
<el-input
v-model=
"myform.realName"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Sex'"
required
prop=
"sex"
>
<el-form-item
:label=
"language==0?'性别':'Sex'"
required
>
<el-radio-group
v-model=
"myform.sex"
>
<el-radio
label=
"0"
>
{{
language
==
0
?
'女'
:
'female'
}}
</el-radio>
<el-radio
label=
"1"
>
{{
language
==
0
?
'男'
:
'male'
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"language==0?'证件类型':'ID type'"
required
prop=
"idcType"
>
<el-select
v-model=
"myform.idcType"
style=
"width: 100%"
>
<el-option
v-for=
"item in certificates"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<el-form-item
:label=
"language==0?'出生日期':'Birthday'"
required
>
<el-date-picker
v-model=
"myform.birth"
style=
"width: 100%;"
type=
"date"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
label=
"Representing"
>
<el-input
v-model=
"myform.representing"
disabled
/>
</el-form-item>
<el-form-item
label=
"Age group"
>
<el-input
v-model=
"myform.ageGroup"
disabled
/>
</el-form-item>
<el-form-item
label=
"Division"
>
<el-input
v-model=
"myform.division"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件号码':'ID NO'"
prop=
"idcCode
"
>
<el-input
v-model=
"myform.
idcCode"
@
blur=
"checkCode"
/>
<el-form-item
label=
"Status
"
>
<el-input
v-model=
"myform.
status"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'类型':'Type'"
prop=
"type"
>
<el-form-item
label=
"Passport"
required
>
<el-input
v-model=
"myform.passportNumber"
/>
</el-form-item>
<el-form-item
label=
"Passport File"
>
<file-upload
v-model=
"myform.passportUrl"
:limit=
"1"
:is-show-tip=
"false"
:button-text=
"'Upload'"
/>
</el-form-item>
<!--
<el-form-item
:label=
"language==0?'证件类型':'ID type'"
required
prop=
"idcType"
>
-->
<!--
<el-select
v-model=
"myform.idcType"
style=
"width: 100%"
>
-->
<!--
<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'"
prop=
"idcCode"
>
-->
<!--
<el-input
v-model=
"myform.idcCode"
@
blur=
"checkCode"
/>
-->
<!--
</el-form-item>
-->
<el-form-item
:label=
"language==0?'类型':'Type'"
required
>
<el-select
v-model=
"myform.type"
style=
"width: 100%;"
>
<el-option
:label=
"language==0?'业余':'amateur'"
value=
"0"
/>
<el-option
:label=
"language==0?'专业':'Professional'"
value=
"1"
/>
...
...
@@ -47,9 +72,9 @@
<el-option
:label=
"language==0?'其他':'Other'"
value=
"3"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'邮箱':'Email'"
required
prop=
"email"
>
<el-input
v-model=
"myform.email"
type=
"email"
:placeholder=
"language==0?'请输入内容':''"
/
>
</el-form-item
>
<!--
<el-form-item
:label=
"language==0?'邮箱':'Email'"
required
prop=
"email"
>
--
>
<!--
<el-input
v-model=
"myform.email"
type=
"email"
:placeholder=
"language==0?'请输入内容':''"
/>
--
>
<!--
</el-form-item>
--
>
</el-form>
<div
class=
"text-center"
>
<el-button
type=
"primary"
class=
"btn-lineG"
round
@
click=
"save"
>
...
...
src/viewsPc/match/chooseProject.vue
View file @
8f61ec5
...
...
@@ -10,7 +10,7 @@
<match-info-row
:match-id=
"matchId"
/>
<div
class=
"pd20"
>
<el-row
:gutter=
"20"
>
<el-col
:lg=
"
4
"
>
<el-col
:lg=
"
6
"
>
<div
class=
"panel border"
>
<div
class=
"panel-header "
>
<h3
class=
"panel-title"
v-if=
"language==0"
>
完善我的信息
</h3>
...
...
@@ -18,40 +18,55 @@
</div>
<div
class=
"panel-body"
>
<div
class=
"chooseForm"
style=
"display: flex"
>
<div
@
click=
"editPerson"
style=
"width:
60px"
class=
"mr20
"
>
<div
@
click=
"editPerson"
style=
"width:
50%;text-align: center;
"
>
<el-avatar
fit=
"cover"
v-if=
"form.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.picUrl)"
/>
<div
class=
"addBttn"
v-else
>
+
</div>
<div
v-else
>
<el-avatar
fit=
"cover"
v-if=
"form.sex == 0"
:size=
"60"
src=
"@/assets/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-if=
"form.sex == 1"
:size=
"60"
src=
"@/assets/img/head0.png"
/>
</div>
<div
class=
"text-center mt10"
>
<span>
{{
form
.
n
ame
}}
</span>
<span>
{{
form
.
realN
ame
}}
</span>
<el-icon>
<Edit/>
</el-icon>
</div>
</div>
<!-- 舞伴-->
<el-checkbox-group
style=
"width: 60px"
>
<el-checkbox>
<div>
<el-avatar
fit=
"cover"
v-if=
"form.picUrl"
:size=
"60"
:src=
"fillImgUrl(form.picUrl)"
/>
<div
class=
"addBttn"
v-else
>
+
</div>
<div
class=
"text-center mt10"
>
<span>
{{
form
.
name
}}
</span>
<el-icon>
<Edit/>
</el-icon>
<!--舞伴-->
<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.sex == 0"
:size=
"60"
src=
"@/assets/img/head1.png"
/>
<el-avatar
fit=
"cover"
v-if=
"form.danceMate.sex == 1"
:size=
"60"
src=
"@/assets/img/head0.png"
/>
<div
class=
"text-center mt10"
@
click=
"editMate(form.danceMate)"
>
<span>
{{
form
.
danceMate
.
realName
}}
</span>
<el-icon
@
click
.
stop=
"editMate(form.danceMate)"
>
<Edit/>
</el-icon>
<el-icon
@
click
.
stop=
"delMate(form.danceMate)"
>
<Delete/>
</el-icon>
</div>
</div>
</div>
</el-checkbox>
</el-checkbox-group>
</el-checkbox>
</el-checkbox-group>
</div>
<div
v-else
@
click=
"editMate()"
>
<div
class=
"addBttn"
>
+
</div>
<div
class=
"text-center mt10"
>
<el-icon>
<Edit/>
</el-icon>
</div>
</div>
</div>
</div>
</div>
</el-col>
<el-col
:lg=
"
20
"
>
<el-col
:lg=
"
18
"
>
<div
class=
"panel border"
>
<div
class=
"panel-header "
>
<h3
class=
"panel-title"
v-if=
"language==0"
>
可参与报名的项目
</h3>
...
...
@@ -106,31 +121,33 @@
@
editExtra=
"goPersonInfo"
/>
<zu-table
v-else
:list=
"zuTableList"
:language=
"language"
@
delete=
"removeThis"
/>
<div
v-if=
"showPersonList"
>
<div
v-if=
"showPersonList
||myMemberTable.length>0
"
>
<el-row
class=
"mt20"
>
<el-col
:span=
"24"
>
<el-button
type=
"primary"
plain
>
{{
language
==
0
?
'添加随行人员'
:
'Add accompanying personnel'
}}
<el-button
@
click=
"addAccompany"
type=
"primary"
plain
>
{{
language
==
0
?
'添加随行人员'
:
'Add accompanying personnel'
}}
</el-button>
</el-col>
</el-row>
<el-table
class=
"mt20"
>
<el-table-column
type=
"index"
label=
"Index"
width=
"60"
/>
<el-table-column
label=
"Name"
/>
<el-table-column
label=
"Passport number"
/>
<el-table-column
label=
"Birthday"
/>
<el-table-column
label=
"Sex"
/>
<el-table-column
label=
"Role"
>
<el-table
class=
"mt20"
:data=
"myMemberTable"
border
>
<el-table-column
type=
"index"
label=
"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=
"Passport number"
prop=
"idcCode"
min-width=
"120"
/>
<el-table-column
label=
"Birthday"
prop=
"birth"
/>
<el-table-column
label=
"Sex"
prop=
"sexStr"
/>
<el-table-column
label=
"Role"
min-width=
"160"
>
<template
#
default=
"scope"
>
<div
class=
"
esp
"
>
<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
?
'领队'
:
'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
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
?
'领队'
:
'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>
</
template
>
</el-table-column>
...
...
@@ -156,7 +173,8 @@
</el-card>
</div>
<dialogAddCoach
ref=
"dialogAddCoachRef"
@
submitForm=
"changeMeDone"
/>
<dialogEditWdsf
ref=
"dialogEditWdsfRef"
@
submitForm=
"changeMeDone"
/>
<dialogEditAccompany
ref=
"dialogEditAccompanyRef"
@
submitForm=
"getMyMemberTable"
/>
<!-- <dialogChangeCoach ref="popChangeCoach" @submitForm="getMySignInfo"/>-->
<dialogExtraForm
ref=
"popExtraForm"
@
submitForm=
"getSignInfoList"
/>
</div>
...
...
@@ -166,7 +184,8 @@
import
{
ref
,
reactive
,
toRefs
}
from
'vue'
import
*
as
match
from
'@/apiPc/match'
import
{
getCurrentInstance
,
onMounted
}
from
'@vue/runtime-core'
import
dialogAddCoach
from
'./components/addCoach'
import
dialogEditWdsf
from
'./components/addWdsf'
import
dialogEditAccompany
from
'./components/addAccompany'
import
dialogSportsmanList
from
'./components/sportsmanList'
import
dialogAllSportsmanList
from
'./components/allSportsmanList'
import
dialogChangeCoach
from
'./components/changeCoach'
...
...
@@ -187,6 +206,7 @@ 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"
;
const
language
=
ref
(
cache
.
local
.
get
(
'language'
)
||
0
)
...
...
@@ -196,6 +216,7 @@ const data = reactive({
signInfoList
:
[],
zuTableList
:
[],
choosedList
:
[],
myMemberTable
:
[],
extraPersonInfoMapList
:
[],
teamList
:
[],
extraform
:
[],
...
...
@@ -210,14 +231,39 @@ const data = reactive({
activeTeam
:
''
,
names
:
{},
choosedchoosed
:
[],
mateChosed
:
[],
projectIds
:
[],
projectList
:
[],
choosed2List
:
[],
projectQuery
:
{},
tableType
:
1
,
})
const
{
activeTeam
,
names
,
tableData
,
signInfoList
,
zuTableList
,
choosedList
,
showExtraForm
,
extraPersonInfoMapList
,
teamList
,
extraform
,
groupId
,
signType
,
coachOrLeaderFlag
,
showResult
,
noPhotoCanSign
,
extraTableHead
,
coachForm
,
projectIds
,
choosedchoosed
,
activeStep
,
projectList
,
choosed2List
,
loadingProject
,
projectQuery
,
tableType
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
...
...
@@ -234,7 +280,7 @@ onMounted(() => {
getSignInfoList
()
getMatch
(
matchId
.
value
)
getMyInfo
()
getMyMemberTable
()
getMySignInfo
()
})
...
...
@@ -246,7 +292,23 @@ function getMyInfo() {
})
}
function
changeMeDone
()
{
function
getMyMemberTable
()
{
//
match
.
getPerPersonList
({
cptId
:
matchId
.
value
,
searchLabels
:
'1,2,3,4,5,6'
},
userId
.
value
).
then
(
res
=>
{
myMemberTable
.
value
=
res
.
rows
})
}
function
addAccompany
()
{
proxy
.
$refs
[
'dialogEditAccompanyRef'
].
open
({
title
:
'Add accompanying personnel'
,
cptId
:
matchId
.
value
,
id
:
0
})
}
function
changeMeDone
(
mateId
)
{
console
.
log
(
mateId
)
getMyInfo
()
getProjectList
()
}
...
...
@@ -326,15 +388,28 @@ function submitForm(n) {
}
}
if
(
showPersonList
.
value
){
commit
()
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
?
'取消'
:
'Cancel'
,
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
?
'取消'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
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
?
'取消'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
showPersonList
.
value
=
true
}).
catch
(()
=>
{
commit
()
...
...
@@ -346,27 +421,44 @@ function submitForm(n) {
}
function
commit
()
{
match
.
commitSign
({
groupId
:
0
,
cptId
:
matchId
.
value
}).
then
(
res
=>
{
router
.
push
({
name
:
`commitDone`
,
params
:
{
orderId
:
res
.
data
}
})
})
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
=
{
cptId
:
matchId
.
value
,
perIds
:
myId
.
value
,
name
:
projectQuery
.
value
.
name
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
...
...
@@ -402,18 +494,50 @@ function addCoach() {
id: 0,
groupId: groupId.value
}
proxy
.
$refs
[
'dialog
AddCoach
Ref'
].
open
(
params
)
proxy.$refs['dialog
EditWdsf
Ref'].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) {
return
}
const
obj
=
{
athleteIds
:
myId
.
value
,
let obj = {
projectIds: projectIds.value.toString(),
groupId
:
groupId
.
value
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()
...
...
@@ -456,12 +580,14 @@ function goMySign() {
const goPersonInfo = (row) => {
if (signInfoType == '1') {
ElMessageBox
.
alert
(
'已报项,前往我的报项'
,
'提示'
,
{
confirmButtonText
:
'OK'
,
callback
:
(
Action
)
=>
{
router
.
push
({
name
:
'myMatch'
})
}
})
ElMessageBox.alert(
language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: 'OK',
callback: (Action) => {
router.push({name: 'myMatch'})
}
})
return
}
// 完善补充信息
...
...
@@ -484,12 +610,39 @@ function downloadVoucher() {
}
function
editPerson
()
{
proxy
.
$refs
[
'dialog
AddCoach
Ref'
].
open
({
proxy
.
$refs
[
'dialog
EditWdsf
Ref'
].
open
({
title
:
language
.
value
==
0
?
'编辑个人信息'
:
'Edit My Information'
,
isMe
:
true
})
}
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
)
getProjectList
()
}
function
switchTabletype
()
{
if
(
tableType
.
value
==
0
)
{
tableType
.
value
=
1
...
...
@@ -652,4 +805,10 @@ function switchTabletype() {
}
}
}
.roletd
{
.ml5
{
display
:
inline-block
}
}
</
style
>
...
...
src/viewsPc/match/components/addAccompany.vue
0 → 100644
View file @
8f61ec5
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"800px"
append-to-body
close-icon=
"CircleClose"
center
:close-on-click-modal=
"false"
class=
"pcloginpop"
destroy-on-close
>
<el-form
ref=
"dialogRef"
:model=
"form"
:rules=
"language==0?rules:rules_cn"
label-width=
"160px"
inline
>
<el-row
:gutter=
"30"
>
<el-col
:lg=
"24"
>
<el-form-item
:label=
"language==0?'姓氏':'surname'"
prop=
"xing"
required
>
<el-input
v-model=
"form.xing"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'名':'name'"
prop=
"ming"
required
>
<el-input
v-model=
"form.ming"
/>
</el-form-item>
<!--
<el-form-item
:label=
"language==0?'证件类型':'ID type'"
prop=
"idcType"
required
>
-->
<!--
<el-select
v-model=
"form.idcType"
style=
"width: 100%;"
>
-->
<!--
<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?'护照号':'PassPort Number'"
prop=
"idcCode"
required
>
<el-input
v-model=
"form.idcCode"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'出生日期':'birth'"
prop=
"birth"
required
>
<el-date-picker
v-model=
"form.birth"
style=
"width: 100%;"
type=
"date"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'sex'"
prop=
"sex"
>
<el-radio-group
v-model=
"form.sex"
>
<el-radio
label=
"0"
>
{{
language
==
0
?
'女'
:
'female'
}}
</el-radio>
<el-radio
label=
"1"
>
{{
language
==
0
?
'男'
:
'male'
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"language==0?'主要会员角色':'roles'"
prop=
"labelArr"
>
<el-select
v-model=
"form.labelArr"
multiple
>
<el-option
v-for=
"l in labels"
:key=
"l.value"
:value=
"l.value"
:label=
"language==0?l.label:l.enlabel"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template
#
footer
>
<div
class=
"dialog-footer text-center"
>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"submitForm"
>
{{
language
==
0
?
'确定'
:
'Save'
}}
</el-button>
</div>
</
template
>
</el-dialog>
</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
{
ElMessage
}
from
'element-plus'
import
{
nationList
}
from
'@/assets/js/data'
import
_
from
'lodash'
import
cache
from
"@/plugins/cache"
;
const
language
=
ref
(
cache
.
local
.
get
(
'language'
)
||
0
)
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'
}
])
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'submitForm'
])
const
data
=
reactive
({
form
:
{
idcType
:
'1'
,
sex
:
'0'
},
rules
:
{
xing
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
ming
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
idcCode
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
birth
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
sex
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}]
},
rules_cn
:
{
xing
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
ming
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
idcCode
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
birth
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
address
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
sex
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}]
},
show
:
false
,
labels
:
[
// {value: '0', label: '运动员', enlabel: 'Sportsman'},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Leader'
},
{
value
:
'4'
,
label
:
'队医'
,
enlabel
:
'Nurse'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Translator'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
],
title
:
'Add accompanying personnel'
,
cptId
:
''
})
const
{
form
,
rules
,
rules_cn
,
show
,
title
,
cptId
,
labels
,
uType
}
=
toRefs
(
data
)
let
editgay
=
false
const
open
=
(
params
)
=>
{
console
.
log
(
params
)
show
.
value
=
true
cptId
.
value
=
params
.
cptId
title
.
value
=
params
.
title
if
(
params
.
id
!=
0
)
{
// 编辑
editgay
=
true
match
.
getPersonInfoById
(
params
.
id
).
then
(
res
=>
{
form
.
value
=
res
.
data
form
.
value
.
id
=
params
.
id
if
(
form
.
value
.
label
)
{
// {0:0,1:1,2:3}
form
.
value
.
labelArr
=
form
.
value
.
label
.
split
(
','
)
}
})
}
}
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{}
}
nextTick
(()
=>
{
proxy
.
$refs
[
'dialogRef'
].
clearValidate
()
})
})
function
submitForm
()
{
proxy
.
$refs
[
'dialogRef'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
form
.
value
.
label
=
form
.
value
.
labelArr
.
toString
()
if
(
editgay
)
{
// id不是0
match
.
editPersonInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
'保存成功'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
else
{
form
.
value
.
cptId
=
cptId
.
value
match
.
savePersonForMyPerson
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
'保存成功'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
}
})
}
function
cancel
()
{
show
.
value
=
false
}
</
script
>
<
style
lang=
"scss"
>
.threeFour
{
width
:
100%
;
.el-upload--picture-card
{
width
:
120px
;
height
:
160px
;
}
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
120px
;
height
:
160px
;
}
}
.tip
{
font-size
:
13px
;
color
:
#999
;
margin
:
10px
0
;
i
{
color
:
red
;
margin
:
0
4px
0
0
;
}
}
.shenfen
{
.el-upload--picture-card
{
width
:
320px
;
height
:
200px
;
}
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
320px
;
height
:
200px
;
}
}
.touxiang
{
:deep(.el-upload--picture-card
)
{
width
:
140px
;
height
:
200px
;
}
}
.touxiang
{
:deep(.el-upload-list__item
)
{
width
:
140px
;
height
:
200px
;
}
}
.el-form--inline
.el-form-item
{
width
:
100%
}
.boxDialog
{
.el-dialog__header
{
background
:
linear-gradient
(
#ed2c22
,
#fe6d45
);
margin-right
:
0
;
height
:
52px
;
span
{
color
:
#fff
;
}
}
}
</
style
>
src/viewsPc/match/components/addCoach.vue
View file @
8f61ec5
...
...
@@ -42,7 +42,7 @@
/>
</el-form-item>
<el-form-item
:label=
"language==0?'主要会员角色':'roles'"
prop=
"labelArr"
>
<el-select
v-model=
"form.labelArr"
multiple
@
change=
"labelvalue"
>
<el-select
v-model=
"form.labelArr"
multiple
>
<el-option
v-for=
"l in labels"
:key=
"l.value"
:value=
"l.value"
:label=
"language==0?l.label:l.enlabel"
/>
</el-select>
</el-form-item>
...
...
@@ -63,6 +63,7 @@
<el-option
v-for=
"item in countryList"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'详细地址':'Address'"
prop=
"address"
required
>
<el-cascader
v-if=
"form.countryId == 240"
v-model=
"form.regionId"
...
...
@@ -201,7 +202,8 @@ const open = (params) => {
if
(
form
.
value
.
label
)
{
// {0:0,1:1,2:3}
form
.
value
.
labelArr
=
form
.
value
.
label
.
split
(
','
)
labelvalue
(
form
.
value
.
labelArr
)
}
else
{
form
.
value
.
labelArr
=
[
'0'
]
}
})
}
else
{
...
...
@@ -213,7 +215,6 @@ const open = (params) => {
if
(
form
.
value
.
label
)
{
// {0:0,1:1,2:3}
form
.
value
.
labelArr
=
form
.
value
.
label
.
split
(
','
)
labelvalue
(
form
.
value
.
labelArr
)
}
})
}
...
...
@@ -259,7 +260,6 @@ function checkCode() {
form
.
value
=
res
.
data
if
(
form
.
value
.
label
!=
null
)
{
form
.
value
.
labelArr
=
form
.
value
.
label
.
split
(
','
)
labelvalue
(
form
.
value
.
labelArr
)
}
form
.
value
.
groupId
=
groupId
.
value
}
...
...
@@ -297,16 +297,6 @@ function giveBirthDay() {
}
}
function
labelvalue
(
e
)
{
if
(
e
.
indexOf
(
'1'
)
>
-
1
||
e
.
indexOf
(
'2'
)
>
-
1
)
{
// 联系方式必填
showRequire
.
value
=
true
}
else
{
showRequire
.
value
=
false
}
console
.
log
(
showRequire
.
value
)
}
function
submitForm
()
{
proxy
.
$refs
[
'dialogRef'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
...
...
src/viewsPc/match/components/addWdsf.vue
0 → 100644
View file @
8f61ec5
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"800px"
append-to-body
close-icon=
"CircleClose"
center
:close-on-click-modal=
"false"
class=
"pcloginpop"
@
close=
"cancel"
destroy-on-close
>
<el-form
ref=
"dialogRef"
:model=
"form"
:label-width=
"language==0?120:180"
inline
>
<el-form-item
:label=
"language==0?'WDSF卡号':'WDSF ID'"
v-if=
"form.id"
>
{{
form
.
wdsfMin
}}
</el-form-item>
<el-form-item
:label=
"language==0?'WDSF卡号':'WDSF ID'"
required
v-else
>
<el-input
type=
"text"
v-model=
"card"
@
change=
"resetCode"
>
<template
#
append
>
<el-button
type=
"primary"
plain
style=
"width: 110px"
@
click=
"checkCard"
>
<el-icon
v-if=
"isCodeTrue"
size=
"16"
color=
"#67C23A"
>
<CircleCheckFilled/>
</el-icon>
<span
v-else
>
{{
language
==
0
?
'校验卡号'
:
'Check Code'
}}
</span>
</el-button>
</
template
>
</el-input>
<Vcode
:show=
"showVcode"
:z-index=
"2999"
@
success=
"codeSuccess()"
></Vcode>
</el-form-item>
<div
class=
"h30"
></div>
<div
class=
"leftboderTT"
>
{{ language == 0 ? '个人信息' : 'Personal information' }}
<span
v-if=
"language==0"
>
(登录时需要验证,保护账户信息)
</span>
<span
v-else
>
(Obtain automatically according to the WDSF number)
</span>
</div>
<div
class=
"h20"
></div>
<el-form-item
:label=
"language==0?'名':'name'"
>
<el-input
v-model=
"form.ming"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'姓氏':'surname'"
>
<el-input
v-model=
"form.xing"
disabled
/>
</el-form-item>
<el-form-item
label=
"Representing"
>
<el-input
v-model=
"form.representing"
disabled
/>
</el-form-item>
<el-form-item
label=
"Age group"
>
<el-input
v-model=
"form.ageGroup"
disabled
/>
</el-form-item>
<el-form-item
label=
"Division"
>
<el-input
v-model=
"form.division"
disabled
/>
</el-form-item>
<el-form-item
label=
"Status"
>
<el-input
v-model=
"form.wdsfStatus"
disabled
/>
</el-form-item>
<div
class=
"h30"
></div>
<div
class=
"leftboderTT"
>
{{ language == 0 ? '补充信息' : 'Supplementary Information' }}
</div>
<div
class=
"h20"
></div>
<el-form-item
:label=
"language==0?'性别':'Sex'"
required
>
<el-radio-group
v-model=
"form.sex"
>
<el-radio
label=
"0"
>
{{ language == 0 ? '女' : 'female' }}
</el-radio>
<el-radio
label=
"1"
>
{{ language == 0 ? '男' : 'male' }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"language==0?'出生日期':'Birthday'"
required
>
<el-date-picker
v-model=
"form.birth"
style=
"width: 100%;"
type=
"date"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
label=
"Passport number"
required
>
<el-input
v-model=
"form.passportNumber"
/>
</el-form-item>
<el-form-item
label=
"Passport File"
>
<file-upload
v-model=
"form.passportUrl"
:limit=
"1"
:is-show-tip=
"false"
:button-text=
"'Upload'"
/>
</el-form-item>
</el-form>
<
template
#
footer
>
<div
class=
"dialog-footer text-center"
>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"submitForm"
>
{{
language
==
0
?
'确定'
:
'Save'
}}
</el-button>
</div>
</
template
>
</el-dialog>
</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
{
ElMessage
}
from
'element-plus'
import
_
from
'lodash'
import
cache
from
"@/plugins/cache"
;
import
Vcode
from
"vue3-puzzle-vcode"
import
{
checkWdsf
}
from
"@/apiPc/match"
;
const
language
=
ref
(
cache
.
local
.
get
(
'language'
)
||
0
)
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'
}
])
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'submitForm'
])
const
data
=
reactive
({
form
:
{
// countryId: 240
sex
:
'0'
},
card
:
''
,
show
:
false
,
showVcode
:
false
,
labels
:
[
{
value
:
'0'
,
label
:
'运动员'
,
enlabel
:
'Sportsman'
},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Leader'
},
{
value
:
'4'
,
label
:
'队医'
,
enlabel
:
'Nurse'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Translator'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
],
title
:
'添加选手信息'
,
isMe
:
false
,
isCodeTrue
:
false
,
cptId
:
''
})
const
{
form
,
show
,
showVcode
,
title
,
labels
,
uType
,
isMe
,
isCodeTrue
,
card
,
cptId
}
=
toRefs
(
data
)
let
editgay
=
false
const
open
=
(
params
)
=>
{
console
.
log
(
params
)
show
.
value
=
true
title
.
value
=
params
.
title
isMe
.
value
=
params
.
isMe
cptId
.
value
=
params
.
cptId
if
(
language
.
value
==
0
)
{
form
.
value
.
countryId
=
240
}
if
(
isMe
.
value
)
{
//个人
match
.
getMyPersonInfo
().
then
(
res
=>
{
form
.
value
=
res
.
data
form
.
value
.
id
=
res
.
data
.
id
if
(
form
.
value
.
label
)
{
// {0:0,1:1,2:3}
form
.
value
.
labelArr
=
form
.
value
.
label
.
split
(
','
)
}
else
{
form
.
value
.
labelArr
=
[
'0'
]
}
})
}
else
{
if
(
params
.
id
!=
0
)
{
// 编辑舞伴
editgay
=
true
form
.
value
=
params
.
form
}
}
}
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
sex
:
'0'
}
}
nextTick
(()
=>
{
proxy
.
$refs
[
'dialogRef'
].
clearValidate
()
})
})
function
submitForm
()
{
if
(
editgay
)
{
// id不是0
form
.
value
.
cptId
=
cptId
.
value
match
.
editPersonInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
'保存成功'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
else
{
if
(
!
form
.
value
.
passportNumber
)
{
ElMessage
.
error
(
'Please fill in your passport number'
)
return
}
if
(
!
form
.
value
.
birth
)
{
ElMessage
.
error
(
'Please fill in your birthday'
)
return
}
if
(
Array
.
isArray
(
form
.
value
.
passportUrl
)){
form
.
value
.
passportUrl
=
form
.
value
.
passportUrl
[
0
].
url
}
if
(
isMe
.
value
)
{
match
.
saveMyBaseInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
'保存成功'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
else
{
delete
form
.
value
.
status
delete
form
.
value
.
id
form
.
value
.
label
=
'0'
form
.
value
.
cptId
=
cptId
.
value
form
.
value
.
wdsfMin
=
form
.
value
.
min
form
.
value
.
idcCode
=
form
.
value
.
passportNumber
form
.
value
.
idcType
=
'1'
match
.
savePersonForMyPerson
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
'保存成功'
)
show
.
value
=
false
emit
(
'submitForm'
,
res
.
data
)
})
}
}
}
function
cancel
()
{
show
.
value
=
false
showVcode
.
value
=
false
}
function
resetCode
()
{
isCodeTrue
.
value
=
false
}
function
checkCard
()
{
if
(
isCodeTrue
.
value
){
return
}
if
(
!
card
.
value
)
{
if
(
language
.
value
==
0
)
{
ElMessage
.
error
(
'请填写WDSF卡号'
)
}
else
{
ElMessage
.
error
(
'Please fill in your WDSF code'
)
}
return
}
showVcode
.
value
=
true
}
function
codeSuccess
(
msg
)
{
console
.
log
(
'验证通过'
+
msg
);
showVcode
.
value
=
false
isCodeTrue
.
value
=
true
checkWdsf
({
card
:
card
.
value
}).
then
(
res
=>
{
form
.
value
=
res
.
data
form
.
value
.
xing
=
form
.
value
.
surname
form
.
value
.
ming
=
form
.
value
.
name
form
.
value
.
wdsfStatus
=
form
.
value
.
status
if
(
!
form
.
value
.
sex
)
{
form
.
value
.
sex
=
'0'
}
if
(
form
.
value
.
wdsfFlag
==
'0'
)
{
isCodeTrue
.
value
=
false
if
(
language
.
value
==
0
)
{
ElMessage
.
error
(
'WDSF卡号错误'
)
}
else
{
ElMessage
.
error
(
'WDSF ID is Error'
)
}
}
})
}
</
script
>
<
style
lang=
"scss"
>
.el-input-group__append
button
.el-button
,
.el-input-group__append
button
.el-button
:hover
{
color
:
var
(
--el-color-primary
);
background
:
#efefff
;
border
:
var
(
--el-color-primary
)
solid
1px
;
border-radius
:
0
;
}
.leftboderTT
{
color
:
var
(
--el-color-primary
);
font-size
:
16px
;
font-weight
:
600
;
span
{
color
:
#929AA0
;
font-size
:
14px
;
}
}
.threeFour
{
width
:
100%
;
.el-upload--picture-card
{
width
:
120px
;
height
:
160px
;
}
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
120px
;
height
:
160px
;
}
}
.tip
{
font-size
:
13px
;
color
:
#999
;
margin
:
10px
0
;
i
{
color
:
red
;
margin
:
0
4px
0
0
;
}
}
.shenfen
{
.el-upload--picture-card
{
width
:
320px
;
height
:
200px
;
}
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
320px
;
height
:
200px
;
}
}
.touxiang
{
:deep(.el-upload--picture-card
)
{
width
:
140px
;
height
:
200px
;
}
}
.touxiang
{
:deep(.el-upload-list__item
)
{
width
:
140px
;
height
:
200px
;
}
}
.el-form--inline
.el-form-item
{
width
:
100%
}
.boxDialog
{
.el-dialog__header
{
background
:
linear-gradient
(
#ed2c22
,
#fe6d45
);
margin-right
:
0
;
height
:
52px
;
span
{
color
:
#fff
;
}
}
}
</
style
>
src/viewsPc/match/components/extraForm.vue
View file @
8f61ec5
...
...
@@ -7,10 +7,10 @@
<el-descriptions-item
v-if=
"form.picUrl"
:label=
"language==0?'个人照片':'photo'"
>
<img
style=
"width: 60px"
:src=
"fillImgUrl(form.picUrl)"
>
</el-descriptions-item>
<el-descriptions-item
:label=
"language==0?'姓氏':'surname'"
>
{{
form
.
xing
}}
</el-descriptions-item>
<el-descriptions-item
v-if=
"form.xing"
:label=
"language==0?'姓氏':'surname'"
>
{{
form
.
xing
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"language==0?'名':'name'"
>
{{
form
.
ming
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"language==0?'性别':'sex'"
>
{{
form
.
sexStr
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"language==0?'所属国家':'Nationality'"
>
{{
form
.
countryName
}}
</el-descriptions-item>
<el-descriptions-item
v-if=
"form.countryName"
:label=
"language==0?'所属国家':'Nationality'"
>
{{
form
.
countryName
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"language==0?'证件类型':'ID type'"
>
{{
form
.
idcTypeStr
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"language==0?'证件号码':'ID NO'"
>
{{
form
.
idcCode
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"language==0?'出生日期':'birth'"
>
{{
form
.
birth
}}
</el-descriptions-item>
...
...
src/viewsPc/match/components/signInfo-table.vue
View file @
8f61ec5
...
...
@@ -2,9 +2,14 @@
<div
class=
"mt20"
></div>
<el-table
:data=
"list"
:sum-text=
"sumText"
border
style=
"width: 100%"
v-loading=
"loading"
>
<el-table-column
:label=
"language==0?'序号':'Index'"
type=
"index"
width=
"70"
align=
"center"
/>
<el-table-column
:label=
"language==0?'姓氏':'Last Name'"
prop=
"personInfo.xing"
min-width=
"100"
/>
<el-table-column
:label=
"language==0?'名':'First Name'"
prop=
"personInfo.ming"
min-width=
"100"
/>
<el-table-column
:label=
"language==0?'所属国家':'Nationality'"
prop=
"personInfo.countryName"
:min-width=
"language==0?'100':'120'"
/>
<el-table-column
:label=
"language==0?'姓氏':'Surname'"
prop=
"personInfo.xing"
min-width=
"100"
/>
<el-table-column
:label=
"language==0?'名':'Name'"
prop=
"personInfo.ming"
min-width=
"100"
/>
<el-table-column
:label=
"language==0?'所属国家':'Nationality'"
prop=
""
:min-width=
"language==0?'100':'120'"
>
<template
#
default=
"scope"
>
<span
v-if=
"scope.row.personInfo.countryName"
>
{{
scope
.
row
.
personInfo
.
countryName
}}
</span>
<span
v-if=
"scope.row.personInfo.Representing"
>
{{
scope
.
row
.
personInfo
.
Representing
}}
</span>
</
template
>
</el-table-column>
<!-- <el-table-column :label="language==0?'短名':'Nick Name'" prop="personInfo.shortName" min-width="110"/>-->
<el-table-column
:label=
"language==0?'性别':'Gender'"
prop=
"personInfo.sexStr"
/>
<!-- <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/>-->
...
...
src/viewsPc/match/detail_en.vue
View file @
8f61ec5
...
...
@@ -355,10 +355,9 @@ function goTeamSign() {
function
goPersonalSign
()
{
// 选项目
router
.
push
({
name
:
`chooseCoach`
,
name
:
'chooseProject'
,
query
:
{
matchId
:
matchId
.
value
,
signType
:
matchData
.
value
.
signType
matchId
:
matchId
.
value
}
})
}
...
...
src/viewsPc/register/personal.vue
View file @
8f61ec5
...
...
@@ -7,14 +7,16 @@
<div>
<el-card
style=
"min-height: 50vh"
>
<div
class=
"pt30"
>
<el-form
class=
"d-form"
size=
"large"
:label-width=
"language==0?120:180"
style=
"max-width: 560px;margin: auto"
>
<el-form
ref=
"wdsfDataRef"
class=
"d-form"
size=
"large"
:label-width=
"language==0?120:180"
style=
"max-width: 560px;margin: auto"
:rules=
"wdsfDataRule"
>
<el-form-item
:label=
"language==0?'WDSF卡号':'WDSF ID'"
required
>
<el-input
type=
"text"
v-model=
"form.card"
@
change=
"resetCode(0)"
@
blur=
"verifyCode"
>
<template
#
append
>
<el-button
type=
"primary"
plain
style=
"width: 110px"
@
click=
"checkCard"
>
<el-icon
v-if=
"checkStatus"
size=
"16"
color=
"#67C23A"
><CircleCheckFilled
/></el-icon>
<span
v-else
>
{{
language
==
0
?
'校验卡号'
:
'Check Code'
}}
</span>
<el-icon
v-if=
"wdsfData.wdsfFlag=='1'"
size=
"16"
color=
"#67C23A"
>
<CircleCheckFilled/>
</el-icon>
<span
v-else
>
{{
language
==
0
?
'校验卡号'
:
'Check Code'
}}
</span>
</el-button>
</
template
>
</el-input>
...
...
@@ -25,48 +27,48 @@
<span
v-else
>
(Obtain automatically according to the WDSF number)
</span>
</div>
<div
class=
"h20"
></div>
<el-form-item
:label=
"language==0?'姓氏':'surname'"
prop=
"xing"
required
>
<el-input
v-model=
"
form.xing
"
disabled
/>
<el-form-item
:label=
"language==0?'姓氏':'surname'"
>
<el-input
v-model=
"
wdsfData.surname
"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'名':'name'"
prop=
"ming"
required
>
<el-input
v-model=
"
form.ming
"
disabled
/>
<el-form-item
:label=
"language==0?'名':'name'"
>
<el-input
v-model=
"
wdsfData.name
"
disabled
/>
</el-form-item>
<el-form-item
label=
"Representing"
required
>
<el-input
v-model=
"
form.R
epresenting"
disabled
/>
<el-form-item
label=
"Representing"
>
<el-input
v-model=
"
wdsfData.r
epresenting"
disabled
/>
</el-form-item>
<el-form-item
label=
"Age group"
required
>
<el-input
v-model=
"
form
.ageGroup"
disabled
/>
<el-form-item
label=
"Age group"
>
<el-input
v-model=
"
wdsfData
.ageGroup"
disabled
/>
</el-form-item>
<el-form-item
label=
"Division"
required
>
<el-input
v-model=
"
form
.division"
disabled
/>
<el-form-item
label=
"Division"
>
<el-input
v-model=
"
wdsfData
.division"
disabled
/>
</el-form-item>
<el-form-item
label=
"Status"
required
>
<el-input
v-model=
"
form
.status"
disabled
/>
<el-form-item
label=
"Status"
>
<el-input
v-model=
"
wdsfData
.status"
disabled
/>
</el-form-item>
<div
class=
"h30"
></div>
<div
class=
"leftboderTT"
>
{{ language == 0 ? '补充信息' : 'Supplementary Information' }}
</div>
</div>
<div
class=
"h20"
></div>
<el-form-item
:label=
"language==0?'性别':'Sex'"
prop=
"sex"
required
>
<el-radio-group
v-model=
"
form
.sex"
>
<el-radio
label=
"0"
>
{{ language
==0?'女':
'female' }}
</el-radio>
<el-radio
label=
"1"
>
{{ language
==0?'男':
'male' }}
</el-radio>
<el-form-item
:label=
"language==0?'性别':'Sex'"
required
>
<el-radio-group
v-model=
"
wdsfData
.sex"
>
<el-radio
label=
"0"
>
{{ language
== 0 ? '女' :
'female' }}
</el-radio>
<el-radio
label=
"1"
>
{{ language
== 0 ? '男' :
'male' }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:label=
"language==0?'出生日期':'Birthday'"
prop=
"birth"
required
>
<el-form-item
:label=
"language==0?'出生日期':'Birthday'"
required
>
<el-date-picker
v-model=
"
form.birth
"
v-model=
"
wdsfData.birthday
"
style=
"width: 100%;"
type=
"date"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
label=
"Passport number"
required
prop=
"idcCode"
>
<el-input
v-model=
"form.idcCode
"
/>
<el-form-item
label=
"Passport number"
required
>
<el-input
v-model=
"wdsfData.passportNumber
"
/>
</el-form-item>
<el-form-item
label=
"Passport File"
>
<file-upload
:is-show-tip=
"false"
:button-text=
"'Upload'"
/>
<file-upload
v-model=
"wdsfData.passportUrl"
:limit=
"1"
:is-show-tip=
"false"
:button-text=
"'Upload'"
/>
</el-form-item>
...
...
@@ -75,25 +77,30 @@
v-if=
"language==0"
>
(登录时需要验证,保护账户信息)
</span></div>
<div
class=
"h20"
></div>
<el-form-item
:label=
"language==0?'邮箱':'E-mail'"
required
>
<el-input
type=
"text"
v-model=
"form.account"
@
change=
"resetCode(1)"
@
blur=
"verifyCode"
/>
<div
class=
"tip"
v-if=
"language==0"
>
(请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。
该邮箱后续会接收您报名审核、支付账单、比赛邀请函等。)
</div>
<div
class=
"tip"
v-else
>
Please fill in a correct mailbox information, which cannot be modified after registration.
The mailbox will receive your registration review, payment of bills, competition invitation and so on.
<el-input
type=
"text"
v-model=
"wdsfData.email"
@
change=
"resetCode(1)"
@
blur=
"verifyCode"
:disabled=
"wdsfData.personFlag=='1'"
/>
<div
class=
"tip"
v-if=
"wdsfData.personFlag=='0'"
>
<div
v-if=
"language==0"
>
(请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。
该邮箱后续会接收您报名审核、支付账单、比赛邀请函等。)
</div>
<div
v-else
>
Please fill in a correct mailbox information, which cannot be modified after registration.
The mailbox will receive your registration review, payment of bills, competition invitation and so
on.
</div>
</div>
</el-form-item>
<el-form-item
:label=
"language==0?'验证码':'Code'"
required
>
<el-form-item
:label=
"language==0?'验证码':'Code'"
required
v-if=
"wdsfData.personFlag=='0'"
>
<el-input
v-model=
"form.code"
>
<
template
#
append
>
<el-button
type=
"primary"
plain
style=
"width: 110px"
@
click=
"sendsmsMsg"
>
<count-down
v-if=
"counting"
v-slot=
"
{ totalSeconds }" :time="60000" @end="counting=false">
{{
totalSeconds
}}
{{
language
==
0
?
'秒'
:
's'
}}
{{
totalSeconds
}}
{{
language
==
0
?
'秒'
:
's'
}}
</count-down>
<span
v-else
>
{{
language
==
0
?
'发送验证码'
:
'Send code'
}}
</span>
<span
v-else
>
{{
language
==
0
?
'发送验证码'
:
'Send code'
}}
</span>
</el-button>
</
template
>
</el-input>
...
...
@@ -103,74 +110,88 @@
<el-input
type=
"password"
show-password
v-model=
"form.password"
:placeholder=
"language==0?'6-16位密码。区分大小写':'Password'"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'确认密码':'Confirm Password'"
required
>
<el-form-item
:label=
"language==0?'确认密码':'Confirm Password'"
required
v-if=
"wdsfData.personFlag=='0'"
>
<el-input
type=
"password"
show-password
v-model=
"form.confirmPassword"
@
change=
"vconfirmPassword"
:placeholder=
"language==0?'再次输入密码':'Confirm Password'"
/>
<div
class=
"text-danger"
v-if=
"showError"
>
{{ language==0?'密码不一致':'Password inconsistency' }}
</div>
<div
class=
"text-danger"
v-if=
"showError"
>
{{
language == 0 ? '密码不一致' : 'Password inconsistency'
}}
</div>
</el-form-item>
</el-form>
</div>
<div
class=
"text-center"
>
<el-button
class=
"primary-kx"
round
@
click=
"goBack"
>
{{ language==0?'取消':'Cancel'}}
</el-button>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"next"
v-if=
"matchId=='0'"
>
{{ language==0?'立即注册':'Register Now' }}
</el-button>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"next"
v-else
>
{{ language==0?'下一步':'Next' }}
<el-button
class=
"primary-kx"
round
@
click=
"goBack"
>
{{ language == 0 ? '取消' : 'Cancel' }}
</el-button>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"next"
v-if=
"wdsfData.wdsfFlag=='1'"
>
<span
v-if=
"matchId=='0'"
>
{{ language == 0 ? '立即注册' : 'Register Now' }}
</span>
<span>
{{ language == 0 ? '下一步' : 'Next' }}
</span>
</el-button>
</div>
</el-card>
</div>
<Vcode
:show=
"isShow"
@
success=
"codeSuccess()"
></Vcode>
<Vcode
:show=
"isShow"
:z-index=
"3000"
@
success=
"codeSuccess()"
></Vcode>
</div>
</div>
</div>
</template>
<
script
setup
>
import
{
ref
,
toRefs
,
reactive
}
from
"vue"
import
{
onMounted
}
from
"@vue/runtime-core"
;
import
{
ref
,
toRefs
,
reactive
}
from
"vue"
import
{
getCurrentInstance
,
onMounted
}
from
"@vue/runtime-core"
;
import
Step3
from
"./team/step3"
import
Vcode
from
"vue3-puzzle-vcode"
import
{
ElMessage
}
from
'element-plus'
import
{
ElMessage
}
from
'element-plus'
import
CountDown
from
'@chenfengyuan/vue-countdown'
import
cache
from
'@/plugins/cache'
import
{
checkWdsf
,
getCaptchaSms
,
registerSingle
}
from
"@/apiPc/match"
;
import
{
checkWdsf
,
getCaptchaSms
,
loginSingle
,
registerSingle
}
from
"@/apiPc/match"
;
import
{
setToken
}
from
"@/utils/auth"
;
import
PersonalStep
from
"@/viewsPc/register/components/personal-step"
;
import
FileUpload
from
"@/components/FileUpload"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
const
language
=
ref
(
cache
.
local
.
get
(
'language'
)
||
0
)
const
router
=
useRouter
()
const
route
=
useRoute
()
const
{
proxy
}
=
getCurrentInstance
()
const
data
=
reactive
({
isShow
:
false
,
isCodeTrue
:
0
,
counting
:
false
,
checkStatus
:
false
,
form
:{
sex
:
'0'
},
isShow
:
false
,
isCodeTrue
:
0
,
counting
:
false
,
checkStatus
:
false
,
form
:
{},
activeStep
:
0
,
failVcode
:
'验证失败,请重试'
,
successVcode
:
'验证通过!'
,
failVcode
:
'验证失败,请重试'
,
successVcode
:
'验证通过!'
,
sliderText
:
'拖动滑块完成拼图'
,
showError
:
false
showError
:
false
,
wdsfData
:
{
sex
:
'0'
},
wdsfDataRule
:
{
birthday
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
passportNumber
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
}
})
const
{
isShow
,
isCodeTrue
,
counting
,
form
,
activeStep
,
failVcode
,
successVcode
,
sliderText
,
checkStatus
,
showError
}
=
toRefs
(
data
)
const
{
isShow
,
isCodeTrue
,
counting
,
form
,
activeStep
,
failVcode
,
successVcode
,
sliderText
,
checkStatus
,
showError
,
wdsfData
,
wdsfDataRule
}
=
toRefs
(
data
)
const
matchId
=
ref
(
'0'
)
onMounted
(()
=>
{
if
(
language
.
value
==
1
)
{
onMounted
(()
=>
{
if
(
language
.
value
==
1
)
{
failVcode
.
value
=
'Error!'
successVcode
.
value
=
'Success!'
sliderText
.
value
=
'Drag the slider to complete the puzzle'
}
matchId
.
value
=
route
.
query
.
matchId
matchId
.
value
=
route
.
query
.
matchId
||
'0'
})
function
sendsmsMsg
()
{
if
(
!
form
.
value
.
account
)
{
if
(
language
.
value
==
0
)
{
if
(
!
form
.
value
.
account
)
{
if
(
language
.
value
==
0
)
{
ElMessage
.
error
(
'请填写手机/邮箱'
)
}
else
{
ElMessage
.
error
(
'Please fill in your phone/email address'
)
...
...
@@ -178,15 +199,16 @@ function sendsmsMsg() {
return
}
if
(
counting
.
value
)
{
if
(
counting
.
value
)
{
return
}
else
{
isShow
.
value
=
true
}
}
function
checkCard
()
{
if
(
!
form
.
value
.
card
)
{
if
(
language
.
value
==
0
)
{
if
(
!
form
.
value
.
card
)
{
if
(
language
.
value
==
0
)
{
ElMessage
.
error
(
'请填写WDSF卡号'
)
}
else
{
ElMessage
.
error
(
'Please fill in your WDSF code'
)
...
...
@@ -195,86 +217,172 @@ function checkCard() {
}
isShow
.
value
=
true
}
function
verifyCode
()
{
if
(
!
form
.
value
.
account
)
{
if
(
!
form
.
value
.
account
)
{
return
}
if
(
form
.
value
.
account
.
indexOf
(
'@'
)
>-
1
)
{
if
(
form
.
value
.
account
.
indexOf
(
'@'
)
>
-
1
)
{
//邮箱
}
}
function
codeSuccess
(
msg
)
{
console
.
log
(
'验证通过'
+
msg
);
isShow
.
value
=
false
isCodeTrue
.
value
+=
1
if
(
isCodeTrue
.
value
==
1
){
checkWdsf
({
card
:
form
.
value
.
card
}).
then
(
res
=>
{
checkStatus
.
value
=
res
.
data
if
(
isCodeTrue
.
value
==
1
)
{
checkWdsf
({
card
:
form
.
value
.
card
}).
then
(
res
=>
{
wdsfData
.
value
=
res
.
data
if
(
!
wdsfData
.
value
.
sex
)
{
wdsfData
.
value
.
sex
=
'0'
}
if
(
wdsfData
.
value
.
wdsfFlag
==
'0'
)
{
isCodeTrue
.
value
=
0
if
(
language
.
value
==
0
)
{
ElMessage
.
error
(
'WDSF卡号错误'
)
}
else
{
ElMessage
.
error
(
'WDSF ID is Error'
)
}
}
}).
catch
(
err
=>
{
isCodeTrue
.
value
=
0
})
}
if
(
isCodeTrue
.
value
==
2
)
{
if
(
isCodeTrue
.
value
==
2
)
{
counting
.
value
=
true
getCaptchaSms
({
account
:
form
.
value
.
account
}).
then
(
res
=>
{
getCaptchaSms
({
account
:
form
.
value
.
account
}).
then
(
res
=>
{
})
}
}
function
resetCode
(
n
)
{
isCodeTrue
.
value
=
n
}
function
vconfirmPassword
()
{
if
(
form
.
value
.
password
!=
form
.
value
.
confirmPassword
)
{
if
(
form
.
value
.
password
!=
form
.
value
.
confirmPassword
)
{
showError
.
value
=
true
}
else
{
showError
.
value
=
false
}
}
function
goBack
()
{
router
.
go
(
-
1
)
}
function
next
()
{
// registerSingle(form.value).then(res=>{
// setToken(res.data.token)
if
(
matchId
.
value
!=
'0'
){
router
.
push
({
name
:
'chooseProject'
,
params
:{
id
:
matchId
.
value
},
query
:
{
matchId
:
matchId
.
value
}
})
// proxy.$refs['wdsfDataRef'].validate((valid) => {
// if (valid)
if
(
!
wdsfData
.
value
.
passportNumber
)
{
ElMessage
.
error
(
'Please fill in your passport number'
)
return
}
if
(
!
wdsfData
.
value
.
birthday
)
{
ElMessage
.
error
(
'Please fill in your birthday'
)
return
}
if
(
wdsfData
.
value
.
personFlag
==
'0'
)
{
let
obj
=
{
card
:
form
.
value
.
card
,
account
:
wdsfData
.
value
.
email
,
code
:
form
.
value
.
code
,
password
:
form
.
value
.
password
,
sex
:
wdsfData
.
value
.
sex
,
birth
:
wdsfData
.
value
.
birthday
,
passportUrl
:
wdsfData
.
value
.
passportUrl
[
0
].
url
,
passportNumber
:
wdsfData
.
value
.
passportNumber
,
}
registerSingle
(
obj
).
then
(
res
=>
{
setToken
(
res
.
data
.
token
)
console
.
log
(
matchId
.
value
)
afterR
()
})
}
if
(
wdsfData
.
value
.
personFlag
==
'1'
)
{
if
(
!
form
.
value
.
password
){
ElMessage
.
error
(
'Please fill in your password'
)
return
}
let
obj
=
{
sex
:
wdsfData
.
value
.
sex
,
passportNumber
:
wdsfData
.
value
.
passportNumber
,
birth
:
wdsfData
.
value
.
birthday
,
personId
:
wdsfData
.
value
.
personId
,
username
:
wdsfData
.
value
.
email
,
password
:
form
.
value
.
password
,
}
if
(
Array
.
isArray
(
wdsfData
.
value
.
passportUrl
)){
obj
.
passportUrl
=
form
.
value
.
passportUrl
[
0
].
url
}
else
{
router
.
push
({
name
:
'matchDetail'
,
params
:{
id
:
0
}
})
obj
.
passportUrl
=
wdsfData
.
value
.
passportUrl
}
loginSingle
(
obj
).
then
(
res
=>
{
setToken
(
res
.
data
.
token
)
console
.
log
(
matchId
.
value
)
afterR
()
})
}
// })
}
function
afterR
()
{
if
(
matchId
.
value
!=
'0'
)
{
router
.
push
({
name
:
'chooseProject'
,
params
:
{
id
:
matchId
.
value
},
query
:
{
matchId
:
matchId
.
value
}
})
}
else
{
router
.
push
({
name
:
'matchDetail'
,
params
:
{
id
:
0
}
})
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.tip
{
line-height
:
1.6
;
font-size
:
12px
;
margin-top
:
6px
;
color
:
#666
;}
.tip
{
line-height
:
1.6
;
font-size
:
12px
;
margin-top
:
6px
;
color
:
#666
;
}
.leftboderTT
{
color
:
var
(
--el-color-primary
);
font-size
:
16px
;
font-weight
:
600
;
span
{
color
:
#929AA0
;
font-size
:
14px
;
span
{
color
:
#929AA0
;
font-size
:
14px
;
}
}
.h20
{
height
:
20px
}
.h30
{
height
:
30px
}
.el-input-group__append
{
flex
:
1
1
auto
;
}
.h20
{
height
:
20px
}
.h30
{
height
:
30px
}
.el-input-group__append
{
flex
:
1
1
auto
;}
.el-input-group__append
button
.el-button
,
.el-input-group__append
button
.el-button
:hover
{
.el-input-group__append
button
.el-button
,
.el-input-group__append
button
.el-button
:hover
{
color
:
var
(
--el-color-primary
);
background
:
#efefff
;
border
:
var
(
--el-color-primary
)
solid
1px
;
...
...
src/viewsPc/register/team/step1.vue
View file @
8f61ec5
...
...
@@ -5,6 +5,10 @@
<el-form-item
:label=
"language==0?'邮箱':'E-mail'"
required
>
<el-input
type=
"text"
v-model=
"form.account"
@
change=
"resetCode"
@
blur=
"verifyCode"
/>
<div
class=
"tip"
>
(请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。
该邮箱后续会会作为您登录的账户,并接收您报名审核、支付账单、比赛邀请函等。)
</div>
</el-form-item>
<el-form-item
:label=
"language==0?'验证码':'Code'"
required
>
<el-input
v-model=
"form.code"
>
...
...
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