Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jijin
/
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
fb8342d4
authored
2025-05-30 14:48:28 +0800
by
杨炀
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'dev' of
https://code.itechtop.cn/yangyang/dance-pc
into dev
2 parents
24537552
f3e5beef
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
344 additions
and
239 deletions
src/viewsPc/center/index.vue
src/viewsPc/center/myInfo.vue
src/viewsPc/match/components/addCoach_en.vue
src/viewsPc/match/components/affix-invitation.vue
src/viewsPc/center/index.vue
View file @
fb8342d
...
...
@@ -2,13 +2,14 @@
<div
class=
"app-container"
>
<div
class=
"box"
>
<el-row
:gutter=
"20"
>
<el-col
:lg=
"5"
:md=
"5"
:
xl=
"6"
:sm=
"8
"
:xs=
"8"
>
<el-col
:lg=
"5"
:md=
"5"
:
sm=
"8"
:xl=
"6
"
:xs=
"8"
>
<el-card
class=
"mb20"
>
<div
:class=
"language==0?'center-menu':'center-menu en-menu'"
>
<ul
v-if=
"user.utype=='2'&&language==0"
>
<li
v-for=
"(m, i) in menus"
:key=
"i"
:class=
"
{ active: m.isActive }"
<li
v-for=
"(m, i) in menus"
:key=
"i"
:class=
"
{ active: m.isActive }"
>
<a
href=
"javascript:void(0)"
@
click=
"toInfo(m,menus)"
>
<img
:src=
"m.isActive ? m.picUrl2 : m.picUrl1"
>
...
...
@@ -17,9 +18,10 @@
</li>
</ul>
<ul
v-if=
"user.utype=='2'&&language==1"
>
<li
v-for=
"(m, i) in menusEn"
:key=
"i"
:class=
"
{ active: m.isActive }"
<li
v-for=
"(m, i) in menusEn"
:key=
"i"
:class=
"
{ active: m.isActive }"
>
<a
href=
"javascript:void(0)"
@
click=
"toInfo(m,menusEn)"
>
<img
:src=
"m.isActive ? m.picUrl2 : m.picUrl1"
>
...
...
@@ -29,9 +31,9 @@
</ul>
<ul
v-if=
"user.utype=='1'&&language==0"
>
<li
v-for=
"(m, i) in menusPersonal"
:key=
"i"
:class=
"
{ active: m.isActive }"
v-for=
"(m, i) in menusPersonal"
:key=
"i"
:class=
"
{ active: m.isActive }"
>
<a
href=
"javascript:void(0)"
@
click=
"toInfo(m,menusPersonal)"
>
<img
:src=
"m.isActive ? m.picUrl2 : m.picUrl1"
>
...
...
@@ -41,9 +43,9 @@
</ul>
<ul
v-if=
"user.utype=='1'&&language==1"
>
<li
v-for=
"(m, i) in menusPersonalEn"
:key=
"i"
:class=
"
{ active: m.isActive }"
v-for=
"(m, i) in menusPersonalEn"
:key=
"i"
:class=
"
{ active: m.isActive }"
>
<a
href=
"javascript:void(0)"
@
click=
"toInfo(m,menusPersonalEn)"
>
<img
:src=
"m.isActive ? m.picUrl2 : m.picUrl1"
>
...
...
@@ -53,9 +55,9 @@
</ul>
<ul
v-if=
"user.utype=='3'&&language==0"
>
<li
v-for=
"(m, i) in menus3"
:key=
"i"
:class=
"
{ active: m.isActive }"
v-for=
"(m, i) in menus3"
:key=
"i"
:class=
"
{ active: m.isActive }"
>
<a
href=
"javascript:void(0)"
@
click=
"toInfo(m,menus3)"
>
<img
:src=
"m.isActive ? m.picUrl2 : m.picUrl1"
>
...
...
@@ -65,9 +67,9 @@
</ul>
<ul
v-if=
"user.utype=='3'&&language==1"
>
<li
v-for=
"(m, i) in menus3En"
:key=
"i"
:class=
"
{ active: m.isActive }"
v-for=
"(m, i) in menus3En"
:key=
"i"
:class=
"
{ active: m.isActive }"
>
<a
href=
"javascript:void(0)"
@
click=
"toInfo(m,menus3En)"
>
<img
:src=
"m.isActive ? m.picUrl2 : m.picUrl1"
>
...
...
@@ -78,8 +80,8 @@
</div>
</el-card>
</el-col>
<el-col
:lg=
"19"
:md=
"19"
:
xl=
"18"
:sm=
"16
"
:xs=
"16"
>
<router-view
:user=
"user"
class=
"rightPart"
/>
<el-col
:lg=
"19"
:md=
"19"
:
sm=
"16"
:xl=
"18
"
:xs=
"16"
>
<router-view
:user=
"user"
class=
"rightPart"
/>
</el-col>
</el-row>
</div>
...
...
@@ -87,12 +89,12 @@
</
template
>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
useRoute
,
useRouter
}
from
'vue-router'
import
{
onMounted
}
from
'@vue/runtime-core'
import
{
ref
}
from
'vue'
import
{
useRoute
,
useRouter
}
from
'vue-router'
import
{
onMounted
}
from
'@vue/runtime-core'
import
useUserStore
from
'@/store/modules/user'
import
_
from
'lodash'
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
useStorage
}
from
'@vueuse/core/index'
const
language
=
useStorage
(
'language'
,
0
)
...
...
@@ -245,13 +247,13 @@ const menus3 = ref([
picUrl2
:
'/img/nav_29_dwn.png'
,
isActive
:
false
},
{
name
:
language
.
value
==
0
?
'票务预订'
:
'Ticket Reservation'
,
routeName
:
'seat_order'
,
picUrl1
:
'/img/c7.png'
,
picUrl2
:
'/img/c7.png'
,
isActive
:
false
},
//
{
//
name: language.value == 0 ? '票务预订' : 'Ticket Reservation',
//
routeName: 'seat_order',
//
picUrl1: '/img/c7.png',
//
picUrl2: '/img/c7.png',
//
isActive: false
//
},
{
name
:
language
.
value
==
0
?
'发票申请'
:
'Electronic invoice'
,
routeName
:
'myKP'
,
...
...
@@ -281,14 +283,14 @@ const menus3En = ref([
picUrl1
:
'/img/nav_29.png'
,
picUrl2
:
'/img/nav_29_dwn.png'
,
isActive
:
false
},
{
name
:
language
.
value
==
0
?
'票务预订'
:
'Ticket Reservation'
,
routeName
:
'seat_order'
,
picUrl1
:
'/img/c7.png'
,
picUrl2
:
'/img/c7.png'
,
isActive
:
false
}
// {
// name: language.value == 0 ? '票务预订' : 'Ticket Reservation',
// routeName: 'seat_order',
// picUrl1: '/img/c7.png',
// picUrl2: '/img/c7.png',
// isActive: false
// }
])
const
menusPersonal
=
ref
([
{
...
...
@@ -319,13 +321,13 @@ const menusPersonal = ref([
picUrl2
:
'/img/nav_29_dwn.png'
,
isActive
:
false
},
{
name
:
language
.
value
==
0
?
'票务预订'
:
'Ticket Reservation'
,
routeName
:
'seat_order'
,
picUrl1
:
'/img/c7.png'
,
picUrl2
:
'/img/c7.png'
,
isActive
:
false
},
//
{
//
name: language.value == 0 ? '票务预订' : 'Ticket Reservation',
//
routeName: 'seat_order',
//
picUrl1: '/img/c7.png',
//
picUrl2: '/img/c7.png',
//
isActive: false
//
},
{
name
:
language
.
value
==
0
?
'系统消息'
:
'System messages'
,
routeName
:
'mySms'
,
...
...
@@ -370,13 +372,13 @@ const menusPersonalEn = ref([
picUrl2
:
'/img/nav_29_dwn.png'
,
isActive
:
false
},
{
name
:
language
.
value
==
0
?
'票务预订'
:
'Ticket Reservation'
,
routeName
:
'seat_order'
,
picUrl1
:
'/img/c7.png'
,
picUrl2
:
'/img/c7.png'
,
isActive
:
false
},
//
{
//
name: language.value == 0 ? '票务预订' : 'Ticket Reservation',
//
routeName: 'seat_order',
//
picUrl1: '/img/c7.png',
//
picUrl2: '/img/c7.png',
//
isActive: false
//
},
{
name
:
language
.
value
==
0
?
'系统消息'
:
'System messages'
,
routeName
:
'mySms'
,
...
...
@@ -389,7 +391,7 @@ let currMenu
onMounted
(()
=>
{
console
.
log
(
route
.
query
)
if
(
!
user
.
utype
)
{
router
.
push
({
name
:
'home'
})
router
.
push
({
name
:
'home'
})
return
}
if
(
user
.
utype
==
'1'
)
{
...
...
@@ -399,7 +401,7 @@ onMounted(() => {
currMenu
.
isActive
=
true
}
console
.
log
(
route
.
name
)
if
(
user
.
utype
==
'2'
)
{
currMenu
=
_
.
find
(
menus
.
value
,
(
m
)
=>
{
return
m
.
routeName
===
route
.
name
...
...
@@ -412,7 +414,6 @@ onMounted(() => {
})
currMenu
.
isActive
=
true
}
})
const
toInfo
=
(
item
,
list
)
=>
{
...
...
@@ -420,37 +421,37 @@ const toInfo = (item, list) => {
m
.
isActive
=
false
})
item
.
isActive
=
true
router
.
push
({
name
:
item
.
routeName
})
}
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
:deep
(
.el-tabs__nav-wrap
)
{
padding
:
0
15px
;
}
.center-menu
{
text-align
:
center
;
li
{
margin-bottom
:
15px
;
}
&
.en-menu
{
text-align
:
left
;
li
{
padding
:
6px
0
6px
14px
;
a
{
display
:
flex
;
align-items
:
center
;
}
}
img
{
padding
:
0
;
width
:
26px
;
...
...
@@ -477,7 +478,7 @@ li img {
}
.el-card
{
box-shadow
:
none
!important
;
:deep(.el-card__body)
{
padding
:
0
!important
;
}
...
...
@@ -495,16 +496,16 @@ li img {
top
:
80px
;
width
:
100px
;
border-right
:
1px
solid
#eee
;
li
{
font-size
:
13px
;
padding
:
8px
10px
;
border-radius
:
0
;
img
{
display
:
none
}
&
.active
{
background
:
#fff
;
border-left
:
2px
solid
var
(
--el-color-primary
);
...
...
src/viewsPc/center/myInfo.vue
View file @
fb8342d
...
...
@@ -2,26 +2,29 @@
<div
class=
"mb20"
>
<el-card
:body-style=
"
{'padding':'0'}">
<div
class=
"indexTitle"
>
<h3
class=
"leftboderTT"
v-if=
"user.utype=='2'"
>
{{
language
==
0
?
'机构基础信息'
:
'ORGANIZATION BASIC INFORMATION'
}}
</h3>
<h3
class=
"leftboderTT"
v-if=
"user.utype=='1'"
>
{{
language
==
0
?
'个人基础信息'
:
'Personal Basic Information'
}}
</h3>
<h3
v-if=
"user.utype=='2'"
class=
"leftboderTT"
>
{{
language
==
0
?
'机构基础信息'
:
'ORGANIZATION BASIC INFORMATION'
}}
</h3>
<h3
v-if=
"user.utype=='1'"
class=
"leftboderTT"
>
{{
language
==
0
?
'个人基础信息'
:
'Personal Basic Information'
}}
</h3>
</div>
<!-- uType字段 1 是个人 2是团体-->
<!--
{{
user
}}
-->
<team-info
:form=
"myform"
v-if=
"user.utype=='2'"
/>
<div
class=
"pd20"
v-else
>
<team-info
v-if=
"user.utype=='2'"
:form=
"myform"
/>
<div
v-else
class=
"pd20"
>
<div
class=
"d-form-border"
style=
"margin-top: 0"
>
<el-form
class=
"d-form"
label-width=
"120"
:rules=
"rules"
ref=
"formref"
:label-position=
"language==0?'left':'top'"
style=
"max-width: 500px;margin: auto"
>
<el-form
ref=
"formref"
:label-position=
"language==0?'left':'top'"
:rules=
"rules"
class=
"d-form"
label-width=
"120"
style=
"max-width: 500px;margin: auto"
>
<el-form-item
:label=
"language==0?'用户名':'Account'"
>
{{
user
.
userName
}}
</el-form-item>
<el-form-item
:label=
"language==0?'姓名':'Real Name'"
required
prop=
"realName"
v-if=
"user.utype=='1'"
>
<el-input
v-model=
"myform.realName"
disabled
/>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'姓名':'Real Name'"
prop=
"realName"
required
>
<el-input
v-model=
"myform.realName"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
required
>
<el-form-item
:label=
"language==0?'性别':'Gender'"
required
>
<el-radio-group
v-model=
"myform.sex"
>
<el-radio
value=
"0"
>
{{
language
==
0
?
'女'
:
'female'
}}
</el-radio>
<el-radio
value=
"1"
>
{{
language
==
0
?
'男'
:
'male'
}}
</el-radio>
...
...
@@ -29,86 +32,91 @@
</el-form-item>
<el-form-item
:label=
"language==0?'出生日期':'Date of Birth'"
>
<el-date-picker
v-model=
"myform.birth"
style=
"width: 100%;
"
type=
"date"
format=
"YYYY-MM-DD
"
value-format=
"YYYY-MM-DD"
v-model=
"myform.birth"
format=
"YYYY-MM-DD
"
style=
"width: 100%;"
type=
"date
"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'代表':'Representing'"
required
v-if=
"user.utype=='1'"
>
<el-input
v-model=
"myform.representing"
disabled
/>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'代表':'Representing'"
required
>
<el-input
v-model=
"myform.representing"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==1?'Age group':'年龄组'"
required
v-if=
"user.utype=='1'"
>
<el-input
v-model=
"myform.ageGroup"
disabled
/>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==1?'Age group':'年龄组'"
required
>
<el-input
v-model=
"myform.ageGroup"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'舞种':'Division'"
required
v-if=
"user.utype=='1'"
>
<el-input
v-model=
"myform.division"
disabled
/>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'舞种':'Division'"
required
>
<el-input
v-model=
"myform.division"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'状态':'Status'"
required
v-if=
"user.utype=='1'"
>
<el-input
v-model=
"myform.wdsfStatus"
disabled
/>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'状态':'Status'"
required
>
<el-input
v-model=
"myform.wdsfStatus"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件号':'Passport number'"
required
v-if=
"user.utype=='1'"
>
<el-input
v-model=
"myform.passportNumber"
disabled
/>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'证件号':'Passport number'"
required
>
<el-input
v-model=
"myform.passportNumber"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'有效证件':'Valid Passport'"
required
v-if=
"user.utype=='1'"
>
<image-upload
v-model=
"myform.passportUrl"
:limit=
"1"
:is-show-tip=
"false"
:button-text=
"language==0?'上传':'Upload'"
/>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'证件姓名':'Name on Document'"
required
>
<el-input
v-model=
"myform.certName"
disabled
/>
</el-form-item>
<el-form-item
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
prop=
"wdsfMin"
v-if=
"user.utype=='1'"
>
{{
myform
.
wdsfMin
}}
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'有效证件':'Valid Passport'"
required
>
<image-upload
v-model=
"myform.passportUrl"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
/>
</el-form-item>
<el-form-item
v-if=
"user.utype=='1'"
:label=
"language==0?'WDSF会员号':'WDSF MIN'"
prop=
"wdsfMin"
>
{{
myform
.
wdsfMin
}}
</el-form-item>
<!--
<el-form-item
:label=
"language==0?'证件类型':'ID type'"
required
prop=
"idcType"
>
-->
<!--
<el-select
v-model=
"myform.idcType"
style=
"width: 100%"
>
-->
<!--
<el-option-->
<!-- v-for="item in certificates"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'证件号码':'ID NO'"
prop=
"idcCode"
>
-->
<!--
<el-input
v-model=
"myform.idcCode"
@
blur=
"checkCode"
/>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'类型':'Type'"
required
>
-->
<!--
<el-select
v-model=
"myform.type"
style=
"width: 100%;"
>
-->
<!--
<el-option
:label=
"language==0?'业余':'amateur'"
value=
"0"
/>
-->
<!--
<el-option
:label=
"language==0?'专业':'Professional'"
value=
"1"
/>
-->
<!--
<el-option
:label=
"language==0?'大专院校':'Colleges and universities'"
value=
"2"
/>
-->
<!--
<el-option
:label=
"language==0?'其他':'Other'"
value=
"3"
/>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'邮箱':'Email'"
required
prop=
"email"
>
-->
<!--
<el-input
v-model=
"myform.email"
type=
"email"
:placeholder=
"language==0?'请输入内容':''"
/>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'证件类型':'ID type'"
required
prop=
"idcType"
>
-->
<!--
<el-select
v-model=
"myform.idcType"
style=
"width: 100%"
>
-->
<!--
<el-option-->
<!-- v-for="item in certificates"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'证件号码':'ID NO'"
prop=
"idcCode"
>
-->
<!--
<el-input
v-model=
"myform.idcCode"
@
blur=
"checkCode"
/>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'类型':'Type'"
required
>
-->
<!--
<el-select
v-model=
"myform.type"
style=
"width: 100%;"
>
-->
<!--
<el-option
:label=
"language==0?'业余':'amateur'"
value=
"0"
/>
-->
<!--
<el-option
:label=
"language==0?'专业':'Professional'"
value=
"1"
/>
-->
<!--
<el-option
:label=
"language==0?'大专院校':'Colleges and universities'"
value=
"2"
/>
-->
<!--
<el-option
:label=
"language==0?'其他':'Other'"
value=
"3"
/>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item
:label=
"language==0?'邮箱':'Email'"
required
prop=
"email"
>
-->
<!--
<el-input
v-model=
"myform.email"
type=
"email"
:placeholder=
"language==0?'请输入内容':''"
/>
-->
<!--
</el-form-item>
-->
</el-form>
<div
class=
"text-center"
v-if=
"user.utype=='1'||user.utype=='2'
"
>
<el-button
type=
"primary"
class=
"btn-lineG"
round
@
click=
"save"
>
{{
language
==
0
?
'确定修改'
:
'Save'
}}
<div
v-if=
"user.utype=='1'||user.utype=='2'"
class=
"text-center
"
>
<el-button
class=
"btn-lineG"
round
type=
"primary"
@
click=
"save"
>
{{
language
==
0
?
'确定修改'
:
'Save'
}}
</el-button>
</div>
</div>
</div>
</el-card>
</div>
</
template
>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
useRouter
}
from
'vue-router'
import
{
getCurrentInstance
,
onMounted
}
from
'@vue/runtime-core'
import
{
ref
}
from
'vue'
import
{
useRouter
}
from
'vue-router'
import
{
getCurrentInstance
,
onMounted
}
from
'@vue/runtime-core'
import
*
as
match
from
'@/apiPc/match'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
nationList
}
from
'@/assets/js/data'
import
{
getGroupInfo
}
from
"@/apiPc/match"
;
import
TeamInfo
from
"@/viewsPc/center/teamInfo"
;
import
useUserStore
from
"@/store/modules/user"
;
import
{
useStorage
}
from
"@vueuse/core/index"
;
const
language
=
useStorage
(
'language'
,
0
)
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
nationList
}
from
'@/assets/js/data'
import
{
getGroupInfo
}
from
'@/apiPc/match'
import
TeamInfo
from
'@/viewsPc/center/teamInfo'
import
useUserStore
from
'@/store/modules/user'
import
{
useStorage
}
from
'@vueuse/core/index'
const
language
=
useStorage
(
'language'
,
0
)
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
props
=
defineProps
({
user
:
{
type
:
Object
,
...
...
@@ -116,13 +124,14 @@ const props = defineProps({
}
})
const
rules
=
ref
({
realName
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
sex
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
idcType
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
type
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
email
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
realName
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
certName
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
sex
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
idcType
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
type
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'change'
}],
idcCode
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
email
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}]
})
const
activeName
=
ref
(
'first'
)
const
myform
=
ref
({
...
...
@@ -158,18 +167,17 @@ function getData() {
if
(
user
.
utype
==
'1'
)
{
match
.
getMyPersonInfo
().
then
(
res
=>
{
myform
.
value
=
res
.
data
if
(
language
.
value
==
'1'
)
{
if
(
language
.
value
==
'1'
)
{
myform
.
value
.
type
=
'1'
}
})
}
}
function
save
()
{
match
.
saveMyBaseInfo
(
myform
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successfully'
)
})
match
.
saveMyBaseInfo
(
myform
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successfully'
)
})
}
function
checkCode
()
{
...
...
@@ -187,7 +195,7 @@ function checkCode() {
tmpStr
=
tmpStr
.
substring
(
0
,
4
)
+
'-'
+
tmpStr
.
substring
(
4
,
6
)
+
'-'
+
tmpStr
.
substring
(
6
)
}
myform
.
value
.
birth
=
tmpStr
const
res
=
/^
(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([
0-9
]
|X
)
$/
if
(
myform
.
value
.
idcCode
&&
res
.
test
(
myform
.
value
.
idcCode
))
{
const
genderCode
=
myform
.
value
.
idcCode
.
charAt
(
16
)
...
...
@@ -204,12 +212,12 @@ function checkCode() {
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
.indexTitle
{
margin
:
20px
0
12px
;
padding
:
0
20px
15px
;
border-bottom
:
1px
solid
#e5e5e5
;
h3
{
font-size
:
16px
;
color
:
var
(
--el-color-primary
);
...
...
src/viewsPc/match/components/addCoach_en.vue
View file @
fb8342d
...
...
@@ -59,19 +59,36 @@
<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
>
<!-- <el-form-item :label="language==0?'有效证件':'Valid Passport'" required>-->
<!-- <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-form-item
:label=
"language==0?'有效证件':'Valid Passport'"
prop=
""
required
>
<image-upload
v-model=
"form.passportUrl"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
ref=
"uploadPassportRef"
v-model=
"form.passportUrl"
:action=
"'/common/getPersonInfoFromCert/6'"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
param-name=
"pic"
@
response=
"ocrSuccess"
/>
<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,
<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
:label=
"language==0?'个人照片':'Photo'"
prop=
"picUrl"
>
...
...
@@ -80,7 +97,9 @@
class=
"threeFour"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件姓名':'Name'"
prop=
"certName"
>
<el-input
v-model=
"form.certName"
:disabled=
"editgay"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件类型':'ID Type'"
:required=
"!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
prop=
"idcType"
...
...
@@ -154,6 +173,7 @@ import { dayjs, ElMessage } from 'element-plus'
import
_
from
'lodash'
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
checkWdsf
,
getCaptchaSms
}
from
'@/apiPc/match'
import
ImageUpload
from
'/@/components/ImageUpload/index.vue'
const
language
=
useStorage
(
'language'
,
0
)
const
certificates
=
ref
([
...
...
@@ -414,6 +434,23 @@ function giveBirthDay() {
}
}
// 有效证件
const
ocrSuccess
=
(
res
)
=>
{
// form.value.passportUrl = res.data.url
console
.
log
(
form
.
value
.
passportUrl
)
if
(
res
.
code
==
200
)
{
form
.
value
.
passportUrl
=
res
.
data
.
url
form
.
value
.
idcCode
=
res
.
data
.
code
form
.
value
.
birth
=
res
.
data
.
birth
?.
slice
(
0
,
10
)
form
.
value
.
sex
=
res
.
data
.
sex
form
.
value
.
certName
=
res
.
data
.
name
form
.
value
.
idcType
=
res
.
data
.
type
==
'3'
?
'1'
:
'0'
}
else
if
(
res
.
code
==
500
)
{
ElMessage
.
warning
(
res
.
msg
)
form
.
value
.
passportCopy
=
''
}
}
function
submitForm
()
{
proxy
.
$refs
[
'dialogRef'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
...
...
@@ -451,6 +488,7 @@ function submitForm() {
if
(
groupId
.
value
!=
0
)
{
// 团队
form
.
value
.
groupId
=
groupId
.
value
form
.
value
.
ocrFlag
=
'1'
match
.
savePersonForMyGroup
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
...
...
@@ -466,6 +504,7 @@ function submitForm() {
})
}
else
{
if
(
isMe
.
value
)
{
form
.
value
.
ocrFlag
=
'1'
match
.
saveMyBaseInfo
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
...
...
@@ -473,6 +512,7 @@ function submitForm() {
})
}
else
{
form
.
value
.
cptId
=
cptId
.
value
form
.
value
.
ocrFlag
=
'1'
match
.
savePersonForMyPerson
(
form
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'保存成功'
:
'Save successful'
)
show
.
value
=
false
...
...
src/viewsPc/match/components/affix-invitation.vue
View file @
fb8342d
<
template
>
<el-dialog
v-model=
"show"
:title=
"title"
width=
"600px"
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=
"600px"
>
<div
class=
"boxInvitation pd20"
>
<div
class=
"text-center pd20"
v-if=
"showR"
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
/>
<!--
<h2
class=
"text-center"
>
{{
language
==
0
?
'申请已提交'
:
'Submitted successfully'
}}
</h2>
-->
<h4
class=
"text-center"
v-if=
"language == 0"
>
<div
v-if=
"showR"
class=
"text-center pd20"
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
>
<!--
<h2
class=
"text-center"
>
{{
language
==
0
?
'申请已提交'
:
'Submitted successfully'
}}
</h2>
-->
<h4
v-if=
"language == 0"
class=
"text-center"
>
我们已收到您的邀请函申请,并将尽快处理。请耐心等待。
</h4>
<h4
v-else
>
Your invitation letter application has been received,
<br
/
>
Your invitation letter application has been received,
<br>
and we will process it as soon as possible.
<br
/
>
<br>
Please be patient while waiting.
</h4>
<el-button
size=
"large"
type=
"primary"
@
click=
"conti"
round
class=
"btn-lineG
"
>
<el-button
class=
"btn-lineG"
round
size=
"large"
type=
"primary"
@
click=
"conti
"
>
{{
language
==
0
?
'继续提交'
:
'Continue To Submit'
}}
</el-button>
</div>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"iformRef"
label-position=
"right"
label-width=
"150px"
v-else
>
<el-form-item
:label=
"language==0?'姓名':'Name'"
required
prop=
"name"
>
<el-input
v-model=
"form.name"
@
input=
"handleInput"
/>
<el-form
v-else
ref=
"iformRef"
:model=
"form"
:rules=
"rules"
label-position=
"right"
label-width=
"150px"
>
<!--
<el-form-item
:label=
"language==0?'有效证件':'Passport Copy'"
prop=
"passportCopy"
required
>
-->
<!--
<image-upload-->
<!-- v-model="form.passportCopy" :button-text="language==0?'上传':'Upload'" :is-show-tip="false"-->
<!-- :limit="1"-->
<!-- />-->
<!--
</el-form-item>
-->
<el-form-item
:label=
"language==0?'有效证件':'Valid Passport'"
prop=
"passportCopy"
required
>
<image-upload
ref=
"uploadPassportRef"
v-model=
"form.passportCopy"
:action=
"'/common/getPersonInfoFromCert/6'"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
param-name=
"pic"
@
response=
"ocrSuccess"
/>
<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-form-item
:label=
"language==0?'姓名':'Name'"
prop=
"name"
required
>
<el-input
v-model=
"form.name"
@
input=
"handleInput"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
required
prop=
"gender"
>
<el-form-item
:label=
"language==0?'护照号':'Passport No.'"
prop=
"passportNo"
required
>
<el-input
v-model=
"form.passportNo"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
prop=
"gender"
required
>
<el-radio-group
v-model=
"form.gender"
>
<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-form-item
:label=
"language==0?'国籍':'Nationality'"
required
prop=
"nationality"
>
<el-select
filterable
v-model=
"form.nationality"
style=
"width: 100%;"
>
<el-option
v-for=
"item in countrys"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"item.id"
/>
<el-form-item
:label=
"language==0?'国籍':'Nationality'"
prop=
"nationality"
required
>
<el-select
v-model=
"form.nationality"
filterable
style=
"width: 100%;"
>
<el-option
v-for=
"item in countrys"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"item.id"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'出生日期':'Date of Birth'"
required
prop=
"birth"
>
<el-form-item
:label=
"language==0?'出生日期':'Date of Birth'"
prop=
"birth"
required
>
<el-date-picker
v-model=
"form.birth"
style=
"width: 100%;
"
placeholder=
"YYYY-MM-DD"
type=
"date"
format=
"YYYY-MM-DD
"
value-format=
"YYYY-MM-DD"
v-model=
"form.birth"
format=
"YYYY-MM-DD
"
placeholder=
"YYYY-MM-DD"
style=
"width: 100%;"
type=
"date
"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'邮箱':'Email'"
required
prop=
"email"
>
<el-input
v-model=
"form.email"
type=
"email"
/>
<div
class=
"tip"
v-if=
"language == 0"
>
如以团队名义申请邀请函,建议统一填写领队邮箱。
</div>
<div
class=
"tip"
v-else
>
If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the head of team.
<el-form-item
:label=
"language==0?'邮箱':'Email'"
prop=
"email"
required
>
<el-input
v-model=
"form.email"
type=
"email"
/>
<div
v-if=
"language == 0"
class=
"tip"
>
如以团队名义申请邀请函,建议统一填写领队邮箱。
</div>
<div
v-else
class=
"tip"
>
If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the
head of team.
</div>
</el-form-item>
<el-form-item
:label=
"language==0?'护照号':'Passport No.'"
required
prop=
"passportNo"
>
<el-input
v-model=
"form.passportNo"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'有效证件':'Passport Copy'"
required
prop=
"passportCopy"
>
<image-upload
v-model=
"form.passportCopy"
:limit=
"1"
:is-show-tip=
"false"
:button-text=
"language==0?'上传':'Upload'"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'抵达日期':'Date of Arrival'"
required
prop=
"arrival"
>
<el-form-item
:label=
"language==0?'抵达日期':'Date of Arrival'"
prop=
"arrival"
required
>
<el-date-picker
v-model=
"form.arrival"
placeholder
=
"YYYY-MM-DD"
style=
"width: 100%;
"
type=
"date"
format=
"YYYY-MM-DD
"
value-format=
"YYYY-MM-DD"
v-model=
"form.arrival"
format
=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD
"
style=
"width: 100%;"
type=
"date
"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'出发日期':'Date of Departure'"
required
prop=
"departure"
>
<el-form-item
:label=
"language==0?'出发日期':'Date of Departure'"
prop=
"departure"
required
>
<el-date-picker
v-model=
"form.departure"
style=
"width: 100%;
"
placeholder=
"YYYY-MM-DD"
type=
"date"
format=
"YYYY-MM-DD
"
value-format=
"YYYY-MM-DD"
v-model=
"form.departure"
format=
"YYYY-MM-DD
"
placeholder=
"YYYY-MM-DD"
style=
"width: 100%;"
type=
"date
"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'备注':'Remark '"
>
<el-input
type=
"textarea"
v-model=
"form.remark"
rows=
"3"
/>
<el-input
v-model=
"form.remark"
rows=
"3"
type=
"textarea"
/>
</el-form-item>
<div
class=
"text-center"
>
<el-button
type=
"primary"
size=
"large"
@
click=
"submit"
round
class=
"btn-lineG
"
>
<el-button
class=
"btn-lineG"
round
size=
"large"
type=
"primary"
@
click=
"submit
"
>
{{
language
==
0
?
'提交'
:
'SUBMIT'
}}
</el-button>
</div>
...
...
@@ -90,17 +120,17 @@
</
template
>
<
script
setup
>
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
getCurrentInstance
,
watch
}
from
"vue"
;
import
{
nextTick
}
from
"@vue/runtime-core"
;
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
addInvitation
,
countryList
}
from
"@/apiPc/match"
;
import
ImageUpload
from
"@/components/ImageUpload"
;
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
getCurrentInstance
,
watch
,
ref
}
from
'vue'
import
{
nextTick
}
from
'@vue/runtime-core'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
addInvitation
,
countryList
}
from
'@/apiPc/match'
import
ImageUpload
from
'@/components/ImageUpload'
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
language
=
useStorage
(
'language'
,
0
)
const
form
=
ref
({
gender
:
'0'
gender
:
'0'
})
const
show
=
ref
(
false
)
const
showR
=
ref
(
false
)
...
...
@@ -108,23 +138,24 @@ const title = ref('')
const
countrys
=
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
)
=>
{
console
.
log
(
params
)
show
.
value
=
true
title
.
value
=
params
.
title
cptId
.
value
=
params
.
cptId
}
defineExpose
({
open
})
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
...
...
@@ -145,10 +176,11 @@ function getCountryList() {
countrys
.
value
=
res
.
data
})
}
const
handleInput
=
(
value
)
=>
{
const
regex
=
/^
[
a-zA-Z
]
*$/
;
const
regexCh
=
/^
[\u
4e00-
\u
9fa5
]
+$/
;
if
(
language
.
value
==
0
)
{
const
regex
=
/^
[
a-zA-Z
]
*$/
const
regexCh
=
/^
[\u
4e00-
\u
9fa5
]
+$/
if
(
language
.
value
==
0
)
{
if
(
!
regexCh
.
test
(
value
))
{
form
.
value
.
name
=
''
ElMessage
.
warning
(
'请输入中文'
)
...
...
@@ -172,24 +204,41 @@ const submit = () => {
}
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
if
(
Array
.
isArray
(
form
.
value
.
passportCopy
))
{
form
.
value
.
passportCopy
=
form
.
value
.
passportCopy
[
0
].
url
}
form
.
value
.
ocrFlag
=
'1'
addInvitation
(
form
.
value
).
then
((
res
)
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'提交成功'
:
'Successfully!'
)
ElMessage
.
success
(
language
.
value
==
0
?
'提交成功'
:
'Successfully!'
)
showR
.
value
=
true
})
})
}
})
}
const
ocrSuccess
=
(
res
)
=>
{
// form.value.passportUrl = res.data.url
console
.
log
(
form
.
value
.
passportUrl
)
if
(
res
.
code
==
200
)
{
form
.
value
.
passportCopy
=
res
.
data
.
url
form
.
value
.
passportNo
=
res
.
data
.
code
form
.
value
.
birth
=
res
.
data
.
birth
?.
slice
(
0
,
10
)
form
.
value
.
gender
=
res
.
data
.
sex
form
.
value
.
name
=
res
.
data
.
name
}
else
if
(
res
.
code
==
500
)
{
ElMessage
.
warning
(
res
.
msg
)
form
.
value
.
passportCopy
=
''
}
}
const
conti
=
()
=>
{
showR
.
value
=
false
form
.
value
=
{
...
...
@@ -198,11 +247,18 @@ const conti = () => {
}
</
script
>
<
style
scoped
lang=
"scss"
>
.tip
{
font-size
:
12px
;}
<
style
lang=
"scss"
scoped
>
.tip
{
font-size
:
12px
;
}
.boxInvitation
{
width
:
90%
;
margin
:
auto
}
h4
{
font-size
:
15px
;
line-height
:
1.6
;}
h4
{
font-size
:
15px
;
line-height
:
1.6
;
}
</
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