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
5f4bdea4
authored
2025-05-22 10:54:04 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
添加姓名
1 parent
4852d228
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
531 additions
and
416 deletions
src/viewsPc/match/chooseProject.vue
src/viewsPc/match/components/addCoach.vue
src/viewsPc/match/components/addCoach_en.vue
src/viewsPc/match/components/addSportman_en.vue
src/viewsPc/match/components/addWdsf.vue
src/viewsPc/match/components/allSportsmanList.vue
src/viewsPc/register/personal.vue
src/viewsPc/match/chooseProject.vue
View file @
5f4bdea
...
...
@@ -282,6 +282,7 @@ const form = ref({})
const
showPersonList
=
ref
(
false
)
const
signEndTime
=
ref
(
''
)
const
userId
=
ref
(
''
)
onMounted
(()
=>
{
if
(
useUserStore
().
user
)
{
userId
.
value
=
useUserStore
().
user
.
userId
...
...
src/viewsPc/match/components/addCoach.vue
View file @
5f4bdea
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"1100px"
append-to-body
close-icon=
"CircleClose"
center
:close-on-click-modal=
"false"
class=
"pcloginpop"
destroy-on-close
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"title"
append-to-body
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
width=
"1100px"
>
<el-form
ref=
"dialogRef"
:model=
"form"
:rules=
"language==0?rules:rules_cn"
label-width=
"150px"
inline
>
<el-form
ref=
"dialogRef"
:model=
"form"
:rules=
"language==0?rules:rules_cn"
inline
label-width=
"150px"
>
<el-row
:gutter=
"30"
class=
"mt30"
>
<el-col
:lg=
"12"
class=
"touxiang"
>
<el-form-item
prop=
"picUrl"
:label=
"language==0?'个人照片':'photo'
"
>
<el-form-item
:label=
"language==0?'个人照片':'photo'"
prop=
"picUrl
"
>
<ImageUpload2
v-model=
"form.picUrl"
:crop-height=
"280"
:crop-width=
"200"
class=
"threeFour
"
:limit=
"1"
:is-show-tip=
"false
"
v-model=
"form.picUrl"
:crop-height=
"280"
:crop-width=
"200"
:is-show-tip=
"false
"
:limit=
"1"
class=
"threeFour
"
/>
</el-form-item>
<el-form-item
v-if=
"language!=0"
label=
"WDSF code"
prop=
"wdsfMin"
>
<span
v-if=
"form.wdsfMin"
>
{{
form
.
wdsfMin
}}
</span>
<el-input
v-else
v-model=
"form.wdsfMin"
type=
"text"
/>
<span
v-if=
"form.wdsfMin"
>
{{
form
.
wdsfMin
}}
</span>
<el-input
v-else
v-model=
"form.wdsfMin"
type=
"text"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'姓名':'Name'"
prop=
"realName"
required
>
<el-input
v-model=
"form.realName"
:disabled=
"editgay&&form.labelArr.indexOf('0')>-1"
/>
<el-form-item
:label=
"language==0?'姓名':'Name'"
prop=
"realName"
required
>
<el-input
v-model=
"form.realName"
:disabled=
"editgay&&form.labelArr.indexOf('0')>-1"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件类型':'ID type'"
prop=
"idcType"
required
>
<el-select
v-model=
"form.idcType"
style=
"width: 100%;"
:disabled=
"editgay
"
>
<el-select
v-model=
"form.idcType"
:disabled=
"editgay"
style=
"width: 100%;
"
>
<el-option
v-for=
"item in certificates"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
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"
required
>
<el-input
v-model=
"form.idcCode"
@
blur=
"giveBirthDay"
:disabled=
"editgay"
/>
<el-input
v-model=
"form.idcCode"
:disabled=
"editgay"
@
blur=
"giveBirthDay"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'有效证件':'Valid Passport'"
:required=
"form.idcType!='0'"
>
<image-upload
v-model=
"form.passportUrl"
:
limit=
"1"
:is-show-tip=
"false
"
/>
<image-upload
v-model=
"form.passportUrl"
:
is-show-tip=
"false"
:limit=
"1
"
/>
<span
class=
"tip"
>
*请上传有效证件扫描件
</span>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
prop=
"sex"
>
<el-radio-group
v-model=
"form.sex"
:disabled=
"editgay&&form.labelArr.indexOf('0')>-1"
>
<el-radio
value=
"0"
>
{{
language
==
0
?
'女'
:
'female'
}}
</el-radio>
<el-radio
value=
"1"
>
{{
language
==
0
?
'男'
:
'male'
}}
</el-radio>
<el-radio
value=
"0"
>
{{
language
==
0
?
'女'
:
'female'
}}
</el-radio>
<el-radio
value=
"1"
>
{{
language
==
0
?
'男'
:
'male'
}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:lg=
"12"
>
<el-form-item
:label=
"language==0?'出生日期':'Date of Birth'"
prop=
"birth"
required
>
<el-date-picker
v-model=
"form.birth"
:disabled=
"editgay&&form.labelArr.indexOf('0')>-1"
style=
"width: 100%;
"
type=
"date"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD
"
:disabled-date=
"disabledBirth
"
v-model=
"form.birth"
:disabled=
"editgay&&form.labelArr.indexOf('0')>-1"
:disabled-date=
"disabledBirth
"
format=
"YYYY-MM-DD"
style=
"width: 100%;"
type=
"date
"
value-format=
"YYYY-MM-DD
"
/>
</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-option
v-for=
"l in labels"
:key=
"l.value"
:
label=
"language==0?l.label:l.enlabel"
:value=
"l.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'手机号码':'Phone'"
prop=
"phone"
required
>
<el-input
v-model=
"form.phone"
type=
"text"
/>
<el-input
v-model=
"form.phone"
type=
"text"
/>
<span
class=
"tip"
>
*若未成年人没有手机号,请填写家长号码
</span>
</el-form-item>
<el-form-item
:label=
"language==0?'所属国家/地区':'Country'"
prop=
"countryId"
required
>
<el-select
filterable
v-model=
"form.countryId"
style=
"width: 100%;"
@
change=
"changeCountryId"
>
<el-option
v-for=
"item in countryList"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"item.id"
/>
<el-select
v-model=
"form.countryId"
filterable
style=
"width: 100%;"
@
change=
"changeCountryId"
>
<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"
>
<el-cascader
v-if=
"form.countryId == 240"
v-model=
"form.regionId"
style=
"width: 100%;margin-bottom: 15px"
:options=
"regionsList"
:props=
"
{ label:'text' }"
<el-cascader
v-if=
"form.countryId == 240"
v-model=
"form.regionId"
:options=
"regionsList"
:props=
"
{ label:'text' }"
style="width: 100%;margin-bottom: 15px"
/>
<el-input
v-model=
"form.address"
type=
"textarea"
:rows=
"4"
/>
<el-input
v-model=
"form.address"
:rows=
"4"
type=
"textarea"
/>
</el-form-item>
<!--
<el-form-item
v-if=
"language=='0'"
:label=
"language==0?'WDSF会员号':'WDSF code'"
>
-->
<!--
<span
v-if=
"editgay&&form.wdsfMin"
>
{{
form
.
wdsfMin
}}
</span>
-->
<!--
<el-input
v-else
v-model=
"wdsfMin"
type=
"text"
/>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'邮箱':'Email'"
prop=
"email"
required
>
-->
<!--
<el-input
v-model=
"form.email"
/>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
v-if=
"language=='0'"
:label=
"language==0?'WDSF会员号':'WDSF code'"
>
-->
<!--
<span
v-if=
"editgay&&form.wdsfMin"
>
{{
form
.
wdsfMin
}}
</span>
-->
<!--
<el-input
v-else
v-model=
"wdsfMin"
type=
"text"
/>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'邮箱':'Email'"
prop=
"email"
required
>
-->
<!--
<el-input
v-model=
"form.email"
/>
-->
<!--
</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>
<el-button
class=
"btn-lineG w200px"
round
type=
"primary"
@
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
{
reactive
,
ref
,
toRefs
,
watch
}
from
'vue'
import
{
getCurrentInstance
,
nextTick
,
onMounted
}
from
'@vue/runtime-core'
import
*
as
match
from
'@/apiPc/match'
import
{
dayjs
,
ElMessage
}
from
'element-plus'
import
{
dayjs
,
ElMessage
}
from
'element-plus'
import
_
from
'lodash'
import
{
useStorage
}
from
"@vueuse/core/index"
;
const
language
=
useStorage
(
'language'
,
0
)
import
{
useStorage
}
from
'@vueuse/core/index'
const
language
=
useStorage
(
'language'
,
0
)
const
certificates
=
ref
([
{
value
:
'0'
,
...
...
@@ -125,61 +134,73 @@ const certificates = ref([
label
:
language
.
value
==
0
?
'其他'
:
'Other'
}
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'submitForm'
])
const
data
=
reactive
({
form
:
{
// countryId: 240
sex
:
'0'
sex
:
'0'
},
wdsfMin
:
''
,
wdsfMin
:
''
,
rules
:
{
realName
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
realName
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
// countryId: [{required: true, message: '必填', trigger: 'change'}],
idcType
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
phone
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
idcType
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
phone
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
// regionId: [{ required: true, message: '必填', trigger: 'change' }],
birth
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
birth
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
// address: [{ required: true, message: '必填', trigger: 'blur' }],
// picUrl: [{required: true, message: '必填', trigger: 'blur'}],
sex
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}]
sex
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}]
},
rules_cn
:{
realName
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
rules_cn
:
{
realName
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
// countryId: [{required: true, message: 'required', trigger: 'change'}],
idcType
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
phone
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
idcType
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
phone
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
// regionId: [{ required: true, message: 'required', trigger: 'change' }],
birth
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
birth
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
// address: [{ required: true, message: 'required', trigger: 'blur' }],
// picUrl: [{required: true, message: 'required', trigger: 'blur'}],
sex
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}]
sex
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}]
},
show
:
false
,
countryList
:
[],
regionsList
:
[],
labels
:
[
{
value
:
'0'
,
label
:
'运动员'
,
enlabel
:
'Sportsman'
},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Head Of Team'
},
{
value
:
'4'
,
label
:
'管理'
,
enlabel
:
'Team doctor'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Interpreter'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
{
value
:
'0'
,
label
:
'运动员'
,
enlabel
:
'Sportsman'
},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Head Of Team'
},
{
value
:
'4'
,
label
:
'管理'
,
enlabel
:
'Team doctor'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Interpreter'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
],
title
:
'添加选手信息'
,
groupId
:
'0'
,
isMe
:
false
isMe
:
false
})
const
{
wdsfMin
,
form
,
rules
,
rules_cn
,
show
,
countryList
,
regionsList
,
title
,
groupId
,
labels
,
uType
,
isMe
}
=
toRefs
(
data
)
const
{
wdsfMin
,
form
,
rules
,
rules_cn
,
show
,
countryList
,
regionsList
,
title
,
groupId
,
labels
,
uType
,
isMe
}
=
toRefs
(
data
)
onMounted
(()
=>
{
getCountryList
()
getRegionsList
()
})
const
editgay
=
ref
(
false
)
const
open
=
(
params
)
=>
{
...
...
@@ -188,17 +209,17 @@ const open = (params) => {
groupId
.
value
=
params
.
groupId
||
'0'
isMe
.
value
=
params
.
isMe
wdsfMin
.
value
=
''
if
(
params
.
label
)
{
form
.
value
.
labelArr
=
[
params
.
label
]
if
(
params
.
label
)
{
form
.
value
.
labelArr
=
[
params
.
label
]
}
else
{
form
.
value
.
labelArr
=
[]
}
if
(
language
.
value
==
0
)
{
if
(
language
.
value
==
0
)
{
form
.
value
.
countryId
=
240
form
.
value
.
idcType
=
'0'
}
if
(
isMe
.
value
)
{
//个人
if
(
isMe
.
value
)
{
//
个人
match
.
getMyPersonInfo
().
then
(
res
=>
{
form
.
value
=
res
.
data
form
.
value
.
id
=
res
.
data
.
id
...
...
@@ -225,13 +246,13 @@ const open = (params) => {
}
}
}
defineExpose
({
open
})
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
sex
:
'0'
sex
:
'0'
}
if
(
language
.
value
==
0
)
{
if
(
language
.
value
==
0
)
{
form
.
value
.
countryId
=
240
}
}
...
...
@@ -239,8 +260,9 @@ watch(show, (value) => {
// proxy.$refs['dialogRef'].clearValidate()
})
})
function
reset
(){
if
(
editgay
.
value
){
function
reset
()
{
if
(
editgay
.
value
)
{
match
.
getPersonInfoById
(
form
.
value
.
id
).
then
(
res
=>
{
form
.
value
=
res
.
data
if
(
form
.
value
.
label
)
{
...
...
@@ -250,9 +272,11 @@ function reset(){
})
}
}
function
disabledBirth
(
time
)
{
return
time
.
getTime
()
>
new
Date
().
getTime
()
}
function
getCountryList
()
{
match
.
countryList
().
then
(
res
=>
{
countryList
.
value
=
res
.
data
...
...
@@ -272,7 +296,7 @@ function getRegionsList() {
}
function
checkCode
()
{
if
(
form
.
value
.
idcType
==
'0'
&&
form
.
value
.
idcCode
)
{
if
(
form
.
value
.
idcType
==
'0'
&&
form
.
value
.
idcCode
)
{
var
obj
=
{
idcCode
:
form
.
value
.
idcCode
,
name
:
form
.
value
.
realName
...
...
@@ -302,7 +326,7 @@ function giveBirthDay() {
tmpStr
=
tmpStr
.
substring
(
0
,
4
)
+
'-'
+
tmpStr
.
substring
(
4
,
6
)
+
'-'
+
tmpStr
.
substring
(
6
)
}
form
.
value
.
birth
=
tmpStr
const
res
=
/^
(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([
0-9
]
|X
)
$/
if
(
form
.
value
.
idcCode
&&
res
.
test
(
form
.
value
.
idcCode
))
{
const
genderCode
=
form
.
value
.
idcCode
.
charAt
(
16
)
...
...
@@ -329,31 +353,31 @@ function submitForm() {
return
}
// 验证手机号
if
(
form
.
value
.
idcType
==
0
&&
form
.
value
.
phone
)
{
if
(
form
.
value
.
idcType
==
0
&&
form
.
value
.
phone
)
{
var
pattern
=
/^1
[
3456789
]\d{9}
$/
if
(
!
pattern
.
test
(
form
.
value
.
phone
))
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入正确的手机号'
:
'Please enter the correct mobile phone number'
)
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入正确的手机号'
:
'Please enter the correct mobile phone number'
)
return
}
}
if
(
form
.
value
.
idcType
!=
0
&&!
form
.
value
.
passportUrl
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请上传有效证件'
:
'Please upload your passport file'
)
if
(
form
.
value
.
idcType
!=
0
&&
!
form
.
value
.
passportUrl
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请上传有效证件'
:
'Please upload your passport file'
)
return
}
if
(
typeof
(
form
.
value
.
regionId
)
===
'object'
)
{
form
.
value
.
regionId
=
_
.
last
(
form
.
value
.
regionId
)
}
form
.
value
.
label
=
form
.
value
.
labelArr
.
toString
()
if
(
Array
.
isArray
(
form
.
value
.
passportUrl
))
{
if
(
Array
.
isArray
(
form
.
value
.
passportUrl
))
{
form
.
value
.
passportUrl
=
form
.
value
.
passportUrl
[
0
].
url
}
if
(
wdsfMin
.
value
)
{
if
(
wdsfMin
.
value
)
{
form
.
value
.
wdsfMin
=
wdsfMin
.
value
}
if
(
groupId
.
value
!=
0
)
{
// 团队
form
.
value
.
groupId
=
groupId
.
value
if
(
form
.
value
.
idcType
==
'0'
&&
form
.
value
.
idcCode
)
{
if
(
form
.
value
.
idcType
==
'0'
&&
form
.
value
.
idcCode
)
{
var
obj
=
{
idcCode
:
form
.
value
.
idcCode
,
name
:
form
.
value
.
realName
...
...
@@ -371,20 +395,20 @@ function submitForm() {
if
(
editgay
.
value
)
{
// id不是0
match
.
editPersonInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
else
{
if
(
isMe
.
value
)
{
if
(
isMe
.
value
)
{
match
.
saveMyBaseInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
else
{
match
.
savePersonForMyPerson
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
...
...
@@ -394,15 +418,17 @@ function submitForm() {
}
})
}
function
saveGroupMember
()
{
match
.
savePersonForMyGroup
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
}).
catch
(
err
=>
{
reset
()
})
}
function
cancel
()
{
show
.
value
=
false
delete
wdsfMin
.
value
...
...
@@ -412,12 +438,12 @@ function cancel() {
<
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
;
...
...
@@ -428,7 +454,7 @@ function cancel() {
font-size
:
13px
;
color
:
#999
;
margin
:
10px
0
;
i
{
color
:
red
;
margin
:
0
4px
0
0
;
...
...
@@ -440,7 +466,7 @@ function cancel() {
width
:
320px
;
height
:
200px
;
}
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
320px
;
height
:
200px
;
...
...
@@ -459,7 +485,7 @@ function cancel() {
width
:
140px
;
height
:
200px
;
}
}
.el-form--inline
.el-form-item
{
...
...
@@ -472,7 +498,7 @@ function cancel() {
background
:
linear-gradient
(
#ed2c22
,
#fe6d45
);
margin-right
:
0
;
height
:
52px
;
span
{
color
:
#fff
;
}
...
...
src/viewsPc/match/components/addCoach_en.vue
View file @
5f4bdea
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"1100px"
append-to-body
close-icon=
"CircleClose"
center
:close-on-click-modal=
"false"
class=
"pcloginpop"
destroy-on-close
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"title"
append-to-body
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
width=
"1100px"
>
<!-- 国际赛事随行人员-->
<el-form
ref=
"dialogRef"
:model=
"form"
:rules=
"language==0?rules_cn:rules"
label-width=
"140px"
>
<!-- 国际赛事随行人员-->
<el-form
ref=
"dialogRef"
:model=
"form"
:rules=
"language==0?rules_cn:rules"
label-width=
"140px"
>
<el-row
:gutter=
"30"
class=
"mt30"
>
<el-col
:lg=
"12"
class=
"touxiang"
>
<el-form-item
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
v-if=
"form.wdsfMin
"
>
<el-form-item
v-if=
"form.wdsfMin"
:label=
"language==0?'WDSF会员号':'WDSF MIN'
"
>
{{
form
.
wdsfMin
}}
</el-form-item>
<el-form-item
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
v-else
>
<el-input
type=
"number"
v-model=
"card"
@
change=
"resetCode"
>
<el-form-item
v-else
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
>
<el-input
v-model=
"card"
type=
"number"
@
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-button
plain
style=
"width: 110px"
type=
"primary
"
@
click=
"checkCard"
>
<el-icon
v-if=
"isCodeTrue"
color=
"#67C23A"
size=
"16
"
>
<CircleCheckFilled
/>
</el-icon>
<span
v-else
>
{{
language
==
0
?
'校验卡号'
:
'Check Code'
}}
</span>
</el-button>
</
template
>
</el-input>
<a
class=
"text-primary text-sm mt10"
href=
"https://www.worlddancesport.org/Athlete/List"
target=
"_blank"
>
<el-icon><Link
/></el-icon>
{{language==0?'去WDSF官网查询我的会员号':'Search my WSDF MIN on the WDSF official website'}}
<el-icon>
<Link
/>
</el-icon>
{{ language == 0 ? '去WDSF官网查询我的会员号' : 'Search my WSDF MIN on the WDSF official website' }}
</a>
</el-form-item>
<el-form-item
:label=
"language==0?'姓氏':'Surname'"
prop=
"xing"
:required=
"!editDis
"
>
<el-input
v-model=
"form.xing"
:disabled=
"editDis"
/>
<el-form-item
:label=
"language==0?'姓氏':'Surname'"
:required=
"!editDis"
prop=
"xing
"
>
<el-input
v-model=
"form.xing"
:disabled=
"editDis"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'名':'Name'"
prop=
"ming"
required
>
<el-input
v-model=
"form.ming"
:disabled=
"editDis"
/>
<el-input
v-model=
"form.ming"
:disabled=
"editDis"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
prop=
"sex"
>
<el-radio-group
v-model=
"form.sex"
>
...
...
@@ -42,92 +44,102 @@
</el-radio-group>
</el-form-item>
<el-form-item
v-if=
"form.wdsfMin"
:label=
"language==0?'代表':'Representing'"
required
>
<el-input
v-model=
"form.representing"
disabled
/>
<el-input
v-model=
"form.representing"
disabled
/>
</el-form-item>
<el-form-item
v-else
:label=
"language==0?'所属国家/地区':'Nationality'"
prop=
"countryId"
required
>
<el-select
filterable
v-model=
"form.countryId"
style=
"width: 100%;"
@
change=
"changeCountry"
>
<el-option
v-for=
"item in countryList"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"item.id"
/>
<el-select
v-model=
"form.countryId"
filterable
style=
"width: 100%;"
@
change=
"changeCountry"
>
<el-option
v-for=
"item in countryList"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"item.id"
/>
</el-select>
</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-option
v-for=
"l in labels"
:key=
"l.value"
:
label=
"language==0?l.label:l.enlabel"
:value=
"l.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'有效证件':'Valid Passport'"
required
>
<image-upload
v-model=
"form.passportUrl"
:limit=
"1"
:is-show-tip=
"false"
:button-text=
"language==0?'上传':'Upload'"
/>
<image-upload
v-model=
"form.passportUrl"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
/>
<div
class=
"tip"
>
<span
v-if=
"language==0"
>
请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等
</span>
<span
v-else
>
Please upload a scanned copy of your valid passport for verification of identity information,
application of visa invitation letter and purchasing insurance etc.
</span>
</div>
</el-form-item>
</el-col>
<el-col
:lg=
"12"
class=
"touxiang"
>
<el-form-item
prop=
"picUrl"
:label=
"language==0?'个人照片':'Photo'
"
>
<el-form-item
:label=
"language==0?'个人照片':'Photo'"
prop=
"picUrl
"
>
<ImageUpload2
v-model=
"form.picUrl"
:crop-height=
"280"
:crop-width=
"200"
class=
"threeFour
"
:limit=
"1"
:is-show-tip=
"false
"
v-model=
"form.picUrl"
:crop-height=
"280"
:crop-width=
"200"
:is-show-tip=
"false
"
:limit=
"1"
class=
"threeFour
"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件类型':'ID Type'"
prop=
"idcType"
:required=
"!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
>
<el-select
v-model=
"form.idcType"
style=
"width: 100%;"
:disabled=
"editgay"
>
<el-form-item
:label=
"language==0?'证件类型':'ID Type'"
:required=
"!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
prop=
"idcType"
>
<el-select
v-model=
"form.idcType"
:disabled=
"editgay"
style=
"width: 100%;"
>
<el-option
v-for=
"item in certificates"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
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"
:required=
"!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
>
<el-input
v-model=
"form.idcCode"
:disabled=
"editgay"
@
blur=
"giveBirthDay"
/>
<el-form-item
:label=
"language==0?'证件号码':'ID NO'"
:required=
"!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
prop=
"idcCode"
>
<el-input
v-model=
"form.idcCode"
:disabled=
"editgay"
@
blur=
"giveBirthDay"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'出生日期':'Date of Birth'"
prop=
"birth"
:required=
"!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
>
<el-form-item
:label=
"language==0?'出生日期':'Date of Birth'"
:required=
"!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
prop=
"birth"
>
<el-date-picker
v-model=
"form.birth"
:disabled=
"form.idcType=='0'"
style=
"width: 100%;"
:disabled-date=
"disabledBirth
"
type=
"date"
format=
"YYYY-MM-DD
"
value-format=
"YYYY-MM-DD"
v-model=
"form.birth"
:disabled=
"form.idcType=='0'"
:disabled-date=
"disabledBirth"
format=
"YYYY-MM-DD
"
style=
"width: 100%;"
type=
"date
"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'手机号码':'Phone'"
prop=
"phone"
>
<el-input
v-model=
"form.phone"
type=
"text"
/>
<el-input
v-model=
"form.phone"
type=
"text"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'详细地址':'Address'"
prop=
"address"
>
<el-cascader
v-if=
"form.countryId == 240"
v-model=
"form.regionId"
style=
"width: 100%;margin-bottom: 15px"
:options=
"regionsList"
:props=
"{ label:'text' }"
<el-cascader
v-if=
"form.countryId == 240"
v-model=
"form.regionId"
:options=
"regionsList"
:props=
"{ label:'text' }"
style=
"width: 100%;margin-bottom: 15px"
/>
<el-input
v-model=
"form.address"
type=
"textarea"
:rows=
"4"
/>
<el-input
v-model=
"form.address"
:rows=
"4"
type=
"textarea"
/>
</el-form-item>
<!-- <el-form-item :label="language==0?'邮箱':'Email'" prop="email" required>-->
<!-- <el-input v-model="form.email"/>-->
<!-- </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
class=
"btn-lineG w200px"
round
type=
"primary"
@
click=
"submitForm"
>
{{
language
==
0
?
'确定'
:
'Save'
}}
</el-button>
</div>
</
template
>
...
...
@@ -135,19 +147,19 @@
</template>
<
script
setup
>
import
{
reactive
,
ref
,
toRefs
,
watch
}
from
'vue'
import
{
getCurrentInstance
,
nextTick
,
onMounted
}
from
'@vue/runtime-core'
import
{
reactive
,
ref
,
toRefs
,
watch
}
from
'vue'
import
{
getCurrentInstance
,
nextTick
,
onMounted
}
from
'@vue/runtime-core'
import
*
as
match
from
'@/apiPc/match'
import
{
dayjs
,
ElMessage
}
from
'element-plus'
import
{
dayjs
,
ElMessage
}
from
'element-plus'
import
_
from
'lodash'
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
checkWdsf
,
getCaptchaSms
}
from
"@/apiPc/match"
;
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
checkWdsf
,
getCaptchaSms
}
from
'@/apiPc/match'
const
language
=
useStorage
(
'language'
,
0
)
const
certificates
=
ref
([
{
value
:
'0'
,
disabled
:
language
.
value
==
0
?
false
:
true
,
disabled
:
language
.
value
!=
0
,
label
:
language
.
value
==
0
?
'居民身份证'
:
'Resident ID card'
},
{
...
...
@@ -159,7 +171,7 @@ const certificates = ref([
label
:
language
.
value
==
0
?
'其他'
:
'Other'
}
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'submitForm'
])
const
data
=
reactive
({
form
:
{
...
...
@@ -167,9 +179,9 @@ const data = reactive({
// sex: '0'
},
rules_cn
:
{
xing
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
ming
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
countryId
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
xing
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
ming
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
countryId
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
// idcType: [{required: true, message: '必填', trigger: 'change'}],
// idcCode: [{required: true, message: '必填', trigger: 'blur'}],
// phone: [{required: true, message: '必填', trigger: 'blur'}],
...
...
@@ -177,13 +189,13 @@ const data = reactive({
// birth: [{required: true, message: '必填', trigger: 'change'}],
// address: [{ required: true, message: '必填', trigger: 'blur' }],
// picUrl: [{required: true, message: '必填', trigger: 'blur'}],
sex
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}]
sex
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}]
},
rules
:
{
xing
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
ming
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
countryId
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
xing
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
ming
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
countryId
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
// idcType: [{required: true, message: 'required', trigger: 'change'}],
// idcCode: [{required: true, message: 'required', trigger: 'blur'}],
// phone: [{required: true, message: 'required', trigger: 'blur'}],
...
...
@@ -191,20 +203,20 @@ const data = reactive({
// birth: [{required: true, message: 'required', trigger: 'change'}],
// address: [{ required: true, message: 'required', trigger: 'blur' }],
// picUrl: [{required: true, message: 'required', trigger: 'blur'}],
sex
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}]
sex
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}]
},
show
:
false
,
countryList
:
[],
regionsList
:
[],
labels
:
[
{
value
:
'0'
,
label
:
'运动员'
,
enlabel
:
'Athletes'
},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Head of team'
},
{
value
:
'4'
,
label
:
'队医'
,
enlabel
:
'Team doctor'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Interpreter'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
{
value
:
'0'
,
label
:
'运动员'
,
enlabel
:
'Athletes'
},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Head of team'
},
{
value
:
'4'
,
label
:
'队医'
,
enlabel
:
'Team doctor'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Interpreter'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
],
title
:
'添加选手信息'
,
groupId
:
'0'
,
...
...
@@ -224,13 +236,12 @@ const {
groupId
,
labels
,
uType
,
isMe
,
isCodeTrue
isMe
,
isCodeTrue
}
=
toRefs
(
data
)
const
card
=
ref
(
''
)
onMounted
(()
=>
{
getCountryList
()
getRegionsList
()
})
const
editgay
=
ref
(
false
)
const
editDis
=
ref
(
false
)
...
...
@@ -252,10 +263,10 @@ const open = (params) => {
match
.
getPersonInfoById
(
params
.
id
).
then
(
res
=>
{
form
.
value
=
res
.
data
form
.
value
.
id
=
params
.
id
if
(
form
.
value
.
wdsfMin
)
{
if
(
form
.
value
.
wdsfMin
)
{
editDis
.
value
=
true
}
if
(
form
.
value
.
idcType
==
'3'
)
{
if
(
form
.
value
.
idcType
==
'3'
)
{
form
.
value
.
idcType
=
''
form
.
value
.
idcCode
=
''
}
...
...
@@ -267,9 +278,8 @@ const open = (params) => {
}
else
{
editgay
.
value
=
false
}
}
defineExpose
({
open
})
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
...
...
@@ -285,17 +295,21 @@ watch(show, (value) => {
// proxy.$refs['dialogRef'].clearValidate()
})
})
function
disabledBirth
(
time
)
{
return
time
.
getTime
()
>
new
Date
().
getTime
()
}
function
resetCode
()
{
isCodeTrue
.
value
=
false
}
function
getCountryList
()
{
match
.
countryList
().
then
(
res
=>
{
countryList
.
value
=
res
.
data
})
}
function
checkCard
()
{
if
(
!
card
.
value
)
{
if
(
language
.
value
==
0
)
{
...
...
@@ -306,7 +320,7 @@ function checkCard() {
return
}
// isShow.value = true
checkWdsf
({
card
:
card
.
value
}).
then
(
res
=>
{
checkWdsf
({
card
:
card
.
value
}).
then
(
res
=>
{
if
(
res
.
data
.
wdsfFlag
==
'0'
)
{
if
(
language
.
value
==
0
)
{
ElMessage
.
warning
(
'WDSF会员号错误'
)
...
...
@@ -323,7 +337,7 @@ function checkCard() {
}
return
}
if
(
res
.
data
.
min
)
{
if
(
res
.
data
.
min
)
{
editDis
.
value
=
true
form
.
value
.
wdsfMin
=
res
.
data
.
min
form
.
value
.
xing
=
res
.
data
.
surname
...
...
@@ -338,6 +352,7 @@ function checkCard() {
}
})
}
function
getRegionsList
()
{
match
.
regionsList
().
then
(
res
=>
{
regionsList
.
value
=
res
.
data
...
...
@@ -364,15 +379,16 @@ function checkCode() {
}
function
changeCountry
()
{
if
(
form
.
value
.
countryId
==
240
)
{
if
(
form
.
value
.
countryId
==
240
)
{
form
.
value
.
idcType
=
'0'
}
}
function
giveBirthDay
()
{
// 判断身份证正确性/赋值生日
if
(
form
.
value
.
idcType
==
'0'
)
{
if
(
!
(
/
(
^
\d{15}
$
)
|
(
^
\d{17}([
0-9
]
|X
)
$
)
/
.
test
(
form
.
value
.
idcCode
)))
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入正确的身份证号码'
:
'Please enter the correct Resident ID card'
)
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入正确的身份证号码'
:
'Please enter the correct Resident ID card'
)
}
else
{
let
tmpStr
=
''
if
(
form
.
value
.
idcCode
.
length
==
15
)
{
...
...
@@ -384,7 +400,7 @@ function giveBirthDay() {
tmpStr
=
tmpStr
.
substring
(
0
,
4
)
+
'-'
+
tmpStr
.
substring
(
4
,
6
)
+
'-'
+
tmpStr
.
substring
(
6
)
}
form
.
value
.
birth
=
tmpStr
const
res
=
/^
(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([
0-9
]
|X
)
$/
if
(
form
.
value
.
idcCode
&&
res
.
test
(
form
.
value
.
idcCode
))
{
const
genderCode
=
form
.
value
.
idcCode
.
charAt
(
16
)
...
...
@@ -397,6 +413,7 @@ function giveBirthDay() {
}
}
}
function
submitForm
()
{
proxy
.
$refs
[
'dialogRef'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
...
...
@@ -413,24 +430,24 @@ function submitForm() {
// return
// }
// }
if
(
!
editDis
.
value
)
{
if
(
!
form
.
value
.
xing
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请填写姓'
:
'Please fill in surname'
)
if
(
!
editDis
.
value
)
{
if
(
!
form
.
value
.
xing
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请填写姓'
:
'Please fill in surname'
)
return
}
}
if
(
!
form
.
value
.
passportUrl
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请上传护照文件'
:
'Please upload your passport file'
)
if
(
!
form
.
value
.
passportUrl
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请上传护照文件'
:
'Please upload your passport file'
)
return
}
if
(
typeof
(
form
.
value
.
regionId
)
===
'object'
)
{
form
.
value
.
regionId
=
_
.
last
(
form
.
value
.
regionId
)
}
if
(
Array
.
isArray
(
form
.
value
.
passportUrl
))
{
if
(
Array
.
isArray
(
form
.
value
.
passportUrl
))
{
form
.
value
.
passportUrl
=
form
.
value
.
passportUrl
[
0
].
url
}
form
.
value
.
label
=
form
.
value
.
labelArr
.
toString
()
if
(
groupId
.
value
!=
0
)
{
// 团队
form
.
value
.
groupId
=
groupId
.
value
...
...
@@ -476,12 +493,12 @@ function cancel() {
<
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
;
...
...
@@ -492,7 +509,7 @@ function cancel() {
font-size
:
13px
;
color
:
#999
;
margin
:
10px
0
;
i
{
color
:
red
;
margin
:
0
4px
0
0
;
...
...
@@ -504,7 +521,7 @@ function cancel() {
width
:
320px
;
height
:
200px
;
}
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
320px
;
height
:
200px
;
...
...
@@ -523,7 +540,7 @@ function cancel() {
width
:
140px
;
height
:
200px
;
}
}
.el-form--inline
.el-form-item
{
...
...
@@ -536,12 +553,13 @@ function cancel() {
background
:
linear-gradient
(
#ed2c22
,
#fe6d45
);
margin-right
:
0
;
height
:
52px
;
span
{
color
:
#fff
;
}
}
}
.el-input-group__append
button
.el-button
,
.el-input-group__append
button
.el-button
:hover
{
color
:
var
(
--el-color-primary
);
background
:
#efefff
;
...
...
src/viewsPc/match/components/addSportman_en.vue
View file @
5f4bdea
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"1100px"
append-to-body
close-icon=
"CircleClose"
center
:close-on-click-modal=
"false"
class=
"pcloginpop"
destroy-on-close
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"title"
append-to-body
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
width=
"1100px"
>
<!-- 国际赛事-->
<el-form
ref=
"dialogRef"
:model=
"form"
:rules=
"language==0?rules:rules_cn"
label-width=
"120px"
inline
>
<!-- 国际赛事-->
<el-form
ref=
"dialogRef"
:model=
"form"
:rules=
"language==0?rules:rules_cn"
inline
label-width=
"120px"
>
<el-row
:gutter=
"30"
class=
"mt30"
>
<el-col
:lg=
"12"
class=
"touxiang"
>
<el-form-item
prop=
"picUrl"
:label=
"language==0?'个人照片':'Photo'
"
>
<el-form-item
:label=
"language==0?'个人照片':'Photo'"
prop=
"picUrl
"
>
<ImageUpload2
v-model=
"form.picUrl"
:crop-height=
"280"
:crop-width=
"200"
class=
"threeFour
"
:limit=
"1"
:is-show-tip=
"false
"
v-model=
"form.picUrl"
:crop-height=
"280"
:crop-width=
"200"
:is-show-tip=
"false
"
:limit=
"1"
class=
"threeFour
"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
v-if=
"form.id
"
>
<el-form-item
v-if=
"form.id"
:label=
"language==0?'WDSF会员号':'WDSF MIN'
"
>
{{
form
.
wdsfMin
}}
</el-form-item>
<el-form-item
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
required
v-else
>
<el-input
type=
"text"
v-model=
"form.wdsfMin"
@
change=
"resetCode"
>
<el-form-item
v-else
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
required
>
<el-input
v-model=
"form.wdsfMin"
type=
"text"
@
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-button
plain
style=
"width: 110px"
type=
"primary
"
@
click=
"checkCard"
>
<el-icon
v-if=
"isCodeTrue"
color=
"#67C23A"
size=
"16
"
>
<CircleCheckFilled
/>
</el-icon>
<span
v-else
>
{{
language
==
0
?
'校验卡号'
:
'Check Code'
}}
</span>
</el-button>
...
...
@@ -31,88 +32,94 @@
</el-input>
</el-form-item>
<el-form-item
:label=
"language==0?'姓氏':'Surname'"
prop=
"xing"
>
<el-input
v-model=
"form.xing"
disabled
/>
<el-input
v-model=
"form.xing"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'名':'Name'"
prop=
"ming"
required
>
<el-input
v-model=
"form.ming"
disabled
/>
<el-input
v-model=
"form.ming"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件类型':'ID Type'"
prop=
"idcType"
required
>
<el-select
v-model=
"form.idcType"
style=
"width: 100%;"
:disabled=
"editgay
"
>
<el-select
v-model=
"form.idcType"
:disabled=
"editgay"
style=
"width: 100%;
"
>
<el-option
v-for=
"item in certificates"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
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"
required
>
<el-input
v-model=
"form.idcCode"
@
blur=
"checkCode"
:disabled=
"editgay"
/>
<el-input
v-model=
"form.idcCode"
:disabled=
"editgay"
@
blur=
"checkCode"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
prop=
"sex"
>
<el-radio-group
v-model=
"form.sex"
:disabled=
"form.idcType=='0'"
>
<el-radio
value=
"0"
>
{{ language
==0?'女':
'female' }}
</el-radio>
<el-radio
value=
"1"
>
{{ language
==0?'男':
'male' }}
</el-radio>
<el-radio
value=
"0"
>
{{ language
== 0 ? '女' :
'female' }}
</el-radio>
<el-radio
value=
"1"
>
{{ language
== 0 ? '男' :
'male' }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:lg=
"12"
>
<el-form-item
:label=
"language==0?'出生日期':'Date of Birth'"
prop=
"birth"
>
<el-date-picker
v-model=
"form.birth"
:disabled=
"form.idcType=='0'"
style=
"width: 100%;"
:disabled-date=
"disabledBirth
"
type=
"date"
format=
"YYYY-MM-DD
"
value-format=
"YYYY-MM-DD"
v-model=
"form.birth"
:disabled=
"form.idcType=='0'"
:disabled-date=
"disabledBirth"
format=
"YYYY-MM-DD
"
style=
"width: 100%;"
type=
"date
"
value-format=
"YYYY-MM-DD"
/>
</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-option
v-for=
"l in labels"
:key=
"l.value"
:
label=
"language==0?l.label:l.enlabel"
:value=
"l.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'手机号码':'Phone'"
prop=
"phone"
>
<el-input
v-model=
"form.phone"
type=
"number"
/>
<el-input
v-model=
"form.phone"
type=
"number"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'所属国家/地区':'Country'"
prop=
"countryId"
required
>
<el-select
disabled
filterable
v-model=
"form.countryId"
style=
"width: 100%;"
@
change=
"changeCountryId"
>
<el-option
v-for=
"item in countryList"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"item.id"
/>
<el-select
v-model=
"form.countryId"
disabled
filterable
style=
"width: 100%;"
@
change=
"changeCountryId"
>
<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"
>
<el-cascader
v-if=
"form.countryId == 240"
v-model=
"form.regionId"
style=
"width: 100%;margin-bottom: 15px"
:options=
"regionsList"
:props=
"{ label:'text' }"
<el-cascader
v-if=
"form.countryId == 240"
v-model=
"form.regionId"
:options=
"regionsList"
:props=
"{ label:'text' }"
style=
"width: 100%;margin-bottom: 15px"
/>
<el-input
v-model=
"form.address"
type=
"textarea"
:rows=
"4"
/>
<el-input
v-model=
"form.address"
:rows=
"4"
type=
"textarea"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<Vcode
:show=
"isShow"
:z-index=
"3000"
@
success=
"codeSuccess()"
></Vcode
>
<Vcode
:show=
"isShow"
:z-index=
"3000"
@
success=
"codeSuccess()"
/
>
<
template
#
footer
>
<div
class=
"dialog-footer text-center"
>
<el-button
type=
"primary"
class=
"btn-lineG w200px"
round
@
click=
"submitForm"
>
{{
language
==
0
?
'确定'
:
'Save'
}}
</el-button>
<el-button
class=
"btn-lineG w200px"
round
type=
"primary"
@
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
{
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
{
ElMessage
}
from
'element-plus'
import
_
from
'lodash'
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
checkWdsf
,
getCaptchaSms
}
from
"@/apiPc/match"
;
const
language
=
useStorage
(
'language'
,
0
)
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
checkWdsf
,
getCaptchaSms
}
from
'@/apiPc/match'
const
language
=
useStorage
(
'language'
,
0
)
const
certificates
=
ref
([
{
value
:
'0'
,
...
...
@@ -127,50 +134,62 @@ const certificates = ref([
label
:
language
.
value
==
0
?
'其他'
:
'Other'
}
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'submitForm'
])
const
data
=
reactive
({
form
:
{
// countryId: 240
sex
:
'0'
sex
:
'0'
},
rules_cn
:{
rules_cn
:
{
// xing: [{required: true, message: 'required', trigger: 'blur'}],
ming
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
ming
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
// countryId: [{required: true, message: 'required', trigger: 'change'}],
idcType
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
idcType
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'blur'
}],
// phone: [{required: true, message: 'required', trigger: 'blur'}],
// regionId: [{ required: true, message: 'required', trigger: 'change' }],
// birth: [{required: true, message: 'required', trigger: 'change'}],
// address: [{ required: true, message: 'required', trigger: 'blur' }],
// picUrl: [{required: true, message: 'required', trigger: 'blur'}],
sex
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}]
sex
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}],
labelArr
:
[{
required
:
true
,
message
:
'required'
,
trigger
:
'change'
}]
},
show
:
false
,
countryList
:
[],
regionsList
:
[],
labels
:
[
{
value
:
'0'
,
label
:
'运动员'
,
enlabel
:
'Sportsman'
},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Head Of Team'
},
{
value
:
'4'
,
label
:
'队医'
,
enlabel
:
'Team Doctor'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Interpreter'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
{
value
:
'0'
,
label
:
'运动员'
,
enlabel
:
'Sportsman'
},
{
value
:
'1'
,
label
:
'教练'
,
enlabel
:
'Coach'
},
{
value
:
'2'
,
label
:
'领队'
,
enlabel
:
'Head Of Team'
},
{
value
:
'4'
,
label
:
'队医'
,
enlabel
:
'Team Doctor'
},
{
value
:
'5'
,
label
:
'翻译'
,
enlabel
:
'Interpreter'
},
{
value
:
'6'
,
label
:
'官员'
,
enlabel
:
'Official'
},
{
value
:
'3'
,
label
:
'其他'
,
enlabel
:
'Other'
}
],
title
:
'添加选手信息'
,
groupId
:
'0'
,
showRequire
:
false
,
isMe
:
false
isMe
:
false
})
const
{
showRequire
,
form
,
rules
,
rules_cn
,
show
,
countryList
,
regionsList
,
title
,
groupId
,
labels
,
uType
,
isMe
}
=
toRefs
(
data
)
const
{
showRequire
,
form
,
rules
,
rules_cn
,
show
,
countryList
,
regionsList
,
title
,
groupId
,
labels
,
uType
,
isMe
}
=
toRefs
(
data
)
const
isShow
=
ref
(
false
)
onMounted
(()
=>
{
getCountryList
()
getRegionsList
()
})
const
editgay
=
ref
(
false
)
const
open
=
(
params
)
=>
{
...
...
@@ -179,15 +198,15 @@ const open = (params) => {
title
.
value
=
params
.
title
groupId
.
value
=
params
.
groupId
||
'0'
isMe
.
value
=
params
.
isMe
if
(
params
.
label
)
{
form
.
value
.
labelArr
=
[
params
.
label
]
if
(
params
.
label
)
{
form
.
value
.
labelArr
=
[
params
.
label
]
}
if
(
language
.
value
==
0
)
{
if
(
language
.
value
==
0
)
{
form
.
value
.
countryId
=
240
form
.
value
.
idcType
=
'0'
}
if
(
isMe
.
value
)
{
//个人
if
(
isMe
.
value
)
{
//
个人
match
.
getMyPersonInfo
().
then
(
res
=>
{
form
.
value
=
res
.
data
form
.
value
.
id
=
res
.
data
.
id
...
...
@@ -214,13 +233,13 @@ const open = (params) => {
}
}
}
defineExpose
({
open
})
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
sex
:
'0'
sex
:
'0'
}
if
(
language
.
value
==
0
)
{
if
(
language
.
value
==
0
)
{
form
.
value
.
countryId
=
240
}
}
...
...
@@ -228,6 +247,7 @@ watch(show, (value) => {
// proxy.$refs['dialogRef'].clearValidate()
})
})
function
checkCard
()
{
if
(
!
form
.
value
.
card
)
{
if
(
language
.
value
==
0
)
{
...
...
@@ -239,26 +259,27 @@ function checkCard() {
}
isShow
.
value
=
true
}
function
codeSuccess
(
msg
)
{
console
.
log
(
'验证通过'
+
msg
)
;
console
.
log
(
'验证通过'
+
msg
)
isShow
.
value
=
false
checkWdsf
({
card
:
form
.
value
.
wdsfMin
}).
then
(
res
=>
{
form
.
value
=
res
.
data
if
(
form
.
value
.
passportUrl
){
}
if
(
!
form
.
value
.
sex
)
{
form
.
value
.
sex
=
'0'
}
if
(
form
.
value
.
wdsfFlag
==
'0'
)
{
form
.
value
=
0
if
(
language
.
value
==
0
)
{
ElMessage
.
warning
(
'WDSF卡号错误'
)
}
else
{
ElMessage
.
warning
(
'WDSF MIN is Error'
)
}
checkWdsf
({
card
:
form
.
value
.
wdsfMin
}).
then
(
res
=>
{
form
.
value
=
res
.
data
if
(
form
.
value
.
passportUrl
)
{
}
if
(
!
form
.
value
.
sex
)
{
form
.
value
.
sex
=
'0'
}
if
(
form
.
value
.
wdsfFlag
==
'0'
)
{
form
.
value
=
0
if
(
language
.
value
==
0
)
{
ElMessage
.
warning
(
'WDSF卡号错误'
)
}
else
{
ElMessage
.
warning
(
'WDSF MIN is Error'
)
}
})
}
})
}
...
...
@@ -281,7 +302,7 @@ function getRegionsList() {
}
function
checkCode
()
{
if
(
form
.
value
.
idcType
==
'0'
&&
form
.
value
.
idcCode
)
{
if
(
form
.
value
.
idcType
==
'0'
&&
form
.
value
.
idcCode
)
{
giveBirthDay
()
var
obj
=
{
idcType
:
form
.
value
.
idcType
,
...
...
@@ -315,7 +336,7 @@ function giveBirthDay() {
tmpStr
=
tmpStr
.
substring
(
0
,
4
)
+
'-'
+
tmpStr
.
substring
(
4
,
6
)
+
'-'
+
tmpStr
.
substring
(
6
)
}
form
.
value
.
birth
=
tmpStr
const
res
=
/^
(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([
0-9
]
|X
)
$/
if
(
form
.
value
.
idcCode
&&
res
.
test
(
form
.
value
.
idcCode
))
{
const
genderCode
=
form
.
value
.
idcCode
.
charAt
(
16
)
...
...
@@ -341,21 +362,21 @@ function submitForm() {
if
(
showRequire
.
value
)
{
var
pattern
=
/^1
[
3456789
]\d{9}
$/
if
(
!
pattern
.
test
(
form
.
value
.
phone
))
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入正确的手机号'
:
'Please enter the correct mobile phone number'
)
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入正确的手机号'
:
'Please enter the correct mobile phone number'
)
return
}
}
if
(
typeof
(
form
.
value
.
regionId
)
===
'object'
)
{
form
.
value
.
regionId
=
_
.
last
(
form
.
value
.
regionId
)
}
form
.
value
.
label
=
form
.
value
.
labelArr
.
toString
()
if
(
groupId
.
value
!=
0
)
{
// 团队
form
.
value
.
groupId
=
groupId
.
value
match
.
savePersonForMyGroup
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
...
...
@@ -363,20 +384,20 @@ function submitForm() {
if
(
editgay
.
value
)
{
// id不是0
match
.
editPersonInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
else
{
if
(
isMe
.
value
)
{
if
(
isMe
.
value
)
{
match
.
saveMyBaseInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
}
else
{
match
.
savePersonForMyPerson
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
emit
(
'submitForm'
)
})
...
...
@@ -390,6 +411,7 @@ function submitForm() {
function
cancel
()
{
show
.
value
=
false
}
function
disabledBirth
(
time
)
{
return
time
.
getTime
()
>
new
Date
().
getTime
()
}
...
...
@@ -398,12 +420,12 @@ function disabledBirth(time) {
<
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
;
...
...
@@ -414,7 +436,7 @@ function disabledBirth(time) {
font-size
:
13px
;
color
:
#999
;
margin
:
10px
0
;
i
{
color
:
red
;
margin
:
0
4px
0
0
;
...
...
@@ -426,7 +448,7 @@ function disabledBirth(time) {
width
:
320px
;
height
:
200px
;
}
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
320px
;
height
:
200px
;
...
...
@@ -445,7 +467,7 @@ function disabledBirth(time) {
width
:
140px
;
height
:
200px
;
}
}
.el-form--inline
.el-form-item
{
...
...
@@ -458,12 +480,13 @@ function disabledBirth(time) {
background
:
linear-gradient
(
#ed2c22
,
#fe6d45
);
margin-right
:
0
;
height
:
52px
;
span
{
color
:
#fff
;
}
}
}
.el-input-group__append
button
.el-button
,
.el-input-group__append
button
.el-button
:hover
{
color
:
var
(
--el-color-primary
);
background
:
#efefff
;
...
...
src/viewsPc/match/components/addWdsf.vue
View file @
5f4bdea
...
...
@@ -72,7 +72,7 @@
<el-form-item
:label=
"language==0?'有效证件':'Valid Passport'"
required
>
<image-upload
ref=
"uploadPassportRef"
v-model=
"form.passportUrl"
:action=
"'/common/getPersonInfoFromCert/
3
'"
ref=
"uploadPassportRef"
v-model=
"form.passportUrl"
:action=
"'/common/getPersonInfoFromCert/
6
'"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
...
...
@@ -87,6 +87,10 @@
</div>
</el-form-item>
<el-form-item
:label=
"language==0?'姓名':'Name'"
required
>
<el-input
v-model=
"form.certName"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
required
>
<el-radio-group
v-model=
"form.sex"
>
<el-radio
value=
"0"
>
{{ language == 0 ? '女' : 'female' }}
</el-radio>
...
...
@@ -275,6 +279,10 @@ function submitForm() {
ElMessage
.
warning
(
language
.
value
==
0
?
'请选择性别'
:
'Please select your gender'
)
return
}
if
(
!
form
.
value
.
certName
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入姓名'
:
'Please enter your name'
)
return
}
if
(
!
form
.
value
.
passportUrl
||
form
.
value
.
passportUrl
==
''
||
form
.
value
.
passportUrl
.
length
==
0
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请上传证件'
:
'Please upload passport file'
)
return
...
...
src/viewsPc/match/components/allSportsmanList.vue
View file @
5f4bdea
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"1000px"
append-to-body
@
close=
"close"
>
<el-dialog
v-model=
"show"
:title=
"title"
append-to-body
width=
"1000px"
@
close=
"close"
>
<div
class=
"funcBtns"
>
<el-button
type=
"primary"
@
click=
"addMember"
>
{{
language
==
0
?
'添加选手'
:
'Add Player'
}}
</el-button>
<!--
<el-button
type=
"primary"
plain
@
click=
"importSportman"
v-if=
"!isNational"
>
-->
<!--
{{
language
==
0
?
'导入选手'
:
'Import Player'
}}
-->
<!--
</el-button>
-->
<!--
<el-button
type=
"primary"
plain
@
click=
"importSportman"
v-if=
"!isNational"
>
-->
<!--
{{
language
==
0
?
'导入选手'
:
'Import 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-input
v-model=
"query.realName"
clearable
style=
"width: 120px;"
/>
</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"
>
<el-form-item
v-if=
"!isNational"
:label=
"language==0?'证件类型':'ID Type'
"
>
<el-select
v-model=
"query.idcType"
clearable
style=
"width: 100px;"
@
change=
"getList"
>
<el-option
v-for=
"item in certificates"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
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.idcCode"
style=
"width: 120px;"
clearable
/>
<el-form-item
v-if=
"!isNational"
:label=
"language==0?'证件号码':'ID NO.'
"
>
<el-input
v-model=
"query.idcCode"
clearable
style=
"width: 120px;"
/>
</el-form-item>
<!--
<el-form-item
label=
"角色"
>
-->
<!--
<el-input
v-model=
"query.label"
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-button
type=
"primary"
@
click=
"getList"
>
{{
language
==
0
?
'查询'
:
'Search'
}}
</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"
>
<!--
<el-table-column
type=
"selection"
:label=
"language==0?'选择':'Selection'"
:selectable=
"selectable"
/>
-->
<el-table-column
align=
"center"
type=
"index"
:label=
"language==0?'序号':'Index'"
width=
"70"
:selectable=
"selectable"
/>
<el-table-column
v-if=
"isNational"
:label=
"language==0?'WDSF 会员号':'WDSF MIN'"
prop=
"wdsfMin"
width=
"100"
/>
<el-table-column
align=
"center"
v-if=
"!isNational"
:label=
"language==0?'姓名':'Real Name'"
prop=
"realName"
min-width=
"100"
/>
<el-table-column
align=
"center"
v-if=
"isNational"
:label=
"language==0?'姓氏':'Surname'"
prop=
"xing"
min-width=
"100"
/>
<el-table-column
align=
"center"
v-if=
"isNational"
: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'"
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"
/>
<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"
>
<!--
<el-table-column
type=
"selection"
:label=
"language==0?'选择':'Selection'"
:selectable=
"selectable"
/>
-->
<el-table-column
:label=
"language==0?'序号':'Index'"
:selectable=
"selectable"
align=
"center"
type=
"index"
width=
"70"
/>
<el-table-column
v-if=
"isNational"
:label=
"language==0?'WDSF 会员号':'WDSF MIN'"
prop=
"wdsfMin"
width=
"100"
/>
<el-table-column
v-if=
"!isNational"
:label=
"language==0?'姓名':'Real Name'"
align=
"center"
min-width=
"100"
prop=
"realName"
/>
<el-table-column
v-if=
"isNational"
:label=
"language==0?'姓氏':'Surname'"
align=
"center"
min-width=
"100"
prop=
"xing"
/>
<el-table-column
v-if=
"isNational"
:label=
"language==0?'名':'Name'"
align=
"center"
min-width=
"100"
prop=
"ming"
/>
<el-table-column
v-if=
"isNational"
:label=
"language==0?'代表':'Representing'"
align=
"center"
min-width=
"120"
prop=
"representing"
/>
<el-table-column
v-if=
"!isNational"
:label=
"language==0?'所属国家/地区':'Nationality'"
align=
"center"
min-width=
"110"
prop=
"countryName"
/>
<el-table-column
:label=
"language==0?'性别':'Gender'"
prop=
"sexStr"
/>
<el-table-column
v-if=
"isNational"
:label=
"language==0?'年龄组':'Age group'"
align=
"center"
min-width=
"100"
prop=
"ageGroup"
/>
<el-table-column
v-if=
"isNational"
:label=
"language==0?'舞种':'Division'"
align=
"center"
min-width=
"100"
prop=
"division"
/>
<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>
-->
...
...
@@ -70,60 +94,61 @@
<!--
</div>
-->
<!--
</
template
>
-->
<!-- </el-table-column>-->
<el-table-column
:label=
"language==0?'操作':'Actions'"
width=
"180"
fixed=
"right"
align=
"center
"
>
<el-table-column
:label=
"language==0?'操作':'Actions'"
align=
"center"
fixed=
"right"
width=
"180
"
>
<
template
#
default=
"scope"
>
<el-button
link
v-if=
"!isNational&&(!scope.row.phone)"
type=
"danger"
@
click=
"editPerson(scope.row)"
>
{{
language
==
0
?
'完善信息'
:
'Complete'
}}
<el-button
v-if=
"!isNational&&(!scope.row.phone)"
link
type=
"danger"
@
click=
"editPerson(scope.row)"
>
{{
language
==
0
?
'完善信息'
:
'Complete'
}}
</el-button>
<el-button
link
v-else
type=
"primary"
@
click=
"editPerson(scope.row)"
>
{{
language
==
0
?
'编辑'
:
'Edit'
}}
<el-button
v-else
link
type=
"primary"
@
click=
"editPerson(scope.row)"
>
{{
language
==
0
?
'编辑'
:
'Edit'
}}
</el-button>
<el-button
link
type=
"primary"
@
click=
"delperson(scope.row)"
>
{{
language
==
0
?
'删除'
:
'Delete'
}}
<el-button
link
type=
"primary"
@
click=
"delperson(scope.row)"
>
{{
language
==
0
?
'删除'
:
'Delete'
}}
</el-button>
</
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"
v-show=
"total>0"
v-model:limit=
"query.pageSize
"
v-model:page=
"query.pageNum
"
: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>-->
<!-- <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-coach
ref=
"dialogAddCoach"
@
submitForm=
"getList"
/>
<!-- 国际赛运动员-->
<add-wdsf
ref=
"dialogAddWdsf"
@
submitForm=
"getList"
/>
<Import
ref=
"dialogImportProps"
@
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
{
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
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
const
language
=
useStorage
(
'language'
,
0
)
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'transfer'
])
const
language
=
useStorage
(
'language'
,
0
)
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'transfer'
])
const
data
=
reactive
({
query
:
{
label
:
'0'
,
label
:
'0'
,
pageSize
:
10
,
pageNum
:
1
pageNum
:
1
},
tableData
:
[],
show
:
false
,
...
...
@@ -131,9 +156,9 @@ const data = reactive({
title
:
'选择运动员'
,
noPhotoCanSign
:
0
,
total
:
0
,
isNational
:
false
isNational
:
false
})
const
{
query
,
tableData
,
show
,
title
,
loading
,
noPhotoCanSign
,
total
,
isNational
}
=
toRefs
(
data
)
const
{
query
,
tableData
,
show
,
title
,
loading
,
noPhotoCanSign
,
total
,
isNational
}
=
toRefs
(
data
)
const
certificates
=
ref
([
{
value
:
'0'
,
...
...
@@ -201,9 +226,11 @@ function submit() {
// emit('submitForm', choosedList)
show
.
value
=
false
}
function
close
()
{
emit
(
'submitForm'
)
}
function
cancel
()
{
show
.
value
=
false
}
...
...
@@ -212,24 +239,25 @@ function editPerson(row) {
console
.
log
(
isNational
.
value
)
const
params
=
{
id
:
row
.
id
,
title
:
language
.
value
==
0
?
'编辑人员'
:
'Edit Person'
,
title
:
language
.
value
==
0
?
'编辑人员'
:
'Edit Person'
,
groupId
:
groupId
,
label
:
'0'
}
if
(
isNational
.
value
){
if
(
isNational
.
value
)
{
proxy
.
$refs
[
'dialogAddWdsf'
].
open
(
params
)
}
else
{
proxy
.
$refs
[
'dialogAddCoach'
].
open
(
params
)
}
}
function
delperson
(
p
)
{
//删除团队下的人
//
删除团队下的人
let
text
=
''
let
t
=
'提示'
let
s
=
'确定'
let
c
=
'取消'
let
msg
=
'操作成功'
if
(
language
.
value
==
0
)
{
if
(
language
.
value
==
0
)
{
text
=
`确定删除
${
p
.
realName
}
吗?`
}
else
{
text
=
`Delete
${
p
.
realName
}
?`
...
...
@@ -249,15 +277,16 @@ function delperson(p) {
})
})
}
function
addMember
()
{
console
.
log
(
isNational
.
value
)
const
params
=
{
title
:
language
.
value
==
0
?
'添加人员'
:
'Add'
,
title
:
language
.
value
==
0
?
'添加人员'
:
'Add'
,
id
:
0
,
groupId
:
groupId
,
label
:
'0'
}
if
(
isNational
.
value
){
if
(
isNational
.
value
)
{
proxy
.
$refs
[
'dialogAddWdsf'
].
open
(
params
)
}
else
{
proxy
.
$refs
[
'dialogAddCoach'
].
open
(
params
)
...
...
@@ -272,7 +301,7 @@ function importSportman() {
proxy
.
$refs
[
'dialogImportProps'
].
open
(
params
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
.el-form--inline
.el-form-item
{
width
:
auto
;
}
...
...
src/viewsPc/register/personal.vue
View file @
5f4bdea
...
...
@@ -71,7 +71,7 @@
<el-form-item
:label=
"language==0?'有效证件':'Valid Passport'"
required
>
<image-upload
v-model=
"wdsfData.passportUrl"
:action=
"'/common/getPersonInfoFromCert/
3
'"
v-model=
"wdsfData.passportUrl"
:action=
"'/common/getPersonInfoFromCert/
6
'"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
...
...
@@ -87,6 +87,9 @@
<el-form-item
:label=
"language==0?'证件号':'Passport number'"
required
>
<el-input
v-model=
"wdsfData.passportNumber"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'姓名':'Name'"
required
>
<el-input
v-model
.
trim=
"wdsfData.certName"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
required
>
<el-radio-group
v-model=
"wdsfData.sex"
>
<el-radio
value=
"0"
>
{{ language == 0 ? '女' : 'female' }}
</el-radio>
...
...
@@ -177,7 +180,8 @@
</el-form>
</div>
<div
class=
"text-center"
>
<el-button
class=
"primary-kx"
round
@
click=
"goBack"
>
{{ language == 0 ? '取消' : 'Cancel' }}
</el-button>
<el-button
class=
"primary-kx"
round
@
click=
"goBack"
>
{{ language == 0 ? '取消' : 'Cancel' }}
</el-button>
<el-button
v-if=
"wdsfData.wdsfFlag=='1'"
class=
"btn-lineG w200px"
round
type=
"primary"
@
click=
"bigNext"
>
<span
v-if=
"matchId=='0'"
>
{{ language == 0 ? '立即注册' : 'Register Now' }}
</span>
<span
v-else
>
{{ language == 0 ? '下一步' : 'Next' }}
</span>
...
...
@@ -361,14 +365,18 @@ function bigNext() {
ElMessage
.
warning
(
language
.
value
==
0
?
'请选择性别'
:
'Please select your gender'
)
return
}
if
(
!
wdsfData
.
value
.
certName
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入姓名'
:
'Please enter your name'
)
return
}
if
(
user
&&
user
.
utype
==
'3'
)
{
const
obj
=
{
card
:
form
.
value
.
card
,
userId
:
user
.
userId
,
picUrl
:
wdsfData
.
value
.
picUrl
,
code
:
form
.
value
.
code
,
sex
:
wdsfData
.
value
.
sex
,
birth
:
wdsfData
.
value
.
birthday
,
certName
:
wdsfData
.
value
.
certName
,
passportNumber
:
wdsfData
.
value
.
passportNumber
}
if
(
Array
.
isArray
(
wdsfData
.
value
.
passportUrl
))
{
...
...
@@ -409,6 +417,7 @@ function next() {
code
:
form
.
value
.
code
,
password
:
form
.
value
.
password
,
sex
:
wdsfData
.
value
.
sex
,
certName
:
wdsfData
.
value
.
certName
,
birth
:
wdsfData
.
value
.
birthday
,
passportNumber
:
wdsfData
.
value
.
passportNumber
}
...
...
@@ -485,6 +494,7 @@ const ocrSuccess = (res) => {
wdsfData
.
value
.
passportNumber
=
res
.
data
.
code
wdsfData
.
value
.
birthday
=
res
.
data
.
birth
?.
slice
(
0
,
10
)
wdsfData
.
value
.
sex
=
res
.
data
.
sex
wdsfData
.
value
.
certName
=
res
.
data
.
name
}
else
if
(
res
.
code
==
500
)
{
ElMessage
.
warning
(
res
.
msg
)
}
...
...
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