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
d7fa7cbe
authored
2025-08-06 17:29:34 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
世锦赛
1 parent
1418e350
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
209 additions
and
30 deletions
src/viewsPc/match/components/affix-invitation.vue
src/viewsPc/match/components/affixInvitationDialog.vue
vite.config.js
src/viewsPc/match/components/affix-invitation.vue
View file @
d7fa7cb
...
...
@@ -156,7 +156,8 @@
<el-table-column
:label=
"language==0?'入境日期':'Date ofEntrye'"
prop=
""
width=
"130px"
>
<
template
#
header
>
<div
class=
"esp"
>
<span
class=
"red"
>
*
</span>
Date ofEntrye
<span
class=
"red"
>
*
</span>
Date ofEntrye
<br>
<span
class=
"red"
>
YYYY-MM-DD
</span>
</div>
</
template
>
<
template
#
default=
"scope"
>
...
...
@@ -173,7 +174,8 @@
<el-table-column
:label=
"language==0?'离境日期':'Date ofDeparture'"
prop=
""
width=
"130px"
>
<
template
#
header
>
<div
class=
"esp"
>
<span
class=
"red"
>
*
</span>
Date ofDeparture
<span
class=
"red"
>
*
</span>
Date ofDeparture
<br>
<span
class=
"red"
>
YYYY-MM-DD
</span>
</div>
</
template
>
<
template
#
default=
"scope"
>
...
...
@@ -268,15 +270,15 @@
</
template
>
<
template
#
default=
"scope"
>
<el-select
v-model=
"scope.row.nationality"
filterable
size=
"small"
>
<el-option
v-for=
"item in countrys"
:key=
"item.id"
:label=
"item.noc"
:value=
"item.id"
/>
<el-option
v-for=
"item in countrys"
:key=
"item.id"
:label=
"item.noc"
:value=
"item.noc"
/>
</el-select>
</
template
>
</el-table-column>
<el-table-column
:label=
"language==0?'出生日期':'Birth'"
prop=
"birth"
width=
"130px"
>
<
template
#
header
>
<div
class=
"esp"
>
<span
class=
"red"
>
*
</span>
Birth
<span
class=
"red"
>
*
</span>
Birth
<br>
<span
class=
"red"
>
YYYY-MM-DD
</span>
</div>
</
template
>
<
template
#
default=
"scope"
>
...
...
@@ -301,7 +303,8 @@
<el-table-column
:label=
"language==0?'护照签发日':'DATE OF ISSUE'"
prop=
"expiryDate"
width=
"130px"
>
<
template
#
header
>
<div
class=
"esp"
>
<span
class=
"red"
>
*
</span>
DATE OF ISSUE
<span
class=
"red"
>
*
</span>
DATE OF ISSUE
<br>
<span
class=
"red"
>
YYYY-MM-DD
</span>
</div>
</
template
>
<
template
#
default=
"scope"
>
...
...
@@ -315,7 +318,8 @@
<el-table-column
:label=
"language==0?'护照过期日':'DATE OF EXPIRY'"
prop=
"arrival"
width=
"130px"
>
<
template
#
header
>
<div
class=
"esp"
>
<span
class=
"red"
>
*
</span>
DATE OF EXPIRY
<span
class=
"red"
>
*
</span>
DATE OF EXPIRY
<br>
<span
class=
"red"
>
YYYY-MM-DD
</span>
</div>
</
template
>
<
template
#
default=
"scope"
>
...
...
@@ -347,12 +351,13 @@
</el-form-item>
<el-form-item>
<el-checkbox
v-model=
"form.check"
style=
"pointer-events: none"
/>
<el-link
style=
"margin-left: 5px"
type=
"primary"
@
click=
"
showCheck=!showCheck
"
>
{{
<el-link
style=
"margin-left: 5px"
type=
"primary"
@
click=
"
handelAffixInvitationDialog
"
>
{{
language == 0 ? '我确认所提供的资料是正确的' : 'I confirm that the information provided is correct'
}}
</el-link>
</el-form-item>
<div
class=
"text-center"
>
<el-button
:disabled=
"!cptId"
class=
"btn-lineG"
round
size=
"large"
type=
"primary"
@
click=
"submit"
>
{{ language == 0 ? '提交' : 'SUBMIT' }}
...
...
@@ -361,24 +366,7 @@
</el-form>
</div>
<el-dialog
v-model=
"showCheck"
append-to-body
center
class=
"pcloginpop"
destroy-on-close
style=
"min-width: 300px;max-width: 600px"
>
<p
style=
"font-size: 16px"
>
Passport information has been auto-recognized.Please double-check carefully, as errors may occur.Edit if
necessary
before submission.
</p>
<br>
<p
style=
"text-align: center"
>
<el-button
type=
"primary"
@
click=
"handelSubmit"
>
Confrm
</el-button>
</p>
<br>
</el-dialog>
<affixInvitationDialog
ref=
"affixInvitationDialogRef"
@
success=
"handelSuccess"
/>
</el-dialog>
</template>
...
...
@@ -400,6 +388,8 @@ import ImageUpload from '@/components/ImageUpload/index.vue'
import
useUserStore
from
"@/store/modules/user"
;
import
_
from
'lodash'
import
FileUpload
from
"@/components/FileUpload"
;
import
affixInvitationDialog
from
'./affixInvitationDialog.vue'
import
{
fillImgUrl
}
from
"/@/utils/ruoyi"
;
const
emit
=
defineEmits
([
'refresh'
])
const
user
=
useUserStore
().
user
...
...
@@ -505,11 +495,15 @@ function getMNAList() {
})
}
function
handelSu
bmit
()
{
function
handelSu
ccess
()
{
showCheck
.
value
=
false
form
.
value
.
check
=
true
}
function
handelAffixInvitationDialog
()
{
proxy
.
$refs
[
'affixInvitationDialogRef'
].
open
(
form
.
value
)
}
const
submit
=
async
()
=>
{
console
.
log
(
form
.
value
.
check
)
if
(
form
.
value
.
email
?.
indexOf
(
'@'
)
==
-
1
)
{
...
...
@@ -551,7 +545,7 @@ const submit = async () => {
}
await
proxy
.
$refs
.
iformRef
.
validate
()
if
(
!
form
.
value
.
check
)
{
showCheck
.
value
=
true
handelAffixInvitationDialog
()
return
}
await
ElMessageBox
.
confirm
(
...
...
@@ -656,6 +650,11 @@ function changeApplicatType() {
})
}
function
associationCodeFind
(
id
)
{
const
obj
=
mnaList
.
value
.
find
(
v
=>
v
.
code
==
id
)
if
(
obj
)
return
obj
.
nameEn
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/viewsPc/match/components/affixInvitationDialog.vue
0 → 100644
View file @
d7fa7cb
<
template
>
<el-dialog
v-model=
"show"
append-to-body
center
class=
"pcloginpop"
destroy-on-close
style=
"min-width: 350px;"
>
<div>
<el-descriptions
border
>
<el-descriptions-item
label=
"No."
>
{{
form
.
id
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Applicant Type"
>
{{
form
.
remarks
||
form
.
applicatTypeName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Invitation Type"
>
{{
form
.
invitationTypeName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"MNA/Team Name"
>
{{
associationCodeFind
(
form
.
associationCode
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"MNA/Team Address"
>
{{
form
.
associationAddress
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Contact Email"
>
{{
form
.
email
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Full Name"
>
{{
form
.
fullName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Position"
>
{{
form
.
remarks1
||
form
.
positionName
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Phone"
>
{{
form
.
phone
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Chinese Embassy Visa Office"
>
{{
form
.
embassy
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Chinese Embassy Email"
>
{{
form
.
embassyEmail
}}
</el-descriptions-item>
<el-descriptions-item
label=
"Additional Documents"
>
<el-link
v-if=
"form.files"
:href=
"fillImgUrl(form.files)"
target=
"_blank"
type=
"primary"
>
additional documents
</el-link>
</el-descriptions-item>
<el-descriptions-item
label=
"Proof of Employment"
>
<el-link
v-if=
"form.invitationFile"
:href=
"fillImgUrl(form.invitationFile)"
target=
"_blank"
type=
"primary"
>
proof of employment
</el-link>
</el-descriptions-item>
<el-descriptions-item
label=
"Remarks"
>
{{
form
.
remarks3
}}
</el-descriptions-item>
</el-descriptions>
<!--
<el-divider></el-divider>
-->
<br/>
<div
v-if=
"form.cptVisaInfoBos?.length>0"
>
<el-table
:data=
"form.cptVisaInfoBos"
border
stripe
>
<el-table-column
label=
"Passport Copy"
prop=
"passportCopy"
>
<template
#
default=
"
{row}">
<el-image
:preview-src-list=
"[fillImgUrl(row.passportCopy)]"
:preview-teleported=
"true"
:src=
"fillImgUrl(row.passportCopy)"
style=
"width: 50px;height: 70px"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"Date ofEntrye"
prop=
"entryDate"
/>
<el-table-column
align=
"center"
label=
"Date ofDeparture"
prop=
"departureDate"
/>
<el-table-column
align=
"center"
label=
"position"
prop=
"position"
/>
<el-table-column
align=
"center"
label=
"lastName"
prop=
"lastName"
/>
<el-table-column
align=
"center"
label=
"firstName"
prop=
"fristName"
/>
<el-table-column
align=
"center"
label=
"Gender"
prop=
"sex"
>
<
template
#
default=
"{row}"
>
{{
row
.
sex
==
'0'
?
'M'
:
'F'
}}
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"nationality"
prop=
"nationality"
/>
<el-table-column
align=
"center"
label=
"birthday"
prop=
"birthday"
/>
<el-table-column
align=
"center"
label=
"Passport No."
prop=
"passportNo"
/>
<el-table-column
align=
"center"
label=
"DATE OF ISSUE"
prop=
"issueDate"
/>
<el-table-column
align=
"center"
label=
"DATE OF EXPIRY"
prop=
"expiryDate"
/>
</el-table>
</div>
</div>
<p
class=
"red"
style=
"font-size: 16px"
>
Passport information has been auto-recognized.Please double-check carefully, as errors may occur.Edit if
necessary
before submission.
</p>
<br>
<p
style=
"text-align: center"
>
<el-button
type=
"primary"
@
click=
"handelSubmit"
>
Confrm
</el-button>
</p>
<br>
</el-dialog>
</template>
<
script
setup
>
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
getCurrentInstance
,
ref
}
from
"vue"
;
import
{
associationList
,
}
from
"@/apiPc/match"
;
import
useUserStore
from
"@/store/modules/user"
;
import
_
from
'lodash'
import
{
fillImgUrl
}
from
"/@/utils/ruoyi"
;
const
emit
=
defineEmits
([
'refresh'
])
const
user
=
useUserStore
().
user
const
{
proxy
}
=
getCurrentInstance
()
const
language
=
useStorage
(
'language'
,
0
)
const
form
=
ref
({
gender
:
'0'
,
chinese
:
'0'
,
cptVisaInfoBos
:
[],
email
:
user
?.
email
,
})
const
show
=
ref
(
false
)
const
mnaList
=
ref
([])
const
open
=
(
params
)
=>
{
show
.
value
=
true
form
.
value
=
params
getMNAList
()
}
defineExpose
({
open
,
})
function
getMNAList
()
{
associationList
().
then
(
res
=>
{
mnaList
.
value
=
res
.
data
})
}
function
handelSubmit
()
{
show
.
value
=
false
form
.
value
.
check
=
true
}
function
associationCodeFind
(
id
)
{
const
obj
=
mnaList
.
value
.
find
(
v
=>
v
.
code
==
id
)
if
(
obj
)
return
obj
.
nameEn
}
</
script
>
<
style
lang=
"scss"
scoped
>
.red
{
color
:
red
!important
;
}
:deep
(
.el-upload--picture-card
)
{
--el-upload-picture-card-size
:
60px
;
}
.tip
{
font-size
:
12px
;
}
.boxInvitation
{
width
:
96%
;
margin
:
20px
auto
0
;
}
h4
{
font-size
:
15px
;
line-height
:
1.6
;
}
.cptVisaInfoBosTable
{
padding
:
10px
;
margin-bottom
:
20px
;
border
:
1px
dashed
#ebeef5
;
:deep(.el-table
.el-table__header-wrapper
th)
{
font-size
:
12px
;
}
}
.wrap-item
{
flex-wrap
:
wrap
;
display
:
block
;
}
.codeBtn
{
background-color
:
#0540EC
!important
;
color
:
#fff
!important
;
}
</
style
>
vite.config.js
View file @
d7fa7cb
...
...
@@ -83,9 +83,9 @@ export default defineConfig(({mode, command}) => {
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-webSite/
,
''
)
},
'/dev-api'
:
{
target
:
'http://192.168.1.118:8082/'
,
//
target: 'http://192.168.1.118:8082/',
// target: 'http://192.168.1.131:8081/',
//
target: 'https://tk005.wxjylt.com/stage-api',
target
:
'https://tk005.wxjylt.com/stage-api'
,
// target: 'http://124.70.181.90:1880/stage-api',
// target: 'https://sys.2025wtcwuxi.com/stage-api/',
changeOrigin
:
true
,
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment