864892cf by zhangmeng

奖牌

1 parent f95e2295
<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;&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;
.forWei {
display: none;
}
.footAll {
padding: 10px 0;
ul {
li {
font-size: 10px;line-height: 1.4;
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>
......
<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">
......@@ -12,7 +12,7 @@
</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">
......@@ -21,28 +21,28 @@
</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)
......@@ -116,22 +122,22 @@ const changeTab = (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
......@@ -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 {
......
......@@ -603,7 +603,8 @@ const goGuide = () => {
router.push({
name: 'guide',
query: {
index: 8
index: 8,
cptId: matchData.value.id
}
})
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!