成绩查询
Showing
4 changed files
with
329 additions
and
58 deletions
src/viewsPc/components/performance.vue
0 → 100644
| 1 | <template> | ||
| 2 | <el-dialog | ||
| 3 | v-model="show" | ||
| 4 | :close-on-click-modal="false" | ||
| 5 | :title="language==0?'成绩查询':'RESULT QUERY'" | ||
| 6 | align-center | ||
| 7 | append-to-body | ||
| 8 | center | ||
| 9 | class="pcloginpop" | ||
| 10 | close-icon="CircleClose" | ||
| 11 | destroy-on-close | ||
| 12 | style="min-width:350px;max-width: 500px" | ||
| 13 | > | ||
| 14 | <div v-loading="loading" style="min-height: 500px;height: 50vh;"> | ||
| 15 | <div> | ||
| 16 | <div class="flex mt30"> | ||
| 17 | <el-input | ||
| 18 | v-model="query" | ||
| 19 | :placeholder="language==0?'输入项目编号查询':'Enter project name or code to Query'" clearable | ||
| 20 | @blur="search" @empty="search" @enter="search" | ||
| 21 | /> | ||
| 22 | <el-button class="btn-lineG" style="color: #fff" @click="search">{{ language == 0 ? '查询' : 'Search' }} | ||
| 23 | </el-button> | ||
| 24 | </div> | ||
| 25 | |||
| 26 | <div v-if="list.length>0" class="mt30 rollY"> | ||
| 27 | <div v-for="val in list" :key="val.id"> | ||
| 28 | <el-image | ||
| 29 | v-for="obj in val.resultUrl" | ||
| 30 | :key="obj" | ||
| 31 | :src="fillImgUrl(obj)" | ||
| 32 | :preview-teleported="true" | ||
| 33 | :preview-src-list="[fillImgUrl(obj)]" | ||
| 34 | class="resultUrlImag" | ||
| 35 | /> | ||
| 36 | </div> | ||
| 37 | </div> | ||
| 38 | <div v-else> | ||
| 39 | <el-empty /> | ||
| 40 | </div> | ||
| 41 | </div> | ||
| 42 | </div> | ||
| 43 | <div v-if="list.length>0" class="text-center"> | ||
| 44 | {{ language == 0 ? '下滑查看更多' : 'Scroll down to view more' }} | ||
| 45 | </div> | ||
| 46 | </el-dialog> | ||
| 47 | </template> | ||
| 48 | |||
| 49 | <script setup> | ||
| 50 | import { ref } from 'vue' | ||
| 51 | import { ElMessage } from 'element-plus' | ||
| 52 | import { | ||
| 53 | getqySchedule | ||
| 54 | } from '@/apiPc/common' | ||
| 55 | import { useStorage } from '@vueuse/core/index' | ||
| 56 | import { fillImgUrl } from '/@/utils/ruoyi' | ||
| 57 | |||
| 58 | const language = useStorage('language', 0) | ||
| 59 | const show = ref(false) | ||
| 60 | const list = ref([]) | ||
| 61 | const loading = ref(false) | ||
| 62 | const groupList = ref([]) | ||
| 63 | const teamlist = ref([]) | ||
| 64 | const query = ref('') | ||
| 65 | const type = ref('') | ||
| 66 | const cptId = ref() | ||
| 67 | |||
| 68 | const search = () => { | ||
| 69 | if (!query.value) { | ||
| 70 | ElMessage.warning(language.value == 0 ? '请输入项目编号' : 'Please enter the project number') | ||
| 71 | return | ||
| 72 | } | ||
| 73 | getqySchedule({ projectName: query.value, cptId: cptId.value }).then(res => { | ||
| 74 | if (!res.data || res.data.length == 0) { | ||
| 75 | list.value = [] | ||
| 76 | // 提示 '未找到结果,请重新查询' | ||
| 77 | ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result') | ||
| 78 | return | ||
| 79 | } | ||
| 80 | list.value = res.data | ||
| 81 | for (const val of list.value) { | ||
| 82 | if (val.resultUrl) val.resultUrl = val.resultUrl.split(',') | ||
| 83 | } | ||
| 84 | }).catch(e => { | ||
| 85 | loading.value = false | ||
| 86 | }) | ||
| 87 | } | ||
| 88 | |||
| 89 | const open = (param) => { | ||
| 90 | cptId.value = param.cptId | ||
| 91 | show.value = true | ||
| 92 | list.value = [] | ||
| 93 | teamlist.value = [] | ||
| 94 | groupList.value = [] | ||
| 95 | query.value = '' | ||
| 96 | type.value = '' | ||
| 97 | loading.value = false | ||
| 98 | // search() | ||
| 99 | } | ||
| 100 | |||
| 101 | |||
| 102 | defineExpose({ | ||
| 103 | open | ||
| 104 | }) | ||
| 105 | |||
| 106 | </script> | ||
| 107 | |||
| 108 | <style lang="scss" scoped> | ||
| 109 | .tname { | ||
| 110 | font-size: 14px; | ||
| 111 | font-weight: bold; | ||
| 112 | position: relative; | ||
| 113 | top: -8px | ||
| 114 | } | ||
| 115 | |||
| 116 | .tip { | ||
| 117 | font-size: 12px; | ||
| 118 | margin: 4px 0 0; | ||
| 119 | display: inline-block; | ||
| 120 | } | ||
| 121 | |||
| 122 | .rItem { | ||
| 123 | max-height: 130px; | ||
| 124 | cursor: pointer; | ||
| 125 | border: 1px solid #e1e1e1; | ||
| 126 | border-radius: 4px; | ||
| 127 | max-width: 350px; | ||
| 128 | text-align: center; | ||
| 129 | line-height: 130px; | ||
| 130 | padding: 1px; | ||
| 131 | font-size: 30px; | ||
| 132 | color: #fff; | ||
| 133 | margin: 20px auto; | ||
| 134 | background: linear-gradient(90deg, #8623FC, #453DEA); | ||
| 135 | |||
| 136 | &:hover { | ||
| 137 | background: linear-gradient(90deg, #453DEA, #8623FC); | ||
| 138 | box-shadow: 0 4px 10px #453DEA; | ||
| 139 | border: none; | ||
| 140 | } | ||
| 141 | } | ||
| 142 | |||
| 143 | .nowteamItem { | ||
| 144 | width: 100%; | ||
| 145 | border: 1px solid #c8c5ff; | ||
| 146 | margin-top: 20px; | ||
| 147 | position: relative; | ||
| 148 | border-radius: 4px; | ||
| 149 | padding: 0 0 20px; | ||
| 150 | background: #FFFFFF; | ||
| 151 | box-sizing: border-box; | ||
| 152 | |||
| 153 | .info { | ||
| 154 | .nowName { | ||
| 155 | font-family: "DIN Alternate"; | ||
| 156 | font-size: 60px; | ||
| 157 | font-weight: bold; | ||
| 158 | overflow: hidden; | ||
| 159 | display: block; | ||
| 160 | margin: 10px; | ||
| 161 | } | ||
| 162 | |||
| 163 | label { | ||
| 164 | text-align: right; | ||
| 165 | font-size: 14px; | ||
| 166 | padding-left: 7% | ||
| 167 | } | ||
| 168 | |||
| 169 | div { | ||
| 170 | font-size: 14px; | ||
| 171 | color: #333; | ||
| 172 | margin: 6px 0 0; | ||
| 173 | } | ||
| 174 | } | ||
| 175 | } | ||
| 176 | |||
| 177 | .temell { | ||
| 178 | .nowteamItem { | ||
| 179 | padding: 10px; | ||
| 180 | margin: 0 0 10px; | ||
| 181 | |||
| 182 | .nowName { | ||
| 183 | font-size: 15px; | ||
| 184 | font-weight: bold; | ||
| 185 | margin-right: 10px | ||
| 186 | } | ||
| 187 | |||
| 188 | .text-bold { | ||
| 189 | font-weight: bold; | ||
| 190 | } | ||
| 191 | |||
| 192 | .fontsize14 { | ||
| 193 | font-size: 14px; | ||
| 194 | } | ||
| 195 | } | ||
| 196 | } | ||
| 197 | |||
| 198 | .groupList { | ||
| 199 | max-height: 70vh; | ||
| 200 | overflow: auto; | ||
| 201 | border: 1px solid #e1e1e1; | ||
| 202 | margin-top: 10px; | ||
| 203 | |||
| 204 | li { | ||
| 205 | padding: 10px; | ||
| 206 | border-bottom: 1px solid #e1e1e1; | ||
| 207 | cursor: pointer; | ||
| 208 | } | ||
| 209 | } | ||
| 210 | |||
| 211 | .searchBox { | ||
| 212 | height: 50vh; | ||
| 213 | //overflow-y: auto; | ||
| 214 | } | ||
| 215 | |||
| 216 | .rollY { | ||
| 217 | height: 45vh; | ||
| 218 | overflow-y: auto; | ||
| 219 | } | ||
| 220 | |||
| 221 | .resultUrlImag { | ||
| 222 | width: 100%; | ||
| 223 | margin-bottom: 10px; | ||
| 224 | } | ||
| 225 | </style> |
| ... | @@ -2,9 +2,12 @@ | ... | @@ -2,9 +2,12 @@ |
| 2 | <div> | 2 | <div> |
| 3 | <index-Ch | 3 | <index-Ch |
| 4 | v-if="language ==0" @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" | 4 | v-if="language ==0" @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" |
| 5 | @schSearch="openSchSearch" @reserveSearch="bookingSearchOpen" | 5 | @schSearch="openSchSearch" @reserveSearch="bookingSearchOpen" @performance="openPerformance" |
| 6 | /> | ||
| 7 | <index-En | ||
| 8 | v-else @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" @reserveSearch="bookingSearchOpen" | ||
| 9 | @schSearch="openSchSearch" @performance="openPerformance" | ||
| 6 | /> | 10 | /> |
| 7 | <index-En v-else @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" @reserveSearch="bookingSearchOpen" @schSearch="openSchSearch" /> | ||
| 8 | <div v-if="showgg" class="fixed_gg"> | 11 | <div v-if="showgg" class="fixed_gg"> |
| 9 | <!--天气--> | 12 | <!--天气--> |
| 10 | <el-icon class="cclose" @click.stop="showgg=false"> | 13 | <el-icon class="cclose" @click.stop="showgg=false"> |
| ... | @@ -81,6 +84,8 @@ | ... | @@ -81,6 +84,8 @@ |
| 81 | <back-number ref="backNumberRef" /> | 84 | <back-number ref="backNumberRef" /> |
| 82 | <sch-search ref="schSearchRef" /> | 85 | <sch-search ref="schSearchRef" /> |
| 83 | <bookingSearch ref="bookingSearchRef" /> | 86 | <bookingSearch ref="bookingSearchRef" /> |
| 87 | <performance ref="performanceRef" /> | ||
| 88 | |||
| 84 | </div> | 89 | </div> |
| 85 | 90 | ||
| 86 | </template> | 91 | </template> |
| ... | @@ -93,6 +98,7 @@ import DialogMasterClass from '@/viewsPc/components/masterClass' | ... | @@ -93,6 +98,7 @@ import DialogMasterClass from '@/viewsPc/components/masterClass' |
| 93 | import PickUp from '@/viewsPc/components/pickup' | 98 | import PickUp from '@/viewsPc/components/pickup' |
| 94 | import BackNumber from '@/viewsPc/components/querybackNumber' | 99 | import BackNumber from '@/viewsPc/components/querybackNumber' |
| 95 | import SchSearch from '@/viewsPc/components/schSearch' | 100 | import SchSearch from '@/viewsPc/components/schSearch' |
| 101 | import performance from '@/viewsPc/components/performance' | ||
| 96 | import bookingSearch from '@/viewsPc/components/bookingSearch' | 102 | import bookingSearch from '@/viewsPc/components/bookingSearch' |
| 97 | import { useStorage } from '@vueuse/core/index' | 103 | import { useStorage } from '@vueuse/core/index' |
| 98 | import { ref } from 'vue' | 104 | import { ref } from 'vue' |
| ... | @@ -154,7 +160,15 @@ const openSchSearch = (params) => { | ... | @@ -154,7 +160,15 @@ const openSchSearch = (params) => { |
| 154 | } | 160 | } |
| 155 | proxy.$refs['schSearchRef'].open(obj) | 161 | proxy.$refs['schSearchRef'].open(obj) |
| 156 | } | 162 | } |
| 157 | const bookingSearchOpen= (params) => { | 163 | |
| 164 | const openPerformance = (params) => { | ||
| 165 | const obj = { | ||
| 166 | title: '成绩查询', | ||
| 167 | cptId: params.cptId | ||
| 168 | } | ||
| 169 | proxy.$refs['performanceRef'].open(obj) | ||
| 170 | } | ||
| 171 | const bookingSearchOpen = (params) => { | ||
| 158 | console.log(params) | 172 | console.log(params) |
| 159 | const obj = { | 173 | const obj = { |
| 160 | title: '日程查询', | 174 | title: '日程查询', | ... | ... |
| ... | @@ -115,20 +115,22 @@ | ... | @@ -115,20 +115,22 @@ |
| 115 | <div class="bgbg btn-group"> | 115 | <div class="bgbg btn-group"> |
| 116 | <h1 style="color: #fff">{{ matchData?.name }}</h1> | 116 | <h1 style="color: #fff">{{ matchData?.name }}</h1> |
| 117 | <div class="btn-group"> | 117 | <div class="btn-group"> |
| 118 | |||
| 118 | <a class="zn-btn ml10" target="_blank" @click="goGuide">参赛指南 | 119 | <a class="zn-btn ml10" target="_blank" @click="goGuide">参赛指南 |
| 119 | <el-icon> | 120 | <el-icon> |
| 120 | <download /> | 121 | <download/> |
| 121 | </el-icon> | 122 | </el-icon> |
| 122 | </a> | 123 | </a> |
| 123 | <a class="zn-btn ml10 btn-q" @click="reserveSearch">预订查询</a> | 124 | <a class="zn-btn ml10 btn-q" @click="reserveSearch">预订查询</a> |
| 124 | 125 | ||
| 125 | <a v-show="matchData?.id" class="zn-btn ml10 btn-q " @click="backNumberSearch">背号查询</a> | 126 | <a v-show="matchData?.id" class="zn-btn ml10 btn-q " @click="backNumberSearch">背号查询</a> |
| 126 | <a v-show="matchData?.id" class="zn-btn ml10 btn-q" @click="schSearch">日程查询</a> | 127 | <a v-show="matchData?.id" class="zn-btn ml10 btn-q" @click="schSearch">日程查询</a> |
| 128 | <a v-show="matchData?.id" class="zn-btn ml10 btn-q" @click="handelPerformance">成绩查询</a> | ||
| 127 | </div> | 129 | </div> |
| 128 | </div> | 130 | </div> |
| 129 | </el-col> | 131 | </el-col> |
| 130 | <el-col :lg="14" :sm="24"> | 132 | <el-col :lg="14" :sm="24"> |
| 131 | <HomeQuick :cpt-name="matchData?.name" :match-id="matchData?.id" /> | 133 | <HomeQuick :cpt-name="matchData?.name" :match-id="matchData?.id"/> |
| 132 | </el-col> | 134 | </el-col> |
| 133 | </el-row> | 135 | </el-row> |
| 134 | </div> | 136 | </div> |
| ... | @@ -144,7 +146,7 @@ | ... | @@ -144,7 +146,7 @@ |
| 144 | </div> | 146 | </div> |
| 145 | <!--赛事日历--> | 147 | <!--赛事日历--> |
| 146 | <el-card :body-style="{ 'padding': '20px 20px' }"> | 148 | <el-card :body-style="{ 'padding': '20px 20px' }"> |
| 147 | <home-calendar /> | 149 | <home-calendar/> |
| 148 | </el-card> | 150 | </el-card> |
| 149 | </el-col> | 151 | </el-col> |
| 150 | <el-col :lg="12" :sm="24"> | 152 | <el-col :lg="12" :sm="24"> |
| ... | @@ -155,12 +157,12 @@ | ... | @@ -155,12 +157,12 @@ |
| 155 | <!--历史排名--> | 157 | <!--历史排名--> |
| 156 | <el-card :body-style="{ 'padding': '10px 20px 18px' }"> | 158 | <el-card :body-style="{ 'padding': '10px 20px 18px' }"> |
| 157 | <el-table :data="rank" height="495" stripe @row-click="handleRowClick"> | 159 | <el-table :data="rank" height="495" stripe @row-click="handleRowClick"> |
| 158 | <el-table-column align="center" label="名次" prop="index" width="50" /> | 160 | <el-table-column align="center" label="名次" prop="index" width="50"/> |
| 159 | 161 | ||
| 160 | <el-table-column label="国家" prop="name"> | 162 | <el-table-column label="国家" prop="name"> |
| 161 | <template #default="scope"> | 163 | <template #default="scope"> |
| 162 | <div> | 164 | <div> |
| 163 | <span v-if="scope.row.code != 'tw'" :class="`flag-icon flag-icon-${scope.row.code}`" /> | 165 | <span v-if="scope.row.code != 'tw'" :class="`flag-icon flag-icon-${scope.row.code}`"/> |
| 164 | <span v-else class="flag-icon"> | 166 | <span v-else class="flag-icon"> |
| 165 | <img :src="hkImage" alt="" class="hkimg"> | 167 | <img :src="hkImage" alt="" class="hkimg"> |
| 166 | </span> | 168 | </span> |
| ... | @@ -303,7 +305,7 @@ | ... | @@ -303,7 +305,7 @@ |
| 303 | <el-col v-for="(n, index) in livelist" v-show="index > 0" :lg="8"> | 305 | <el-col v-for="(n, index) in livelist" v-show="index > 0" :lg="8"> |
| 304 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)"> | 306 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)"> |
| 305 | <div class="imgbox"> | 307 | <div class="imgbox"> |
| 306 | <i class="playIcon" /> | 308 | <i class="playIcon"/> |
| 307 | <img :src="fillImgUrl_webSite(n.picUrl)"> | 309 | <img :src="fillImgUrl_webSite(n.picUrl)"> |
| 308 | </div> | 310 | </div> |
| 309 | <div class="info"> | 311 | <div class="info"> |
| ... | @@ -346,7 +348,7 @@ | ... | @@ -346,7 +348,7 @@ |
| 346 | </div> | 348 | </div> |
| 347 | <div class="aboutBox"> | 349 | <div class="aboutBox"> |
| 348 | <div class="content"> | 350 | <div class="content"> |
| 349 | <div v-html="aboutUsContent" /> | 351 | <div v-html="aboutUsContent"/> |
| 350 | <!-- 无锡WDSF亚洲体育舞蹈节是由世界体育舞蹈(无锡)中心(世界体育舞蹈联合、亚洲体育舞蹈联合、中国体育舞蹈联合会和无锡市人民政府共建)打造面向全球的、长期落户的、城市自主的品牌赛事。--> | 352 | <!-- 无锡WDSF亚洲体育舞蹈节是由世界体育舞蹈(无锡)中心(世界体育舞蹈联合、亚洲体育舞蹈联合、中国体育舞蹈联合会和无锡市人民政府共建)打造面向全球的、长期落户的、城市自主的品牌赛事。--> |
| 351 | <!-- 2023年7月首次举办无锡2023年WDSF亚洲体育舞蹈节,包括2023年WDSF世界标准舞锦标赛、2023年WDSF世界体育舞蹈大奖赛(中国无锡)、2023年全国体育舞蹈公开系列赛(无锡站),共吸引来自全球39个国家及地区的1,716名顶级舞者参与。--> | 353 | <!-- 2023年7月首次举办无锡2023年WDSF亚洲体育舞蹈节,包括2023年WDSF世界标准舞锦标赛、2023年WDSF世界体育舞蹈大奖赛(中国无锡)、2023年全国体育舞蹈公开系列赛(无锡站),共吸引来自全球39个国家及地区的1,716名顶级舞者参与。--> |
| 352 | <!-- 同时,并将世界体育舞蹈(无锡)中心成功落户中国无锡,以“节日有竞赛、竞赛节日化”为发展指导原则,“四方”共同努力服务全球舞者。 <div class="shadowbox"/>--> | 354 | <!-- 同时,并将世界体育舞蹈(无锡)中心成功落户中国无锡,以“节日有竞赛、竞赛节日化”为发展指导原则,“四方”共同努力服务全球舞者。 <div class="shadowbox"/>--> |
| ... | @@ -403,7 +405,7 @@ | ... | @@ -403,7 +405,7 @@ |
| 403 | <!-- && maList.invitationSw == '1' --> | 405 | <!-- && maList.invitationSw == '1' --> |
| 404 | <div v-if="clubImage && matchData.visaSw == '1'" style="padding-left: 7px;"> | 406 | <div v-if="clubImage && matchData.visaSw == '1'" style="padding-left: 7px;"> |
| 405 | <el-image :preview-src-list="[clubImage]" :src="clubImage" fit="cover" preview-teleported | 407 | <el-image :preview-src-list="[clubImage]" :src="clubImage" fit="cover" preview-teleported |
| 406 | style="width: 120px" /> | 408 | style="width: 120px"/> |
| 407 | </div> | 409 | </div> |
| 408 | 410 | ||
| 409 | </div> | 411 | </div> |
| ... | @@ -411,13 +413,13 @@ | ... | @@ -411,13 +413,13 @@ |
| 411 | <!-- 群聊--> | 413 | <!-- 群聊--> |
| 412 | <div v-if="matchData.chatQrcode" class="fixed_gg_l club"> | 414 | <div v-if="matchData.chatQrcode" class="fixed_gg_l club"> |
| 413 | <el-image :preview-src-list="[fillImgUrl(matchData.chatQrcode)]" :src="fillImgUrl(matchData.chatQrcode)" | 415 | <el-image :preview-src-list="[fillImgUrl(matchData.chatQrcode)]" :src="fillImgUrl(matchData.chatQrcode)" |
| 414 | fit="cover" preview-teleported style="width: 120px;height: 120px" /> | 416 | fit="cover" preview-teleported style="width: 120px;height: 120px"/> |
| 415 | </div> | 417 | </div> |
| 416 | 418 | ||
| 417 | <affix-invitation ref="dialogInvitationRef" /> | 419 | <affix-invitation ref="dialogInvitationRef"/> |
| 418 | <el-dialog v-model="liveQrcodeShow" :title="language == 0 ? '赛事直播' : 'Live QR Code'" width="350px"> | 420 | <el-dialog v-model="liveQrcodeShow" :title="language == 0 ? '赛事直播' : 'Live QR Code'" width="350px"> |
| 419 | <div v-if="matchData.liveQrcode" style="display: flex;justify-content: space-between"> | 421 | <div v-if="matchData.liveQrcode" style="display: flex;justify-content: space-between"> |
| 420 | <el-image :src="fillImgUrl(matchData.liveQrcode)" fit="cover" style="width: 350px;" /> | 422 | <el-image :src="fillImgUrl(matchData.liveQrcode)" fit="cover" style="width: 350px;"/> |
| 421 | </div> | 423 | </div> |
| 422 | 424 | ||
| 423 | </el-dialog> | 425 | </el-dialog> |
| ... | @@ -426,26 +428,26 @@ | ... | @@ -426,26 +428,26 @@ |
| 426 | <script setup> | 428 | <script setup> |
| 427 | import HomeQuick from '@/viewsPc/components/homeQuick' | 429 | import HomeQuick from '@/viewsPc/components/homeQuick' |
| 428 | import HomeCalendar from '@/viewsPc/components/homeCalendar' | 430 | import HomeCalendar from '@/viewsPc/components/homeCalendar' |
| 429 | import { ref, nextTick, onMounted, watch } from 'vue' | 431 | import {ref, nextTick, onMounted, watch} from 'vue' |
| 430 | import { getCurrentInstance } from '@vue/runtime-core' | 432 | import {getCurrentInstance} from '@vue/runtime-core' |
| 431 | import { getHomePage, getNewsListById, getNewsList, getRank } from '@/apiPc/webSite' | 433 | import {getHomePage, getNewsListById, getNewsList, getRank} from '@/apiPc/webSite' |
| 432 | import { useRouter } from 'vue-router' | 434 | import {useRouter} from 'vue-router' |
| 433 | import clubImage from '@/assets/logo/club.png' | 435 | import clubImage from '@/assets/logo/club.png' |
| 434 | 436 | ||
| 435 | import { rankList } from '@/assets/js/data' | 437 | import {rankList} from '@/assets/js/data' |
| 436 | import _ from 'lodash' | 438 | import _ from 'lodash' |
| 437 | import { Swiper, SwiperSlide } from 'swiper/vue' | 439 | import {Swiper, SwiperSlide} from 'swiper/vue' |
| 438 | import { Autoplay, Navigation } from 'swiper' | 440 | import {Autoplay, Navigation} from 'swiper' |
| 439 | import 'swiper/css' | 441 | import 'swiper/css' |
| 440 | import { dayjs } from 'element-plus' | 442 | import {dayjs} from 'element-plus' |
| 441 | import * as match from '@/apiPc/match' | 443 | import * as match from '@/apiPc/match' |
| 442 | import { getAboutUs, getppInfo, getZNList } from '@/apiPc/match' | 444 | import {getAboutUs, getppInfo, getZNList} from '@/apiPc/match' |
| 443 | import hkImage from '@/assets/nationalFlag/hk.png' | 445 | import hkImage from '@/assets/nationalFlag/hk.png' |
| 444 | 446 | ||
| 445 | import AffixInvitation from '/@/viewsPc/match/components/affix-invitation.vue' | 447 | import AffixInvitation from '/@/viewsPc/match/components/affix-invitation.vue' |
| 446 | import { useStorage } from '@vueuse/core/index' | 448 | import {useStorage} from '@vueuse/core/index' |
| 447 | import useUserStore from '@/store/modules/user' | 449 | import useUserStore from '@/store/modules/user' |
| 448 | import { fillImgUrl } from '/@/utils/ruoyi' | 450 | import {fillImgUrl} from '/@/utils/ruoyi' |
| 449 | 451 | ||
| 450 | const language = useStorage('language', 0) | 452 | const language = useStorage('language', 0) |
| 451 | const liveQrcodeShow = ref(false) | 453 | const liveQrcodeShow = ref(false) |
| ... | @@ -455,17 +457,17 @@ const navigationPic = ref({ | ... | @@ -455,17 +457,17 @@ const navigationPic = ref({ |
| 455 | prevEl: '.picprev' | 457 | prevEl: '.picprev' |
| 456 | }) | 458 | }) |
| 457 | const router = useRouter() | 459 | const router = useRouter() |
| 458 | const { proxy } = getCurrentInstance() | 460 | const {proxy} = getCurrentInstance() |
| 459 | const emit = defineEmits(['pop', 'pickup', 'backNumber', 'schSearch', 'reserveSearch']) | 461 | const emit = defineEmits(['pop', 'pickup', 'backNumber', 'schSearch', 'reserveSearch']) |
| 460 | const time = ref(0) | 462 | const time = ref(0) |
| 461 | const etime = ref(0) | 463 | const etime = ref(0) |
| 462 | const personList = ref([ | 464 | const personList = ref([ |
| 463 | { name: 'Wolfgang Eliasch', pp: '拉丁舞裁判长 奥地利', src: '/img/1.png' }, | 465 | {name: 'Wolfgang Eliasch', pp: '拉丁舞裁判长 奥地利', src: '/img/1.png'}, |
| 464 | { name: 'Nenad Jeftic', pp: '标准舞裁判长 塞尔维亚', src: '/img/2.png' }, | 466 | {name: 'Nenad Jeftic', pp: '标准舞裁判长 塞尔维亚', src: '/img/2.png'}, |
| 465 | { name: 'Dorel Bagiu', pp: '罗马尼亚', src: '/img/3.png' }, | 467 | {name: 'Dorel Bagiu', pp: '罗马尼亚', src: '/img/3.png'}, |
| 466 | { name: 'Eduard Korotin', pp: ' 爱沙尼亚', src: '/img/4.png' }, | 468 | {name: 'Eduard Korotin', pp: ' 爱沙尼亚', src: '/img/4.png'}, |
| 467 | { name: 'Ana Cristina Silva', pp: '葡萄牙', src: '/img/5.png' }, | 469 | {name: 'Ana Cristina Silva', pp: '葡萄牙', src: '/img/5.png'}, |
| 468 | { name: 'Dallas Leslie Williams', pp: '记分长 澳大利亚', src: '/img/6.png' } | 470 | {name: 'Dallas Leslie Williams', pp: '记分长 澳大利亚', src: '/img/6.png'} |
| 469 | ]) | 471 | ]) |
| 470 | const activeNews = ref(0) | 472 | const activeNews = ref(0) |
| 471 | const rank = ref([]) | 473 | const rank = ref([]) |
| ... | @@ -533,7 +535,7 @@ const init = () => { | ... | @@ -533,7 +535,7 @@ const init = () => { |
| 533 | ).then(res => { | 535 | ).then(res => { |
| 534 | newest2.value = res.rows | 536 | newest2.value = res.rows |
| 535 | }) | 537 | }) |
| 536 | match.getMaList({ topFlag: 1 }).then((res) => { | 538 | match.getMaList({topFlag: 1}).then((res) => { |
| 537 | maList.value = res.rows | 539 | maList.value = res.rows |
| 538 | console.log(333, maList.value) | 540 | console.log(333, maList.value) |
| 539 | for (const n of maList.value) { | 541 | for (const n of maList.value) { |
| ... | @@ -558,7 +560,7 @@ const getpartners = () => { | ... | @@ -558,7 +560,7 @@ const getpartners = () => { |
| 558 | match.getppInfo('10000001').then((res) => { | 560 | match.getppInfo('10000001').then((res) => { |
| 559 | aboutUsContent.value = res.data.contextZh | 561 | aboutUsContent.value = res.data.contextZh |
| 560 | }) | 562 | }) |
| 561 | match.getZNList({ sortId: '2000', language: 1 }).then((res) => { | 563 | match.getZNList({sortId: '2000', language: 1}).then((res) => { |
| 562 | partners.value = res.rows | 564 | partners.value = res.rows |
| 563 | }) | 565 | }) |
| 564 | } | 566 | } |
| ... | @@ -647,6 +649,13 @@ const schSearch = () => { | ... | @@ -647,6 +649,13 @@ const schSearch = () => { |
| 647 | } | 649 | } |
| 648 | emit('schSearch', params) | 650 | emit('schSearch', params) |
| 649 | } | 651 | } |
| 652 | |||
| 653 | const handelPerformance=()=>{ | ||
| 654 | const params = { | ||
| 655 | cptId: matchData.value.id | ||
| 656 | } | ||
| 657 | emit('performance', params) | ||
| 658 | } | ||
| 650 | const handlePickup = () => { | 659 | const handlePickup = () => { |
| 651 | const params = { | 660 | const params = { |
| 652 | cptId: matchData.value.id | 661 | cptId: matchData.value.id |
| ... | @@ -978,7 +987,8 @@ function applyInvitation() { | ... | @@ -978,7 +987,8 @@ function applyInvitation() { |
| 978 | background: linear-gradient(0deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)); | 987 | background: linear-gradient(0deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)); |
| 979 | } | 988 | } |
| 980 | 989 | ||
| 981 | .btn-lineG {} | 990 | .btn-lineG { |
| 991 | } | ||
| 982 | } | 992 | } |
| 983 | 993 | ||
| 984 | .mapBox { | 994 | .mapBox { | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <div class="banner"> | 3 | <div class="banner"> |
| 4 | <el-carousel :autoplay="false" :interval="2000" arrow="hover" class="forPc" height="450px" | 4 | <el-carousel |
| 5 | @change="carouselChange"> | 5 | :autoplay="false" :interval="2000" arrow="hover" class="forPc" height="450px" |
| 6 | @change="carouselChange" | ||
| 7 | > | ||
| 6 | <el-carousel-item v-for="n in maList" :key="n.id" style="height: 450px;"> | 8 | <el-carousel-item v-for="n in maList" :key="n.id" style="height: 450px;"> |
| 7 | <div class="bannerItem"> | 9 | <div class="bannerItem"> |
| 8 | <div class="h100" @click.stop="goMatch(n)"> | 10 | <div class="h100" @click.stop="goMatch(n)"> |
| ... | @@ -42,7 +44,8 @@ | ... | @@ -42,7 +44,8 @@ |
| 42 | </div> | 44 | </div> |
| 43 | 45 | ||
| 44 | <div | 46 | <div |
| 45 | style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"> | 47 | style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around" |
| 48 | > | ||
| 46 | <a class=" btn2" style="z-index: 999999" @click.stop="liveQrcodeShowBtn"> | 49 | <a class=" btn2" style="z-index: 999999" @click.stop="liveQrcodeShowBtn"> |
| 47 | <!-- 赛事直播--> | 50 | <!-- 赛事直播--> |
| 48 | Live Qrcode | 51 | Live Qrcode |
| ... | @@ -96,7 +99,8 @@ | ... | @@ -96,7 +99,8 @@ |
| 96 | 99 | ||
| 97 | </div> | 100 | </div> |
| 98 | <div | 101 | <div |
| 99 | style="position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"> | 102 | style="position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around" |
| 103 | > | ||
| 100 | 104 | ||
| 101 | <a class=" btn2-phone" style="z-index: 999999" @click.stop="liveQrcodeShowBtn"> | 105 | <a class=" btn2-phone" style="z-index: 999999" @click.stop="liveQrcodeShowBtn"> |
| 102 | Live Qrcode | 106 | Live Qrcode |
| ... | @@ -134,11 +138,10 @@ | ... | @@ -134,11 +138,10 @@ |
| 134 | <Edit /> | 138 | <Edit /> |
| 135 | </el-icon> | 139 | </el-icon> |
| 136 | </a> --> | 140 | </a> --> |
| 137 | <br/> | 141 | <br> |
| 138 | <a class="zn-btn btn-q" @click="backNumberSearch">Competition | 142 | <a class="zn-btn btn-q" @click="backNumberSearch">Competition Number</a> |
| 139 | Number</a> | 143 | <a class="zn-btn btn-q" @click="schSearchSearch">Schedule Inquiry</a> |
| 140 | <a class="zn-btn btn-q" @click="schSearchSearch">Schedule | 144 | <a class="zn-btn btn-q" @click="performanceSearch">RESULT QUERY</a> |
| 141 | Inquiry</a> | ||
| 142 | 145 | ||
| 143 | </div> | 146 | </div> |
| 144 | 147 | ||
| ... | @@ -299,8 +302,10 @@ | ... | @@ -299,8 +302,10 @@ |
| 299 | <el-col :lg="16"> | 302 | <el-col :lg="16"> |
| 300 | 303 | ||
| 301 | <div class="swiperPic forPx"> | 304 | <div class="swiperPic forPx"> |
| 302 | <swiper :autoplay="true" :loop="true" :modules="modules" :navigation="navigationPic" | 305 | <swiper |
| 303 | :slides-per-view="3" :space-between="20" class="swiper-wrapper"> | 306 | :autoplay="true" :loop="true" :modules="modules" :navigation="navigationPic" |
| 307 | :slides-per-view="3" :space-between="20" class="swiper-wrapper" | ||
| 308 | > | ||
| 304 | <swiper-slide v-for="(n, i) in picList" :key="i"> | 309 | <swiper-slide v-for="(n, i) in picList" :key="i"> |
| 305 | <div class="picbox" @click="goNewsDetail(n)"> | 310 | <div class="picbox" @click="goNewsDetail(n)"> |
| 306 | <img :src="fillImgUrl_webSite(n.picUrl)"> | 311 | <img :src="fillImgUrl_webSite(n.picUrl)"> |
| ... | @@ -341,7 +346,10 @@ | ... | @@ -341,7 +346,10 @@ |
| 341 | <h3 class="leftboderTT">INTRODUCTION OF ADJUDICATORS</h3> | 346 | <h3 class="leftboderTT">INTRODUCTION OF ADJUDICATORS</h3> |
| 342 | </div> | 347 | </div> |
| 343 | <el-row :gutter="20"> | 348 | <el-row :gutter="20"> |
| 344 | <el-col v-for="n in personList" :key="n.name" :lg="4" :sm="8" :xl="4" :xs="12"> | 349 | <el-col |
| 350 | v-for="n in personList" :key="n.name" :lg="4" :sm="8" :xl="4" | ||
| 351 | :xs="12" | ||
| 352 | > | ||
| 345 | <div class="teacher"> | 353 | <div class="teacher"> |
| 346 | <div class="imgbox"><img :src="n.src"></div> | 354 | <div class="imgbox"><img :src="n.src"></div> |
| 347 | <h3 class="esp">{{ n.name }}</h3> | 355 | <h3 class="esp">{{ n.name }}</h3> |
| ... | @@ -411,24 +419,30 @@ | ... | @@ -411,24 +419,30 @@ |
| 411 | 419 | ||
| 412 | <!-- 邀请函--> | 420 | <!-- 邀请函--> |
| 413 | <div class="fixed_gg_l yaoQing"> | 421 | <div class="fixed_gg_l yaoQing"> |
| 414 | <img src="@/assets/logo/Invitation_e.png" @click="applyInvitation" v-if="matchData.invitationSw == '1'"> | 422 | <img v-if="matchData.invitationSw == '1'" src="@/assets/logo/Invitation_e.png" @click="applyInvitation"> |
| 415 | <div style="padding-left: 7px;"> | 423 | <div style="padding-left: 7px;"> |
| 416 | 424 | ||
| 417 | <el-image v-if="clubImage && matchData.visaSw == '1'" :preview-src-list="[clubImage]" :src="clubImage" | 425 | <el-image |
| 418 | fit="cover" preview-teleported style="width: 124px" /> | 426 | v-if="clubImage && matchData.visaSw == '1'" :preview-src-list="[clubImage]" :src="clubImage" |
| 427 | fit="cover" preview-teleported style="width: 124px" | ||
| 428 | /> | ||
| 419 | </div> | 429 | </div> |
| 420 | </div> | 430 | </div> |
| 421 | <!-- 群聊--> | 431 | <!-- 群聊--> |
| 422 | <div v-if="matchData.chatQrcode" class="fixed_gg_l club"> | 432 | <div v-if="matchData.chatQrcode" class="fixed_gg_l club"> |
| 423 | <el-image :preview-src-list="[fillImgUrl(matchData.chatQrcode)]" :src="fillImgUrl(matchData.chatQrcode)" | 433 | <el-image |
| 424 | fit="cover" preview-teleported style="width: 120px;height: 120px" /> | 434 | :preview-src-list="[fillImgUrl(matchData.chatQrcode)]" :src="fillImgUrl(matchData.chatQrcode)" |
| 435 | fit="cover" preview-teleported style="width: 120px;height: 120px" | ||
| 436 | /> | ||
| 425 | </div> | 437 | </div> |
| 426 | <affix-invitation ref="dialogInvitationRef" /> | 438 | <affix-invitation ref="dialogInvitationRef" /> |
| 427 | 439 | ||
| 428 | <el-dialog v-model="liveQrcodeShow" :title="language == 0 ? '赛事直播' : 'Live QR Code'" width="350px"> | 440 | <el-dialog v-model="liveQrcodeShow" :title="language == 0 ? '赛事直播' : 'Live QR Code'" width="350px"> |
| 429 | <div style="display: flex;justify-content: space-between"> | 441 | <div style="display: flex;justify-content: space-between"> |
| 430 | <el-image v-if="matchData.liveQrcode" :src="fillImgUrl(matchData.liveQrcode)" fit="cover" | 442 | <el-image |
| 431 | style="max-width: 350px;" /> | 443 | v-if="matchData.liveQrcode" :src="fillImgUrl(matchData.liveQrcode)" fit="cover" |
| 444 | style="max-width: 350px;" | ||
| 445 | /> | ||
| 432 | </div> | 446 | </div> |
| 433 | 447 | ||
| 434 | </el-dialog> | 448 | </el-dialog> |
| ... | @@ -464,7 +478,7 @@ const navigationPic = ref({ | ... | @@ -464,7 +478,7 @@ const navigationPic = ref({ |
| 464 | }) | 478 | }) |
| 465 | const router = useRouter() | 479 | const router = useRouter() |
| 466 | const { proxy } = getCurrentInstance() | 480 | const { proxy } = getCurrentInstance() |
| 467 | const emit = defineEmits(['pop', 'backNumber', 'schSearch', 'reserveSearch']) | 481 | const emit = defineEmits(['pop', 'backNumber', 'schSearch', 'reserveSearch', 'performance']) |
| 468 | const time = ref(0) | 482 | const time = ref(0) |
| 469 | const etime = ref(0) | 483 | const etime = ref(0) |
| 470 | const liveQrcodeShow = ref(false) | 484 | const liveQrcodeShow = ref(false) |
| ... | @@ -503,8 +517,8 @@ const reserveSearch = () => { | ... | @@ -503,8 +517,8 @@ const reserveSearch = () => { |
| 503 | var params = { | 517 | var params = { |
| 504 | cptId: matchData.value.id | 518 | cptId: matchData.value.id |
| 505 | } | 519 | } |
| 506 | emit('reserveSearch', params); // 向父组件发射事件+参数 | 520 | emit('reserveSearch', params) // 向父组件发射事件+参数 |
| 507 | }; | 521 | } |
| 508 | 522 | ||
| 509 | function handleRowClick(row) { | 523 | function handleRowClick(row) { |
| 510 | console.log(row) | 524 | console.log(row) |
| ... | @@ -626,7 +640,6 @@ const goGuide = () => { | ... | @@ -626,7 +640,6 @@ const goGuide = () => { |
| 626 | const liveQrcodeShowBtn = () => { | 640 | const liveQrcodeShowBtn = () => { |
| 627 | if (!matchData.value.liveQrcode) { | 641 | if (!matchData.value.liveQrcode) { |
| 628 | ElMessage.warning('There is currently no live broadcast of the event') | 642 | ElMessage.warning('There is currently no live broadcast of the event') |
| 629 | return | ||
| 630 | } else { | 643 | } else { |
| 631 | liveQrcodeShow.value = true | 644 | liveQrcodeShow.value = true |
| 632 | } | 645 | } |
| ... | @@ -650,6 +663,15 @@ const schSearchSearch = () => { | ... | @@ -650,6 +663,15 @@ const schSearchSearch = () => { |
| 650 | } | 663 | } |
| 651 | emit('schSearch', params) | 664 | emit('schSearch', params) |
| 652 | } | 665 | } |
| 666 | |||
| 667 | const performanceSearch = () => { | ||
| 668 | const params = { | ||
| 669 | cptId: matchData.value.id | ||
| 670 | } | ||
| 671 | console.log(1111) | ||
| 672 | emit('performance', params) | ||
| 673 | } | ||
| 674 | |||
| 653 | const handlePickup = () => { | 675 | const handlePickup = () => { |
| 654 | const params = { | 676 | const params = { |
| 655 | cptId: matchData.value.id | 677 | cptId: matchData.value.id | ... | ... |
-
Please register or sign in to post a comment