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
6692d073
authored
2025-05-21 16:59:16 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
2024改成2025
1 parent
b1908dcf
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1339 additions
and
675 deletions
src/viewsPc/booking/ticket/index.vue
src/viewsPc/components/homeCalendar.vue
src/viewsPc/components/masterClass.vue
src/viewsPc/components/pickup.vue
src/viewsPc/index.vue
src/viewsPc/index_en.vue
src/viewsPc/saiC/index.vue
src/viewsPc/booking/ticket/index.vue
View file @
6692d07
...
...
@@ -2,7 +2,7 @@
<div>
<!-- top -->
<div
class=
"container top"
>
<img
:src=
"fillImgUrl(matchForm.ticketImg)"
class=
"cover_img"
/
>
<img
:src=
"fillImgUrl(matchForm.ticketImg)"
class=
"cover_img"
>
<div
class=
"info"
>
<div
class=
"title"
>
{{
matchForm
.
name
}}
</div>
<div
class=
"time"
>
...
...
@@ -67,8 +67,10 @@
{{ triggerLanguage(language, "票档", "Tickets") }} :
</div>
<div
v-if=
"matchForm.ticketLayout"
>
<span
style=
"color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
@
click=
"show=true"
>
<span
style=
"color: red;font-size: 18px"
>
*
</span>
<span
style=
"color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
@
click=
"show=true"
>
<span
style=
"color: red;font-size: 18px"
>
*
</span>
{{
language == 0 ? '点击查看场馆布局' : 'View Venue Layout'
}}
...
...
@@ -141,8 +143,10 @@
</div>
</div>
<div
v-if=
"endTime<=0"
class=
"btn"
style=
"margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px"
@
click=
"toSelectClosed"
>
<div
v-if=
"endTime<=0"
class=
"btn"
style=
"margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px"
@
click=
"toSelectClosed"
>
{{
triggerLanguage(language, "售票结束", "Sale closed")
}}
...
...
@@ -163,8 +167,8 @@
<div
:class=
"{'bg':active==1}"
class=
"buBg"
@
click=
"active=1"
>
购票说明
</div>
<div
:class=
"{'bg' :active==2}"
class=
"buBg"
@
click=
"active=2"
>
购票须知
</div>
</div>
<div
v-show=
"active==1"
class=
"rich_content"
v-html=
"matchForm.ticketDes"
/>
<div
v-show=
"active==2"
class=
"rich_content"
v-html=
"matchForm.ticketNotice"
/>
<div
v-show=
"active==1"
class=
"rich_content"
v-html=
"matchForm.ticketDes"
/>
<div
v-show=
"active==2"
class=
"rich_content"
v-html=
"matchForm.ticketNotice"
/>
<el-dialog
v-model=
"show"
title=
""
width=
"1000px"
>
<div>
...
...
@@ -177,30 +181,30 @@
<
script
setup
>
import
{
ref
,
computed
}
from
"vue"
;
import
{
listApi
,
getTicketInfoByActivityId
,
getTicketListApi
,
checkNonPayment
}
from
'@/apiPc/booking'
import
{
ref
,
computed
}
from
'vue'
import
{
listApi
,
getTicketInfoByActivityId
,
getTicketListApi
,
checkNonPayment
}
from
'@/apiPc/booking'
import
{
dayjs
}
from
"element-plus"
;
import
{
ElMessageBox
,
ElMessage
}
from
"element-plus"
;
import
{
languageFormat
,
getDayName
}
from
"@/viewsPc/seat/utils/language"
;
import
{
fillImgUrl
}
from
"/@/utils/ruoyi"
;
import
useUserStore
from
"/@/store/modules/user"
;
import
{
triggerLanguage
}
from
'@/utils/ruoyi'
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
dayjs
}
from
'element-plus'
import
{
ElMessageBox
,
ElMessage
}
from
'element-plus'
import
{
languageFormat
,
getDayName
}
from
'@/viewsPc/seat/utils/language'
import
{
fillImgUrl
}
from
'/@/utils/ruoyi'
import
useUserStore
from
'/@/store/modules/user'
import
{
triggerLanguage
}
from
'@/utils/ruoyi'
import
{
useStorage
}
from
'@vueuse/core/index'
const
language
=
useStorage
(
'language'
,
0
)
const
useStore
=
useUserStore
()
const
user
=
computed
(()
=>
useUserStore
().
user
)
const
route
=
useRoute
()
;
const
router
=
useRouter
()
;
const
route
=
useRoute
()
const
router
=
useRouter
()
const
show
=
ref
(
false
)
const
activeId
=
ref
(
route
.
params
.
activeId
)
const
flag
=
ref
(
false
)
const
active
=
ref
(
1
)
const
countDown
=
ref
(
false
)
const
props
=
defineProps
({
activityId
:
[
String
,
Number
]
,
})
;
activityId
:
[
String
,
Number
]
})
const
timeData
=
ref
()
const
endTime
=
ref
()
const
matchForm
=
ref
({})
...
...
@@ -209,7 +213,7 @@ const selectForm = ref({
latId
:
null
,
id
:
null
,
price
:
'--'
,
priceEn
:
'--'
,
priceEn
:
'--'
})
const
tickList
=
ref
([])
...
...
@@ -217,14 +221,14 @@ const tickList = ref([])
getDetail
()
async
function
getDetail
()
{
const
res
=
await
getTicketInfoByActivityId
({
activityId
:
activeId
.
value
})
const
res
=
await
getTicketInfoByActivityId
({
activityId
:
activeId
.
value
})
matchForm
.
value
=
res
.
data
console
.
log
(
res
)
const
today
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
timeData
.
value
=
dayjs
(
res
.
data
.
ticketStart
).
diff
(
today
,
'millisecond'
)
endTime
.
value
=
dayjs
(
res
.
data
.
ticketEnd
).
diff
(
today
,
'millisecond'
)
// if (timeData.value <= nowData.value) countDown.value = true
// timeData.value = dayjs('202
4
-08-10 00:00:00').diff(today, 'millisecond')
// timeData.value = dayjs('202
5
-08-10 00:00:00').diff(today, 'millisecond')
}
// 根据赛事ID获取票档
...
...
@@ -243,8 +247,8 @@ async function getTicketList() {
// 根据票档获取场次
async
function
getTicketListType
()
{
le
t
arr
=
[]
const
res
=
await
listApi
({
latId
:
selectForm
.
value
.
latId
})
cons
t
arr
=
[]
const
res
=
await
listApi
({
latId
:
selectForm
.
value
.
latId
})
tickList
.
value
=
res
.
rows
for
(
const
v
of
res
.
rows
)
{
if
(
v
.
isView
==
0
)
arr
.
push
(
v
)
...
...
@@ -277,8 +281,8 @@ function selectTick(v) {
}
function
toSelectSeat
()
{
if
(
!
selectForm
.
value
.
latId
)
return
ElMessage
.
error
(
language
.
value
==
0
?
"请选择票档"
:
'Please select a ticket file'
)
if
(
!
selectForm
.
value
.
id
)
return
ElMessage
.
error
(
language
.
value
==
0
?
"请选择时间"
:
'Please select time'
)
if
(
!
selectForm
.
value
.
latId
)
return
ElMessage
.
error
(
language
.
value
==
0
?
'请选择票档'
:
'Please select a ticket file'
)
if
(
!
selectForm
.
value
.
id
)
return
ElMessage
.
error
(
language
.
value
==
0
?
'请选择时间'
:
'Please select time'
)
if
(
!
user
.
value
)
{
useStore
.
setVisitor
()
return
...
...
@@ -296,10 +300,7 @@ function toSelectSeat() {
}
else
{
router
.
push
(
'/center/myReservation'
)
}
})
}
function
toSelectClosed
()
{
...
...
src/viewsPc/components/homeCalendar.vue
View file @
6692d07
...
...
@@ -15,42 +15,48 @@
<div
class=
"esp mt5"
>
{{ n.name }}
</div>
</li>
</ul>
<el-empty
v-if=
"schList.length== 0"
style=
"--el-empty-padding:0;--el-empty-description-margin-top:0"
:image=
"`/img/order_no.png`"
:image-size=
"200"
/>
<el-empty
v-if=
"schList.length== 0"
:image=
"`/img/order_no.png`"
:image-size=
"200"
style=
"--el-empty-padding:0;--el-empty-description-margin-top:0"
/>
</div>
</div>
</template>
<
script
setup
>
import
{
ref
}
from
"vue"
;
import
{
dayjs
}
from
"element-plus"
;
import
{
getIndexScheduleList
}
from
"@/apiPc/common"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ref
}
from
'vue'
import
{
dayjs
}
from
'element-plus'
import
{
getIndexScheduleList
}
from
'@/apiPc/common'
import
{
useRouter
}
from
'vue-router'
const
router
=
useRouter
()
const
currentDate
=
ref
(
new
Date
())
const
calendarRange
=
ref
([
dayjs
(
'202
4-07-17'
).
toDate
(),
dayjs
(
'2024
-07-17'
).
toDate
()])
const
calendarRange
=
ref
([
dayjs
(
'202
5-07-17'
).
toDate
(),
dayjs
(
'2025
-07-17'
).
toDate
()])
const
schList
=
ref
([])
const
loading
=
ref
(
false
)
const
query
=
ref
({
// currentDate:dayjs().format('YYYY-MM-DD')
currentDate
:
'202
4
-07-17'
currentDate
:
'202
5
-07-17'
})
getScheduleList
()
function
getScheduleList
()
{
loading
.
value
=
true
query
.
value
.
currentDate
=
dayjs
(
query
.
value
.
currentDate
).
format
(
'YYYY-MM-DD'
)
getIndexScheduleList
(
query
.
value
).
then
(
res
=>
{
getIndexScheduleList
(
query
.
value
).
then
(
res
=>
{
loading
.
value
=
false
schList
.
value
=
res
.
data
})
}
function
selectDate
(
date
)
{
console
.
log
(
dayjs
(
date
).
toDate
())
console
.
log
(
query
.
value
.
currentDate
)
query
.
value
.
currentDate
=
dayjs
(
date
).
toDate
()
getScheduleList
()
}
function
goMatch
(
n
)
{
router
.
push
({
name
:
'matchDetail'
,
...
...
@@ -64,7 +70,7 @@ function goMatch(n) {
}
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
.el-calendar
{
--el-calendar-border
:
none
;
--el-calendar-cell-width
:
40px
;
...
...
@@ -119,7 +125,8 @@ function goMatch(n) {
height
:
225px
;
ul
{
li
{
cursor
:
pointer
;
li
{
cursor
:
pointer
;
background
:
#F6F9FE
;
margin
:
7px
0
7px
20px
;
position
:
relative
;
...
...
src/viewsPc/components/masterClass.vue
View file @
6692d07
<
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"
>
<el-steps
:active=
"activeStep"
align-center
class=
"mb20"
>
<el-step
:title=
"language==0?'报名须知':'Notice'"
/>
<el-step
:title=
"language==0?'填写信息':'Information'"
/>
<el-step
:title=
"language==0?'选择课程':'Courses'"
/>
<el-step
:title=
"language==0?'报名须知':'Notice'"
/>
<el-step
:title=
"language==0?'填写信息':'Information'"
/>
<el-step
:title=
"language==0?'选择课程':'Courses'"
/>
</el-steps>
<div
v-if=
"activeStep==0"
>
<div
class=
"mb60 xzRich"
style=
"max-height: 50vh;overflow: auto"
>
<div
v-if=
"language==0"
style=
"width: 300px;margin: auto"
><br
/
>
培训地点:无锡君来世尊酒店
<br
/
>
详细地址:江苏省 无锡市 滨湖区 和风路111号
<br
/
>
报到时间:2024年7月14日13:30 -17:00
<br
/
>
联系人:蒋璐
<br
/
>
联系电话:15961580050
<br
/
>
报名截止日期:
<span
style=
"text-decoration: underline"
>
202
4-06-30
</span><br/
>
<div
v-if=
"language==0"
style=
"width: 300px;margin: auto"
><br>
培训地点:无锡君来世尊酒店
<br>
详细地址:江苏省 无锡市 滨湖区 和风路111号
<br>
报到时间:2024年7月14日13:30 -17:00
<br>
联系人:蒋璐
<br>
联系电话:15961580050
<br>
报名截止日期:
<span
style=
"text-decoration: underline"
>
202
5-06-30
</span><br
>
</div>
<div
v-else
style=
"width: 400px;margin: auto;text-transform: capitalize"
><br
/
>
<div
v-else
style=
"width: 400px;margin: auto;text-transform: capitalize"
><br>
<!-- The age limit for Youth Session: Born between 1st Jan, 2006 and 31st Dec., 2009.
<br/>
-->
<!-- The age limit for Juvenile Session: Born after 1 Jan., 2010.
<br/>
-->
Training Camp Venue:Worldhotel Grand Juna Wuxi
<br
/
>
Address:No.111 Hefeng Road, Binhu District, Wuxi, Jiangsu
<br
/
>
Check-in:From 13:30 to 17:00 on July 14, 202
4.
<br/
>
Contact Person:Dean Ding
<br
/
>
Tel:+86 19951486130
<br
/
>
Registration Deadline:
<span
style=
"text-decoration: underline"
>
202
4-06-30
</span><br/
>
Training Camp Venue:Worldhotel Grand Juna Wuxi
<br>
Address:No.111 Hefeng Road, Binhu District, Wuxi, Jiangsu
<br>
Check-in:From 13:30 to 17:00 on July 14, 202
5.
<br
>
Contact Person:Dean Ding
<br>
Tel:+86 19951486130
<br>
Registration Deadline:
<span
style=
"text-decoration: underline"
>
202
5-06-30
</span><br
>
</div>
</div>
<div
class=
"text-center"
v-loading=
"loading
"
>
<el-button
type=
"primary"
v-if=
"courseList.length>0"
class=
"btn-lineG"
round
@
click=
"setActive(1)"
>
<span
v-if=
"dayjs().format('YYYY-MM-DD')>'202
4
-06-30'"
>
<div
v-loading=
"loading"
class=
"text-center
"
>
<el-button
v-if=
"courseList.length>0"
class=
"btn-lineG"
round
type=
"primary"
@
click=
"setActive(1)"
>
<span
v-if=
"dayjs().format('YYYY-MM-DD')>'202
5
-06-30'"
>
{{
language
==
0
?
'报名已结束'
:
'Registration has ended'
}}
</span>
<span
v-else
>
{{
language
==
0
?
'下一步'
:
'NEXT'
}}
</span>
</el-button>
<el-button
type=
"primary"
class=
"btn-lineG"
round
v-else
@
click=
"close"
>
<el-button
v-else
class=
"btn-lineG"
round
type=
"primary"
@
click=
"close"
>
{{
language
==
0
?
'暂无可报课程'
:
'No courses available for reporting'
}}
</el-button>
</div>
</div>
<div
v-if=
"activeStep==1"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"iformRef"
label-position=
"right"
:label-width=
"language==0?'80px':'160px'"
>
<el-form-item
:label=
"language==0?'姓名':'Name'"
required
prop=
"name"
>
<el-input
v-model=
"form.name"
/>
<el-form
ref=
"iformRef"
:label-width=
"language==0?'80px':'160px'"
:model=
"form"
:rules=
"rules"
label-position=
"right"
>
<el-form-item
:label=
"language==0?'姓名':'Name'"
prop=
"name"
required
>
<el-input
v-model=
"form.name"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'性别':'Gender'"
required
prop=
"gender"
>
<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"
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?'手机号':'Phone number'"
required
prop=
"phone"
>
<el-input
v-model=
"form.phone"
/>
<el-form-item
:label=
"language==0?'手机号':'Phone number'"
prop=
"phone"
required
>
<el-input
v-model=
"form.phone"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'邮箱':'Email'"
required
prop=
"email"
>
<el-input
v-model=
"form.email"
type=
"email"
/>
<el-form-item
:label=
"language==0?'邮箱':'Email'"
prop=
"email"
required
>
<el-input
v-model=
"form.email"
type=
"email"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'证件号':'National license No.'"
required
prop=
"passportNo"
>
<el-input
v-model=
"form.passportNo"
@
blur=
"checkCard"
/>
<el-form-item
:label=
"language==0?'证件号':'National license No.'"
prop=
"passportNo"
required
>
<el-input
v-model=
"form.passportNo"
@
blur=
"checkCard"
/>
</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
: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?'抵达日期':'Date of Arrival'"
required
prop=
"arrival"
>
-->
<!--
<el-date-picker-->
...
...
@@ -96,52 +103,58 @@
<!-- />-->
<!--
</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
size=
"large"
@
click=
"setActive(0)"
round
plain
type=
"primary
"
>
<el-button
plain
round
size=
"large"
type=
"primary"
@
click=
"setActive(0)
"
>
{{
language
==
0
?
'上一步'
:
'PREV'
}}
</el-button>
<el-button
type=
"primary"
size=
"large"
@
click=
"checkApplyCourse(2)"
round
class=
"btn-lineG
"
>
<el-button
class=
"btn-lineG"
round
size=
"large"
type=
"primary"
@
click=
"checkApplyCourse(2)
"
>
{{
language
==
0
?
'下一步'
:
'NEXT'
}}
</el-button>
</div>
</el-form>
</div>
<div
v-if=
"activeStep==2"
>
<div
class=
"text-center pd20"
v-if=
"showR
"
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
/
>
<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
class=
"text-center"
v-if=
"language == 0
"
>
<h4
v-if=
"language == 0"
class=
"text-center
"
>
我们已收到您的申请,请在7月14日到无锡报到。
</h4>
<h4
v-else
>
Your application has been received,
<br
/
>
<br>
Please register in Wuxi on July 14.
</h4>
</div>
<div
v-else
>
<div
class=
"tip text-danger mb20"
v-if=
"language==
0"
>
*选择参加的课程(最少一项,最多两项)
</div>
<div
class=
"tip text-danger mb20"
v-else
>
*Select the courses to enroll in (at least one, no more than two)
<div
v-if=
"language==0"
class=
"tip text-danger mb2
0"
>
*选择参加的课程(最少一项,最多两项)
</div>
<div
v-else
class=
"tip text-danger mb20"
>
*Select the courses to enroll in (at least one, no more than two)
</div>
<el-checkbox-group
size=
"large"
v-model=
"form.courseId
"
@
change=
"courseChange"
>
<el-checkbox-group
v-model=
"form.courseId"
size=
"large
"
@
change=
"courseChange"
>
<div
v-for=
"c in courseList"
class=
"mb20"
>
<el-checkbox
:value=
"c.id"
border
class=
"w100"
:disabled=
"(form.courseId?.length>=2&&form.courseId.indexOf(c.id)==-1)||disChoose||(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)"
>
<el-checkbox
:disabled=
"(form.courseId?.length>=2&&form.courseId.indexOf(c.id)==-1)||disChoose||(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)"
:value=
"c.id"
border
class=
"w100"
>
<div
v-if=
"language==0"
style=
"display: flex"
>
<div>
{{
c
.
name
}}{{
c
.
name
.
indexOf
(
'青年'
)
>
-
1
?
'(年龄在15岁~18岁)'
:
'(年龄在14岁以下)'
}}
</div>
</div>
<div
v-else
>
<div>
{{
c
.
nameEn
}}{{
c
.
nameEn
.
indexOf
(
'Youth'
)
>
-
1
?
'(Between the age 15 and 18)'
:
'(Under the age of 14)'
}}
{{
c
.
nameEn
}}{{
c
.
nameEn
.
indexOf
(
'Youth'
)
>
-
1
?
'(Between the age 15 and 18)'
:
'(Under the age of 14)'
}}
</div>
</div>
<el-tag
class=
"ml20"
<el-tag
v-if=
"(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)"
type=
"danger"
effect=
"dark"
>
{{
language
==
0
?
'已报满'
:
'Already full'
}}
class=
"ml20"
effect=
"dark"
type=
"danger"
>
{{
language
==
0
?
'已报满'
:
'Already full'
}}
</el-tag>
</el-checkbox>
</div>
...
...
@@ -149,10 +162,13 @@
<div
class=
"text-center"
>
<el-button
size=
"large"
@
click=
"setActive(1)"
round
plain
type=
"primary
"
>
<el-button
plain
round
size=
"large"
type=
"primary"
@
click=
"setActive(1)
"
>
{{
language
==
0
?
'上一步'
:
'PREV'
}}
</el-button>
<el-button
type=
"primary"
v-if=
"!disChoose"
size=
"large"
@
click=
"submit"
round
class=
"btn-lineG w200px"
>
<el-button
v-if=
"!disChoose"
class=
"btn-lineG w200px"
round
size=
"large"
type=
"primary"
@
click=
"submit"
>
{{
language
==
0
?
'提交'
:
'SUBMIT'
}}
</el-button>
...
...
@@ -166,16 +182,16 @@
</
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
{
masterClassList
,
getByCard
,
submitMasterApply
,
getMasterApply
,
delByCard
}
from
"@/apiPc/common"
;
import
dayjs
from
"dayjs"
;
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
{
masterClassList
,
getByCard
,
submitMasterApply
,
getMasterApply
,
delByCard
}
from
'@/apiPc/common'
import
dayjs
from
'dayjs'
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
language
=
useStorage
(
'language'
,
0
)
const
form
=
ref
({})
const
show
=
ref
(
false
)
...
...
@@ -189,14 +205,14 @@ const loading = ref(false)
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
)
...
...
@@ -205,7 +221,7 @@ const open = (params) => {
cptId
.
value
=
params
.
cptId
getCourse
()
}
defineExpose
({
open
})
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
...
...
@@ -223,14 +239,14 @@ watch(show, (value) => {
function
getCourse
()
{
// '1777256058082189313'
loading
.
value
=
true
masterClassList
({
cptId
:
cptId
.
value
}).
then
(
res
=>
{
masterClassList
({
cptId
:
cptId
.
value
}).
then
(
res
=>
{
courseList
.
value
=
res
.
data
loading
.
value
=
false
})
}
function
setActive
(
n
)
{
if
(
n
==
1
&&
dayjs
().
format
(
'YYYY-MM-DD'
)
>
'2024-06-30'
)
{
if
(
n
==
1
&&
dayjs
().
format
(
'YYYY-MM-DD'
)
>
'2025-06-30'
)
{
ElMessage
.
error
(
language
.
value
==
0
?
'报名已结束'
:
'The application has ended'
)
return
}
...
...
@@ -242,7 +258,7 @@ function courseChange(e) {
}
function
checkApplyCourse
(
n
)
{
getMasterApply
({
card
:
form
.
value
.
passportNo
}).
then
(
res
=>
{
getMasterApply
({
card
:
form
.
value
.
passportNo
}).
then
(
res
=>
{
if
(
res
.
data
?.
length
>
0
)
{
form
.
value
.
courseId
=
[]
for
(
var
n
of
res
.
data
)
{
...
...
@@ -255,7 +271,7 @@ function checkApplyCourse(n) {
cancelButtonText
:
language
.
value
==
0
?
'否'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
//删除原记录
//
删除原记录
delByCard
(
form
.
value
.
passportNo
).
then
(
res
=>
{
form
.
value
.
courseId
=
[]
disChoose
.
value
=
false
...
...
@@ -269,7 +285,6 @@ function checkApplyCourse(n) {
to2
()
}
})
}
function
to2
()
{
...
...
@@ -290,7 +305,7 @@ function to2() {
function
checkCard
()
{
getByCard
({
card
:
form
.
value
.
passportNo
}).
then
(
res
=>
{
getByCard
({
card
:
form
.
value
.
passportNo
}).
then
(
res
=>
{
if
(
res
.
data
)
{
form
.
value
=
res
.
data
}
else
{
...
...
src/viewsPc/components/pickup.vue
View file @
6692d07
<
template
>
<el-dialog
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"title"
append-to-body
center
class=
"pcloginpop"
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"title"
append-to-body
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
width=
"900px"
>
<div
class=
"boxInvitation pd20"
>
<div
v-if=
"!showR"
>
<el-form
ref=
"iformRef"
:label-width=
"language==0?'120px':'240px'"
:model=
"form"
:rules=
"rules"
label-position=
"right"
>
<el-form
ref=
"iformRef"
:label-width=
"language==0?'120px':'240px'"
:model=
"form"
:rules=
"rules"
label-position=
"right"
>
<el-form-item
:label=
"language==0?'服务类型':'Service Type '"
prop=
"type"
required
style=
"margin-bottom: 0px"
>
<el-checkbox-group
v-model=
"form.type"
>
<el-checkbox
label=
"1"
>
{{
language
==
0
?
'接机'
:
'airport pickup'
}}
</el-checkbox>
...
...
@@ -22,33 +25,38 @@
</div>
<div
v-if=
"form.type?.some(v=>v==1)"
>
<h3
class=
"leftboderTT"
>
{{
language
==
0
?
'接机信息'
:
'Pick-up information'
}}
</h3>
<el-form-item
:label=
"language==0?'抵达人员身份':'Role of Person-Arrival'"
prop=
"pickUpBo.standing"
required
>
<el-form-item
:label=
"language==0?'抵达人员身份':'Role of Person-Arrival'"
prop=
"pickUpBo.standing"
required
>
<el-checkbox-group
v-model=
"form.pickUpBo.standing"
>
<el-checkbox
:label=
"language==0?'运动员':'Athlete'"
name=
"1"
/>
<el-checkbox
:label=
"language==0?'随队人员':'Accompanying Person'"
name=
"2"
/>
<el-checkbox
:label=
"language==0?'官员':'Official'"
name=
"3"
/>
<el-checkbox
:label=
"language==0?'其他':'Others'"
name=
"4"
/>
<el-checkbox
:label=
"language==0?'运动员':'Athlete'"
name=
"1"
/>
<el-checkbox
:label=
"language==0?'随队人员':'Accompanying Person'"
name=
"2"
/>
<el-checkbox
:label=
"language==0?'官员':'Official'"
name=
"3"
/>
<el-checkbox
:label=
"language==0?'其他':'Others'"
name=
"4"
/>
</el-checkbox-group>
</el-form-item>
<el-form-item
:label=
"language==0?'国家/地区':'Country/Region'"
prop=
"pickUpBo.nationalitys"
required
>
<el-select
v-model=
"form.pickUpBo.nationalitys"
filterable
multiple
style=
"width: 100%;"
>
<el-option
v-for=
"item in countrys"
<el-option
v-for=
"item in countrys"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"language==0?item.name :item.enName"
/>
:value=
"language==0?item.name :item.enName"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'联系人':'Contact Person'"
prop=
"pickUpBo.name"
required
>
<el-input
v-model=
"form.pickUpBo.name"
/>
<el-input
v-model=
"form.pickUpBo.name"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'联系电话':'Contact Phone Number'"
prop=
"pickUpBo.phone"
required
>
<el-input
v-model=
"form.pickUpBo.phone"
/>
<el-input
v-model=
"form.pickUpBo.phone"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'接机人数':'Number of People'"
prop=
"pickUpBo.counts"
required
>
<el-input-number
v-model=
"form.pickUpBo.counts"
/>
<el-input-number
v-model=
"form.pickUpBo.counts"
/>
<span
style=
"color: red;margin-left: 10px"
>
{{
style=
"color: red;margin-left: 10px"
>
{{
language
==
0
?
'(填写的人数需是乘坐同一航班/车次)'
:
'The number of people to be filled in must be on the same flight/train'
}}
</span>
</el-form-item>
...
...
@@ -56,46 +64,56 @@
<!--
{{
language
==
0
?
'填写的人数需是乘坐同一航班/车次'
:
'The number of people to be filled in must be on the same flight/train'
}}
-->
<!--
</div>
-->
<el-form-item
:label=
"language==0?'抵达日期':'Flight/Train Arrival Date'"
<el-form-item
:label=
"language==0?'抵达日期':'Flight/Train Arrival Date'"
prop=
"pickUpBo.arrivalDate"
required
>
required
>
<div
style=
"padding: 1px"
>
<el-date-picker
:disabled-date=
"disabledDateRZ"
default-value=
"'2024-09-27'
"
v-model=
"form.pickUpBo.arrivalDate
"
format=
"YYYY-MM-DD"
v-model=
"form.pickUpBo.arrivalDate"
:disabled-date=
"disabledDateRZ
"
default-value=
"'2025-09-27'
"
format=
"YYYY-MM-DD"
placeholder=
"YYYY-MM-DD"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</div>
</el-form-item>
<el-form-item
:label=
"language==0?'抵达时间':'Flight/Train Arrival Time'"
prop=
"pickUpBo.arrivaTime"
required
>
<el-form-item
:label=
"language==0?'抵达时间':'Flight/Train Arrival Time'"
prop=
"pickUpBo.arrivaTime"
required
>
<!--
<el-date-picker-->
<!-- v-model="form.pickUpBo.arrivaTime"-->
<!-- format="YYYY-MM-DD" placeholder="YYYY-MM-DD"-->
<!-- style="width: 100%;" type="date" value-format="YYYY-MM-DD"-->
<!-- />-->
<el-time-picker
v-model=
"form.pickUpBo.arrivaTime"
placeholder=
"HH:mm:ss"
value-format=
"HH:mm:ss"
format=
"HH:mm:ss"
style=
"width: 100%;"
/>
<el-time-picker
v-model=
"form.pickUpBo.arrivaTime"
format=
"HH:mm:ss"
placeholder=
"HH:mm:ss"
style=
"width: 100%;"
value-format=
"HH:mm:ss"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'航班/车次':'Flight/Train Number'"
prop=
"pickUpBo.flight"
required
>
<el-input
v-model=
"form.pickUpBo.flight"
/>
<el-input
v-model=
"form.pickUpBo.flight"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'机场/火车站':'Airport/Train Station'"
prop=
"pickUpBo.stationName"
required
>
<el-input
v-model=
"form.pickUpBo.stationName"
/>
<el-form-item
:label=
"language==0?'机场/火车站':'Airport/Train Station'"
prop=
"pickUpBo.stationName"
required
>
<el-input
v-model=
"form.pickUpBo.stationName"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'航站楼':'Air Terminal'"
prop=
"pickUpBo.terminal"
required
>
<el-input
v-model=
"form.pickUpBo.terminal"
/>
<el-input
v-model=
"form.pickUpBo.terminal"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'送达酒店':'Destination Hotel'"
prop=
"pickUpBo.hotle"
required
>
<el-input
v-model=
"form.pickUpBo.hotle"
/>
<el-input
v-model=
"form.pickUpBo.hotle"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'行程单':'Round-Trip Itinerary'"
prop=
"pickUpBo.itinerary"
required
>
<image-upload
v-model=
"form.pickUpBo.itinerary"
:button-text=
"language==0?'上传':'Upload'"
<image-upload
v-model=
"form.pickUpBo.itinerary"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
/>
:limit=
"1"
/>
</el-form-item>
</div>
...
...
@@ -105,38 +123,42 @@
<h3
class=
"leftboderTT"
>
{{
language
==
0
?
'送机信息'
:
'Delivery information'
}}
</h3>
<el-form-item
:label=
"language==0?'离会人员身份':'Role of Person-Departure'"
prop=
"downOffBo.standing"
required
>
prop=
"downOffBo.standing"
required
>
<!--
<el-input
v-model=
"form.downOffBo.standing"
/>
-->
<el-checkbox-group
v-model=
"form.downOffBo.standing"
>
<el-checkbox
:label=
"language==0?'运动员':'Athlete'"
name=
"1"
/>
<el-checkbox
:label=
"language==0?'随队人员':'Accompanying Person'"
name=
"2"
/>
<el-checkbox
:label=
"language==0?'官员':'Official'"
name=
"3"
/>
<el-checkbox
:label=
"language==0?'其他':'Others'"
name=
"4"
/>
<el-checkbox
:label=
"language==0?'运动员':'Athlete'"
name=
"1"
/>
<el-checkbox
:label=
"language==0?'随队人员':'Accompanying Person'"
name=
"2"
/>
<el-checkbox
:label=
"language==0?'官员':'Official'"
name=
"3"
/>
<el-checkbox
:label=
"language==0?'其他':'Others'"
name=
"4"
/>
</el-checkbox-group>
</el-form-item>
<el-form-item
:label=
"language==0?'国家/地区':'Country/Region'"
prop=
"downOffBo.nationalitys"
required
>
<el-select
v-model=
"form.downOffBo.nationalitys"
filterable
multiple
style=
"width: 100%;"
>
<el-option
v-for=
"item in countrys"
<el-option
v-for=
"item in countrys"
:key=
"item.id"
:label=
"language==0?item.name:item.enName"
:value=
"language==0?item.name:item.enName"
/>
:value=
"language==0?item.name:item.enName"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"language==0?'联系人':'Contact Person'"
prop=
"downOffBo.name"
required
>
<el-input
v-model=
"form.downOffBo.name"
/>
<el-input
v-model=
"form.downOffBo.name"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'联系电话':'Contact Phone Number'"
prop=
"downOffBo.phone"
required
>
<el-input
v-model=
"form.downOffBo.phone"
/>
<el-input
v-model=
"form.downOffBo.phone"
/>
</el-form-item>
<!-- todo 增加邮箱字段,登记成功后发送邮件通知-->
<!-- todo 增加邮箱字段,登记成功后发送邮件通知-->
<el-form-item
:label=
"language==0?'联系邮箱':'Contact Email'"
prop=
"downOffBo.email"
required
>
<el-input
v-model=
"form.downOffBo.email"
/>
<el-input
v-model=
"form.downOffBo.email"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'送机人数':'Number of People'"
prop=
"downOffBo.counts"
required
>
<el-input-number
v-model=
"form.downOffBo.counts"
/>
<el-input-number
v-model=
"form.downOffBo.counts"
/>
<span
style=
"color: red;margin-left: 10px"
>
{{
style=
"color: red;margin-left: 10px"
>
{{
language
==
0
?
'(填写的人数需是乘坐同一航班/车次)'
:
'The number of people to be filled in must be on the same flight/train'
}}
</span>
</el-form-item>
...
...
@@ -144,46 +166,56 @@
<!--
{{
language
==
0
?
'填写的人数需是乘坐同一航班/车次'
:
'The number of people to be filled in must be on the same flight/train'
}}
-->
<!--
</div>
-->
<el-form-item
:label=
"language==0?'离开日期':'Departure Date from Hotel'"
prop=
"downOffBo.arrivalDate"
required
>
<el-form-item
:label=
"language==0?'离开日期':'Departure Date from Hotel'"
prop=
"downOffBo.arrivalDate"
required
>
<div
style=
"padding: 1px"
>
<el-date-picker
v-model=
"form.downOffBo.arrivalDate"
format=
"YYYY-MM-DD
"
placeholder=
"YYYY-MM-DD"
:disabled-date=
"disabledDateDP
"
default-value=
"'2024-09-30'
"
v-model=
"form.downOffBo.arrivalDate"
:disabled-date=
"disabledDateDP
"
default-value=
"'2025-09-30'"
format=
"YYYY-MM-DD
"
placeholder=
"YYYY-MM-DD
"
style=
"width: 100%;"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</div>
</el-form-item>
<el-form-item
:label=
"language==0?'离开时间':'Departure Time from Hotel'"
prop=
"downOffBo.arrivaTime"
required
>
<el-form-item
:label=
"language==0?'离开时间':'Departure Time from Hotel'"
prop=
"downOffBo.arrivaTime"
required
>
<!--
<el-date-picker-->
<!-- v-model="form.downOffBo.rrivaTime"-->
<!-- format="YYYY-MM-DD" placeholder="YYYY-MM-DD"-->
<!-- style="width: 100%;" type="date" value-format="YYYY-MM-DD"-->
<!-- />-->
<el-time-picker
v-model=
"form.downOffBo.arrivaTime"
placeholder=
"HH:mm:ss"
value-format=
"HH:mm:ss"
format=
"HH:mm:ss"
style=
"width: 100%;"
/>
<el-time-picker
v-model=
"form.downOffBo.arrivaTime"
format=
"HH:mm:ss"
placeholder=
"HH:mm:ss"
style=
"width: 100%;"
value-format=
"HH:mm:ss"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'航班/车次':'Flight/Train Number'"
prop=
"downOffBo.flight"
required
>
<el-input
v-model=
"form.downOffBo.flight"
/>
<el-input
v-model=
"form.downOffBo.flight"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'机场/火车站':'Airport/Train Station'"
prop=
"downOffBo.stationName"
required
>
<el-input
v-model=
"form.downOffBo.stationName"
/>
<el-form-item
:label=
"language==0?'机场/火车站':'Airport/Train Station'"
prop=
"downOffBo.stationName"
required
>
<el-input
v-model=
"form.downOffBo.stationName"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'航站楼':'Air Terminal'"
prop=
"downOffBo.terminal"
required
>
<el-input
v-model=
"form.downOffBo.terminal"
/>
<el-input
v-model=
"form.downOffBo.terminal"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'出发酒店':'Departure Hotel'"
prop=
"downOffBo.hotle"
required
>
<el-input
v-model=
"form.downOffBo.hotle"
/>
<el-input
v-model=
"form.downOffBo.hotle"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'行程单':'Round-Trip Itinerary'"
prop=
"downOffBo.itinerary"
required
>
<image-upload
v-model=
"form.downOffBo.itinerary"
:button-text=
"language==0?'上传':'Upload'"
<image-upload
v-model=
"form.downOffBo.itinerary"
:button-text=
"language==0?'上传':'Upload'"
:is-show-tip=
"false"
:limit=
"1"
/>
:limit=
"1"
/>
</el-form-item>
</div>
...
...
@@ -196,7 +228,7 @@
</div>
<div>
<div
v-if=
"showR"
class=
"text-center pd20"
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
/
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
>
<h2
class=
"text-center"
>
{{
language
==
0
?
'境外及港澳台接送信息已提交'
:
'Request Form for Overseas, HKT, Mau, China and TPE Athletes Arrival and Departure'
}}
</h2>
...
...
@@ -216,22 +248,22 @@
</
template
>
<
script
setup
>
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
getCurrentInstance
,
watch
,
ref
}
from
"vue"
;
import
{
nextTick
}
from
"@vue/runtime-core"
;
import
{
dayjs
,
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
addInvitation
,
countryList
}
from
"@/apiPc/match"
;
import
ImageUpload
from
"@/components/ImageUpload"
;
import
{
masterClassList
,
getByCard
,
submitMasterApply
,
getMasterApply
,
delByCard
,
addPickup
}
from
"@/apiPc/common"
;
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
getCurrentInstance
,
watch
,
ref
}
from
'vue'
import
{
nextTick
}
from
'@vue/runtime-core'
import
{
dayjs
,
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
addInvitation
,
countryList
}
from
'@/apiPc/match'
import
ImageUpload
from
'@/components/ImageUpload'
import
{
masterClassList
,
getByCard
,
submitMasterApply
,
getMasterApply
,
delByCard
,
addPickup
}
from
'@/apiPc/common'
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
language
=
useStorage
(
'language'
,
0
)
const
form
=
ref
({
pickUpBo
:
{
serviceType
:
1
,
serviceType
:
1
},
downOffBo
:
{
serviceType
:
2
,
serviceType
:
2
},
type
:
[
'1'
]
})
...
...
@@ -244,123 +276,123 @@ const courseList = ref([])
const
cptId
=
ref
(
''
)
const
rules
=
ref
(
{
type
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
type
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
}
],
'pickUpBo.standing'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'pickUpBo.nationalitys'
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
'pickUpBo.name'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'pickUpBo.name'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
}
],
'pickUpBo.phone'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'pickUpBo.counts'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'pickUpBo.arrivalDate'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'pickUpBo.arrivaTime'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'pickUpBo.flight'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'pickUpBo.stationName'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'pickUpBo.terminal'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'pickUpBo.hotle'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'pickUpBo.itinerary'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'downOffBo.nationalitys'
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'downOffBo.standing'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'downOffBo.name'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'downOffBo.phone'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'downOffBo.counts'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'downOffBo.arrivalDate'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'downOffBo.arrivaTime'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},
],
}
],
'downOffBo.flight'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'downOffBo.stationName'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'downOffBo.terminal'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'downOffBo.hotle'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请输入'
:
'Please enter'
},
],
}
],
'downOffBo.itinerary'
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
language
.
value
==
0
?
'请选择'
:
'Please choose'
},],
}]
})
const
open
=
(
params
)
=>
{
...
...
@@ -369,20 +401,20 @@ const open = (params) => {
form
.
value
=
{
pickUpBo
:
{
serviceType
:
1
,
arrivalDate
:
'2024
-09-27'
arrivalDate
:
'2025
-09-27'
},
downOffBo
:
{
serviceType
:
2
,
arrivalDate
:
'2024
-09-30'
arrivalDate
:
'2025
-09-30'
},
type
:
[
'1'
]
,
type
:
[
'1'
]
}
title
.
value
=
language
.
value
==
0
?
'境外及港澳台接送信息登记'
:
'Request Form for Overseas, HKT, Mau, China and TPE Athletes Arrival and Departure'
cptId
.
value
=
params
.
cptId
getCourse
()
// proxy.$refs['iformRef']
}
defineExpose
({
open
})
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
if
(
!
value
)
{
form
.
value
=
{
...
...
@@ -395,7 +427,7 @@ watch(show, (value) => {
})
function
getCourse
()
{
masterClassList
({
cptId
:
cptId
.
value
}).
then
(
res
=>
{
masterClassList
({
cptId
:
cptId
.
value
}).
then
(
res
=>
{
courseList
.
value
=
res
.
data
})
}
...
...
@@ -412,7 +444,7 @@ function submitForm() {
// form.value.pickUpBo.serviceType=1
// form.value.downOffBo.serviceType=2
console
.
log
(
form
.
value
)
le
t
forms
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
cons
t
forms
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
forms
.
pickUpBo
.
nationalitys
=
forms
.
pickUpBo
.
nationalitys
?.
join
(
','
)
forms
.
pickUpBo
.
standing
=
forms
.
pickUpBo
.
standing
?.
join
(
','
)
forms
.
downOffBo
.
nationalitys
=
forms
.
downOffBo
.
nationalitys
?.
join
(
','
)
...
...
@@ -490,32 +522,32 @@ function getCountryList() {
// function initdateRZ() {
// const today = dayjs().format('YYYY-MM-DD')
// form.value.pickUpBo.arrivalDate ='202
4
-07'
// form.value.pickUpBo.arrivalDate ='202
5
-07'
// }
// function initdateDP() {
// const today = dayjs().format('YYYY-MM-DD')
// form.value.downOffBo.arrivalDate ='202
4
-07'
// form.value.downOffBo.arrivalDate ='202
5
-07'
// }
function
disabledDateRZ
(
date
)
{
// 16-20
//判读今天大与2024-07-16
//
判读今天大与2024-07-16
const
today
=
dayjs
().
format
(
'YYYY-MM-DD'
)
// if ('202
4
-07-16' < today) {
// return !((date.getTime() >= dayjs(today).valueOf()) && (date.getTime() <= dayjs('202
4
-09-27').valueOf()))
// if ('202
5
-07-16' < today) {
// return !((date.getTime() >= dayjs(today).valueOf()) && (date.getTime() <= dayjs('202
5
-09-27').valueOf()))
// } else {
// return !((date.getTime() >= dayjs('202
4-07-16').valueOf()) && (date.getTime() <= dayjs('2024
-07-20').valueOf()))
// return !((date.getTime() >= dayjs('202
5-07-16').valueOf()) && (date.getTime() <= dayjs('2025
-07-20').valueOf()))
// }
return
!
(
date
.
getTime
()
==
dayjs
(
'202
4
-09-27'
).
valueOf
())
return
!
(
date
.
getTime
()
==
dayjs
(
'202
5
-09-27'
).
valueOf
())
}
function
disabledDateDP
(
date
)
{
const
today
=
dayjs
().
format
(
'YYYY-MM-DD'
)
// if ('202
4
-07-18' < today) {
// return !((date.getTime() >= dayjs(today).valueOf()) && (date.getTime() <= dayjs('202
4
-07-22').valueOf()))
// if ('202
5
-07-18' < today) {
// return !((date.getTime() >= dayjs(today).valueOf()) && (date.getTime() <= dayjs('202
5
-07-22').valueOf()))
// } else {
// return !((date.getTime() >= dayjs('202
4-07-18').valueOf()) && (date.getTime() <= dayjs('2024
-07-22').valueOf()))
// return !((date.getTime() >= dayjs('202
5-07-18').valueOf()) && (date.getTime() <= dayjs('2025
-07-22').valueOf()))
// }
return
!
(
date
.
getTime
()
==
dayjs
(
'202
4
-09-30'
).
valueOf
())
return
!
(
date
.
getTime
()
==
dayjs
(
'202
5
-09-30'
).
valueOf
())
}
</
script
>
...
...
src/viewsPc/index.vue
View file @
6692d07
<
template
>
<div>
<div
class=
"banner"
>
<el-carousel
class=
"forPc"
autoplay
:interval=
"2000"
height=
"450px"
:autoplay=
"false"
arrow=
"hover"
@
change=
"carouselChange"
>
<el-carousel-item
style=
"height: 450px;"
v-for=
"n in maList"
:key=
"n.id"
>
<el-carousel
:autoplay=
"false"
:interval=
"2000"
arrow=
"hover"
autoplay
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"
class=
"bannerImg"
:src=
"fillImgUrl(n.bgImgUrl)
"
>
<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
class=
"banner-count"
v-if=
"n.time>0"
@
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"
>
...
...
@@ -36,7 +40,7 @@
报名已结束
</div>
</div>
<div
class=
"banner-count bb"
v-if=
"n.time<=0 && n.timeEnd>=0"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time<=0 && n.timeEnd>=0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
开始报名
</div>
</div>
...
...
@@ -44,14 +48,14 @@
</div>
</el-carousel-item>
</el-carousel>
<el-carousel
class=
"forWei"
height=
"160px"
autoplay
arrow=
"hover
"
@
change=
"carouselChange"
>
<el-carousel-item
style=
"height: 160px;"
v-for=
"n in maList"
:key=
"n.id
"
>
<el-carousel
arrow=
"hover"
autoplay
class=
"forWei"
height=
"160px
"
@
change=
"carouselChange"
>
<el-carousel-item
v-for=
"n in maList"
:key=
"n.id"
style=
"height: 160px;
"
>
<div
class=
"bannerItem"
style=
"height:100%"
>
<div
class=
"h100"
style=
"position: relative"
>
<img
v-if=
"n.bgImgUrl"
class=
"bannerImg"
:src=
"fillImgUrl(n.bgImgUrl)
"
>
<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;bottom: 0;margin: auto;"
>
<div
class=
"banner-count"
v-if=
"n.time>0"
@
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"
>
...
...
@@ -74,36 +78,36 @@
</van-count-down>
</div>
<div
v-if=
"n.timeEnd<0"
>
<!-- <a target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698" class="banner-count" v-if="time>0&&n.id=='1778253367748993026'" @click="goMatch(n)">-->
<!-- <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">-->
<!-- <template #default="timeData">-->
<!-- <div class="block">{{ timeData.days }}-->
<!-- <span class="colon">天</span>-->
<!-- </div>-->
<!-- :-->
<!-- <div class="block">{{ timeData.hours }}-->
<!-- <span class="colon">时</span>-->
<!-- </div>-->
<!-- :-->
<!-- <div class="block">{{ timeData.minutes }}-->
<!-- <span class="colon">分</span>-->
<!-- </div>-->
<!-- :-->
<!-- <div class="block">{{ timeData.seconds }}-->
<!-- <span class="colon">秒</span>-->
<!-- </div>-->
<!-- </template>-->
<!-- </van-count-down>-->
<!-- 开始直播-->
<!-- </a>-->
<!-- <a target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698" class="banner-count bb" v-else-if="time<=0&&n.id=='1778253367748993026'" @click="goMatch(n)">-->
<!-- 直播进行中-->
<!-- </a>-->
<!-- <a target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698" class="banner-count" v-if="time>0&&n.id=='1778253367748993026'" @click="goMatch(n)">-->
<!-- <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">-->
<!-- <template #default="timeData">-->
<!-- <div class="block">{{ timeData.days }}-->
<!-- <span class="colon">天</span>-->
<!-- </div>-->
<!-- :-->
<!-- <div class="block">{{ timeData.hours }}-->
<!-- <span class="colon">时</span>-->
<!-- </div>-->
<!-- :-->
<!-- <div class="block">{{ timeData.minutes }}-->
<!-- <span class="colon">分</span>-->
<!-- </div>-->
<!-- :-->
<!-- <div class="block">{{ timeData.seconds }}-->
<!-- <span class="colon">秒</span>-->
<!-- </div>-->
<!-- </template>-->
<!-- </van-count-down>-->
<!-- 开始直播-->
<!-- </a>-->
<!-- <a target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698" class="banner-count bb" v-else-if="time<=0&&n.id=='1778253367748993026'" @click="goMatch(n)">-->
<!-- 直播进行中-->
<!-- </a>-->
<div
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
报名已结束
</div>
</div>
<div
class=
"banner-count bb"
v-if=
"n.time<=0 && n.timeEnd>=0"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time<=0 && n.timeEnd>=0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
开始报名
</div>
</div>
...
...
@@ -115,23 +119,29 @@
<div
class=
"box zn-bg"
>
<div
class=
"zn-Box"
>
<img
class=
"bbbg"
v-if=
"matchData?.logoUrl"
:src=
"fillImgUrl(matchData.logoUrl)"
/
>
<img
v-if=
"matchData?.logoUrl"
:src=
"fillImgUrl(matchData.logoUrl)"
class=
"bbbg"
>
<el-row
style=
"align-items: center"
>
<el-col
:
sm=
"24"
:lg=
"10
"
>
<el-col
:
lg=
"10"
:sm=
"24
"
>
<div
class=
"bgbg"
>
<h1
style=
"color: #fff"
>
{{
matchData?.name
}}
</h1>
<a
class=
"zn-btn"
@
click=
"goGuide"
target=
"_blank"
>
参赛指南
<h1
style=
"color: #fff"
>
{{
matchData?.name
}}
</h1>
<a
class=
"zn-btn"
target=
"_blank"
@
click=
"goGuide"
>
参赛指南
<el-icon>
<download/>
<download
/>
</el-icon>
</a>
<a
class=
"zn-btn ml20 btn-q forPc"
v-if=
"matchData.isCourseView==1"
@
click=
"popMaster"
>
青少年公益课报名
</a>
<a
class=
"zn-btn ml20 btn-q"
v-show=
"matchData?.id=='1778253367748993026'"
@
click=
"backNumberSearch"
>
背号查询
</a>
<a
class=
"zn-btn ml20 btn-q"
v-show=
"matchData?.id=='1778253367748993026'"
@
click=
"schSearch"
>
日程查询
</a>
<a
v-if=
"matchData.isCourseView==1"
class=
"zn-btn ml20 btn-q forPc"
@
click=
"popMaster"
>
青少年公益课报名
</a>
<a
v-show=
"matchData?.id=='1778253367748993026'"
class=
"zn-btn ml20 btn-q"
@
click=
"backNumberSearch"
>
背号查询
</a>
<a
v-show=
"matchData?.id=='1778253367748993026'"
class=
"zn-btn ml20 btn-q"
@
click=
"schSearch"
>
日程查询
</a>
</div>
</el-col>
<el-col
:
sm=
"24"
:lg=
"1
4"
>
<HomeQuick
:
match-id=
"matchData?.id"
:cpt-name=
"matchData?.name"
/>
<el-col
:
lg=
"14"
:sm=
"2
4"
>
<HomeQuick
:
cpt-name=
"matchData?.name"
:match-id=
"matchData?.id"
/>
</el-col>
</el-row>
</div>
...
...
@@ -140,25 +150,25 @@
<div
id=
"part0"
class=
"box part"
>
<el-row
:gutter=
"20"
>
<el-col
:
sm=
"24"
:lg=
"12
"
>
<el-col
:
lg=
"12"
:sm=
"24
"
>
<div
class=
"indexTitle"
>
<h3
class=
"leftboderTT"
>
赛事日程
</h3>
<a
class=
"more"
href=
"#/saiC"
>
MORE
</a>
</div>
<!--赛事日历-->
<el-card
:body-style=
"{'padding':'20px 20px'}"
>
<home-calendar/>
<home-calendar
/>
</el-card>
</el-col>
<el-col
:
sm=
"24"
:lg=
"12
"
>
<el-col
:
lg=
"12"
:sm=
"24
"
>
<div
class=
"indexTitle"
>
<h3
class=
"leftboderTT"
>
奖牌榜
</h3>
<a
class=
"more"
href=
"#/saiC"
>
MORE
</a>
</div>
<!--历史排名-->
<el-card
:body-style=
"{'padding':'10px 20px 18px'}"
>
<el-table
stripe
:data=
"rank"
>
<el-table-column
label=
"名次"
align=
"center"
width=
"50"
type=
"index
"
>
<el-table
:data=
"rank"
stripe
>
<el-table-column
align=
"center"
label=
"名次"
type=
"index"
width=
"50
"
>
<
template
#
default=
"scope"
>
<span
v-if=
"scope.row.mingCi == 1"
style=
"color:#F8A617"
>
{{
scope
.
row
.
mingCi
}}
</span>
<span
v-else-if=
"scope.row.mingCi == 2"
style=
"color:#778B92"
>
{{
scope
.
row
.
mingCi
}}
</span>
...
...
@@ -170,12 +180,12 @@
<el-table-column
label=
"国家"
prop=
"name"
>
<
template
#
default=
"scope"
>
<div>
<span
:class=
"`flag-icon flag-icon-$
{scope.row.code}`"
>
</span
>
<span
:class=
"`flag-icon flag-icon-$
{scope.row.code}`"
/
>
{{
scope
.
row
.
countryName
}}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"组合"
align=
"center
"
>
<el-table-column
align=
"center"
label=
"组合
"
>
<
template
#
default=
"scope"
>
<div
class=
"text-primary esp"
>
{{
scope
.
row
.
zuHe
}}
</div>
</
template
>
...
...
@@ -221,8 +231,8 @@
<el-row
:gutter=
"20"
>
<el-col
v-for=
"(n,index) in newest2"
:key=
"n.id"
:xs=
"24
"
:sm=
"8"
:lg=
"8
"
:key=
"n.id"
:lg=
"8
"
:sm=
"8"
:xs=
"24
"
>
<div
class=
"activeItem"
@
click=
"goDetail(n)"
>
<div
class=
"imgbox"
>
...
...
@@ -230,11 +240,11 @@
</div>
<div
class=
"info"
>
<div
class=
"date"
>
{{ n.sortName }} | {{
n.belongTime
}}
{{ n.sortName }} | {{
n.belongTime
}}
</div>
<h3
class=
"esp"
>
{{ n.name }}
</h3>
<p
class=
"esp_2"
style=
"height: 40px"
>
{{
n.subName
}}
{{
n.subName
}}
</p>
<a>
查看详情
</a>
</div>
...
...
@@ -253,7 +263,7 @@
<el-row
:gutter=
"20"
>
<el-col
:lg=
"8"
>
<a
class=
"liveImgbox"
target=
"_blank"
@
click=
"golive(livelist[0])"
>
<div
class=
"livetimecount"
v-if=
"time>0
"
>
<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
}}
...
...
@@ -271,26 +281,26 @@
</
template
>
</van-count-down>
</div>
<i
class=
"ii"
v-else-if=
"etime>0&&time<=0
"
>
直播中
</i>
<!-- <i class="livetimecount" v-if="etime<=0">直播已结束</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.jpeg"
/
>
<img
v-if=
"time>0"
src=
"/img/111.jpeg"
>
<img
v-else
:src=
"fillImgUrl_webSite(livelist[0]?.picUrl)"
>
</div>
<h3
class=
"esp"
v-if=
"time>0
"
>
<h3
v-if=
"time>0"
class=
"esp
"
>
2024WDSF亚洲体育舞蹈节
</h3>
<h3
class=
"esp"
v-else
>
{{livelist[0]?.name }}
<h3
v-else
class=
"esp"
>
{{
livelist[0]?.name }}
</h3>
</a>
</el-col>
<el-col
:lg=
"16"
>
<div
class=
"swiperPic"
>
<swiper
class=
"swiper-wrapper"
:modules=
"modules"
:slides-per-view=
"3"
:space-between=
"20
"
:navigation=
"navigationPic
"
:autoplay=
"true"
:loop=
"true
"
: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)"
>
...
...
@@ -304,15 +314,16 @@
</el-col>
</el-row>
<el-row
class=
"news-l-r"
>
<el-col
v-for=
"(n,index) in livelist"
:lg=
"8"
v-show=
"index>0
"
>
<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"
></i
>
<i
class=
"playIcon"
/
>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
></div>
<div
class=
"info"
>
<div
class=
"text-primary small-size"
>
<span
v-if=
"n.subName"
>
{{n.subName + ' | '}}
</span>
{{ n.belongTime }}
</div>
<span
v-if=
"n.subName"
>
{{ n.subName + ' | ' }}
</span>
{{ n.belongTime }}
</div>
<h2
class=
"esp_2"
>
{{ n.name }}
</h2>
</div>
</div>
...
...
@@ -329,7 +340,10 @@
<h3
class=
"leftboderTT"
>
评委介绍
</h3>
</div>
<el-row
:gutter=
"20"
>
<el-col
:sm=
"12"
:xl=
"4"
:xs=
"12"
:lg=
"4"
:md=
"8"
v-for=
"n in personList"
:key=
"n.name"
>
<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>
...
...
@@ -348,14 +362,15 @@
</div>
<div
class=
"aboutBox"
>
<div
class=
"content"
>
<div
v-html=
"aboutUsContent"
></div
>
<!-- 无锡WDSF亚洲体育舞蹈节是由世界体育舞蹈(无锡)中心(世界体育舞蹈联合、亚洲体育舞蹈联合、中国体育舞蹈联合会和无锡市人民政府共建)打造面向全球的、长期落户的、城市自主的品牌赛事。-->
<!-- 2023年7月首次举办无锡2023年WDSF亚洲体育舞蹈节,包括2023年WDSF世界标准舞锦标赛、2023年WDSF世界体育舞蹈大奖赛(中国无锡)、2023年全国体育舞蹈公开系列赛(无锡站),共吸引来自全球39个国家及地区的1,716名顶级舞者参与。-->
<!-- 同时,并将世界体育舞蹈(无锡)中心成功落户中国无锡,以“节日有竞赛、竞赛节日化”为发展指导原则,“四方”共同努力服务全球舞者。 <div class="shadowbox"/>-->
<div
v-html=
"aboutUsContent"
/
>
<!-- 无锡WDSF亚洲体育舞蹈节是由世界体育舞蹈(无锡)中心(世界体育舞蹈联合、亚洲体育舞蹈联合、中国体育舞蹈联合会和无锡市人民政府共建)打造面向全球的、长期落户的、城市自主的品牌赛事。-->
<!-- 2023年7月首次举办无锡2023年WDSF亚洲体育舞蹈节,包括2023年WDSF世界标准舞锦标赛、2023年WDSF世界体育舞蹈大奖赛(中国无锡)、2023年全国体育舞蹈公开系列赛(无锡站),共吸引来自全球39个国家及地区的1,716名顶级舞者参与。-->
<!-- 同时,并将世界体育舞蹈(无锡)中心成功落户中国无锡,以“节日有竞赛、竞赛节日化”为发展指导原则,“四方”共同努力服务全球舞者。 <div class="shadowbox"/>-->
</div>
<div
class=
"mt30 text-center"
>
<a
class=
"btn-lineG"
href=
"#/about/wuDao"
style=
"display: inline-flex;align-items: center;"
>
了解更多
<img
style=
"filter: brightness(2);height: 8px"
src=
"@/assets/v1/more.png"
/></a>
src=
"@/assets/v1/more.png"
style=
"filter: brightness(2);height: 8px"
></a>
</div>
</div>
...
...
@@ -390,7 +405,7 @@
<h3
class=
"leftboderTT"
>
合作伙伴
</h3>
</div>
<el-row
:gutter=
"20"
>
<el-col
:lg=
"6"
:sm=
"6"
:xs=
"6"
v-for=
"p in partners
"
>
<el-col
v-for=
"p in partners"
:lg=
"6"
:sm=
"6"
:xs=
"6
"
>
<div
class=
"logobox"
>
<img
:src=
"fillImgUrl(JSON.parse(p.picUrl))"
>
</div>
...
...
@@ -402,26 +417,27 @@
<
script
setup
>
import
HomeQuick
from
'@/viewsPc/components/homeQuick'
import
HomeCalendar
from
'@/viewsPc/components/homeCalendar'
import
{
ref
,
nextTick
,
onMounted
,
watch
}
from
'vue'
import
{
getCurrentInstance
}
from
'@vue/runtime-core'
import
{
getHomePage
,
getNewsListById
,
getNewsList
,
getRank
}
from
'@/apiPc/webSite'
import
{
useRouter
}
from
'vue-router'
import
{
rankList
}
from
'@/assets/js/data'
import
{
ref
,
nextTick
,
onMounted
,
watch
}
from
'vue'
import
{
getCurrentInstance
}
from
'@vue/runtime-core'
import
{
getHomePage
,
getNewsListById
,
getNewsList
,
getRank
}
from
'@/apiPc/webSite'
import
{
useRouter
}
from
'vue-router'
import
{
rankList
}
from
'@/assets/js/data'
import
_
from
'lodash'
import
{
Swiper
,
SwiperSlide
}
from
'swiper/vue'
import
{
Autoplay
,
Navigation
}
from
'swiper'
import
{
Swiper
,
SwiperSlide
}
from
'swiper/vue'
import
{
Autoplay
,
Navigation
}
from
'swiper'
import
'swiper/css'
import
{
dayjs
}
from
'element-plus'
import
*
as
match
from
"@/apiPc/match"
;
import
{
getAboutUs
,
getppInfo
,
getZNList
}
from
"@/apiPc/match"
;
import
{
dayjs
}
from
'element-plus'
import
*
as
match
from
'@/apiPc/match'
import
{
getAboutUs
,
getppInfo
,
getZNList
}
from
'@/apiPc/match'
const
modules
=
[
Autoplay
,
Navigation
]
const
navigationPic
=
ref
({
nextEl
:
'.picnext'
,
prevEl
:
'.picprev'
})
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'pop'
,
'pickup'
,
'backNumber'
,
'schSearch'
])
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'pop'
,
'pickup'
,
'backNumber'
,
'schSearch'
])
const
time
=
ref
(
0
)
const
etime
=
ref
(
0
)
const
personList
=
ref
([
...
...
@@ -429,7 +445,7 @@ const personList = ref([
{
name
:
'Nenad Jeftic'
,
pp
:
'标准舞裁判长 塞尔维亚'
,
src
:
'/img/2.png'
},
{
name
:
'Dorel Bagiu'
,
pp
:
'罗马尼亚'
,
src
:
'/img/3.png'
},
{
name
:
'Eduard Korotin'
,
pp
:
' 爱沙尼亚'
,
src
:
'/img/4.png'
},
{
name
:
'Ana Cristina Silva'
,
pp
:
'葡萄牙'
,
src
:
'/img/5.png'
},
{
name
:
'Ana Cristina Silva'
,
pp
:
'葡萄牙'
,
src
:
'/img/5.png'
},
{
name
:
'Dallas Leslie Williams'
,
pp
:
'记分长 澳大利亚'
,
src
:
'/img/6.png'
}
])
const
activeNews
=
ref
(
0
)
...
...
@@ -455,13 +471,13 @@ onMounted(() => {
const
init
=
()
=>
{
var
today
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
time
.
value
=
dayjs
(
'202
4
-07-17 07:00:00'
).
diff
(
today
,
'millisecond'
)
etime
.
value
=
dayjs
(
'202
4
-07-22 12:00:00'
).
diff
(
today
,
'millisecond'
)
getRank
().
then
(
res
=>
{
rank
.
value
=
res
.
data
.
slice
(
0
,
6
)
time
.
value
=
dayjs
(
'202
5
-07-17 07:00:00'
).
diff
(
today
,
'millisecond'
)
etime
.
value
=
dayjs
(
'202
5
-07-22 12:00:00'
).
diff
(
today
,
'millisecond'
)
getRank
().
then
(
res
=>
{
rank
.
value
=
res
.
data
.
slice
(
0
,
6
)
})
getNewsListById
({
pageSize
:
time
.
value
>
0
?
3
:
4
,
pageSize
:
time
.
value
>
0
?
3
:
4
,
pageNum
:
1
,
sortId
:
'10000006'
}
...
...
@@ -485,16 +501,16 @@ const init = () => {
).
then
(
res
=>
{
newest2
.
value
=
res
.
rows
})
match
.
getMaList
({
topFlag
:
1
}).
then
((
res
)
=>
{
match
.
getMaList
({
topFlag
:
1
}).
then
((
res
)
=>
{
maList
.
value
=
res
.
rows
for
(
le
t
n
of
maList
.
value
)
{
for
(
cons
t
n
of
maList
.
value
)
{
var
today
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
if
(
n
.
signBeginTime
)
{
if
(
n
.
signBeginTime
)
{
n
.
time
=
dayjs
(
n
.
signBeginTime
).
diff
(
today
,
'millisecond'
)
}
else
{
n
.
time
=
0
}
if
(
n
.
signEndTime
)
{
if
(
n
.
signEndTime
)
{
n
.
timeEnd
=
dayjs
(
n
.
signEndTime
).
diff
(
today
,
'millisecond'
)
}
else
{
n
.
time
=
0
...
...
@@ -508,7 +524,7 @@ const getpartners = () => {
match
.
getppInfo
(
'10000001'
).
then
((
res
)
=>
{
aboutUsContent
.
value
=
res
.
data
.
contextZh
})
match
.
getZNList
({
sortId
:
'2000'
,
language
:
1
}).
then
((
res
)
=>
{
match
.
getZNList
({
sortId
:
'2000'
,
language
:
1
}).
then
((
res
)
=>
{
partners
.
value
=
res
.
rows
})
}
...
...
@@ -525,7 +541,7 @@ const goDetail = (n) => {
}
}
const
golive
=
(
n
)
=>
{
if
(
time
.
value
>
0
)
{
if
(
time
.
value
>
0
)
{
window
.
open
(
'https://wx.vzan.com/live/page/1151815649?v=1720589464698'
)
}
else
{
router
.
push
({
...
...
@@ -560,38 +576,38 @@ const goGuide = () => {
router
.
push
({
name
:
'guide'
,
query
:
{
index
:
8
index
:
8
}
})
}
const
popMaster
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
cptId
:
matchData
.
value
.
id
}
emit
(
'pop'
,
params
)
emit
(
'pop'
,
params
)
}
const
backNumberSearch
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
cptId
:
matchData
.
value
.
id
}
emit
(
'backNumber'
,
params
)
emit
(
'backNumber'
,
params
)
}
const
schSearch
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
cptId
:
matchData
.
value
.
id
}
emit
(
'schSearch'
,
params
)
emit
(
'schSearch'
,
params
)
}
const
handlePickup
=
()
=>
{
const
params
=
{
cptId
:
matchData
.
value
.
id
const
handlePickup
=
()
=>
{
const
params
=
{
cptId
:
matchData
.
value
.
id
}
emit
(
'pickup'
,
params
)
emit
(
'pickup'
,
params
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
lang=
"scss"
scoped
>
.zn-bg
{
background
:
linear-gradient
(
90deg
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#453DEA
,
#8623FC
);
...
...
@@ -652,7 +668,8 @@ const handlePickup=()=>{
background
:
#000
;
position
:
relative
;
.banner-count
{
cursor
:
pointer
;
.banner-count
{
cursor
:
pointer
;
position
:
absolute
;
padding
:
20px
40px
;
font-size
:
20px
;
...
...
@@ -695,10 +712,20 @@ const handlePickup=()=>{
font-size
:
20px
;
}
}
.bb
{
width
:
580px
;
justify-content
:
center
;
height
:
100px
;
font-size
:
30px
;}
.banner-count.bb
:hover
{
box-shadow
:
0
0
20px
#453DEA
;
border-radius
:
100px
;
.bb
{
width
:
580px
;
justify-content
:
center
;
height
:
100px
;
font-size
:
30px
;
}
.banner-count.bb
:hover
{
box-shadow
:
0
0
20px
#453DEA
;
border-radius
:
100px
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
)
}
.box
{
position
:
absolute
;
height
:
100%
;
...
...
@@ -765,6 +792,7 @@ const handlePickup=()=>{
position
:
relative
;
height
:
400px
;
}
.ggbond
{
height
:
230px
;
position
:
relative
;
...
...
@@ -780,44 +808,94 @@ const handlePickup=()=>{
}
}
.teacher
{
height
:
410px
;
background
:
#fff
;
position
:
relative
;
border-radius
:
10px
;
overflow
:
hidden
;
.imgbox{
background
:
linear-gradient
(
0
,
#C8AAFC
,
#fff
)}
img
{
height
:
350px
;
width
:
100%
;
object-fit
:
cover
;}
h3
{
color
:
#fff
;
background
:
url("@/assets/dance/name_bg.png")
no-repeat
center
;
background-size
:
110%
100%
;
text-align
:
center
;
height
:
30px
;
line-height
:
30px
;
font-size
:
18px
;
position
:
absolute
;
width
:
100%
;
bottom
:
30px
;}
p
{
text-align
:
center
;
margin
:
25px
0
0
;
font-size
:
14px
;}
.teacher
{
height
:
410px
;
background
:
#fff
;
position
:
relative
;
border-radius
:
10px
;
overflow
:
hidden
;
.imgbox
{
background
:
linear-gradient
(
0
,
#C8AAFC
,
#fff
)
}
img
{
height
:
350px
;
width
:
100%
;
object-fit
:
cover
;
}
h3
{
color
:
#fff
;
background
:
url("@/assets/dance/name_bg.png")
no-repeat
center
;
background-size
:
110%
100%
;
text-align
:
center
;
height
:
30px
;
line-height
:
30px
;
font-size
:
18px
;
position
:
absolute
;
width
:
100%
;
bottom
:
30px
;
}
p
{
text-align
:
center
;
margin
:
25px
0
0
;
font-size
:
14px
;
}
}
@media
screen
and
(
max-width
:
1650px
)
{
.teacher
{
height
:
320px
;
.imgbox{
img{
height
:
260px
}
.teacher
{
height
:
320px
;
.imgbox
{
img
{
height
:
260px
}
}
}
}
@media
screen
and
(
max-width
:
1200px
)
{
.teacher
{
height
:
450px
;
margin
:
0
0
20px
;
.imgbox{
img{
height
:
390px
}
.teacher
{
height
:
450px
;
margin
:
0
0
20px
;
.imgbox
{
img
{
height
:
390px
}
}
}
}
@media
screen
and
(
max-width
:
900px
)
{
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox{
img{
height
:
340px
}
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox
{
img
{
height
:
340px
}
}
}
}
@media
screen
and
(
max-width
:
800px
)
{
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox{
img{
height
:
260px
}
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox
{
img
{
height
:
260px
}
}
}
}
.aboutBox
{
background
:
url("@/assets/dance/about_bg.png")
no-repeat
center
;
height
:
375px
;
...
...
@@ -905,7 +983,9 @@ const handlePickup=()=>{
margin
:
0
0
30px
;
img
{
width
:
100%
;
height
:
100%
;
object-fit
:
contain
;
width
:
100%
;
height
:
100%
;
object-fit
:
contain
;
}
}
...
...
@@ -1032,15 +1112,30 @@ const handlePickup=()=>{
}
}
}
.livetimecount
{
position
:
absolute
;
top
:
0
;
z-index
:
2
;
background
:
#F04035
;
.livetimecount
{
position
:
absolute
;
top
:
0
;
z-index
:
2
;
background
:
#F04035
;
padding
:
2px
4px
;
&::after{
content
:
''
;
width
:
0
;
height
:
0
;
position
:
absolute
;
right
:
-15px
;
top
:
0
;
&::after
{
content
:
''
;
width
:
0
;
height
:
0
;
position
:
absolute
;
right
:
-15px
;
top
:
0
;
border-top
:
24px
solid
#F04035
;
border-right
:
15px
solid
transparent
;}
.van-count-down
{
display
:
flex
;
border-right
:
15px
solid
transparent
;
}
.van-count-down
{
display
:
flex
;
color
:
#fff
;
font-size
:
14px
;
.block
{
color
:
#fff
;
text-align
:
center
;
...
...
@@ -1049,12 +1144,16 @@ const handlePickup=()=>{
}
}
}
@media
(
max-width
:
500px
)
{
.forPc
{
display
:
none
!important
;}
.logobox
{
.forPc
{
display
:
none
!important
;
}
.logobox
{
height
:
60px
;
}
}
:deep
(
.btn-q
)
{
//
background
:
#FFFFFF
;
//
font-size
:
18px
;
...
...
@@ -1077,16 +1176,16 @@ const handlePickup=()=>{
box-sizing
:
inherit
;
}
.btn-q
:hover
{
.btn-q
:hover
{
box-shadow
:
0
0
20px
#453DEA
;
border-radius
:
100px
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
)
!important
;
}
.ding
{
.ding
{
position
:
fixed
;
right
:
0px
;
z-index
:
99
;
z-index
:
99
;
top
:
40%
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
)
!important
;
box-shadow
:
none
;
...
...
src/viewsPc/index_en.vue
View file @
6692d07
<
template
>
<div>
<div
class=
"banner"
>
<el-carousel
height=
"450px"
autoplay
:interval=
"2000"
class=
"forPc"
:autoplay=
"false"
arrow=
"hover"
@
change=
"carouselChange"
>
<el-carousel-item
style=
"height: 450px;"
v-for=
"n in maList"
:key=
"n.id"
>
<el-carousel
:autoplay=
"false"
:interval=
"2000"
arrow=
"hover"
autoplay
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"
class=
"bannerImg"
:src=
"fillImgUrl(n.bgImgUrl)
"
>
<img
v-if=
"n.bgImgUrl"
:src=
"fillImgUrl(n.bgImgUrl)"
class=
"bannerImg
"
>
<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
class=
"banner-count"
v-if=
"n.time>0"
>
<div
v-if=
"n.time>0"
class=
"banner-count"
>
Countdown
<van-count-down
:time=
"n.time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<template
#
default=
"timeData"
>
<div
class=
"block"
>
{{
timeData
.
days
}}
<span
class=
"colon"
>
Days
</span>
</div>
:
</div>
:
<div
class=
"block"
>
{{
timeData
.
hours
}}
<span
class=
"colon"
>
Hrs
</span>
</div>
:
</div>
:
<div
class=
"block"
>
{{
timeData
.
minutes
}}
<span
class=
"colon"
>
Min
</span>
</div>
:
</div>
:
<div
class=
"block"
>
{{
timeData
.
seconds
}}
<span
class=
"colon"
>
Sec
</span>
</div>
...
...
@@ -33,7 +40,7 @@
Registration has ended
</div>
</div>
<div
class=
"banner-count bb"
v-if=
"n.time<=0&&n.timeEnd>=0"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time<=0&&n.timeEnd>=0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
REGISTER NOW
</div>
</div>
...
...
@@ -41,26 +48,29 @@
</div>
</el-carousel-item>
</el-carousel>
<el-carousel
class=
"forWei"
height=
"160px"
autoplay
arrow=
"hover
"
@
change=
"carouselChange"
>
<el-carousel-item
style=
"height: 160px;"
v-for=
"n in maList"
:key=
"n.id
"
>
<el-carousel
arrow=
"hover"
autoplay
class=
"forWei"
height=
"160px
"
@
change=
"carouselChange"
>
<el-carousel-item
v-for=
"n in maList"
:key=
"n.id"
style=
"height: 160px;
"
>
<div
class=
"bannerItem"
style=
"height:100%"
>
<div
class=
"h100"
style=
"position: relative"
>
<img
v-if=
"n.bgImgUrl"
class=
"bannerImg"
:src=
"fillImgUrl(n.bgImgUrl)
"
>
<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;bottom: 0;margin: auto;"
>
<div
class=
"banner-count"
v-if=
"n.time>0"
>
<div
v-if=
"n.time>0"
class=
"banner-count"
>
Countdown
<van-count-down
:time=
"n.time"
format=
"DD 天 HH 时 mm 分 ss 秒"
>
<
template
#
default=
"timeData"
>
<div
class=
"block"
>
{{
timeData
.
days
}}
<span
class=
"colon"
>
Days
</span>
</div>
:
</div>
:
<div
class=
"block"
>
{{
timeData
.
hours
}}
<span
class=
"colon"
>
Hrs
</span>
</div>
:
</div>
:
<div
class=
"block"
>
{{
timeData
.
minutes
}}
<span
class=
"colon"
>
Min
</span>
</div>
:
</div>
:
<div
class=
"block"
>
{{
timeData
.
seconds
}}
<span
class=
"colon"
>
Sec
</span>
</div>
...
...
@@ -73,7 +83,7 @@
Registration has ended
</div>
</div>
<div
class=
"banner-count bb"
v-if=
"n.time<=0&&n.timeEnd>=0"
@
click=
"goMatch(n)"
>
<div
v-if=
"n.time<=0&&n.timeEnd>=0"
class=
"banner-count bb"
@
click=
"goMatch(n)"
>
REGISTER NOW
</div>
...
...
@@ -86,28 +96,38 @@
<div
class=
"box zn-bg"
>
<div
class=
"zn-Box"
>
<img
class=
"bbbg"
v-if=
"matchData?.logoUrl"
:src=
"fillImgUrl(matchData?.logoUrl)"
/
>
<img
v-if=
"matchData?.logoUrl"
:src=
"fillImgUrl(matchData?.logoUrl)"
class=
"bbbg"
>
<el-row>
<el-col
:
sm=
"24"
:lg=
"10
"
>
<el-col
:
lg=
"10"
:sm=
"24
"
>
<div
class=
"bgbg"
>
<h1
style=
"color: #fff"
>
{{
matchData?.name
}}
</h1>
<h1
style=
"color: #fff"
>
{{
matchData?.name
}}
</h1>
<div
class=
"mb30"
>
<a
class=
"zn-btn"
style=
"font-size: 15px"
@
click=
"goGuide"
>
GUIDELINE
<el-icon><download
/></el-icon>
<el-icon>
<download
/>
</el-icon>
</a>
<a
class=
"zn-btn ml20 btn-q forPc"
v-if=
"matchData.isCourseView==1"
style=
"font-size: 15px;margin-right: 20px"
@
click=
"popMaster"
>
Junior
&
Youth Camp REGISTER
<el-icon><Edit
/></el-icon>
<a
v-if=
"matchData.isCourseView==1"
class=
"zn-btn ml20 btn-q forPc"
style=
"font-size: 15px;margin-right: 20px"
@
click=
"popMaster"
>
Junior
&
Youth Camp REGISTER
<el-icon>
<Edit
/>
</el-icon>
</a>
<a
class=
"zn-btn ml20 btn-q"
v-show=
"matchData?.id=='1778253367748993026'"
@
click=
"backNumberSearch"
>
Competition Number
</a>
<a
class=
"zn-btn ml20 btn-q"
v-show=
"matchData?.id=='1778253367748993026'"
@
click=
"schSearchSearch"
>
Schedule Inquiry
</a>
<a
v-show=
"matchData?.id=='1778253367748993026'"
class=
"zn-btn ml20 btn-q"
@
click=
"backNumberSearch"
>
Competition
Number
</a>
<a
v-show=
"matchData?.id=='1778253367748993026'"
class=
"zn-btn ml20 btn-q"
@
click=
"schSearchSearch"
>
Schedule
Inquiry
</a>
</div>
</div>
</el-col>
<el-col
:
sm=
"24"
:lg=
"1
4"
>
<HomeQuick
:
match-id=
"matchData?.id"
:cpt-name=
"matchData?.name"
/>
<el-col
:
lg=
"14"
:sm=
"2
4"
>
<HomeQuick
:
cpt-name=
"matchData?.name"
:match-id=
"matchData?.id"
/>
</el-col>
</el-row>
</div>
...
...
@@ -116,25 +136,25 @@
<div
id=
"part0"
class=
"box part"
>
<el-row
:gutter=
"20"
>
<el-col
:
sm=
"24"
:lg=
"12
"
>
<el-col
:
lg=
"12"
:sm=
"24
"
>
<div
class=
"indexTitle"
>
<h3
class=
"leftboderTT"
>
COMPETITION SCHEDULE
</h3>
<a
class=
"more"
@
click=
"gosaiC"
>
MORE
</a>
</div>
<!--赛事日历-->
<el-card
:body-style=
"{'padding':'20px 20px'}"
>
<home-calendar/>
<home-calendar
/>
</el-card>
</el-col>
<el-col
:
sm=
"24"
:lg=
"12
"
>
<el-col
:
lg=
"12"
:sm=
"24
"
>
<div
class=
"indexTitle"
>
<h3
class=
"leftboderTT"
>
MEDAL LIST
</h3>
<!-- <a class="more" href="#/saiC">MORE</a>-->
<!-- <a class="more" href="#/saiC">MORE</a>-->
</div>
<!--历史排名-->
<el-card
:body-style=
"{'padding':'10px 20px 18px'}"
>
<el-table
stripe
:data=
"rank"
>
<el-table-column
label=
"RANK"
align=
"center"
width=
"80"
type=
"index
"
>
<el-table
:data=
"rank"
stripe
>
<el-table-column
align=
"center"
label=
"RANK"
type=
"index"
width=
"80
"
>
<
template
#
default=
"scope"
>
<span
v-if=
"scope.row.mingCi == 1"
style=
"color:#F8A617"
>
{{
scope
.
row
.
mingCi
}}
</span>
<span
v-else-if=
"scope.row.mingCi == 2"
style=
"color:#778B92"
>
{{
scope
.
row
.
mingCi
}}
</span>
...
...
@@ -145,12 +165,12 @@
<el-table-column
label=
"COUNTRY"
>
<
template
#
default=
"scope"
>
<div>
<span
:class=
"`flag-icon flag-icon-$
{scope.row.code}`"
>
</span
>
<span
:class=
"`flag-icon flag-icon-$
{scope.row.code}`"
/
>
{{
scope
.
row
.
countryShortName
}}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"COUPLE"
align=
"center
"
>
<el-table-column
align=
"center"
label=
"COUPLE
"
>
<
template
#
default=
"scope"
>
<div
class=
"text-primary esp"
>
{{
scope
.
row
.
zuHe
}}
</div>
</
template
>
...
...
@@ -195,8 +215,8 @@
<el-row
:gutter=
"20"
>
<el-col
v-for=
"(n,index) in newest2"
:key=
"n.id"
:
xs=
"24
"
:sm=
"8"
:
lg=
"8
"
:key=
"n.id"
:
lg=
"8
"
:sm=
"8"
:
xs=
"24
"
>
<div
class=
"activeItem"
@
click=
"goNewsDetail(n)"
>
<div
class=
"imgbox"
>
...
...
@@ -208,7 +228,7 @@
</div>
<h3
class=
"esp"
>
{{ n.name }}
</h3>
<p
class=
"esp_2"
style=
"height: 40px"
>
{{
n.subName
}}
{{
n.subName
}}
</p>
<a>
DETAIL
</a>
</div>
...
...
@@ -227,8 +247,8 @@
<el-card>
<el-row
:gutter=
"20"
>
<el-col
:lg=
"8"
>
<a
class=
"liveImgbox"
target=
"_blank"
href=
"https://wx.vzan.com/live/page/1151815649?v=1720589464698
"
>
<div
class=
"livetimecount"
v-if=
"time>0
"
>
<a
class=
"liveImgbox"
href=
"https://wx.vzan.com/live/page/1151815649?v=1720589464698"
target=
"_blank
"
>
<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
}}
...
...
@@ -246,11 +266,11 @@
</
template
>
</van-count-down>
</div>
<!-- <i class="ii" v-else-if="etime>0&&time<=0">Living</i>-->
<!-- <i class="livetimecount" v-if="etime<=0">End</i>-->
<div
class=
"imgBox"
><img
src=
"/img/111.jpeg"
/
></div>
<!-- <i class="ii" v-else-if="etime>0&&time<=0">Living</i>-->
<!-- <i class="livetimecount" v-if="etime<=0">End</i>-->
<div
class=
"imgBox"
><img
src=
"/img/111.jpeg"
></div>
<h3
class=
"esp"
>
WUXI 2024
WDSF ASIAN DANCESPORT FESTIVAL
WUXI 2025
WDSF ASIAN DANCESPORT FESTIVAL
</h3>
</a>
</el-col>
...
...
@@ -258,11 +278,11 @@
<div
class=
"swiperPic forPx"
>
<swiper
class=
"swiper-wrapper"
:modules=
"modules"
:slides-per-view=
"3"
:space-between=
"20
"
:
navigation=
"navigationPic
"
:
autoplay=
"true"
:loop=
"true
"
: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-slide
v-for=
"(n,i) in picList"
:key=
"i"
>
<div
class=
"picbox"
@
click=
"goNewsDetail(n)"
>
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
>
</div>
...
...
@@ -282,8 +302,9 @@
<img
:src=
"fillImgUrl_webSite(n.picUrl)"
></div>
<div
class=
"info"
>
<div
class=
"text-primary small-size"
>
<span
v-if=
"n.subName"
>
{{n.subName + ' | '}}
</span>
{{ n.belongTime }}
</div>
<span
v-if=
"n.subName"
>
{{ n.subName + ' | ' }}
</span>
{{ n.belongTime }}
</div>
<h2
class=
"esp_2"
>
{{ n.name }}
</h2>
</div>
</div>
...
...
@@ -301,8 +322,8 @@
</div>
<el-row
:gutter=
"20"
>
<el-col
v-for=
"n in personList"
:key=
"n.name"
:
sm=
"8"
:xl=
"4"
:xs=
"12
"
:
lg=
"4
"
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>
...
...
@@ -323,11 +344,12 @@
</div>
<div
class=
"aboutBox"
>
<div
class=
"content"
>
<div
v-html=
"aboutUsContent"
></div
>
<div
v-html=
"aboutUsContent"
/
>
<div
class=
"shadowbox"
/>
</div>
<div
class=
"mt30 text-center"
>
<a
class=
"btn-lineG"
href=
"#/about/wuDao"
style=
"display: inline-flex;align-items: center;"
>
Learn more
<img
style=
"filter: brightness(2);height: 8px;margin-left: 10px"
src=
"@/assets/v1/more.png"
></a>
<a
class=
"btn-lineG"
href=
"#/about/wuDao"
style=
"display: inline-flex;align-items: center;"
>
Learn more
<img
src=
"@/assets/v1/more.png"
style=
"filter: brightness(2);height: 8px;margin-left: 10px"
></a>
</div>
</div>
...
...
@@ -335,7 +357,7 @@
<el-col
:lg=
"12"
>
<div
class=
"indexTitle"
>
<h3
class=
"leftboderTT"
>
CONTACT
</h3>
<a
class=
"more"
style=
"filter: brightness(10)"
href=
"#/about/wuDao
"
>
MORE
</a>
<a
class=
"more"
href=
"#/about/wuDao"
style=
"filter: brightness(10)
"
>
MORE
</a>
</div>
<div
class=
"mapBox"
>
<div
class=
"content"
>
...
...
@@ -362,7 +384,7 @@
<h3
class=
"leftboderTT"
>
PARTNERS
</h3>
</div>
<el-row
:gutter=
"20"
>
<el-col
:lg=
"6"
:sm=
"12"
:xs=
"6"
v-for=
"p in partners
"
>
<el-col
v-for=
"p in partners"
:lg=
"6"
:sm=
"12"
:xs=
"6
"
>
<div
class=
"logobox"
>
<img
:src=
"fillImgUrl(JSON.parse(p.picUrl))"
>
</div>
...
...
@@ -376,7 +398,7 @@
<
script
setup
>
import
{
ref
,
nextTick
,
onMounted
,
watch
}
from
'vue'
import
{
getCurrentInstance
}
from
'@vue/runtime-core'
import
{
getNewsListById
,
getNewsList
,
getWeather
,
getRank
}
from
'@/apiPc/webSite'
import
{
getNewsListById
,
getNewsList
,
getWeather
,
getRank
}
from
'@/apiPc/webSite'
import
{
useRouter
}
from
'vue-router'
import
_
from
'lodash'
import
HomeQuick
from
'@/viewsPc/components/homeQuick'
...
...
@@ -384,9 +406,10 @@ import HomeCalendar from '@/viewsPc/components/homeCalendar'
import
{
Swiper
,
SwiperSlide
}
from
'swiper/vue'
import
{
Autoplay
,
Navigation
}
from
'swiper'
import
'swiper/css'
import
{
dayjs
,
ElMessage
}
from
'element-plus'
import
*
as
match
from
"@/apiPc/match"
;
import
{
rankList
}
from
'@/assets/js/data'
import
{
dayjs
,
ElMessage
}
from
'element-plus'
import
*
as
match
from
'@/apiPc/match'
import
{
rankList
}
from
'@/assets/js/data'
const
modules
=
[
Autoplay
,
Navigation
]
const
navigationPic
=
ref
({
nextEl
:
'.picnext'
,
...
...
@@ -394,7 +417,7 @@ const navigationPic = ref({
})
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'pop'
,
'backNumber'
,
'schSearch'
])
const
emit
=
defineEmits
([
'pop'
,
'backNumber'
,
'schSearch'
])
const
time
=
ref
(
0
)
const
etime
=
ref
(
0
)
...
...
@@ -403,7 +426,7 @@ const personList = ref([
{
name
:
'Nenad Jeftic'
,
pp
:
'Chairperson for Standard SRB'
,
src
:
'/img/2.png'
},
{
name
:
'Dorel Bagiu'
,
pp
:
'ROU'
,
src
:
'/img/3.png'
},
{
name
:
'Eduard Korotin'
,
pp
:
' EST'
,
src
:
'/img/4.png'
},
{
name
:
'Ana Cristina Silva'
,
pp
:
'POR'
,
src
:
'/img/5.png'
},
{
name
:
'Ana Cristina Silva'
,
pp
:
'POR'
,
src
:
'/img/5.png'
},
{
name
:
'Dallas Leslie Williams'
,
pp
:
'Scrutineer AUS'
,
src
:
'/img/6.png'
}
])
const
activeNews
=
ref
(
0
)
...
...
@@ -421,7 +444,7 @@ const nowscores = ref([])
const
livelist
=
ref
([])
const
maList
=
ref
([])
const
picList
=
ref
([])
const
calendarValue
=
ref
(
'202
4
-07-22'
)
const
calendarValue
=
ref
(
'202
5
-07-22'
)
const
aboutUsContent
=
ref
(
''
)
const
partners
=
ref
([])
...
...
@@ -432,37 +455,43 @@ onMounted(() => {
const
init
=
()
=>
{
var
today
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
etime
.
value
=
dayjs
(
'202
4
-07-22 12:00:00'
).
diff
(
today
,
'millisecond'
)
time
.
value
=
dayjs
(
'202
4
-07-17 07:00:00'
).
diff
(
today
,
'millisecond'
)
getRank
().
then
(
res
=>
{
etime
.
value
=
dayjs
(
'202
5
-07-22 12:00:00'
).
diff
(
today
,
'millisecond'
)
time
.
value
=
dayjs
(
'202
5
-07-17 07:00:00'
).
diff
(
today
,
'millisecond'
)
getRank
().
then
(
res
=>
{
rank
.
value
=
res
.
data
})
getNewsListById
(
{
pageSize
:
4
,
{
pageSize
:
4
,
pageNum
:
1
,
sortId
:
'10000008'
}
sortId
:
'10000008'
}
).
then
(
res
=>
{
livelist
.
value
=
res
.
rows
})
getNewsListById
({
pageSize
:
5
,
getNewsListById
({
pageSize
:
5
,
pageNum
:
1
,
sortId
:
'10000009'
}
sortId
:
'10000009'
}
).
then
(
res
=>
{
picList
.
value
=
res
.
rows
})
getNewsList
({
pageSize
:
3
,
getNewsList
({
pageSize
:
3
,
pageNum
:
1
,
language
:
2
,
code
:
'1000'
}
language
:
2
,
code
:
'1000'
}
).
then
(
res
=>
{
newest2
.
value
=
res
.
rows
})
match
.
getMaList
({
topFlag
:
1
}).
then
((
res
)
=>
{
match
.
getMaList
({
topFlag
:
1
}).
then
((
res
)
=>
{
maList
.
value
=
res
.
rows
for
(
le
t
n
of
maList
.
value
)
{
for
(
cons
t
n
of
maList
.
value
)
{
var
today
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
n
.
time
=
dayjs
(
n
.
signBeginTime
).
diff
(
today
,
'millisecond'
)
if
(
n
.
signEndTime
)
{
if
(
n
.
signEndTime
)
{
n
.
timeEnd
=
dayjs
(
n
.
signEndTime
).
diff
(
today
,
'millisecond'
)
}
else
{
n
.
time
=
0
...
...
@@ -476,7 +505,7 @@ const getpartners = () => {
match
.
getAboutUs
().
then
((
res
)
=>
{
aboutUsContent
.
value
=
res
.
data
.
contextEn
})
match
.
getZNList
({
sortId
:
'2000'
,
language
:
2
}).
then
((
res
)
=>
{
match
.
getZNList
({
sortId
:
'2000'
,
language
:
2
}).
then
((
res
)
=>
{
partners
.
value
=
res
.
rows
})
}
...
...
@@ -522,65 +551,112 @@ const building = () => {
const
goGuide
=
()
=>
{
router
.
push
({
path
:
`/guide`
,
query
:{
index
:
8
query
:
{
index
:
8
}
})
}
const
popMaster
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
cptId
:
matchData
.
value
.
id
}
emit
(
'pop'
,
params
)
emit
(
'pop'
,
params
)
}
const
backNumberSearch
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
cptId
:
matchData
.
value
.
id
}
emit
(
'backNumber'
,
params
)
emit
(
'backNumber'
,
params
)
}
const
schSearchSearch
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
cptId
:
matchData
.
value
.
id
}
emit
(
'schSearch'
,
params
)
emit
(
'schSearch'
,
params
)
}
const
handlePickup
=
()
=>
{
const
params
=
{
cptId
:
matchData
.
value
.
id
const
handlePickup
=
()
=>
{
const
params
=
{
cptId
:
matchData
.
value
.
id
}
emit
(
'pickup'
,
params
)
emit
(
'pickup'
,
params
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
.zn-bg
{
background
:
linear-gradient
(
90deg
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#453DEA
,
#8623FC
);
border-radius
:
15px
;}
.zn-Box
{
background-size
:
contain
;
position
:
relative
;
overflow
:
hidden
;
.bbbg{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
object-fit
:
cover
;}
.bgbg
{
height
:
100%
;
padding
:
5%
;
display
:
flex
;
<
style
lang=
"scss"
scoped
>
.zn-bg
{
background
:
linear-gradient
(
90deg
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#8623FC
,
#453DEA
,
#8623FC
);
border-radius
:
15px
;
}
.zn-Box
{
background-size
:
contain
;
position
:
relative
;
overflow
:
hidden
;
.bbbg
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
object-fit
:
cover
;
}
.bgbg
{
height
:
100%
;
padding
:
5%
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
img{
margin
:
5%
0
}
img
{
margin
:
5%
0
}
}
.itemBox
{
.itemBox
{
padding
:
20px
40px
;
p{
margin
:
0
;
height
:
40px
;
line-height
:
20px
;
display
:
flex
;
align-items
:
center
;}
p
{
margin
:
0
;
height
:
40px
;
line-height
:
20px
;
display
:
flex
;
align-items
:
center
;
}
}
border-radius
:
15px
;
.zn-btn
{
background
:
#FFFFFF
;
text-transform
:
uppercase
;
font-size
:
16px
;
width
:
fit-content
;
margin
:
5px
5px
5px
0
;
.zn-btn
{
background
:
#FFFFFF
;
text-transform
:
uppercase
;
font-size
:
16px
;
width
:
fit-content
;
margin
:
5px
5px
5px
0
;
color
:
#453DEA
;
border-radius
:
23px
;
padding
:
10px
20px
;
display
:
inline-flex
;
align-items
:
center
;}
.item
{
box-shadow
:
0px
0px
21px
0px
rgba
(
41
,
23
,
101
,
0.14
);
margin
:
40px
0
0
;
display
:
flex
;
align-items
:
center
;
text-align
:
center
;
font-size
:
18px
;
flex-direction
:
column
;
padding
:
35px
10px
20px
;
background
:
url("@/assets/dance/znbb.png")
no-repeat
left
#FFFFFF
;
border-radius
:
23px
;
padding
:
10px
20px
;
display
:
inline-flex
;
align-items
:
center
;
}
.item
{
box-shadow
:
0px
0px
21px
0px
rgba
(
41
,
23
,
101
,
0.14
);
margin
:
40px
0
0
;
display
:
flex
;
align-items
:
center
;
text-align
:
center
;
font-size
:
18px
;
flex-direction
:
column
;
padding
:
35px
10px
20px
;
background
:
url("@/assets/dance/znbb.png")
no-repeat
left
#FFFFFF
;
background-size
:
cover
;
position
:
relative
;
border-radius
:
15px
;
img{
position
:
absolute
;
top
:
-30px
}
img
{
position
:
absolute
;
top
:
-30px
}
}
}
...
...
@@ -593,13 +669,24 @@ const handlePickup=()=>{
clear
:
both
;
overflow
:
hidden
;
}
.banner-pp
{
position
:
absolute
;
bottom
:
40%
;
right
:
5%
;
width
:
200px
;}
.banner-pp
{
position
:
absolute
;
bottom
:
40%
;
right
:
5%
;
width
:
200px
;
}
.bannerItem
{
height
:
450px
;
background
:
#000
;
position
:
relative
;
.banner-count{
position
:
absolute
;
padding
:
20px
40px
;
font-size
:
20px
;
align-items
:
center
;
background
:
#000
;
position
:
relative
;
.banner-count
{
position
:
absolute
;
padding
:
20px
40px
;
font-size
:
20px
;
align-items
:
center
;
overflow
:
hidden
;
background
:
url("@/assets/dance/time_bg.png")
no-repeat
center
;
background-size
:
100%
100%
;
...
...
@@ -609,22 +696,49 @@ const handlePickup=()=>{
//
border-image-width
:
4px
;
//
border-image-outset
:
4px
;
//
background
:
rgba
(
0
,
0
,
0
,
0.3
);
bottom
:
40%
;
display
:
flex
;
flex-wrap
:
nowrap
;
bottom
:
40%
;
display
:
flex
;
flex-wrap
:
nowrap
;
right
:
5%
;
color
:
#fff
;
.van-count-down{
display
:
flex
;
color
:
#fff
;
margin
:
0
0
0
20px
;
.van-count-down
{
display
:
flex
;
color
:
#fff
;
margin
:
0
0
0
20px
;
width
:
360px
;
font-size
:
41px
;}
.block
{
color
:
#fff
;
text-align
:
center
;
width
:
3em
;
font-size
:
41px
;
font-family
:
DIN
Alternate
;}
.colon
{
color
:
#fff
;
display
:
block
;
margin
:
20px
0
0
;
font-size
:
20px
;}
}
.bb
{
width
:
580px
;
justify-content
:
center
;
height
:
100px
;
font-size
:
30px
;}
.banner-count.bb
:hover
{
box-shadow
:
0
0
20px
#453DEA
;
border-radius
:
100px
;
.block
{
color
:
#fff
;
text-align
:
center
;
width
:
3em
;
font-size
:
41px
;
font-family
:
DIN
Alternate
;
}
.colon
{
color
:
#fff
;
display
:
block
;
margin
:
20px
0
0
;
font-size
:
20px
;
}
}
.bb
{
width
:
580px
;
justify-content
:
center
;
height
:
100px
;
font-size
:
30px
;
}
.banner-count.bb
:hover
{
box-shadow
:
0
0
20px
#453DEA
;
border-radius
:
100px
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
)
}
.box
{
position
:
absolute
;
height
:
100%
;
...
...
@@ -653,7 +767,8 @@ const handlePickup=()=>{
}
.banner
{
position
:
relative
;
margin
:
0
0
30px
;
position
:
relative
;
margin
:
0
0
30px
;
:deep(.el-carousel__arrow)
{
border-radius
:
0
;
...
...
@@ -681,41 +796,121 @@ const handlePickup=()=>{
background-size
:
contain
}
}
.el-calendar
{
--el-calendar-border
:
none
;
--el-calendar-cell-width
:
40px
;
text-align
:
center
;
--el-text-color-regular
:
#8E8D94
;
:deep(.el-calendar__header){
justify-content
:
center
;
padding
:
0
0
10px
}
:deep
(
.el-calendar__body
)
{
border
:
1px
solid
#F0F0F0
;
padding
:
0
}
:deep
(
.el-calendar-table
.el-calendar-day
)
{
padding
:
1px
;}
:deep
(
.el-calendar-table
td
.is-selected
)
{
background
:
transparent
;}
:deep
(
.el-calendar__button-group
)
{
display
:
none
;}
:deep
(
.el-calendar-table
thead
th
)
{
padding
:
5px
0
0
}
.primaryDate
{
color
:
#fff
;
background
:
linear-gradient
(
90deg
,
#8623FC
,
#453DEA
);}
.date
{
margin
:
auto
;
border-radius
:
50%
;
width
:
30px
;
height
:
30px
;
line-height
:
30px
;
.el-calendar
{
--el-calendar-border
:
none
;
--el-calendar-cell-width
:
40px
;
text-align
:
center
;
--el-text-color-regular
:
#8E8D94
;
:deep(.el-calendar__header)
{
justify-content
:
center
;
padding
:
0
0
10px
}
:deep
(
.el-calendar__body
)
{
border
:
1px
solid
#F0F0F0
;
padding
:
0
}
:deep
(
.el-calendar-table
.el-calendar-day
)
{
padding
:
1px
;
}
:deep
(
.el-calendar-table
td
.is-selected
)
{
background
:
transparent
;
}
:deep
(
.el-calendar__button-group
)
{
display
:
none
;
}
:deep
(
.el-calendar-table
thead
th
)
{
padding
:
5px
0
0
}
.primaryDate
{
color
:
#fff
;
background
:
linear-gradient
(
90deg
,
#8623FC
,
#453DEA
);
}
.date
{
margin
:
auto
;
border-radius
:
50%
;
width
:
30px
;
height
:
30px
;
line-height
:
30px
;
font-weight
:
bold
;
}
}
.calendarList
{
border
:
1px
solid
#F0F0F0
;
padding
:
12px
20px
;
overflow
:
auto
;
height
:
233px
;
ul{
li{
background
:
#F6F9FE
;
margin
:
7px
0
7px
0
;
position
:
relative
;
padding
:
13px
;
.calendarList
{
border
:
1px
solid
#F0F0F0
;
padding
:
12px
20px
;
overflow
:
auto
;
height
:
233px
;
ul
{
li
{
background
:
#F6F9FE
;
margin
:
7px
0
7px
0
;
position
:
relative
;
padding
:
13px
;
border-radius
:
10px
;
font-weight
:
500
;
font-size
:
15px
;
label{
color
:
#453DEA
;
margin-right
:
15px
;
&::before{
content
:
''
;
background
:
#fff
;
left
:
-17px
;
top
:
0px
;
bottom
:
0
;
margin
:
auto
;
border-radius
:
50%
;
width
:
2px
;
height
:
2px
;
position
:
absolute
;
z-index
:
1
}
label
{
color
:
#453DEA
;
margin-right
:
15px
;
&::before
{
content
:
''
;
background
:
#fff
;
left
:
-17px
;
top
:
0px
;
bottom
:
0
;
margin
:
auto
;
border-radius
:
50%
;
width
:
2px
;
height
:
2px
;
position
:
absolute
;
z-index
:
1
}
}
li
::before
{
content
:
''
;
background
:
linear-gradient
(
0deg
,
#8623FC
,
#453DEA
);
border-radius
:
50%
;
width
:
8px
;
height
:
8px
;
position
:
absolute
;
left
:
-20px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
z-index
:
1
;
}
li
::after
{
content
:
''
;
left
:
-16px
;
width
:
1px
;
height
:
100%
;
background
:
#EBEBEB
;
position
:
absolute
;
top
:
20px
}
li
:hover
{
color
:
#fff
;
li
::before
{
content
:
''
;
background
:
linear-gradient
(
0deg
,
#8623FC
,
#453DEA
);
border-radius
:
50%
;
width
:
8px
;
height
:
8px
;
position
:
absolute
;
left
:
-20px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
z-index
:
1
;
}
li
::after
{
content
:
''
;
left
:
-16px
;
width
:
1px
;
height
:
100%
;
background
:
#EBEBEB
;
position
:
absolute
;
top
:
20px
}
li
:hover
{
color
:
#fff
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
);
label{
color
:
#fff
;}
label
{
color
:
#fff
;
}
}
}
}
...
...
@@ -741,115 +936,295 @@ const handlePickup=()=>{
}
}
.teacher
{
height
:
410px
;
background
:
#fff
;
position
:
relative
;
border-radius
:
10px
;
overflow
:
hidden
;
.imgbox{
background
:
linear-gradient
(
0
,
#C8AAFC
,
#fff
)}
img
{
height
:
350px
;
width
:
100%
;
object-fit
:
cover
;}
h3
{
color
:
#fff
;
background
:
url("@/assets/dance/name_bg.png")
no-repeat
center
;
background-size
:
110%
100%
;
text-align
:
center
;
height
:
30px
;
line-height
:
30px
;
font-size
:
18px
;
position
:
absolute
;
width
:
100%
;
bottom
:
30px
;}
p
{
text-align
:
center
;
margin
:
25px
0
0
;
font-size
:
14px
;}
.teacher
{
height
:
410px
;
background
:
#fff
;
position
:
relative
;
border-radius
:
10px
;
overflow
:
hidden
;
.imgbox
{
background
:
linear-gradient
(
0
,
#C8AAFC
,
#fff
)
}
img
{
height
:
350px
;
width
:
100%
;
object-fit
:
cover
;
}
h3
{
color
:
#fff
;
background
:
url("@/assets/dance/name_bg.png")
no-repeat
center
;
background-size
:
110%
100%
;
text-align
:
center
;
height
:
30px
;
line-height
:
30px
;
font-size
:
18px
;
position
:
absolute
;
width
:
100%
;
bottom
:
30px
;
}
p
{
text-align
:
center
;
margin
:
25px
0
0
;
font-size
:
14px
;
}
}
@media
screen
and
(
max-width
:
1650px
)
{
.teacher
{
height
:
320px
;
.imgbox{
img{
height
:
260px
}
.teacher
{
height
:
320px
;
.imgbox
{
img
{
height
:
260px
}
}
}
}
@media
screen
and
(
max-width
:
1200px
)
{
.teacher
{
height
:
450px
;
margin
:
0
0
20px
;
.imgbox{
img{
height
:
390px
}
.teacher
{
height
:
450px
;
margin
:
0
0
20px
;
.imgbox
{
img
{
height
:
390px
}
}
}
}
@media
screen
and
(
max-width
:
900px
)
{
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox{
img{
height
:
340px
}
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox
{
img
{
height
:
340px
}
}
}
}
@media
screen
and
(
max-width
:
800px
)
{
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox{
img{
height
:
260px
}
.teacher
{
height
:
400px
;
margin
:
0
0
20px
;
.imgbox
{
img
{
height
:
260px
}
}
}
}
.aboutBox
{
background
:
url("@/assets/dance/about_bg.png")
no-repeat
center
;
height
:
375px
;
background-size
:
cover
;
padding
:
40px
60px
;
position
:
relative
;
.content{
font-size
:
18px
;
line-height
:
2.2
;
height
:
240px
;
overflow
:
hidden
;
text-align
:
left
;
text-indent
:
2em
;}
.shadowbox
{
position
:
absolute
;
left
:
0
;
bottom
:
90px
;
height
:
100px
;
width
:
100%
;
background
:
linear-gradient
(
0deg
,
rgba
(
255
,
255
,
255
,
1
),
rgba
(
255
,
255
,
255
,
0
));
.aboutBox
{
background
:
url("@/assets/dance/about_bg.png")
no-repeat
center
;
height
:
375px
;
background-size
:
cover
;
padding
:
40px
60px
;
position
:
relative
;
.content
{
font-size
:
18px
;
line-height
:
2.2
;
height
:
240px
;
overflow
:
hidden
;
text-align
:
left
;
text-indent
:
2em
;
}
.shadowbox
{
position
:
absolute
;
left
:
0
;
bottom
:
90px
;
height
:
100px
;
width
:
100%
;
background
:
linear-gradient
(
0deg
,
rgba
(
255
,
255
,
255
,
1
),
rgba
(
255
,
255
,
255
,
0
));
}
.btn-lineG
{
}
.btn-lineG
{}
}
.mapBox
{
background
:
url("@/assets/dance/map.png")
no-repeat
center
;
height
:
375px
;
background-size
:
cover
;
padding
:
1px
;
position
:
relative
;
display
:
flex
;
.content{
background
:
#fff
;
width
:
60%
;
left
:
40px
;
padding
:
30px
;
position
:
absolute
;
height
:
90%
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
.mapBox
{
background
:
url("@/assets/dance/map.png")
no-repeat
center
;
height
:
375px
;
background-size
:
cover
;
padding
:
1px
;
position
:
relative
;
display
:
flex
;
.content
{
background
:
#fff
;
width
:
60%
;
left
:
40px
;
padding
:
30px
;
position
:
absolute
;
height
:
90%
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
}
div
{
padding-left
:
60px
;
}
div
{
padding-left
:
60px
;}
.phone
{
background
:
url("@/assets/dance/map01.png")
no-repeat
left
;
background-size
:
30px
;}
.address
{
background
:
url("@/assets/dance/map02.png")
no-repeat
left
;
background-size
:
30px
;
margin
:
50px
0
;
.phone
{
background
:
url("@/assets/dance/map01.png")
no-repeat
left
;
background-size
:
30px
;
}
.address
{
background
:
url("@/assets/dance/map02.png")
no-repeat
left
;
background-size
:
30px
;
margin
:
50px
0
;
}
.email
{
background
:
url("@/assets/dance/map03.png")
no-repeat
left
;
background-size
:
30px
;
}
.email
{
background
:
url("@/assets/dance/map03.png")
no-repeat
left
;
background-size
:
30px
;}
h4
{
margin
:
0
;
h4
{
margin
:
0
;
font-size
:
16px
;
color
:
#AAAAAA
;}
p
{
margin
:
13px
0
0
;}
color
:
#AAAAAA
;
}
p
{
margin
:
13px
0
0
;
}
}
.logobox
{
background
:
#fff
;
height
:
180px
;
border-radius
:
10px
;
margin
:
0
0
30px
;
img{
width
:
100%
;
height
:
100%
;
object-fit
:
contain
;}
.logobox
{
background
:
#fff
;
height
:
180px
;
border-radius
:
10px
;
margin
:
0
0
30px
;
img
{
width
:
100%
;
height
:
100%
;
object-fit
:
contain
;
}
}
.swiperPic
{
background
:
#F3F1FE
;
position
:
relative
;
height
:
100%
;
.swiperPic
{
background
:
#F3F1FE
;
position
:
relative
;
height
:
100%
;
padding
:
20px
45px
;
.picprev{
position
:
absolute
;
left
:
5px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
height
:
33px
;
.picprev
{
position
:
absolute
;
left
:
5px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
height
:
33px
;
cursor
:
pointer
;
&:hover{
filter
:
brightness
(
2
)}
&:hover
{
filter
:
brightness
(
2
)
}
.picnext
{
position
:
absolute
;
right
:
5px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
height
:
33px
;
}
.picnext
{
position
:
absolute
;
right
:
5px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
height
:
33px
;
cursor
:
pointer
;
&:hover{
filter
:
brightness
(
2
)}
}
&:hover
{
filter
:
brightness
(
2
)
}
}
}
@media
(
max-width
:
800px
)
{
.box
{
width
:
94%
}
.calendarList
{
padding
:
0
;
ul{
li{
margin
:
10px
}
.box
{
width
:
94%
}
.calendarList
{
padding
:
0
;
ul
{
li
{
margin
:
10px
}
}
}
.aboutBox
{
padding
:
20px
30px
;}
.indexTitle
{
margin
:
30px
0
20px
}
.teacher
{
height
:
320px
;
margin
:
0
0
20px
;
img{
height
:
260px
}
.aboutBox
{
padding
:
20px
30px
;
}
.indexTitle
{
margin
:
30px
0
20px
}
.teacher
{
height
:
320px
;
margin
:
0
0
20px
;
img
{
height
:
260px
}
}
.activeItem
{
margin
:
0
0
20px
;
}
.mapBox
{
div
{
padding-left
:
40px
;
}
.content
{
width
:
80%
;
left
:
10%
;
padding
:
10px
20px
0
20px
;
}
.address
{
margin
:
30px
0
;
}
p
{
text-align
:
left
;
word-break
:
break-all
;
}
.activeItem
{
margin
:
0
0
20px
;}
.mapBox
{
div{
padding-left
:
40px
;}
.content
{
width
:
80%
;
left
:
10%
;
padding
:
10px
20px
0
20px
;}
.address
{
margin
:
30px
0
;}
p
{
text-align
:
left
;
word-break
:
break-all
;}
}
.fixed_gg
{
display
:
none
;
}
.bannerItem
.banner-count
{
flex-direction
:
column
;
transform
:
scale
(
0.5
);
width
:
auto
;
.bannerItem
.banner-count
{
flex-direction
:
column
;
transform
:
scale
(
0.5
);
width
:
auto
;
left
:
0
;
right
:
0
;
.van-count-down{
margin
:
30px
0
0
;}
.van-count-down
{
margin
:
30px
0
0
;
}
}
.bgbg
{
text-align
:
center
;
h1
{
text-align
:
center
}
.bgbg
{
text-align
:
center
;
h1{
text-align
:
center
}
}
}
:deep
(
.btn-q
)
{
//
background
:
#FFFFFF
;
//
font-size
:
18px
;
...
...
@@ -872,16 +1247,16 @@ const handlePickup=()=>{
box-sizing
:
inherit
;
}
.btn-q
:hover
{
.btn-q
:hover
{
box-shadow
:
0
0
20px
#453DEA
;
border-radius
:
100px
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
)
!important
;
}
.ding
{
.ding
{
position
:
fixed
;
right
:
0px
;
z-index
:
99
;
right
:
0px
;
z-index
:
99
;
top
:
40%
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
)
!important
;
box-shadow
:
none
;
...
...
@@ -890,16 +1265,34 @@ const handlePickup=()=>{
//
height
:
100px
;
padding
:
20px
;
}
.mb30
{
margin-bottom
:
30px
;}
.livetimecount
{
position
:
absolute
;
top
:
0
;
z-index
:
2
;
background
:
#F04035
;
.mb30
{
margin-bottom
:
30px
;
}
.livetimecount
{
position
:
absolute
;
top
:
0
;
z-index
:
2
;
background
:
#F04035
;
padding
:
2px
4px
;
&::after{
content
:
''
;
width
:
0
;
height
:
0
;
position
:
absolute
;
right
:
-15px
;
top
:
0
;
&::after
{
content
:
''
;
width
:
0
;
height
:
0
;
position
:
absolute
;
right
:
-15px
;
top
:
0
;
border-top
:
24px
solid
#F04035
;
border-right
:
15px
solid
transparent
;}
.van-count-down
{
display
:
flex
;
border-right
:
15px
solid
transparent
;
}
.van-count-down
{
display
:
flex
;
color
:
#fff
;
font-size
:
14px
;
.block
{
color
:
#fff
;
text-align
:
center
;
...
...
@@ -908,13 +1301,23 @@ const handlePickup=()=>{
}
}
}
@media
(
max-width
:
500px
)
{
.forPc
{
display
:
none
!important
;}
.zn-Box
.bgbg
{
padding
:
10px
0
0
;
.mb30{
margin
:
0
}
.zn-btn
{
margin-top
:
10px
}
.forPc
{
display
:
none
!important
;
}
.zn-Box
.bgbg
{
padding
:
10px
0
0
;
.mb30
{
margin
:
0
}
.zn-btn
{
margin-top
:
10px
}
}
.logobox
{
.logobox
{
height
:
60px
;
}
}
...
...
src/viewsPc/saiC/index.vue
View file @
6692d07
...
...
@@ -5,28 +5,31 @@
<div
class=
"mt20"
/>
<el-card>
<el-row
:gutter=
"20"
>
<el-col
:
sm=
"24"
:lg=
"12
"
>
<el-col
:
lg=
"12"
:sm=
"24
"
>
<!--赛事日历-->
<el-calendar
v-model=
"currentDate"
>
<template
#
date-cell=
"data"
>
<div
class=
"date"
:class=
"data.data.day==query.currentDate?'primaryDate':''"
@
click=
"selectDate(data.data.day)"
>
{{
data
.
data
.
day
.
slice
(
8
,
10
)
}}
<div
:class=
"data.data.day==query.currentDate?'primaryDate':''"
class=
"date"
@
click=
"selectDate(data.data.day)"
>
{{
data
.
data
.
day
.
slice
(
8
,
10
)
}}
</div>
</
template
>
</el-calendar>
</el-col>
<el-col
:
sm=
"24"
:lg=
"12
"
>
<el-col
:
lg=
"12"
:sm=
"24
"
>
<div
class=
"calendarList"
>
<ul
v-loading=
"loading"
>
<li
v-for=
"n in schList"
@
click=
"goMatch(n)"
>
<label>
{{ n.timeStr }}
</label>
<div
class=
"esp mt5"
>
{{ n.name }}
</div>
</li>
<el-empty
v-if=
"schList.length== 0"
:image=
"`/img/order_no.png`"
:image-size=
"200"
/>
<el-empty
v-if=
"schList.length== 0"
:image=
"`/img/order_no.png`"
:image-size=
"200"
/>
</ul>
</div>
...
...
@@ -34,8 +37,8 @@
</el-row>
</el-card>
<el-card
class=
"mt20 mb20"
>
<el-table
stripe
:data=
"rank"
>
<el-table-column
label=
"名次"
align=
"center"
type=
"index"
>
<el-table
:data=
"rank"
stripe
>
<el-table-column
align=
"center"
label=
"名次"
type=
"index"
>
<
template
#
default=
"scope"
>
<span
v-if=
"scope.row.mingCi == 1"
style=
"color:#F8A617"
>
{{
scope
.
row
.
mingCi
}}
</span>
<span
v-else-if=
"scope.row.mingCi == 2"
style=
"color:#778B92"
>
{{
scope
.
row
.
mingCi
}}
</span>
...
...
@@ -47,12 +50,12 @@
<el-table-column
label=
"国家"
prop=
"name"
>
<
template
#
default=
"scope"
>
<div>
<span
:class=
"`flag-icon flag-icon-$
{scope.row.code}`"
>
</span
>
<span
:class=
"`flag-icon flag-icon-$
{scope.row.code}`"
/
>
{{
scope
.
row
.
countryName
}}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"组合"
align=
"center
"
>
<el-table-column
align=
"center"
label=
"组合
"
>
<
template
#
default=
"scope"
>
<div
class=
"text-primary esp"
>
{{
scope
.
row
.
zuHe
}}
</div>
</
template
>
...
...
@@ -84,29 +87,29 @@
</el-table>
</el-card>
<el-card
class=
"mt20 mb20"
v-for=
"(n,index) in cjList
"
hidden
>
<div
class=
"leftboderTT"
>
{{ language
==0?n.title:
n.en_title }}
</div>
<el-card
v-for=
"(n,index) in cjList"
class=
"mt20 mb20
"
hidden
>
<div
class=
"leftboderTT"
>
{{ language
== 0 ? n.title :
n.en_title }}
</div>
<div
v-for=
"(m,jndex) in n.list"
>
<h3
class=
"text-center"
>
{{ m.title }}
</h3>
<div
class=
"tablebody"
>
<table
class=
"table table-striped"
>
<thead>
<tr
class=
"bg-lineg"
>
<td
class=
"text-center"
style=
"width: 120px;"
>
{{ language==0?'名次':
'RANK' }}
</td>
<td
class=
"text-center"
>
{{ language==0?'组合':
'COUPLE' }}
</td>
<td
class=
"text-center w15"
>
{{ language==0?'国家':
'COUNTRY' }}
</td>
<td
class=
"text-center"
style=
"width: 120px;"
>
{{ language == 0 ? '名次' :
'RANK' }}
</td>
<td
class=
"text-center"
>
{{ language == 0 ? '组合' :
'COUPLE' }}
</td>
<td
class=
"text-center w15"
>
{{ language == 0 ? '国家' :
'COUNTRY' }}
</td>
<td
class=
"text-center w15"
>
START #
</td>
<td
class=
"text-center w15"
v-if=
"index>0
"
>
BASE
</td>
<td
class=
"text-center w15"
v-if=
"index>0
"
>
POINTS
</td>
<td
v-if=
"index>0"
class=
"text-center w15
"
>
BASE
</td>
<td
v-if=
"index>0"
class=
"text-center w15
"
>
POINTS
</td>
</tr>
</thead>
<tbody>
<tr
v-for=
"(l,kndex) in m.rows"
>
<td
class=
"text-center"
>
{{ l.RANK }}
</td>
<td
class=
"text-center"
>
{{ l.COUPLE
}}
</td>
<td
class=
"text-center"
>
{{ l.COUPLE
}}
</td>
<td
class=
"text-center"
>
{{ l.COUNTRY }}
</td>
<td
class=
"text-primary text-center"
>
{{ l.START }}
</td>
<td
class=
"text-center"
v-if=
"index>0"
>
{{l.BASE
}}
</td>
<td
v-if=
"index>0"
class=
"text-center"
>
{{ l.BASE
}}
</td>
<td
v-if=
"index>0"
class=
"text-primary text-center"
>
{{ l.POINTS }}
</td>
</tr>
</tbody>
...
...
@@ -123,14 +126,16 @@
<
script
setup
>
import
{
onMounted
,
ref
,
watch
}
from
'vue'
import
{
getPlanYears
,
getYearZtxPlanList
}
from
'@/apiPc/train'
import
{
cjList
}
from
'@/assets/js/data'
import
{
cjList
}
from
'@/assets/js/data'
import
{
ArrowRight
}
from
'@element-plus/icons-vue'
import
{
dayjs
}
from
'element-plus'
const
router
=
useRouter
()
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
getIndexScheduleList
}
from
"@/apiPc/common"
;
import
{
getRank
}
from
'@/apiPc/webSite'
import
{
useRouter
}
from
"vue-router"
;
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
getIndexScheduleList
}
from
'@/apiPc/common'
import
{
getRank
}
from
'@/apiPc/webSite'
import
{
useRouter
}
from
'vue-router'
const
language
=
useStorage
(
'language'
,
0
)
const
years
=
ref
([])
const
currYear
=
ref
(
null
)
...
...
@@ -139,33 +144,37 @@ const planList = ref([])
const
rank
=
ref
([])
const
schList
=
ref
([])
const
loading
=
ref
(
false
)
const
currentDate
=
ref
(
dayjs
(
'202
4
-07-17'
).
toDate
())
const
currentDate
=
ref
(
dayjs
(
'202
5
-07-17'
).
toDate
())
const
query
=
ref
({
// currentDate:dayjs().format('YYYY-MM-DD')
currentDate
:
'202
4
-07-17'
currentDate
:
'202
5
-07-17'
})
getScheduleList
()
getRankList
()
function
getRankList
()
{
getRank
().
then
(
res
=>
{
getRank
().
then
(
res
=>
{
rank
.
value
=
res
.
data
})
}
function
getScheduleList
()
{
loading
.
value
=
true
query
.
value
.
currentDate
=
dayjs
(
query
.
value
.
currentDate
).
format
(
'YYYY-MM-DD'
)
getIndexScheduleList
(
query
.
value
).
then
(
res
=>
{
getIndexScheduleList
(
query
.
value
).
then
(
res
=>
{
loading
.
value
=
false
schList
.
value
=
res
.
data
})
}
function
selectDate
(
date
)
{
console
.
log
(
dayjs
(
date
).
toDate
())
console
.
log
(
query
.
value
.
currentDate
)
query
.
value
.
currentDate
=
dayjs
(
date
).
toDate
()
getScheduleList
()
}
function
goMatch
(
n
)
{
router
.
push
({
name
:
'matchDetail'
,
...
...
@@ -179,59 +188,157 @@ function goMatch(n) {
}
</
script
>
<
style
scoped
lang=
"scss"
>
.leftboderTT
{
margin
:
0
0
20px
;
color
:
var
(
--el-color-primary
);
font-size
:
20px
;}
h3
{
background
:
#F5F0FF
;
margin
:
0
;
padding
:
10px
0
;
<
style
lang=
"scss"
scoped
>
.leftboderTT
{
margin
:
0
0
20px
;
color
:
var
(
--el-color-primary
);
font-size
:
18px
;}
.table
{
border-spacing
:
0
;
font-size
:
20px
;
}
h3
{
background
:
#F5F0FF
;
margin
:
0
;
padding
:
10px
0
;
color
:
var
(
--el-color-primary
);
font-size
:
18px
;
}
.table
{
border-spacing
:
0
;
border-collapse
:
collapse
;
width
:
100%
;
max-width
:
100%
;
margin-bottom
:
20px
;
td,th{
padding
:
8px
;
font-size
:
14px
;}
td,
th
{
padding
:
8px
;
font-size
:
14px
;
}
}
:deep
(
.table-striped
>
tbody
>
tr
:nth-of-type
(
odd
))
{
:deep
(
.table-striped
>
tbody
>
tr
:nth-of-type
(
odd
))
{
background
:
#F6F9FE
;
}
.el-calendar
{
--el-calendar-border
:
none
;
--el-calendar-cell-width
:
51px
;
text-align
:
center
;
--el-text-color-regular
:
#8E8D94
;
:deep(.el-calendar__header){
justify-content
:
center
;}
:deep
(
.el-calendar__body
)
{
border
:
1px
solid
#F0F0F0
;
padding
:
0
}
:deep
(
.el-calendar-table
.el-calendar-day
)
{
padding
:
1px
;}
:deep
(
.el-calendar-table
td
.is-selected
)
{
background
:
transparent
;}
:deep
(
.el-calendar__button-group
)
{
display
:
none
;}
.el-calendar
{
--el-calendar-border
:
none
;
--el-calendar-cell-width
:
51px
;
text-align
:
center
;
--el-text-color-regular
:
#8E8D94
;
:deep(.el-calendar__header)
{
justify-content
:
center
;
}
:deep
(
.el-calendar__body
)
{
border
:
1px
solid
#F0F0F0
;
padding
:
0
}
:deep
(
.el-calendar-table
.el-calendar-day
)
{
padding
:
1px
;
}
:deep
(
.el-calendar-table
td
.is-selected
)
{
background
:
transparent
;
}
:deep
(
.el-calendar__button-group
)
{
display
:
none
;
}
}
.primaryDate
{
color
:
#fff
;
background
:
linear-gradient
(
90deg
,
#8623FC
,
#453DEA
);
}
.primaryDate
{
color
:
#fff
;
background
:
linear-gradient
(
90deg
,
#8623FC
,
#453DEA
);}
.date
{
margin
:
5px
auto
;
border-radius
:
50%
;
width
:
34px
;
height
:
34px
;
line-height
:
34px
;
.date
{
margin
:
5px
auto
;
border-radius
:
50%
;
width
:
34px
;
height
:
34px
;
line-height
:
34px
;
font-weight
:
bold
;
}
.calendarList
{
border
:
1px
solid
#F0F0F0
;
padding
:
12px
20px
0
;
overflow
:
hidden
;
.calendarList
{
border
:
1px
solid
#F0F0F0
;
padding
:
12px
20px
0
;
overflow
:
hidden
;
height
:
100%
;
ul{
overflow
:
auto
;
height
:
330px
;
margin
:
0
;
li{
background
:
#F6F9FE
;
margin
:
7px
0
7px
20px
;
position
:
relative
;
padding
:
13px
;
ul
{
overflow
:
auto
;
height
:
330px
;
margin
:
0
;
li
{
background
:
#F6F9FE
;
margin
:
7px
0
7px
20px
;
position
:
relative
;
padding
:
13px
;
border-radius
:
10px
;
font-weight
:
500
;
font-size
:
15px
;
cursor
:
pointer
;
label{
color
:
#453DEA
;
margin-right
:
15px
;
&::before{
content
:
''
;
background
:
#fff
;
left
:
-17px
;
top
:
0px
;
bottom
:
0
;
margin
:
auto
;
border-radius
:
50%
;
width
:
2px
;
height
:
2px
;
position
:
absolute
;
z-index
:
1
}
font-size
:
15px
;
cursor
:
pointer
;
label
{
color
:
#453DEA
;
margin-right
:
15px
;
&::before
{
content
:
''
;
background
:
#fff
;
left
:
-17px
;
top
:
0px
;
bottom
:
0
;
margin
:
auto
;
border-radius
:
50%
;
width
:
2px
;
height
:
2px
;
position
:
absolute
;
z-index
:
1
}
}
li
::before
{
content
:
''
;
background
:
linear-gradient
(
0deg
,
#8623FC
,
#453DEA
);
border-radius
:
50%
;
width
:
8px
;
height
:
8px
;
position
:
absolute
;
left
:
-20px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
z-index
:
1
;
}
li
::after
{
content
:
''
;
left
:
-16px
;
width
:
1px
;
height
:
100%
;
background
:
#EBEBEB
;
position
:
absolute
;
top
:
20px
}
li
:hover
{
color
:
#fff
;
li
::before
{
content
:
''
;
background
:
linear-gradient
(
0deg
,
#8623FC
,
#453DEA
);
border-radius
:
50%
;
width
:
8px
;
height
:
8px
;
position
:
absolute
;
left
:
-20px
;
top
:
0
;
bottom
:
0
;
margin
:
auto
;
z-index
:
1
;
}
li
::after
{
content
:
''
;
left
:
-16px
;
width
:
1px
;
height
:
100%
;
background
:
#EBEBEB
;
position
:
absolute
;
top
:
20px
}
li
:hover
{
color
:
#fff
;
background
:
linear-gradient
(
-90deg
,
#8623FC
,
#453DEA
);
label{
color
:
#fff
;}
label
{
color
:
#fff
;
}
}
}
}
.w15
{
width
:
15%
;}
.w15
{
width
:
15%
;
}
</
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