1c9d32e9 by zhangmeng

成绩查询

1 parent f53d9b64
<template>
<el-dialog
v-model="show"
:close-on-click-modal="false"
:title="language==0?'成绩查询':'RESULT QUERY'"
align-center
append-to-body
center
class="pcloginpop"
close-icon="CircleClose"
destroy-on-close
style="min-width:350px;max-width: 500px"
>
<div v-loading="loading" style="min-height: 500px;height: 50vh;">
<div>
<div class="flex mt30">
<el-input
v-model="query"
:placeholder="language==0?'输入项目编号查询':'Enter project name or code to Query'" clearable
@blur="search" @empty="search" @enter="search"
/>
<el-button class="btn-lineG" style="color: #fff" @click="search">{{ language == 0 ? '查询' : 'Search' }}
</el-button>
</div>
<div v-if="list.length>0" class="mt30 rollY">
<div v-for="val in list" :key="val.id">
<el-image
v-for="obj in val.resultUrl"
:key="obj"
:src="fillImgUrl(obj)"
:preview-teleported="true"
:preview-src-list="[fillImgUrl(obj)]"
class="resultUrlImag"
/>
</div>
</div>
<div v-else>
<el-empty />
</div>
</div>
</div>
<div v-if="list.length>0" class="text-center">
{{ language == 0 ? '下滑查看更多' : 'Scroll down to view more' }}
</div>
</el-dialog>
</template>
<script setup>
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
import {
getqySchedule
} from '@/apiPc/common'
import { useStorage } from '@vueuse/core/index'
import { fillImgUrl } from '/@/utils/ruoyi'
const language = useStorage('language', 0)
const show = ref(false)
const list = ref([])
const loading = ref(false)
const groupList = ref([])
const teamlist = ref([])
const query = ref('')
const type = ref('')
const cptId = ref()
const search = () => {
if (!query.value) {
ElMessage.warning(language.value == 0 ? '请输入项目编号' : 'Please enter the project number')
return
}
getqySchedule({ projectName: query.value, cptId: cptId.value }).then(res => {
if (!res.data || res.data.length == 0) {
list.value = []
// 提示 '未找到结果,请重新查询'
ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
return
}
list.value = res.data
for (const val of list.value) {
if (val.resultUrl) val.resultUrl = val.resultUrl.split(',')
}
}).catch(e => {
loading.value = false
})
}
const open = (param) => {
cptId.value = param.cptId
show.value = true
list.value = []
teamlist.value = []
groupList.value = []
query.value = ''
type.value = ''
loading.value = false
// search()
}
defineExpose({
open
})
</script>
<style lang="scss" scoped>
.tname {
font-size: 14px;
font-weight: bold;
position: relative;
top: -8px
}
.tip {
font-size: 12px;
margin: 4px 0 0;
display: inline-block;
}
.rItem {
max-height: 130px;
cursor: pointer;
border: 1px solid #e1e1e1;
border-radius: 4px;
max-width: 350px;
text-align: center;
line-height: 130px;
padding: 1px;
font-size: 30px;
color: #fff;
margin: 20px auto;
background: linear-gradient(90deg, #8623FC, #453DEA);
&:hover {
background: linear-gradient(90deg, #453DEA, #8623FC);
box-shadow: 0 4px 10px #453DEA;
border: none;
}
}
.nowteamItem {
width: 100%;
border: 1px solid #c8c5ff;
margin-top: 20px;
position: relative;
border-radius: 4px;
padding: 0 0 20px;
background: #FFFFFF;
box-sizing: border-box;
.info {
.nowName {
font-family: "DIN Alternate";
font-size: 60px;
font-weight: bold;
overflow: hidden;
display: block;
margin: 10px;
}
label {
text-align: right;
font-size: 14px;
padding-left: 7%
}
div {
font-size: 14px;
color: #333;
margin: 6px 0 0;
}
}
}
.temell {
.nowteamItem {
padding: 10px;
margin: 0 0 10px;
.nowName {
font-size: 15px;
font-weight: bold;
margin-right: 10px
}
.text-bold {
font-weight: bold;
}
.fontsize14 {
font-size: 14px;
}
}
}
.groupList {
max-height: 70vh;
overflow: auto;
border: 1px solid #e1e1e1;
margin-top: 10px;
li {
padding: 10px;
border-bottom: 1px solid #e1e1e1;
cursor: pointer;
}
}
.searchBox {
height: 50vh;
//overflow-y: auto;
}
.rollY {
height: 45vh;
overflow-y: auto;
}
.resultUrlImag {
width: 100%;
margin-bottom: 10px;
}
</style>
......@@ -2,9 +2,12 @@
<div>
<index-Ch
v-if="language ==0" @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster"
@schSearch="openSchSearch" @reserveSearch="bookingSearchOpen"
@schSearch="openSchSearch" @reserveSearch="bookingSearchOpen" @performance="openPerformance"
/>
<index-En
v-else @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" @reserveSearch="bookingSearchOpen"
@schSearch="openSchSearch" @performance="openPerformance"
/>
<index-En v-else @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" @reserveSearch="bookingSearchOpen" @schSearch="openSchSearch" />
<div v-if="showgg" class="fixed_gg">
<!--天气-->
<el-icon class="cclose" @click.stop="showgg=false">
......@@ -81,6 +84,8 @@
<back-number ref="backNumberRef" />
<sch-search ref="schSearchRef" />
<bookingSearch ref="bookingSearchRef" />
<performance ref="performanceRef" />
</div>
</template>
......@@ -93,6 +98,7 @@ import DialogMasterClass from '@/viewsPc/components/masterClass'
import PickUp from '@/viewsPc/components/pickup'
import BackNumber from '@/viewsPc/components/querybackNumber'
import SchSearch from '@/viewsPc/components/schSearch'
import performance from '@/viewsPc/components/performance'
import bookingSearch from '@/viewsPc/components/bookingSearch'
import { useStorage } from '@vueuse/core/index'
import { ref } from 'vue'
......@@ -154,7 +160,15 @@ const openSchSearch = (params) => {
}
proxy.$refs['schSearchRef'].open(obj)
}
const bookingSearchOpen= (params) => {
const openPerformance = (params) => {
const obj = {
title: '成绩查询',
cptId: params.cptId
}
proxy.$refs['performanceRef'].open(obj)
}
const bookingSearchOpen = (params) => {
console.log(params)
const obj = {
title: '日程查询',
......
<template>
<div>
<div class="banner">
<el-carousel :autoplay="false" :interval="2000" arrow="hover" class="forPc" height="450px"
@change="carouselChange">
<el-carousel
:autoplay="false" :interval="2000" arrow="hover" class="forPc" height="450px"
@change="carouselChange"
>
<el-carousel-item v-for="n in maList" :key="n.id" style="height: 450px;">
<div class="bannerItem">
<div class="h100" @click.stop="goMatch(n)">
......@@ -42,7 +44,8 @@
</div>
<div
style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around">
style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"
>
<a class=" btn2" style="z-index: 999999" @click.stop="liveQrcodeShowBtn">
<!-- 赛事直播-->
Live Qrcode
......@@ -96,7 +99,8 @@
</div>
<div
style="position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around">
style="position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"
>
<a class=" btn2-phone" style="z-index: 999999" @click.stop="liveQrcodeShowBtn">
Live Qrcode
......@@ -134,11 +138,10 @@
<Edit />
</el-icon>
</a> -->
<br/>
<a class="zn-btn btn-q" @click="backNumberSearch">Competition
Number</a>
<a class="zn-btn btn-q" @click="schSearchSearch">Schedule
Inquiry</a>
<br>
<a class="zn-btn btn-q" @click="backNumberSearch">Competition Number</a>
<a class="zn-btn btn-q" @click="schSearchSearch">Schedule Inquiry</a>
<a class="zn-btn btn-q" @click="performanceSearch">RESULT QUERY</a>
</div>
......@@ -299,8 +302,10 @@
<el-col :lg="16">
<div class="swiperPic forPx">
<swiper :autoplay="true" :loop="true" :modules="modules" :navigation="navigationPic"
:slides-per-view="3" :space-between="20" class="swiper-wrapper">
<swiper
:autoplay="true" :loop="true" :modules="modules" :navigation="navigationPic"
:slides-per-view="3" :space-between="20" class="swiper-wrapper"
>
<swiper-slide v-for="(n, i) in picList" :key="i">
<div class="picbox" @click="goNewsDetail(n)">
<img :src="fillImgUrl_webSite(n.picUrl)">
......@@ -341,7 +346,10 @@
<h3 class="leftboderTT">INTRODUCTION OF ADJUDICATORS</h3>
</div>
<el-row :gutter="20">
<el-col v-for="n in personList" :key="n.name" :lg="4" :sm="8" :xl="4" :xs="12">
<el-col
v-for="n in personList" :key="n.name" :lg="4" :sm="8" :xl="4"
:xs="12"
>
<div class="teacher">
<div class="imgbox"><img :src="n.src"></div>
<h3 class="esp">{{ n.name }}</h3>
......@@ -411,24 +419,30 @@
<!-- 邀请函-->
<div class="fixed_gg_l yaoQing">
<img src="@/assets/logo/Invitation_e.png" @click="applyInvitation" v-if="matchData.invitationSw == '1'">
<img v-if="matchData.invitationSw == '1'" src="@/assets/logo/Invitation_e.png" @click="applyInvitation">
<div style="padding-left: 7px;">
<el-image v-if="clubImage && matchData.visaSw == '1'" :preview-src-list="[clubImage]" :src="clubImage"
fit="cover" preview-teleported style="width: 124px" />
<el-image
v-if="clubImage && matchData.visaSw == '1'" :preview-src-list="[clubImage]" :src="clubImage"
fit="cover" preview-teleported style="width: 124px"
/>
</div>
</div>
<!-- 群聊-->
<div v-if="matchData.chatQrcode" class="fixed_gg_l club">
<el-image :preview-src-list="[fillImgUrl(matchData.chatQrcode)]" :src="fillImgUrl(matchData.chatQrcode)"
fit="cover" preview-teleported style="width: 120px;height: 120px" />
<el-image
:preview-src-list="[fillImgUrl(matchData.chatQrcode)]" :src="fillImgUrl(matchData.chatQrcode)"
fit="cover" preview-teleported style="width: 120px;height: 120px"
/>
</div>
<affix-invitation ref="dialogInvitationRef" />
<el-dialog v-model="liveQrcodeShow" :title="language == 0 ? '赛事直播' : 'Live QR Code'" width="350px">
<div style="display: flex;justify-content: space-between">
<el-image v-if="matchData.liveQrcode" :src="fillImgUrl(matchData.liveQrcode)" fit="cover"
style="max-width: 350px;" />
<el-image
v-if="matchData.liveQrcode" :src="fillImgUrl(matchData.liveQrcode)" fit="cover"
style="max-width: 350px;"
/>
</div>
</el-dialog>
......@@ -464,7 +478,7 @@ const navigationPic = ref({
})
const router = useRouter()
const { proxy } = getCurrentInstance()
const emit = defineEmits(['pop', 'backNumber', 'schSearch', 'reserveSearch'])
const emit = defineEmits(['pop', 'backNumber', 'schSearch', 'reserveSearch', 'performance'])
const time = ref(0)
const etime = ref(0)
const liveQrcodeShow = ref(false)
......@@ -503,8 +517,8 @@ const reserveSearch = () => {
var params = {
cptId: matchData.value.id
}
emit('reserveSearch', params); // 向父组件发射事件+参数
};
emit('reserveSearch', params) // 向父组件发射事件+参数
}
function handleRowClick(row) {
console.log(row)
......@@ -626,7 +640,6 @@ const goGuide = () => {
const liveQrcodeShowBtn = () => {
if (!matchData.value.liveQrcode) {
ElMessage.warning('There is currently no live broadcast of the event')
return
} else {
liveQrcodeShow.value = true
}
......@@ -650,6 +663,15 @@ const schSearchSearch = () => {
}
emit('schSearch', params)
}
const performanceSearch = () => {
const params = {
cptId: matchData.value.id
}
console.log(1111)
emit('performance', params)
}
const handlePickup = () => {
const params = {
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!