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
864892cf
authored
2025-05-30 18:11:20 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
奖牌
1 parent
f95e2295
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
245 additions
and
123 deletions
src/layoutPc/components/AppBottom.vue
src/viewsPc/guide/index.vue
src/viewsPc/index.vue
src/layoutPc/components/AppBottom.vue
View file @
864892c
<
template
>
<div
class=
"footAll"
>
<div
class=
"box"
style=
"max-width: 90%"
>
<el-row
align=
"middle"
v-if=
"language==0
"
>
<el-row
v-if=
"language==0"
align=
"middle
"
>
<el-col
:lg=
"10"
:md=
"10"
:xs=
"10"
>
<ul>
<li>
邮编:214000
</li>
...
...
@@ -18,22 +18,24 @@
</el-col>
<el-col
:lg=
"4"
:md=
"4"
:xs=
"4"
>
<div>
<img
class=
"mauto"
src=
"/img/wb2.jpg"
/
>
<img
class=
"mauto"
src=
"/img/wb2.jpg"
>
<p
class=
"text-center mt10"
>
微博关注
</p>
</div>
</el-col>
<el-col
:span=
"24"
style=
"border-top: 1px solid #d0d0d0"
>
<div
class=
"text-center copyright pd10"
>
版权所有@无锡和畅赛事运营有限公司
 
&
ensp
<a
target=
"_blank"
href=
"https://beian.miit.gov.cn/
"
>
ICP备案号:苏ICP备2023054420号-2
</a></div>
<a
href=
"https://beian.miit.gov.cn/"
target=
"_blank
"
>
ICP备案号:苏ICP备2023054420号-2
</a></div>
</el-col>
</el-row>
<el-row
align=
"middle"
v-if=
"language===1
"
>
<el-row
v-if=
"language===1"
align=
"middle
"
>
<el-col
:span=
"14"
>
<ul>
<li>
Postal code:214000
</li>
<li>
Address:100 meters northeast of the intersection of Hefeng Road and Qingshu, the Taihu Lake New Town, Wuxi, Jiangsu
</li>
<li>
Address:100 meters northeast of the intersection of Hefeng Road and Qingshu, the Taihu Lake New Town,
Wuxi, Jiangsu
</li>
</ul>
</el-col>
<el-col
:span=
"6"
>
...
...
@@ -44,113 +46,216 @@
</el-col>
<el-col
:span=
"4"
>
<div>
<img
class=
"mauto"
src=
"/img/wb2.jpg"
/
>
<img
class=
"mauto"
src=
"/img/wb2.jpg"
>
<p
class=
"text-center mt10"
>
Weibo
</p>
</div>
</el-col>
<el-col
:span=
"24"
style=
"border-top: 1px solid #d0d0d0"
>
<div
class=
"text-center copyright pd10"
>
Copyright@Wuxi Hechang Sports Operations Co., Ltd
<a
target=
"_blank"
href=
"https://beian.miit.gov.cn/
"
>
ICP:苏ICP备2023054420号-2
</a></div>
<a
href=
"https://beian.miit.gov.cn/"
target=
"_blank
"
>
ICP:苏ICP备2023054420号-2
</a></div>
</el-col>
</el-row>
</div>
</div>
<div
class=
"fixed-right forPc"
>
<div
class=
"mlb"
v-if=
"language===0"
>
<div
onclick=
"window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=6c500b60-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=ZHCN','_blank','height=700px,width=700px,top=50,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"
title=
"客服"
>
<img
class=
"kf"
src=
"@/assets/logo/btn01.png"
/>
<div
v-if=
"language===0"
class=
"mlb"
>
<div
onclick=
"window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=6c500b60-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=ZHCN','_blank','height=700px,width=700px,top=50,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"
title=
"客服"
>
<img
class=
"kf"
src=
"@/assets/logo/btn01.png"
>
<div
class=
"text-center mt10 gradient-text"
>
在线客服
</div>
</div>
<div
@
click=
"goHelpZH"
>
<!--
<a
target=
"_blank"
href=
"https://wdsfwuxicenter.com/stage-api/fs/file/操作指引.zip"
>
-->
<!--
<a
target=
"_blank"
href=
"https://wdsfwuxicenter.com/stage-api/fs/file/操作指引.zip"
>
-->
<a>
<img
class=
"kf"
src=
"@/assets/logo/btn02.png"
/
>
<img
class=
"kf"
src=
"@/assets/logo/btn02.png"
>
<div
class=
"text-center mt10 gradient-text"
>
指南下载
</div>
</a>
</div>
</div>
<div
class=
"mlb"
v-else
>
<div
onclick=
"window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=707daf80-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=EN','_blank','height=700px,width=700px,top=100,left=150,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"
title=
"Live Chat"
>
<img
class=
"kf"
src=
"@/assets/logo/btn01.png"
/>
<div
v-else
class=
"mlb"
>
<div
onclick=
"window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=707daf80-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=EN','_blank','height=700px,width=700px,top=100,left=150,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"
title=
"Live Chat"
>
<img
class=
"kf"
src=
"@/assets/logo/btn01.png"
>
<div
class=
"text-center gradient-text"
>
LIVE CHAT
</div>
</div>
<div
@
click=
"goHelp"
>
<img
class=
"kf"
src=
"@/assets/logo/btn02.png"
/
>
<img
class=
"kf"
src=
"@/assets/logo/btn02.png"
>
<div
class=
"text-center gradient-text uppercase"
>
Video Guide
</div>
</div>
</div>
<a
v-show=
"false"
ref=
"aRef"
:href=
"fillImgUrl(file[0]?.url)"
target=
"_blank"
/>
</div>
</
template
>
<
script
setup
>
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
useStorage
}
from
'@vueuse/core/index'
import
{
useRouter
}
from
'vue-router'
import
{
ElMessage
}
from
'element-plus'
import
{
getCurrentInstance
,
ref
}
from
'@vue/runtime-core'
import
{
getMatchById
,
getppInfo
,
getZNList
}
from
'@/apiPc/match'
import
{
fillImgUrl
}
from
'/@/utils/ruoyi'
const
{
proxy
}
=
getCurrentInstance
()
const
router
=
useRouter
()
const
language
=
useStorage
(
'language'
,
0
)
const
goHelp
=
()
=>
{
router
.
push
({
path
:
`/news/list/20000100`
,
query
:{
kindName
:
language
.
value
===
0
?
'操作指引'
:
'Video Guide'
query
:
{
kindName
:
language
.
value
===
0
?
'操作指引'
:
'Video Guide'
}
})
}
const
goHelpZH
=
()
=>
{
const
file
=
ref
({})
const
goHelpZH
=
async
()
=>
{
// ElMessage.success('已下载文件')
router
.
push
({
name
:
'guide'
,
query
:
{
index
:
8
}
})
// router.push({
// name: 'guide',
// query: {
// index: 8
// }
// })
const
res
=
await
getZNList
({
sortId
:
30000009
,
language
:
1
})
if
(
res
.
rows
.
length
>
0
)
{
file
.
value
=
JSON
.
parse
(
res
.
rows
[
0
].
picUrl
)
proxy
.
$refs
[
'aRef'
].
click
()
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.kf
{
width
:
45px
;
margin
:
auto
;
height
:
auto
;
.kf
{
width
:
45px
;
margin
:
auto
;
height
:
auto
;
//
animation
:
pop
2s
infinite
;
}
.fixed-right
{
position
:
fixed
;
right
:
0
;
top
:
65%
;
z-index
:
9
;
.mlb{
background
:
#fff
;
border-radius
:
10px
0
0
10px
;
box-shadow
:
0
2px
8px
#aaa
;
padding
:
10px
8px
;
text-align
:
center
;
cursor
:
pointer
;
div
:
first-child
{
border-bottom
:
0.5px
solid
#eee
;
padding
:
0
0
10px
;
margin-bottom
:
10px
}
div
:hover
{
.gradient-text{
font-weight
:
bold
;}
}
.fixed-right
{
position
:
fixed
;
right
:
0
;
top
:
65%
;
z-index
:
9
;
.mlb
{
background
:
#fff
;
border-radius
:
10px
0
0
10px
;
box-shadow
:
0
2px
8px
#aaa
;
padding
:
10px
8px
;
text-align
:
center
;
cursor
:
pointer
;
div
:
first-child
{
border-bottom
:
0.5px
solid
#eee
;
padding
:
0
0
10px
;
margin-bottom
:
10px
}
div
:hover
{
.gradient-text
{
font-weight
:
bold
;
}
}
}
}
.copyright
{
font-size
:
14px
;
opacity
:
0.88
;
color
:
#4C5359
;}
.footAll
{
background
:
#E0E3E5
;
;
padding
:
36px
0
5px
;
p{
font-size
:
14px
;
opacity
:
0.88
;
color
:
#4C5359
;}
ul
{
list-style
:
none
;
li{
line-height
:
30px
;
font-size
:
14px
;
opacity
:
0.88
;
color
:
#4C5359
;
a{
margin-left
:
15px
;
&:hover{
text-decoration
:
underline
;}
.copyright
{
font-size
:
14px
;
opacity
:
0.88
;
color
:
#4C5359
;
}
.footAll
{
background
:
#E0E3E5
;
;
padding
:
36px
0
5px
;
p
{
font-size
:
14px
;
opacity
:
0.88
;
color
:
#4C5359
;
}
ul
{
list-style
:
none
;
li
{
line-height
:
30px
;
font-size
:
14px
;
opacity
:
0.88
;
color
:
#4C5359
;
a
{
margin-left
:
15px
;
&:hover
{
text-decoration
:
underline
;
}
}
}
}
img
{
height
:
80px
;}
img
{
height
:
80px
;
}
}
.gradient-text
{
font-family
:
FZJunHeiS-B-GB
;
font-weight
:
600
;
font-size
:
17px
;
font-weight
:
600
;
font-size
:
17px
;
background
:
linear-gradient
(
0deg
,
#8226FC
0%
,
#483BEB
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
@media
(
max-width
:
500px
)
{
.forWei
{
display
:
none
;}
.footAll
{
padding
:
10px
0
;
ul
{
li
{
font-size
:
10px
;
line-height
:
1.4
;
}
.forWei
{
display
:
none
;
}
.footAll
{
padding
:
10px
0
;
ul
{
li
{
font-size
:
10px
;
line-height
:
1.4
;
}
img
{
height
:
60px
;}
p
{
font-size
:
10px
;
line-height
:
1.4
;}
.copyright
{
font-size
:
10px
;
line-height
:
1.4
;}
}
img
{
height
:
60px
;
}
p
{
font-size
:
10px
;
line-height
:
1.4
;
}
.copyright
{
font-size
:
10px
;
line-height
:
1.4
;
}
}
}
.ffoot
{
display
:
inline-flex
;
img{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
position
:
relative
;
top
:
4px
;
margin-right
:
4px
;}
.ffoot
{
display
:
inline-flex
;
img
{
width
:
20px
;
height
:
20px
;
display
:
inline-block
;
position
:
relative
;
top
:
4px
;
margin-right
:
4px
;
}
}
</
style
>
...
...
src/viewsPc/guide/index.vue
View file @
864892c
<
template
>
<div>
<div
class=
"box"
>
<div
class=
" mt30"
></div
>
<div
class=
" mt30"
/
>
<div
class=
"flexBody"
>
<el-tabs
class=
"forPc"
v-model=
"activeName
"
tab-position=
"left"
@
tab-change=
"changeTab"
@
tab-click=
"clickTab"
>
<el-tabs
v-model=
"activeName"
class=
"forPc
"
tab-position=
"left"
@
tab-change=
"changeTab"
@
tab-click=
"clickTab"
>
<el-tab-pane
v-for=
"(tab,index) in (language===0?list:list_en)"
:label=
"tab.name"
:name=
"index"
>
<template
#
label
>
<span
class=
"custom-tabs-label"
>
<span
class=
"tabFont"
>
{{
tab
.
name
}}
</span>
</span>
<span
class=
"custom-tabs-label"
>
<span
class=
"tabFont"
>
{{
tab
.
name
}}
</span>
</span>
</
template
>
</el-tab-pane>
</el-tabs>
<el-tabs
class=
"forWei"
v-model=
"activeName
"
tab-position=
"top"
@
tab-change=
"changeTab"
@
tab-click=
"clickTab"
>
<el-tabs
v-model=
"activeName"
class=
"forWei
"
tab-position=
"top"
@
tab-change=
"changeTab"
@
tab-click=
"clickTab"
>
<el-tab-pane
v-for=
"(tab,index) in (language===0?list:list_en)"
:label=
"tab.name"
:name=
"index"
>
<
template
#
label
>
<span
class=
"custom-tabs-label"
>
<span
class=
"tabFont"
>
{{
tab
.
name
}}
</span>
</span>
<span
class=
"custom-tabs-label"
>
<span
class=
"tabFont"
>
{{
tab
.
name
}}
</span>
</span>
</
template
>
</el-tab-pane>
</el-tabs>
<div
class=
"infoPart"
v-loading=
"loading
"
>
<div
v-loading=
"loading"
class=
"infoPart
"
>
<h3
class=
"leftboderTT"
>
{{ nowTab.name }}
</h3>
<div
class=
"content"
v-if=
"activeName!==8
"
>
<div
v-
html=
"content"
v-if=
"content"
></div
>
<div
v-if=
"activeName!==8"
class=
"content
"
>
<div
v-
if=
"content"
v-html=
"content"
/
>
<div
v-else
>
<el-empty
/>
</div>
</div>
<div
class=
"content flex"
v-if=
"activeName===8
"
>
<label>
{{ language
===0?'点击下载':
'DownLoad' }}:
</label>
<div
v-if=
"activeName===8"
class=
"content flex
"
>
<label>
{{ language
=== 0 ? '点击下载' :
'DownLoad' }}:
</label>
<div
v-if=
"fileList.length>0"
>
<div
v-for=
"f in fileList"
>
<a
target=
"_blank"
class=
"text-primary"
:href=
"f.fileUrl
"
>
<div
v-for=
"f in fileList"
:key=
"f"
>
<a
:href=
"fillImgUrl(f.url) "
class=
"text-primary"
target=
"_blank
"
>
<el-icon
style=
"position: relative;top: 2px"
>
<download/>
<download
/>
</el-icon>
{{
f.name
}}
{{
f.name
}}
</a>
</div>
</div>
<div
v-else
>
{{ language
==0?'暂无':
'No Data' }}
</div>
<div
v-else
>
{{ language
== 0 ? '暂无' :
'No Data' }}
</div>
</div>
</div>
</div>
...
...
@@ -50,40 +50,42 @@
</div>
</template>
<
script
setup
>
import
{
onMounted
,
ref
}
from
'vue'
import
{
getNewsListById
,
getRuleKind
}
from
'@/apiPc/webSite'
import
{
useRoute
,
useRouter
}
from
'vue-router'
import
{
useStorage
}
from
"@vueuse/core"
;
import
{
getCurrentInstance
}
from
"@vue/runtime-core"
;
import
{
getppInfo
,
getZNList
}
from
"@/apiPc/match"
;
import
{
onMounted
,
ref
}
from
'vue'
import
{
getNewsListById
,
getRuleKind
}
from
'@/apiPc/webSite'
import
{
useRoute
,
useRouter
}
from
'vue-router'
import
{
useStorage
}
from
'@vueuse/core'
import
{
getCurrentInstance
}
from
'@vue/runtime-core'
import
{
getMatchById
,
getppInfo
,
getZNList
}
from
'@/apiPc/match'
import
*
as
match
from
'@/apiPc/match'
import
{
fillImgUrl
}
from
'/@/utils/ruoyi'
const
language
=
useStorage
(
'language'
,
0
)
const
router
=
useRouter
()
const
route
=
useRoute
()
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
activeName
=
ref
(
0
)
const
showVipFee
=
ref
(
false
)
const
list
=
ref
([
{
name
:
'参赛场馆介绍'
,
code
:
'30000001'
},
{
name
:
' 注册报到中心'
,
code
:
'30000002'
},
{
name
:
'证件管理 '
,
code
:
'30000003'
},
{
name
:
'地图指引 '
,
code
:
'30000004'
},
{
name
:
'技术官员与运动队服务 '
,
code
:
'30000005'
},
{
name
:
'医疗服务 '
,
code
:
'30000006'
},
{
name
:
'周边交通图 '
,
code
:
'30000007'
},
{
name
:
'VISA 签证 '
,
code
:
'30000008'
},
{
name
:
'指南手册下载'
,
code
:
'30000009'
}
{
name
:
'参赛场馆介绍'
,
code
:
'30000001'
},
{
name
:
' 注册报到中心'
,
code
:
'30000002'
},
{
name
:
'证件管理 '
,
code
:
'30000003'
},
{
name
:
'地图指引 '
,
code
:
'30000004'
},
{
name
:
'技术官员与运动队服务 '
,
code
:
'30000005'
},
{
name
:
'医疗服务 '
,
code
:
'30000006'
},
{
name
:
'周边交通图 '
,
code
:
'30000007'
},
{
name
:
'VISA 签证 '
,
code
:
'30000008'
},
{
name
:
'指南手册下载'
,
code
:
'30000009'
}
])
const
list_en
=
ref
([
{
name
:
'Introduction of the Competition Venue'
},
{
name
:
' Registration Center'
},
{
name
:
'License Management'
},
{
name
:
'Map Guidance '
},
{
name
:
'Service for Technical Officials and Teams'
},
{
name
:
'Medical Services '
},
{
name
:
'Surrounding Traffic Map'
},
{
name
:
'VISA '
},
{
name
:
'The Manual'
}
{
name
:
'Introduction of the Competition Venue'
},
{
name
:
' Registration Center'
},
{
name
:
'License Management'
},
{
name
:
'Map Guidance '
},
{
name
:
'Service for Technical Officials and Teams'
},
{
name
:
'Medical Services '
},
{
name
:
'Surrounding Traffic Map'
},
{
name
:
'VISA '
},
{
name
:
'The Manual'
}
])
const
newsList
=
ref
([])
const
nowTab
=
ref
({
...
...
@@ -97,12 +99,16 @@ const query = ref({
const
content
=
ref
({})
const
fileList
=
ref
([])
const
loading
=
ref
(
false
)
const
cptId
=
ref
(
route
.
query
.
cptId
)
onMounted
(()
=>
{
if
(
route
.
query
.
index
)
{
changeTab
(
route
.
query
.
index
)
}
else
{
getKindList
()
}
if
(
route
.
query
.
cptId
)
getMatch
()
})
const
getKindList
=
()
=>
{
changeTab
(
0
)
...
...
@@ -115,30 +121,30 @@ const changeTab = (n) => {
nowTab
.
value
=
list_en
.
value
[
n
]
}
activeName
.
value
=
n
if
(
n
==
8
)
{
var
obj
=
{
sortId
:
30000009
,
language
:
1
}
if
(
language
.
value
==
1
)
{
if
(
n
==
8
)
{
var
obj
=
{
sortId
:
30000009
,
language
:
1
}
if
(
language
.
value
==
1
)
{
obj
.
language
=
2
}
getZNList
(
obj
).
then
(
res
=>
{
getZNList
(
obj
).
then
(
res
=>
{
fileList
.
value
=
res
.
rows
for
(
let
f
of
fileList
.
value
)
{
for
(
const
f
of
fileList
.
value
)
{
f
.
fileUrl
=
JSON
.
parse
(
f
.
picUrl
)[
0
].
url
}
})
}
else
{
loading
.
value
=
true
getppInfo
(
list
.
value
[
n
].
code
).
then
(
res
=>
{
getppInfo
(
list
.
value
[
n
].
code
).
then
(
res
=>
{
loading
.
value
=
false
if
(
language
.
value
==
0
)
{
if
(
language
.
value
==
0
)
{
content
.
value
=
res
.
data
.
contextZh
}
else
{
content
.
value
=
res
.
data
.
contextEn
}
})
}
// if (nowTab.value.tag === 'fee') {
// showVipFee.value = true
// } else {
...
...
@@ -154,7 +160,7 @@ const changeTab = (n) => {
// }
}
const
clickTab
=
(
e
)
=>
{
}
const
getList
=
()
=>
{
getNewsListById
(
query
.
value
).
then
(
res
=>
{
...
...
@@ -174,6 +180,16 @@ const goDetail = (n) => {
const
showBuilding
=
()
=>
{
proxy
.
$message
.
warning
(
language
.
value
==
0
?
'待更新'
:
'Building'
)
}
async
function
getMatch
()
{
const
res
=
await
match
.
getMatchById
({
id
:
cptId
.
value
})
if
(
res
.
data
.
cptGuide
)
{
fileList
.
value
=
JSON
.
parse
(
res
.
data
.
cptGuide
)
}
else
{
fileList
.
value
=
[]
}
console
.
log
(
res
)
}
</
script
>
<
style
lang=
"scss"
scoped
>
.content
{
...
...
@@ -183,13 +199,13 @@ const showBuilding = () => {
font-weight
:
400
;
font-size
:
16px
;
color
:
#29343C
;
img
{
max-width
:
100%
;
margin
:
20px
auto
;
display
:
block
;
}
h4
{
text-indent
:
0
}
...
...
@@ -199,7 +215,7 @@ h4.leftboderTT {
text-indent
:
0
;
font-size
:
20px
;
color
:
var
(
--el-color-primary
);
span
{
color
:
#929AA0
;
font-size
:
16px
;
...
...
@@ -254,7 +270,7 @@ h4.leftboderTT {
.infoPart
{
padding
:
20px
;
flex
:
1
;
&
>
h3
{
font-size
:
24px
;
color
:
var
(
--el-color-primary
);
...
...
@@ -290,30 +306,30 @@ h4.leftboderTT {
.newsLine
{
.item
{
height
:
50px
;
.date
{
height
:
34px
;
width
:
44px
;
margin
:
0
;
.day
{
font-size
:
16px
;
}
p
{
font-size
:
12px
;
}
}
h3
{
font-size
:
14px
;
}
}
.go
{
display
:
none
;
}
.item-body
{
width
:
80%
;
}
...
...
@@ -325,11 +341,11 @@ h4.leftboderTT {
background
:
#fff
;
padding
:
10px
15px
0
;
}
:deep
(
.el-tabs__content
)
{
padding
:
0
10px
;
}
}
@media
(
max-width
:
768px
)
{
...
...
src/viewsPc/index.vue
View file @
864892c
...
...
@@ -603,7 +603,8 @@ const goGuide = () => {
router
.
push
({
name
:
'guide'
,
query
:
{
index
:
8
index
:
8
,
cptId
:
matchData
.
value
.
id
}
})
}
...
...
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