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
2a7aa630
authored
2025-10-11 18:09:54 +0800
by
李婷婷
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
预定查询
1 parent
00bdea3a
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
496 additions
and
605 deletions
src/apiPc/common.js
src/viewsPc/booking/dinner.vue
src/viewsPc/booking/makeUp.vue
src/viewsPc/booking/photography.vue
src/viewsPc/booking/ticket/index.vue
src/viewsPc/booking/travel.vue
src/viewsPc/components/bookingSearch.vue
src/viewsPc/index.vue
src/viewsPc/index_en.vue
src/viewsPc/login.vue
src/viewsPc/register/personal.vue
vite.config.js
src/apiPc/common.js
View file @
2a7aa63
...
...
@@ -185,4 +185,40 @@ export function queryTicket(qy) {
params
:
qy
})
}
// 酒店
export
function
orderRoomList
(
qy
)
{
return
request
({
url
:
`/ota/orderRoom/getReservationRecordList`
,
method
:
'get'
,
params
:
qy
})
}
// 接送
export
function
orderCarList
(
qy
)
{
return
request
({
url
:
`/ota/orderCar/getReservationRecordList`
,
method
:
'get'
,
params
:
qy
})
}
export
function
orderMealList
(
qy
)
{
return
request
({
url
:
`/ota/orderMeal/getReservationRecordList`
,
method
:
'get'
,
params
:
qy
})
}
export
function
orderScenicList
(
qy
)
{
return
request
({
url
:
`/ota/orderScenic/getReservationRecordList`
,
method
:
'get'
,
params
:
qy
})
}
export
function
orderTicketList
(
qy
)
{
return
request
({
url
:
`/ota/orderTicket/getReservationRecordList`
,
method
:
'get'
,
params
:
qy
})
}
...
...
src/viewsPc/booking/dinner.vue
View file @
2a7aa63
...
...
@@ -75,7 +75,7 @@ onMounted(() => {
function
getList
()
{
query
.
value
.
activityId
=
route
.
params
.
cptId
getActivityRestaurantList
(
query
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
list
.
value
=
res
.
rows
.
filter
(
item
=>
item
.
viewStatus
==
'1'
);
})
}
...
...
src/viewsPc/booking/makeUp.vue
View file @
2a7aa63
...
...
@@ -75,7 +75,7 @@ onMounted(()=>{
function
getList
()
{
loading
.
value
=
true
booking
.
getMakeUpList
(
query
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
list
.
value
=
res
.
rows
.
filter
(
item
=>
item
.
viewStatus
==
1
)
loading
.
value
=
false
}).
catch
(
e
=>
{
loading
.
value
=
false
...
...
src/viewsPc/booking/photography.vue
View file @
2a7aa63
...
...
@@ -75,7 +75,7 @@ onMounted(()=>{
function
getList
()
{
loading
.
value
=
true
booking
.
getShootList
(
query
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
list
.
value
=
res
.
rows
.
filter
(
item
=>
item
.
viewStatus
==
1
)
loading
.
value
=
false
}).
catch
(
e
=>
{
loading
.
value
=
false
...
...
src/viewsPc/booking/ticket/index.vue
View file @
2a7aa63
...
...
@@ -159,17 +159,20 @@
</div>
</div>
<div
class=
"select_item_box"
>
<div
class=
"select_item"
>
<div
class=
"select_item
-tag
"
>
<div
v-for=
"it in tickList[selectForm.sessionType]"
:key=
"it.id"
:class=
"[
it.id == selectForm.latstId ? 'tagActive' : 'tag',
it.isView==0?'forbid':''
]"
@
click=
"selectTick(it)"
>
{{ it.name }}
<span
v-if=
"it.viewStatus === '1'"
:class=
"[
it.id == selectForm.latstId ? 'tagActive' : 'tag',
it.isView==0?'forbid':''
]"
>
{{ it.name}}
</span>
</div>
<div
class=
"father"
>
<el-image
...
...
@@ -665,6 +668,65 @@ getmatchData()
cursor
:
no-drop
;
}
}
.select_item-tag
{
display
:
flex
;
flex-wrap
:
wrap
;
//
gap
:
10px
;
user-select
:
none
;
.tag_t
{
padding
:
1px
15px
;
font-weight
:
400
;
font-size
:
14px
;
color
:
#493ceb
;
border-radius
:
6px
;
border
:
1px
solid
#453dea
;
margin-left
:
5px
;
}
.tag
{
display
:
flex
;
padding
:
12px
18px
;
background
:
#eeeeee
;
border-radius
:
4px
;
border
:
1px
solid
#29343c
;
font-size
:
14px
;
color
:
#4a4a4a
;
margin-right
:
10px
;
margin-bottom
:
10px
;
cursor
:
pointer
;
}
.tagActive
{
display
:
flex
;
padding
:
12px
18px
;
background
:
#fff
;
border-radius
:
4px
;
border
:
1px
solid
#493ceb
;
font-size
:
14px
;
color
:
#493ceb
;
margin-right
:
10px
;
margin-bottom
:
10px
;
cursor
:
pointer
;
}
.tao
{
border
:
1px
solid
#493ceb
;
font-size
:
14px
;
color
:
#493ceb
;
margin-left
:
10px
;
}
.tagDisabled
{
padding
:
12px
18px
;
background
:
#878787
;
border-radius
:
4px
;
border
:
1px
solid
#29343c
;
font-size
:
14px
;
color
:
#4a4a4a
;
cursor
:
no-drop
;
}
}
}
.btn
{
...
...
@@ -871,4 +933,11 @@ getmatchData()
}
}
}
.view-status-mark
{
color
:
#493ceb
;
/* 与票档主题色一致 */
font-size
:
12px
;
/* 小于票型名称字号,避免突兀 */
margin-left
:
4px
;
/* 与名称保持间距 */
font-weight
:
500
;
}
</
style
>
...
...
src/viewsPc/booking/travel.vue
View file @
2a7aa63
...
...
@@ -100,7 +100,7 @@ onMounted(() => {
function
getList
()
{
loading
.
value
=
true
booking
.
getScenicList
(
query
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
list
.
value
=
res
.
rows
.
filter
(
item
=>
item
.
viewStatus
==
'1'
);
loading
.
value
=
false
console
.
log
(
list
.
value
)
}).
catch
(
e
=>
{
...
...
src/viewsPc/components/bookingSearch.vue
View file @
2a7aa63
<
template
>
<el-dialog
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"language==0?'日程查询':'Schedule inquiry'"
align-center
append-to-body
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
style=
"min-width:350px;max-width: 500px"
>
<div
v-loading=
"loading"
style=
"min-height: 500px;height: 50vh;"
>
<div
v-if=
"!type||type==''"
>
<div
class=
"rItem"
@
click=
"type='0'"
>
{{
language
==
0
?
'按项目查询'
:
'Query by project'
}}
</div>
<div
class=
"rItem"
@
click=
"type='1'"
>
{{
language
==
0
?
'按团队查询'
:
'Query by team'
}}
</div>
<div
class=
"rItem"
@
click=
"type='2'"
>
{{
language
==
0
?
'按姓名查询'
:
'Query by name'
}}
</div>
</div>
<div
v-if=
"type=='0'"
>
<div
class=
"flex mt30"
>
<el-input
v-model=
"query"
:placeholder=
"language==0?'输入项目/ 项目编号查询':'Enter project name or code to Query'"
clearable
@
blur=
"search"
@
empty=
"search"
@
enter=
"search"
/>
<el-button
class=
"btn-lineG"
style=
"color: #fff"
@
click=
"search"
>
{{
<el-dialog
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"language === 0 ? '预订查询' : 'Reservation Inquiry'"
align-center
append-to-body
center
class=
"booking-inquiry-dialog"
close-icon=
"CircleClose"
destroy-on-close
>
<!-- 查询区域 -->
<div
class=
"search-container"
>
<el-input
v-model=
"query"
:placeholder=
"language === 0 ? '输入邮箱号查询' : 'Enter email to Query'"
clearable
@
blur=
"handleSearch"
@
empty=
"handleSearch"
@
enter=
"handleSearch"
class=
"search-input"
/>
<el-button
class=
"btn-lineG"
style=
"color: #fff"
@
click=
"handleSearch"
>
{{
language
==
0
?
'查询'
:
'Search'
}}
</el-button>
</div>
<div
v-if=
"list.length>0"
class=
"mt30 rollY"
>
<el-timeline>
<el-timeline-item
v-for=
"(form, index) in list"
:key=
"index"
:timestamp=
"form.date + ' ' + form.timeStr"
placement=
"top"
>
<div
class=
"text-primary"
>
<span
v-if=
"language==1&&form.projectNameEn"
>
{{
form
.
projectNameEn
}}
</span>
<span
v-else-if=
"form.projectName"
>
{{
form
.
projectName
}}
</span>
<span
class=
"fr"
>
{{
form
.
changCi
}}
<i
v-if=
"form.changCi"
>
/
</i>
{{
language
==
0
?
form
.
lun
:
form
.
lunEn
}}
</span>
</div>
<div>
{{
form
.
danceType
}}
</div>
<div>
{{
form
.
address
}}
</div>
</el-timeline-item>
</el-timeline>
</div>
<div
v-else
>
<el-empty
/>
</div>
</div>
<div
class=
"searchBox"
>
<div
v-if=
"type=='1'"
>
<div
class=
"flex mt20"
>
<el-input
v-model=
"query2"
:placeholder=
"language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'"
clearable
@
blur=
"searchTeam"
@
empty=
"searchTeam"
@
enter=
"searchTeam"
/>
<el-button
class=
"btn-lineG"
style=
"color: #fff"
@
click=
"searchTeam"
>
{{
language
==
0
?
'查询'
:
'Search'
}}
</el-button>
</div>
<span
class=
"tip"
>
*
{{
language
==
0
?
'模糊查询'
:
'Fuzzy query'
}}
</span>
<div
v-if=
"showGroupList"
class=
"text-danger text-center"
>
{{
language
==
0
?
'找到多个团体'
:
'Found multiple teams'
}}
</div>
<div
v-if=
"showGroupList"
class=
"groupList rollY"
>
<ul>
<li
v-for=
"(item, index) in groupList"
:key=
"index"
@
click=
"showDetail(item)"
>
{{
item
}}
<el-icon
class=
"fr"
>
<ArrowRight
/>
</el-icon>
</li>
</ul>
</div>
<div
v-if=
"teamlist.length>0"
class=
"temell mt20 rollY"
>
<el-collapse
accordion
>
<el-collapse-item
v-for=
"(team,index) in teamlist"
:key=
"index"
:name=
"index"
:title=
"team[0].title"
>
<el-timeline>
<el-timeline-item
v-for=
"(form, index) in team"
:key=
"index"
placement=
"top"
>
<div
class=
"text-primary"
style=
"position: relative;top:-15px"
>
{{
form
.
date
+
' '
+
form
.
timeStr
+
' / '
+
form
.
address
}}
<span
v-if=
"form.lunEn"
>
/
{{
form
.
lunEn
}}
</span>
<span
v-else-if=
"form.lun"
>
/
{{
form
.
lun
}}
</span>
<span
v-if=
"form.changCi "
>
/
{{
language
==
0
?
'场次'
:
'Session'
}}
:
{{
form
.
changCi
}}
</span>
</div>
<div
v-if=
"form.projectNameEn"
class=
"tname"
>
{{
form
.
projectNameEn
}}
</div>
<div
v-if=
"form.projectName"
class=
"tname"
>
{{
form
.
projectName
}}
</div>
<div>
{{
form
.
danceType
}}
</div>
</el-timeline-item>
</el-timeline>
</el-collapse-item>
</el-collapse>
</div>
</div>
<!-- 标签页 -->
<el-tabs
v-model=
"activeName"
class=
"tabs-container"
@
tab-click=
"handleTabClick"
>
<el-tab-pane
:label=
"language === 0 ? '酒店' : 'Hotel'"
name=
"1"
></el-tab-pane>
<el-tab-pane
:label=
"language === 0 ? '化妆' : 'Makeup'"
name=
"2"
></el-tab-pane>
<el-tab-pane
:label=
"language === 0 ? '接送' : 'Transfer'"
name=
"3"
></el-tab-pane>
<el-tab-pane
:label=
"language === 0 ? '旅游' : 'Tour'"
name=
"4"
></el-tab-pane>
<el-tab-pane
:label=
"language === 0 ? '票务' : 'Tickets'"
name=
"5"
></el-tab-pane>
</el-tabs>
<div
v-if=
"type=='2'"
>
<div
class=
"flex mt30"
>
<el-input
v-model=
"query3"
:placeholder=
"language==0?'输入选手姓名查询':'Enter the name of the player to Query'"
clearable
@
blur=
"personalSearch"
@
empty=
"personalSearch"
@
enter=
"personalSearch"
/>
<el-button
class=
"btn-lineG"
style=
"color: #fff"
@
click=
"personalSearch"
>
{{
language
==
0
?
'查询'
:
'Search'
}}
</el-button>
</div>
<div
v-if=
"list.length>0"
class=
"temell mt20 rollY"
>
<el-timeline>
<el-timeline-item
v-for=
"(team,j) in list"
:key=
"j"
placement=
"top"
>
<div
v-for=
"(form, index) in team"
v-show=
"index==0"
:key=
"index"
>
<div
class=
"text-primary"
style=
"position: relative;top:-15px"
>
{{
form
.
date
+
' '
+
form
.
timeStr
+
' / '
+
form
.
address
}}
<span
v-if=
"form.lunEn"
>
/
{{
form
.
lunEn
}}
</span>
<span
v-else-if=
"form.lun"
>
/
{{
form
.
lun
}}
</span>
<span
v-if=
"form.changCi "
>
/
{{
language
==
0
?
'场次'
:
'Session'
}}
:
{{
form
.
changCi
}}
</span>
</div>
<div
v-if=
"form.projectNameEn"
class=
"tname"
>
{{
form
.
projectNameEn
}}
</div>
<div
v-if=
"form.projectName"
class=
"tname"
>
{{
form
.
projectName
}}
</div>
<div>
{{
form
.
danceType
}}
</div>
</div>
<div
v-for=
"(form, index) in team"
v-show=
"index>0"
:key=
"index"
style=
"margin: 8px 0 0"
>
{{
form
.
date
+
' '
+
form
.
timeStr
+
' / '
+
form
.
address
}}
<span
v-if=
"form.lunEn"
>
/
{{
form
.
lunEn
}}
</span>
<span
v-else-if=
"form.lun"
>
/
{{
form
.
lun
}}
</span>
<span
v-if=
"form.changCi "
>
/
{{
language
==
0
?
'场次'
:
'Session'
}}
:
{{
form
.
changCi
}}
</span>
</div>
</el-timeline-item>
</el-timeline>
</div>
</div>
<!-- 加载状态 -->
<div
v-if=
"loading"
class=
"loading-container"
>
<el-loading
:text=
"language === 0 ? '查询中...' : 'Searching...'"
/>
</div>
<!-- 结果列表 -->
<div
v-else
class=
"results-container"
>
<!-- 酒店 -->
<el-card
v-for=
"(item, index) in list"
:key=
"index"
class=
"result-card"
v-if=
"activeName === '1'"
>
<p><span
class=
"label"
>
{{
language
===
0
?
'酒店名称:'
:
'Hotel Name:'
}}
</span>
{{
item
.
hotelName
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'酒店联系人:'
:
'Contact Person:'
}}
</span>
{{
item
.
contact
||
'-'
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'预定日期:'
:
'Booking Date:'
}}
</span>
{{
item
.
handleDate
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'预定数量:'
:
'Quantity:'
}}
</span>
{{
item
.
roomNum
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'入住人:'
:
'Guest:'
}}
</span>
{{
item
.
rzUsers
}}
</p>
</el-card>
<!-- 化妆 -->
<el-card
v-for=
"(item, index) in list"
:key=
"index"
class=
"result-card"
v-if=
"activeName === '2'"
>
<p><span
class=
"label"
>
{{
language
===
0
?
'商家名称:'
:
'Merchant:'
}}
</span>
{{
item
.
name
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'套餐名称:'
:
'Package:'
}}
</span>
{{
item
.
meal
?.
packageName
||
'-'
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'工作室联系人:'
:
'Studio Contact:'
}}
</span>
{{
item
.
contacts
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'预定数量:'
:
'Quantity:'
}}
</span>
{{
item
.
num
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'预定时间:'
:
'Booking Time:'
}}
</span>
{{
item
.
payDate
}}
</p>
</el-card>
<!-- 接送 -->
<el-card
v-for=
"(item, index) in list"
:key=
"index"
class=
"result-card"
v-if=
"activeName === '3'"
>
<p><span
class=
"label"
>
{{
language
===
0
?
'出发地:'
:
'From:'
}}
</span>
{{
item
.
resName
.
split
(
'——'
)[
0
]
||
'-'
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'终点地:'
:
'To:'
}}
</span>
{{
item
.
resName
.
split
(
'——'
)[
1
]
||
'-'
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'用车日期:'
:
'Date:'
}}
</span>
{{
item
.
revTime
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'乘坐人:'
:
'Passengers:'
}}
</span><span
v-html=
"item.person"
></span>
</p>
</el-card>
<!-- 旅游 -->
<el-card
v-for=
"(item, index) in list"
:key=
"index"
class=
"result-card"
v-if=
"activeName === '4'"
>
<p><span
class=
"label"
>
{{
language
===
0
?
'景点名称:'
:
'Attraction:'
}}
</span>
{{
item
.
name
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'景区联系人:'
:
'Contact:'
}}
</span>
{{
item
.
contact
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'预约日期:'
:
'Booking Date:'
}}
</span>
{{
item
.
dcStart
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'预约人:'
:
'Booker:'
}}
</span>
{{
item
.
contacts
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'集合地点:'
:
'Meeting Point:'
}}
</span>
{{
item
.
address
||
'-'
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'集合时间:'
:
'Meeting Time:'
}}
</span>
{{
item
.
startTime
||
'-'
}}
</p>
</el-card>
<!-- 票务 -->
<el-card
v-for=
"(item, index) in list"
:key=
"index"
class=
"result-card"
v-if=
"activeName === '5'"
>
<p><span
class=
"label"
>
{{
language
===
0
?
'票型:'
:
'Ticket Type:'
}}
</span>
{{
item
.
ticketTypeStr
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'预定日期:'
:
'Booking Date:'
}}
</span>
{{
item
.
ticketTimeName
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'场次:'
:
'Session:'
}}
</span>
{{
item
.
sessionTypeName
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'场馆:'
:
'Venue:'
}}
</span>
{{
item
.
stadiumName
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'区域:'
:
'Area:'
}}
</span>
{{
item
.
ticketName
||
'-'
}}
</p>
<p><span
class=
"label"
>
{{
language
===
0
?
'观影人:'
:
'Attendees:'
}}
</span><span
v-html=
"item.customers"
></span>
</p>
</el-card>
<!-- 无结果 -->
<div
v-if=
"list.length === 0"
class=
"empty-container"
>
<el-empty
:description=
"language === 0 ? '暂无相关预定记录' : 'No records found'"
/>
</div>
<div
v-if=
"list.length>0||showGroupList.length>0||teamlist.length>0||groupList.length>0"
class=
"text-center"
>
{{
language
==
0
?
'下滑查看更多'
:
'Scroll down to view more'
}}
</div>
</el-dialog>
</
template
>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
ElMessage
}
from
'element-plus'
import
{
ElMessage
,
ElLoading
}
from
'element-plus'
import
{
getquerySchedule2Pre
,
getqySchedule
,
getqySchedule2
,
getTeamBackNumber
,
getTeamBackNumberPre
,
queryScheduleSingle
orderRoomList
,
//酒店
orderMealList
,
//化妆
orderCarList
,
//接送
orderScenicList
,
//旅游
orderTicketList
,
//票务
}
from
'@/apiPc/common'
import
{
useStorage
}
from
'@vueuse/core/index'
// 状态管理
const
language
=
useStorage
(
'language'
,
0
)
const
show
=
ref
(
false
)
// const form = ref({})
const
list
=
ref
([])
const
loading
=
ref
(
false
)
const
groupList
=
ref
([])
const
teamlist
=
ref
([])
const
query
=
ref
(
''
)
const
query2
=
ref
(
''
)
const
query3
=
ref
(
''
)
const
type
=
ref
(
''
)
const
showGroupList
=
ref
(
false
)
const
cptId
=
ref
()
const
activeName
=
ref
(
'1'
)
const
search
=
()
=>
{
if
(
!
query
.
value
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入搜索关键词'
:
'Enter project name or code to Query'
)
return
}
getqySchedule
({
projectName
:
query
.
value
,
cptId
:
cptId
.
value
}).
then
(
res
=>
{
if
(
!
res
.
data
||
res
.
data
.
length
==
0
)
{
list
.
value
=
[]
// 提示 '未找到结果,请重新查询'
ElMessage
.
warning
(
language
.
value
==
0
?
'未找到结果,请重新查询'
:
'No result'
)
return
// 处理tab切换
const
handleTabClick
=
(
val
)
=>
{
activeName
.
value
=
val
.
paneName
if
(
query
.
value
)
{
handleSearch
()
}
list
.
value
=
res
.
data
}).
catch
(
e
=>
{
loading
.
value
=
false
})
}
const
searchTeam
=
()
=>
{
teamlist
.
value
=
[]
if
(
!
query2
.
value
||
query2
.
value
.
length
<
2
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入代表队名称至少两字符'
:
'Enter the representing team name,At least two characters'
)
// 处理搜索
const
handleSearch
=
()
=>
{
// 验证输入
if
(
!
query
.
value
)
{
ElMessage
.
warning
(
language
.
value
===
0
?
'请输入邮箱号'
:
'Enter email to Query'
)
return
}
// 显示加载状态
loading
.
value
=
true
getquerySchedule2Pre
({
groupName
:
query2
.
value
,
cptId
:
cptId
.
value
}).
then
(
res
=>
{
loading
.
value
=
false
if
(
!
res
.
data
||
res
.
data
.
length
==
0
)
{
groupList
.
value
=
[]
// 提示 '未找到结果,请重新查询'
ElMessage
.
warning
(
language
.
value
==
0
?
'未找到结果,请重新查询'
:
'No result'
)
return
}
groupList
.
value
=
res
.
data
if
(
groupList
.
value
.
length
==
1
)
{
showDetail
(
groupList
.
value
[
0
]
)
}
if
(
groupList
.
value
.
length
>
1
)
{
showGroupList
.
value
=
true
}
}).
catch
(
e
=>
{
loading
.
value
=
false
})
}
const
personalSearch
=
()
=>
{
if
(
!
query3
.
value
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入搜索关键词'
:
'Enter project name or code to Query'
)
return
list
.
value
=
[]
// 根据当前tab调用不同接口
const
params
=
{
createBy
:
query
.
value
}
let
requestPromise
;
switch
(
activeName
.
value
)
{
case
'1'
:
requestPromise
=
orderRoomList
(
params
)
break
case
'2'
:
requestPromise
=
orderMealList
(
params
)
break
case
'3'
:
requestPromise
=
orderCarList
(
params
)
break
case
'4'
:
requestPromise
=
orderScenicList
(
params
)
break
case
'5'
:
requestPromise
=
orderTicketList
(
params
)
break
default
:
requestPromise
=
Promise
.
reject
(
new
Error
(
'Invalid tab'
))
}
loading
.
value
=
true
queryScheduleSingle
({
query
:
query3
.
value
,
cptId
:
cptId
.
value
}).
then
(
res
=>
{
// 处理请求结果
requestPromise
.
then
(
res
=>
{
loading
.
value
=
false
if
(
!
res
.
data
||
res
.
data
.
length
==
0
)
{
if
(
!
res
.
rows
||
res
.
rows
.
length
=
==
0
)
{
list
.
value
=
[]
// 提示 '未找到结果,请重新查询'
ElMessage
.
warning
(
language
.
value
==
0
?
'未找到结果,请重新查询'
:
'No result'
)
ElMessage
.
info
(
language
.
value
===
0
?
'未找到结果,请重新查询'
:
'No results found'
)
return
}
list
.
value
=
res
.
data
list
.
value
=
res
.
rows
}).
catch
(
e
=>
{
loading
.
value
=
false
ElMessage
.
error
(
language
.
value
===
0
?
'查询失败,请稍后重试'
:
'Query failed, please try again later'
)
console
.
error
(
'查询错误:'
,
e
)
})
}
// 打开对话框
const
open
=
(
param
)
=>
{
console
.
log
(
param
)
cptId
.
value
=
param
.
cptId
cptId
.
value
=
param
?.
cptId
show
.
value
=
true
list
.
value
=
[]
teamlist
.
value
=
[]
groupList
.
value
=
[]
query
.
value
=
''
type
.
value
=
'
'
activeName
.
value
=
'1
'
loading
.
value
=
false
}
// 暴露方法
defineExpose
({
open
})
function
showDetail
(
name
)
{
query2
.
value
=
name
showGroupList
.
value
=
false
loading
.
value
=
true
getqySchedule2
({
groupName
:
name
,
cptId
:
cptId
.
value
}).
then
(
res
=>
{
loading
.
value
=
false
teamlist
.
value
=
res
.
data
}).
catch
(
e
=>
{
loading
.
value
=
false
})
}
</
script
>
<
style
lang=
"scss"
scoped
>
.tname
{
font-size
:
14px
;
font-weight
:
bold
;
position
:
relative
;
top
:
-8px
}
.booking-inquiry-dialog
{
min-width
:
300px
;
max-width
:
500px
;
padding
:
15px
;
.tip
{
font-size
:
12px
;
margin
:
4px
0
0
;
display
:
inline-block
;
//
适配移动端
@media
(
max-width
:
768px
)
{
width
:
90%
!important
;
max-width
:
none
;
}
}
.
rItem
{
max-height
:
130p
x
;
cursor
:
pointer
;
border
:
1px
solid
#e1e1e1
;
border-radius
:
4px
;
max-width
:
350px
;
text-align
:
center
;
line-height
:
130px
;
padding
:
1px
;
font-size
:
30px
;
color
:
#fff
;
margin
:
20px
auto
;
background
:
linear-gradient
(
90deg
,
#8623FC
,
#453DEA
)
;
.
search-container
{
display
:
fle
x
;
gap
:
10px
;
margin-bottom
:
20px
;
width
:
100%
;
.search-input
{
flex
:
1
;
}
.search-btn
{
background-color
:
#409eff
;
color
:
white
;
&:hover
{
background
:
linear-gradient
(
90deg
,
#453DEA
,
#8623FC
);
box-shadow
:
0
4px
10px
#453DEA
;
border
:
none
;
background-color
:
#66b1ff
;
}
}
}
.nowteamItem
{
.tabs-container
{
margin-bottom
:
20px
;
width
:
100%
;
border
:
1px
solid
#c8c5ff
;
margin-top
:
20px
;
position
:
relative
;
border-radius
:
4px
;
padding
:
0
0
20px
;
background
:
#FFFFFF
;
box-sizing
:
border-box
;
.info
{
.nowName
{
font-family
:
"DIN Alternate"
;
font-size
:
60px
;
font-weight
:
bold
;
overflow
:
hidden
;
display
:
block
;
margin
:
10px
;
}
label
{
text-align
:
right
;
font-size
:
14px
;
padding-left
:
7%
::v-deep
.el-tabs__nav
{
flex-wrap
:
wrap
;
}
div
{
font-size
:
14px
;
color
:
#333
;
margin
:
6px
0
0
;
}
::v-deep
.el-tabs__item
{
margin-bottom
:
5px
;
}
}
.temell
{
.nowteamItem
{
padding
:
10px
;
margin
:
0
0
10px
;
.loading-container
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
padding
:
40px
0
;
}
.nowName
{
font-size
:
15px
;
font-weight
:
bold
;
margin-right
:
10px
}
.results-container
{
max-height
:
500px
;
overflow-y
:
auto
;
padding-right
:
5px
;
.text-bold
{
font-weight
:
bold
;
//
滚动条美化
&::-webkit-scrollbar
{
width
:
6px
;
}
.fontsize14
{
font-size
:
14px
;
}
&
::-webkit-scrollbar-thumb
{
background-color
:
#ddd
;
border-radius
:
3px
;
}
}
.groupList
{
max-height
:
70vh
;
overflow
:
auto
;
border
:
1px
solid
#e1e1e1
;
margin-top
:
10px
;
.result-card
{
margin-bottom
:
15px
;
border-radius
:
6px
;
overflow
:
hidden
;
li
{
padding
:
10px
;
border-bottom
:
1px
solid
#e1e1e1
;
cursor
:
pointer
;
::v-deep
.el-card__body
{
padding
:
15px
;
}
}
.searchBox
{
height
:
50vh
;
//
overflow-y
:
auto
;
p
{
margin
:
0
0
8px
0
;
line-height
:
1.5
;
font-size
:
14px
;
.label
{
color
:
#666
;
font-weight
:
500
;
}
}
p
:last-child
{
margin-bottom
:
0
;
}
}
.
rollY
{
height
:
45vh
;
overflow-y
:
auto
;
.
empty-container
{
padding
:
40px
0
;
text-align
:
center
;
}
</
style
>
...
...
src/viewsPc/index.vue
View file @
2a7aa63
<
template
>
<div>
<div
class=
"banner"
>
<el-carousel
:autoplay=
"false"
:interval=
"2000"
arrow=
"hover"
class=
"forPc"
height=
"450px"
@
change=
"carouselChange"
>
<el-carousel
:autoplay=
"false"
:interval=
"2000"
arrow=
"hover"
class=
"forPc"
height=
"450px"
@
change=
"carouselChange"
>
<el-carousel-item
v-for=
"n in maList"
:key=
"n.id"
style=
"height: 450px;"
>
<div
class=
"bannerItem"
>
<div
class=
"h100"
@
click
.
stop=
"goMatch(n)"
>
<img
v-if=
"n.bgImgUrl"
:src=
"fillImgUrl(n.bgImgUrl)"
class=
"bannerImg"
>
<img
v-else
class=
"bannerImg"
src=
"@/assets/dance/banner.png"
>
<div
class=
"box forPc"
style=
"position: absolute;top: 0;left: 0;right: 0;margin: auto;"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
@
click=
"goMatch(n)"
>
距离开始还有
<van-count-down
:time=
"n.time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<template
#
default=
"timeData"
>
...
...
@@ -34,30 +31,21 @@
</
template
>
</van-count-down>
</div>
<div
v-if=
"n.timeEnd
<
0"
>
<div
v-if=
"n.timeEnd
<
0"
>
<div
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
报名已结束
</div>
</div>
<div
v-if=
"n.time
<=0 && n.timeEnd>=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time
<= 0 && n.timeEnd >=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
开始报名
</div>
<div
style=
"position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"
>
<a
class=
" btn2"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
赛事直播
style=
"position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"
>
<a
class=
" btn2"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
赛事直播
</a>
<a
class=
" btn2"
@
click
.
stop=
"popMaster"
>
公益课
<a
class=
" btn2"
@
click
.
stop=
"popMaster"
>
公益课
</a>
</div>
...
...
@@ -73,7 +61,7 @@
<img
v-if=
"n.bgImgUrl"
:src=
"fillImgUrl(n.bgImgUrl)"
class=
"bannerImg"
>
<img
v-else
class=
"bannerImg"
src=
"@/assets/dance/banner.png"
>
<div
style=
"position: absolute;left: 0;right: 0;top: 100px;margin: auto;"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
@
click=
"goMatch(n)"
>
距离开始还有
<van-count-down
:time=
"n.time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<
template
#
default=
"timeData"
>
...
...
@@ -95,31 +83,22 @@
</
template
>
</van-count-down>
</div>
<div
v-if=
"n.timeEnd
<
0"
>
<div
v-if=
"n.timeEnd
<
0"
>
<div
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
报名已结束
</div>
</div>
<div
v-if=
"n.time
<=0 && n.timeEnd>=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time
<= 0 && n.timeEnd >=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
开始报名
</div>
</div>
<div
style=
"position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"
>
<a
class=
" btn2-phone"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
赛事直播
style=
"position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"
>
<a
class=
" btn2-phone"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
赛事直播
</a>
<a
class=
" btn2-phone"
@
click
.
stop=
"popMaster"
>
公益课
<a
class=
" btn2-phone"
@
click
.
stop=
"popMaster"
>
公益课
</a>
</div>
</div>
...
...
@@ -140,16 +119,10 @@
<download
/>
</el-icon>
</a>
<a
class=
"zn-btn ml20 btn-q"
@
click=
"reserveSearch"
>
预定查询
</a>
<br/>
<a
v-show=
"matchData?.id"
class=
"zn-btn btn-q mt20"
@
click=
"backNumberSearch"
>
背号查询
</a>
<a
v-show=
"matchData?.id"
class=
"zn-btn ml20 btn-q"
@
click=
"schSearch"
>
日程查询
</a>
<a
class=
"zn-btn ml10 btn-q"
@
click=
"reserveSearch"
>
预订查询
</a>
<a
v-show=
"matchData?.id"
class=
"zn-btn ml10 btn-q mt20"
@
click=
"backNumberSearch"
>
背号查询
</a>
<a
v-show=
"matchData?.id"
class=
"zn-btn ml10 btn-q"
@
click=
"schSearch"
>
日程查询
</a>
</div>
</el-col>
<el-col
:lg=
"14"
:sm=
"24"
>
...
...
@@ -168,7 +141,7 @@
<a
class=
"more"
href=
"#/saiC"
>
MORE
</a>
</div>
<!--赛事日历-->
<el-card
:body-style=
"{
'padding':'20px 20px'
}"
>
<el-card
:body-style=
"{
'padding': '20px 20px'
}"
>
<home-calendar
/>
</el-card>
</el-col>
...
...
@@ -178,14 +151,14 @@
<a
class=
"more"
href=
"#/saiC"
>
MORE
</a>
</div>
<!--历史排名-->
<el-card
:body-style=
"{
'padding':'10px 20px 18px'
}"
>
<el-card
:body-style=
"{
'padding': '10px 20px 18px'
}"
>
<el-table
:data=
"rank"
height=
"495"
stripe
@
row-click=
"handleRowClick"
>
<el-table-column
align=
"center"
label=
"名次"
prop=
"index"
width=
"50"
/>
<el-table-column
label=
"国家"
prop=
"name"
>
<
template
#
default=
"scope"
>
<div>
<span
v-if=
"scope.row.code
!=
'tw'"
:class=
"`flag-icon flag-icon-$
{scope.row.code}`" />
<span
v-if=
"scope.row.code
!=
'tw'"
:class=
"`flag-icon flag-icon-$
{scope.row.code}`" />
<span
v-else
class=
"flag-icon"
>
<img
:src=
"hkImage"
alt=
""
class=
"hkimg"
>
</span>
...
...
@@ -247,11 +220,7 @@
<a
class=
"more"
@
click=
"goNews"
>
MORE
</a>
</div>
<el-row
:gutter=
"20"
>
<el-col
v-for=
"(n,index) in newest2"
:key=
"n.id"
:lg=
"8"
:sm=
"8"
:xs=
"24"
>
<el-col
v-for=
"(n, index) in newest2"
:key=
"n.id"
:lg=
"8"
:sm=
"8"
:xs=
"24"
>
<div
class=
"activeItem"
@
click=
"goDetail(n)"
>
<div
class=
"imgbox"
>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
>
...
...
@@ -281,7 +250,7 @@
<el-row
:gutter=
"20"
>
<el-col
:lg=
"8"
>
<a
class=
"liveImgbox"
target=
"_blank"
@
click=
"golive(livelist[0])"
>
<div
v-if=
"time
>
0"
class=
"livetimecount"
>
<div
v-if=
"time
>
0"
class=
"livetimecount"
>
<van-count-down
:time=
"time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<
template
#
default=
"timeData"
>
<div
class=
"block"
>
{{
timeData
.
days
}}
...
...
@@ -299,13 +268,13 @@
</
template
>
</van-count-down>
</div>
<i
v-else-if=
"etime
>0&&time<=
0"
class=
"ii"
>
直播中
</i>
<i
v-else-if=
"etime
> 0 && time <=
0"
class=
"ii"
>
直播中
</i>
<!-- <i class="livetimecount" v-if="etime<=0">直播已结束</i>-->
<div
class=
"imgBox"
>
<img
v-if=
"time
>
0"
src=
"/img/111.jpg"
>
<img
v-if=
"time
>
0"
src=
"/img/111.jpg"
>
<img
v-else
:src=
"fillImgUrl_webSite(livelist[0]?.picUrl)"
>
</div>
<h3
v-if=
"time
>
0"
class=
"esp"
>
<h3
v-if=
"time
>
0"
class=
"esp"
>
2025WDSF亚洲体育舞蹈节
</h3>
<h3
v-else
class=
"esp"
>
...
...
@@ -315,12 +284,9 @@
</el-col>
<el-col
:lg=
"16"
>
<div
class=
"swiperPic"
>
<swiper
:autoplay=
"true"
:loop=
"true"
:modules=
"modules"
:navigation=
"navigationPic"
:slides-per-view=
"3"
:space-between=
"20"
class=
"swiper-wrapper"
>
<swiper-slide
v-for=
"(n,i) in picList"
:key=
"i"
>
<swiper
:autoplay=
"true"
:loop=
"true"
:modules=
"modules"
:navigation=
"navigationPic"
:slides-per-view=
"3"
:space-between=
"20"
class=
"swiper-wrapper"
>
<swiper-slide
v-for=
"(n, i) in picList"
:key=
"i"
>
<div
class=
"picbox"
@
click=
"goDetail(n)"
>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
>
</div>
...
...
@@ -332,11 +298,12 @@
</el-col>
</el-row>
<el-row
class=
"news-l-r"
>
<el-col
v-for=
"(n,
index) in livelist"
v-show=
"index>
0"
:lg=
"8"
>
<el-col
v-for=
"(n,
index) in livelist"
v-show=
"index >
0"
:lg=
"8"
>
<div
class=
"item"
style=
"padding: 0;margin: 20px 0 0"
@
click=
"goDetail(n)"
>
<div
class=
"imgbox"
>
<i
class=
"playIcon"
/>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
></div>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
>
</div>
<div
class=
"info"
>
<div
class=
"text-primary small-size"
>
<span
v-if=
"n.subName"
>
{{ n.subName + ' | ' }}
</span>
...
...
@@ -358,10 +325,7 @@
<h3
class=
"leftboderTT"
>
评委介绍
</h3>
</div>
<el-row
:gutter=
"20"
>
<el-col
v-for=
"n in personList"
:key=
"n.name"
:lg=
"4"
:md=
"8"
:sm=
"12"
:xl=
"4"
:xs=
"12"
>
<el-col
v-for=
"n in personList"
:key=
"n.name"
:lg=
"4"
:md=
"8"
:sm=
"12"
:xl=
"4"
:xs=
"12"
>
<div
class=
"teacher"
@
click=
"goLeaderInfo"
>
<div
class=
"imgbox"
><img
:src=
"n.src"
></div>
<h3
class=
"esp"
>
{{ n.name }}
</h3>
...
...
@@ -387,8 +351,7 @@
</div>
<div
class=
"mt30 text-center"
>
<a
class=
"btn-lineG"
href=
"#/about/wuDao"
style=
"display: inline-flex;align-items: center;"
>
了解更多
<img
src=
"@/assets/v1/more.png"
style=
"filter: brightness(2);height: 8px"
></a>
src=
"@/assets/v1/more.png"
style=
"filter: brightness(2);height: 8px"
></a>
</div>
</div>
...
...
@@ -437,36 +400,22 @@
<img
src=
"@/assets/logo/Invitation_c.png"
@
click=
"applyInvitation"
v-if=
"matchData.invitationSw == '1'"
>
<!-- && maList.invitationSw == '1' -->
<div
v-if=
"clubImage && matchData.visaSw == '1'"
style=
"padding-left: 7px;"
>
<el-image
:preview-src-list=
"[clubImage]"
:src=
"clubImage"
fit=
"cover"
preview-teleported
style=
"width: 120px"
/>
<el-image
:preview-src-list=
"[clubImage]"
:src=
"clubImage"
fit=
"cover"
preview-teleported
style=
"width: 120px"
/>
</div>
</div>
<!-- 群聊-->
<div
v-if=
"matchData.chatQrcode"
class=
"fixed_gg_l club"
>
<el-image
:preview-src-list=
"[ fillImgUrl(matchData.chatQrcode) ]"
:src=
"fillImgUrl(matchData.chatQrcode)"
fit=
"cover"
preview-teleported
style=
"width: 120px;height: 120px"
/>
<el-image
:preview-src-list=
"[fillImgUrl(matchData.chatQrcode)]"
:src=
"fillImgUrl(matchData.chatQrcode)"
fit=
"cover"
preview-teleported
style=
"width: 120px;height: 120px"
/>
</div>
<affix-invitation
ref=
"dialogInvitationRef"
/>
<el-dialog
v-model=
"liveQrcodeShow"
:title=
"language
==0?'赛事直播' :
'Live QR Code'"
width=
"350px"
>
<el-dialog
v-model=
"liveQrcodeShow"
:title=
"language
== 0 ? '赛事直播' :
'Live QR Code'"
width=
"350px"
>
<div
v-if=
"matchData.liveQrcode"
style=
"display: flex;justify-content: space-between"
>
<el-image
:src=
"fillImgUrl(matchData.liveQrcode)"
fit=
"cover"
style=
"width: 350px;"
/>
<el-image
:src=
"fillImgUrl(matchData.liveQrcode)"
fit=
"cover"
style=
"width: 350px;"
/>
</div>
</el-dialog>
...
...
@@ -505,7 +454,7 @@ const navigationPic = ref({
})
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'pop'
,
'pickup'
,
'backNumber'
,
'schSearch'
,
'reserveSearch'
])
const
emit
=
defineEmits
([
'pop'
,
'pickup'
,
'backNumber'
,
'schSearch'
,
'reserveSearch'
])
const
time
=
ref
(
0
)
const
etime
=
ref
(
0
)
const
personList
=
ref
([
...
...
@@ -584,7 +533,7 @@ const init = () => {
})
match
.
getMaList
({
topFlag
:
1
}).
then
((
res
)
=>
{
maList
.
value
=
res
.
rows
console
.
log
(
333
,
maList
.
value
)
console
.
log
(
333
,
maList
.
value
)
for
(
const
n
of
maList
.
value
)
{
const
today
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
if
(
n
.
signBeginTime
)
{
...
...
@@ -665,11 +614,11 @@ const goGuide = () => {
})
}
const
liveQrcodeShowBtn
=
()
=>
{
if
(
!
matchData
.
value
.
liveQrcode
)
{
if
(
!
matchData
.
value
.
liveQrcode
)
{
ElMessage
.
warning
(
'当前赛事暂无直播'
)
return
}
else
{
liveQrcodeShow
.
value
=
true
}
else
{
liveQrcodeShow
.
value
=
true
}
}
const
popMaster
=
()
=>
{
...
...
@@ -715,7 +664,6 @@ function applyInvitation() {
</
script
>
<
style
lang=
"scss"
scoped
>
.zn-bg
{
background
:
linear-gradient
(
90deg
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#453DEA
,
#8623FC
);
border-radius
:
15px
;
...
...
@@ -1028,8 +976,7 @@ function applyInvitation() {
background
:
linear-gradient
(
0deg
,
rgba
(
255
,
255
,
255
,
1
),
rgba
(
255
,
255
,
255
,
0
));
}
.btn-lineG
{
}
.btn-lineG
{}
}
.mapBox
{
...
...
@@ -1146,6 +1093,7 @@ function applyInvitation() {
.box
{
width
:
94%
}
.calendarList
{
padding
:
0
;
...
...
@@ -1155,12 +1103,15 @@ function applyInvitation() {
}
}
}
.aboutBox
{
padding
:
20px
30px
;
}
.indexTitle
{
margin
:
30px
0
20px
}
.teacher
{
height
:
320px
;
margin
:
0
0
20px
;
...
...
@@ -1169,9 +1120,11 @@ function applyInvitation() {
height
:
260px
}
}
.activeItem
{
margin
:
0
0
20px
;
}
.mapBox
{
div
{
padding-left
:
40px
;
...
...
@@ -1192,9 +1145,11 @@ function applyInvitation() {
word-break
:
break-all
;
}
}
.fixed_gg
{
display
:
none
;
}
.bannerItem
.banner-count
{
flex-direction
:
column
;
transform
:
scale
(
0.5
);
...
...
@@ -1256,6 +1211,7 @@ function applyInvitation() {
.forPc
{
display
:
none
!important
;
}
.logobox
{
height
:
60px
;
}
...
...
@@ -1338,6 +1294,7 @@ function applyInvitation() {
color
:
#fff
;
border-radius
:
20px
;
}
.btn2-phone
{
cursor
:
pointer
;
padding
:
10px
20px
;
...
...
@@ -1375,5 +1332,4 @@ function applyInvitation() {
}
}
}
</
style
>
...
...
src/viewsPc/index_en.vue
View file @
2a7aa63
<
template
>
<div>
<div
class=
"banner"
>
<el-carousel
:autoplay=
"false"
:interval=
"2000"
arrow=
"hover"
class=
"forPc"
height=
"450px"
@
change=
"carouselChange"
>
<el-carousel
:autoplay=
"false"
:interval=
"2000"
arrow=
"hover"
class=
"forPc"
height=
"450px"
@
change=
"carouselChange"
>
<el-carousel-item
v-for=
"n in maList"
:key=
"n.id"
style=
"height: 450px;"
>
<div
class=
"bannerItem"
>
<div
class=
"h100"
@
click
.
stop=
"goMatch(n)"
>
...
...
@@ -13,7 +10,7 @@
<img
v-else
class=
"bannerImg"
src=
"@/assets/dance/banner.png"
>
<div
class=
"box"
style=
"position: absolute;top: 0;left: 0;right: 0;margin: auto;"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
>
Countdown
<van-count-down
:time=
"n.time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<template
#
default=
"timeData"
>
...
...
@@ -35,29 +32,22 @@
</
template
>
</van-count-down>
</div>
<div
v-if=
"n.timeEnd
<
0"
>
<div
v-if=
"n.timeEnd
<
0"
>
<div
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
Registration has ended
</div>
</div>
<div
v-if=
"n.time
<=0&&n.timeEnd>=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time
<= 0 && n.timeEnd >=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
REGISTER NOW
</div>
<div
style=
"position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"
>
<a
class=
" btn2"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
style=
"position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"
>
<a
class=
" btn2"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
<!-- 赛事直播-->
Live Qrcode
</a>
<a
class=
" btn2"
@
click
.
stop=
"popMaster"
>
Junior
&
Youth Camp REGISTER
<a
class=
" btn2"
@
click
.
stop=
"popMaster"
>
Junior
&
Youth Camp REGISTER
</a>
</div>
</div>
...
...
@@ -72,7 +62,7 @@
<img
v-if=
"n.bgImgUrl"
:src=
"fillImgUrl(n.bgImgUrl)"
class=
"bannerImg"
>
<img
v-else
class=
"bannerImg"
src=
"@/assets/dance/banner.png"
>
<div
style=
"position: absolute;left: 0;right: 0;top: 100px;margin: auto;"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
>
<div
v-if=
"n.time
>
0"
class=
"banner-count"
>
Countdown
<van-count-down
:time=
"n.time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<
template
#
default=
"timeData"
>
...
...
@@ -94,31 +84,24 @@
</
template
>
</van-count-down>
</div>
<div
v-if=
"n.timeEnd
<
0"
>
<div
v-if=
"n.timeEnd
<
0"
>
<div
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
Registration has ended
</div>
</div>
<div
v-if=
"n.time
<=0&&n.timeEnd>=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time
<= 0 && n.timeEnd >=
0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
REGISTER NOW
</div>
</div>
<div
style=
"position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"
>
style=
"position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"
>
<a
class=
" btn2-phone"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
<a
class=
" btn2-phone"
style=
"z-index: 999999"
@
click
.
stop=
"liveQrcodeShowBtn"
>
Live Qrcode
</a>
<a
class=
" btn2-phone"
@
click
.
stop=
"popMaster"
>
Junior
&
Youth Camp REGISTER
<a
class=
" btn2-phone"
@
click
.
stop=
"popMaster"
>
Junior
&
Youth Camp REGISTER
</a>
</div>
</div>
...
...
@@ -141,7 +124,7 @@
<download
/>
</el-icon>
</a>
<a
class=
"zn-btn ml20 btn-q"
@
click=
"popMaster"
>
Booking
Inquiry
</a>
<a
class=
"zn-btn ml20 btn-q"
@
click=
"reserveSearch"
>
Reservation
Inquiry
</a>
<!-- <a
v-if="matchData.isCourseView==1" class="zn-btn ml20 btn-q forPc"
style="font-size: 15px;margin-right: 20px" @click="popMaster"
...
...
@@ -177,7 +160,7 @@
<a
class=
"more"
@
click=
"gosaiC"
>
MORE
</a>
</div>
<!--赛事日历-->
<el-card
:body-style=
"{
'padding':'20px 20px'
}"
>
<el-card
:body-style=
"{
'padding': '20px 20px'
}"
>
<home-calendar
/>
</el-card>
</el-col>
...
...
@@ -187,7 +170,7 @@
<!-- <a class="more" href="#/saiC">MORE</a>-->
</div>
<!--历史排名-->
<el-card
:body-style=
"{
'padding':'10px 20px 18px'
}"
>
<el-card
:body-style=
"{
'padding': '10px 20px 18px'
}"
>
<el-table
:data=
"rank"
height=
"490"
stripe
@
row-click=
"handleRowClick"
>
<el-table-column
align=
"center"
label=
"RANK"
prop=
"index"
width=
"80"
>
<!-- <template #default="scope">-->
...
...
@@ -201,7 +184,7 @@
<
template
#
default=
"scope"
>
<div>
<!--
<span
:class=
"`flag-icon flag-icon-$
{scope.row.code}`" />-->
<span
v-if=
"scope.row.code
!=
'tw'"
:class=
"`flag-icon flag-icon-$
{scope.row.code}`" />
<span
v-if=
"scope.row.code
!=
'tw'"
:class=
"`flag-icon flag-icon-$
{scope.row.code}`" />
<span
v-else
class=
"flag-icon"
>
<img
:src=
"hkImage"
alt=
""
class=
"hkimg"
>
</span>
...
...
@@ -256,11 +239,7 @@
<a
class=
"more"
@
click=
"goNews"
>
MORE
</a>
</div>
<el-row
:gutter=
"20"
>
<el-col
v-for=
"(n,index) in newest2"
:key=
"n.id"
:lg=
"8"
:sm=
"8"
:xs=
"24"
>
<el-col
v-for=
"(n, index) in newest2"
:key=
"n.id"
:lg=
"8"
:sm=
"8"
:xs=
"24"
>
<div
class=
"activeItem"
@
click=
"goNewsDetail(n)"
>
<div
class=
"imgbox"
>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
>
...
...
@@ -291,7 +270,7 @@
<el-row
:gutter=
"20"
>
<el-col
:lg=
"8"
>
<a
class=
"liveImgbox"
href=
"https://wx.vzan.com/live/page/1151815649?v=1720589464698"
target=
"_blank"
>
<div
v-if=
"time
>
0"
class=
"livetimecount"
>
<div
v-if=
"time
>
0"
class=
"livetimecount"
>
<van-count-down
:time=
"time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<
template
#
default=
"timeData"
>
<div
class=
"block"
>
{{
timeData
.
days
}}
...
...
@@ -320,12 +299,9 @@
<el-col
:lg=
"16"
>
<div
class=
"swiperPic forPx"
>
<swiper
:autoplay=
"true"
:loop=
"true"
:modules=
"modules"
:navigation=
"navigationPic"
:slides-per-view=
"3"
:space-between=
"20"
class=
"swiper-wrapper"
>
<swiper-slide
v-for=
"(n,i) in picList"
:key=
"i"
>
<swiper
:autoplay=
"true"
:loop=
"true"
:modules=
"modules"
:navigation=
"navigationPic"
:slides-per-view=
"3"
:space-between=
"20"
class=
"swiper-wrapper"
>
<swiper-slide
v-for=
"(n, i) in picList"
:key=
"i"
>
<div
class=
"picbox"
@
click=
"goNewsDetail(n)"
>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
>
</div>
...
...
@@ -338,11 +314,12 @@
</el-col>
</el-row>
<el-row
class=
"news-l-r"
>
<el-col
v-for=
"(n,
index) in livelist"
v-show=
"index>
0"
:lg=
"8"
>
<el-col
v-for=
"(n,
index) in livelist"
v-show=
"index >
0"
:lg=
"8"
>
<div
class=
"item"
style=
"padding: 0;margin: 20px 0 0"
@
click=
"goNewsDetail(n)"
>
<div
class=
"imgbox"
>
<i
class=
"playIcon"
/>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
></div>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
>
</div>
<div
class=
"info"
>
<div
class=
"text-primary small-size"
>
<span
v-if=
"n.subName"
>
{{ n.subName + ' | ' }}
</span>
...
...
@@ -364,10 +341,7 @@
<h3
class=
"leftboderTT"
>
INTRODUCTION OF ADJUDICATORS
</h3>
</div>
<el-row
:gutter=
"20"
>
<el-col
v-for=
"n in personList"
:key=
"n.name"
:lg=
"4"
:sm=
"8"
:xl=
"4"
:xs=
"12"
>
<el-col
v-for=
"n in personList"
:key=
"n.name"
:lg=
"4"
:sm=
"8"
:xl=
"4"
:xs=
"12"
>
<div
class=
"teacher"
>
<div
class=
"imgbox"
><img
:src=
"n.src"
></div>
<h3
class=
"esp"
>
{{ n.name }}
</h3>
...
...
@@ -440,36 +414,21 @@
<img
src=
"@/assets/logo/Invitation_e.png"
@
click=
"applyInvitation"
v-if=
"matchData.invitationSw == '1'"
>
<div
style=
"padding-left: 7px;"
>
<el-image
v-if=
"clubImage && matchData.visaSw == '1'"
:preview-src-list=
"[clubImage]"
:src=
"clubImage"
fit=
"cover"
preview-teleported
style=
"width: 124px"
/>
<el-image
v-if=
"clubImage && matchData.visaSw == '1'"
:preview-src-list=
"[clubImage]"
:src=
"clubImage"
fit=
"cover"
preview-teleported
style=
"width: 124px"
/>
</div>
</div>
<!-- 群聊-->
<div
v-if=
"matchData.chatQrcode"
class=
"fixed_gg_l club"
>
<el-image
:preview-src-list=
"[ fillImgUrl(matchData.chatQrcode)]"
:src=
"fillImgUrl(matchData.chatQrcode)"
fit=
"cover"
preview-teleported
style=
"width: 120px;height: 120px"
/>
<el-image
:preview-src-list=
"[fillImgUrl(matchData.chatQrcode)]"
:src=
"fillImgUrl(matchData.chatQrcode)"
fit=
"cover"
preview-teleported
style=
"width: 120px;height: 120px"
/>
</div>
<affix-invitation
ref=
"dialogInvitationRef"
/>
<el-dialog
v-model=
"liveQrcodeShow"
:title=
"language
==0?'赛事直播' :
'Live QR Code'"
width=
"350px"
>
<el-dialog
v-model=
"liveQrcodeShow"
:title=
"language
== 0 ? '赛事直播' :
'Live QR Code'"
width=
"350px"
>
<div
style=
"display: flex;justify-content: space-between"
>
<el-image
v-if=
"matchData.liveQrcode"
:src=
"fillImgUrl(matchData.liveQrcode)"
fit=
"cover"
style=
"max-width: 350px;"
/>
<el-image
v-if=
"matchData.liveQrcode"
:src=
"fillImgUrl(matchData.liveQrcode)"
fit=
"cover"
style=
"max-width: 350px;"
/>
</div>
</el-dialog>
...
...
@@ -505,7 +464,7 @@ const navigationPic = ref({
})
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'pop'
,
'backNumber'
,
'schSearch'
])
const
emit
=
defineEmits
([
'pop'
,
'backNumber'
,
'schSearch'
,
'reserveSearch'
])
const
time
=
ref
(
0
)
const
etime
=
ref
(
0
)
const
liveQrcodeShow
=
ref
(
false
)
...
...
@@ -540,6 +499,12 @@ const matchData = ref({})
onMounted
(()
=>
{
init
()
})
const
reserveSearch
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
}
emit
(
'reserveSearch'
,
params
);
// 向父组件发射事件+参数
};
function
handleRowClick
(
row
)
{
console
.
log
(
row
)
...
...
@@ -659,11 +624,11 @@ const goGuide = () => {
})
}
const
liveQrcodeShowBtn
=
()
=>
{
if
(
!
matchData
.
value
.
liveQrcode
)
{
if
(
!
matchData
.
value
.
liveQrcode
)
{
ElMessage
.
warning
(
'There is currently no live broadcast of the event'
)
return
}
else
{
liveQrcodeShow
.
value
=
true
}
else
{
liveQrcodeShow
.
value
=
true
}
}
...
...
@@ -1169,8 +1134,7 @@ function applyInvitation() {
background
:
linear-gradient
(
0deg
,
rgba
(
255
,
255
,
255
,
1
),
rgba
(
255
,
255
,
255
,
0
));
}
.btn-lineG
{
}
.btn-lineG
{}
}
.mapBox
{
...
...
@@ -1276,6 +1240,7 @@ function applyInvitation() {
.box
{
width
:
94%
}
.calendarList
{
padding
:
0
;
...
...
@@ -1285,12 +1250,15 @@ function applyInvitation() {
}
}
}
.aboutBox
{
padding
:
20px
30px
;
}
.indexTitle
{
margin
:
30px
0
20px
}
.teacher
{
height
:
320px
;
margin
:
0
0
20px
;
...
...
@@ -1299,9 +1267,11 @@ function applyInvitation() {
height
:
260px
}
}
.activeItem
{
margin
:
0
0
20px
;
}
.mapBox
{
div
{
padding-left
:
40px
;
...
...
@@ -1322,9 +1292,11 @@ function applyInvitation() {
word-break
:
break-all
;
}
}
.fixed_gg
{
display
:
none
;
}
.bannerItem
.banner-count
{
flex-direction
:
column
;
transform
:
scale
(
0.5
);
...
...
@@ -1336,6 +1308,7 @@ function applyInvitation() {
margin
:
30px
0
0
;
}
}
.bgbg
{
text-align
:
center
;
...
...
@@ -1426,6 +1399,7 @@ function applyInvitation() {
.forPc
{
display
:
none
!important
;
}
.zn-Box
.bgbg
{
padding
:
10px
0
0
;
...
...
@@ -1437,6 +1411,7 @@ function applyInvitation() {
margin-top
:
10px
}
}
.logobox
{
height
:
60px
;
}
...
...
@@ -1500,5 +1475,4 @@ function applyInvitation() {
}
}
}
</
style
>
...
...
src/viewsPc/login.vue
View file @
2a7aa63
<
template
>
<el-dialog
v-model=
"show"
:append-to-body=
"true"
:close-on-click-modal=
"false"
:show-close=
"showClose"
:title=
"title"
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
style=
"max-width: 450px;min-width: 350px"
@
close=
"close"
>
<el-dialog
v-model=
"show"
:append-to-body=
"true"
:close-on-click-modal=
"false"
:show-close=
"showClose"
:title=
"title"
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
style=
"max-width: 450px;min-width: 350px"
@
close=
"close"
>
<div
class=
"pd10"
/>
<el-form
v-if=
"loginStatus==0"
ref=
"loginRef"
:model=
"loginForm"
:rules=
"language==0?loginRules:loginRules_en"
class=
"login-form"
>
<el-form
v-if=
"loginStatus == 0"
ref=
"loginRef"
:model=
"loginForm"
:rules=
"language == 0 ? loginRules : loginRules_en"
class=
"login-form"
>
<el-form-item
prop=
"username"
>
<el-input
v-model
.
trim=
"loginForm.username"
:placeholder=
"language==0?'账号(注册时使用的邮箱)':'Account (e-mail)'"
auto-complete=
"off"
size=
"large"
/>
<el-input
v-model
.
trim=
"loginForm.username"
:placeholder=
"language == 0 ? '账号(注册时使用的邮箱)' : 'Account (e-mail)'"
auto-complete=
"off"
size=
"large"
/>
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model
.
trim=
"loginForm.password"
:placeholder=
"language==0?'密码':'Password'"
auto-complete=
"off"
show-password
size=
"large"
type=
"password"
@
keyup
.
enter=
"handleLogin"
/>
<el-input
v-model
.
trim=
"loginForm.password"
:placeholder=
"language == 0 ? '密码' : 'Password'"
auto-complete=
"off"
show-password
size=
"large"
type=
"password"
@
keyup
.
enter=
"handleLogin"
/>
</el-form-item>
<el-form-item
v-if=
"captchaEnabled"
prop=
"code"
>
<el-input
v-model
.
trim=
"loginForm.code"
:placeholder=
"language==0?'验证码':'Code'"
auto-complete=
"off"
size=
"large"
@
keyup
.
enter=
"handleLogin"
>
<el-input
v-model
.
trim=
"loginForm.code"
:placeholder=
"language == 0 ? '验证码' : 'Code'"
auto-complete=
"off"
size=
"large"
@
keyup
.
enter=
"handleLogin"
>
<template
#
append
>
<div
class=
"login-code"
>
<img
:src=
"codeUrl"
class=
"login-code-img"
@
click=
"getCode"
>
...
...
@@ -54,14 +27,8 @@
</el-form-item>
<el-form-item
style=
"width:100%;"
>
<el-button
:loading=
"loading"
class=
"loginBtn"
size=
"large"
style=
"width:100%;"
type=
"primary"
@
click
.
prevent=
"handleLogin"
>
<el-button
:loading=
"loading"
class=
"loginBtn"
size=
"large"
style=
"width:100%;"
type=
"primary"
@
click
.
prevent=
"handleLogin"
>
<span
v-if=
"!loading"
>
{{ language == 0 ? '登 录' : 'Login' }}
</span>
<span
v-else
>
{{ language == 0 ? '登 录 中...' : 'Logging in' }}
</span>
</el-button>
...
...
@@ -69,15 +36,12 @@
<el-form-item>
<!-- <span style="color: #999;font-size: 12px;">*默认密码是会员号+证件号后四位+)*%</span>-->
<div
style=
"display: flex;justify-content: space-between;width: 100%;"
>
<a
class=
"text-primary"
@
click=
"showChangePassword"
>
{{ language == 0 ? '忘记密码' : 'Forgot password' }}?
</a>
<a
class=
"text-primary"
@
click=
"showChangePassword"
>
{{ language == 0 ? '忘记密码' : 'Forgot password' }}?
</a>
<a
class=
"text-primary"
@
click=
"showRegister"
>
{{ language == 0 ? '账号注册' : 'Register' }}>
</a>
</div>
</el-form-item>
<el-form-item>
<div
v-if=
"language
==
0"
class=
"agreeLine"
>
<div
v-if=
"language
==
0"
class=
"agreeLine"
>
登录或注册即代表同意
<a
target=
"_blank"
@
click=
"goAgreement"
>
《用户协议》
</a>
和
<a
target=
"_blank"
@
click=
"goPolicy"
>
《隐私政策》
</a>
...
...
@@ -90,7 +54,7 @@
</el-form-item>
</el-form>
<div
v-if=
"loginStatus
==
1"
>
<div
v-if=
"loginStatus
==
1"
>
<a
class=
"poLeft"
@
click=
"close()"
>
<el-icon>
<ArrowLeftBold
/>
...
...
@@ -103,36 +67,25 @@
<h3>
{{ language == 0 ? '个人用户' : 'Individual' }}
</h3>
</div>
</div>
<div
v-if=
"loginStatus
==
2"
>
<div
v-if=
"loginStatus
==
2"
>
<a
class=
"poLeft"
@
click=
"close()"
>
<el-icon>
<ArrowLeftBold
/>
</el-icon>
</a>
<el-form
ref=
"changePasswordRef"
:model=
"changePasswordForm"
:rules=
"language==0?changePasswordRules:changePasswordRules_en"
class=
"login-form"
>
<el-form
ref=
"changePasswordRef"
:model=
"changePasswordForm"
:rules=
"language == 0 ? changePasswordRules : changePasswordRules_en"
class=
"login-form"
>
<el-form-item
prop=
"username"
>
<el-input
v-model
.
trim=
"changePasswordForm.username"
:placeholder=
"language==0?'注册时使用的邮箱':'E-mail'"
auto-complete=
"off"
size=
"large"
@
change=
"changePasswordFormUsername"
/>
<el-input
v-model
.
trim=
"changePasswordForm.username"
:placeholder=
"language == 0 ? '注册时使用的邮箱' : 'E-mail'"
auto-complete=
"off"
size=
"large"
@
change=
"changePasswordFormUsername"
/>
</el-form-item>
<el-form-item>
<el-input
v-model
.
trim=
"changePasswordForm.code"
:placeholder=
"language==0?'验证码':'Code'"
auto-complete=
"off"
size=
"large"
@
keyup
.
enter=
"handleLogin"
>
<el-input
v-model
.
trim=
"changePasswordForm.code"
:placeholder=
"language == 0 ? '验证码' : 'Code'"
auto-complete=
"off"
size=
"large"
@
keyup
.
enter=
"handleLogin"
>
<
template
#
append
>
<el-button
plain
style=
"width: 110px;"
type=
"primary"
@
click=
"sendsmsMsg"
>
<van-count-down
v-if=
"counting"
:time=
"60000"
format=
"ss"
@
finish=
"counting
=
false"
>
<van-count-down
v-if=
"counting"
:time=
"60000"
format=
"ss"
@
finish=
"counting
=
false"
>
<template
#
default=
"timeData"
>
<span
class=
"text-primary"
>
{{
timeData
.
seconds
}}{{
language
==
0
?
'秒'
:
's'
}}
</span>
</
template
>
...
...
@@ -147,42 +100,24 @@
</template>
</el-input>
<!-- <div class="vcodeBox" :style="isShow?'height:240px':'height:0'">-->
<Vcode
:fail-text=
"failVcode"
:show=
"isShow"
:slider-text=
"sliderText"
:success-text=
"successVcode"
:z-index=
"9999"
@
success=
"codeSuccess"
/>
<Vcode
:fail-text=
"failVcode"
:show=
"isShow"
:slider-text=
"sliderText"
:success-text=
"successVcode"
:z-index=
"9999"
@
success=
"codeSuccess"
/>
<!-- </div>-->
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model
.
trim=
"changePasswordForm.password"
:placeholder=
"language==0?'新密码':'New password'"
auto-complete=
"off"
show-password
size=
"large"
type=
"password"
@
keyup
.
enter=
"handleLogin"
/>
<el-input
v-model
.
trim=
"changePasswordForm.password"
:placeholder=
"language == 0 ? '新密码' : 'New password'"
auto-complete=
"off"
show-password
size=
"large"
type=
"password"
@
keyup
.
enter=
"handleLogin"
/>
</el-form-item>
<el-form-item
prop=
"confirmPassword"
>
<el-input
v-model
.
trim=
"changePasswordForm.confirmPassword"
:placeholder=
"language==0?'确认密码':'Confirm password'"
auto-complete=
"off"
show-password
size=
"large"
type=
"password"
/>
<el-input
v-model
.
trim=
"changePasswordForm.confirmPassword"
:placeholder=
"language == 0 ? '确认密码' : 'Confirm password'"
auto-complete=
"off"
show-password
size=
"large"
type=
"password"
/>
</el-form-item>
<el-form-item
style=
"width:100%;"
>
<el-button
:loading=
"loading"
class=
"loginBtn"
size=
"large"
style=
"width:100%;"
type=
"primary"
@
click
.
prevent=
"handleChangePassword"
>
<span
v-if=
"language==0"
>
确定
</span>
<el-button
:loading=
"loading"
class=
"loginBtn"
size=
"large"
style=
"width:100%;"
type=
"primary"
@
click
.
prevent=
"handleChangePassword"
>
<span
v-if=
"language == 0"
>
确定
</span>
<span
v-else
>
Submit
</span>
</el-button>
</el-form-item>
...
...
@@ -624,7 +559,8 @@ const goPolicy = () => {
flex
:
1
1
auto
;
}
.el-input-group__append
button
.el-button
,
.el-input-group__append
button
.el-button
:hover
{
.el-input-group__append
button
.el-button
,
.el-input-group__append
button
.el-button
:hover
{
color
:
var
(
--el-color-primary
);
background
:
#efefff
;
border
:
var
(
--el-color-primary
)
solid
1px
;
...
...
src/viewsPc/register/personal.vue
View file @
2a7aa63
...
...
@@ -86,12 +86,12 @@
application of visa invitation letter and purchasing insurance etc.
</span>
</div>
</el-form-item>
<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?'证件号':'Passport number'"
required
>
<el-input
v-model=
"wdsfData.passportNumber"
/>
</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>
...
...
@@ -105,6 +105,9 @@
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'联系方式':'Contact Information'"
required
>
<el-input
v-model
.
trim=
"wdsfData.phone"
/>
</el-form-item>
<div
class=
"h30"
/>
...
...
@@ -372,6 +375,10 @@ function bigNext() {
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入姓名'
:
'Please enter your name'
)
return
}
if
(
!
wdsfData
.
value
.
phone
)
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请输入联系方式'
:
'Please enter your phone'
)
return
}
if
(
user
&&
user
.
utype
==
'3'
)
{
const
obj
=
{
card
:
form
.
value
.
card
,
...
...
@@ -381,6 +388,7 @@ function bigNext() {
birth
:
wdsfData
.
value
.
birthday
,
certName
:
wdsfData
.
value
.
certName
,
passportNumber
:
wdsfData
.
value
.
passportNumber
,
phone
:
wdsfData
.
value
.
phone
,
ocrFlag
:
'1'
}
if
(
Array
.
isArray
(
wdsfData
.
value
.
passportUrl
))
{
...
...
@@ -424,6 +432,7 @@ function next() {
certName
:
wdsfData
.
value
.
certName
,
birth
:
wdsfData
.
value
.
birthday
,
passportNumber
:
wdsfData
.
value
.
passportNumber
,
phone
:
wdsfData
.
value
.
phone
,
ocrFlag
:
'1'
}
if
(
Array
.
isArray
(
wdsfData
.
value
.
passportUrl
))
{
...
...
@@ -449,6 +458,7 @@ function next() {
// personId: wdsfData.value.personId,
username
:
wdsfData
.
value
.
email
,
password
:
form
.
value
.
password
,
phone
:
wdsfData
.
value
.
phone
,
ocrFlag
:
'1'
}
if
(
Array
.
isArray
(
wdsfData
.
value
.
passportUrl
))
{
...
...
vite.config.js
View file @
2a7aa63
...
...
@@ -64,35 +64,40 @@ export default defineConfig(({ mode, command }) => {
proxy
:
{
// https://cn.vitejs.dev/config/#server-proxy
'/dev-api/ztx-train'
:
{
// target: 'http://192.168.1.118:1896/stage-api',
target
:
'https://wdsfwuxicenter.com/stage-api'
,
target
:
'http://192.168.1.22:8081'
,
// target: 'https://wdsfwuxicenter.com/stage-api',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-train/
,
''
)
},
'/dev-api/ztx-match'
:
{
// target: 'http://192.168.1.118:8081',
target
:
'https://wdsfwuxicenter.com/stage-api'
,
target
:
'http://192.168.1.22:8081'
,
// target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/stage-api/',
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-match/
,
''
)
},
'/dev-api/ztx-webSite'
:
{
// target: 'http://192.168.1.118:8081',
target
:
'https://wdsfwuxicenter.com/stage-api'
,
target
:
'http://192.168.1.22:8081'
,
// target: 'https://wdsfwuxicenter.com/stage-api',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-webSite/
,
''
)
},
'/dev-api'
:
{
// target: 'http://192.168.1.213:8081/
',
target
:
'http://192.168.1.22:8081
'
,
// target: 'http://192.168.1.169:8081',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
target
:
'https://wdsfwuxicenter.com/stage-api/'
,
// target: 'https://wdsfwuxicenter.com/stage-api/',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api/
,
''
)
},
'/ticket'
:
{
// target: 'http://192.168.1.242:8081/',
target
:
'https://wdsfwuxicenter.com/h5/'
,
// target: 'https://jijin.wtwuxicenter.com/stage-api',
target
:
'http://192.168.1.22:8081'
,
// target: 'https://wdsfwuxicenter.com/h5/',
// target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
ticket/
,
''
)
...
...
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