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
6742202d
authored
2025-07-29 11:46:15 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
邮箱正则
1 parent
17f4f1b8
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
64 additions
and
54 deletions
src/viewsPc/match/components/affix-invitation.vue
src/viewsPc/match/components/affix-invitation.vue
View file @
6742202
<
template
>
<el-dialog
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"title"
append-to-body
center
class=
"pcloginpop"
close-icon=
"CircleClose"
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
>
<div
class=
"boxInvitation"
>
<div
v-if=
"showR"
class=
"text-center pd20"
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
/>
<!-- 提交成功等待审核-->
...
...
@@ -19,13 +19,13 @@
<br/>
Thank you so much for your kind patience.
</h4>
<div
class=
"red"
>
To check your application status, please go to Account > Personal > Visa Review Record, or
refer to your email for any updates.
</div>
</div>
<el-form
v-else
ref=
"iformRef"
:model=
"form"
:rules=
"rules"
label-position=
"top"
>
<el-form-item
:label=
"language==0?'申请人类别':'Applicant Type'"
prop=
"applicatType"
required
>
<el-select
v-model=
"form.applicatType"
@
change=
"changeApplicatType"
>
...
...
@@ -52,14 +52,14 @@
<file-upload
v-model=
"form.invitationFileArr"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
></file-upload>
</el-form-item>
<!--
<el-form-item
:label=
"language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'"
prop=
"chinese"
--
>
<!-- required>-->
<!--
<el-radio-group
v-model=
"form.chinese"
>
-->
<!--
<el-radio
value=
"1"
>
{{
language
==
0
?
'是'
:
'Yes'
}}
</el-radio>
-->
<!--
<el-radio
value=
"0"
>
{{
language
==
0
?
'否'
:
'No'
}}
</el-radio>
-->
<!--
</el-radio-group>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'"
prop=
"chinese"
--
>
<!-- required>-->
<!--
<el-radio-group
v-model=
"form.chinese"
>
-->
<!--
<el-radio
value=
"1"
>
{{
language
==
0
?
'是'
:
'Yes'
}}
</el-radio>
-->
<!--
<el-radio
value=
"0"
>
{{
language
==
0
?
'否'
:
'No'
}}
</el-radio>
-->
<!--
</el-radio-group>
-->
<!--
</el-form-item>
-->
<!-- 一般信息-->
<el-form-item
:label=
"language==0?'国家/地区协会名':'MNA/Team Name'"
:required=
"form.applicatType==1"
prop=
"associationCode"
>
...
...
@@ -110,7 +110,7 @@
<el-form-item
:label=
"language==0?'中国大使馆邮箱':'Chinese Embassy Email'"
prop=
"embassyEmail"
required
>
<el-input
v-model=
"form.embassyEmail"
/>
</el-form-item>
<!--上传护照,多张-->
<div
class=
"cptVisaInfoBosTable"
>
<el-form-item
:label=
"language==0?'有效证件':'Passport Copy'"
required
>
...
...
@@ -268,9 +268,9 @@
</
template
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.issueDate"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
size=
"small"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
v-model=
"scope.row.issueDate"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
size=
"small"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</
template
>
</el-table-column>
...
...
@@ -282,9 +282,9 @@
</
template
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.expiryDate"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
size=
"small"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
v-model=
"scope.row.expiryDate"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
size=
"small"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</
template
>
</el-table-column>
...
...
@@ -298,7 +298,8 @@
</div>
<el-form-item
:label=
"language==0?'备注':'Remarks'"
prop=
"remarks3"
>
<div
class=
"red"
>
You may leave any message here, or let us know if you require additional documents for your visa application.
You may leave any message here, or let us know if you require additional documents for your visa
application.
</div>
<el-input
v-model=
"form.remarks3"
/>
</el-form-item>
...
...
@@ -307,8 +308,8 @@
<file-upload
v-model=
"form.files"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
/>
</el-form-item>
<div
class=
"text-center"
>
<el-button
:disabled=
"!cptId"
class=
"btn-lineG"
round
size=
"large"
type=
"primary"
@
click=
"submit"
>
{{ language == 0 ? '提交' : 'SUBMIT' }}
...
...
@@ -344,7 +345,7 @@ const {proxy} = getCurrentInstance()
const
language
=
useStorage
(
'language'
,
0
)
const
form
=
ref
({
gender
:
'0'
,
chinese
:
'0'
,
chinese
:
'0'
,
cptVisaInfoBos
:
[],
email
:
user
?.
email
,
})
...
...
@@ -356,16 +357,16 @@ const countrys = ref([])
const
mnaList
=
ref
([])
const
cptId
=
ref
(
''
)
const
rules
=
ref
(
{
nationality
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
name
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},],
email
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},],
birth
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
passportNo
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},],
passportCopy
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请上传'
:
'Please Upload'
},],
arrival
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
departure
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
})
{
nationality
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
name
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},],
email
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},],
birth
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
passportNo
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},],
passportCopy
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请上传'
:
'Please Upload'
},],
arrival
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
departure
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
})
const
open
=
(
params
)
=>
{
show
.
value
=
true
title
.
value
=
params
.
title
...
...
@@ -375,7 +376,7 @@ const open = (params) => {
}
form
.
value
=
{
gender
:
'0'
,
chinese
:
'0'
,
chinese
:
'0'
,
cptVisaInfoBos
:
[],
email
:
user
?.
email
,
userId
:
user
?.
userId
,
...
...
@@ -391,7 +392,7 @@ defineExpose({
show
.
value
=
true
showR
.
value
=
false
title
.
value
=
language
.
value
==
0
?
'邀请函申请'
:
'Visa Invitation Letter '
getCountryList
()
getMNAList
()
getInvitation
(
id
).
then
((
res
=>
{
...
...
@@ -403,11 +404,11 @@ defineExpose({
_
.
each
(
res
.
data
,
(
item
)
=>
{
delete
item
.
id
})
if
(
form
.
value
.
invitationFile
)
{
form
.
value
.
invitationFileArr
=
JSON
.
parse
(
form
.
value
.
invitationFile
)
}
form
.
value
.
cptVisaInfoBos
=
res
.
data
})
})
...
...
@@ -464,23 +465,23 @@ const submit = () => {
return
;
}
}
if
(
form
.
value
.
files
&&
Array
.
isArray
(
form
.
value
.
files
))
{
form
.
value
.
files
=
form
.
value
.
files
[
0
]?.
url
}
if
(
form
.
value
.
invitationFileArr
)
{
form
.
value
.
invitationFile
=
JSON
.
stringify
(
form
.
value
.
invitationFileArr
)
}
proxy
.
$refs
.
iformRef
.
validate
(
valid
=>
{
if
(
valid
)
{
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'请确认信息正确并提交吗?'
:
'Please confirm that the information is correct and submit it'
,
language
.
value
==
0
?
'提示'
:
'Tips'
,
{
confirmButtonText
:
language
.
value
==
0
?
'确定'
:
'Confirm'
,
cancelButtonText
:
language
.
value
==
0
?
'取消'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
language
.
value
==
0
?
'请确认信息正确并提交吗?'
:
'Please confirm that the information is correct and submit it'
,
language
.
value
==
0
?
'提示'
:
'Tips'
,
{
confirmButtonText
:
language
.
value
==
0
?
'确定'
:
'Confirm'
,
cancelButtonText
:
language
.
value
==
0
?
'取消'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
form
.
value
.
cptId
=
cptId
.
value
addInvitation
(
form
.
value
).
then
((
res
)
=>
{
if
(
res
.
data
==
-
200
)
{
...
...
@@ -514,7 +515,7 @@ const getPassportInfo = (res) => {
}
else
{
if
(
res
.
data
)
{
ElMessage
.
error
(
res
.
data
.
code
)
let
obj
=
{
position
:
''
,
lastName
:
''
,
...
...
@@ -543,9 +544,18 @@ function sendEmail() {
ElMessage
.
error
(
language
.
value
==
0
?
'请输入邮箱'
:
'Please enter contact Email'
)
return
}
if
(
!
/^
[
a-zA-Z0-9_-
]
+@
[
a-zA-Z0-9_-
]
+
(\.[
a-zA-Z0-9_-
]
+
)
+$/
.
test
(
form
.
value
.
email
))
{
ElMessage
.
error
(
language
.
value
==
0
?
'请输入正确的邮箱'
:
'Please enter the correct contact email'
)
return
// if (!/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(form.value.email)) {
// ElMessage.error(language.value == 0 ? '请输入正确的邮箱' : 'Please enter the correct contact email')
// return
// }
if
(
form
.
value
.
email
.
indexOf
(
'@'
)
==
-
1
)
{
if
(
language
.
value
==
0
)
{
return
ElMessage
.
error
(
'请填写正确的邮箱'
)
}
else
{
return
ElMessage
.
error
(
'Please fill in the correct email'
)
}
}
codeloading
.
value
=
true
sendVisaCode
({
email
:
form
.
value
.
email
}).
then
(
res
=>
{
...
...
@@ -593,7 +603,7 @@ h4 {
padding
:
10px
;
margin-bottom
:
20px
;
border
:
1px
dashed
#ebeef5
;
:deep(.el-table
.el-table__header-wrapper
th)
{
font-size
:
12px
;
}
...
...
@@ -607,6 +617,6 @@ h4 {
.codeBtn
{
background-color
:
#0540EC
!important
;
color
:
#fff
!important
;
}
</
style
>
...
...
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