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
1418e350
authored
2025-08-06 14:29:20 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
世锦赛
1 parent
c46d2134
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
435 additions
and
77 deletions
src/routerPc/en.js
src/viewsPc/about/operation.vue
src/viewsPc/booking/hotelOrder.vue
src/viewsPc/home.vue
src/viewsPc/match/components/affix-invitation-view.vue
src/viewsPc/match/components/affix-invitation.vue
src/routerPc/en.js
View file @
1418e35
...
...
@@ -101,6 +101,12 @@ export const constantRoutes = [
meta
:
{
title
:
'舞蹈节'
}
},
{
path
:
'operation'
,
component
:
()
=>
import
(
'@/viewsPc/about/operation'
),
name
:
'operation'
,
meta
:
{
title
:
'操作手册'
}
},
{
path
:
'culture'
,
component
:
()
=>
import
(
'@/viewsPc/about/culture'
),
name
:
'culture'
,
...
...
src/viewsPc/about/operation.vue
0 → 100644
View file @
1418e35
<
template
>
<div>
<div
class=
"mt20"
/>
<div
class=
"box"
>
<el-card>
<el-row>
<el-col>
<div
class=
"infoPart pd20"
>
<h3
class=
"leftboderTT"
>
{{
language
==
0
?
'操作手册'
:
'The Manual'
}}
</h3>
<br>
<div
style=
"padding-left: 30px"
>
<el-link
v-for=
"v in fileList"
:href=
"fillImgUrl(v.url)"
:underline=
"false"
class=
"link"
target=
"_blank"
type=
"primary"
>
<span
style=
"border-bottom: 1px solid var(--el-color-primary)"
>
{{
v
.
name
}}
<el-icon
style=
"margin-left: 10px;position: relative;bottom: -2px"
>
<Download/>
</el-icon>
</span>
</el-link>
</div>
<div
class=
"content"
>
<div
v-html=
"content"
></div>
</div>
</div>
</el-col>
</el-row>
</el-card>
<div
v-if=
"false"
class=
"indexTitle"
>
<h3
class=
"leftboderTT"
>
{{
language
==
0
?
'联系我们'
:
'CONTACT US'
}}
</h3>
</div>
<div
v-if=
"false"
class=
"mapBox mb20"
>
<div
class=
"content"
>
<div
v-for=
"(item,index) in contact"
:class=
"index==0?'phone':index==1?'address':'email'"
>
<h4>
{{
language
==
1
?
item
.
ename
:
item
.
name
}}
</h4>
<p>
{{
language
==
0
?
item
.
value
:
item
.
evalue
}}
</p>
</div>
</div>
</div>
</div>
<div
style=
"height: 50px"
></div>
</div>
</
template
>
<
script
setup
>
import
{
useStorage
}
from
"@vueuse/core"
;
import
{
onMounted
,
ref
}
from
"vue"
;
import
{
getppInfo
}
from
"@/apiPc/match"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
fillImgUrl
}
from
"/@/utils/ruoyi"
;
const
route
=
useRoute
()
const
language
=
useStorage
(
'language'
,
0
)
const
activeIndex
=
ref
(
0
)
const
content
=
ref
(
''
)
const
fileList
=
ref
([])
onMounted
(()
=>
{
if
(
route
.
query
.
activeIndex
)
{
activeIndex
.
value
=
route
.
query
.
activeIndex
}
getMenuList
()
})
const
getMenuList
=
()
=>
{
getppInfo
(
'10000005'
).
then
(
res
=>
{
if
(
language
.
value
==
0
)
{
content
.
value
=
res
.
data
.
contextZh
fileList
.
value
=
JSON
.
parse
(
res
.
data
.
fileZh
)
}
else
{
content
.
value
=
res
.
data
.
contextEh
fileList
.
value
=
JSON
.
parse
(
res
.
data
.
fileEn
)
}
})
}
</
script
>
<
style
lang=
"scss"
scoped
>
.link
{
font-size
:
16px
;
display
:
block
;
margin-bottom
:
10px
;
}
.leftNav
{
ul
{
border-right
:
2px
solid
#E5E5E5
;
padding
:
0
20px
0
0
;
}
li
{
margin
:
30px
0
;
padding
:
10px
;
text-align
:
right
;
border-radius
:
2px
;
position
:
relative
;
font-weight
:
600
;
text-transform
:
uppercase
;
font-size
:
18px
;
cursor
:
pointer
;
background
:
linear-gradient
(
90deg
,
rgba
(
134
,
35
,
252
,
0.1
),
rgba
(
69
,
61
,
234
,
0.1
));
}
li
::after
{
content
:
''
;
position
:
absolute
;
background
:
#898989
;
width
:
8px
;
height
:
8px
;
border-radius
:
50%
;
right
:
-29px
;
border
:
4px
solid
#fff
;
outline
:
2px
solid
#898989
;
box-sizing
:
content-box
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
}
li
.active
{
color
:
#fff
;
background
:
#000
;
&::after
{
outline
:
2px
solid
#000
;
background
:
#000
;
}
}
}
.infoPart
{
.leftboderTT
{
font-size
:
20px
;
color
:
var
(
--el-color-primary
);
}
}
.content
{
margin
:
20px
0
0
;
text-indent
:
2em
;
line-height
:
1.8
;
font-weight
:
400
;
font-size
:
16px
;
color
:
#29343C
;
img
{
max-width
:
100%
;
margin
:
20px
auto
;
display
:
block
;
}
h4
{
text-indent
:
0
}
}
.mapBox
{
background
:
url("@/assets/zhinan/map.png")
no-repeat
right
;
height
:
375px
;
background-size
:
cover
;
padding
:
1px
;
position
:
relative
;
display
:
flex
;
.content
{
background
:
#fff
;
width
:
60%
;
left
:
40px
;
padding
:
30px
;
text-indent
:
0
;
line-height
:
1
;
position
:
absolute
;
height
:
90%
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
}
div
{
padding-left
:
60px
;
}
.phone
{
background
:
url("@/assets/dance/map01.png")
no-repeat
left
;
background-size
:
30px
;
}
.address
{
background
:
url("@/assets/dance/map02.png")
no-repeat
left
;
background-size
:
30px
;
margin
:
50px
0
;
}
.email
{
background
:
url("@/assets/dance/map03.png")
no-repeat
left
;
background-size
:
30px
;
}
h4
{
margin
:
0
;
font-size
:
16px
;
color
:
#AAAAAA
;
}
p
{
margin
:
13px
0
0
;
}
}
</
style
>
src/viewsPc/booking/hotelOrder.vue
View file @
1418e35
This diff is collapsed.
Click to expand it.
src/viewsPc/home.vue
View file @
1418e35
<
template
>
<div>
<index-Ch
v-if=
"language ==0"
@
pop=
"openMaster"
@
pickup=
"openPickup"
@
backNumber=
"openBackNumber"
@
schSearch=
"openSchSearch"
/>
<index-En
v-else
@
pop=
"openMaster"
@
pickup=
"openPickup"
@
backNumber=
"openBackNumber"
@
schSearch=
"openSchSearch"
/>
<index-Ch
v-if=
"language ==0"
@
backNumber=
"openBackNumber"
@
pickup=
"openPickup"
@
pop=
"openMaster"
@
schSearch=
"openSchSearch"
/>
<index-En
v-else
@
backNumber=
"openBackNumber"
@
pickup=
"openPickup"
@
pop=
"openMaster"
@
schSearch=
"openSchSearch"
/>
<div
v-if=
"showgg"
class=
"fixed_gg"
>
<!--天气-->
<el-icon
class=
"cclose"
@
click
.
stop=
"showgg=false"
><circle-close
/></el-icon>
<el-icon
class=
"cclose"
@
click
.
stop=
"showgg=false"
>
<circle-close/>
</el-icon>
<div
class=
"bg-lineg pd20"
>
<div
class=
"smallToday"
@
click=
"popWeather"
>
<div>
...
...
@@ -15,13 +18,14 @@
<div>
<h3
v-if=
"language == 0"
>
无锡
</h3>
<h3
v-else
>
WUXI
</h3>
<div
class=
"wd_p"
>
{{
weatherObj
.
forecast
[
0
]?.
low
.
slice
(
2
)
}}
~
{{
weatherObj
.
forecast
[
0
]?.
high
.
slice
(
2
)
}}
</div>
<div
class=
"wd_p"
>
{{
weatherObj
.
forecast
[
0
]?.
low
.
slice
(
2
)
}}
~
{{
weatherObj
.
forecast
[
0
]?.
high
.
slice
(
2
)
}}
</div>
</div>
</div>
<el-dialog
v-model=
"weatherdialog"
width=
"540"
:close-on-click-modal=
"true"
style=
"--el-dialog-padding-primary:0;--el-dialog-border-radius:15px;
--el-dialog-bg-color:transparent;overflow: hidden;"
>
</div>
<el-dialog
v-model=
"weatherdialog"
:close-on-click-modal=
"true"
style=
"--el-dialog-padding-primary:0;--el-dialog-border-radius:15px;
--el-dialog-bg-color:transparent;overflow: hidden;"
width=
"540"
>
<div
class=
"bg-lineg pd20"
>
<div
class=
"weatherbox"
>
<div
class=
"today"
>
...
...
@@ -30,9 +34,11 @@
<h1
v-else
>
WUXI
</h1>
</div>
<div>
<div
class=
"wd"
>
{{
weatherObj
.
wendu
}}
°c
</div>
<div
class=
"wd_p"
>
{{
weatherObj
.
forecast
[
0
]?.
low
.
slice
(
2
)
}}
~
{{
weatherObj
.
forecast
[
0
]?.
high
.
slice
(
2
)
}}
</div>
<div
class=
"week"
>
{{
weatherObj
.
forecast
[
0
]?.
week
}}
</div>
<div
class=
"wd"
>
{{
weatherObj
.
wendu
}}
°c
</div>
<div
class=
"wd_p"
>
{{
weatherObj
.
forecast
[
0
]?.
low
.
slice
(
2
)
}}
~
{{
weatherObj
.
forecast
[
0
]?.
high
.
slice
(
2
)
}}
</div>
<div
class=
"week"
>
{{
weatherObj
.
forecast
[
0
]?.
week
}}
</div>
</div>
<div>
<div
class=
"type"
>
...
...
@@ -45,22 +51,30 @@
<div
class=
"type"
>
<weather-icon
:type=
"n.type||n.wea"
:width=
"32"
/>
</div>
<div
class=
"wd"
v-if=
"n.low"
>
{{
n
.
low
.
slice
(
2
,
-
1
)
}}
/
{{
n
.
high
.
slice
(
2
)
}}
</div>
<div
class=
"wd"
v-if=
"n.tem_night"
>
{{
n
.
tem_night
}}
/
{{
n
.
tem_day
}}
</div>
<div
class=
"week"
v-if=
"language==1"
>
{{
n
.
week
==
'星期一'
?
'Mon'
:
n
.
week
==
'星期二'
?
'Tue'
:
n
.
week
==
'星期三'
?
'Wed'
:
n
.
week
==
'星期四'
?
'Thu'
:
n
.
week
==
'星期五'
?
'Fri'
:
n
.
week
==
'星期六'
?
'Sat'
:
n
.
week
==
'星期日'
?
'Sun'
:
''
}}
<div
v-if=
"n.low"
class=
"wd"
>
{{
n
.
low
.
slice
(
2
,
-
1
)
}}
/
{{
n
.
high
.
slice
(
2
)
}}
</div>
<div
v-if=
"n.tem_night"
class=
"wd"
>
{{
n
.
tem_night
}}
/
{{
n
.
tem_day
}}
</div>
<div
v-if=
"language==1"
class=
"week"
>
{{
n
.
week
==
'星期一'
?
'Mon'
:
n
.
week
==
'星期二'
?
'Tue'
:
n
.
week
==
'星期三'
?
'Wed'
:
n
.
week
==
'星期四'
?
'Thu'
:
n
.
week
==
'星期五'
?
'Fri'
:
n
.
week
==
'星期六'
?
'Sat'
:
n
.
week
==
'星期日'
?
'Sun'
:
''
}}
</div>
<div
class=
"week"
v-else
>
{{
n
.
week
}}
<div
v-else
class=
"week"
>
{{
n
.
week
}}
</div>
<div
class=
"date mt10"
v-if=
"n.ymd"
>
{{
n
.
ymd
.
slice
(
5
,
10
)
}}
</div>
<div
class=
"date mt10"
v-else
>
{{
n
.
date
.
slice
(
5
,
10
)
}}
</div>
<div
v-if=
"n.ymd"
class=
"date mt10"
>
{{
n
.
ymd
.
slice
(
5
,
10
)
}}
</div>
<div
v-else
class=
"date mt10"
>
{{
n
.
date
.
slice
(
5
,
10
)
}}
</div>
</li>
</ul>
</div>
</div>
</el-dialog>
</div>
<div
class=
"operation"
@
click=
"handelOperation"
>
{{
language
==
0
?
'操作手册'
:
'GUIDELINE'
}}
<el-icon>
<Download/>
</el-icon>
</div>
<dialog-master-class
ref=
"masterClassRef"
/>
<pick-up
ref=
"pickupRef"
></pick-up>
<back-number
ref=
"backNumberRef"
></back-number>
...
...
@@ -81,72 +95,110 @@ import {useStorage} from "@vueuse/core/index";
import
{
ref
}
from
"vue"
;
import
{
getWeather
}
from
"@/apiPc/webSite"
;
import
{
getCurrentInstance
}
from
"@vue/runtime-core"
;
import
{
useRouter
}
from
"vue-router"
;
const
{
proxy
}
=
getCurrentInstance
()
const
showgg
=
ref
(
false
)
const
router
=
useRouter
()
const
language
=
useStorage
(
'language'
,
0
)
const
weatherObj
=
ref
({
forecast
:[]
forecast
:
[]
})
const
weatherdialog
=
ref
(
false
)
// init()
function
init
(){
getWeather
().
then
(
res
=>
{
function
init
()
{
getWeather
().
then
(
res
=>
{
weatherObj
.
value
=
JSON
.
parse
(
res
.
data
).
data
showgg
.
value
=
true
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
showgg
.
value
=
false
})
}
const
popWeather
=
()
=>
{
weatherdialog
.
value
=
true
}
const
openMaster
=
(
params
)
=>
{
console
.
log
(
params
)
var
obj
=
{
title
:
'大师课申请'
,
cptId
:
params
.
cptId
title
:
'大师课申请'
,
cptId
:
params
.
cptId
}
proxy
.
$refs
[
'masterClassRef'
].
open
(
obj
)
}
const
openPickup
=
(
params
)
=>
{
const
openPickup
=
(
params
)
=>
{
console
.
log
(
params
)
const
obj
=
{
title
:
'接送机服务'
,
cptId
:
params
.
cptId
title
:
'接送机服务'
,
cptId
:
params
.
cptId
}
proxy
.
$refs
[
'pickupRef'
].
open
(
obj
)
}
const
openBackNumber
=
(
params
)
=>
{
console
.
log
(
params
)
const
obj
=
{
title
:
'背号查询'
,
cptId
:
params
.
cptId
title
:
'背号查询'
,
cptId
:
params
.
cptId
}
proxy
.
$refs
[
'backNumberRef'
].
open
(
obj
)
}
const
openSchSearch
=
(
params
)
=>
{
console
.
log
(
params
)
const
obj
=
{
title
:
'日程查询'
,
cptId
:
params
.
cptId
title
:
'日程查询'
,
cptId
:
params
.
cptId
}
proxy
.
$refs
[
'schSearchRef'
].
open
(
obj
)
}
function
handelOperation
()
{
router
.
push
(
'/about/operation'
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
.poCode
{
position
:
fixed
;
right
:
0
;
top
:
40%
;
background
:
#fff
;
padding
:
10px
0
0
;
border-radius
:
10px
;
overflow
:
hidden
;
box-shadow
:
0
2px
8px
#aaa
;
z-index
:
99
;}
<
style
lang=
"scss"
scoped
>
.poCode
{
position
:
fixed
;
right
:
0
;
top
:
40%
;
background
:
#fff
;
padding
:
10px
0
0
;
border-radius
:
10px
;
overflow
:
hidden
;
box-shadow
:
0
2px
8px
#aaa
;
z-index
:
99
;
}
@media
screen
and
(
max-width
:
768px
)
{
:deep
(
.zn-Box
.zn-btn
)
{
margin-top
:
10px
;
font-size
:
14px
}
:deep
(
.bgbg
)
{
padding
:
3%
5%
0
!important
;
h1
{
font-size
:
22px
;
margin
:
20px
0
0
;}
:deep
(
.zn-Box
.zn-btn
)
{
margin-top
:
10px
;
font-size
:
14px
}
:deep
(
.bgbg
)
{
padding
:
3%
5%
0
!important
;
h1
{
font-size
:
22px
;
margin
:
20px
0
0
;
}
}
.fixed_gg
{
.fixed_gg
{
transform
:
scale
(
0.7
);
transform-origin
:
right
;
}
}
.operation
{
position
:
fixed
;
right
:
0
;
top
:
580px
;
color
:
#fff
;
background-color
:
rgba
(
0
,
0
,
0
,
0.5
);
backdrop-filter
:
blur
(
4px
);
border-radius
:
50px
;
padding
:
10px
20px
;
cursor
:
pointer
;
}
</
style
>
...
...
src/viewsPc/match/components/affix-invitation-view.vue
View file @
1418e35
<
template
>
<el-dialog
v-model=
"show"
title=
"Visa Invitation Letter"
append-to-body
close-icon=
"CircleClose"
center
close-on-click-modal
destroy-on-close
width=
"1100"
v-model=
"show"
append-to-body
center
close-icon=
"CircleClose"
close-on-click-modal
destroy-on-close
title=
"Visa Invitation Letter"
width=
"1100"
>
<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=
"Do you need a Chinese invitation?"
>
{{
-->
<!--
form
.
chinese
==
'1'
?
'YES'
:
'No'
-->
<!--
}}
-->
<!--
</el-descriptions-item>
-->
<!--
<el-descriptions-item
label=
"Do you need a Chinese invitation?"
>
{{
-->
<!--
form
.
chinese
==
'1'
?
'YES'
:
'No'
-->
<!--
}}
-->
<!--
</el-descriptions-item>
-->
<el-descriptions-item
label=
"MNA/Team Name"
>
{{
form
.
nameEn
}}
</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>
...
...
@@ -25,7 +25,7 @@
</el-link>
</el-descriptions-item>
<el-descriptions-item
label=
"Proof of Employment"
>
<el-link
v-if=
"form.invitationFile"
target=
"_blank"
:href=
"fillImgUrl(form.invitationFile)
"
type=
"primary"
>
<el-link
v-if=
"form.invitationFile"
:href=
"fillImgUrl(form.invitationFile)"
target=
"_blank
"
type=
"primary"
>
proof of employment
</el-link>
</el-descriptions-item>
...
...
@@ -34,29 +34,31 @@
<!--
<el-divider></el-divider>
-->
<br/>
<el-table
:data=
"visaList"
border
stripe
>
<el-table-column
prop=
"passportCopy"
label=
"Passport
Copy"
>
<el-table-column
label=
"Passport Copy"
prop=
"passport
Copy"
>
<template
#
default=
"
{row}">
<el-image
:src=
"fillImgUrl(row.passportCopy)"
: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
label=
"position"
align=
"center"
prop=
"position"
/>
<el-table-column
label=
"lastName"
align=
"center"
prop=
"lastName"
/>
<el-table-column
label=
"firstName"
align=
"center"
prop=
"fristName"
/>
<el-table-column
prop=
"sex"
label=
"Gender"
align=
"center"
>
<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
label=
"nationality"
align=
"center
"
prop=
"nationality"
/>
<el-table-column
label=
"birthday"
align=
"center
"
prop=
"birthday"
/>
<el-table-column
label=
"Passport No."
align=
"center
"
prop=
"passportNo"
/>
<el-table-column
label=
"DATE OF ISSUE"
align=
"center
"
prop=
"issueDate"
/>
<el-table-column
label=
"DATE OF EXPIRY"
align=
"center
"
prop=
"expiryDate"
/>
<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>
</el-dialog>
...
...
@@ -94,6 +96,6 @@ defineExpose({open})
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
</
style
>
...
...
src/viewsPc/match/components/affix-invitation.vue
View file @
1418e35
...
...
@@ -44,15 +44,17 @@
<el-option
:label=
"language==0?'TE/PU(外办)邀请函':'TE/PU letter'"
value=
"2"
/>
</el-select>
</el-form-item>
<el-form-item
v-if=
"form.invitationType==2"
label=
"Proof of Employment"
prop=
"invitationFileArr"
required
>
<div
class=
"red"
>
Proof of employment is required for TE/PU letter letters.
</div>
<div
class=
"red"
>
This document must be issued by the invitee's association and must bear an official stamp or signature.
</div>
<br/>
<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
v-if=
"form.invitationType==2"
label=
"Proof of Employment"
prop=
"invitationFileArr"
required
>
-->
<!--
<div
class=
"red"
>
Proof of employment is required for TE/PU letter letters.
</div>
-->
<!--
<div
class=
"red"
>
-->
<!-- This document must be issued by the invitee's association and must bear an official stamp or signature.-->
<!--
</div>
-->
<!--
<br/>
-->
<!--
<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"
>
-->
...
...
@@ -151,6 +153,40 @@
preview-teleported
style=
"width: 60px;z-index: 999;"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"language==0?'入境日期':'Date ofEntrye'"
prop=
""
width=
"130px"
>
<
template
#
header
>
<div
class=
"esp"
>
<span
class=
"red"
>
*
</span>
Date ofEntrye
</div>
</
template
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.entryDate"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
size=
"small"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"language==0?'离境日期':'Date ofDeparture'"
prop=
""
width=
"130px"
>
<
template
#
header
>
<div
class=
"esp"
>
<span
class=
"red"
>
*
</span>
Date ofDeparture
</div>
</
template
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.departureDate"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
size=
"small"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"'position'"
min-width=
"100"
prop=
"position"
>
<
template
#
header
>
<div
class=
"esp"
>
...
...
@@ -244,7 +280,8 @@
</div>
</
template
>
<
template
#
default=
"scope"
>
<el-date-picker
v-model=
"scope.row.birthday"
<el-date-picker
v-model=
"scope.row.birthday"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
size=
"small"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
...
...
@@ -306,10 +343,15 @@
</el-form-item>
<!-- 补充材料-->
<el-form-item
:label=
"language==0?'补充材料':'Additional Documents'"
prop=
"files"
>
<file-upload
v-model=
"form.files"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
/>
<file-upload
v-model=
"form.files"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
/>
</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"
>
{{
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"
>
...
...
@@ -318,6 +360,25 @@
</div>
</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>
</el-dialog>
</template>
...
...
@@ -357,6 +418,7 @@ const title = ref('')
const
countrys
=
ref
([])
const
mnaList
=
ref
([])
const
cptId
=
ref
(
''
)
const
showCheck
=
ref
(
false
)
const
rules
=
ref
(
{
nationality
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
...
...
@@ -367,6 +429,7 @@ const rules = ref(
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'
},],
check
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
})
const
open
=
(
params
)
=>
{
show
.
value
=
true
...
...
@@ -442,8 +505,13 @@ function getMNAList() {
})
}
const
submit
=
()
=>
{
console
.
log
(
form
.
value
)
function
handelSubmit
()
{
showCheck
.
value
=
false
form
.
value
.
check
=
true
}
const
submit
=
async
()
=>
{
console
.
log
(
form
.
value
.
check
)
if
(
form
.
value
.
email
?.
indexOf
(
'@'
)
==
-
1
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请填写正确的邮箱'
:
'Invalid Emaill Address!'
)
return
...
...
@@ -465,6 +533,14 @@ const submit = () => {
ElMessage
.
warning
(
`Please specify
${
row
.
fristName
}
's position`
)
return
;
}
if
(
!
row
.
entryDate
)
{
ElMessage
.
warning
(
`Please specify Date ofEntrye position`
)
return
;
}
if
(
!
row
.
departureDate
)
{
ElMessage
.
warning
(
`Please specify Date ofDeparture position`
)
return
;
}
}
if
(
form
.
value
.
files
&&
Array
.
isArray
(
form
.
value
.
files
))
{
...
...
@@ -473,10 +549,12 @@ const submit = () => {
if
(
form
.
value
.
invitationFileArr
)
{
form
.
value
.
invitationFile
=
JSON
.
stringify
(
form
.
value
.
invitationFileArr
)
}
proxy
.
$refs
.
iformRef
.
validate
(
valid
=>
{
if
(
valid
)
{
ElMessageBox
.
confirm
(
await
proxy
.
$refs
.
iformRef
.
validate
()
if
(
!
form
.
value
.
check
)
{
showCheck
.
value
=
true
return
}
await
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'请确认信息正确并提交吗?'
:
'Please confirm that the information is correct and submit it'
,
language
.
value
==
0
?
'提示'
:
'Tips'
,
{
confirmButtonText
:
language
.
value
==
0
?
'确定'
:
'Confirm'
,
...
...
@@ -494,6 +572,10 @@ const submit = () => {
}
})
})
proxy
.
$refs
.
iformRef
.
validate
(
valid
=>
{
if
(
valid
)
{
}
})
}
...
...
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